diff options
author | Max Wittig <max.wittig@siemens.com> | 2021-01-01 13:18:53 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-01-01 13:18:53 +0100 |
commit | 054a4f42a3c5a757313232cc9e147274f0063149 (patch) | |
tree | 3f7b48a3a10e7f8d8c0c4854a6dde6b4163315bd | |
parent | 5998e2849789d42be4f8ee60a8c2ed71518ef880 (diff) | |
download | AntennaPod-054a4f42a3c5a757313232cc9e147274f0063149.zip |
feat: add five, ten and twenty minutes sleep timer extend buttons (#4803)
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> |