From 872b23628d339e0e8041c5d803e773cf5902cdfb Mon Sep 17 00:00:00 2001 From: VictorBG Date: Fri, 22 Dec 2017 12:32:53 +0100 Subject: [PATCH 1/8] Bug with headset (double and triple click) on Android Oreo solved --- .../service/MediaButtonIntentReceiver.java | 22 +++++++++++++++++-- build.gradle | 2 +- gradle/wrapper/gradle-wrapper.properties | 4 ++-- 3 files changed, 23 insertions(+), 5 deletions(-) diff --git a/app/src/main/java/com/kabouzeid/gramophone/service/MediaButtonIntentReceiver.java b/app/src/main/java/com/kabouzeid/gramophone/service/MediaButtonIntentReceiver.java index c8440219..2be25a77 100644 --- a/app/src/main/java/com/kabouzeid/gramophone/service/MediaButtonIntentReceiver.java +++ b/app/src/main/java/com/kabouzeid/gramophone/service/MediaButtonIntentReceiver.java @@ -41,6 +41,8 @@ public class MediaButtonIntentReceiver extends BroadcastReceiver { private static final int DOUBLE_CLICK = 400; + private static final int MULTIPLE_CLICK = 150; + private static WakeLock mWakeLock = null; private static int mClickCounter = 0; private static long mLastClickTime = 0; @@ -89,6 +91,16 @@ public class MediaButtonIntentReceiver extends BroadcastReceiver { } } + static int clicks; + static long multipleClickStart; + + static Runnable resetMultipleClick = () -> { + multipleClickStart = 0; + clicks = 0; + }; + + static Handler timeMultipleClick; + public static boolean handleIntent(final Context context, final Intent intent) { final String intentAction = intent.getAction(); if (Intent.ACTION_MEDIA_BUTTON.equals(intentAction)) { @@ -108,6 +120,7 @@ public class MediaButtonIntentReceiver extends BroadcastReceiver { break; case KeyEvent.KEYCODE_HEADSETHOOK: case KeyEvent.KEYCODE_MEDIA_PLAY_PAUSE: + //On Android Oreo it always call this command = MusicService.ACTION_TOGGLE_PAUSE; break; case KeyEvent.KEYCODE_MEDIA_NEXT: @@ -133,13 +146,18 @@ public class MediaButtonIntentReceiver extends BroadcastReceiver { // The service may or may not be running, but we need to send it // a command. - if (keycode == KeyEvent.KEYCODE_HEADSETHOOK) { + int keycodeToCompare = KeyEvent.KEYCODE_HEADSETHOOK; + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { + keycodeToCompare = KeyEvent.KEYCODE_MEDIA_PLAY_PAUSE; + } + if (keycode == keycodeToCompare) { if (eventTime - mLastClickTime >= DOUBLE_CLICK) { mClickCounter = 0; } mClickCounter++; - if (DEBUG) Log.v(TAG, "Got headset click, count = " + mClickCounter); + if (DEBUG) + Log.v(TAG, "Got headset click, count = " + mClickCounter); mHandler.removeMessages(MSG_HEADSET_DOUBLE_CLICK_TIMEOUT); Message msg = mHandler.obtainMessage( diff --git a/build.gradle b/build.gradle index af14b1d9..989ee485 100644 --- a/build.gradle +++ b/build.gradle @@ -4,7 +4,7 @@ buildscript { google() } dependencies { - classpath 'com.android.tools.build:gradle:3.0.1' + classpath 'com.android.tools.build:gradle:3.1.0-alpha05' } } diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 54915cbf..72ce2ee7 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ -#Sun Dec 10 13:25:20 CET 2017 +#Fri Dec 22 10:41:21 CET 2017 distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-4.1-all.zip +distributionUrl=https\://services.gradle.org/distributions-snapshots/gradle-4.4-20171031235950+0000-all.zip From 5d2b53a6867a27fa03c5d819ad2dd852fbd54413 Mon Sep 17 00:00:00 2001 From: VictorBG Date: Fri, 22 Dec 2017 12:34:30 +0100 Subject: [PATCH 2/8] Removed unused code --- .../service/MediaButtonIntentReceiver.java | 13 ------------- 1 file changed, 13 deletions(-) diff --git a/app/src/main/java/com/kabouzeid/gramophone/service/MediaButtonIntentReceiver.java b/app/src/main/java/com/kabouzeid/gramophone/service/MediaButtonIntentReceiver.java index 2be25a77..f71c5052 100644 --- a/app/src/main/java/com/kabouzeid/gramophone/service/MediaButtonIntentReceiver.java +++ b/app/src/main/java/com/kabouzeid/gramophone/service/MediaButtonIntentReceiver.java @@ -41,8 +41,6 @@ public class MediaButtonIntentReceiver extends BroadcastReceiver { private static final int DOUBLE_CLICK = 400; - private static final int MULTIPLE_CLICK = 150; - private static WakeLock mWakeLock = null; private static int mClickCounter = 0; private static long mLastClickTime = 0; @@ -91,16 +89,6 @@ public class MediaButtonIntentReceiver extends BroadcastReceiver { } } - static int clicks; - static long multipleClickStart; - - static Runnable resetMultipleClick = () -> { - multipleClickStart = 0; - clicks = 0; - }; - - static Handler timeMultipleClick; - public static boolean handleIntent(final Context context, final Intent intent) { final String intentAction = intent.getAction(); if (Intent.ACTION_MEDIA_BUTTON.equals(intentAction)) { @@ -120,7 +108,6 @@ public class MediaButtonIntentReceiver extends BroadcastReceiver { break; case KeyEvent.KEYCODE_HEADSETHOOK: case KeyEvent.KEYCODE_MEDIA_PLAY_PAUSE: - //On Android Oreo it always call this command = MusicService.ACTION_TOGGLE_PAUSE; break; case KeyEvent.KEYCODE_MEDIA_NEXT: From 3347547586c718bd6422a759f4270c93a132a5e7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?V=C3=ADctor?= Date: Sat, 23 Dec 2017 09:08:12 +0100 Subject: [PATCH 3/8] Update build.gradle --- build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.gradle b/build.gradle index 989ee485..af14b1d9 100644 --- a/build.gradle +++ b/build.gradle @@ -4,7 +4,7 @@ buildscript { google() } dependencies { - classpath 'com.android.tools.build:gradle:3.1.0-alpha05' + classpath 'com.android.tools.build:gradle:3.0.1' } } From 48f1f9826fc3e69c2637b0a3a2e480975d31cf9b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?V=C3=ADctor?= Date: Sat, 23 Dec 2017 09:08:51 +0100 Subject: [PATCH 4/8] Update gradle-wrapper.properties --- gradle/wrapper/gradle-wrapper.properties | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 72ce2ee7..4bce1d00 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ -#Fri Dec 22 10:41:21 CET 2017 +#Sun Dec 10 13:25:20 CET 2017 distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions-snapshots/gradle-4.4-20171031235950+0000-all.zip +-distributionUrl=https\://services.gradle.org/distributions/gradle-4.1-all.zip From 3ef5aee2fb793b56c9c442273af8d0a9e69b033a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?V=C3=ADctor?= Date: Sat, 23 Dec 2017 09:09:19 +0100 Subject: [PATCH 5/8] Update gradle-wrapper.properties --- gradle/wrapper/gradle-wrapper.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 4bce1d00..54915cbf 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -3,4 +3,4 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists --distributionUrl=https\://services.gradle.org/distributions/gradle-4.1-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-4.1-all.zip From bbfdfae4300f3afc55be8d726b8246a82c83cc3f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?V=C3=ADctor?= Date: Sat, 23 Dec 2017 18:41:21 +0100 Subject: [PATCH 6/8] Update MediaButtonIntentReceiver.java --- .../gramophone/service/MediaButtonIntentReceiver.java | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/app/src/main/java/com/kabouzeid/gramophone/service/MediaButtonIntentReceiver.java b/app/src/main/java/com/kabouzeid/gramophone/service/MediaButtonIntentReceiver.java index f71c5052..053ec60d 100644 --- a/app/src/main/java/com/kabouzeid/gramophone/service/MediaButtonIntentReceiver.java +++ b/app/src/main/java/com/kabouzeid/gramophone/service/MediaButtonIntentReceiver.java @@ -133,11 +133,7 @@ public class MediaButtonIntentReceiver extends BroadcastReceiver { // The service may or may not be running, but we need to send it // a command. - int keycodeToCompare = KeyEvent.KEYCODE_HEADSETHOOK; - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { - keycodeToCompare = KeyEvent.KEYCODE_MEDIA_PLAY_PAUSE; - } - if (keycode == keycodeToCompare) { + if (keycode == KeyEvent.KEYCODE_HEADSETHOOK || keycode == KeyEvent.KEYCODE_MEDIA_PLAY_PAUSE) { if (eventTime - mLastClickTime >= DOUBLE_CLICK) { mClickCounter = 0; } @@ -203,4 +199,4 @@ public class MediaButtonIntentReceiver extends BroadcastReceiver { mWakeLock = null; } } -} \ No newline at end of file +} From 032ea8f1b3ea323c375d63bc652bfb81ba1fe05d Mon Sep 17 00:00:00 2001 From: Karim Abou Zeid Date: Sun, 24 Dec 2017 01:12:15 +0100 Subject: [PATCH 7/8] Code style --- .../gramophone/service/MediaButtonIntentReceiver.java | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/app/src/main/java/com/kabouzeid/gramophone/service/MediaButtonIntentReceiver.java b/app/src/main/java/com/kabouzeid/gramophone/service/MediaButtonIntentReceiver.java index 053ec60d..51565d08 100644 --- a/app/src/main/java/com/kabouzeid/gramophone/service/MediaButtonIntentReceiver.java +++ b/app/src/main/java/com/kabouzeid/gramophone/service/MediaButtonIntentReceiver.java @@ -139,8 +139,7 @@ public class MediaButtonIntentReceiver extends BroadcastReceiver { } mClickCounter++; - if (DEBUG) - Log.v(TAG, "Got headset click, count = " + mClickCounter); + if (DEBUG) Log.v(TAG, "Got headset click, count = " + mClickCounter); mHandler.removeMessages(MSG_HEADSET_DOUBLE_CLICK_TIMEOUT); Message msg = mHandler.obtainMessage( From 3c520c259e8458a049ea2fb1be05fb762d32b374 Mon Sep 17 00:00:00 2001 From: Karim Abou Zeid Date: Sun, 24 Dec 2017 01:13:35 +0100 Subject: [PATCH 8/8] Code style