From 257e49ff0d333cd5b9967613cb14051d54dd054b Mon Sep 17 00:00:00 2001 From: Po Lu Date: Wed, 5 Jul 2023 14:57:15 +0800 Subject: [PATCH] Fix crash between Android 4.0 and Android 5.1 * java/org/gnu/emacs/EmacsService.java (detectMouse): Don't use function that is not present on Android 4.0. --- java/org/gnu/emacs/EmacsService.java | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/java/org/gnu/emacs/EmacsService.java b/java/org/gnu/emacs/EmacsService.java index 820befb52d2..e1fd2dbffda 100644 --- a/java/org/gnu/emacs/EmacsService.java +++ b/java/org/gnu/emacs/EmacsService.java @@ -491,6 +491,8 @@ public final class EmacsService extends Service int i; if (Build.VERSION.SDK_INT + /* Android 4.0 and earlier don't support mouse input events at + all. */ < Build.VERSION_CODES.JELLY_BEAN) return false; @@ -504,8 +506,20 @@ public final class EmacsService extends Service if (device == null) continue; - if (device.supportsSource (InputDevice.SOURCE_MOUSE)) - return true; + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) + { + if (device.supportsSource (InputDevice.SOURCE_MOUSE)) + return true; + } + else + { + /* `supportsSource' is only present on API level 21 and + later, but earlier versions provide a bit mask + containing each supported source. */ + + if ((device.getSources () & InputDevice.SOURCE_MOUSE) != 0) + return true; + } } return false; -- 2.39.2