diff options
author | ByteHamster <info@bytehamster.com> | 2020-05-20 10:38:51 +0200 |
---|---|---|
committer | ByteHamster <info@bytehamster.com> | 2020-05-20 11:13:07 +0200 |
commit | 2273d60ac47535e632392a77c1a572d800bb8b0d (patch) | |
tree | fefa3ca0910cfd87665d731b1d25633c1b4291fa /app/src/main/java/de/danoeh/antennapod/dialog/SleepTimerDialog.java | |
parent | 62fc413f9c626f4e749d2aa9c4e2e0b7225b16cb (diff) | |
download | AntennaPod-2273d60ac47535e632392a77c1a572d800bb8b0d.zip |
Sleep timer adjustments
- Close button instead of OK
- Save settings on-the-fly
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.java | 55 |
1 files changed, 17 insertions, 38 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 fafe888ee..a9c54e879 100644 --- a/app/src/main/java/de/danoeh/antennapod/dialog/SleepTimerDialog.java +++ b/app/src/main/java/de/danoeh/antennapod/dialog/SleepTimerDialog.java @@ -2,9 +2,8 @@ package de.danoeh.antennapod.dialog; import android.app.Dialog; import android.content.Context; +import android.content.DialogInterface; import android.os.Bundle; -import android.text.Editable; -import android.text.TextWatcher; import android.view.View; import android.view.inputmethod.InputMethodManager; import android.widget.ArrayAdapter; @@ -14,7 +13,6 @@ import android.widget.EditText; import android.widget.LinearLayout; import android.widget.Spinner; import android.widget.TextView; -import android.widget.Toast; import androidx.annotation.NonNull; import androidx.appcompat.app.AlertDialog; import androidx.fragment.app.DialogFragment; @@ -36,9 +34,6 @@ public class SleepTimerDialog extends DialogFragment { private EditText etxtTime; private Spinner spTimeUnit; - private CheckBox cbShakeToReset; - private CheckBox cbVibrate; - private CheckBox chAutoEnable; private LinearLayout timeSetup; private LinearLayout timeDisplay; private TextView time; @@ -85,33 +80,15 @@ public class SleepTimerDialog extends DialogFragment { AlertDialog.Builder builder = new AlertDialog.Builder(getContext()); builder.setTitle(R.string.sleep_timer_label); builder.setView(content); - builder.setPositiveButton(android.R.string.ok, null); + builder.setPositiveButton(R.string.close_label, null); etxtTime = content.findViewById(R.id.etxtTime); spTimeUnit = content.findViewById(R.id.spTimeUnit); - cbShakeToReset = content.findViewById(R.id.cbShakeToReset); - cbVibrate = content.findViewById(R.id.cbVibrate); - chAutoEnable = content.findViewById(R.id.chAutoEnable); timeSetup = content.findViewById(R.id.timeSetup); timeDisplay = content.findViewById(R.id.timeDisplay); time = content.findViewById(R.id.time); - AlertDialog dialog = builder.create(); etxtTime.setText(SleepTimerPreferences.lastTimerValue()); - etxtTime.addTextChangedListener(new TextWatcher() { - @Override - public void afterTextChanged(Editable s) { - dialog.getButton(AlertDialog.BUTTON_POSITIVE).setEnabled(s.length() > 0); - } - - @Override - public void beforeTextChanged(CharSequence s, int start, int count, int after) { - } - - @Override - public void onTextChanged(CharSequence s, int start, int before, int count) { - } - }); etxtTime.postDelayed(() -> { InputMethodManager imm = (InputMethodManager) getContext().getSystemService(Context.INPUT_METHOD_SERVICE); imm.showSoftInput(etxtTime, InputMethodManager.SHOW_IMPLICIT); @@ -127,12 +104,21 @@ public class SleepTimerDialog extends DialogFragment { spTimeUnit.setAdapter(spinnerAdapter); spTimeUnit.setSelection(SleepTimerPreferences.lastTimerTimeUnit()); + CheckBox cbShakeToReset = content.findViewById(R.id.cbShakeToReset); + CheckBox cbVibrate = content.findViewById(R.id.cbVibrate); + CheckBox chAutoEnable = content.findViewById(R.id.chAutoEnable); + cbShakeToReset.setChecked(SleepTimerPreferences.shakeToReset()); cbVibrate.setChecked(SleepTimerPreferences.vibrate()); chAutoEnable.setChecked(SleepTimerPreferences.autoEnable()); + cbShakeToReset.setOnCheckedChangeListener((buttonView, isChecked) + -> SleepTimerPreferences.setShakeToReset(isChecked)); + cbVibrate.setOnCheckedChangeListener((buttonView, isChecked) + -> SleepTimerPreferences.setVibrate(isChecked)); chAutoEnable.setOnCheckedChangeListener((compoundButton, isChecked) - -> SleepTimerPreferences.setAutoEnable(isChecked)); + -> SleepTimerPreferences.setAutoEnable(isChecked)); + Button disableButton = content.findViewById(R.id.disableSleeptimerButton); disableButton.setOnClickListener(v -> { if (controller != null) { @@ -143,27 +129,20 @@ public class SleepTimerDialog extends DialogFragment { setButton.setOnClickListener(v -> { if (!PlaybackService.isRunning) { Snackbar.make(content, R.string.no_media_playing_label, Snackbar.LENGTH_LONG).show(); + return; } try { - savePreferences(); + SleepTimerPreferences.setLastTimer(etxtTime.getText().toString(), spTimeUnit.getSelectedItemPosition()); long time = SleepTimerPreferences.timerMillis(); if (controller != null) { - controller.setSleepTimer(time, cbShakeToReset.isChecked(), cbVibrate.isChecked()); + controller.setSleepTimer(time); } } catch (NumberFormatException e) { e.printStackTrace(); - Toast.makeText(getContext(), R.string.time_dialog_invalid_input, Toast.LENGTH_LONG).show(); + Snackbar.make(content, R.string.time_dialog_invalid_input, Snackbar.LENGTH_LONG).show(); } }); - return dialog; - } - - private void savePreferences() { - SleepTimerPreferences.setLastTimer(etxtTime.getText().toString(), - spTimeUnit.getSelectedItemPosition()); - SleepTimerPreferences.setShakeToReset(cbShakeToReset.isChecked()); - SleepTimerPreferences.setVibrate(cbVibrate.isChecked()); - SleepTimerPreferences.setAutoEnable(chAutoEnable.isChecked()); + return builder.create(); } private void updateTime() { |