From 43755f071d8f40917a39bf0229515303381b9099 Mon Sep 17 00:00:00 2001 From: Johannes Mockenhaupt Date: Wed, 7 Feb 2018 20:13:35 +0100 Subject: [PATCH] Add mute button to error dialog. So that users needn't hastily close the dialog to stop the sound and then not being able to read the actual message. --- .../plugins/Overview/Dialogs/ErrorDialog.java | 24 +++++++++++++++---- .../main/res/layout/overview_error_dialog.xml | 10 +++++++- app/src/main/res/values/strings.xml | 1 + 3 files changed, 29 insertions(+), 6 deletions(-) diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/Overview/Dialogs/ErrorDialog.java b/app/src/main/java/info/nightscout/androidaps/plugins/Overview/Dialogs/ErrorDialog.java index f11283c029..7d45c35792 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/Overview/Dialogs/ErrorDialog.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/Overview/Dialogs/ErrorDialog.java @@ -19,6 +19,7 @@ import info.nightscout.androidaps.Services.AlarmSoundService; public class ErrorDialog extends DialogFragment implements View.OnClickListener { private static Logger log = LoggerFactory.getLogger(ErrorDialog.class); + Button muteButton; Button okButton; TextView statusView; ErrorHelperActivity helperActivity; @@ -52,14 +53,14 @@ public class ErrorDialog extends DialogFragment implements View.OnClickListener Bundle savedInstanceState) { getDialog().setTitle(title); View view = inflater.inflate(R.layout.overview_error_dialog, container, false); + muteButton = (Button) view.findViewById(R.id.overview_error_mute); okButton = (Button) view.findViewById(R.id.overview_error_ok); statusView = (TextView) view.findViewById(R.id.overview_error_status); + muteButton.setOnClickListener(this); okButton.setOnClickListener(this); setCancelable(false); - Intent alarm = new Intent(MainApp.instance().getApplicationContext(), AlarmSoundService.class); - alarm.putExtra("soundid", soundId); - MainApp.instance().startService(alarm); + startAlarm(); return view; } @@ -77,13 +78,16 @@ public class ErrorDialog extends DialogFragment implements View.OnClickListener if (helperActivity != null) { helperActivity.finish(); } - Intent alarm = new Intent(MainApp.instance().getApplicationContext(), AlarmSoundService.class); - MainApp.instance().stopService(alarm); + stopAlarm(); } @Override public void onClick(View view) { switch (view.getId()) { + case R.id.overview_error_mute: + log.debug("Error dialog mute button pressed"); + stopAlarm(); + break; case R.id.overview_error_ok: log.debug("Error dialog ok button pressed"); dismiss(); @@ -91,4 +95,14 @@ public class ErrorDialog extends DialogFragment implements View.OnClickListener } } + private void startAlarm() { + Intent alarm = new Intent(MainApp.instance().getApplicationContext(), AlarmSoundService.class); + alarm.putExtra("soundid", soundId); + MainApp.instance().startService(alarm); + } + + private void stopAlarm() { + Intent alarm = new Intent(MainApp.instance().getApplicationContext(), AlarmSoundService.class); + MainApp.instance().stopService(alarm); + } } diff --git a/app/src/main/res/layout/overview_error_dialog.xml b/app/src/main/res/layout/overview_error_dialog.xml index e32007ad68..0a8fa5483b 100644 --- a/app/src/main/res/layout/overview_error_dialog.xml +++ b/app/src/main/res/layout/overview_error_dialog.xml @@ -13,12 +13,20 @@ android:layout_height="wrap_content" android:layout_gravity="center_horizontal" /> +