diff options
author | Cédric Cabessa <ced@ryick.net> | 2017-08-14 21:54:31 +0200 |
---|---|---|
committer | Cédric Cabessa <ced@ryick.net> | 2017-08-14 23:33:25 +0200 |
commit | f3ceccfa829402541dc7603037877f2e08efbf9b (patch) | |
tree | 9efeaefc53c11e7543bb95761265ea6148ac4d13 /core/src/main/java/de/danoeh | |
parent | 657a91b036aa86d94734f8b0ef88a036ec5a48a5 (diff) | |
download | AntennaPod-f3ceccfa829402541dc7603037877f2e08efbf9b.zip |
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
Diffstat (limited to 'core/src/main/java/de/danoeh')
-rw-r--r-- | core/src/main/java/de/danoeh/antennapod/core/service/playback/PlaybackService.java | 24 |
1 files changed, 24 insertions, 0 deletions
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 = |