1
0
mirror of https://github.com/oliexdev/openScale.git synced 2025-08-26 01:43:59 +02:00

Move to/from int converters to enum

This commit is contained in:
Erik Johansson
2018-01-17 20:24:43 +01:00
parent b45f01d3eb
commit 613d24db65
4 changed files with 56 additions and 22 deletions

View File

@@ -96,7 +96,7 @@ public class BluetoothMiScale2 extends BluetoothCommunication {
case 0:
// set scale units
final ScaleUser selectedUser = OpenScale.getInstance(context).getSelectedScaleUser();
byte[] setUnitCmd = new byte[]{(byte)0x06, (byte)0x04, (byte)0x00, (byte) Converters.toWeightUnitInt(selectedUser.getScaleUnit())};
byte[] setUnitCmd = new byte[]{(byte)0x06, (byte)0x04, (byte)0x00, (byte) selectedUser.getScaleUnit().toInt()};
writeBytes(WEIGHT_CUSTOM_SERVICE, WEIGHT_CUSTOM_CONFIG, setUnitCmd);
break;
case 1:

View File

@@ -112,8 +112,8 @@ public class ScaleUserDatabase extends SQLiteOpenHelper {
values.put(COLUMN_NAME_USER_NAME, scaleUser.getUserName());
values.put(COLUMN_NAME_BIRTHDAY, formatDateTime.format(scaleUser.getBirthday()));
values.put(COLUMN_NAME_BODY_HEIGHT, scaleUser.getBodyHeight());
values.put(COLUMN_NAME_SCALE_UNIT, Converters.toWeightUnitInt(scaleUser.getScaleUnit()));
values.put(COLUMN_NAME_GENDER, Converters.toGenderInt(scaleUser.getGender()));
values.put(COLUMN_NAME_SCALE_UNIT, scaleUser.getScaleUnit().toInt());
values.put(COLUMN_NAME_GENDER, scaleUser.getGender().toInt());
values.put(COLUMN_NAME_INITIAL_WEIGHT, scaleUser.getInitialWeight());
values.put(COLUMN_NAME_GOAL_WEIGHT, scaleUser.getGoalWeight());
values.put(COLUMN_NAME_GOAL_DATE, formatDateTime.format(scaleUser.getGoalDate()));
@@ -145,8 +145,8 @@ public class ScaleUserDatabase extends SQLiteOpenHelper {
values.put(COLUMN_NAME_USER_NAME, scaleUser.getUserName());
values.put(COLUMN_NAME_BIRTHDAY, formatDateTime.format(scaleUser.getBirthday()));
values.put(COLUMN_NAME_BODY_HEIGHT, scaleUser.getBodyHeight());
values.put(COLUMN_NAME_SCALE_UNIT, Converters.toWeightUnitInt(scaleUser.getScaleUnit()));
values.put(COLUMN_NAME_GENDER, Converters.toGenderInt(scaleUser.getGender()));
values.put(COLUMN_NAME_SCALE_UNIT, scaleUser.getScaleUnit().toInt());
values.put(COLUMN_NAME_GENDER, scaleUser.getGender().toInt());
values.put(COLUMN_NAME_INITIAL_WEIGHT, scaleUser.getInitialWeight());
values.put(COLUMN_NAME_GOAL_WEIGHT, scaleUser.getGoalWeight());
values.put(COLUMN_NAME_GOAL_DATE, formatDateTime.format(scaleUser.getGoalDate()));

View File

@@ -33,9 +33,39 @@ public class Converters {
}
return "kg";
}
public static WeightUnit fromInt(int unit) {
switch (unit) {
case 1:
return LB;
case 2:
return ST;
}
return KG;
}
public enum Gender { MALE, FEMALE }
public int toInt() {
switch (this) {
case LB:
return 1;
case ST:
return 2;
}
return 0;
}
}
public enum Gender {
MALE, FEMALE;
public static Gender fromInt(int gender) {
return gender == 0 ? MALE : FEMALE;
}
public int toInt() {
return this == MALE ? 0 : 1;
}
}
private static float KG_LB = 2.20462f;
private static float KG_ST = 0.157473f;
@@ -52,34 +82,22 @@ public class Converters {
@TypeConverter
public static WeightUnit fromWeightUnitInt(int unit) {
switch (unit) {
case 1:
return WeightUnit.LB;
case 2:
return WeightUnit.ST;
}
return WeightUnit.KG;
return WeightUnit.fromInt(unit);
}
@TypeConverter
public static int toWeightUnitInt(WeightUnit unit) {
switch (unit) {
case LB:
return 1;
case ST:
return 2;
}
return 0;
return unit.toInt();
}
@TypeConverter
public static Gender fromGenderInt(int gender) {
return gender == 0 ? Gender.MALE : Gender.FEMALE;
return Gender.fromInt(gender);
}
@TypeConverter
public static int toGenderInt(Gender gender) {
return gender == Gender.MALE ? 0 : 1;
return gender.toInt();
}
public static float toKilogram(float value, WeightUnit unit) {

View File

@@ -30,10 +30,18 @@ public class ConvertersTest {
assertEquals(1, Converters.toWeightUnitInt(Converters.WeightUnit.LB));
assertEquals(2, Converters.toWeightUnitInt(Converters.WeightUnit.ST));
for (Converters.WeightUnit unit : Converters.WeightUnit.values()) {
assertEquals(Converters.toWeightUnitInt(unit), unit.toInt());
}
assertEquals(Converters.WeightUnit.KG, Converters.fromWeightUnitInt(0));
assertEquals(Converters.WeightUnit.LB, Converters.fromWeightUnitInt(1));
assertEquals(Converters.WeightUnit.ST, Converters.fromWeightUnitInt(2));
for (int i = 0; i < Converters.WeightUnit.values().length; ++i) {
assertEquals(Converters.fromWeightUnitInt(i), Converters.WeightUnit.fromInt(i));
}
assertEquals("kg", Converters.WeightUnit.KG.toString());
assertEquals("lb", Converters.WeightUnit.LB.toString());
assertEquals("st", Converters.WeightUnit.ST.toString());
@@ -44,9 +52,17 @@ public class ConvertersTest {
assertEquals(0, Converters.toGenderInt(Converters.Gender.MALE));
assertEquals(1, Converters.toGenderInt(Converters.Gender.FEMALE));
for (Converters.Gender gender : Converters.Gender.values()) {
assertEquals(Converters.toGenderInt(gender), gender.toInt());
}
assertEquals(Converters.Gender.MALE, Converters.fromGenderInt(0));
assertEquals(Converters.Gender.FEMALE, Converters.fromGenderInt(1));
for (int i = 0; i < Converters.Gender.values().length; ++i) {
assertEquals(Converters.fromGenderInt(i), Converters.Gender.fromInt(i));
}
assertEquals("MALE", Converters.Gender.MALE.toString());
assertEquals("FEMALE", Converters.Gender.FEMALE.toString());
}