/** * 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.rlinks.util; import javax.microedition.lcdui.Canvas; import javax.microedition.lcdui.Graphics; /** * Utility class for testing support for touch events. */ public class TouchChecker extends Canvas { private static TouchChecker self; private static boolean traitsChecked = false; private static boolean traitsSupported; public static final boolean DIRECT_TOUCH_SUPPORTED; protected void paint(Graphics g) {} private TouchChecker() { } static { DIRECT_TOUCH_SUPPORTED = TouchChecker.isTouchEnabled() && TouchChecker.isS40UITraitsSupported(); } /** * Checks wheter pointer events are supported */ public static boolean isTouchEnabled() { if (self == null) { self = new TouchChecker(); } return self.hasPointerEvents(); } /** * Checks whether LCDUIUtil is available and thus UI traits also */ public static boolean isS40UITraitsSupported() { if (!traitsChecked) { try { Class.forName("com.nokia.mid.ui.LCDUIUtil"); traitsSupported = true; } catch (NoClassDefFoundError ncdfe) { traitsSupported = false; } catch (Exception e) { traitsSupported = false; } } return traitsSupported; } }