From 9a929e4bcb46ea42e7e34415996ebd4a6f9e2be2 Mon Sep 17 00:00:00 2001 From: Milos Kozak Date: Thu, 30 Apr 2020 23:33:13 +0200 Subject: [PATCH 01/16] aps status --- .../androidaps/db/CareportalEvent.java | 19 +--- .../general/overview/OverviewFragment.kt | 76 +++++++++------- .../nightscout/androidaps/utils/DateUtil.java | 43 +++++++++ app/src/main/res/drawable-hdpi/closedloop.png | Bin 0 -> 3670 bytes .../drawable-hdpi/closedloop_disconnected.png | Bin 0 -> 4079 bytes .../res/drawable-hdpi/closedloop_pause.png | Bin 0 -> 3260 bytes app/src/main/res/drawable-hdpi/openloop.png | Bin 0 -> 3877 bytes app/src/main/res/drawable-mdpi/closedloop.png | Bin 0 -> 2347 bytes .../drawable-mdpi/closedloop_disconnected.png | Bin 0 -> 2634 bytes .../res/drawable-mdpi/closedloop_pause.png | Bin 0 -> 2174 bytes app/src/main/res/drawable-mdpi/openloop.png | Bin 0 -> 2584 bytes .../main/res/drawable-xhdpi/closedloop.png | Bin 0 -> 4967 bytes .../closedloop_disconnected.png | Bin 0 -> 5438 bytes .../res/drawable-xhdpi/closedloop_pause.png | Bin 0 -> 4417 bytes app/src/main/res/drawable-xhdpi/openloop.png | Bin 0 -> 4937 bytes .../main/res/drawable-xxhdpi/closedloop.png | Bin 0 -> 8872 bytes .../closedloop_disconnected.png | Bin 0 -> 8435 bytes .../res/drawable-xxhdpi/closedloop_pause.png | Bin 0 -> 7746 bytes app/src/main/res/drawable-xxhdpi/openloop.png | Bin 0 -> 8002 bytes .../main/res/drawable-xxxhdpi/closedloop.png | Bin 0 -> 12092 bytes .../closedloop_disconnected.png | Bin 0 -> 11142 bytes .../res/drawable-xxxhdpi/closedloop_pause.png | Bin 0 -> 10687 bytes .../main/res/drawable-xxxhdpi/openloop.png | Bin 0 -> 10484 bytes app/src/main/res/layout/overview_fragment.xml | 82 ++++++++++-------- 24 files changed, 135 insertions(+), 85 deletions(-) create mode 100644 app/src/main/res/drawable-hdpi/closedloop.png create mode 100644 app/src/main/res/drawable-hdpi/closedloop_disconnected.png create mode 100644 app/src/main/res/drawable-hdpi/closedloop_pause.png create mode 100644 app/src/main/res/drawable-hdpi/openloop.png create mode 100644 app/src/main/res/drawable-mdpi/closedloop.png create mode 100644 app/src/main/res/drawable-mdpi/closedloop_disconnected.png create mode 100644 app/src/main/res/drawable-mdpi/closedloop_pause.png create mode 100644 app/src/main/res/drawable-mdpi/openloop.png create mode 100644 app/src/main/res/drawable-xhdpi/closedloop.png create mode 100644 app/src/main/res/drawable-xhdpi/closedloop_disconnected.png create mode 100644 app/src/main/res/drawable-xhdpi/closedloop_pause.png create mode 100644 app/src/main/res/drawable-xhdpi/openloop.png create mode 100644 app/src/main/res/drawable-xxhdpi/closedloop.png create mode 100644 app/src/main/res/drawable-xxhdpi/closedloop_disconnected.png create mode 100644 app/src/main/res/drawable-xxhdpi/closedloop_pause.png create mode 100644 app/src/main/res/drawable-xxhdpi/openloop.png create mode 100644 app/src/main/res/drawable-xxxhdpi/closedloop.png create mode 100644 app/src/main/res/drawable-xxxhdpi/closedloop_disconnected.png create mode 100644 app/src/main/res/drawable-xxxhdpi/closedloop_pause.png create mode 100644 app/src/main/res/drawable-xxxhdpi/openloop.png diff --git a/app/src/main/java/info/nightscout/androidaps/db/CareportalEvent.java b/app/src/main/java/info/nightscout/androidaps/db/CareportalEvent.java index bfe24a008b..27f51af007 100644 --- a/app/src/main/java/info/nightscout/androidaps/db/CareportalEvent.java +++ b/app/src/main/java/info/nightscout/androidaps/db/CareportalEvent.java @@ -106,7 +106,7 @@ public class CareportalEvent implements DataPointWithLabelInterface, Interval { } public String age(boolean useShortText, ResourceHelper resourceHelper) { - Map diff = computeDiff(date, System.currentTimeMillis()); + Map diff = DateUtil.computeDiff(date, System.currentTimeMillis()); String days = " " + resourceHelper.gs(R.string.days) + " "; String hours = " " + resourceHelper.gs(R.string.hours) + " "; @@ -135,23 +135,6 @@ public class CareportalEvent implements DataPointWithLabelInterface, Interval { "}"; } - //Map:{DAYS=1, HOURS=3, MINUTES=46, SECONDS=40, MILLISECONDS=0, MICROSECONDS=0, NANOSECONDS=0} - private static Map computeDiff(long date1, long date2) { - long diffInMillies = date2 - date1; - List units = new ArrayList<>(EnumSet.allOf(TimeUnit.class)); - Collections.reverse(units); - Map result = new LinkedHashMap<>(); - long milliesRest = diffInMillies; - for (TimeUnit unit : units) { - long diff = unit.convert(milliesRest, TimeUnit.MILLISECONDS); - long diffInMilliesForUnit = unit.toMillis(diff); - milliesRest = milliesRest - diffInMilliesForUnit; - result.put(unit, diff); - } - return result; - } - - public boolean isEvent5minBack(List list, long time) { for (int i = 0; i < list.size(); i++) { CareportalEvent event = list.get(i); 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 cc3f881a13..d4010a27e8 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 @@ -69,6 +69,7 @@ import io.reactivex.android.schedulers.AndroidSchedulers import io.reactivex.disposables.CompositeDisposable import io.reactivex.schedulers.Schedulers import kotlinx.android.synthetic.main.overview_fragment.* +import kotlinx.android.synthetic.main.overview_fragment.overview_apsmode import kotlinx.android.synthetic.main.overview_fragment.careportal_canulaage import kotlinx.android.synthetic.main.overview_fragment.careportal_insulinage import kotlinx.android.synthetic.main.overview_fragment.careportal_reservoirlevel @@ -76,7 +77,6 @@ import kotlinx.android.synthetic.main.overview_fragment.careportal_sensorage import kotlinx.android.synthetic.main.overview_fragment.careportal_pbage import kotlinx.android.synthetic.main.overview_fragment.careportal_batterylevel import kotlinx.android.synthetic.main.overview_fragment.overview_activeprofile -import kotlinx.android.synthetic.main.overview_fragment.overview_apsmode import kotlinx.android.synthetic.main.overview_fragment.overview_arrow import kotlinx.android.synthetic.main.overview_fragment.overview_basebasal import kotlinx.android.synthetic.main.overview_fragment.overview_bg @@ -329,10 +329,6 @@ class OverviewFragment : DaggerFragment(), View.OnClickListener, OnLongClickList R.id.overview_quickwizardbutton -> protectionCheck.queryProtection(activity, ProtectionCheck.Protection.BOLUS, Runnable { onClickQuickWizard() }) R.id.overview_carbsbutton -> protectionCheck.queryProtection(activity, ProtectionCheck.Protection.BOLUS, Runnable { CarbsDialog().show(manager, "Overview") }) - R.id.overview_pumpstatus -> { - if (activePlugin.activePump.isSuspended || !activePlugin.activePump.isInitialized) commandQueue.readStatus("RefreshClicked", null) - } - R.id.overview_cgmbutton -> { if (xdripPlugin.isEnabled(PluginType.BGSOURCE)) openCgmApp("com.eveningoutpost.dexdrip") @@ -597,44 +593,64 @@ class OverviewFragment : DaggerFragment(), View.OnClickListener, OnLongClickList if (Config.APS && pump.pumpDescription.isTempBasalCapable) { overview_apsmode?.visibility = View.VISIBLE when { - loopPlugin.isEnabled(PluginType.LOOP) && loopPlugin.isSuperBolus -> { - overview_apsmode?.text = String.format(resourceHelper.gs(R.string.loopsuperbolusfor), loopPlugin.minutesToEndOfSuspend()) - overview_apsmode?.setBackgroundColor(resourceHelper.gc(R.color.ribbonWarning)) - overview_apsmode?.setTextColor(resourceHelper.gc(R.color.ribbonTextWarning)) + loopPlugin.isEnabled() && loopPlugin.isSuperBolus -> { + overview_apsmode.setImageResource(R.drawable.remove) + overview_apsmode_text?.text = DateUtil.age(loopPlugin.minutesToEndOfSuspend() * 60000L, true, resourceHelper) + //overview_apsmode_text?.text = String.format(resourceHelper.gs(R.string.loopsuperbolusfor), loopPlugin.minutesToEndOfSuspend()) +// overview_apsmode_text?.setBackgroundColor(resourceHelper.gc(R.color.ribbonWarning)) +// overview_apsmode_text?.setTextColor(resourceHelper.gc(R.color.ribbonTextWarning)) } - loopPlugin.isDisconnected -> { - overview_apsmode?.text = String.format(resourceHelper.gs(R.string.loopdisconnectedfor), loopPlugin.minutesToEndOfSuspend()) - overview_apsmode?.setBackgroundColor(resourceHelper.gc(R.color.ribbonCritical)) - overview_apsmode?.setTextColor(resourceHelper.gc(R.color.ribbonTextCritical)) + loopPlugin.isDisconnected -> { + overview_apsmode.setImageResource(R.drawable.closedloop_disconnected) + overview_apsmode_text?.text = DateUtil.age(loopPlugin.minutesToEndOfSuspend() * 60000L, true, resourceHelper) +// overview_apsmode_text?.text = String.format(resourceHelper.gs(R.string.loopdisconnectedfor), loopPlugin.minutesToEndOfSuspend()) +// overview_apsmode_text?.setBackgroundColor(resourceHelper.gc(R.color.ribbonCritical)) +// overview_apsmode_text?.setTextColor(resourceHelper.gc(R.color.ribbonTextCritical)) } - loopPlugin.isEnabled(PluginType.LOOP) && loopPlugin.isSuspended -> { - overview_apsmode?.text = String.format(resourceHelper.gs(R.string.loopsuspendedfor), loopPlugin.minutesToEndOfSuspend()) - overview_apsmode?.setBackgroundColor(resourceHelper.gc(R.color.ribbonWarning)) - overview_apsmode?.setTextColor(resourceHelper.gc(R.color.ribbonTextWarning)) + loopPlugin.isEnabled() && loopPlugin.isSuspended -> { + overview_apsmode.setImageResource(R.drawable.closedloop_pause) + overview_apsmode_text?.text = DateUtil.age(loopPlugin.minutesToEndOfSuspend() * 60000L, true, resourceHelper) +// overview_apsmode_text?.text = String.format(resourceHelper.gs(R.string.loopsuspendedfor), loopPlugin.minutesToEndOfSuspend()) +// overview_apsmode_text?.setBackgroundColor(resourceHelper.gc(R.color.ribbonWarning)) +// overview_apsmode_text?.setTextColor(resourceHelper.gc(R.color.ribbonTextWarning)) } - pump.isSuspended -> { - overview_apsmode?.text = resourceHelper.gs(R.string.pumpsuspended) - overview_apsmode?.setBackgroundColor(resourceHelper.gc(R.color.ribbonWarning)) - overview_apsmode?.setTextColor(resourceHelper.gc(R.color.ribbonTextWarning)) + pump.isSuspended -> { + overview_apsmode.setImageResource(R.drawable.closedloop_pause) + overview_apsmode_text?.text = "" +// overview_apsmode_text?.text = resourceHelper.gs(R.string.pumpsuspended) +// overview_apsmode_text?.setBackgroundColor(resourceHelper.gc(R.color.ribbonWarning)) +// overview_apsmode_text?.setTextColor(resourceHelper.gc(R.color.ribbonTextWarning)) } - loopPlugin.isEnabled(PluginType.LOOP) -> { - overview_apsmode?.text = if (closedLoopEnabled.value()) resourceHelper.gs(R.string.closedloop) else resourceHelper.gs(R.string.openloop) - overview_apsmode?.setBackgroundColor(resourceHelper.gc(R.color.ribbonDefault)) - overview_apsmode?.setTextColor(resourceHelper.gc(R.color.ribbonTextDefault)) + loopPlugin.isEnabled() && closedLoopEnabled.value() -> { + overview_apsmode.setImageResource(R.drawable.closedloop) + overview_apsmode_text?.text = "" +// overview_apsmode_text?.text = resourceHelper.gs(R.string.closedloop) +// overview_apsmode_text?.setBackgroundColor(resourceHelper.gc(R.color.ribbonDefault)) +// overview_apsmode_text?.setTextColor(resourceHelper.gc(R.color.ribbonTextDefault)) } - else -> { - overview_apsmode?.text = resourceHelper.gs(R.string.disabledloop) - overview_apsmode?.setBackgroundColor(resourceHelper.gc(R.color.ribbonCritical)) - overview_apsmode?.setTextColor(resourceHelper.gc(R.color.ribbonTextCritical)) + loopPlugin.isEnabled() && !closedLoopEnabled.value() -> { + overview_apsmode.setImageResource(R.drawable.openloop) + overview_apsmode_text?.text = "" +// overview_apsmode_text?.text = resourceHelper.gs(R.string.openloop) +// overview_apsmode_text?.setBackgroundColor(resourceHelper.gc(R.color.ribbonDefault)) +// overview_apsmode_text?.setTextColor(resourceHelper.gc(R.color.ribbonTextDefault)) + } + + else -> { + overview_apsmode.setImageResource(R.drawable.remove) + overview_apsmode_text?.text = "" +// overview_apsmode_text?.text = resourceHelper.gs(R.string.disabledloop) +// overview_apsmode_text?.setBackgroundColor(resourceHelper.gc(R.color.ribbonCritical)) +// overview_apsmode_text?.setTextColor(resourceHelper.gc(R.color.ribbonTextCritical)) } } } else { - overview_apsmode?.visibility = View.GONE + overview_apsmode_text?.visibility = View.GONE } // temp target diff --git a/app/src/main/java/info/nightscout/androidaps/utils/DateUtil.java b/app/src/main/java/info/nightscout/androidaps/utils/DateUtil.java index 82fabc52b7..f058896f19 100644 --- a/app/src/main/java/info/nightscout/androidaps/utils/DateUtil.java +++ b/app/src/main/java/info/nightscout/androidaps/utils/DateUtil.java @@ -11,11 +11,18 @@ import java.text.DateFormat; import java.text.DecimalFormat; import java.text.DecimalFormatSymbols; import java.text.SimpleDateFormat; +import java.util.ArrayList; import java.util.Calendar; +import java.util.Collections; import java.util.Date; +import java.util.EnumSet; import java.util.GregorianCalendar; +import java.util.LinkedHashMap; +import java.util.List; import java.util.Locale; +import java.util.Map; import java.util.TimeZone; +import java.util.concurrent.TimeUnit; import java.util.regex.Matcher; import java.util.regex.Pattern; @@ -270,6 +277,42 @@ public class DateUtil { return TimeZone.getDefault().getOffset(timestamp) / 60000; } + //Map:{DAYS=1, HOURS=3, MINUTES=46, SECONDS=40, MILLISECONDS=0, MICROSECONDS=0, NANOSECONDS=0} + public static Map computeDiff(long date1, long date2) { + long diffInMillies = date2 - date1; + List units = new ArrayList<>(EnumSet.allOf(TimeUnit.class)); + Collections.reverse(units); + Map result = new LinkedHashMap<>(); + long milliesRest = diffInMillies; + for (TimeUnit unit : units) { + long diff = unit.convert(milliesRest, TimeUnit.MILLISECONDS); + long diffInMilliesForUnit = unit.toMillis(diff); + milliesRest = milliesRest - diffInMilliesForUnit; + result.put(unit, diff); + } + return result; + } + + public static String age(long milliseconds, boolean useShortText, ResourceHelper resourceHelper) { + Map diff = computeDiff(0L, milliseconds); + + String days = " " + resourceHelper.gs(R.string.days) + " "; + String hours = " " + resourceHelper.gs(R.string.hours) + " "; + String minutes = " " + resourceHelper.gs(R.string.unit_minutes) + " "; + + if (useShortText) { + days = resourceHelper.gs(R.string.shortday); + hours = resourceHelper.gs(R.string.shorthour); + minutes = resourceHelper.gs(R.string.shortminute); + } + + String result = ""; + if (diff.get(TimeUnit.DAYS) > 0) result += diff.get(TimeUnit.DAYS) + days; + if (diff.get(TimeUnit.HOURS) > 0) result += diff.get(TimeUnit.HOURS) + hours; + if (diff.get(TimeUnit.DAYS) == 0) result += diff.get(TimeUnit.MINUTES) + minutes; + return result; + } + public static String niceTimeScalar(long t, ResourceHelper resourceHelper) { String unit = resourceHelper.gs(R.string.unit_second); t = t / 1000; diff --git a/app/src/main/res/drawable-hdpi/closedloop.png b/app/src/main/res/drawable-hdpi/closedloop.png new file mode 100644 index 0000000000000000000000000000000000000000..797d4589bbd5c804f08c2fbfa67e2e7a915ac7f5 GIT binary patch literal 3670 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-hdpi/closedloop_disconnected.png b/app/src/main/res/drawable-hdpi/closedloop_disconnected.png new file mode 100644 index 0000000000000000000000000000000000000000..8e3862e1b5a9e2c5b6f1d037a84684c03688c915 GIT binary patch literal 4079 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 MzOHJq@}n3312o>nod5s; literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-hdpi/closedloop_pause.png b/app/src/main/res/drawable-hdpi/closedloop_pause.png new file mode 100644 index 0000000000000000000000000000000000000000..4739044f496dba5319428b4420246fc8eac6c9cc GIT binary patch literal 3260 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-mdpi/closedloop.png b/app/src/main/res/drawable-mdpi/closedloop.png new file mode 100644 index 0000000000000000000000000000000000000000..00af583f203747aeddfdc292678d528fdf348284 GIT binary patch literal 2347 zcmV+`3Dow9P)tN7x}6) z`uXw4;Qh&9vc%v-0HMd1^MbV+QsR!zu zb%S-zxFNGD?E0CZG6k3D*2Po^2p{z%SCEX=R*djYb&_pnPp0Gn0koU^*%YS}}TaR!3 zFsj6qBNfN;g%=A?oBd`KTgAZ`i#y0LVI_i+E(vOGYmo9%s2|j0{f+wJT4$}l)>-SX zzfnJ|AJik|rBHKQgOV-@3N6B@BJVri$C{fp*ywIVf6$N0cI96HAemizD&!Mc@~!t; zQPd%N#I+tl6G2I*1RL%&AT>Y@7hEVfpPrXarYug`002uM;@4>auq5TBl+27>8ASyb z3eHml)NsR{29$J4kgyVubOSof_705$=@>V>~pxE=uJO~Ld4z{Kt?+AS)x-y9*& z@nNx598~qI&@^Nk5!4Da0PyN0WWOq?6=+O%Od~3n3QxLEh5%swHqGWgE_iXlZ`eUo ziAsq80Ly;8?01*%Uq*r^Vl8ha0(y@gtG}tfnw*@xmOGEVX%R7+Mj&GRO$`75$;rtX zs&7BM+V`*z0bqIQCDB*zpKjvTBUxGiSilTRn$%g~9NJW)%Q&d`P7&t%JYgjQrn@H0 zGv_tIsEfQ8#Nzcm_$KE_Xd6xP#PXWG&i`0Sj?>_#F0fS^{O zG5U;=Xv1+Ey+@C`%)8DoV|i2AW~EZeJ*2$twfx3Yo;-d~M>{lSdeYXlzy zzzZxloM<;VR$SWbZhlbGT@qqlhoFg|s$Ydi+mE(GBu*#95qLU82+ack5FC8#qbBbs zSZ)&q--q^WjE5yG$SRtAFGRr6* zHR?Vz8PML=V*Z7EGc$DBlP%VGOEVU4JLfgx0o$H{tWzAlbA%RQpuziRT=CWl@kDZx z0044Lxo3249qzI039yq5J_DxjOeX+fq6f^B6W9Vl;-5$dbMxECP?f6+4}5jN!sR-O(bzgqZCCfp`{c+R;BZNI3D$pKKMVjb z1H^>dX;)zW{Q0k4`_cAr!J-9uGE2Fy)LF`=PZm6uM z44H>WSk@!M+MZfJ04#ib;`D$u%97VoS8pm>zZ(FcuD9-AvK|?db~0RKFAA0Ql%dY4 z8-mCidwd1zoOOe_s)s8h^Y3bOi3b3%7+_{xC`w~A z4|}=(M*VO}cS(#3X=u%Dh`bZVG$aoIK=HN0TIH%j(iXYIX5$dEU}Zm__WYaF5EUlu z%w5DBV)+%hjmtG2NdN#lT6UObJB+emWbkPb3j(p?g2b~ir&fTeL9 z$HlBYDVe!E0DxWQU1#(jJzIA|*7`=D5d~U-hRbb2%*CTV&z#p}x@$thN<@uC+R2dO zJ4M*&G7bVjDgY!*W{ue@tE{d5ruwShqmLyYDN{bWeE%{o-?;p3E~m*L2>^hv<*PpP ze>O9Pts&Ehs$Ui3Hl&?IQHSV}*>A?2njE%H`V>)*Q(D}8arf!7_s&jOS~T1;3>RE1 zIKMV;?GsCjhFgZw(jt3c8Ow`0M2}kUwPNAL!qZXmPn|$cqPSb!S^Pg2cZ)lVV~V@1 z&x@_%pxJN6_b$G7ieWJIUK+Q&zD2i1HB;qvMXv%c`7dEkUDRzRb!eZU#pq6~%3Adf z^*uGM4Gzjnp}}PsSd|rRaLia2b6Q(Wdar(#T1*@~*5o^!U0FldJYAFTNOmOvtQbf3 z%wfDXYo;W#eB3tc6-7sGYi@IJ@Q002ovPDHLkV1icORfPZm literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-mdpi/closedloop_disconnected.png b/app/src/main/res/drawable-mdpi/closedloop_disconnected.png new file mode 100644 index 0000000000000000000000000000000000000000..6b4e9d9528ab4c4ba1329ccccb3855d43e84b0a3 GIT binary patch literal 2634 zcmV-Q3bpl#P)Xlg;Qvxw5K*OUcN)*4f`}@;USHDK*r)*jH2@R?tO5W{ zV`HO6r_-r_6r>~&n(MsQ0KgilUAK>3uP?a`&=wa7xLWZ@wR7jrU$(Zk{`tg-6Mr2Z z9!|0>`|0@j_ywtb>U28a>+9=twzjtZY5Vr=zbY8NqAQZ0_}+W(t$gK`SB_3hO#CAn zjiM-u==1r|>2#vaW?RslPAB?&J`_a}qtPe^0)Y=+e);8BH*Vbcvtqh$D|oF|tL^Xa z?@1&QU+_GSHk%D;nns$Y(-cLe8HULaLbA%nFieJ`s5DK}X+lWOZnvW#2pEsY|I^pk z*Q?cPwYQCgw7ew%0Q>jveRM@@}L=p$ubOs%4RZ|a>`cto)D6yX*z8(nJ^Ft zU?P$Dro6TlSCX+}})Nz@_E$<5@_*17&Il|#EQWTX@THItZ<%~vSh7f{ow;MyD z5Kd1|qaX;EIgY!;aoi1kP zT31(BD$ji@;MD*C9*@T{F)@J@Ma>tuLx!el0b&1PRT8vXCP@4kyPO(P*>-tYHgLqo%B0I&-Hs>{mC>K}RJkyW>3 zeUQ#>gTe5cWcm35AI>-&4ooJKSB@V)-m_`brmCA&yng-qYQ0`RaQgJ=tD~c%D2ieh z0P3H6?zva*x#ynUazC9;_k%aI8UWzwr=Q+;=FAx!92{I=d4s`_W?2@4!QkKO>gsBh z;~E+75P?6c3Xxw*L)0Pd0vxum_I z@cZ?NMB>8G&`?h4^E6GTCnhFvY;0@-COGeO0%z%mrbDs z^>{p(NF=bWt<3-cKasI5YAE^T+O=ypCX>mpXqwI{TqomjI8YSDS@`apE?JH^Mw)XK z0Kl`)K6^qGMU*bPti@uk~pS7K>deFE8H&0IKBvsf%B2*PCmxUZn^vJ+UndiD0Xxw)@5 zZ{FNwx7$BIdGe&Z2eUSt4Ox~w57Lpl0EgnAHRI#s7nKC8Rx5HGcL@N>ZWjSr=awy7 zsvmpou|EI+1OkCCtyb#-0^{T37vZ}cdr<-xR+@l9WZggIIPOvr0vB#XU=_=<=L=nk z=lQPyV8aR#C;@=`1VOlLu~-%m@caG$0%-#m!=VBI7#<#e&*^lcl*g{fCYD9kU0GTA zi%2Arzl-Ee>~gvOuEbg>8UTR){(jd=AEUBJx>W}b9B2)P!}~p)_NC?Rjn4Fx%mX?;6lvo#tynMB_wGXXyC;^Z^N>%0M<(p!$*cC#E zTqr<7NG=wO)0YmUUHE zSJxzy$t%h{gr?~<&-2*T)pb;fv8XIHp^+*F`HC~#L_rD>RXUwcE%~uV`db13Dp3?? z9S%o6j8PcwtF>#_Zd77iOqP;TUL$f+U-(>+)E5=6*E`CxED}O8%KSSJ2w-n-Z;uk& zqH;4yy&wq4FwAg$ef{¨caM@RqGty}lq)C2%`)z{ZI9XWDju%n~HxNX}uo!M-* z3xZG>MrVhHhH|M?>H+|)2Y`~LT%wDXRVa$ex?C;{g+dq%1~D8CV=NZK;o;#Anwpxr zOG`^1gzq<;3IJBETet4lEiEmEv9Yo9v$L}(iXsMsL7beN#L>}Fq-lCVwU45x`BW-} zPd)Y2<4R0RksB4ZvV@R)#hIq*tjp!X$;nBao14oXK79Bul8zF+UO)8y`|qPDia0Vd zf`kychMFdXWaL|4VW9bNIE;gXgU6LvmL%6JEfyvlg`^Ay!#C5@)3|2Mn%~O08X6i7 z$K!Dv7#R4b5Nu&Zo1&R@^lh4A%u9=dbU)^A55sd#4x`uW9hM+0$?tDS!eB7GCf(ARVgQUrV@4E3Jb3V+ zxwf{pjpMj8SFc{Z3;;V09Xj+@C=|*mE~o{TCxm2XXJ?h=^;-vDKtclm(An8}Y-(x> z4FZA zdgk4JzyIT4Fo-lw&r3&Nju4V{xm-Cy$j4AT>Au_R^BAmu~-aECR0S} z_rrbuCP@GQ)VSU5Gs$EUd7ekR-HwEi%$sk%nf3eqUnG;se;+$`%(`XEmOT<_4FEuU zdpijRgBgRt@Xg4`2nK^eOr=t2G#Y~dP!7vfuDp@R)=}5g)I9m(i!a)IKHul5R0>n6 z6aql))~#C)uq-0NkzUcSnAXAeYt)Z^-LCFD9DXnWEmb sAfieUkt*dHtLk(*^^fMa5Gpvj6}907*qoM6N<$f+E}jbpQYW literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-mdpi/closedloop_pause.png b/app/src/main/res/drawable-mdpi/closedloop_pause.png new file mode 100644 index 0000000000000000000000000000000000000000..48f3f17bce7381f425f07343d9b2a02f57548e78 GIT binary patch literal 2174 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 Hu0mjfXAylQ literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxhdpi/closedloop.png b/app/src/main/res/drawable-xxhdpi/closedloop.png new file mode 100644 index 0000000000000000000000000000000000000000..b88d60598197bfd106e92f31250fccc659d1376b GIT binary patch literal 8872 zcmZ{KbyyWqyYJ8-DIncSNr!Z&w3L)|cXxxNdxLaJNvCuQ2-2|WE~P`d`wrhd_c`a@ z=ed6j?7e5@%zEGTixu@jSr+pJ$qN7gFy-D$se%8$K3}NF;NNYTwI%?d0_3E`HM}wp z{JpgkXD^<_BjuP>^GSFS-xNnZ&{g>AvT#J1;J#AQ%_y|!ZDvdAq#6=)s-vR%Qq#l2 z9Kzhq$`GA?{bk_|ovP(ZurZ#L6r!0d-Xsr?2+SoQaQLn(vS|c9@@U)pP?Y(q{m5JN zD${k8|H=TsBI9%V(;19_^8bDajSG&n$j!}tJyWS~+io_1iw+oN%)jPA2YzVRm__w0 z)Z30oN=nL7<;@$lp+~?03Isc}Q6)ymfN(zNUp_KLG%4;$YQ;bzb8B1vA?Kv^{WIya zFeY`a@IbGB-TDSaZ7}3-nDH_x(%G?6tdG@o9PR|MkLme5 zgQ#e)A}!atu_|{VSMh5*q{ASggU+sU@snkl^+%5fAv)Q@T;wg&bJ`IutTHl!DwrWT zsV0RcopsWE{6tm=hY|-v<*V<^qVEuYVGlPjI_B?(fv`;@#+seH1uyJ z@Lox)%eN<1ZOD1cM;A_grrS~73I@j_!z*nn@B6}{!Tgb}kY=m(>dOjtMzu|^3E)*Y z%BAZhMIyy665b4p9WHED^vn|}T8poGGy7iP4bdciXux#9d#ey;)yT}^PYR!=H5dzW z1FvKqMcN?tj2?;DW3L7{y z|E9I=_vUquY(Z=zrKqZ#ZlcDRjuX>{3o0)0uiR35ilO0gDQPoAN!AD>am!yUrEh) z#PXnQJ5b*Z6=GE3FOQnUj`LE>nkbq;!G8YTe?bt@t!|vkKO+}iKVkDYxf_yMm|3+> zvi^bU6%}ofM(CqBO4$HolGxkMre3~bhvDRTmimm5NQmnX9ro(jmjD3s{Z{f_lFDW^xDr^1Yk6^xTE zzRak*o8NMGk^x4i_XFy&9uyU5#aLp|g@+j2s-G0!S4Hgw8 zb{7qzgl$T=sW(yQqN#CDC-l(Qp~ctIE=-}A4o<)XjvmV~0GhP1|iuHmrM!)5o@s^^;p^#u=^U}3P%b36v8z^iJrPRaC| zC&u?f@yZr*=7Iv=1%L^{)XCpT1#_ZkR;1^5gOsAR%CE!*eCD0EoqFkd7l9bp>tEQ1 z$!#mPbcE(FzmOVEc_n+(&=x5=G=QN!*Ot)q5z?ybVJzc|+&kMhYtLUxJ0!h^E8@5= zM7Sv3FjP*bJFlmw7mExq0YsBUIy&IzhIA`)$JTz2`8Md;r;quSk#pzMh3jY+XeqSh zxFd(j%T3K5T)52*ep0JFouc?pVym2n7s+ROmB;~v#ZH2MJuLK3TDphUQ;JxYo4GAw z7Bd4Mvu=MbY7~`FDyDI5j#R7nJq`p!31>VKB_oo+@Yh3tF`m-1rf z%$3}S8g`VzVGU1DB${-%E`8_&zg|w2x`^-S3#+MXRlIKv{1vN}a{+WkOtN^ol(&2( zMD^fP4PHfhn|e4*r^40?@D+#?w5HQw^^J1N6fph_9B1J&ARO+FdzM!evj=H zJ9hhF$;qT!&S-cXWtT}vqT}%m9FS$cYO0M}NU03~c8?aWOR%kP{V69B zl+z?tCDonygZPohs`dSbwqC&$j%u0)zqKc*Ue{yhct|(F761%+u;6WYY}{ z5GXoNb)fCL>4{x2-?!0L?P?k|1_`rq5FK|p!lDP~8m>FuZW+?u;v-Af4A)ofn(Z

I}XjG6dDqWdp|%f7lCL` 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 Js+2Ga`CqPwA0hw% literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxhdpi/closedloop_disconnected.png b/app/src/main/res/drawable-xxhdpi/closedloop_disconnected.png new file mode 100644 index 0000000000000000000000000000000000000000..2c259b131115d00cd2e3a57c96d92ac756a11f74 GIT binary patch literal 8435 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 Tm~mo+Hw;jaRRveQH4FVeBJs)) literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxhdpi/openloop.png b/app/src/main/res/drawable-xxhdpi/openloop.png new file mode 100644 index 0000000000000000000000000000000000000000..808d3b5a0c8ef2fb932135872237cd234514f2b1 GIT binary patch literal 8002 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxxhdpi/closedloop_pause.png b/app/src/main/res/drawable-xxxhdpi/closedloop_pause.png new file mode 100644 index 0000000000000000000000000000000000000000..9616c1e1992903f0c9f64df1a5fa03e2243550c5 GIT binary patch literal 10687 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxxhdpi/openloop.png b/app/src/main/res/drawable-xxxhdpi/openloop.png new file mode 100644 index 0000000000000000000000000000000000000000..9ea1ea99facc5f03a5e3c538ecafcb438e629a7c GIT binary patch literal 10484 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/layout/overview_fragment.xml b/app/src/main/res/layout/overview_fragment.xml index f122376c2f..2552b6b9e7 100644 --- a/app/src/main/res/layout/overview_fragment.xml +++ b/app/src/main/res/layout/overview_fragment.xml @@ -31,62 +31,43 @@ - - - - + android:text="Profile" + android:textAppearance="?android:attr/textAppearanceSmall" /> + android:textColor="@color/mdtp_white" /> - + + + + + + + + + app:layout_constraintTop_toBottomOf="@id/overview_toppart_scrollbar" /> Date: Sat, 2 May 2020 20:37:37 +0200 Subject: [PATCH 02/16] main layout finished --- .../androidaps/db/TemporaryBasal.java | 4 +- .../general/overview/OverviewFragment.kt | 64 ++- .../plugins/source/RandomBgPlugin.kt | 4 +- .../utils/resources/ResourceHelper.kt | 2 + .../resources/ResourceHelperImplementation.kt | 9 +- .../ic_swap_vert_black_48dp_green.xml | 5 + app/src/main/res/layout/overview_fragment.xml | 427 ++++++++---------- .../layout/overview_fragment_landscape.xml | 6 +- .../res/layout/overview_fragment_nsclient.xml | 6 +- app/src/main/res/values/strings.xml | 6 +- 10 files changed, 246 insertions(+), 287 deletions(-) create mode 100644 app/src/main/res/drawable/ic_swap_vert_black_48dp_green.xml diff --git a/app/src/main/java/info/nightscout/androidaps/db/TemporaryBasal.java b/app/src/main/java/info/nightscout/androidaps/db/TemporaryBasal.java index c65732b932..72ba3577b9 100644 --- a/app/src/main/java/info/nightscout/androidaps/db/TemporaryBasal.java +++ b/app/src/main/java/info/nightscout/androidaps/db/TemporaryBasal.java @@ -508,9 +508,9 @@ public class TemporaryBasal implements Interval, DbObjectBase { } else { rate = absoluteRate; } - return DecimalFormatter.to2Decimal(rate) + "U/h "; + return DecimalFormatter.to2Decimal(rate) + "U/h"; } else { // percent - return percentRate + "% "; + return percentRate + "%"; } } 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 1047cbb3c5..cb3e45fdca 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 @@ -69,14 +69,8 @@ import io.reactivex.android.schedulers.AndroidSchedulers import io.reactivex.disposables.CompositeDisposable import io.reactivex.schedulers.Schedulers import kotlinx.android.synthetic.main.overview_fragment.* -import kotlinx.android.synthetic.main.overview_fragment.overview_apsmode -import kotlinx.android.synthetic.main.overview_fragment.careportal_canulaage -import kotlinx.android.synthetic.main.overview_fragment.careportal_insulinage -import kotlinx.android.synthetic.main.overview_fragment.careportal_reservoirlevel -import kotlinx.android.synthetic.main.overview_fragment.careportal_sensorage -import kotlinx.android.synthetic.main.overview_fragment.careportal_pbage -import kotlinx.android.synthetic.main.overview_fragment.careportal_batterylevel import kotlinx.android.synthetic.main.overview_fragment.overview_activeprofile +import kotlinx.android.synthetic.main.overview_fragment.overview_apsmode import kotlinx.android.synthetic.main.overview_fragment.overview_arrow import kotlinx.android.synthetic.main.overview_fragment.overview_basebasal import kotlinx.android.synthetic.main.overview_fragment.overview_bg @@ -178,7 +172,8 @@ class OverviewFragment : DaggerFragment(), View.OnClickListener, OnLongClickList inflater.inflate(R.layout.overview_fragment_nsclient, container, false) smallHeight || landscape -> - inflater.inflate(R.layout.overview_fragment_landscape, container, false) + inflater.inflate(R.layout.overview_fragment, container, false) +// inflater.inflate(R.layout.overview_fragment_landscape, container, false) else -> inflater.inflate(R.layout.overview_fragment, container, false) @@ -226,7 +221,7 @@ class OverviewFragment : DaggerFragment(), View.OnClickListener, OnLongClickList super.onPause() disposable.clear() loopHandler.removeCallbacksAndMessages(null) - overview_apsmode?.let { unregisterForContextMenu(it) } + overview_apsmode_llayout?.let { unregisterForContextMenu(it) } overview_activeprofile?.let { unregisterForContextMenu(it) } overview_temptarget?.let { unregisterForContextMenu(it) } } @@ -300,7 +295,7 @@ class OverviewFragment : DaggerFragment(), View.OnClickListener, OnLongClickList } loopHandler.postDelayed(refreshLoop, 60 * 1000L) - overview_apsmode?.let { registerForContextMenu(overview_apsmode) } + overview_apsmode_llayout?.let { registerForContextMenu(overview_apsmode) } overview_activeprofile?.let { registerForContextMenu(it) } overview_temptarget?.let { registerForContextMenu(it) } updateGUI("onResume") @@ -566,9 +561,9 @@ class OverviewFragment : DaggerFragment(), View.OnClickListener, OnLongClickList val glucoseStatus = GlucoseStatus(injector).glucoseStatusData if (glucoseStatus != null) { - overview_delta?.text = "Δ ${Profile.toUnitsString(glucoseStatus.delta, glucoseStatus.delta * Constants.MGDL_TO_MMOLL, units)} $units" + overview_delta?.text = "Δ ${Profile.toSignedUnitsString(glucoseStatus.delta, glucoseStatus.delta * Constants.MGDL_TO_MMOLL, units)}" overview_deltashort?.text = Profile.toSignedUnitsString(glucoseStatus.delta, glucoseStatus.delta * Constants.MGDL_TO_MMOLL, units) - overview_avgdelta?.text = "øΔ15m: ${Profile.toUnitsString(glucoseStatus.short_avgdelta, glucoseStatus.short_avgdelta * Constants.MGDL_TO_MMOLL, units)}\nøΔ40m: ${Profile.toUnitsString(glucoseStatus.long_avgdelta, glucoseStatus.long_avgdelta * Constants.MGDL_TO_MMOLL, units)}" + overview_avgdelta?.text = "Δ15m: ${Profile.toUnitsString(glucoseStatus.short_avgdelta, glucoseStatus.short_avgdelta * Constants.MGDL_TO_MMOLL, units)}\nΔ40m: ${Profile.toUnitsString(glucoseStatus.long_avgdelta, glucoseStatus.long_avgdelta * Constants.MGDL_TO_MMOLL, units)}" } else { overview_delta?.text = "Δ " + resourceHelper.gs(R.string.notavailable) overview_deltashort?.text = "---" @@ -593,7 +588,7 @@ class OverviewFragment : DaggerFragment(), View.OnClickListener, OnLongClickList if (Config.APS && pump.pumpDescription.isTempBasalCapable) { overview_apsmode?.visibility = View.VISIBLE when { - loopPlugin.isEnabled() && loopPlugin.isSuperBolus -> { + loopPlugin.isEnabled() && loopPlugin.isSuperBolus -> { overview_apsmode.setImageResource(R.drawable.remove) overview_apsmode_text?.text = DateUtil.age(loopPlugin.minutesToEndOfSuspend() * 60000L, true, resourceHelper) //overview_apsmode_text?.text = String.format(resourceHelper.gs(R.string.loopsuperbolusfor), loopPlugin.minutesToEndOfSuspend()) @@ -601,7 +596,7 @@ class OverviewFragment : DaggerFragment(), View.OnClickListener, OnLongClickList // overview_apsmode_text?.setTextColor(resourceHelper.gc(R.color.ribbonTextWarning)) } - loopPlugin.isDisconnected -> { + loopPlugin.isDisconnected -> { overview_apsmode.setImageResource(R.drawable.closedloop_disconnected) overview_apsmode_text?.text = DateUtil.age(loopPlugin.minutesToEndOfSuspend() * 60000L, true, resourceHelper) // overview_apsmode_text?.text = String.format(resourceHelper.gs(R.string.loopdisconnectedfor), loopPlugin.minutesToEndOfSuspend()) @@ -609,7 +604,7 @@ class OverviewFragment : DaggerFragment(), View.OnClickListener, OnLongClickList // overview_apsmode_text?.setTextColor(resourceHelper.gc(R.color.ribbonTextCritical)) } - loopPlugin.isEnabled() && loopPlugin.isSuspended -> { + loopPlugin.isEnabled() && loopPlugin.isSuspended -> { overview_apsmode.setImageResource(R.drawable.closedloop_pause) overview_apsmode_text?.text = DateUtil.age(loopPlugin.minutesToEndOfSuspend() * 60000L, true, resourceHelper) // overview_apsmode_text?.text = String.format(resourceHelper.gs(R.string.loopsuspendedfor), loopPlugin.minutesToEndOfSuspend()) @@ -617,7 +612,8 @@ class OverviewFragment : DaggerFragment(), View.OnClickListener, OnLongClickList // overview_apsmode_text?.setTextColor(resourceHelper.gc(R.color.ribbonTextWarning)) } - pump.isSuspended -> { + pump.isSuspended -> { + overview_apsmode_text?.setCompoundDrawables(null, resourceHelper.gd(R.drawable.closedloop_pause), null, null) overview_apsmode.setImageResource(R.drawable.closedloop_pause) overview_apsmode_text?.text = "" // overview_apsmode_text?.text = resourceHelper.gs(R.string.pumpsuspended) @@ -633,7 +629,7 @@ class OverviewFragment : DaggerFragment(), View.OnClickListener, OnLongClickList // overview_apsmode_text?.setTextColor(resourceHelper.gc(R.color.ribbonTextDefault)) } - loopPlugin.isEnabled() && closedLoopEnabled.value() -> { + loopPlugin.isEnabled() && closedLoopEnabled.value() -> { overview_apsmode.setImageResource(R.drawable.closedloop) overview_apsmode_text?.text = "" // overview_apsmode_text?.text = resourceHelper.gs(R.string.closedloop) @@ -641,7 +637,7 @@ class OverviewFragment : DaggerFragment(), View.OnClickListener, OnLongClickList // overview_apsmode_text?.setTextColor(resourceHelper.gc(R.color.ribbonTextDefault)) } - loopPlugin.isEnabled() && !closedLoopEnabled.value() -> { + loopPlugin.isEnabled() && !closedLoopEnabled.value() -> { overview_apsmode.setImageResource(R.drawable.openloop) overview_apsmode_text?.text = "" // overview_apsmode_text?.text = resourceHelper.gs(R.string.openloop) @@ -649,7 +645,7 @@ class OverviewFragment : DaggerFragment(), View.OnClickListener, OnLongClickList // overview_apsmode_text?.setTextColor(resourceHelper.gc(R.color.ribbonTextDefault)) } - else -> { + else -> { overview_apsmode.setImageResource(R.drawable.remove) overview_apsmode_text?.text = "" // overview_apsmode_text?.text = resourceHelper.gs(R.string.disabledloop) @@ -675,9 +671,9 @@ class OverviewFragment : DaggerFragment(), View.OnClickListener, OnLongClickList // Basal, TBR val activeTemp = treatmentsPlugin.getTempBasalFromHistory(System.currentTimeMillis()) - overview_basebasal?.text = activeTemp?.let { if (resourceHelper.shortTextMode()) "T: " + activeTemp.toStringVeryShort() else activeTemp.toStringFull() } + overview_basebasal?.text = activeTemp?.let { if (resourceHelper.shortTextMode()) "T:" + activeTemp.toStringVeryShort() else activeTemp.toStringFull() } ?: resourceHelper.gs(R.string.pump_basebasalrate, profile.basal) - overview_basebasal?.setOnClickListener { + overview_basal_llayout?.setOnClickListener { var fullText = "${resourceHelper.gs(R.string.pump_basebasalrate_label)}: ${resourceHelper.gs(R.string.pump_basebasalrate, profile.basal)}" if (activeTemp != null) fullText += "\n" + resourceHelper.gs(R.string.pump_tempbasal_label) + ": " + activeTemp.toStringFull() @@ -687,6 +683,7 @@ class OverviewFragment : DaggerFragment(), View.OnClickListener, OnLongClickList } overview_basebasal?.setTextColor(activeTemp?.let { resourceHelper.gc(R.color.basal) } ?: resourceHelper.gc(R.color.defaulttextcolor)) + overview_basebasal_icon.setImageResource(if (activeTemp != null) R.drawable.icon_cp_basal_start else R.drawable.icon_cp_basal_end) // Extended bolus val extendedBolus = treatmentsPlugin.getExtendedBolusFromHistory(System.currentTimeMillis()) @@ -699,7 +696,9 @@ class OverviewFragment : DaggerFragment(), View.OnClickListener, OnLongClickList OKDialog.show(it, resourceHelper.gs(R.string.extended_bolus), extendedBolus.toString()) } } + overview_extended_llayout?.visibility = (extendedBolus != null && !pump.isFakingTempsByExtendedBoluses).toVisibility() + // Active profile overview_activeprofile?.text = profileFunction.getProfileNameWithDuration() if (profile.percentage != 100 || profile.timeshift != 0) { overview_activeprofile?.setBackgroundColor(resourceHelper.gc(R.color.ribbonWarning)) @@ -717,23 +716,15 @@ class OverviewFragment : DaggerFragment(), View.OnClickListener, OnLongClickList val bolusIob = treatmentsPlugin.lastCalculationTreatments.round() val basalIob = treatmentsPlugin.lastCalculationTempBasals.round() overview_iob?.text = when { - resourceHelper.shortTextMode() -> { + resourceHelper.shortTextMode() -> resourceHelper.gs(R.string.formatinsulinunits, bolusIob.iob + basalIob.basaliob) - } - resourceHelper.gb(R.bool.isTablet) -> { - resourceHelper.gs(R.string.formatinsulinunits, bolusIob.iob + basalIob.basaliob) + " (" + - resourceHelper.gs(R.string.bolus) + ": " + resourceHelper.gs(R.string.formatinsulinunits, bolusIob.iob) + - resourceHelper.gs(R.string.basal) + ": " + resourceHelper.gs(R.string.formatinsulinunits, basalIob.basaliob) + ")" - } - - else -> { + else -> resourceHelper.gs(R.string.formatinsulinunits, bolusIob.iob + basalIob.basaliob) + " (" + resourceHelper.gs(R.string.formatinsulinunits, bolusIob.iob) + "/" + resourceHelper.gs(R.string.formatinsulinunits, basalIob.basaliob) + ")" - } } - overview_iob?.setOnClickListener { + overview_iob_llayout?.setOnClickListener { activity?.let { OKDialog.show(it, resourceHelper.gs(R.string.iob), resourceHelper.gs(R.string.formatinsulinunits, bolusIob.iob + basalIob.basaliob) + "\n" + @@ -751,7 +742,7 @@ class OverviewFragment : DaggerFragment(), View.OnClickListener, OnLongClickList var cobText: String = resourceHelper.gs(R.string.value_unavailable_short) val cobInfo = iobCobCalculatorPlugin.getCobInfo(false, "Overview COB") if (cobInfo.displayCob != null) { - cobText = DecimalFormatter.to0Decimal(cobInfo.displayCob) + cobText = resourceHelper.gs(R.string.format_carbs, cobInfo.displayCob.toInt()) if (cobInfo.futureCarbs > 0) cobText += "(" + DecimalFormatter.to0Decimal(cobInfo.futureCarbs) + ")" } overview_cob?.text = cobText @@ -772,9 +763,10 @@ class OverviewFragment : DaggerFragment(), View.OnClickListener, OnLongClickList overview_uploader?.setOnClickListener { activity?.let { OKDialog.show(it, resourceHelper.gs(R.string.uploader), nsDeviceStatus.extendedUploaderStatus) } } // Sensitivity - iobCobCalculatorPlugin.getLastAutosensData("Overview")?.let { autosensData -> - overview_sensitivity?.text = String.format(Locale.ENGLISH, "%.0f%%", autosensData.autosensResult.ratio * 100) - } + overview_sensitivity?.text = + iobCobCalculatorPlugin.getLastAutosensData("Overview")?.let { autosensData -> + String.format(Locale.ENGLISH, "%.0f%%", autosensData.autosensResult.ratio * 100) + } ?: "" // ****** GRAPH ******* GlobalScope.launch(Dispatchers.Main) { diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/source/RandomBgPlugin.kt b/app/src/main/java/info/nightscout/androidaps/plugins/source/RandomBgPlugin.kt index 27f3fd4b4c..25915f867b 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/source/RandomBgPlugin.kt +++ b/app/src/main/java/info/nightscout/androidaps/plugins/source/RandomBgPlugin.kt @@ -67,11 +67,11 @@ class RandomBgPlugin @Inject constructor( super.onStop() loopHandler.removeCallbacks(refreshLoop) } - +/* override fun specialEnableCondition(): Boolean { return isRunningTest() || virtualPumpPlugin.isEnabled(PluginType.PUMP) && buildHelper.isEngineeringMode() } - +*/ override fun handleNewData(intent: Intent) { if (!isEnabled(PluginType.BGSOURCE)) return val min = 70 diff --git a/app/src/main/java/info/nightscout/androidaps/utils/resources/ResourceHelper.kt b/app/src/main/java/info/nightscout/androidaps/utils/resources/ResourceHelper.kt index 9b03902883..ea700de7cc 100644 --- a/app/src/main/java/info/nightscout/androidaps/utils/resources/ResourceHelper.kt +++ b/app/src/main/java/info/nightscout/androidaps/utils/resources/ResourceHelper.kt @@ -2,6 +2,7 @@ package info.nightscout.androidaps.utils.resources import android.content.res.AssetFileDescriptor import android.graphics.Bitmap +import android.graphics.drawable.Drawable import android.util.DisplayMetrics import androidx.annotation.* @@ -10,6 +11,7 @@ interface ResourceHelper { fun gs(@StringRes id: Int, vararg args: Any?): String fun gq(@PluralsRes id: Int, quantity: Int, vararg args: Any?): String fun gc(@ColorRes id: Int): Int + fun gd(@DrawableRes id: Int): Drawable? fun gb(@BoolRes id :Int) : Boolean fun gcs(@ColorRes id: Int): String fun gsa(@ArrayRes id:Int): Array diff --git a/app/src/main/java/info/nightscout/androidaps/utils/resources/ResourceHelperImplementation.kt b/app/src/main/java/info/nightscout/androidaps/utils/resources/ResourceHelperImplementation.kt index 0773b8a859..bfa479a609 100644 --- a/app/src/main/java/info/nightscout/androidaps/utils/resources/ResourceHelperImplementation.kt +++ b/app/src/main/java/info/nightscout/androidaps/utils/resources/ResourceHelperImplementation.kt @@ -5,12 +5,9 @@ import android.content.Context import android.content.res.AssetFileDescriptor import android.graphics.Bitmap import android.graphics.BitmapFactory +import android.graphics.drawable.Drawable import android.util.DisplayMetrics -import androidx.annotation.ArrayRes -import androidx.annotation.BoolRes -import androidx.annotation.ColorRes -import androidx.annotation.PluralsRes -import androidx.annotation.StringRes +import androidx.annotation.* import androidx.core.content.ContextCompat import info.nightscout.androidaps.Config import info.nightscout.androidaps.R @@ -30,6 +27,8 @@ class ResourceHelperImplementation @Inject constructor(private val context: Cont override fun gc(@ColorRes id: Int): Int = ContextCompat.getColor(context, id) + override fun gd(@DrawableRes id: Int): Drawable? = context.getDrawable(id) + override fun gb(@BoolRes id: Int): Boolean = context.resources.getBoolean(id) @SuppressLint("ResourceType") diff --git a/app/src/main/res/drawable/ic_swap_vert_black_48dp_green.xml b/app/src/main/res/drawable/ic_swap_vert_black_48dp_green.xml new file mode 100644 index 0000000000..f78eaede2c --- /dev/null +++ b/app/src/main/res/drawable/ic_swap_vert_black_48dp_green.xml @@ -0,0 +1,5 @@ + + + diff --git a/app/src/main/res/layout/overview_fragment.xml b/app/src/main/res/layout/overview_fragment.xml index 2552b6b9e7..72d2d9a355 100644 --- a/app/src/main/res/layout/overview_fragment.xml +++ b/app/src/main/res/layout/overview_fragment.xml @@ -45,8 +45,8 @@ android:id="@+id/overview_activeprofile" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:layout_gravity="right" - android:layout_marginRight="5dp" + android:layout_gravity="end" + android:layout_marginEnd="5dp" android:layout_weight="1" android:gravity="center_vertical|center_horizontal" android:paddingTop="3dp" @@ -58,7 +58,7 @@ android:id="@+id/overview_temptarget" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:layout_gravity="right" + android:layout_gravity="end" android:layout_weight="1" android:gravity="center_vertical|center_horizontal" android:paddingTop="3dp" @@ -74,7 +74,7 @@ android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal" - app:layout_constraintBottom_toTopOf="@+id/bg_tbr_layout" + app:layout_constraintBottom_toTopOf="@+id/info_layout" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@+id/overview_looplayout"> @@ -94,8 +94,8 @@ - - - - - - - - - - - - + app:layout_constraintEnd_toStartOf="@+id/overview_apsmode_llayout" + app:layout_constraintStart_toEndOf="@+id/overview_arrow" + app:layout_constraintTop_toTopOf="parent"> - - + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - + + android:textAppearance="@style/TextAppearance.AppCompat.Medium" + android:textStyle="bold" /> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + app:layout_constraintTop_toBottomOf="@id/info_layout"> + android:textAppearance="@style/TextAppearance.AppCompat.Small" /> + android:textAppearance="@style/TextAppearance.AppCompat.Small" /> + android:paddingStart="2dp" + android:textAppearance="@style/TextAppearance.AppCompat.Small" /> + android:textAppearance="@style/TextAppearance.AppCompat.Small" /> + android:textAppearance="@style/TextAppearance.AppCompat.Small" /> + android:textAppearance="@style/TextAppearance.AppCompat.Small" /> @@ -496,7 +457,7 @@ android:layout_height="wrap_content" android:layout_centerInParent="true" android:text="" - android:textSize="15sp" + android:textAppearance="@style/TextAppearance.AppCompat.Medium" app:layout_constraintBottom_toBottomOf="@+id/overview_bggraph" app:layout_constraintEnd_toEndOf="@+id/overview_bggraph" app:layout_constraintStart_toStartOf="@+id/overview_bggraph" diff --git a/app/src/main/res/layout/overview_fragment_landscape.xml b/app/src/main/res/layout/overview_fragment_landscape.xml index 471634ea8a..3949057b12 100644 --- a/app/src/main/res/layout/overview_fragment_landscape.xml +++ b/app/src/main/res/layout/overview_fragment_landscape.xml @@ -93,7 +93,7 @@ android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal" - app:layout_constraintBottom_toTopOf="@+id/bg_tbr_layout" + app:layout_constraintBottom_toTopOf="@+id/info_layout" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@+id/overview_looplayout"> @@ -113,7 +113,7 @@ + app:layout_constraintTop_toBottomOf="@id/info_layout"> @@ -113,7 +113,7 @@ + app:layout_constraintTop_toBottomOf="@id/info_layout"> MM640g Ongoing Notification OLD DATA - %1$d min ago + %1$dm ago %1$dmin ago Local Profile OpenAPS AMA @@ -596,7 +596,7 @@ Show detailed IOB Break down IOB into bolus and basal IOB on the watchface not successful - please check phone - Not available + n/a smscommunicator_allowednumbers smscommunicator_remotecommandsallowed Patient age @@ -1026,7 +1026,7 @@ fromNSAreCommingFakedExtendedBoluses Engineering mode enabled Engineering mode not enabled and not on release branch - %1$.2f U/h + %1$.2fU/h Reading basal profile The pump history has changed after the bolus calculation was performed. The bolus was not delivered. Please recalculate if a bolus is still needed. Bolus successfully delivered, but adding the treatment entry failed. This can happen if two small boluses of the same size are administered within the last two minutes. Please check the pump history and treatment entries and use the Careportal to add missing entries. Make sure not to add any entries for the exact same minute and same amount. From 8fe57c9d7a1d5a7c11ab8612edf632f271066169 Mon Sep 17 00:00:00 2001 From: Milos Kozak Date: Sun, 3 May 2020 00:32:26 +0200 Subject: [PATCH 03/16] unify layouts --- .../general/overview/OverviewFragment.kt | 46 +- .../res/layout/overview_buttons_layout.xml | 117 ++++ app/src/main/res/layout/overview_fragment.xml | 586 +--------------- .../layout/overview_fragment_landscape.xml | 616 +---------------- .../res/layout/overview_fragment_nsclient.xml | 625 +----------------- .../overview_fragment_nsclient_tablet.xml | 77 +-- .../res/layout/overview_graphs_layout.xml | 44 ++ .../main/res/layout/overview_info_layout.xml | 242 +++++++ .../overview_loop_pumpstatus_layout.xml | 63 ++ .../res/layout/overview_notification_item.xml | 35 +- .../layout/overview_statuslights_layout.xml | 97 +++ 11 files changed, 647 insertions(+), 1901 deletions(-) create mode 100644 app/src/main/res/layout/overview_buttons_layout.xml create mode 100644 app/src/main/res/layout/overview_graphs_layout.xml create mode 100644 app/src/main/res/layout/overview_info_layout.xml create mode 100644 app/src/main/res/layout/overview_loop_pumpstatus_layout.xml create mode 100644 app/src/main/res/layout/overview_statuslights_layout.xml 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 cb3e45fdca..6c7e77f15f 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 @@ -68,31 +68,28 @@ import info.nightscout.androidaps.utils.wizard.QuickWizard import io.reactivex.android.schedulers.AndroidSchedulers import io.reactivex.disposables.CompositeDisposable import io.reactivex.schedulers.Schedulers -import kotlinx.android.synthetic.main.overview_fragment.* -import kotlinx.android.synthetic.main.overview_fragment.overview_activeprofile -import kotlinx.android.synthetic.main.overview_fragment.overview_apsmode -import kotlinx.android.synthetic.main.overview_fragment.overview_arrow -import kotlinx.android.synthetic.main.overview_fragment.overview_basebasal -import kotlinx.android.synthetic.main.overview_fragment.overview_bg -import kotlinx.android.synthetic.main.overview_fragment.overview_bggraph -import kotlinx.android.synthetic.main.overview_fragment.overview_carbsbutton -import kotlinx.android.synthetic.main.overview_fragment.overview_chartMenuButton -import kotlinx.android.synthetic.main.overview_fragment.overview_cob -import kotlinx.android.synthetic.main.overview_fragment.overview_extendedbolus -import kotlinx.android.synthetic.main.overview_fragment.overview_insulinbutton -import kotlinx.android.synthetic.main.overview_fragment.overview_iob -import kotlinx.android.synthetic.main.overview_fragment.overview_iobcalculationprogess -import kotlinx.android.synthetic.main.overview_fragment.overview_iobgraph -import kotlinx.android.synthetic.main.overview_fragment.overview_looplayout +import kotlinx.android.synthetic.main.overview_buttons_layout.* +import kotlinx.android.synthetic.main.overview_buttons_layout.overview_carbsbutton +import kotlinx.android.synthetic.main.overview_buttons_layout.overview_insulinbutton +import kotlinx.android.synthetic.main.overview_buttons_layout.overview_quickwizardbutton +import kotlinx.android.synthetic.main.overview_buttons_layout.overview_treatmentbutton +import kotlinx.android.synthetic.main.overview_buttons_layout.overview_wizardbutton import kotlinx.android.synthetic.main.overview_fragment.overview_notifications -import kotlinx.android.synthetic.main.overview_fragment.overview_pumpstatus -import kotlinx.android.synthetic.main.overview_fragment.overview_pumpstatuslayout -import kotlinx.android.synthetic.main.overview_fragment.overview_quickwizardbutton -import kotlinx.android.synthetic.main.overview_fragment.overview_sensitivity -import kotlinx.android.synthetic.main.overview_fragment.overview_temptarget -import kotlinx.android.synthetic.main.overview_fragment.overview_treatmentbutton -import kotlinx.android.synthetic.main.overview_fragment.overview_wizardbutton import kotlinx.android.synthetic.main.overview_fragment_nsclient_tablet.* +import kotlinx.android.synthetic.main.overview_graphs_layout.overview_bggraph +import kotlinx.android.synthetic.main.overview_graphs_layout.overview_chartMenuButton +import kotlinx.android.synthetic.main.overview_graphs_layout.overview_iobcalculationprogess +import kotlinx.android.synthetic.main.overview_graphs_layout.overview_iobgraph +import kotlinx.android.synthetic.main.overview_info_layout.* +import kotlinx.android.synthetic.main.overview_info_layout.overview_arrow +import kotlinx.android.synthetic.main.overview_info_layout.overview_basebasal +import kotlinx.android.synthetic.main.overview_info_layout.overview_bg +import kotlinx.android.synthetic.main.overview_info_layout.overview_cob +import kotlinx.android.synthetic.main.overview_info_layout.overview_extendedbolus +import kotlinx.android.synthetic.main.overview_info_layout.overview_iob +import kotlinx.android.synthetic.main.overview_info_layout.overview_sensitivity +import kotlinx.android.synthetic.main.overview_loop_pumpstatus_layout.* +import kotlinx.android.synthetic.main.overview_statuslights_layout.* import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.GlobalScope import kotlinx.coroutines.launch @@ -172,8 +169,7 @@ class OverviewFragment : DaggerFragment(), View.OnClickListener, OnLongClickList inflater.inflate(R.layout.overview_fragment_nsclient, container, false) smallHeight || landscape -> - inflater.inflate(R.layout.overview_fragment, container, false) -// inflater.inflate(R.layout.overview_fragment_landscape, container, false) + inflater.inflate(R.layout.overview_fragment_landscape, container, false) else -> inflater.inflate(R.layout.overview_fragment, container, false) diff --git a/app/src/main/res/layout/overview_buttons_layout.xml b/app/src/main/res/layout/overview_buttons_layout.xml new file mode 100644 index 0000000000..5c97104159 --- /dev/null +++ b/app/src/main/res/layout/overview_buttons_layout.xml @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/overview_fragment.xml b/app/src/main/res/layout/overview_fragment.xml index 72d2d9a355..747f53798e 100644 --- a/app/src/main/res/layout/overview_fragment.xml +++ b/app/src/main/res/layout/overview_fragment.xml @@ -1,597 +1,39 @@ - + android:layout_weight="1" + android:layout_width="wrap_content" + android:layout_height="0dp"> - - - - - + android:layout_height="wrap_content" /> - + - + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - + - - - - - - - - - - - - - - - - - - - + diff --git a/app/src/main/res/layout/overview_fragment_landscape.xml b/app/src/main/res/layout/overview_fragment_landscape.xml index 3949057b12..2d6250384d 100644 --- a/app/src/main/res/layout/overview_fragment_landscape.xml +++ b/app/src/main/res/layout/overview_fragment_landscape.xml @@ -1,628 +1,40 @@ - + android:layout_weight="1" + tools:ignore="UselessParent"> - - - - - + android:layout_height="wrap_content" /> - + + - + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - + diff --git a/app/src/main/res/layout/overview_fragment_nsclient.xml b/app/src/main/res/layout/overview_fragment_nsclient.xml index 18c729ba54..c4ce063e29 100644 --- a/app/src/main/res/layout/overview_fragment_nsclient.xml +++ b/app/src/main/res/layout/overview_fragment_nsclient.xml @@ -1,466 +1,32 @@ - + android:layout_weight="1" + android:layout_width="wrap_content" + android:layout_height="0dp"> - - - - - + android:layout_height="wrap_content" /> - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + android:textSize="16sp" /> + android:textSize="16sp" /> + android:textSize="16sp" /> - + - - - - - - - - + - + - - - - - - - - - - - - - - - - - + diff --git a/app/src/main/res/layout/overview_fragment_nsclient_tablet.xml b/app/src/main/res/layout/overview_fragment_nsclient_tablet.xml index 585a72159a..5c4340eea6 100644 --- a/app/src/main/res/layout/overview_fragment_nsclient_tablet.xml +++ b/app/src/main/res/layout/overview_fragment_nsclient_tablet.xml @@ -27,82 +27,7 @@ - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/overview_info_layout.xml b/app/src/main/res/layout/overview_info_layout.xml new file mode 100644 index 0000000000..b607f8aae5 --- /dev/null +++ b/app/src/main/res/layout/overview_info_layout.xml @@ -0,0 +1,242 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/overview_loop_pumpstatus_layout.xml b/app/src/main/res/layout/overview_loop_pumpstatus_layout.xml new file mode 100644 index 0000000000..8e50b85e0d --- /dev/null +++ b/app/src/main/res/layout/overview_loop_pumpstatus_layout.xml @@ -0,0 +1,63 @@ + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/overview_notification_item.xml b/app/src/main/res/layout/overview_notification_item.xml index 0c0d36ad25..03b5688fc3 100644 --- a/app/src/main/res/layout/overview_notification_item.xml +++ b/app/src/main/res/layout/overview_notification_item.xml @@ -1,7 +1,6 @@ - + android:layout_height="wrap_content" + android:gravity="center_vertical" + android:orientation="horizontal"> + +