Mi Band 2: Goal notification
parent
a43a940f0c
commit
ceb82f3474
|
@ -122,7 +122,12 @@ public class MiBand2Coordinator extends MiBandCoordinator {
|
||||||
Prefs prefs = GBApplication.getPrefs();
|
Prefs prefs = GBApplication.getPrefs();
|
||||||
return prefs.getStringSet(MiBandConst.PREF_MI2_DISPLAY_ITEMS, null);
|
return prefs.getStringSet(MiBandConst.PREF_MI2_DISPLAY_ITEMS, null);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static boolean getGoalNotification() {
|
||||||
|
Prefs prefs = GBApplication.getPrefs();
|
||||||
|
return prefs.getBoolean(MiBandConst.PREF_MI2_GOAL_NOTIFICATION, false);
|
||||||
|
}
|
||||||
|
|
||||||
public static boolean getRotateWristToSwitchInfo() {
|
public static boolean getRotateWristToSwitchInfo() {
|
||||||
Prefs prefs = GBApplication.getPrefs();
|
Prefs prefs = GBApplication.getPrefs();
|
||||||
return prefs.getBoolean(MiBandConst.PREF_MI2_ROTATE_WRIST_TO_SWITCH_INFO, false);
|
return prefs.getBoolean(MiBandConst.PREF_MI2_ROTATE_WRIST_TO_SWITCH_INFO, false);
|
||||||
|
|
|
@ -167,6 +167,8 @@ public class MiBand2Service {
|
||||||
public static final byte[] DATEFORMAT_TIME_24_HOURS = new byte[] {ENDPOINT_DISPLAY, 0x02, 0x0, 0x1 };
|
public static final byte[] DATEFORMAT_TIME_24_HOURS = new byte[] {ENDPOINT_DISPLAY, 0x02, 0x0, 0x1 };
|
||||||
public static final byte[] COMMAND_ENABLE_DISPLAY_ON_LIFT_WRIST = new byte[]{ENDPOINT_DISPLAY, 0x05, 0x00, 0x01};
|
public static final byte[] COMMAND_ENABLE_DISPLAY_ON_LIFT_WRIST = new byte[]{ENDPOINT_DISPLAY, 0x05, 0x00, 0x01};
|
||||||
public static final byte[] COMMAND_DISABLE_DISPLAY_ON_LIFT_WRIST = new byte[]{ENDPOINT_DISPLAY, 0x05, 0x00, 0x00};
|
public static final byte[] COMMAND_DISABLE_DISPLAY_ON_LIFT_WRIST = new byte[]{ENDPOINT_DISPLAY, 0x05, 0x00, 0x00};
|
||||||
|
public static final byte[] COMMAND_ENABLE_GOAL_NOTIFICATION = new byte[]{ENDPOINT_DISPLAY, 0x06, 0x00, 0x01};
|
||||||
|
public static final byte[] COMMAND_DISABLE_GOAL_NOTIFICATION = new byte[]{ENDPOINT_DISPLAY, 0x06, 0x00, 0x00};
|
||||||
public static final byte[] COMMAND_ENABLE_ROTATE_WRIST_TO_SWITCH_INFO = new byte[]{ENDPOINT_DISPLAY, 0x0d, 0x00, 0x01};
|
public static final byte[] COMMAND_ENABLE_ROTATE_WRIST_TO_SWITCH_INFO = new byte[]{ENDPOINT_DISPLAY, 0x0d, 0x00, 0x01};
|
||||||
public static final byte[] COMMAND_DISABLE_ROTATE_WRIST_TO_SWITCH_INFO = new byte[]{ENDPOINT_DISPLAY, 0x0d, 0x00, 0x00};
|
public static final byte[] COMMAND_DISABLE_ROTATE_WRIST_TO_SWITCH_INFO = new byte[]{ENDPOINT_DISPLAY, 0x0d, 0x00, 0x00};
|
||||||
public static final byte[] DISPLAY_XXX = new byte[] {ENDPOINT_DISPLAY, 0x03, 0x0, 0x0 };
|
public static final byte[] DISPLAY_XXX = new byte[] {ENDPOINT_DISPLAY, 0x03, 0x0, 0x0 };
|
||||||
|
|
|
@ -35,6 +35,7 @@ public final class MiBandConst {
|
||||||
public static final String PREF_MIBAND_USE_HR_FOR_SLEEP_DETECTION = "mi_hr_sleep_detection";
|
public static final String PREF_MIBAND_USE_HR_FOR_SLEEP_DETECTION = "mi_hr_sleep_detection";
|
||||||
public static final String PREF_MIBAND_DEVICE_TIME_OFFSET_HOURS = "mi_device_time_offset_hours";
|
public static final String PREF_MIBAND_DEVICE_TIME_OFFSET_HOURS = "mi_device_time_offset_hours";
|
||||||
public static final String PREF_MI2_DATEFORMAT = "mi2_dateformat";
|
public static final String PREF_MI2_DATEFORMAT = "mi2_dateformat";
|
||||||
|
public static final String PREF_MI2_GOAL_NOTIFICATION = "mi2_goal_notification";
|
||||||
public static final String PREF_MI2_DISPLAY_ITEMS = "mi2_display_items";
|
public static final String PREF_MI2_DISPLAY_ITEMS = "mi2_display_items";
|
||||||
public static final String PREF_MI2_DISPLAY_ITEM_CLOCK = "clock";
|
public static final String PREF_MI2_DISPLAY_ITEM_CLOCK = "clock";
|
||||||
public static final String PREF_MI2_DISPLAY_ITEM_STEPS = "steps";
|
public static final String PREF_MI2_DISPLAY_ITEM_STEPS = "steps";
|
||||||
|
|
|
@ -41,6 +41,7 @@ import static nodomain.freeyourgadget.gadgetbridge.devices.miband.MiBandConst.PR
|
||||||
import static nodomain.freeyourgadget.gadgetbridge.devices.miband.MiBandConst.PREF_MI2_DATEFORMAT;
|
import static nodomain.freeyourgadget.gadgetbridge.devices.miband.MiBandConst.PREF_MI2_DATEFORMAT;
|
||||||
import static nodomain.freeyourgadget.gadgetbridge.devices.miband.MiBandConst.PREF_MI2_DISPLAY_ITEMS;
|
import static nodomain.freeyourgadget.gadgetbridge.devices.miband.MiBandConst.PREF_MI2_DISPLAY_ITEMS;
|
||||||
import static nodomain.freeyourgadget.gadgetbridge.devices.miband.MiBandConst.PREF_MI2_ENABLE_TEXT_NOTIFICATIONS;
|
import static nodomain.freeyourgadget.gadgetbridge.devices.miband.MiBandConst.PREF_MI2_ENABLE_TEXT_NOTIFICATIONS;
|
||||||
|
import static nodomain.freeyourgadget.gadgetbridge.devices.miband.MiBandConst.PREF_MI2_GOAL_NOTIFICATION;
|
||||||
import static nodomain.freeyourgadget.gadgetbridge.devices.miband.MiBandConst.PREF_MI2_ROTATE_WRIST_TO_SWITCH_INFO;
|
import static nodomain.freeyourgadget.gadgetbridge.devices.miband.MiBandConst.PREF_MI2_ROTATE_WRIST_TO_SWITCH_INFO;
|
||||||
import static nodomain.freeyourgadget.gadgetbridge.devices.miband.MiBandConst.PREF_MIBAND_ADDRESS;
|
import static nodomain.freeyourgadget.gadgetbridge.devices.miband.MiBandConst.PREF_MIBAND_ADDRESS;
|
||||||
import static nodomain.freeyourgadget.gadgetbridge.devices.miband.MiBandConst.PREF_MIBAND_DEVICE_TIME_OFFSET_HOURS;
|
import static nodomain.freeyourgadget.gadgetbridge.devices.miband.MiBandConst.PREF_MIBAND_DEVICE_TIME_OFFSET_HOURS;
|
||||||
|
@ -68,6 +69,20 @@ public class MiBandPreferencesActivity extends AbstractSettingsActivity {
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
final Preference goalNotification = findPreference(PREF_MI2_GOAL_NOTIFICATION);
|
||||||
|
goalNotification.setOnPreferenceChangeListener(new Preference.OnPreferenceChangeListener() {
|
||||||
|
@Override
|
||||||
|
public boolean onPreferenceChange(Preference preference, Object newVal) {
|
||||||
|
invokeLater(new Runnable() {
|
||||||
|
@Override
|
||||||
|
public void run() {
|
||||||
|
GBApplication.deviceService().onSendConfiguration(PREF_MI2_GOAL_NOTIFICATION);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
final Preference setDateFormat = findPreference(PREF_MI2_DATEFORMAT);
|
final Preference setDateFormat = findPreference(PREF_MI2_DATEFORMAT);
|
||||||
setDateFormat.setOnPreferenceChangeListener(new Preference.OnPreferenceChangeListener() {
|
setDateFormat.setOnPreferenceChangeListener(new Preference.OnPreferenceChangeListener() {
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -1076,6 +1076,9 @@ public class MiBand2Support extends AbstractBTLEDeviceSupport {
|
||||||
case MiBandConst.PREF_MI2_DATEFORMAT:
|
case MiBandConst.PREF_MI2_DATEFORMAT:
|
||||||
setDateDisplay(builder);
|
setDateDisplay(builder);
|
||||||
break;
|
break;
|
||||||
|
case MiBandConst.PREF_MI2_GOAL_NOTIFICATION:
|
||||||
|
setGoalNotification(builder);
|
||||||
|
break;
|
||||||
case MiBandConst.PREF_MI2_ACTIVATE_DISPLAY_ON_LIFT:
|
case MiBandConst.PREF_MI2_ACTIVATE_DISPLAY_ON_LIFT:
|
||||||
setActivateDisplayOnLiftWrist(builder);
|
setActivateDisplayOnLiftWrist(builder);
|
||||||
break;
|
break;
|
||||||
|
@ -1135,6 +1138,17 @@ public class MiBand2Support extends AbstractBTLEDeviceSupport {
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private MiBand2Support setGoalNotification(TransactionBuilder builder) {
|
||||||
|
boolean enable = MiBand2Coordinator.getGoalNotification();
|
||||||
|
LOG.info("Setting goal notification to " + enable);
|
||||||
|
if (enable) {
|
||||||
|
builder.write(getCharacteristic(MiBand2Service.UUID_CHARACTERISTIC_3_CONFIGURATION), MiBand2Service.COMMAND_ENABLE_GOAL_NOTIFICATION);
|
||||||
|
} else {
|
||||||
|
builder.write(getCharacteristic(MiBand2Service.UUID_CHARACTERISTIC_3_CONFIGURATION), MiBand2Service.COMMAND_DISABLE_GOAL_NOTIFICATION);
|
||||||
|
}
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
private MiBand2Support setActivateDisplayOnLiftWrist(TransactionBuilder builder) {
|
private MiBand2Support setActivateDisplayOnLiftWrist(TransactionBuilder builder) {
|
||||||
boolean enable = MiBand2Coordinator.getActivateDisplayOnLiftWrist();
|
boolean enable = MiBand2Coordinator.getActivateDisplayOnLiftWrist();
|
||||||
LOG.info("Setting activate display on lift wrist to " + enable);
|
LOG.info("Setting activate display on lift wrist to " + enable);
|
||||||
|
|
|
@ -300,6 +300,8 @@
|
||||||
<string name="miband2_prefs_dateformat">Mi2: Formato da Data</string>
|
<string name="miband2_prefs_dateformat">Mi2: Formato da Data</string>
|
||||||
<string name="dateformat_time">Hora</string>
|
<string name="dateformat_time">Hora</string>
|
||||||
<string name="dateformat_date_time"><![CDATA[Hora & Data]]></string>
|
<string name="dateformat_date_time"><![CDATA[Hora & Data]]></string>
|
||||||
|
<string name="mi2_prefs_goal_notification">Notificação de objectivo</string>
|
||||||
|
<string name="mi2_prefs_goal_notification_summary">A pulseira vai vibrar quando o objectivo diário de passos for atingido.</string>
|
||||||
<string name="mi2_prefs_display_items">Items do ecrã</string>
|
<string name="mi2_prefs_display_items">Items do ecrã</string>
|
||||||
<string name="mi2_prefs_display_items_summary">Escolher os items a mostrar no ecrã</string>
|
<string name="mi2_prefs_display_items_summary">Escolher os items a mostrar no ecrã</string>
|
||||||
<string name="mi2_prefs_activate_display_on_lift">Ativar ecrã do dispositivo quando o levantar</string>
|
<string name="mi2_prefs_activate_display_on_lift">Ativar ecrã do dispositivo quando o levantar</string>
|
||||||
|
|
|
@ -346,6 +346,8 @@
|
||||||
<string name="miband2_prefs_dateformat">Mi2: Date Format</string>
|
<string name="miband2_prefs_dateformat">Mi2: Date Format</string>
|
||||||
<string name="dateformat_time">Time</string>
|
<string name="dateformat_time">Time</string>
|
||||||
<string name="dateformat_date_time"><![CDATA[Time & Date]]></string>
|
<string name="dateformat_date_time"><![CDATA[Time & Date]]></string>
|
||||||
|
<string name="mi2_prefs_goal_notification">Goal notification</string>
|
||||||
|
<string name="mi2_prefs_goal_notification_summary">The band will vibrate when the daily steps goal is reached</string>
|
||||||
<string name="mi2_prefs_display_items">Display items</string>
|
<string name="mi2_prefs_display_items">Display items</string>
|
||||||
<string name="mi2_prefs_display_items_summary">Choose the items displayed on the band screen</string>
|
<string name="mi2_prefs_display_items_summary">Choose the items displayed on the band screen</string>
|
||||||
<string name="mi2_prefs_activate_display_on_lift">Activate display upon lift</string>
|
<string name="mi2_prefs_activate_display_on_lift">Activate display upon lift</string>
|
||||||
|
|
|
@ -24,6 +24,12 @@
|
||||||
android:maxLength="5"
|
android:maxLength="5"
|
||||||
android:title="@string/miband_prefs_fitness_goal" />
|
android:title="@string/miband_prefs_fitness_goal" />
|
||||||
|
|
||||||
|
<CheckBoxPreference
|
||||||
|
android:defaultValue="false"
|
||||||
|
android:key="mi2_goal_notification"
|
||||||
|
android:summary="@string/mi2_prefs_goal_notification_summary"
|
||||||
|
android:title="@string/mi2_prefs_goal_notification" />
|
||||||
|
|
||||||
<EditTextPreference
|
<EditTextPreference
|
||||||
android:defaultValue="0"
|
android:defaultValue="0"
|
||||||
android:inputType="number"
|
android:inputType="number"
|
||||||
|
|
Loading…
Reference in New Issue