From f3ceccfa829402541dc7603037877f2e08efbf9b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9dric=20Cabessa?= Date: Mon, 14 Aug 2017 21:54:31 +0200 Subject: add a "rewind" and "fast forward" button for android Wear This feature is only enabled for "play" build. It is useful to skip advertisement during a podcast. Note: I originaly tried to implement this in the "4 ways controller" managed by the mediaSession (it contains vol up / vol down / skip). This object is linked to the capabilities of the session and seems to be hard to customise without changing the capabilities. This patch simply add 2 new buttons --- .../core/service/playback/PlaybackService.java | 24 ++++++++++++++++++++++ 1 file changed, 24 insertions(+) (limited to 'core/src/main/java/de/danoeh') diff --git a/core/src/main/java/de/danoeh/antennapod/core/service/playback/PlaybackService.java b/core/src/main/java/de/danoeh/antennapod/core/service/playback/PlaybackService.java index c3e6b55ba..3166dd743 100644 --- a/core/src/main/java/de/danoeh/antennapod/core/service/playback/PlaybackService.java +++ b/core/src/main/java/de/danoeh/antennapod/core/service/playback/PlaybackService.java @@ -133,6 +133,12 @@ public class PlaybackService extends MediaBrowserServiceCompat { */ public static final String ACTION_RESUME_PLAY_CURRENT_EPISODE = "action.de.danoeh.antennapod.core.service.resumePlayCurrentEpisode"; + /** + * Custom action used by Android Wear + */ + private static final String CUSTOM_ACTION_FAST_FORWARD = "action.de.danoeh.antennapod.core.service.fastForward"; + private static final String CUSTOM_ACTION_REWIND = "action.de.danoeh.antennapod.core.service.rewind"; + /** * Used in NOTIFICATION_TYPE_RELOAD. @@ -1083,6 +1089,14 @@ public class PlaybackService extends MediaBrowserServiceCompat { } sessionState.setActions(capabilities); + + flavorHelper.sessionStateAddActionForWear(sessionState, + CUSTOM_ACTION_REWIND, getString(R.string.rewind_label), android.R.drawable.ic_media_rew); + flavorHelper.sessionStateAddActionForWear(sessionState, + CUSTOM_ACTION_FAST_FORWARD, getString(R.string.fast_forward_label), android.R.drawable.ic_media_ff); + + flavorHelper.mediaSessionSetExtraForWear(mediaSession); + mediaSession.setPlaybackState(sessionState.build()); } @@ -1761,6 +1775,16 @@ public class PlaybackService extends MediaBrowserServiceCompat { } return false; } + + @Override + public void onCustomAction(String action, Bundle extra) { + Log.d(TAG, "onCustomAction(" + action + ")"); + if (CUSTOM_ACTION_FAST_FORWARD.equals(action)) { + onFastForward(); + } else if (CUSTOM_ACTION_REWIND.equals(action)) { + onRewind(); + } + } }; private SharedPreferences.OnSharedPreferenceChangeListener prefListener = -- cgit v1.2.3