From 2ce590a7003950b8b7531360384b86cbfda6c546 Mon Sep 17 00:00:00 2001 From: Milos Kozak Date: Fri, 20 Dec 2019 21:52:37 +0100 Subject: [PATCH] BolusProgressDialog refactor --- app/src/main/AndroidManifest.xml | 2 +- .../activities/BolusProgressHelperActivity.kt | 14 ++ .../androidaps/dialogs/BolusProgressDialog.kt | 155 ++++++++++++++ .../objectives/dialogs/NtpProgressDialog.kt | 11 +- .../Dialogs/NewNSTreatmentDialog.java | 2 +- .../overview/dialogs/BolusProgressDialog.java | 198 ------------------ .../dialogs/BolusProgressHelperActivity.java | 20 -- .../danaR/services/DanaRExecutionService.java | 2 +- .../services/DanaRKoreanExecutionService.java | 2 +- .../pump/danaRS/services/DanaRSService.java | 2 +- .../services/DanaRv2ExecutionService.java | 2 +- .../androidaps/queue/CommandQueue.java | 4 +- .../queue/commands/CommandBolus.java | 2 +- ...ror_red_24dp.xml => ic_error_red_48dp.xml} | 0 .../drawable/ic_trending_flat_white_48dp.xml | 5 + ...ss_dialog.xml => dialog_bolusprogress.xml} | 38 +++- app/src/main/res/layout/dialog_error.xml | 2 +- .../Dialogs/NewNSTreatmentDialogTest.java | 6 +- 18 files changed, 230 insertions(+), 237 deletions(-) create mode 100644 app/src/main/java/info/nightscout/androidaps/activities/BolusProgressHelperActivity.kt create mode 100644 app/src/main/java/info/nightscout/androidaps/dialogs/BolusProgressDialog.kt delete mode 100644 app/src/main/java/info/nightscout/androidaps/plugins/general/overview/dialogs/BolusProgressDialog.java delete mode 100644 app/src/main/java/info/nightscout/androidaps/plugins/general/overview/dialogs/BolusProgressHelperActivity.java rename app/src/main/res/drawable/{ic_error_red_24dp.xml => ic_error_red_48dp.xml} (100%) create mode 100644 app/src/main/res/drawable/ic_trending_flat_white_48dp.xml rename app/src/main/res/layout/{overview_bolusprogress_dialog.xml => dialog_bolusprogress.xml} (57%) diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 24890bb291..b571e247c2 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -51,7 +51,7 @@ statusView.setText(event.getStatus()), FabricPrivacy::logException) - ); - disposable.add(RxBus.INSTANCE - .toObservable(EventDismissBolusProgressIfRunning.class) - .observeOn(AndroidSchedulers.mainThread()) - .subscribe(event -> { - if (L.isEnabled(L.UI)) log.debug("EventDismissBolusProgressIfRunning"); - if (BolusProgressDialog.running) dismiss(); - }, FabricPrivacy::logException) - ); - disposable.add(RxBus.INSTANCE - .toObservable(EventOverviewBolusProgress.class) - .observeOn(AndroidSchedulers.mainThread()) - .subscribe(event -> { - if (L.isEnabled(L.UI)) - log.debug("Status: " + event.getStatus() + " Percent: " + event.getPercent()); - statusView.setText(event.getStatus()); - progressBar.setProgress(event.getPercent()); - if (event.getPercent() == 100) { - stopButton.setVisibility(View.INVISIBLE); - scheduleDismiss(); - } - state = event.getStatus(); - }, FabricPrivacy::logException) - ); - } - - @Override - public void dismiss() { - if (L.isEnabled(L.UI)) - log.debug("dismiss"); - try { - super.dismiss(); - } catch (IllegalStateException e) { - // dialog not running yet. onResume will try again. Set bolusEnded to make extra - // sure onResume will catch this - bolusEnded = true; - log.error("Unhandled exception", e); - } - if (helperActivity != null) { - helperActivity.finish(); - } - } - - @Override - public void onPause() { - if (L.isEnabled(L.UI)) - log.debug("onPause"); - running = false; - super.onPause(); - disposable.clear(); - } - - @Override - public void onSaveInstanceState(@NonNull Bundle outState) { - outState.putString("state", state); - log.debug("storing state: " + state); - super.onSaveInstanceState(outState); - } - - @Override - public void onClick(View view) { - switch (view.getId()) { - case R.id.overview_bolusprogress_stop: - if (L.isEnabled(L.UI)) - log.debug("Stop bolus delivery button pressed"); - stopPressed = true; - stopPressedView.setVisibility(View.VISIBLE); - stopButton.setVisibility(View.INVISIBLE); - ConfigBuilderPlugin.getPlugin().getCommandQueue().cancelAllBoluses(); - break; - } - } - - private void scheduleDismiss() { - if (L.isEnabled(L.UI)) - log.debug("scheduleDismiss"); - Thread t = new Thread(() -> { - SystemClock.sleep(5000); - BolusProgressDialog.bolusEnded = true; - Activity activity = getActivity(); - if (activity != null) { - activity.runOnUiThread(() -> { - try { - if (running) { - if (L.isEnabled(L.UI)) - log.debug("executing"); - dismiss(); - } - } catch (Exception e) { - log.error("Unhandled exception", e); - } - }); - } - }); - t.start(); - } -} diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/general/overview/dialogs/BolusProgressHelperActivity.java b/app/src/main/java/info/nightscout/androidaps/plugins/general/overview/dialogs/BolusProgressHelperActivity.java deleted file mode 100644 index 54f6aa7688..0000000000 --- a/app/src/main/java/info/nightscout/androidaps/plugins/general/overview/dialogs/BolusProgressHelperActivity.java +++ /dev/null @@ -1,20 +0,0 @@ -package info.nightscout.androidaps.plugins.general.overview.dialogs; - -import android.os.Bundle; - -import info.nightscout.androidaps.activities.NoSplashAppCompatActivity; - -public class BolusProgressHelperActivity extends NoSplashAppCompatActivity { - public BolusProgressHelperActivity() { - super(); - } - - @Override - public void onCreate(Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - BolusProgressDialog bolusProgressDialog = new BolusProgressDialog(); - bolusProgressDialog.setHelperActivity(this); - bolusProgressDialog.setInsulin(getIntent().getDoubleExtra("insulin", 0d)); - bolusProgressDialog.show(getSupportFragmentManager(), "BolusProgress"); - } -} diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/pump/danaR/services/DanaRExecutionService.java b/app/src/main/java/info/nightscout/androidaps/plugins/pump/danaR/services/DanaRExecutionService.java index dba3b4ca77..848abd9b52 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/pump/danaR/services/DanaRExecutionService.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/pump/danaR/services/DanaRExecutionService.java @@ -24,7 +24,7 @@ import info.nightscout.androidaps.plugins.bus.RxBus; import info.nightscout.androidaps.plugins.configBuilder.ConfigBuilderPlugin; import info.nightscout.androidaps.plugins.configBuilder.ProfileFunctions; import info.nightscout.androidaps.plugins.general.nsclient.NSUpload; -import info.nightscout.androidaps.plugins.general.overview.dialogs.BolusProgressDialog; +import info.nightscout.androidaps.dialogs.BolusProgressDialog; import info.nightscout.androidaps.plugins.general.overview.events.EventNewNotification; import info.nightscout.androidaps.plugins.general.overview.events.EventOverviewBolusProgress; import info.nightscout.androidaps.plugins.general.overview.notifications.Notification; diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/pump/danaRKorean/services/DanaRKoreanExecutionService.java b/app/src/main/java/info/nightscout/androidaps/plugins/pump/danaRKorean/services/DanaRKoreanExecutionService.java index bb1f226730..0032a7e5e0 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/pump/danaRKorean/services/DanaRKoreanExecutionService.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/pump/danaRKorean/services/DanaRKoreanExecutionService.java @@ -24,7 +24,7 @@ import info.nightscout.androidaps.plugins.bus.RxBus; import info.nightscout.androidaps.plugins.configBuilder.ConfigBuilderPlugin; import info.nightscout.androidaps.plugins.configBuilder.ProfileFunctions; import info.nightscout.androidaps.plugins.general.nsclient.NSUpload; -import info.nightscout.androidaps.plugins.general.overview.dialogs.BolusProgressDialog; +import info.nightscout.androidaps.dialogs.BolusProgressDialog; import info.nightscout.androidaps.plugins.general.overview.events.EventNewNotification; import info.nightscout.androidaps.plugins.general.overview.notifications.Notification; import info.nightscout.androidaps.plugins.pump.danaR.DanaRPump; diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/pump/danaRS/services/DanaRSService.java b/app/src/main/java/info/nightscout/androidaps/plugins/pump/danaRS/services/DanaRSService.java index 63320e3808..776f6f9272 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/pump/danaRS/services/DanaRSService.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/pump/danaRS/services/DanaRSService.java @@ -26,7 +26,7 @@ import info.nightscout.androidaps.plugins.bus.RxBus; import info.nightscout.androidaps.plugins.configBuilder.ConfigBuilderPlugin; import info.nightscout.androidaps.plugins.configBuilder.ProfileFunctions; import info.nightscout.androidaps.plugins.general.nsclient.NSUpload; -import info.nightscout.androidaps.plugins.general.overview.dialogs.BolusProgressDialog; +import info.nightscout.androidaps.dialogs.BolusProgressDialog; import info.nightscout.androidaps.activities.ErrorHelperActivity; import info.nightscout.androidaps.plugins.general.overview.events.EventNewNotification; import info.nightscout.androidaps.plugins.general.overview.events.EventOverviewBolusProgress; diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/pump/danaRv2/services/DanaRv2ExecutionService.java b/app/src/main/java/info/nightscout/androidaps/plugins/pump/danaRv2/services/DanaRv2ExecutionService.java index 3b4a6406f3..ef254580f9 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/pump/danaRv2/services/DanaRv2ExecutionService.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/pump/danaRv2/services/DanaRv2ExecutionService.java @@ -25,7 +25,7 @@ import info.nightscout.androidaps.plugins.bus.RxBus; import info.nightscout.androidaps.plugins.configBuilder.ConfigBuilderPlugin; import info.nightscout.androidaps.plugins.configBuilder.ProfileFunctions; import info.nightscout.androidaps.plugins.general.nsclient.NSUpload; -import info.nightscout.androidaps.plugins.general.overview.dialogs.BolusProgressDialog; +import info.nightscout.androidaps.dialogs.BolusProgressDialog; import info.nightscout.androidaps.activities.ErrorHelperActivity; import info.nightscout.androidaps.plugins.general.overview.events.EventNewNotification; import info.nightscout.androidaps.plugins.general.overview.events.EventOverviewBolusProgress; diff --git a/app/src/main/java/info/nightscout/androidaps/queue/CommandQueue.java b/app/src/main/java/info/nightscout/androidaps/queue/CommandQueue.java index 35d33ab884..05efc63aa3 100644 --- a/app/src/main/java/info/nightscout/androidaps/queue/CommandQueue.java +++ b/app/src/main/java/info/nightscout/androidaps/queue/CommandQueue.java @@ -15,6 +15,7 @@ import java.util.LinkedList; import info.nightscout.androidaps.MainApp; import info.nightscout.androidaps.R; +import info.nightscout.androidaps.activities.BolusProgressHelperActivity; import info.nightscout.androidaps.data.DetailedBolusInfo; import info.nightscout.androidaps.data.Profile; import info.nightscout.androidaps.data.PumpEnactResult; @@ -25,8 +26,7 @@ import info.nightscout.androidaps.logging.L; import info.nightscout.androidaps.plugins.bus.RxBus; import info.nightscout.androidaps.plugins.configBuilder.ConfigBuilderPlugin; import info.nightscout.androidaps.plugins.configBuilder.ProfileFunctions; -import info.nightscout.androidaps.plugins.general.overview.dialogs.BolusProgressDialog; -import info.nightscout.androidaps.plugins.general.overview.dialogs.BolusProgressHelperActivity; +import info.nightscout.androidaps.dialogs.BolusProgressDialog; import info.nightscout.androidaps.plugins.general.overview.events.EventDismissBolusProgressIfRunning; import info.nightscout.androidaps.plugins.general.overview.events.EventDismissNotification; import info.nightscout.androidaps.plugins.general.overview.events.EventNewNotification; diff --git a/app/src/main/java/info/nightscout/androidaps/queue/commands/CommandBolus.java b/app/src/main/java/info/nightscout/androidaps/queue/commands/CommandBolus.java index 6348ea31b9..5a67759594 100644 --- a/app/src/main/java/info/nightscout/androidaps/queue/commands/CommandBolus.java +++ b/app/src/main/java/info/nightscout/androidaps/queue/commands/CommandBolus.java @@ -8,7 +8,7 @@ import info.nightscout.androidaps.data.PumpEnactResult; import info.nightscout.androidaps.logging.L; import info.nightscout.androidaps.plugins.bus.RxBus; import info.nightscout.androidaps.plugins.configBuilder.ConfigBuilderPlugin; -import info.nightscout.androidaps.plugins.general.overview.dialogs.BolusProgressDialog; +import info.nightscout.androidaps.dialogs.BolusProgressDialog; import info.nightscout.androidaps.plugins.general.overview.events.EventDismissBolusProgressIfRunning; import info.nightscout.androidaps.queue.Callback; import info.nightscout.androidaps.utils.DecimalFormatter; diff --git a/app/src/main/res/drawable/ic_error_red_24dp.xml b/app/src/main/res/drawable/ic_error_red_48dp.xml similarity index 100% rename from app/src/main/res/drawable/ic_error_red_24dp.xml rename to app/src/main/res/drawable/ic_error_red_48dp.xml diff --git a/app/src/main/res/drawable/ic_trending_flat_white_48dp.xml b/app/src/main/res/drawable/ic_trending_flat_white_48dp.xml new file mode 100644 index 0000000000..a9bd780027 --- /dev/null +++ b/app/src/main/res/drawable/ic_trending_flat_white_48dp.xml @@ -0,0 +1,5 @@ + + + diff --git a/app/src/main/res/layout/overview_bolusprogress_dialog.xml b/app/src/main/res/layout/dialog_bolusprogress.xml similarity index 57% rename from app/src/main/res/layout/overview_bolusprogress_dialog.xml rename to app/src/main/res/layout/dialog_bolusprogress.xml index 2abd9d4e80..f9a8f242bd 100644 --- a/app/src/main/res/layout/overview_bolusprogress_dialog.xml +++ b/app/src/main/res/layout/dialog_bolusprogress.xml @@ -3,10 +3,41 @@ android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" - tools:context=".plugins.general.overview.dialogs.BolusProgressDialog" - android:paddingTop="15dp" - android:paddingBottom="15dp"> + tools:context=".dialogs.BolusProgressDialog" +> + + + + + + + + + diff --git a/app/src/main/res/layout/dialog_error.xml b/app/src/main/res/layout/dialog_error.xml index f6158c862f..bd486883de 100644 --- a/app/src/main/res/layout/dialog_error.xml +++ b/app/src/main/res/layout/dialog_error.xml @@ -17,7 +17,7 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:contentDescription="@string/error" - android:src="@drawable/ic_error_red_24dp" /> + android:src="@drawable/ic_error_red_48dp" />