summaryrefslogtreecommitdiff
path: root/app/src/main/java/de/danoeh/antennapod/dialog/SleepTimerDialog.java
diff options
context:
space:
mode:
Diffstat (limited to 'app/src/main/java/de/danoeh/antennapod/dialog/SleepTimerDialog.java')
-rw-r--r--app/src/main/java/de/danoeh/antennapod/dialog/SleepTimerDialog.java66
1 files changed, 57 insertions, 9 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 52e6f7807..ecbc1d873 100644
--- a/app/src/main/java/de/danoeh/antennapod/dialog/SleepTimerDialog.java
+++ b/app/src/main/java/de/danoeh/antennapod/dialog/SleepTimerDialog.java
@@ -4,6 +4,7 @@ import android.app.Activity;
import android.app.Dialog;
import android.content.Context;
import android.os.Bundle;
+import android.text.format.DateFormat;
import android.view.View;
import android.view.inputmethod.InputMethodManager;
import android.widget.Button;
@@ -11,19 +12,25 @@ import android.widget.CheckBox;
import android.widget.EditText;
import android.widget.LinearLayout;
import android.widget.TextView;
+
import androidx.annotation.NonNull;
-import com.google.android.material.dialog.MaterialAlertDialogBuilder;
import androidx.fragment.app.DialogFragment;
+
+import com.google.android.material.dialog.MaterialAlertDialogBuilder;
import com.google.android.material.snackbar.Snackbar;
+
+import org.greenrobot.eventbus.EventBus;
+import org.greenrobot.eventbus.Subscribe;
+import org.greenrobot.eventbus.ThreadMode;
+
+import java.util.Locale;
+
import de.danoeh.antennapod.R;
-import de.danoeh.antennapod.event.playback.SleepTimerUpdatedEvent;
import de.danoeh.antennapod.core.preferences.SleepTimerPreferences;
import de.danoeh.antennapod.core.service.playback.PlaybackService;
import de.danoeh.antennapod.core.util.Converter;
import de.danoeh.antennapod.core.util.playback.PlaybackController;
-import org.greenrobot.eventbus.EventBus;
-import org.greenrobot.eventbus.Subscribe;
-import org.greenrobot.eventbus.ThreadMode;
+import de.danoeh.antennapod.event.playback.SleepTimerUpdatedEvent;
public class SleepTimerDialog extends DialogFragment {
private PlaybackController controller;
@@ -31,6 +38,7 @@ public class SleepTimerDialog extends DialogFragment {
private LinearLayout timeSetup;
private LinearLayout timeDisplay;
private TextView time;
+ private CheckBox chAutoEnable;
public SleepTimerDialog() {
@@ -99,20 +107,38 @@ public class SleepTimerDialog extends DialogFragment {
imm.showSoftInput(etxtTime, InputMethodManager.SHOW_IMPLICIT);
}, 100);
- CheckBox cbShakeToReset = content.findViewById(R.id.cbShakeToReset);
- CheckBox cbVibrate = content.findViewById(R.id.cbVibrate);
- CheckBox chAutoEnable = content.findViewById(R.id.chAutoEnable);
+ final CheckBox cbShakeToReset = content.findViewById(R.id.cbShakeToReset);
+ final CheckBox cbVibrate = content.findViewById(R.id.cbVibrate);
+ chAutoEnable = content.findViewById(R.id.chAutoEnable);
+ final TextView changeTimesButton = content.findViewById(R.id.changeTimes);
cbShakeToReset.setChecked(SleepTimerPreferences.shakeToReset());
cbVibrate.setChecked(SleepTimerPreferences.vibrate());
chAutoEnable.setChecked(SleepTimerPreferences.autoEnable());
+ changeTimesButton.setEnabled(chAutoEnable.isChecked());
cbShakeToReset.setOnCheckedChangeListener((buttonView, isChecked)
-> SleepTimerPreferences.setShakeToReset(isChecked));
cbVibrate.setOnCheckedChangeListener((buttonView, isChecked)
-> SleepTimerPreferences.setVibrate(isChecked));
chAutoEnable.setOnCheckedChangeListener((compoundButton, isChecked)
- -> SleepTimerPreferences.setAutoEnable(isChecked));
+ -> {
+ SleepTimerPreferences.setAutoEnable(isChecked);
+ changeTimesButton.setEnabled(isChecked);
+ });
+ updateAutoEnableText();
+
+ changeTimesButton.setOnClickListener(changeTimesBtn -> {
+ int from = SleepTimerPreferences.autoEnableFrom();
+ int to = SleepTimerPreferences.autoEnableTo();
+ TimeRangeDialog dialog = new TimeRangeDialog(getContext(), from, to);
+ dialog.setOnDismissListener(v -> {
+ SleepTimerPreferences.setAutoEnableFrom(dialog.getFrom());
+ SleepTimerPreferences.setAutoEnableTo(dialog.getTo());
+ updateAutoEnableText();
+ });
+ dialog.show();
+ });
Button disableButton = content.findViewById(R.id.disableSleeptimerButton);
disableButton.setOnClickListener(v -> {
@@ -144,6 +170,28 @@ public class SleepTimerDialog extends DialogFragment {
return builder.create();
}
+ private void updateAutoEnableText() {
+ String text;
+ int from = SleepTimerPreferences.autoEnableFrom();
+ int to = SleepTimerPreferences.autoEnableTo();
+
+ if (from == to) {
+ text = getString(R.string.auto_enable_label);
+ } else if (DateFormat.is24HourFormat(getContext())) {
+ String formattedFrom = String.format(Locale.getDefault(), "%02d:00", from);
+ String formattedTo = String.format(Locale.getDefault(), "%02d:00", to);
+ text = getString(R.string.auto_enable_label_with_times, formattedFrom, formattedTo);
+ } else {
+ String formattedFrom = String.format(Locale.getDefault(), "%02d:00 %s",
+ from % 12, from >= 12 ? "PM" : "AM");
+ String formattedTo = String.format(Locale.getDefault(), "%02d:00 %s",
+ to % 12, to >= 12 ? "PM" : "AM");
+ text = getString(R.string.auto_enable_label_with_times, formattedFrom, formattedTo);
+
+ }
+ chAutoEnable.setText(text);
+ }
+
@Subscribe(threadMode = ThreadMode.MAIN)
@SuppressWarnings("unused")
public void timerUpdated(SleepTimerUpdatedEvent event) {