|
47 | 47 | import org.glucosio.android.analytics.Analytics; |
48 | 48 | import org.glucosio.android.db.DatabaseHandler; |
49 | 49 | import org.glucosio.android.db.User; |
| 50 | +import org.glucosio.android.tools.GlucosioConverter; |
50 | 51 | import org.glucosio.android.tools.InputFilterMinMax; |
51 | 52 | import org.glucosio.android.tools.LocaleHelper; |
52 | 53 |
|
@@ -162,16 +163,19 @@ public void onCreate(final Bundle savedInstanceState) { |
162 | 163 | agePref.setDefaultValue(user.getAge()); |
163 | 164 | countryPref.setValue(user.getCountry()); |
164 | 165 | genderPref.setValue(user.getGender()); |
165 | | - diabetesTypePref.setValue(user.getD_type() + ""); |
| 166 | + diabetesTypePref.setValue(String.valueOf(user.getD_type())); |
166 | 167 | unitPrefGlucose.setValue(getGlucoseUnitValue(user.getPreferred_unit())); |
167 | 168 | unitPrefA1c.setValue(getA1CUnitValue(user.getPreferred_unit_a1c())); |
168 | 169 | unitPrefWeight.setValue(getUnitWeight(user.getPreferred_unit_weight())); |
169 | 170 | rangePref.setValue(user.getPreferred_range()); |
170 | 171 |
|
171 | | - minRangePref.setDefaultValue(user.getCustom_range_min() + ""); |
172 | | - maxRangePref.setDefaultValue(user.getCustom_range_max() + ""); |
173 | | - minRangePref.setDefaultValue(user.getCustom_range_min() + ""); |
174 | | - maxRangePref.setDefaultValue(user.getCustom_range_max() + ""); |
| 172 | + if (user.getPreferred_unit().equals("mg/dL")) { |
| 173 | + maxRangePref.setDefaultValue(user.getCustom_range_max()); |
| 174 | + minRangePref.setDefaultValue(user.getCustom_range_min()); |
| 175 | + } else { |
| 176 | + maxRangePref.setDefaultValue(GlucosioConverter.glucoseToMmolL(user.getCustom_range_max())); |
| 177 | + minRangePref.setDefaultValue(GlucosioConverter.glucoseToMmolL(user.getCustom_range_min())); |
| 178 | + } |
175 | 179 |
|
176 | 180 | if (!"custom".equals(rangePref.getValue())) { |
177 | 181 | minRangePref.setEnabled(false); |
@@ -277,24 +281,49 @@ public boolean onPreferenceChange(Preference preference, Object newValue) { |
277 | 281 | return true; |
278 | 282 | } |
279 | 283 | }); |
| 284 | + |
| 285 | + minRangePref.setOnPreferenceClickListener(new Preference.OnPreferenceClickListener() { |
| 286 | + @Override |
| 287 | + public boolean onPreferenceClick(Preference preference) { |
| 288 | + minEditText.setText(""); |
| 289 | + return false; |
| 290 | + } |
| 291 | + }); |
| 292 | + |
280 | 293 | minRangePref.setOnPreferenceChangeListener(new Preference.OnPreferenceChangeListener() { |
281 | 294 | @Override |
282 | 295 | public boolean onPreferenceChange(Preference preference, Object newValue) { |
283 | 296 | if (TextUtils.isEmpty(newValue.toString().trim())) { |
284 | 297 | return false; |
285 | 298 | } |
286 | | - updatedUser.setCustom_range_min(Integer.parseInt(newValue.toString())); |
| 299 | + if (user.getPreferred_unit().equals("mg/dL")) { |
| 300 | + updatedUser.setCustom_range_min(Integer.parseInt(newValue.toString())); |
| 301 | + } else { |
| 302 | + updatedUser.setCustom_range_min(GlucosioConverter.glucoseToMgDl(Double.parseDouble(newValue.toString()))); |
| 303 | + } |
287 | 304 | updateDB(); |
288 | 305 | return true; |
289 | 306 | } |
290 | 307 | }); |
| 308 | + |
| 309 | + maxRangePref.setOnPreferenceClickListener(new Preference.OnPreferenceClickListener() { |
| 310 | + @Override |
| 311 | + public boolean onPreferenceClick(Preference preference) { |
| 312 | + maxEditText.setText(""); |
| 313 | + return false; |
| 314 | + } |
| 315 | + }); |
291 | 316 | maxRangePref.setOnPreferenceChangeListener(new Preference.OnPreferenceChangeListener() { |
292 | 317 | @Override |
293 | 318 | public boolean onPreferenceChange(Preference preference, Object newValue) { |
294 | 319 | if (TextUtils.isEmpty(newValue.toString().trim())) { |
295 | 320 | return false; |
296 | 321 | } |
297 | | - updatedUser.setCustom_range_max(Integer.parseInt(newValue.toString())); |
| 322 | + if (user.getPreferred_unit().equals("mg/dL")) { |
| 323 | + updatedUser.setCustom_range_max(Integer.parseInt(newValue.toString())); |
| 324 | + } else { |
| 325 | + updatedUser.setCustom_range_max(GlucosioConverter.glucoseToMgDl(Double.parseDouble(newValue.toString()))); |
| 326 | + } |
298 | 327 | updateDB(); |
299 | 328 | return true; |
300 | 329 | } |
@@ -326,8 +355,6 @@ public boolean onPreferenceChange(Preference preference, Object newValue) { |
326 | 355 | maxEditText = maxRangePref.getEditText(); |
327 | 356 |
|
328 | 357 | ageEditText.setFilters(new InputFilter[]{new InputFilterMinMax(1, 110)}); |
329 | | - minEditText.setFilters(new InputFilter[]{new InputFilterMinMax(1, 1500)}); |
330 | | - maxEditText.setFilters(new InputFilter[]{new InputFilterMinMax(1, 1500)}); |
331 | 358 |
|
332 | 359 | // Get countries list from locale |
333 | 360 | ArrayList<String> countriesArray = new ArrayList<>(); |
@@ -421,20 +448,26 @@ public boolean onPreferenceChange(Preference preference, Object newValue) { |
421 | 448 |
|
422 | 449 | private void updateDB() { |
423 | 450 | dB.updateUser(updatedUser); |
424 | | - agePref.setSummary(user.getAge() + ""); |
425 | | - genderPref.setSummary(user.getGender() + ""); |
| 451 | + agePref.setSummary(String.valueOf(user.getAge())); |
| 452 | + genderPref.setSummary(String.valueOf(user.getGender())); |
426 | 453 |
|
427 | 454 | diabetesTypePref.setSummary(getResources().getStringArray(R.array.helloactivity_diabetes_type)[user.getD_type() - 1]); |
428 | 455 | unitPrefGlucose.setSummary(getGlucoseUnitValue(user.getPreferred_unit())); |
429 | 456 | unitPrefA1c.setSummary(getA1CUnitValue(user.getPreferred_unit_a1c())); |
430 | 457 | unitPrefWeight.setSummary(getUnitWeight(user.getPreferred_unit_weight())); |
431 | 458 | countryPref.setSummary(user.getCountry()); |
432 | | - minRangePref.setSummary(user.getCustom_range_min() + ""); |
433 | | - maxRangePref.setSummary(user.getCustom_range_max() + ""); |
| 459 | + |
| 460 | + if (user.getPreferred_unit().equals("mg/dL")) { |
| 461 | + minRangePref.setSummary(String.valueOf(user.getCustom_range_min())); |
| 462 | + maxRangePref.setSummary(String.valueOf(user.getCustom_range_max())); |
| 463 | + } else { |
| 464 | + minRangePref.setSummary(String.valueOf(GlucosioConverter.glucoseToMmolL(user.getCustom_range_min()))); |
| 465 | + maxRangePref.setSummary(String.valueOf(GlucosioConverter.glucoseToMmolL(user.getCustom_range_max()))); |
| 466 | + } |
434 | 467 |
|
435 | 468 | countryPref.setValue(user.getCountry()); |
436 | 469 | genderPref.setValue(user.getGender()); |
437 | | - diabetesTypePref.setValue(user.getD_type() + ""); |
| 470 | + diabetesTypePref.setValue(String.valueOf(user.getD_type())); |
438 | 471 | unitPrefGlucose.setValue(user.getPreferred_unit()); |
439 | 472 | genderPref.setValue(user.getGender()); |
440 | 473 | unitPrefGlucose.setValue(user.getPreferred_unit()); |
|
0 commit comments