/** * Copyright (c) 2012-2013 Nokia Corporation. All rights reserved. * Nokia and Nokia Connecting People are registered trademarks of Nokia Corporation. * Oracle and Java are trademarks or registered trademarks of Oracle and/or its * affiliates. Other product and company names mentioned herein may be trademarks * or trade names of their respective owners. * See LICENSE.TXT for license information. */ package com.nokia.example.paint.touch; /* * Generic wrapper class for handling multitouch events, * if they are supported. */ public abstract class MultiTouch { private static MultiTouch multiTouch = getImplementation(); protected static MultiTouchListener touchListener; protected abstract int getPointers(); /** * Set multi-touch listener * @param listener */ public static void setTouchListener(MultiTouchListener listener) { touchListener = listener; } /** * Get the amount of possible touch points * @return Amount of touch points. 1 if multi-touch is not available */ public static int getMaxPointers() { return multiTouch != null ? multiTouch.getPointers() : 1; } /** * Loads up the isolated implementation class * @return MultiTouch Returns multi-touch implementation or null, if multi-touch is not supported */ private static MultiTouch getImplementation() { MultiTouch implementation = null; try { Class.forName("com.nokia.mid.ui.multipointtouch.MultipointTouchListener"); Class c = Class.forName("com.nokia.example.paint.touch.MultiTouchImpl"); implementation = (MultiTouch) (c.newInstance()); } catch (Exception e) { // Multi-touch not available - using single-touch } return implementation; } }