1
0
mirror of https://codeberg.org/Freeyourgadget/Gadgetbridge synced 2024-11-27 20:36:51 +01:00

TLW64: Beautify code

This commit is contained in:
115ek 2020-06-30 22:11:30 +02:00
parent 8a3174dabd
commit 4f5e2d0730
2 changed files with 36 additions and 40 deletions

View File

@ -28,25 +28,25 @@ public final class TLW64Constants {
// Command bytes // Command bytes
public static final byte CMD_DISPLAY_SETTINGS = (byte) 0xa0; public static final byte CMD_DISPLAY_SETTINGS = (byte) 0xa0;
public static final byte CMD_FIRMWARE_VERSION = (byte) 0xa1; public static final byte CMD_FIRMWARE_VERSION = (byte) 0xa1;
public static final byte CMD_BATTERY = (byte) 0xa2; public static final byte CMD_BATTERY = (byte) 0xa2;
public static final byte CMD_DATETIME = (byte) 0xa3; public static final byte CMD_DATETIME = (byte) 0xa3;
public static final byte CMD_USER_DATA = (byte) 0xa9; public static final byte CMD_USER_DATA = (byte) 0xa9;
public static final byte CMD_ALARM = (byte) 0xab; public static final byte CMD_ALARM = (byte) 0xab;
public static final byte CMD_FACTORY_RESET = (byte) 0xad; public static final byte CMD_FACTORY_RESET = (byte) 0xad;
public static final byte CMD_NOTIFICATION = (byte) 0xc1; public static final byte CMD_NOTIFICATION = (byte) 0xc1;
public static final byte CMD_ICON = (byte) 0xc3; public static final byte CMD_ICON = (byte) 0xc3;
public static final byte CMD_DEVICE_SETTINGS = (byte) 0xd3; public static final byte CMD_DEVICE_SETTINGS = (byte) 0xd3;
// Notifications // Notifications
public static final byte NOTIFICATION_HEADER = (byte) 0x01; public static final byte NOTIFICATION_HEADER = (byte) 0x01;
public static final byte NOTIFICATION_CALL = (byte) 0x02; // displays "call" on screen public static final byte NOTIFICATION_CALL = (byte) 0x02; // displays "call" on screen
public static final byte NOTIFICATION_SMS = (byte) 0x03; // displays "mms" on screen public static final byte NOTIFICATION_SMS = (byte) 0x03; // displays "mms" on screen
public static final byte NOTIFICATION_STOP = (byte) 0x04; // to stop showing incoming call public static final byte NOTIFICATION_STOP = (byte) 0x04; // to stop showing incoming call
// Icons // Icons
public static final byte ICON_QQ = (byte) 0x01; public static final byte ICON_QQ = (byte) 0x01;
public static final byte ICON_WECHAT = (byte) 0x02; public static final byte ICON_WECHAT = (byte) 0x02;
public static final byte ICON_MAIL = (byte) 0x04; public static final byte ICON_MAIL = (byte) 0x04;
// Alarm arguments // Alarm arguments
public static final byte ARG_SET_ALARM_REMINDER_REPEAT_SUNDAY = (byte) 0x01; public static final byte ARG_SET_ALARM_REMINDER_REPEAT_SUNDAY = (byte) 0x01;

View File

@ -266,7 +266,7 @@ public class TLW64Support extends AbstractBTLEDeviceSupport {
(byte) (alarm.getEnabled() ? 2 : 0), // vibration duration (byte) (alarm.getEnabled() ? 2 : 0), // vibration duration
(byte) (alarm.getEnabled() ? 10 : 0), // vibration count (byte) (alarm.getEnabled() ? 10 : 0), // vibration count
(byte) (alarm.getEnabled() ? 2 : 0), // unknown (byte) (alarm.getEnabled() ? 2 : 0), // unknown
(byte) 0, (byte) 0x00,
(byte) (alarm.getPosition() + 1) (byte) (alarm.getPosition() + 1)
}; };
builder.write(ctrlCharacteristic, alarmMessage); builder.write(ctrlCharacteristic, alarmMessage);
@ -350,7 +350,7 @@ public class TLW64Support extends AbstractBTLEDeviceSupport {
@Override @Override
public void onReset(int flags) { public void onReset(int flags) {
if (flags == GBDeviceProtocol.RESET_FLAGS_FACTORY_RESET){ if (flags == GBDeviceProtocol.RESET_FLAGS_FACTORY_RESET) {
try { try {
TransactionBuilder builder = performInitialized("factoryReset"); TransactionBuilder builder = performInitialized("factoryReset");
byte[] msg = new byte[]{ byte[] msg = new byte[]{
@ -436,13 +436,13 @@ public class TLW64Support extends AbstractBTLEDeviceSupport {
TransactionBuilder builder = performInitialized("vibrate"); TransactionBuilder builder = performInitialized("vibrate");
byte[] msg = new byte[]{ byte[] msg = new byte[]{
TLW64Constants.CMD_ALARM, TLW64Constants.CMD_ALARM,
0, (byte) 0x00,
0, (byte) 0x00,
0, (byte) 0x00,
(byte) duration, (byte) duration,
(byte) count, (byte) count,
7, // unknown, sniffed by original app (byte) 0x07, // unknown, sniffed by original app
1 (byte) 0x01
}; };
builder.write(ctrlCharacteristic, msg); builder.write(ctrlCharacteristic, msg);
builder.queue(getQueue()); builder.queue(getQueue());
@ -469,8 +469,8 @@ public class TLW64Support extends AbstractBTLEDeviceSupport {
private void setDisplaySettings(TransactionBuilder transaction) { private void setDisplaySettings(TransactionBuilder transaction) {
byte[] displayBytes = new byte[]{ byte[] displayBytes = new byte[]{
TLW64Constants.CMD_DISPLAY_SETTINGS, TLW64Constants.CMD_DISPLAY_SETTINGS,
0x00, // 1 - display distance in kilometers, 2 - in miles (byte) 0x00, // 1 - display distance in kilometers, 2 - in miles
0x00 // 1 - display 24-hour clock, 2 - for 12-hour with AM/PM (byte) 0x00 // 1 - display 24-hour clock, 2 - for 12-hour with AM/PM
}; };
String units = GBApplication.getPrefs().getString(SettingsActivity.PREF_MEASUREMENT_SYSTEM, getContext().getString(R.string.p_unit_metric)); String units = GBApplication.getPrefs().getString(SettingsActivity.PREF_MEASUREMENT_SYSTEM, getContext().getString(R.string.p_unit_metric));
if (units.equals(getContext().getString(R.string.p_unit_metric))) { if (units.equals(getContext().getString(R.string.p_unit_metric))) {
@ -494,36 +494,32 @@ public class TLW64Support extends AbstractBTLEDeviceSupport {
ActivityUser activityUser = new ActivityUser(); ActivityUser activityUser = new ActivityUser();
byte[] userBytes = new byte[]{ byte[] userBytes = new byte[]{
TLW64Constants.CMD_USER_DATA, TLW64Constants.CMD_USER_DATA,
0, // unknown (byte) 0x00, // unknown
0, // step length [cm] (byte) 0x00, // step length [cm]
0, // unknown (byte) 0x00, // unknown
(byte) activityUser.getWeightKg(), (byte) activityUser.getWeightKg(),
5, // screen on time / display timeout (byte) 0x05, // screen on time / display timeout
0, // unknown (byte) 0x00, // unknown
0, // unknown (byte) 0x00, // unknown
(byte) (activityUser.getStepsGoal() / 256), (byte) (activityUser.getStepsGoal() / 256),
(byte) (activityUser.getStepsGoal() % 256), (byte) (activityUser.getStepsGoal() % 256),
1, // raise hand to turn on screen, ON = 1, OFF = 0 (byte) 0x01, // raise hand to turn on screen, ON = 1, OFF = 0
(byte) 0xff, // unknown (byte) 0xff, // unknown
0, // unknown (byte) 0x00, // unknown
(byte) activityUser.getAge(), (byte) activityUser.getAge(),
0, // gender (byte) 0x00, // gender
0, // lost function, ON = 1, OFF = 0 TODO: find out what this does (byte) 0x00, // lost function, ON = 1, OFF = 0 TODO: find out what this does
2 // unknown (byte) 0x02 // unknown
}; };
if (activityUser.getGender() == ActivityUser.GENDER_FEMALE) if (activityUser.getGender() == ActivityUser.GENDER_FEMALE) {
{
userBytes[14] = 2; // female userBytes[14] = 2; // female
// default and factor from https://livehealthy.chron.com/determine-stride-pedometer-height-weight-4518.html // default and factor from https://livehealthy.chron.com/determine-stride-pedometer-height-weight-4518.html
if (activityUser.getHeightCm() != 0) if (activityUser.getHeightCm() != 0)
userBytes[2] = (byte) Math.ceil(activityUser.getHeightCm() * 0.413); userBytes[2] = (byte) Math.ceil(activityUser.getHeightCm() * 0.413);
else else
userBytes[2] = 70; // default userBytes[2] = 70; // default
} } else {
else
{
userBytes[14] = 1; // male userBytes[14] = 1; // male
if (activityUser.getHeightCm() != 0) if (activityUser.getHeightCm() != 0)
userBytes[2] = (byte) Math.ceil(activityUser.getHeightCm() * 0.415); userBytes[2] = (byte) Math.ceil(activityUser.getHeightCm() * 0.415);