Checks if the device has a fake touch feature.
@param manager the package manager.
@return {@code true} if the device has a fake touch feature.
965472
@TargetApi(Build.VERSION_CODES.HONEYCOMB)
    public static boolean hasFakeTouchFeature(PackageManager manager) {
        return manager.hasSystemFeature(PackageManager.FEATURE_FAKETOUCH);
    }
766971
def has_button(self, button):
		

		rc = self._libinput.libinput_device_pointer_has_button(
			self._handle, button)
		assert rc >= 0, 'This device is not a pointer device'
		return bool(rc)
227512
@TargetApi(Build.VERSION_CODES.KITKAT)
    public static boolean hasDeviceAdminFeature(PackageManager manager) {
        return manager.hasSystemFeature(PackageManager.FEATURE_DEVICE_ADMIN);
    }
1279174
def is_touch(self):
		

		if self in {type(self).TOUCH_DOWN, type(self).TOUCH_UP,
			type(self).TOUCH_MOTION, type(self).TOUCH_CANCEL,
			type(self).TOUCH_FRAME}:
			return True
		else:
			return False
380798
function hasTouchSupport() {
        return ("ontouchstart" in window) || // touch events
               (window.Modernizr && window.Modernizr.touch) || // modernizr
               (navigator.msMaxTouchPoints || navigator.maxTouchPoints) > 2; // pointer events
    }
18043
@TargetApi(Build.VERSION_CODES.FROYO)
    public static boolean hasMicrophoneFeature(PackageManager manager) {
        return manager.hasSystemFeature(PackageManager.FEATURE_MICROPHONE);
    }
341019
def is_gesture(self):
		

		if self in {type(self).GESTURE_SWIPE_BEGIN, type(self).GESTURE_SWIPE_END,
			type(self).GESTURE_SWIPE_UPDATE, type(self).GESTURE_PINCH_BEGIN,
			type(self).GESTURE_PINCH_UPDATE, type(self).GESTURE_PINCH_END}:
			return True
		else:
			return False
911769
@TargetApi(Build.VERSION_CODES.GINGERBREAD)
    public static boolean hasSipFeature(Context context) {
        return hasSipFeature(context.getPackageManager());
    }
198894
@TargetApi(Build.VERSION_CODES.HONEYCOMB_MR1)
    public static boolean hasUsbHostFeature(Context context) {
        return hasUsbHostFeature(context.getPackageManager());
    }
982214
function TouchEmulator() {
  fakeTouchSupport();

  window.addEventListener('mousedown', onMouse('touchstart'), true);
  window.addEventListener('mousemove', onMouse('touchmove'), true);
  window.addEventListener('mouseup', onMouse('touchend'), true);
}
457497
@TargetApi(Build.VERSION_CODES.HONEYCOMB_MR1)
    public static boolean hasUsbHostFeature(PackageManager manager) {
        return manager.hasSystemFeature(PackageManager.FEATURE_USB_HOST);
    }
591984
@TargetApi(Build.VERSION_CODES.KITKAT)
    public static boolean hasConsumerIrFeature(PackageManager manager) {
        return manager.hasSystemFeature(PackageManager.FEATURE_CONSUMER_IR);
    }
1099953
@TargetApi(Build.VERSION_CODES.GINGERBREAD)
    public static boolean hasSipVoipFeature(PackageManager manager) {
        return manager.hasSystemFeature(PackageManager.FEATURE_SIP_VOIP);
    }
900361
@TargetApi(Build.VERSION_CODES.JELLY_BEAN_MR2)
    public static boolean hasBluetoothLEFeature(Context context) {
        return hasBluetoothLEFeature(context.getPackageManager());
    }
1076848
function (input) {
    // not needed with native support for the touchAction property
    if (NATIVE_TOUCH_ACTION) {
      return;
    }

    var srcEvent = input.srcEvent;
    var direction = input.offsetDirection;

    // if the touch action did prevented once this session
    if (this.manager.session.prevented) {
      srcEvent.preventDefault();
      return;
    }

    var actions = this.actions;
    var hasNone = inStr(actions, TOUCH_ACTION_NONE);
    var hasPanY = inStr(actions, TOUCH_ACTION_PAN_Y);
    var hasPanX = inStr(actions, TOUCH_ACTION_PAN_X);

    if (hasNone ||
      (hasPanY && direction & DIRECTION_HORIZONTAL) ||
      (hasPanX && direction & DIRECTION_VERTICAL)) {
      return this.preventSrc(srcEvent);
    }
  }
87171
def detectMaemoTablet(self):
        
        if UAgentInfo.maemo in self.__userAgent:
            return True

        return UAgentInfo.linux in self.__userAgent \
            and UAgentInfo.deviceTablet in self.__userAgent \
            and not self.detectWebOSTablet() \
            and not self.detectAndroid()
164404
def detectBlackBerryTouch(self):
        
        return UAgentInfo.deviceBBStorm in self.__userAgent \
                or UAgentInfo.deviceBBTorch in self.__userAgent \
                or UAgentInfo.deviceBBBoldTouch in self.__userAgent \
                or UAgentInfo.deviceBBCurveTouch in self.__userAgent