diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/general/actions/ActionsFragment.kt b/app/src/main/java/info/nightscout/androidaps/plugins/general/actions/ActionsFragment.kt index 54c21c929e..bebdc7531c 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/general/actions/ActionsFragment.kt +++ b/app/src/main/java/info/nightscout/androidaps/plugins/general/actions/ActionsFragment.kt @@ -8,6 +8,7 @@ import android.view.LayoutInflater import android.view.View import android.view.ViewGroup import android.widget.LinearLayout +import android.widget.TableRow import android.widget.TextView import androidx.core.content.ContextCompat import dagger.android.support.DaggerFragment @@ -108,6 +109,7 @@ class ActionsFragment : DaggerFragment() { private var insulinLevelLabel: TextView? = null private var pbLevelLabel: TextView? = null private var cannulaOrPatch: TextView? = null + private var batteryLayout: TableRow? = null override fun onCreateView( inflater: LayoutInflater, container: ViewGroup?, @@ -143,7 +145,6 @@ class ActionsFragment : DaggerFragment() { historyBrowser = view.findViewById(R.id.actions_historybrowser) tddStats = view.findViewById(R.id.actions_tddstats) pumpBatteryChange = view.findViewById(R.id.actions_pumpbatterychange) - cannulaAge = view.findViewById(R.id.cannula_age) insulinAge = view.findViewById(R.id.insulin_age) reservoirLevel = view.findViewById(R.id.reservoir_level) @@ -155,6 +156,7 @@ class ActionsFragment : DaggerFragment() { insulinLevelLabel = view.findViewById(R.id.insulin_level_label) pbLevelLabel = view.findViewById(R.id.pb_level_label) cannulaOrPatch = view.findViewById(R.id.cannula_or_patch) + batteryLayout = view.findViewById(R.id.battery_layout) profileSwitch?.setOnClickListener { activity?.let { activity -> @@ -335,10 +337,11 @@ class ActionsFragment : DaggerFragment() { } tempTarget?.visibility = (profile != null && !loop.isDisconnected).toVisibility() tddStats?.visibility = pump.pumpDescription.supportsTDDs.toVisibility() - - cannulaOrPatch?.text = if (pump.pumpDescription.isPatchPump) rh.gs(R.string.patch_pump) else rh.gs(R.string.cannula) - val imageResource = if (pump.pumpDescription.isPatchPump) R.drawable.ic_patch_pump_outline else R.drawable.ic_cp_age_cannula + val isPatchPump = pump.pumpDescription.isPatchPump + cannulaOrPatch?.text = if (isPatchPump) rh.gs(R.string.patch_pump) else rh.gs(R.string.cannula) + val imageResource = if (isPatchPump) R.drawable.ic_patch_pump_outline else R.drawable.ic_cp_age_cannula cannulaOrPatch?.setCompoundDrawablesWithIntrinsicBounds(imageResource, 0, 0, 0) + batteryLayout?.visibility = (!isPatchPump || pump is OmnipodErosPumpPlugin).toVisibility() if (!config.NSCLIENT) { statusLightHandler.updateStatusLights(cannulaAge, insulinAge, reservoirLevel, sensorAge, sensorLevel, pbAge, batteryLevel) 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 a3b4f11b15..cbca2846c9 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 @@ -34,6 +34,7 @@ import info.nightscout.androidaps.database.entities.UserEntry.Action import info.nightscout.androidaps.database.entities.UserEntry.Sources import info.nightscout.androidaps.database.interfaces.end import info.nightscout.androidaps.databinding.OverviewFragmentBinding +import info.nightscout.androidaps.diaconn.DiaconnG8Plugin import info.nightscout.androidaps.dialogs.* import info.nightscout.androidaps.events.EventAcceptOpenLoopChange import info.nightscout.androidaps.events.EventInitializationChanged @@ -61,6 +62,7 @@ import info.nightscout.androidaps.plugins.general.overview.notifications.Notific import info.nightscout.androidaps.plugins.general.wear.events.EventWearInitiateAction import info.nightscout.androidaps.plugins.iob.iobCobCalculator.GlucoseStatusProvider import info.nightscout.androidaps.plugins.pump.common.defs.PumpType +import info.nightscout.androidaps.plugins.pump.omnipod.eros.OmnipodErosPumpPlugin import info.nightscout.androidaps.plugins.source.DexcomPlugin import info.nightscout.androidaps.plugins.source.XdripPlugin import info.nightscout.androidaps.skins.SkinProvider @@ -866,13 +868,24 @@ class OverviewFragment : DaggerFragment(), View.OnClickListener, OnLongClickList fun updateTime(from: String) { binding.infoLayout.time.text = dateUtil.timeString(dateUtil.now()) // Status lights - val isPatchPump = activePlugin.activePump.pumpDescription.isPatchPump + val pump = activePlugin.activePump + val isPatchPump = pump.pumpDescription.isPatchPump binding.statusLightsLayout.apply { cannulaOrPatch.setImageResource(if (isPatchPump) R.drawable.ic_patch_pump_outline else R.drawable.ic_cp_age_cannula) cannulaOrPatch.contentDescription = rh.gs(if (isPatchPump) R.string.statuslights_patch_pump_age else R.string.statuslights_cannula_age) cannulaOrPatch.scaleX = if (isPatchPump) 1.4f else 2f cannulaOrPatch.scaleY = cannulaOrPatch.scaleX insulinAge.visibility = isPatchPump.not().toVisibility() + // Patch pumps discards batteries and do not need to shown the status battery light excepts for Omnipod Eros + batteryLayout.visibility = (!isPatchPump || pump is OmnipodErosPumpPlugin).toVisibility() + // Only show battery level if the action button change battery is available + val useBatteryAge = (pump is DiaconnG8Plugin && pump.pumpDescription.isBatteryReplaceable && !pump.isBatteryChangeLoggingEnabled()) + || (pump.pumpDescription.isBatteryReplaceable || (pump is OmnipodErosPumpPlugin && pump.isUseRileyLinkBatteryLevel && pump.isBatteryChangeLoggingEnabled)) + pbAge.visibility = useBatteryAge.toVisibility() + // Only show battery level when supported by pump or link + val useBatteryLevel = (pump.model() == PumpType.OMNIPOD_EROS && pump is OmnipodErosPumpPlugin) + || (pump.model() != PumpType.ACCU_CHEK_COMBO && pump.model() != PumpType.OMNIPOD_DASH) + batteryLevel.visibility = useBatteryLevel.toVisibility() statusLights.visibility = (sp.getBoolean(R.string.key_show_statuslights, true) || config.NSCLIENT).toVisibility() } statusLightHandler.updateStatusLights( diff --git a/app/src/main/res/layout/careportal_stats_fragment.xml b/app/src/main/res/layout/careportal_stats_fragment.xml index c2281c139c..5763e51ad0 100644 --- a/app/src/main/res/layout/careportal_stats_fragment.xml +++ b/app/src/main/res/layout/careportal_stats_fragment.xml @@ -41,7 +41,6 @@ android:textColor="@android:color/white" android:textSize="14sp" /> - - @@ -246,7 +245,6 @@ android:textSize="14sp" app:drawableStartCompat="@drawable/ic_cp_age_battery" /> - - - @@ -189,7 +188,6 @@ android:textSize="14sp" app:drawableStartCompat="@drawable/ic_cp_age_battery" /> -