diff --git a/.travis.yml b/.travis.yml index 165a1eff9a..d08c3bf279 100644 --- a/.travis.yml +++ b/.travis.yml @@ -8,7 +8,7 @@ android: components: - platform-tools - tools - - build-tools-28.0.3 + - build-tools-29.0.2 - android-28 - extra-google-m2repository - extra-android-m2repository diff --git a/app/build.gradle b/app/build.gradle index fcb0b3b6c7..58c4d73eac 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -1,10 +1,12 @@ buildscript { repositories { jcenter() + maven { url "https://plugins.gradle.org/m2/" } // jacoco 0.2 } dependencies { - classpath 'com.dicedmelon.gradle:jacoco-android:0.1.4' + //classpath 'com.dicedmelon.gradle:jacoco-android:0.1.4' + classpath 'com.hiya:jacoco-android:0.2' } } apply plugin: 'com.android.application' @@ -12,7 +14,8 @@ apply plugin: 'kotlin-android' apply plugin: 'kotlin-android-extensions' apply plugin: 'kotlin-kapt' apply plugin: 'com.google.gms.google-services' -apply plugin: 'jacoco-android' +//apply plugin: 'jacoco-android' +apply plugin: 'com.hiya.jacoco-android' apply plugin: 'com.google.firebase.crashlytics' jacoco { diff --git a/app/src/main/assets/OpenAPSSMB/determine-basal.js b/app/src/main/assets/OpenAPSSMB/determine-basal.js index 5e9238713f..137ceca541 100644 --- a/app/src/main/assets/OpenAPSSMB/determine-basal.js +++ b/app/src/main/assets/OpenAPSSMB/determine-basal.js @@ -801,7 +801,7 @@ var determine_basal = function determine_basal(glucose_status, currenttemp, iob_ rT.COB=meal_data.mealCOB; rT.IOB=iob_data.iob; - rT.reason="COB: " + meal_data.mealCOB + ", Dev: " + convert_bg(deviation, profile) + ", BGI: " + convert_bg(bgi, profile) + ", ISF: " + convert_bg(sens, profile) + ", CR: " + round(profile.carb_ratio, 2) + ", Target: " + convert_bg(target_bg, profile) + ", minPredBG " + convert_bg(minPredBG, profile) + ", minGuardBG " + convert_bg(minGuardBG, profile) + ", IOBpredBG " + convert_bg(lastIOBpredBG, profile); + rT.reason="COB: " + round(meal_data.mealCOB, 1) + ", Dev: " + convert_bg(deviation, profile) + ", BGI: " + convert_bg(bgi, profile) + ", ISF: " + convert_bg(sens, profile) + ", CR: " + round(profile.carb_ratio, 2) + ", Target: " + convert_bg(target_bg, profile) + ", minPredBG " + convert_bg(minPredBG, profile) + ", minGuardBG " + convert_bg(minGuardBG, profile) + ", IOBpredBG " + convert_bg(lastIOBpredBG, profile); if (lastCOBpredBG > 0) { rT.reason += ", COBpredBG " + convert_bg(lastCOBpredBG, profile); } diff --git a/app/src/main/java/info/nightscout/androidaps/activities/MyPreferenceFragment.kt b/app/src/main/java/info/nightscout/androidaps/activities/MyPreferenceFragment.kt index fce062f89f..e01ea6da78 100644 --- a/app/src/main/java/info/nightscout/androidaps/activities/MyPreferenceFragment.kt +++ b/app/src/main/java/info/nightscout/androidaps/activities/MyPreferenceFragment.kt @@ -185,9 +185,7 @@ class MyPreferenceFragment : PreferenceFragmentCompat(), OnSharedPreferenceChang addPreferencesFromResourceIfEnabled(maintenancePlugin, rootKey) } initSummary(preferenceScreen, pluginId != -1) - for (plugin in pluginStore.plugins) { - plugin.preprocessPreferences(this) - } + preprocessPreferences() } override fun onSharedPreferenceChanged(sharedPreferences: SharedPreferences, key: String) { @@ -212,6 +210,13 @@ class MyPreferenceFragment : PreferenceFragmentCompat(), OnSharedPreferenceChang checkForBiometricFallback(key) updatePrefSummary(findPreference(key)) + preprocessPreferences() + } + + private fun preprocessPreferences() { + for (plugin in pluginStore.plugins) { + plugin.preprocessPreferences(this) + } } private fun checkForBiometricFallback(key: String) { diff --git a/app/src/main/java/info/nightscout/androidaps/dialogs/ExtendedBolusDialog.kt b/app/src/main/java/info/nightscout/androidaps/dialogs/ExtendedBolusDialog.kt index 62da94d3ff..02e46e5c17 100644 --- a/app/src/main/java/info/nightscout/androidaps/dialogs/ExtendedBolusDialog.kt +++ b/app/src/main/java/info/nightscout/androidaps/dialogs/ExtendedBolusDialog.kt @@ -62,7 +62,7 @@ class ExtendedBolusDialog : DialogFragmentWithDate() { override fun submit(): Boolean { val insulin = SafeParse.stringToDouble(actions_extendedbolus_insulin.text) - val durationInMinutes = SafeParse.stringToInt(actions_extendedbolus_duration.text) + val durationInMinutes = actions_extendedbolus_duration.value.toInt() val actions: LinkedList = LinkedList() val insulinAfterConstraint = constraintChecker.applyExtendedBolusConstraints(Constraint(insulin)).value() actions.add(resourceHelper.gs(R.string.formatinsulinunits, insulinAfterConstraint)) diff --git a/app/src/main/java/info/nightscout/androidaps/dialogs/TempBasalDialog.kt b/app/src/main/java/info/nightscout/androidaps/dialogs/TempBasalDialog.kt index 14f0897cc5..7ab5850f87 100644 --- a/app/src/main/java/info/nightscout/androidaps/dialogs/TempBasalDialog.kt +++ b/app/src/main/java/info/nightscout/androidaps/dialogs/TempBasalDialog.kt @@ -83,7 +83,7 @@ class TempBasalDialog : DialogFragmentWithDate() { override fun submit(): Boolean { var percent = 0 var absolute = 0.0 - val durationInMinutes = SafeParse.stringToInt(actions_tempbasal_duration.text) + val durationInMinutes = actions_tempbasal_duration.value.toInt() val profile = profileFunction.getProfile() ?: return false val actions: LinkedList = LinkedList() if (isPercentPump) { diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/aps/openAPSSMB/OpenAPSSMBPlugin.java b/app/src/main/java/info/nightscout/androidaps/plugins/aps/openAPSSMB/OpenAPSSMBPlugin.java index 6da05d9075..3e54eb8a3a 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/aps/openAPSSMB/OpenAPSSMBPlugin.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/aps/openAPSSMB/OpenAPSSMBPlugin.java @@ -2,6 +2,9 @@ package info.nightscout.androidaps.plugins.aps.openAPSSMB; import android.content.Context; +import androidx.preference.PreferenceFragmentCompat; +import androidx.preference.SwitchPreference; + import org.jetbrains.annotations.NotNull; import org.json.JSONException; @@ -42,6 +45,7 @@ import info.nightscout.androidaps.utils.HardLimits; import info.nightscout.androidaps.utils.Profiler; import info.nightscout.androidaps.utils.Round; import info.nightscout.androidaps.utils.resources.ResourceHelper; +import info.nightscout.androidaps.utils.sharedPreferences.SP; @Singleton public class OpenAPSSMBPlugin extends PluginBase implements APSInterface, ConstraintsInterface { @@ -56,6 +60,7 @@ public class OpenAPSSMBPlugin extends PluginBase implements APSInterface, Constr private final HardLimits hardLimits; private final Profiler profiler; private final FabricPrivacy fabricPrivacy; + private final SP sp; // last values DetermineBasalAdapterSMBJS lastDetermineBasalAdapterSMBJS = null; @@ -77,7 +82,8 @@ public class OpenAPSSMBPlugin extends PluginBase implements APSInterface, Constr IobCobCalculatorPlugin iobCobCalculatorPlugin, HardLimits hardLimits, Profiler profiler, - FabricPrivacy fabricPrivacy + FabricPrivacy fabricPrivacy, + SP sp ) { super(new PluginDescription() .mainType(PluginType.APS) @@ -100,6 +106,7 @@ public class OpenAPSSMBPlugin extends PluginBase implements APSInterface, Constr this.hardLimits = hardLimits; this.profiler = profiler; this.fabricPrivacy = fabricPrivacy; + this.sp = sp; } @Override @@ -119,6 +126,25 @@ public class OpenAPSSMBPlugin extends PluginBase implements APSInterface, Constr return pump.getPumpDescription().isTempBasalCapable; } + @Override + public void preprocessPreferences(@NotNull PreferenceFragmentCompat preferenceFragment) { + super.preprocessPreferences(preferenceFragment); + boolean smbAlwaysEnabled = sp.getBoolean(R.string.key_enableSMB_always, false); + + SwitchPreference withCOB = preferenceFragment.findPreference(resourceHelper.gs(R.string.key_enableSMB_with_COB)); + if (withCOB != null) { + withCOB.setVisible(!smbAlwaysEnabled); + } + SwitchPreference withTempTarget = preferenceFragment.findPreference(resourceHelper.gs(R.string.key_enableSMB_with_temptarget)); + if (withTempTarget != null) { + withTempTarget.setVisible(!smbAlwaysEnabled); + } + SwitchPreference afterCarbs = preferenceFragment.findPreference(resourceHelper.gs(R.string.key_enableSMB_after_carbs)); + if (afterCarbs != null) { + afterCarbs.setVisible(!smbAlwaysEnabled); + } + } + @Override public APSResult getLastAPSResult() { return lastAPSResult; @@ -174,7 +200,7 @@ public class OpenAPSSMBPlugin extends PluginBase implements APSInterface, Constr long startPart = System.currentTimeMillis(); MealData mealData = iobCobCalculatorPlugin.getMealData(); - profiler.log(LTag.APS, "getMealData()", startPart); + profiler.log(LTag.APS, "getMealData()", startPart); Constraint maxIOBAllowedConstraint = constraintChecker.getMaxIOBAllowed(); inputConstraints.copyReasons(maxIOBAllowedConstraint); @@ -219,7 +245,7 @@ public class OpenAPSSMBPlugin extends PluginBase implements APSInterface, Constr } IobTotal[] iobArray = iobCobCalculatorPlugin.calculateIobArrayForSMB(lastAutosensResult, SMBDefaults.exercise_mode, SMBDefaults.half_basal_exercise_target, isTempTarget); - profiler.log(LTag.APS, "calculateIobArrayInDia()", startPart); + profiler.log(LTag.APS, "calculateIobArrayInDia()", startPart); startPart = System.currentTimeMillis(); Constraint smbAllowed = new Constraint<>(!tempBasalFallback); @@ -234,8 +260,8 @@ public class OpenAPSSMBPlugin extends PluginBase implements APSInterface, Constr constraintChecker.isUAMEnabled(uam); inputConstraints.copyReasons(uam); - profiler.log(LTag.APS, "detectSensitivityandCarbAbsorption()", startPart); - profiler.log(LTag.APS, "SMB data gathering", start); + profiler.log(LTag.APS, "detectSensitivityandCarbAbsorption()", startPart); + profiler.log(LTag.APS, "SMB data gathering", start); start = System.currentTimeMillis(); try { @@ -254,7 +280,7 @@ public class OpenAPSSMBPlugin extends PluginBase implements APSInterface, Constr long now = System.currentTimeMillis(); DetermineBasalResultSMB determineBasalResultSMB = determineBasalAdapterSMBJS.invoke(); - profiler.log(LTag.APS, "SMB calculation", start); + profiler.log(LTag.APS, "SMB calculation", start); if (determineBasalResultSMB == null) { getAapsLogger().error(LTag.APS, "SMB calculation returned null"); lastDetermineBasalAdapterSMBJS = null; diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/general/automation/elements/InputBg.kt b/app/src/main/java/info/nightscout/androidaps/plugins/general/automation/elements/InputBg.kt index f81ef07bb8..24b48e0fb7 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/general/automation/elements/InputBg.kt +++ b/app/src/main/java/info/nightscout/androidaps/plugins/general/automation/elements/InputBg.kt @@ -5,7 +5,7 @@ import dagger.android.HasAndroidInjector import info.nightscout.androidaps.Constants import info.nightscout.androidaps.R import info.nightscout.androidaps.interfaces.ProfileFunction -import info.nightscout.androidaps.utils.NumberPicker +import info.nightscout.androidaps.utils.ui.NumberPicker import java.text.DecimalFormat import javax.inject.Inject diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/general/automation/elements/InputDelta.kt b/app/src/main/java/info/nightscout/androidaps/plugins/general/automation/elements/InputDelta.kt index e7624a98c7..46b696eaec 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/general/automation/elements/InputDelta.kt +++ b/app/src/main/java/info/nightscout/androidaps/plugins/general/automation/elements/InputDelta.kt @@ -9,7 +9,7 @@ import android.widget.Spinner import androidx.annotation.StringRes import dagger.android.HasAndroidInjector import info.nightscout.androidaps.R -import info.nightscout.androidaps.utils.NumberPicker +import info.nightscout.androidaps.utils.ui.NumberPicker import info.nightscout.androidaps.utils.resources.ResourceHelper import java.text.DecimalFormat import java.util.* diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/general/automation/elements/InputDouble.kt b/app/src/main/java/info/nightscout/androidaps/plugins/general/automation/elements/InputDouble.kt index 7824b51960..566315b9eb 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/general/automation/elements/InputDouble.kt +++ b/app/src/main/java/info/nightscout/androidaps/plugins/general/automation/elements/InputDouble.kt @@ -3,7 +3,7 @@ package info.nightscout.androidaps.plugins.general.automation.elements import android.widget.LinearLayout import dagger.android.HasAndroidInjector import info.nightscout.androidaps.R -import info.nightscout.androidaps.utils.NumberPicker +import info.nightscout.androidaps.utils.ui.NumberPicker import java.text.DecimalFormat class InputDouble(injector: HasAndroidInjector) : Element(injector) { diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/general/automation/elements/InputDuration.kt b/app/src/main/java/info/nightscout/androidaps/plugins/general/automation/elements/InputDuration.kt index cab16d2502..08647735cd 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/general/automation/elements/InputDuration.kt +++ b/app/src/main/java/info/nightscout/androidaps/plugins/general/automation/elements/InputDuration.kt @@ -3,7 +3,8 @@ package info.nightscout.androidaps.plugins.general.automation.elements import android.widget.LinearLayout import dagger.android.HasAndroidInjector import info.nightscout.androidaps.R -import info.nightscout.androidaps.utils.NumberPicker +import info.nightscout.androidaps.utils.ui.MinutesNumberPicker +import info.nightscout.androidaps.utils.ui.NumberPicker import java.text.DecimalFormat class InputDuration(injector: HasAndroidInjector) : Element(injector) { @@ -20,11 +21,14 @@ class InputDuration(injector: HasAndroidInjector) : Element(injector) { var value: Int = 0 override fun addToLayout(root: LinearLayout) { - val numberPicker = NumberPicker(root.context, null) - if (unit == TimeUnit.MINUTES) + val numberPicker : NumberPicker + if (unit == TimeUnit.MINUTES) { + numberPicker = MinutesNumberPicker(root.context, null) numberPicker.setParams(0.0, 0.0, 24 * 60.0, 10.0, DecimalFormat("0"), false, root.findViewById(R.id.ok)) - else + } else { + numberPicker = NumberPicker(root.context, null) numberPicker.setParams(0.0, 0.0, 24.0, 1.0, DecimalFormat("0"), false, root.findViewById(R.id.ok)) + } numberPicker.value = value.toDouble() numberPicker.setOnValueChangedListener { value: Double -> this.value = value.toInt() } root.addView(numberPicker) diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/general/automation/elements/InputInsulin.kt b/app/src/main/java/info/nightscout/androidaps/plugins/general/automation/elements/InputInsulin.kt index f822a971f4..0903824a94 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/general/automation/elements/InputInsulin.kt +++ b/app/src/main/java/info/nightscout/androidaps/plugins/general/automation/elements/InputInsulin.kt @@ -3,7 +3,7 @@ package info.nightscout.androidaps.plugins.general.automation.elements import android.widget.LinearLayout import dagger.android.HasAndroidInjector import info.nightscout.androidaps.R -import info.nightscout.androidaps.utils.NumberPicker +import info.nightscout.androidaps.utils.ui.NumberPicker import java.text.DecimalFormat class InputInsulin(injector: HasAndroidInjector) : Element(injector) { diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/general/automation/elements/InputPercent.kt b/app/src/main/java/info/nightscout/androidaps/plugins/general/automation/elements/InputPercent.kt index 7b1f739ed7..05524abc40 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/general/automation/elements/InputPercent.kt +++ b/app/src/main/java/info/nightscout/androidaps/plugins/general/automation/elements/InputPercent.kt @@ -3,7 +3,7 @@ package info.nightscout.androidaps.plugins.general.automation.elements import android.widget.LinearLayout import dagger.android.HasAndroidInjector import info.nightscout.androidaps.R -import info.nightscout.androidaps.utils.NumberPicker +import info.nightscout.androidaps.utils.ui.NumberPicker import java.text.DecimalFormat class InputPercent(injector: HasAndroidInjector) : Element(injector) { diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/general/automation/elements/InputTempTarget.kt b/app/src/main/java/info/nightscout/androidaps/plugins/general/automation/elements/InputTempTarget.kt index 8208e7e687..4f58be8167 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/general/automation/elements/InputTempTarget.kt +++ b/app/src/main/java/info/nightscout/androidaps/plugins/general/automation/elements/InputTempTarget.kt @@ -5,7 +5,7 @@ import dagger.android.HasAndroidInjector import info.nightscout.androidaps.Constants import info.nightscout.androidaps.R import info.nightscout.androidaps.interfaces.ProfileFunction -import info.nightscout.androidaps.utils.NumberPicker +import info.nightscout.androidaps.utils.ui.NumberPicker import java.text.DecimalFormat import javax.inject.Inject diff --git a/app/src/main/java/info/nightscout/androidaps/receivers/TimeDateOrTZChangeReceiver.kt b/app/src/main/java/info/nightscout/androidaps/receivers/TimeDateOrTZChangeReceiver.kt index 55a186fc9f..de7249b938 100644 --- a/app/src/main/java/info/nightscout/androidaps/receivers/TimeDateOrTZChangeReceiver.kt +++ b/app/src/main/java/info/nightscout/androidaps/receivers/TimeDateOrTZChangeReceiver.kt @@ -7,6 +7,7 @@ import dagger.android.DaggerBroadcastReceiver import info.nightscout.androidaps.interfaces.ActivePluginProvider import info.nightscout.androidaps.interfaces.PumpInterface import info.nightscout.androidaps.logging.AAPSLogger +import info.nightscout.androidaps.logging.BundleLogger import info.nightscout.androidaps.logging.LTag import info.nightscout.androidaps.utils.TimeChangeType import java.util.* @@ -38,37 +39,38 @@ class TimeDateOrTZChangeReceiver : DaggerBroadcastReceiver() { val action = intent.action val activePump: PumpInterface = activePlugin.activePump - aapsLogger.debug(LTag.PUMP,"TimeDateOrTZChangeReceiver::Date, Time and/or TimeZone changed. [action={}]", action) - try { - aapsLogger.debug(LTag.PUMP, "TimeDateOrTZChangeReceiver::Intent::{}", gson.toJson(intent)) - } catch (ignored : Exception) {} + aapsLogger.debug(LTag.PUMP, "TimeDateOrTZChangeReceiver::Date, Time and/or TimeZone changed. [action={}]", action) + aapsLogger.debug(LTag.PUMP, "TimeDateOrTZChangeReceiver::Intent::{}", BundleLogger.log(intent.extras)) when { action == null -> { - aapsLogger.error(LTag.PUMP,"TimeDateOrTZChangeReceiver::Action is null. Exiting.") + aapsLogger.error(LTag.PUMP, "TimeDateOrTZChangeReceiver::Action is null. Exiting.") } + Intent.ACTION_TIMEZONE_CHANGED == action -> { - aapsLogger.info(LTag.PUMP,"TimeDateOrTZChangeReceiver::Timezone changed. Notifying pump driver.") + aapsLogger.info(LTag.PUMP, "TimeDateOrTZChangeReceiver::Timezone changed. Notifying pump driver.") activePump.timezoneOrDSTChanged(TimeChangeType.TimezoneChange) } + Intent.ACTION_TIME_CHANGED == action -> { val currentDst = calculateDST() if (currentDst == isDST) { - aapsLogger.info(LTag.PUMP,"TimeDateOrTZChangeReceiver::Time changed (manual). Notifying pump driver.") + aapsLogger.info(LTag.PUMP, "TimeDateOrTZChangeReceiver::Time changed (manual). Notifying pump driver.") activePump.timezoneOrDSTChanged(TimeChangeType.ManualTimeChange) } else { if (currentDst) { - aapsLogger.info(LTag.PUMP,"TimeDateOrTZChangeReceiver::DST started. Notifying pump driver.") + aapsLogger.info(LTag.PUMP, "TimeDateOrTZChangeReceiver::DST started. Notifying pump driver.") activePump.timezoneOrDSTChanged(TimeChangeType.DST_Started) } else { - aapsLogger.info(LTag.PUMP,"TimeDateOrTZChangeReceiver::DST ended. Notifying pump driver.") + aapsLogger.info(LTag.PUMP, "TimeDateOrTZChangeReceiver::DST ended. Notifying pump driver.") activePump.timezoneOrDSTChanged(TimeChangeType.DST_Ended) } } isDST = currentDst } + else -> { - aapsLogger.error(LTag.PUMP,"TimeDateOrTZChangeReceiver::Unknown action received [name={}]. Exiting.", action) + aapsLogger.error(LTag.PUMP, "TimeDateOrTZChangeReceiver::Unknown action received [name={}]. Exiting.", action) } } } diff --git a/app/src/main/java/info/nightscout/androidaps/setupwizard/elements/SWEditNumberWithUnits.kt b/app/src/main/java/info/nightscout/androidaps/setupwizard/elements/SWEditNumberWithUnits.kt index 978455a4ae..2d49eb3a97 100644 --- a/app/src/main/java/info/nightscout/androidaps/setupwizard/elements/SWEditNumberWithUnits.kt +++ b/app/src/main/java/info/nightscout/androidaps/setupwizard/elements/SWEditNumberWithUnits.kt @@ -11,7 +11,7 @@ import info.nightscout.androidaps.Constants import info.nightscout.androidaps.data.Profile import info.nightscout.androidaps.interfaces.ProfileFunction import info.nightscout.androidaps.setupwizard.SWNumberValidator -import info.nightscout.androidaps.utils.NumberPicker +import info.nightscout.androidaps.utils.ui.NumberPicker import info.nightscout.androidaps.utils.SafeParse import java.text.DecimalFormat import javax.inject.Inject diff --git a/app/src/main/java/info/nightscout/androidaps/utils/NumberPickerVertical.java b/app/src/main/java/info/nightscout/androidaps/utils/NumberPickerVertical.java index f09f562d25..5244c5c4ce 100644 --- a/app/src/main/java/info/nightscout/androidaps/utils/NumberPickerVertical.java +++ b/app/src/main/java/info/nightscout/androidaps/utils/NumberPickerVertical.java @@ -1,30 +1,11 @@ package info.nightscout.androidaps.utils; import android.content.Context; -import android.os.Handler; -import android.os.Message; -import android.text.Editable; -import android.text.TextWatcher; import android.util.AttributeSet; -import android.view.KeyEvent; import android.view.LayoutInflater; -import android.view.MotionEvent; -import android.view.View; -import android.widget.Button; -import android.widget.EditText; -import android.widget.LinearLayout; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import java.text.NumberFormat; -import java.util.concurrent.Executors; -import java.util.concurrent.ScheduledExecutorService; -import java.util.concurrent.TimeUnit; - -import info.nightscout.androidaps.MainApp; import info.nightscout.androidaps.R; -import info.nightscout.androidaps.logging.StacktraceLoggerWrapper; +import info.nightscout.androidaps.utils.ui.NumberPicker; /** * Created by mike on 28.06.2016. diff --git a/app/src/main/java/info/nightscout/androidaps/utils/TimeListEdit.java b/app/src/main/java/info/nightscout/androidaps/utils/TimeListEdit.java index 7010a82c12..1440a65c21 100644 --- a/app/src/main/java/info/nightscout/androidaps/utils/TimeListEdit.java +++ b/app/src/main/java/info/nightscout/androidaps/utils/TimeListEdit.java @@ -13,24 +13,20 @@ import android.widget.LinearLayout; import android.widget.TextView; import androidx.annotation.NonNull; -import androidx.core.content.ContextCompat; import androidx.core.widget.TextViewCompat; import org.json.JSONArray; import org.json.JSONException; import org.json.JSONObject; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; import java.text.DecimalFormat; import java.text.NumberFormat; import java.util.ArrayList; import java.util.List; -import info.nightscout.androidaps.MainApp; import info.nightscout.androidaps.R; import info.nightscout.androidaps.logging.AAPSLogger; -import info.nightscout.androidaps.logging.StacktraceLoggerWrapper; +import info.nightscout.androidaps.utils.ui.NumberPicker; /** * Created by mike on 29.12.2016. diff --git a/app/src/main/java/info/nightscout/androidaps/utils/stats/TddCalculator.kt b/app/src/main/java/info/nightscout/androidaps/utils/stats/TddCalculator.kt index 1f8338f7d8..6cecfa4f73 100644 --- a/app/src/main/java/info/nightscout/androidaps/utils/stats/TddCalculator.kt +++ b/app/src/main/java/info/nightscout/androidaps/utils/stats/TddCalculator.kt @@ -65,6 +65,13 @@ class TddCalculator @Inject constructor( val profile = profileFunction.getProfile(t) ?: continue val absoluteRate = tbr?.tempBasalConvertedToAbsolute(t, profile) ?: profile.getBasal(t) tdd.basal += absoluteRate / 60.0 * 5.0 + + if (!activePlugin.getActivePump().isFakingTempsByExtendedBoluses()) { + // they are not included in TBRs + val eb = getExtendedBolusFromHistory(t) + val absoluteEbRate = eb?.absoluteRate() ?: 0.0 + tdd.bolus += absoluteEbRate / 60.0 * 5.0 + } result.put(midnight, tdd) } for (i in 0 until result.size()) { diff --git a/app/src/main/res/layout/activity_profilehelper.xml b/app/src/main/res/layout/activity_profilehelper.xml index effa56b112..310a4c566d 100644 --- a/app/src/main/res/layout/activity_profilehelper.xml +++ b/app/src/main/res/layout/activity_profilehelper.xml @@ -94,7 +94,7 @@ android:text="@string/age" android:textAppearance="@style/TextAppearance.AppCompat.Medium" /> - @@ -115,7 +115,7 @@ android:text="@string/tdd_total" android:textAppearance="@style/TextAppearance.AppCompat.Medium" /> - @@ -136,7 +136,7 @@ android:text="@string/weight_label" android:textAppearance="@style/TextAppearance.AppCompat.Medium" /> - @@ -157,7 +157,7 @@ android:text="@string/basalpctfromtdd_label" android:textAppearance="@style/TextAppearance.AppCompat.Medium" /> - diff --git a/app/src/main/res/layout/careportal_newnstreatment_dialog.xml b/app/src/main/res/layout/careportal_newnstreatment_dialog.xml deleted file mode 100644 index a501e70a77..0000000000 --- a/app/src/main/res/layout/careportal_newnstreatment_dialog.xml +++ /dev/null @@ -1,576 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -