From 9b78d4c3f39b085184ae54e88b22fb71f3fc13a3 Mon Sep 17 00:00:00 2001 From: Nicolas Araujo <63880378+nicoolasj@users.noreply.github.com> Date: Sun, 24 Apr 2022 17:36:37 -0300 Subject: Put playback speed in widget (#5774) --- .../java/de/danoeh/antennapod/core/receiver/PlayerWidget.java | 2 ++ .../java/de/danoeh/antennapod/core/widget/WidgetUpdater.java | 9 ++++++++- core/src/main/res/layout/player_widget.xml | 10 ++++++++++ core/src/main/res/values/styles.xml | 11 +++++++---- 4 files changed, 27 insertions(+), 5 deletions(-) (limited to 'core/src/main') diff --git a/core/src/main/java/de/danoeh/antennapod/core/receiver/PlayerWidget.java b/core/src/main/java/de/danoeh/antennapod/core/receiver/PlayerWidget.java index 46faeec50..4e5aff696 100644 --- a/core/src/main/java/de/danoeh/antennapod/core/receiver/PlayerWidget.java +++ b/core/src/main/java/de/danoeh/antennapod/core/receiver/PlayerWidget.java @@ -14,6 +14,7 @@ public class PlayerWidget extends AppWidgetProvider { public static final String PREFS_NAME = "PlayerWidgetPrefs"; private static final String KEY_ENABLED = "WidgetEnabled"; public static final String KEY_WIDGET_COLOR = "widget_color"; + public static final String KEY_WIDGET_PLAYBACK_SPEED = "widget_playback_speed"; public static final String KEY_WIDGET_SKIP = "widget_skip"; public static final String KEY_WIDGET_FAST_FORWARD = "widget_fast_forward"; public static final String KEY_WIDGET_REWIND = "widget_rewind"; @@ -47,6 +48,7 @@ public class PlayerWidget extends AppWidgetProvider { for (int appWidgetId : appWidgetIds) { SharedPreferences prefs = context.getSharedPreferences(PREFS_NAME, Context.MODE_PRIVATE); prefs.edit().remove(KEY_WIDGET_COLOR + appWidgetId).apply(); + prefs.edit().remove(KEY_WIDGET_PLAYBACK_SPEED + appWidgetId).apply(); prefs.edit().remove(KEY_WIDGET_REWIND + appWidgetId).apply(); prefs.edit().remove(KEY_WIDGET_FAST_FORWARD + appWidgetId).apply(); prefs.edit().remove(KEY_WIDGET_SKIP + appWidgetId).apply(); diff --git a/core/src/main/java/de/danoeh/antennapod/core/widget/WidgetUpdater.java b/core/src/main/java/de/danoeh/antennapod/core/widget/WidgetUpdater.java index 1253c747b..8afba881a 100644 --- a/core/src/main/java/de/danoeh/antennapod/core/widget/WidgetUpdater.java +++ b/core/src/main/java/de/danoeh/antennapod/core/widget/WidgetUpdater.java @@ -31,6 +31,7 @@ import de.danoeh.antennapod.core.util.TimeSpeedConverter; import de.danoeh.antennapod.model.playback.Playable; import de.danoeh.antennapod.playback.base.PlayerStatus; import de.danoeh.antennapod.ui.appstartintent.MainActivityStarter; +import de.danoeh.antennapod.ui.appstartintent.PlaybackSpeedActivityStarter; import de.danoeh.antennapod.ui.appstartintent.VideoPlayerActivityStarter; /** @@ -73,6 +74,9 @@ public abstract class WidgetUpdater { } else { startMediaPlayer = new MainActivityStarter(context).withOpenPlayer().getPendingIntent(); } + + PendingIntent startPlaybackSpeedDialog = new PlaybackSpeedActivityStarter(context).getPendingIntent(); + RemoteViews views; views = new RemoteViews(context.getPackageName(), R.layout.player_widget); @@ -81,6 +85,7 @@ public abstract class WidgetUpdater { int iconSize = context.getResources().getDimensionPixelSize(android.R.dimen.app_icon_size); views.setOnClickPendingIntent(R.id.layout_left, startMediaPlayer); views.setOnClickPendingIntent(R.id.imgvCover, startMediaPlayer); + views.setOnClickPendingIntent(R.id.butPlaybackSpeed, startPlaybackSpeedDialog); try { icon = Glide.with(context) @@ -165,13 +170,15 @@ public abstract class WidgetUpdater { } else { views.setViewVisibility(R.id.layout_center, View.VISIBLE); } + boolean showPlaybackSpeed = prefs.getBoolean(PlayerWidget.KEY_WIDGET_PLAYBACK_SPEED + id, false); boolean showRewind = prefs.getBoolean(PlayerWidget.KEY_WIDGET_REWIND + id, false); boolean showFastForward = prefs.getBoolean(PlayerWidget.KEY_WIDGET_FAST_FORWARD + id, false); boolean showSkip = prefs.getBoolean(PlayerWidget.KEY_WIDGET_SKIP + id, false); - if (showRewind || showSkip || showFastForward) { + if (showPlaybackSpeed || showRewind || showSkip || showFastForward) { views.setInt(R.id.extendedButtonsContainer, "setVisibility", View.VISIBLE); views.setInt(R.id.butPlay, "setVisibility", View.GONE); + views.setInt(R.id.butPlaybackSpeed, "setVisibility", showPlaybackSpeed ? View.VISIBLE : View.GONE); views.setInt(R.id.butRew, "setVisibility", showRewind ? View.VISIBLE : View.GONE); views.setInt(R.id.butFastForward, "setVisibility", showFastForward ? View.VISIBLE : View.GONE); views.setInt(R.id.butSkip, "setVisibility", showSkip ? View.VISIBLE : View.GONE); diff --git a/core/src/main/res/layout/player_widget.xml b/core/src/main/res/layout/player_widget.xml index 60d40e6b5..6f3842e8b 100644 --- a/core/src/main/res/layout/player_widget.xml +++ b/core/src/main/res/layout/player_widget.xml @@ -88,6 +88,16 @@ android:orientation="horizontal" android:visibility="gone"> + + - -- cgit v1.2.3