From 28fa373d8339053fcb326688e17ff97d4befecb5 Mon Sep 17 00:00:00 2001 From: Philoul Date: Mon, 14 Dec 2020 22:04:23 +0100 Subject: [PATCH 1/7] Replace Context menu by long click menu --- .../general/overview/OverviewFragment.kt | 18 +++- .../plugins/general/overview/OverviewMenus.kt | 93 +++++++++++++++++++ 2 files changed, 109 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/general/overview/OverviewFragment.kt b/app/src/main/java/info/nightscout/androidaps/plugins/general/overview/OverviewFragment.kt index dbc0195fee..afbc185878 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/general/overview/OverviewFragment.kt +++ b/app/src/main/java/info/nightscout/androidaps/plugins/general/overview/OverviewFragment.kt @@ -214,6 +214,9 @@ class OverviewFragment : DaggerFragment(), View.OnClickListener, OnLongClickList overviewMenus.setupChartMenu(overview_chartMenuButton) prepareGraphs() + overviewMenus.setupPopupMenu(overview_apsmode, requireContext(), childFragmentManager) + overviewMenus.setupPopupMenu(overview_activeprofile, requireContext(), childFragmentManager) + overviewMenus.setupPopupMenu(overview_temptarget, requireContext(), childFragmentManager) overview_accepttempbutton?.setOnClickListener(this) overview_treatmentbutton?.setOnClickListener(this) overview_wizardbutton?.setOnClickListener(this) @@ -223,15 +226,20 @@ class OverviewFragment : DaggerFragment(), View.OnClickListener, OnLongClickList overview_carbsbutton?.setOnClickListener(this) overview_quickwizardbutton?.setOnClickListener(this) overview_quickwizardbutton?.setOnLongClickListener(this) + overview_apsmode?.setOnLongClickListener(this) + overview_activeprofile?.setOnLongClickListener(this) + overview_temptarget?.setOnLongClickListener(this) } override fun onPause() { super.onPause() disposable.clear() loopHandler.removeCallbacksAndMessages(null) - overview_apsmode_llayout?.let { unregisterForContextMenu(it) } +/* overview_apsmode_llayout?.let { unregisterForContextMenu(it) } overview_activeprofile?.let { unregisterForContextMenu(it) } overview_temptarget?.let { unregisterForContextMenu(it) } + + */ } override fun onResume() { @@ -303,9 +311,11 @@ class OverviewFragment : DaggerFragment(), View.OnClickListener, OnLongClickList } loopHandler.postDelayed(refreshLoop, 60 * 1000L) - overview_apsmode_llayout?.let { registerForContextMenu(overview_apsmode) } +/* overview_apsmode_llayout?.let { registerForContextMenu(overview_apsmode) } overview_activeprofile?.let { registerForContextMenu(it) } overview_temptarget?.let { registerForContextMenu(it) } + + */ updateGUI("onResume") } @@ -397,6 +407,10 @@ class OverviewFragment : DaggerFragment(), View.OnClickListener, OnLongClickList startActivity(Intent(v.context, QuickWizardListActivity::class.java)) return true } + R.id.overview_apsmode, R.id.overview_activeprofile, R.id.overview_temptarget -> { + OverviewMenus.showOKCancel = false + v.performClick() + } } return false } diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/general/overview/OverviewMenus.kt b/app/src/main/java/info/nightscout/androidaps/plugins/general/overview/OverviewMenus.kt index 4e996717c8..8347e9141f 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/general/overview/OverviewMenus.kt +++ b/app/src/main/java/info/nightscout/androidaps/plugins/general/overview/OverviewMenus.kt @@ -38,6 +38,7 @@ import info.nightscout.androidaps.queue.Callback import info.nightscout.androidaps.utils.DateUtil import info.nightscout.androidaps.utils.DefaultValueHelper import info.nightscout.androidaps.utils.ToastUtils +import info.nightscout.androidaps.utils.alertDialogs.OKDialog import info.nightscout.androidaps.utils.buildHelper.BuildHelper import info.nightscout.androidaps.utils.resources.ResourceHelper import info.nightscout.androidaps.utils.sharedPreferences.SP @@ -75,6 +76,7 @@ class OverviewMenus @Inject constructor( companion object { const val MAX_GRAPHS = 5 // including main + var showOKCancel = true } fun enabledTypes(graph: Int): String { @@ -175,6 +177,97 @@ class OverviewMenus @Inject constructor( } } + fun setupPopupMenu(v: View, context: Context, manager: FragmentManager) { + v.setOnClickListener { + val popup = PopupMenu(v.context, v) + when (v.id) { + R.id.overview_apsmode -> { + val pumpDescription: PumpDescription = activePlugin.activePump.pumpDescription + if (profileFunction.isProfileValid("ContextMenuCreation")) { + val item = popup.menu.add(Menu.NONE,1,Menu.NONE,resourceHelper.gs(R.string.loop)) // title + val title = item.title + val s = SpannableString(title) + s.setSpan( ForegroundColorSpan(resourceHelper.gc(R.color.colorAccent)), 0, s.length, 0) + item.setTitle(s) + if (loopPlugin.isEnabled(PluginType.LOOP)) { + popup.menu.add(resourceHelper.gs(R.string.disableloop)) + if (!loopPlugin.isSuspended) { + popup.menu.add(resourceHelper.gs(R.string.suspendloopfor1h)) + popup.menu.add(resourceHelper.gs(R.string.suspendloopfor2h)) + popup.menu.add(resourceHelper.gs(R.string.suspendloopfor3h)) + popup.menu.add(resourceHelper.gs(R.string.suspendloopfor10h)) + } else { + if (!loopPlugin.isDisconnected) { + popup.menu.add(resourceHelper.gs(R.string.resume)) + } + } + } + if (!loopPlugin.isEnabled(PluginType.LOOP)) { + popup.menu.add(resourceHelper.gs(R.string.enableloop)) + } + if (!loopPlugin.isDisconnected) { + if (pumpDescription.tempDurationStep15mAllowed) popup.menu.add(resourceHelper.gs(R.string.disconnectpumpfor15m)) + if (pumpDescription.tempDurationStep30mAllowed) popup.menu.add(resourceHelper.gs(R.string.disconnectpumpfor30m)) + popup.menu.add(resourceHelper.gs(R.string.disconnectpumpfor1h)) + popup.menu.add(resourceHelper.gs(R.string.disconnectpumpfor2h)) + popup.menu.add(resourceHelper.gs(R.string.disconnectpumpfor3h)) + } else { + popup.menu.add(resourceHelper.gs(R.string.reconnect)) + } + } + } + R.id.overview_activeprofile -> { + val item = popup.menu.add(Menu.NONE,1,Menu.NONE,resourceHelper.gs(R.string.profile)) // title + val title = item.title + val s = SpannableString(title) + s.setSpan(ForegroundColorSpan(resourceHelper.gc(R.color.colorAccent)), 0, s.length, 0) + item.setTitle(s) + popup.menu.add(resourceHelper.gs(R.string.viewprofile)) + if (activePlugin.activeProfileInterface.profile != null) { + popup.menu.add(resourceHelper.gs(R.string.careportal_profileswitch)) + } + } + R.id.overview_temptarget -> { + val item = popup.menu.add(Menu.NONE,1,Menu.NONE,resourceHelper.gs(R.string.careportal_temporarytarget)) // title + val title = item.title + val s = SpannableString(title) + s.setSpan(ForegroundColorSpan(resourceHelper.gc(R.color.colorAccent)), 0, s.length, 0) + item.setTitle(s) + popup.menu.add(resourceHelper.gs(R.string.custom)) + popup.menu.add(resourceHelper.gs(R.string.eatingsoon)) + popup.menu.add(resourceHelper.gs(R.string.activity)) + popup.menu.add(resourceHelper.gs(R.string.hypo)) + if (activePlugin.activeTreatments.tempTargetFromHistory != null) { + popup.menu.add(resourceHelper.gs(R.string.cancel)) + } + } + } + popup.setOnMenuItemClickListener { + if (it.itemId != 1) { + if (showOKCancel) { + when (it.title) { + resourceHelper.gs(R.string.careportal_profileswitch), + resourceHelper.gs(R.string.viewprofile), + resourceHelper.gs(R.string.custom) -> onContextItemSelected(it, manager) + + else -> { + OKDialog.showConfirmation(context, resourceHelper.gs(R.string.confirm), it.title.toString(), + Runnable { + onContextItemSelected(it, manager) + }) + } + } + } else { + onContextItemSelected(it, manager) + } + } + return@setOnMenuItemClickListener true + } + popup.setOnDismissListener { showOKCancel = true } + popup.show() + } + } + fun createContextMenu(menu: ContextMenu, v: View) { when (v.id) { R.id.overview_apsmode -> { From 7f9f6d3f03d823cc8988e58bb844fc41aab82972 Mon Sep 17 00:00:00 2001 From: Philoul Date: Mon, 14 Dec 2020 22:12:40 +0100 Subject: [PATCH 2/7] Remove Redundant Context menu --- .../general/overview/OverviewFragment.kt | 18 ----- .../plugins/general/overview/OverviewMenus.kt | 67 ++----------------- 2 files changed, 4 insertions(+), 81 deletions(-) diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/general/overview/OverviewFragment.kt b/app/src/main/java/info/nightscout/androidaps/plugins/general/overview/OverviewFragment.kt index afbc185878..35dee1accb 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/general/overview/OverviewFragment.kt +++ b/app/src/main/java/info/nightscout/androidaps/plugins/general/overview/OverviewFragment.kt @@ -235,11 +235,6 @@ class OverviewFragment : DaggerFragment(), View.OnClickListener, OnLongClickList super.onPause() disposable.clear() loopHandler.removeCallbacksAndMessages(null) -/* overview_apsmode_llayout?.let { unregisterForContextMenu(it) } - overview_activeprofile?.let { unregisterForContextMenu(it) } - overview_temptarget?.let { unregisterForContextMenu(it) } - - */ } override fun onResume() { @@ -311,22 +306,9 @@ class OverviewFragment : DaggerFragment(), View.OnClickListener, OnLongClickList } loopHandler.postDelayed(refreshLoop, 60 * 1000L) -/* overview_apsmode_llayout?.let { registerForContextMenu(overview_apsmode) } - overview_activeprofile?.let { registerForContextMenu(it) } - overview_temptarget?.let { registerForContextMenu(it) } - - */ updateGUI("onResume") } - override fun onCreateContextMenu(menu: ContextMenu, v: View, menuInfo: ContextMenuInfo?) { - super.onCreateContextMenu(menu, v, menuInfo) - overviewMenus.createContextMenu(menu, v) - } - - override fun onContextItemSelected(item: MenuItem): Boolean { - return if (overviewMenus.onContextItemSelected(item, childFragmentManager)) true else super.onContextItemSelected(item) - } override fun onClick(v: View) { // try to fix https://fabric.io/nightscout3/android/apps/info.nightscout.androidaps/issues/5aca7a1536c7b23527eb4be7?time=last-seven-days diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/general/overview/OverviewMenus.kt b/app/src/main/java/info/nightscout/androidaps/plugins/general/overview/OverviewMenus.kt index 8347e9141f..f0313cc6fd 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/general/overview/OverviewMenus.kt +++ b/app/src/main/java/info/nightscout/androidaps/plugins/general/overview/OverviewMenus.kt @@ -5,7 +5,6 @@ import android.content.Intent import android.os.Bundle import android.text.SpannableString import android.text.style.ForegroundColorSpan -import android.view.ContextMenu import android.view.Menu import android.view.MenuItem import android.view.View @@ -248,17 +247,17 @@ class OverviewMenus @Inject constructor( when (it.title) { resourceHelper.gs(R.string.careportal_profileswitch), resourceHelper.gs(R.string.viewprofile), - resourceHelper.gs(R.string.custom) -> onContextItemSelected(it, manager) + resourceHelper.gs(R.string.custom) -> onItemSelected(it, manager) else -> { OKDialog.showConfirmation(context, resourceHelper.gs(R.string.confirm), it.title.toString(), Runnable { - onContextItemSelected(it, manager) + onItemSelected(it, manager) }) } } } else { - onContextItemSelected(it, manager) + onItemSelected(it, manager) } } return@setOnMenuItemClickListener true @@ -268,65 +267,7 @@ class OverviewMenus @Inject constructor( } } - fun createContextMenu(menu: ContextMenu, v: View) { - when (v.id) { - R.id.overview_apsmode -> { - val pumpDescription: PumpDescription = activePlugin.activePump.pumpDescription - if (!profileFunction.isProfileValid("ContextMenuCreation")) return - menu.setHeaderTitle(resourceHelper.gs(R.string.loop)) - if (loopPlugin.isEnabled(PluginType.LOOP)) { - menu.add(resourceHelper.gs(R.string.disableloop)) - if (!loopPlugin.isSuspended) { - menu.add(resourceHelper.gs(R.string.suspendloopfor1h)) - menu.add(resourceHelper.gs(R.string.suspendloopfor2h)) - menu.add(resourceHelper.gs(R.string.suspendloopfor3h)) - menu.add(resourceHelper.gs(R.string.suspendloopfor10h)) - } else { - if (!loopPlugin.isDisconnected) { - menu.add(resourceHelper.gs(R.string.resume)) - } - } - } - if (!loopPlugin.isEnabled(PluginType.LOOP)) { - menu.add(resourceHelper.gs(R.string.enableloop)) - } - if (!loopPlugin.isDisconnected) { - showSuspendPump(menu, pumpDescription) - } else { - menu.add(resourceHelper.gs(R.string.reconnect)) - } - } - - R.id.overview_activeprofile -> { - menu.setHeaderTitle(resourceHelper.gs(R.string.profile)) - menu.add(resourceHelper.gs(R.string.viewprofile)) - if (activePlugin.activeProfileInterface.profile != null) { - menu.add(resourceHelper.gs(R.string.careportal_profileswitch)) - } - } - - R.id.overview_temptarget -> { - menu.setHeaderTitle(resourceHelper.gs(R.string.careportal_temporarytarget)) - menu.add(resourceHelper.gs(R.string.custom)) - menu.add(resourceHelper.gs(R.string.eatingsoon)) - menu.add(resourceHelper.gs(R.string.activity)) - menu.add(resourceHelper.gs(R.string.hypo)) - if (activePlugin.activeTreatments.tempTargetFromHistory != null) { - menu.add(resourceHelper.gs(R.string.cancel)) - } - } - } - } - - private fun showSuspendPump(menu: ContextMenu, pumpDescription: PumpDescription) { - if (pumpDescription.tempDurationStep15mAllowed) menu.add(resourceHelper.gs(R.string.disconnectpumpfor15m)) - if (pumpDescription.tempDurationStep30mAllowed) menu.add(resourceHelper.gs(R.string.disconnectpumpfor30m)) - menu.add(resourceHelper.gs(R.string.disconnectpumpfor1h)) - menu.add(resourceHelper.gs(R.string.disconnectpumpfor2h)) - menu.add(resourceHelper.gs(R.string.disconnectpumpfor3h)) - } - - fun onContextItemSelected(item: MenuItem, manager: FragmentManager): Boolean { + fun onItemSelected(item: MenuItem, manager: FragmentManager): Boolean { val profile = profileFunction.getProfile() ?: return true when (item.title) { resourceHelper.gs(R.string.disableloop) -> { From 4a368c554ebe3691817693f13876909225bcbbb5 Mon Sep 17 00:00:00 2001 From: Philoul Date: Wed, 23 Dec 2020 21:31:27 +0100 Subject: [PATCH 3/7] Show TT dialog on short click --- .../plugins/general/overview/OverviewFragment.kt | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/general/overview/OverviewFragment.kt b/app/src/main/java/info/nightscout/androidaps/plugins/general/overview/OverviewFragment.kt index 70187e8d7a..ab09eeb2e5 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/general/overview/OverviewFragment.kt +++ b/app/src/main/java/info/nightscout/androidaps/plugins/general/overview/OverviewFragment.kt @@ -31,11 +31,7 @@ import info.nightscout.androidaps.Config import info.nightscout.androidaps.Constants import info.nightscout.androidaps.R import info.nightscout.androidaps.data.Profile -import info.nightscout.androidaps.dialogs.CalibrationDialog -import info.nightscout.androidaps.dialogs.CarbsDialog -import info.nightscout.androidaps.dialogs.InsulinDialog -import info.nightscout.androidaps.dialogs.TreatmentDialog -import info.nightscout.androidaps.dialogs.WizardDialog +import info.nightscout.androidaps.dialogs.* import info.nightscout.androidaps.events.* import info.nightscout.androidaps.interfaces.* import info.nightscout.androidaps.logging.AAPSLogger @@ -189,7 +185,8 @@ class OverviewFragment : DaggerFragment(), View.OnClickListener, OnLongClickList overviewMenus.setupPopupMenu(overview_apsmode, requireContext(), childFragmentManager) overviewMenus.setupPopupMenu(overview_activeprofile, requireContext(), childFragmentManager) - overviewMenus.setupPopupMenu(overview_temptarget, requireContext(), childFragmentManager) + //overviewMenus.setupPopupMenu(overview_temptarget, requireContext(), childFragmentManager) + overview_temptarget?.setOnClickListener(this) overview_accepttempbutton?.setOnClickListener(this) overview_treatmentbutton?.setOnClickListener(this) overview_wizardbutton?.setOnClickListener(this) @@ -201,7 +198,6 @@ class OverviewFragment : DaggerFragment(), View.OnClickListener, OnLongClickList overview_quickwizardbutton?.setOnLongClickListener(this) overview_apsmode?.setOnLongClickListener(this) overview_activeprofile?.setOnLongClickListener(this) - overview_temptarget?.setOnLongClickListener(this) } override fun onPause() { @@ -294,7 +290,7 @@ class OverviewFragment : DaggerFragment(), View.OnClickListener, OnLongClickList R.id.overview_insulinbutton -> protectionCheck.queryProtection(activity, ProtectionCheck.Protection.BOLUS, UIRunnable { InsulinDialog().show(childFragmentManager, "Overview") }) R.id.overview_quickwizardbutton -> protectionCheck.queryProtection(activity, ProtectionCheck.Protection.BOLUS, UIRunnable { onClickQuickWizard() }) R.id.overview_carbsbutton -> protectionCheck.queryProtection(activity, ProtectionCheck.Protection.BOLUS, UIRunnable { CarbsDialog().show(childFragmentManager, "Overview") }) - + R.id.overview_temptarget -> protectionCheck.queryProtection(activity, ProtectionCheck.Protection.BOLUS, UIRunnable { TempTargetDialog().show(childFragmentManager, "Overview") }) R.id.overview_cgmbutton -> { if (xdripPlugin.isEnabled(PluginType.BGSOURCE)) openCgmApp("com.eveningoutpost.dexdrip") From f76c6a49101b2577c8d5652bd1ae2c146f61e7b1 Mon Sep 17 00:00:00 2001 From: Philoul Date: Wed, 23 Dec 2020 21:46:15 +0100 Subject: [PATCH 4/7] Remove unused code --- .../androidaps/dialogs/TempTargetDialog.kt | 17 ----- .../general/overview/OverviewFragment.kt | 3 +- .../plugins/general/overview/OverviewMenus.kt | 73 +------------------ app/src/main/res/layout/dialog_temptarget.xml | 17 +---- 4 files changed, 4 insertions(+), 106 deletions(-) diff --git a/app/src/main/java/info/nightscout/androidaps/dialogs/TempTargetDialog.kt b/app/src/main/java/info/nightscout/androidaps/dialogs/TempTargetDialog.kt index b11d256efd..57c1689ada 100644 --- a/app/src/main/java/info/nightscout/androidaps/dialogs/TempTargetDialog.kt +++ b/app/src/main/java/info/nightscout/androidaps/dialogs/TempTargetDialog.kt @@ -85,23 +85,11 @@ class TempTargetDialog : DialogFragmentWithDate() { val adapterReason = ArrayAdapter(context, R.layout.spinner_centered, reasonList) overview_temptarget_reason.adapter = adapterReason - overview_temptarget_custom?.setOnClickListener { - overview_temptarget_temptarget.value = savedInstanceState?.getDouble("overview_temptarget_temptarget") ?: if (profileFunction.getUnits() == Constants.MMOL) Constants.MIN_TT_MMOL else Constants.MIN_TT_MGDL - overview_temptarget_duration.value = savedInstanceState?.getDouble("overview_temptarget_duration") ?: 0.0 - overview_temptarget_reason.setSelection(reasonList.indexOf(resourceHelper.gs(R.string.manual))); - } - overview_temptarget_cancel?.setOnClickListener { shortClick(it) } overview_temptarget_eating_soon?.setOnClickListener { shortClick(it) } overview_temptarget_activity?.setOnClickListener { shortClick(it) } overview_temptarget_hypo?.setOnClickListener { shortClick(it) } - /* - overview_temptarget_cancel?.setOnLongClickListener { - longClick(it) - return@setOnLongClickListener true - } - */ overview_temptarget_eating_soon?.setOnLongClickListener { longClick(it) return@setOnLongClickListener true @@ -124,11 +112,6 @@ class TempTargetDialog : DialogFragmentWithDate() { private fun longClick(v:View) { when (v.id) { - R.id.overview_temptarget_cancel -> { - overview_temptarget_temptarget.value = 0.0 - overview_temptarget_duration.value = 0.0 - overview_temptarget_reason.setSelection(reasonList.indexOf(resourceHelper.gs(R.string.cancel))) - } R.id.overview_temptarget_eating_soon -> { overview_temptarget_temptarget.value = defaultValueHelper.determineEatingSoonTT() overview_temptarget_duration.value = defaultValueHelper.determineEatingSoonTTDuration().toDouble() diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/general/overview/OverviewFragment.kt b/app/src/main/java/info/nightscout/androidaps/plugins/general/overview/OverviewFragment.kt index ab09eeb2e5..1916f28c06 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/general/overview/OverviewFragment.kt +++ b/app/src/main/java/info/nightscout/androidaps/plugins/general/overview/OverviewFragment.kt @@ -185,7 +185,6 @@ class OverviewFragment : DaggerFragment(), View.OnClickListener, OnLongClickList overviewMenus.setupPopupMenu(overview_apsmode, requireContext(), childFragmentManager) overviewMenus.setupPopupMenu(overview_activeprofile, requireContext(), childFragmentManager) - //overviewMenus.setupPopupMenu(overview_temptarget, requireContext(), childFragmentManager) overview_temptarget?.setOnClickListener(this) overview_accepttempbutton?.setOnClickListener(this) overview_treatmentbutton?.setOnClickListener(this) @@ -358,7 +357,7 @@ class OverviewFragment : DaggerFragment(), View.OnClickListener, OnLongClickList startActivity(Intent(v.context, QuickWizardListActivity::class.java)) return true } - R.id.overview_apsmode, R.id.overview_activeprofile, R.id.overview_temptarget -> { + R.id.overview_apsmode, R.id.overview_activeprofile -> { OverviewMenus.showOKCancel = false v.performClick() } diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/general/overview/OverviewMenus.kt b/app/src/main/java/info/nightscout/androidaps/plugins/general/overview/OverviewMenus.kt index f0313cc6fd..0eab3699a5 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/general/overview/OverviewMenus.kt +++ b/app/src/main/java/info/nightscout/androidaps/plugins/general/overview/OverviewMenus.kt @@ -226,30 +226,15 @@ class OverviewMenus @Inject constructor( popup.menu.add(resourceHelper.gs(R.string.careportal_profileswitch)) } } - R.id.overview_temptarget -> { - val item = popup.menu.add(Menu.NONE,1,Menu.NONE,resourceHelper.gs(R.string.careportal_temporarytarget)) // title - val title = item.title - val s = SpannableString(title) - s.setSpan(ForegroundColorSpan(resourceHelper.gc(R.color.colorAccent)), 0, s.length, 0) - item.setTitle(s) - popup.menu.add(resourceHelper.gs(R.string.custom)) - popup.menu.add(resourceHelper.gs(R.string.eatingsoon)) - popup.menu.add(resourceHelper.gs(R.string.activity)) - popup.menu.add(resourceHelper.gs(R.string.hypo)) - if (activePlugin.activeTreatments.tempTargetFromHistory != null) { - popup.menu.add(resourceHelper.gs(R.string.cancel)) - } - } } popup.setOnMenuItemClickListener { if (it.itemId != 1) { if (showOKCancel) { when (it.title) { resourceHelper.gs(R.string.careportal_profileswitch), - resourceHelper.gs(R.string.viewprofile), - resourceHelper.gs(R.string.custom) -> onItemSelected(it, manager) + resourceHelper.gs(R.string.viewprofile) -> onItemSelected(it, manager) - else -> { + else -> { OKDialog.showConfirmation(context, resourceHelper.gs(R.string.confirm), it.title.toString(), Runnable { onItemSelected(it, manager) @@ -394,60 +379,6 @@ class OverviewMenus @Inject constructor( pvd.arguments = args pvd.show(manager, "ProfileViewDialog") } - - resourceHelper.gs(R.string.eatingsoon) -> { - aapsLogger.debug("USER ENTRY: TEMP TARGET EATING SOON") - val target = Profile.toMgdl(defaultValueHelper.determineEatingSoonTT(), profileFunction.getUnits()) - val tempTarget = TempTarget() - .date(System.currentTimeMillis()) - .duration(defaultValueHelper.determineEatingSoonTTDuration()) - .reason(resourceHelper.gs(R.string.eatingsoon)) - .source(Source.USER) - .low(target) - .high(target) - activePlugin.activeTreatments.addToHistoryTempTarget(tempTarget) - } - - resourceHelper.gs(R.string.activity) -> { - aapsLogger.debug("USER ENTRY: TEMP TARGET ACTIVITY") - val target = Profile.toMgdl(defaultValueHelper.determineActivityTT(), profileFunction.getUnits()) - val tempTarget = TempTarget() - .date(DateUtil.now()) - .duration(defaultValueHelper.determineActivityTTDuration()) - .reason(resourceHelper.gs(R.string.activity)) - .source(Source.USER) - .low(target) - .high(target) - activePlugin.activeTreatments.addToHistoryTempTarget(tempTarget) - } - - resourceHelper.gs(R.string.hypo) -> { - aapsLogger.debug("USER ENTRY: TEMP TARGET HYPO") - val target = Profile.toMgdl(defaultValueHelper.determineHypoTT(), profileFunction.getUnits()) - val tempTarget = TempTarget() - .date(DateUtil.now()) - .duration(defaultValueHelper.determineHypoTTDuration()) - .reason(resourceHelper.gs(R.string.hypo)) - .source(Source.USER) - .low(target) - .high(target) - activePlugin.activeTreatments.addToHistoryTempTarget(tempTarget) - } - - resourceHelper.gs(R.string.custom) -> { - TempTargetDialog().show(manager, "Overview") - } - - resourceHelper.gs(R.string.cancel) -> { - aapsLogger.debug("USER ENTRY: TEMP TARGET CANCEL") - val tempTarget = TempTarget() - .source(Source.USER) - .date(DateUtil.now()) - .duration(0) - .low(0.0) - .high(0.0) - activePlugin.activeTreatments.addToHistoryTempTarget(tempTarget) - } } return false } diff --git a/app/src/main/res/layout/dialog_temptarget.xml b/app/src/main/res/layout/dialog_temptarget.xml index 1c723e1fd8..370fdd1821 100644 --- a/app/src/main/res/layout/dialog_temptarget.xml +++ b/app/src/main/res/layout/dialog_temptarget.xml @@ -142,27 +142,12 @@ + - - Date: Wed, 23 Dec 2020 22:03:39 +0100 Subject: [PATCH 5/7] Improve TT Long Click --- .../androidaps/plugins/general/overview/OverviewFragment.kt | 2 ++ 1 file changed, 2 insertions(+) diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/general/overview/OverviewFragment.kt b/app/src/main/java/info/nightscout/androidaps/plugins/general/overview/OverviewFragment.kt index 1916f28c06..1956c14768 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/general/overview/OverviewFragment.kt +++ b/app/src/main/java/info/nightscout/androidaps/plugins/general/overview/OverviewFragment.kt @@ -186,6 +186,7 @@ class OverviewFragment : DaggerFragment(), View.OnClickListener, OnLongClickList overviewMenus.setupPopupMenu(overview_apsmode, requireContext(), childFragmentManager) overviewMenus.setupPopupMenu(overview_activeprofile, requireContext(), childFragmentManager) overview_temptarget?.setOnClickListener(this) + overview_temptarget?.setOnLongClickListener(this) overview_accepttempbutton?.setOnClickListener(this) overview_treatmentbutton?.setOnClickListener(this) overview_wizardbutton?.setOnClickListener(this) @@ -361,6 +362,7 @@ class OverviewFragment : DaggerFragment(), View.OnClickListener, OnLongClickList OverviewMenus.showOKCancel = false v.performClick() } + R.id.overview_temptarget -> v.performClick() } return false } From 2ae77ed66ab9d2fafea5839fc605cfe650692727 Mon Sep 17 00:00:00 2001 From: Philoul Date: Thu, 24 Dec 2020 09:25:28 +0100 Subject: [PATCH 6/7] Replace Profile Menu by Short / Long Click Short Click => Profile Switch dialog Long Click => View Current Profile --- .../general/overview/OverviewFragment.kt | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/general/overview/OverviewFragment.kt b/app/src/main/java/info/nightscout/androidaps/plugins/general/overview/OverviewFragment.kt index 1956c14768..3470aa5eaa 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/general/overview/OverviewFragment.kt +++ b/app/src/main/java/info/nightscout/androidaps/plugins/general/overview/OverviewFragment.kt @@ -184,7 +184,9 @@ class OverviewFragment : DaggerFragment(), View.OnClickListener, OnLongClickList prepareGraphs() overviewMenus.setupPopupMenu(overview_apsmode, requireContext(), childFragmentManager) - overviewMenus.setupPopupMenu(overview_activeprofile, requireContext(), childFragmentManager) + //overviewMenus.setupPopupMenu(overview_activeprofile, requireContext(), childFragmentManager) + overview_activeprofile?.setOnClickListener(this) + overview_activeprofile?.setOnLongClickListener(this) overview_temptarget?.setOnClickListener(this) overview_temptarget?.setOnLongClickListener(this) overview_accepttempbutton?.setOnClickListener(this) @@ -290,6 +292,7 @@ class OverviewFragment : DaggerFragment(), View.OnClickListener, OnLongClickList R.id.overview_insulinbutton -> protectionCheck.queryProtection(activity, ProtectionCheck.Protection.BOLUS, UIRunnable { InsulinDialog().show(childFragmentManager, "Overview") }) R.id.overview_quickwizardbutton -> protectionCheck.queryProtection(activity, ProtectionCheck.Protection.BOLUS, UIRunnable { onClickQuickWizard() }) R.id.overview_carbsbutton -> protectionCheck.queryProtection(activity, ProtectionCheck.Protection.BOLUS, UIRunnable { CarbsDialog().show(childFragmentManager, "Overview") }) + R.id.overview_activeprofile -> protectionCheck.queryProtection(activity, ProtectionCheck.Protection.BOLUS, UIRunnable { ProfileSwitchDialog().show(childFragmentManager, "Overview") }) R.id.overview_temptarget -> protectionCheck.queryProtection(activity, ProtectionCheck.Protection.BOLUS, UIRunnable { TempTargetDialog().show(childFragmentManager, "Overview") }) R.id.overview_cgmbutton -> { if (xdripPlugin.isEnabled(PluginType.BGSOURCE)) @@ -358,11 +361,19 @@ class OverviewFragment : DaggerFragment(), View.OnClickListener, OnLongClickList startActivity(Intent(v.context, QuickWizardListActivity::class.java)) return true } - R.id.overview_apsmode, R.id.overview_activeprofile -> { + R.id.overview_apsmode -> { OverviewMenus.showOKCancel = false v.performClick() } - R.id.overview_temptarget -> v.performClick() + R.id.overview_temptarget -> v.performClick() + R.id.overview_activeprofile -> { + val args = Bundle() + args.putLong("time", DateUtil.now()) + args.putInt("mode", ProfileViewerDialog.Mode.RUNNING_PROFILE.ordinal) + val pvd = ProfileViewerDialog() + pvd.arguments = args + pvd.show(childFragmentManager, "ProfileViewDialog") + } } return false } From 124b8c07b13735975a69abce1057a095dc5d86f1 Mon Sep 17 00:00:00 2001 From: Philoul Date: Thu, 24 Dec 2020 18:03:18 +0100 Subject: [PATCH 7/7] Switch Short and long click functions Short Click View Profile Long Click Profile Switch Dialog --- .../general/overview/OverviewFragment.kt | 29 ++++++++++--------- 1 file changed, 15 insertions(+), 14 deletions(-) diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/general/overview/OverviewFragment.kt b/app/src/main/java/info/nightscout/androidaps/plugins/general/overview/OverviewFragment.kt index 3470aa5eaa..31ea77b280 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/general/overview/OverviewFragment.kt +++ b/app/src/main/java/info/nightscout/androidaps/plugins/general/overview/OverviewFragment.kt @@ -287,13 +287,20 @@ class OverviewFragment : DaggerFragment(), View.OnClickListener, OnLongClickList if (childFragmentManager.isStateSaved) return activity?.let { activity -> when (v.id) { - R.id.overview_treatmentbutton -> protectionCheck.queryProtection(activity, ProtectionCheck.Protection.BOLUS, UIRunnable { TreatmentDialog().show(childFragmentManager, "Overview") }) - R.id.overview_wizardbutton -> protectionCheck.queryProtection(activity, ProtectionCheck.Protection.BOLUS, UIRunnable { WizardDialog().show(childFragmentManager, "Overview") }) - R.id.overview_insulinbutton -> protectionCheck.queryProtection(activity, ProtectionCheck.Protection.BOLUS, UIRunnable { InsulinDialog().show(childFragmentManager, "Overview") }) + R.id.overview_treatmentbutton -> protectionCheck.queryProtection(activity, ProtectionCheck.Protection.BOLUS, UIRunnable { TreatmentDialog().show(childFragmentManager, "Overview") }) + R.id.overview_wizardbutton -> protectionCheck.queryProtection(activity, ProtectionCheck.Protection.BOLUS, UIRunnable { WizardDialog().show(childFragmentManager, "Overview") }) + R.id.overview_insulinbutton -> protectionCheck.queryProtection(activity, ProtectionCheck.Protection.BOLUS, UIRunnable { InsulinDialog().show(childFragmentManager, "Overview") }) R.id.overview_quickwizardbutton -> protectionCheck.queryProtection(activity, ProtectionCheck.Protection.BOLUS, UIRunnable { onClickQuickWizard() }) - R.id.overview_carbsbutton -> protectionCheck.queryProtection(activity, ProtectionCheck.Protection.BOLUS, UIRunnable { CarbsDialog().show(childFragmentManager, "Overview") }) - R.id.overview_activeprofile -> protectionCheck.queryProtection(activity, ProtectionCheck.Protection.BOLUS, UIRunnable { ProfileSwitchDialog().show(childFragmentManager, "Overview") }) - R.id.overview_temptarget -> protectionCheck.queryProtection(activity, ProtectionCheck.Protection.BOLUS, UIRunnable { TempTargetDialog().show(childFragmentManager, "Overview") }) + R.id.overview_carbsbutton -> protectionCheck.queryProtection(activity, ProtectionCheck.Protection.BOLUS, UIRunnable { CarbsDialog().show(childFragmentManager, "Overview") }) + R.id.overview_temptarget -> protectionCheck.queryProtection(activity, ProtectionCheck.Protection.BOLUS, UIRunnable { TempTargetDialog().show(childFragmentManager, "Overview") }) + R.id.overview_activeprofile -> { + val args = Bundle() + args.putLong("time", DateUtil.now()) + args.putInt("mode", ProfileViewerDialog.Mode.RUNNING_PROFILE.ordinal) + val pvd = ProfileViewerDialog() + pvd.arguments = args + pvd.show(childFragmentManager, "ProfileViewDialog") + } R.id.overview_cgmbutton -> { if (xdripPlugin.isEnabled(PluginType.BGSOURCE)) openCgmApp("com.eveningoutpost.dexdrip") @@ -366,14 +373,8 @@ class OverviewFragment : DaggerFragment(), View.OnClickListener, OnLongClickList v.performClick() } R.id.overview_temptarget -> v.performClick() - R.id.overview_activeprofile -> { - val args = Bundle() - args.putLong("time", DateUtil.now()) - args.putInt("mode", ProfileViewerDialog.Mode.RUNNING_PROFILE.ordinal) - val pvd = ProfileViewerDialog() - pvd.arguments = args - pvd.show(childFragmentManager, "ProfileViewDialog") - } + R.id.overview_activeprofile -> activity?.let { activity -> protectionCheck.queryProtection(activity, ProtectionCheck.Protection.BOLUS, UIRunnable { ProfileSwitchDialog().show(childFragmentManager, "Overview") })} + } return false }