summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMax Wittig <max.wittig@siemens.com>2021-01-01 13:18:53 +0100
committerGitHub <noreply@github.com>2021-01-01 13:18:53 +0100
commit054a4f42a3c5a757313232cc9e147274f0063149 (patch)
tree3f7b48a3a10e7f8d8c0c4854a6dde6b4163315bd
parent5998e2849789d42be4f8ee60a8c2ed71518ef880 (diff)
downloadAntennaPod-054a4f42a3c5a757313232cc9e147274f0063149.zip
feat: add five, ten and twenty minutes sleep timer extend buttons (#4803)
-rw-r--r--app/src/main/java/de/danoeh/antennapod/dialog/SleepTimerDialog.java21
-rw-r--r--app/src/main/res/layout/time_dialog.xml47
-rw-r--r--core/src/main/java/de/danoeh/antennapod/core/util/playback/PlaybackController.java7
-rw-r--r--core/src/main/res/values/strings.xml1
4 files changed, 73 insertions, 3 deletions
diff --git a/app/src/main/java/de/danoeh/antennapod/dialog/SleepTimerDialog.java b/app/src/main/java/de/danoeh/antennapod/dialog/SleepTimerDialog.java
index 7788641cc..f1a41d753 100644
--- a/app/src/main/java/de/danoeh/antennapod/dialog/SleepTimerDialog.java
+++ b/app/src/main/java/de/danoeh/antennapod/dialog/SleepTimerDialog.java
@@ -87,6 +87,27 @@ public class SleepTimerDialog extends DialogFragment {
timeSetup = content.findViewById(R.id.timeSetup);
timeDisplay = content.findViewById(R.id.timeDisplay);
time = content.findViewById(R.id.time);
+ Button extendSleepFiveMinutesButton = content.findViewById(R.id.extendSleepFiveMinutesButton);
+ extendSleepFiveMinutesButton.setText(getString(R.string.extend_sleep_timer_label, 5));
+ Button extendSleepTenMinutesButton = content.findViewById(R.id.extendSleepTenMinutesButton);
+ extendSleepTenMinutesButton.setText(getString(R.string.extend_sleep_timer_label, 10));
+ Button extendSleepTwentyMinutesButton = content.findViewById(R.id.extendSleepTwentyMinutesButton);
+ extendSleepTwentyMinutesButton.setText(getString(R.string.extend_sleep_timer_label, 20));
+ extendSleepFiveMinutesButton.setOnClickListener(v -> {
+ if (controller != null) {
+ controller.extendSleepTimer(5 * 1000 * 60);
+ }
+ });
+ extendSleepTenMinutesButton.setOnClickListener(v -> {
+ if (controller != null) {
+ controller.extendSleepTimer(10 * 1000 * 60);
+ }
+ });
+ extendSleepTwentyMinutesButton.setOnClickListener(v -> {
+ if (controller != null) {
+ controller.extendSleepTimer(20 * 1000 * 60);
+ }
+ });
etxtTime.setText(SleepTimerPreferences.lastTimerValue());
etxtTime.postDelayed(() -> {
diff --git a/app/src/main/res/layout/time_dialog.xml b/app/src/main/res/layout/time_dialog.xml
index 6523bb1be..6b6ab3195 100644
--- a/app/src/main/res/layout/time_dialog.xml
+++ b/app/src/main/res/layout/time_dialog.xml
@@ -2,6 +2,7 @@
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
+ xmlns:tools="http://schemas.android.com/tools"
android:orientation="vertical"
android:gravity="center"
android:padding="16dp">
@@ -52,10 +53,11 @@
<TextView
android:text="00:00:00"
android:layout_gravity="center"
+ android:gravity="center"
android:textSize="32sp"
android:textColor="?android:attr/textColorPrimary"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
android:id="@+id/time"/>
<Button
@@ -64,6 +66,45 @@
android:layout_height="wrap_content"
android:id="@+id/disableSleeptimerButton"/>
+ <LinearLayout
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:orientation="horizontal">
+
+ <Button
+ android:id="@+id/extendSleepFiveMinutesButton"
+ style="?attr/materialButtonOutlinedStyle"
+ android:layout_width="0dp"
+ android:layout_height="wrap_content"
+ android:layout_marginEnd="4dp"
+ android:layout_marginRight="4dp"
+ android:layout_weight="1"
+ android:padding="5dp"
+ tools:text="+5 min" />
+
+ <Button
+ android:id="@+id/extendSleepTenMinutesButton"
+ style="?attr/materialButtonOutlinedStyle"
+ android:layout_width="0dp"
+ android:layout_height="wrap_content"
+ android:layout_marginStart="4dp"
+ android:layout_marginEnd="4dp"
+ android:layout_weight="1"
+ tools:text="+10 min" />
+
+ <Button
+ android:id="@+id/extendSleepTwentyMinutesButton"
+ style="?attr/materialButtonOutlinedStyle"
+ android:layout_width="0dp"
+ android:layout_height="wrap_content"
+ android:layout_marginStart="4dp"
+ android:layout_marginRight="4dp"
+ android:layout_marginLeft="4dp"
+ android:layout_weight="1"
+ tools:text="+20 min" />
+
+ </LinearLayout>
+
</LinearLayout>
@@ -93,4 +134,4 @@
</LinearLayout>
-</LinearLayout> \ No newline at end of file
+</LinearLayout>
diff --git a/core/src/main/java/de/danoeh/antennapod/core/util/playback/PlaybackController.java b/core/src/main/java/de/danoeh/antennapod/core/util/playback/PlaybackController.java
index 425a07f4a..e1b4c967c 100644
--- a/core/src/main/java/de/danoeh/antennapod/core/util/playback/PlaybackController.java
+++ b/core/src/main/java/de/danoeh/antennapod/core/util/playback/PlaybackController.java
@@ -564,6 +564,13 @@ public class PlaybackController {
}
}
+ public void extendSleepTimer(long extendTime) {
+ long timeLeft = getSleepTimerTimeLeft();
+ if (playbackService != null && timeLeft != INVALID_TIME) {
+ setSleepTimer(timeLeft + extendTime);
+ }
+ }
+
public void setSleepTimer(long time) {
if (playbackService != null) {
playbackService.setSleepTimer(time);
diff --git a/core/src/main/res/values/strings.xml b/core/src/main/res/values/strings.xml
index 118317f18..bd19ec827 100644
--- a/core/src/main/res/values/strings.xml
+++ b/core/src/main/res/values/strings.xml
@@ -602,6 +602,7 @@
<!-- Sleep timer -->
<string name="set_sleeptimer_label">Set sleep timer</string>
<string name="disable_sleeptimer_label">Disable sleep timer</string>
+ <string name="extend_sleep_timer_label">+%d min</string>
<string name="sleep_timer_label">Sleep timer</string>
<string name="time_dialog_invalid_input">Invalid input, time has to be an integer</string>
<string name="shake_to_reset_label">Shake to reset</string>