diff --git a/GBDaoGenerator/src/nodomain/freeyourgadget/gadgetbridge/daogen/GBDaoGenerator.java b/GBDaoGenerator/src/nodomain/freeyourgadget/gadgetbridge/daogen/GBDaoGenerator.java index fb3508b7..884aa3d3 100644 --- a/GBDaoGenerator/src/nodomain/freeyourgadget/gadgetbridge/daogen/GBDaoGenerator.java +++ b/GBDaoGenerator/src/nodomain/freeyourgadget/gadgetbridge/daogen/GBDaoGenerator.java @@ -112,6 +112,7 @@ public class GBDaoGenerator { device.addStringProperty("name").notNull(); device.addStringProperty("manufacturer").notNull(); device.addStringProperty("identifier").notNull().unique().javaDocGetterAndSetter("The fixed identifier, i.e. MAC address of the device."); + device.addIntProperty("type").notNull().javaDocGetterAndSetter("The DeviceType key, i.e. the GBDevice's type."); Property deviceId = deviceAttributes.addLongProperty("deviceId").notNull().getProperty(); // sorted by the from-date, newest first Property deviceAttributesSortProperty = getPropertyByName(deviceAttributes, VALID_FROM_UTC); diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/database/DBHelper.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/database/DBHelper.java index 4f3ddec3..23014966 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/database/DBHelper.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/database/DBHelper.java @@ -302,6 +302,7 @@ public class DBHelper { device.setName(gbDevice.getName()); DeviceCoordinator coordinator = DeviceHelper.getInstance().getCoordinator(gbDevice); device.setManufacturer(coordinator.getManufacturer()); + device.setType(gbDevice.getType().getKey()); session.getDeviceDao().insert(device); return device; diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/model/DeviceType.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/model/DeviceType.java index f76a4766..caf561ee 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/model/DeviceType.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/model/DeviceType.java @@ -2,11 +2,33 @@ package nodomain.freeyourgadget.gadgetbridge.model; /** * For every supported device, a device type constant must exist. + * + * Note: they key of every constant is stored in the DB, so it is fixed forever, + * and may not be changed. */ public enum DeviceType { - UNKNOWN, - PEBBLE, - TEST, - MIBAND, - MIBAND2 + UNKNOWN(-1), + PEBBLE(1), + MIBAND(10), + MIBAND2(11), + TEST(1000); + + private final int key; + + DeviceType(int key) { + this.key = key; + } + + public int getKey() { + return key; + } + + public static DeviceType fromKey(int key) { + for (DeviceType type : values()) { + if (type.key == key) { + return type; + } + } + return DeviceType.UNKNOWN; + } }