Skip to content

Commit 6876bcf

Browse files
committed
#127: Last used blood sugar unit preserved
1 parent dbf2897 commit 6876bcf

File tree

2 files changed

+15
-2
lines changed

2 files changed

+15
-2
lines changed

portable/comp-android/diacomp/src/main/java/org/bosik/diacomp/android/frontend/activities/ActivityEditorBlood.java

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,9 +27,12 @@
2727
import android.widget.Spinner;
2828
import android.widget.TextView;
2929
import org.bosik.diacomp.android.R;
30+
import org.bosik.diacomp.android.backend.features.preferences.account.PreferencesLocalService;
3031
import org.bosik.diacomp.android.frontend.UIUtils;
3132
import org.bosik.diacomp.core.entities.business.Units;
3233
import org.bosik.diacomp.core.entities.business.diary.records.BloodRecord;
34+
import org.bosik.diacomp.core.services.preferences.PreferenceID;
35+
import org.bosik.diacomp.core.services.preferences.PreferencesTypedService;
3336
import org.bosik.diacomp.core.utils.Utils;
3437

3538
import java.util.Date;
@@ -44,6 +47,8 @@ public class ActivityEditorBlood extends ActivityEditorTime<BloodRecord>
4447
private Button buttonTime;
4548
private Button buttonDate;
4649

50+
private PreferencesTypedService preferences;
51+
4752
// TODO: i18n
4853
private static final String ERROR_INCORRECT_FINGER_VALUE = "Укажите палец, из которого бралась кровь";
4954
private static final String ERROR_INCORRECT_UNIT = "Incorrect unit of measurement";
@@ -103,6 +108,8 @@ public void onClick(View v)
103108
ActivityEditorBlood.this.submit();
104109
}
105110
});
111+
112+
preferences = new PreferencesTypedService(new PreferencesLocalService(this));
106113
}
107114

108115
@Override
@@ -112,7 +119,7 @@ protected void showValuesInGUI(boolean createMode)
112119
buttonTime.setText(formatTime(entity.getData().getTime()));
113120

114121
final Units.BloodSugar unit = createMode
115-
? Units.BloodSugar.MG_DL // FIXME: use preferences (last used unit)
122+
? preferences.getEnum(PreferenceID.ANDROID_LAST_USED_BLOOD_SUGAR_UNITS, Units.BloodSugar.class)
116123
: entity.getData().getUnit();
117124

118125
spinnerUnit.setSelection(writeUnit(unit));
@@ -189,6 +196,8 @@ protected boolean getValuesFromGUI()
189196
return false;
190197
}
191198

199+
preferences.setEnum(PreferenceID.ANDROID_LAST_USED_BLOOD_SUGAR_UNITS, entity.getData().getUnit());
200+
192201
return true;
193202
}
194203

portable/comp-transfer/src/main/java/org/bosik/diacomp/core/services/preferences/PreferenceID.java

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ public enum PreferenceID implements Coded
3131
*/
3232
BLOOD_SUGAR_UNITS("f8b8f180da6d4d9198ee42944b23dfdf", Type.STRING, Units.BloodSugar.MMOL_L.getCode(), true),
3333
/**
34-
* Target blood sugar, in mmol/l
34+
* Target blood sugar, in preferred units
3535
*/
3636
TARGET_BS("e6681282aa724d3fa4cd6ac5735a163f", Type.FLOAT, "5.5", true),
3737
/**
@@ -50,6 +50,10 @@ public enum PreferenceID implements Coded
5050
* Units of mass to use in manual rates, options are {@link Units.Mass}'s codes
5151
*/
5252
RATES_MASS_UNITS("589985b443c243d6844209964b2b1e8e", Type.STRING, Units.Mass.G.getCode(), true),
53+
/**
54+
* Units of measurement used for the last blood sugar recorded
55+
*/
56+
ANDROID_LAST_USED_BLOOD_SUGAR_UNITS("622096bc5ed14fac93339de8a6d1df96", Type.STRING, Units.BloodSugar.MMOL_L.getCode(), false),
5357
/**
5458
* If it's first start on Android device. TODO: move it?
5559
*/

0 commit comments

Comments
 (0)