mirror of
https://codeberg.org/Freeyourgadget/Gadgetbridge
synced 2024-11-12 21:19:25 +01:00
Send the wear location (left hand / right hand) to the MiBand.
This commit is contained in:
parent
69ddead8fb
commit
46ee5a5499
@ -107,6 +107,15 @@ public class MiBandCoordinator implements DeviceCoordinator {
|
|||||||
return info;
|
return info;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static int getWearLocation(String miBandAddress) throws IllegalArgumentException {
|
||||||
|
int location = 0; //left hand
|
||||||
|
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(GBApplication.getContext());
|
||||||
|
if (prefs.getString(MiBandConst.PREF_MIBAND_WEARSIDE, "left") == "right") {
|
||||||
|
location = 1; // right hand
|
||||||
|
}
|
||||||
|
return location;
|
||||||
|
}
|
||||||
|
|
||||||
public static int getFitnessGoal(String miBandAddress) throws IllegalArgumentException {
|
public static int getFitnessGoal(String miBandAddress) throws IllegalArgumentException {
|
||||||
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(GBApplication.getContext());
|
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(GBApplication.getContext());
|
||||||
return Integer.parseInt(prefs.getString(MiBandConst.PREF_MIBAND_FITNESS_GOAL, "10000"));
|
return Integer.parseInt(prefs.getString(MiBandConst.PREF_MIBAND_FITNESS_GOAL, "10000"));
|
||||||
|
@ -141,6 +141,8 @@ public class MiBandService {
|
|||||||
|
|
||||||
public static final byte COMMAND_REBOOT = 0xc;
|
public static final byte COMMAND_REBOOT = 0xc;
|
||||||
|
|
||||||
|
public static final byte COMMAND_SET_WEAR_LOCATION = 0xf;
|
||||||
|
|
||||||
public static final byte COMMAND_STOP_MOTOR_VIBRATE = 0x13;
|
public static final byte COMMAND_STOP_MOTOR_VIBRATE = 0x13;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -148,10 +150,8 @@ public class MiBandService {
|
|||||||
|
|
||||||
public static final byte COMMAND_FACTORY_RESET = 0x9t;
|
public static final byte COMMAND_FACTORY_RESET = 0x9t;
|
||||||
|
|
||||||
|
|
||||||
public static final byte COMMAND_GET_SENSOR_DATA = 0x12t
|
public static final byte COMMAND_GET_SENSOR_DATA = 0x12t
|
||||||
|
|
||||||
|
|
||||||
public static final int COMMAND_SET_COLOR_THEME = et;
|
public static final int COMMAND_SET_COLOR_THEME = et;
|
||||||
|
|
||||||
public static final COMMAND_SET_REALTIME_STEP = 0x10t
|
public static final COMMAND_SET_REALTIME_STEP = 0x10t
|
||||||
|
@ -97,6 +97,7 @@ public class MiBandSupport extends AbstractBTLEDeviceSupport {
|
|||||||
builder.add(new SetDeviceStateAction(getDevice(), State.INITIALIZING, getContext()));
|
builder.add(new SetDeviceStateAction(getDevice(), State.INITIALIZING, getContext()));
|
||||||
pair(builder)
|
pair(builder)
|
||||||
.sendUserInfo(builder)
|
.sendUserInfo(builder)
|
||||||
|
.setWearLocation(builder)
|
||||||
.setFitnessGoal(builder)
|
.setFitnessGoal(builder)
|
||||||
.enableNotifications(builder, true)
|
.enableNotifications(builder, true)
|
||||||
.setCurrentTime(builder)
|
.setCurrentTime(builder)
|
||||||
@ -291,6 +292,28 @@ public class MiBandSupport extends AbstractBTLEDeviceSupport {
|
|||||||
}
|
}
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Part of device initialization process. Do not call manually.
|
||||||
|
*
|
||||||
|
* @param transaction
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
private MiBandSupport setWearLocation(TransactionBuilder transaction) {
|
||||||
|
LOG.info("Attempting to set wear location...");
|
||||||
|
BluetoothGattCharacteristic characteristic = getCharacteristic(MiBandService.UUID_CHARACTERISTIC_CONTROL_POINT);
|
||||||
|
if (characteristic != null) {
|
||||||
|
int location = MiBandCoordinator.getWearLocation(getDevice().getAddress());
|
||||||
|
transaction.write(characteristic, new byte[]{
|
||||||
|
MiBandService.COMMAND_SET_WEAR_LOCATION,
|
||||||
|
(byte) location
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
LOG.info("Unable to set Wear Location");
|
||||||
|
}
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
private void performDefaultNotification(String task, short repeat, BtLEAction extraAction) {
|
private void performDefaultNotification(String task, short repeat, BtLEAction extraAction) {
|
||||||
try {
|
try {
|
||||||
TransactionBuilder builder = performInitialized(task);
|
TransactionBuilder builder = performInitialized(task);
|
||||||
|
Loading…
Reference in New Issue
Block a user