Skip to content

Commit

Permalink
Persistent High threshold fix
Browse files Browse the repository at this point in the history
  • Loading branch information
Navid200 committed Nov 3, 2024
1 parent d14910c commit 69a3ce5
Show file tree
Hide file tree
Showing 3 changed files with 20 additions and 2 deletions.
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
package com.eveningoutpost.dexdrip.utilitymodels;

import static com.eveningoutpost.dexdrip.utils.Preferences.handleUnitsChange;

import android.content.Context;
import android.content.SharedPreferences;
import android.net.Uri;
Expand Down Expand Up @@ -60,6 +62,9 @@ public void performAll() {
IncompatibleApps.notifyAboutIncompatibleApps();
CompatibleApps.notifyAboutCompatibleApps();
legacySettingsMoveLanguageFromNoToNb();
if (!Pref.getString("units", "mgdl").equals("mgdl")) { // Only if the selected unit is mmol/L
handleUnitsChange(null, "mmol", null); // Trigger the correction of values (defaults) if needed
}

}

Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
package com.eveningoutpost.dexdrip.utils;

import static com.eveningoutpost.dexdrip.EditAlertActivity.unitsConvert2Disp;
import static com.eveningoutpost.dexdrip.models.JoH.tolerantParseDouble;
import static com.eveningoutpost.dexdrip.utils.DexCollectionType.getBestCollectorHardwareName;
import static com.eveningoutpost.dexdrip.xdrip.gs;

Expand Down Expand Up @@ -188,6 +190,8 @@ public class Preferences extends BasePreferenceActivity implements SearchPrefere
private volatile String scanFormat = null; // The format of the scan
private volatile String scanContents = null; // Text content of the scan coming either from camera or file
private volatile byte[] scanRawBytes = null; // Raw bytes of the scan
private static final double MIN_GLUCOSE_INPUT = 40; // The smallest input glucose value xDrip accepts
private static final double MAX_GLUCOSE_INPUT = 400; // The largest input glucose value xDrip accepts

private void refreshFragments() {
refreshFragments(null);
Expand Down Expand Up @@ -755,10 +759,15 @@ public boolean onPreferenceChange(Preference preference, Object value) {
String stringValue = value.toString();
if (isNumeric(stringValue)) {
final boolean domgdl = Pref.getString("units", "mgdl").equals("mgdl"); // Identify which unit is chosen
double submissionMgdl = domgdl ? tolerantParseDouble(stringValue) : tolerantParseDouble(stringValue) * Constants.MMOLL_TO_MGDL;
if (submissionMgdl > MAX_GLUCOSE_INPUT || submissionMgdl < MIN_GLUCOSE_INPUT) {
JoH.static_toast_long(xdrip.gs(R.string.the_value_must_be_between_min_and_max,unitsConvert2Disp(domgdl, MIN_GLUCOSE_INPUT), unitsConvert2Disp(domgdl, MAX_GLUCOSE_INPUT)));
return false; // Reject input if out of range
}
preference.setSummary(stringValue + " " + (domgdl ? "mg/dl" : "mmol/l")); // Set the summary to show the value followed by the chosen unit
return true;
}
return false;
return false; // Reject input if not numeric
}
};
private static Preference.OnPreferenceChangeListener sBindPreferenceTitleAppendToValueListenerUpdateChannel = new Preference.OnPreferenceChangeListener() {
Expand Down Expand Up @@ -1009,7 +1018,10 @@ private static void bindPreferenceSummaryToValueAndEnsureNumeric(Preference pref
.getString(preference.getKey(), ""));
}

private static void bindPreferenceSummaryToUnitizedValueAndEnsureNumeric(Preference preference) { // Use this to show the value as well as the corresponding glucose unit as the summary
private static void bindPreferenceSummaryToUnitizedValueAndEnsureNumeric(Preference preference) { // Use this to:
// 1- show the value as summary;
// 2- amend the value in summary with the corresponding glucose unit;
// 3- reject inputs outside the 40-400 mg/dL range.
preference.setOnPreferenceChangeListener(sBindNumericUnitizedPreferenceSummaryToValueListener);
sBindNumericUnitizedPreferenceSummaryToValueListener.onPreferenceChange(preference,
PreferenceManager
Expand Down
1 change: 1 addition & 0 deletions app/src/main/res/values/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -243,6 +243,7 @@
<string name="persistent_high_alert">Persistent High Alert</string>
<string name="persistent_high_alert_enable">Enable</string>
<string name="title_persistent_high_threshold">Threshold</string>
<string name="the_value_must_be_between_min_and_max">The value must be between %1$s and %2$s</string>
<string name="forecasted_low_alert">Forecasted Low Alert</string>
<string name="extrapolate_data_to_try_to_predict_lows">Extrapolate data to try to predict lows</string>
<string name="alarm_at_forecasted_low_mins">Alarm at Forecasted Low mins</string>
Expand Down

0 comments on commit 69a3ce5

Please sign in to comment.