diff --git a/android_app/app/src/main/java/com/health/openscale/core/OpenScale.java b/android_app/app/src/main/java/com/health/openscale/core/OpenScale.java index 8a897493..7bca1430 100644 --- a/android_app/app/src/main/java/com/health/openscale/core/OpenScale.java +++ b/android_app/app/src/main/java/com/health/openscale/core/OpenScale.java @@ -93,7 +93,7 @@ public class OpenScale { scaleUser.body_height = body_height; scaleUser.scale_unit = scale_unit; scaleUser.gender = gender; - scaleUser.initial_weight = initial_weight; + scaleUser.setConvertedInitialWeight(initial_weight); scaleUser.goal_weight = goal_weight; scaleUser.goal_date = new SimpleDateFormat("dd.MM.yyyy").parse(goal_date); @@ -150,7 +150,7 @@ public class OpenScale { scaleUser.body_height = body_height; scaleUser.scale_unit = scale_unit; scaleUser.gender = gender; - scaleUser.initial_weight = initial_weight; + scaleUser.setConvertedInitialWeight(initial_weight); scaleUser.goal_weight = goal_weight; scaleUser.goal_date = new SimpleDateFormat("dd.MM.yyyy").parse(goal_date); } catch (ParseException e) { @@ -212,7 +212,7 @@ public class OpenScale { if (scaleUserData.size() > 0) { lastWeight = scaleUserData.get(0).getWeight(); } else { - lastWeight = scaleUser.get(i).initial_weight; + lastWeight = scaleUser.get(i).getInitialWeight(); } if ((lastWeight - range) <= weight && (lastWeight + range) >= weight) { diff --git a/android_app/app/src/main/java/com/health/openscale/core/database/ScaleUserDatabase.java b/android_app/app/src/main/java/com/health/openscale/core/database/ScaleUserDatabase.java index f7294be2..4131a399 100644 --- a/android_app/app/src/main/java/com/health/openscale/core/database/ScaleUserDatabase.java +++ b/android_app/app/src/main/java/com/health/openscale/core/database/ScaleUserDatabase.java @@ -113,7 +113,7 @@ public class ScaleUserDatabase extends SQLiteOpenHelper { values.put(COLUMN_NAME_BODY_HEIGHT, scaleUser.body_height); values.put(COLUMN_NAME_SCALE_UNIT, scaleUser.scale_unit); values.put(COLUMN_NAME_GENDER, scaleUser.gender); - values.put(COLUMN_NAME_INITIAL_WEIGHT, scaleUser.initial_weight); + values.put(COLUMN_NAME_INITIAL_WEIGHT, scaleUser.getInitialWeight()); values.put(COLUMN_NAME_GOAL_WEIGHT, scaleUser.goal_weight); values.put(COLUMN_NAME_GOAL_DATE, formatDateTime.format(scaleUser.goal_date)); @@ -146,7 +146,7 @@ public class ScaleUserDatabase extends SQLiteOpenHelper { values.put(COLUMN_NAME_BODY_HEIGHT, scaleUser.body_height); values.put(COLUMN_NAME_SCALE_UNIT, scaleUser.scale_unit); values.put(COLUMN_NAME_GENDER, scaleUser.gender); - values.put(COLUMN_NAME_INITIAL_WEIGHT, scaleUser.initial_weight); + values.put(COLUMN_NAME_INITIAL_WEIGHT, scaleUser.getInitialWeight()); values.put(COLUMN_NAME_GOAL_WEIGHT, scaleUser.goal_weight); values.put(COLUMN_NAME_GOAL_DATE, formatDateTime.format(scaleUser.goal_date)); @@ -222,7 +222,7 @@ public class ScaleUserDatabase extends SQLiteOpenHelper { scaleUser.birthday = formatDateTime.parse(birthday); scaleUser.goal_date = formatDateTime.parse(goal_date); - scaleUser.initial_weight = Math.round(initial_weight * 100.0f) / 100.0f; + scaleUser.setInitialWeight(Math.round(initial_weight * 100.0f) / 100.0f); scaleUser.goal_weight = Math.round(goal_weight * 100.0f) / 100.0f; } catch (ParseException ex) { Log.e("ScaleDatabase", "Can't parse the date time string: " + ex.getMessage()); diff --git a/android_app/app/src/main/java/com/health/openscale/core/datatypes/ScaleUser.java b/android_app/app/src/main/java/com/health/openscale/core/datatypes/ScaleUser.java index 7f0d5c88..d541685c 100644 --- a/android_app/app/src/main/java/com/health/openscale/core/datatypes/ScaleUser.java +++ b/android_app/app/src/main/java/com/health/openscale/core/datatypes/ScaleUser.java @@ -21,6 +21,8 @@ import java.util.Date; public class ScaleUser { public static final String[] UNIT_STRING = new String[] {"kg", "lb", "st"}; + private static float KG_LB = 2.20462f; + private static float KG_ST = 0.157473f; public int id; public String user_name; @@ -28,7 +30,7 @@ public class ScaleUser { public int body_height; public int scale_unit; public int gender; - public float initial_weight; + private float initial_weight; public float goal_weight; public Date goal_date; @@ -62,6 +64,47 @@ public class ScaleUser { return userAge; } + public void setInitialWeight(float weight) { + this.initial_weight = weight; + + } + + public void setConvertedInitialWeight(float weight) { + switch (ScaleUser.UNIT_STRING[scale_unit]) { + case "kg": + this.initial_weight = weight; + break; + case "lb": + this.initial_weight = weight / KG_LB; + break; + case "st": + this.initial_weight = weight / KG_ST; + break; + } + } + + public float getInitialWeight() { + return initial_weight; + } + + public float getConvertedInitialWeight() { + float converted_weight = 0.0f; + + switch (ScaleUser.UNIT_STRING[scale_unit]) { + case "kg": + converted_weight = initial_weight; + break; + case "lb": + converted_weight = initial_weight * KG_LB; + break; + case "st": + converted_weight = initial_weight * KG_ST; + break; + } + + return converted_weight; + } + @Override public String toString() { diff --git a/android_app/app/src/main/java/com/health/openscale/gui/activities/UserSettingsActivity.java b/android_app/app/src/main/java/com/health/openscale/gui/activities/UserSettingsActivity.java index b208383b..ac99cc9a 100644 --- a/android_app/app/src/main/java/com/health/openscale/gui/activities/UserSettingsActivity.java +++ b/android_app/app/src/main/java/com/health/openscale/gui/activities/UserSettingsActivity.java @@ -133,7 +133,7 @@ public class UserSettingsActivity extends Activity { txtBodyHeight.setText(Integer.toString(scaleUser.body_height)); txtBirthday.setText(dateFormat.format(scaleUser.birthday)); txtGoalDate.setText(dateFormat.format(scaleUser.goal_date)); - txtInitialWeight.setText(scaleUser.initial_weight+""); + txtInitialWeight.setText(Math.round(scaleUser.getConvertedInitialWeight()*100.0f)/100.0f + ""); txtGoalWeight.setText(scaleUser.goal_weight+""); switch (scaleUser.scale_unit)