diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/EventHandler.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/EventHandler.java
index a3af9b205..7c7002ee3 100644
--- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/EventHandler.java
+++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/EventHandler.java
@@ -67,5 +67,12 @@ public interface EventHandler {
void onDeleteCalendarEvent(byte type, long id);
+ /**
+ * Sets the given option in the device, typically with values from the preferences.
+ * The config name is device specific.
+ * @param config the device specific option to set on the device
+ */
+ void onSendConfiguration(String config);
+
void onTestNewFunction();
}
diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/miband/DateTimeDisplay.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/miband/DateTimeDisplay.java
new file mode 100644
index 000000000..40857aa45
--- /dev/null
+++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/miband/DateTimeDisplay.java
@@ -0,0 +1,6 @@
+package nodomain.freeyourgadget.gadgetbridge.devices.miband;
+
+public enum DateTimeDisplay {
+ TIME,
+ DATE_TIME
+}
diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/miband/MiBand2Coordinator.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/miband/MiBand2Coordinator.java
index 329575371..94070a194 100644
--- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/miband/MiBand2Coordinator.java
+++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/miband/MiBand2Coordinator.java
@@ -7,10 +7,13 @@ import android.net.Uri;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+import nodomain.freeyourgadget.gadgetbridge.GBApplication;
+import nodomain.freeyourgadget.gadgetbridge.R;
import nodomain.freeyourgadget.gadgetbridge.devices.InstallHandler;
import nodomain.freeyourgadget.gadgetbridge.impl.GBDevice;
import nodomain.freeyourgadget.gadgetbridge.impl.GBDeviceCandidate;
import nodomain.freeyourgadget.gadgetbridge.model.DeviceType;
+import nodomain.freeyourgadget.gadgetbridge.util.Prefs;
public class MiBand2Coordinator extends MiBandCoordinator {
private static final Logger LOG = LoggerFactory.getLogger(MiBand2Coordinator.class);
@@ -55,4 +58,13 @@ public class MiBand2Coordinator extends MiBandCoordinator {
public InstallHandler findInstallHandler(Uri uri, Context context) {
return null; // not supported at the moment
}
+
+ public static DateTimeDisplay getDateDisplay(Context context) throws IllegalArgumentException {
+ Prefs prefs = GBApplication.getPrefs();
+ String dateFormatTime = context.getString(R.string.p_dateformat_time);
+ if (dateFormatTime.equals(prefs.getString(MiBandConst.PREF_MI2_DATEFORMAT, dateFormatTime))) {
+ return DateTimeDisplay.TIME;
+ }
+ return DateTimeDisplay.DATE_TIME;
+ }
}
diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/miband/MiBandConst.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/miband/MiBandConst.java
index fce2f84d4..145f8179e 100644
--- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/miband/MiBandConst.java
+++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/miband/MiBandConst.java
@@ -17,6 +17,7 @@ public final class MiBandConst {
public static final String PREF_MIBAND_RESERVE_ALARM_FOR_CALENDAR = "mi_reserve_alarm_calendar";
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_MI2_DATEFORMAT = "mi2_dateformat";
public static final String PREF_TRY_SMS = "mi_try_sms";
diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/miband/MiBandPreferencesActivity.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/miband/MiBandPreferencesActivity.java
index 4c8de0aab..cb289b1c8 100644
--- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/miband/MiBandPreferencesActivity.java
+++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/miband/MiBandPreferencesActivity.java
@@ -18,6 +18,7 @@ import nodomain.freeyourgadget.gadgetbridge.model.NotificationType;
import nodomain.freeyourgadget.gadgetbridge.util.GB;
import static nodomain.freeyourgadget.gadgetbridge.devices.miband.MiBandConst.ORIGIN_INCOMING_CALL;
+import static nodomain.freeyourgadget.gadgetbridge.devices.miband.MiBandConst.PREF_MI2_DATEFORMAT;
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_FITNESS_GOAL;
@@ -44,8 +45,22 @@ public class MiBandPreferencesActivity extends AbstractSettingsActivity {
return true;
}
});
+ final Preference setDateFormat = findPreference(PREF_MI2_DATEFORMAT);
+ setDateFormat.setOnPreferenceChangeListener(new Preference.OnPreferenceChangeListener() {
+ @Override
+ public boolean onPreferenceChange(Preference preference, Object newVal) {
+ getListView().post(new Runnable() { // delayed execution so that the preferences are applied first
+ @Override
+ public void run() {
+ GBApplication.deviceService().onSendConfiguration(PREF_MI2_DATEFORMAT);
+ }
+ });
+ return true;
+ }
+ });
}
+ @Override
protected void onPostCreate(Bundle savedInstanceState) {
super.onPostCreate(savedInstanceState);
final Preference developmentMiaddr = findPreference(PREF_MIBAND_ADDRESS);
diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/impl/GBDeviceService.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/impl/GBDeviceService.java
index a46736550..8fd47d311 100644
--- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/impl/GBDeviceService.java
+++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/impl/GBDeviceService.java
@@ -281,6 +281,13 @@ public class GBDeviceService implements DeviceService {
invokeService(intent);
}
+ @Override
+ public void onSendConfiguration(String config) {
+ Intent intent = createIntent().setAction(ACTION_SEND_CONFIGURATION)
+ .putExtra(EXTRA_CONFIG, config);
+ invokeService(intent);
+ }
+
@Override
public void onTestNewFunction() {
Intent intent = createIntent().setAction(ACTION_TEST_NEW_FUNCTION);
diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/model/DeviceService.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/model/DeviceService.java
index 6afa7e346..82fd39582 100644
--- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/model/DeviceService.java
+++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/model/DeviceService.java
@@ -48,6 +48,7 @@ public interface DeviceService extends EventHandler {
String ACTION_HEARTRATE_MEASUREMENT = PREFIX + ".action.hr_measurement";
String ACTION_ADD_CALENDAREVENT = PREFIX + ".action.add_calendarevent";
String ACTION_DELETE_CALENDAREVENT = PREFIX + ".action.delete_calendarevent";
+ String ACTION_SEND_CONFIGURATION = PREFIX + ".action.send_configuration";
String ACTION_TEST_NEW_FUNCTION = PREFIX + ".action.test_new_function";
String EXTRA_DEVICE_ADDRESS = "device_address";
String EXTRA_NOTIFICATION_BODY = "notification_body";
@@ -80,6 +81,7 @@ public interface DeviceService extends EventHandler {
String EXTRA_APP_START = "app_start";
String EXTRA_APP_CONFIG = "app_config";
String EXTRA_URI = "uri";
+ String EXTRA_CONFIG = "config";
String EXTRA_ALARMS = "alarms";
String EXTRA_PERFORM_PAIR = "perform_pair";
String EXTRA_BOOLEAN_ENABLE = "enable_realtime_steps";
diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/DeviceCommunicationService.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/DeviceCommunicationService.java
index 82222bcfe..ef36a80bf 100644
--- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/DeviceCommunicationService.java
+++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/DeviceCommunicationService.java
@@ -72,6 +72,7 @@ import static nodomain.freeyourgadget.gadgetbridge.model.DeviceService.ACTION_RE
import static nodomain.freeyourgadget.gadgetbridge.model.DeviceService.ACTION_REQUEST_APPINFO;
import static nodomain.freeyourgadget.gadgetbridge.model.DeviceService.ACTION_REQUEST_DEVICEINFO;
import static nodomain.freeyourgadget.gadgetbridge.model.DeviceService.ACTION_REQUEST_SCREENSHOT;
+import static nodomain.freeyourgadget.gadgetbridge.model.DeviceService.ACTION_SEND_CONFIGURATION;
import static nodomain.freeyourgadget.gadgetbridge.model.DeviceService.ACTION_SETCANNEDMESSAGES;
import static nodomain.freeyourgadget.gadgetbridge.model.DeviceService.ACTION_SETMUSICINFO;
import static nodomain.freeyourgadget.gadgetbridge.model.DeviceService.ACTION_SETMUSICSTATE;
@@ -96,6 +97,7 @@ import static nodomain.freeyourgadget.gadgetbridge.model.DeviceService.EXTRA_CAL
import static nodomain.freeyourgadget.gadgetbridge.model.DeviceService.EXTRA_CALL_PHONENUMBER;
import static nodomain.freeyourgadget.gadgetbridge.model.DeviceService.EXTRA_CANNEDMESSAGES;
import static nodomain.freeyourgadget.gadgetbridge.model.DeviceService.EXTRA_CANNEDMESSAGES_TYPE;
+import static nodomain.freeyourgadget.gadgetbridge.model.DeviceService.EXTRA_CONFIG;
import static nodomain.freeyourgadget.gadgetbridge.model.DeviceService.EXTRA_DEVICE_ADDRESS;
import static nodomain.freeyourgadget.gadgetbridge.model.DeviceService.EXTRA_FIND_START;
import static nodomain.freeyourgadget.gadgetbridge.model.DeviceService.EXTRA_MUSIC_ALBUM;
@@ -485,6 +487,11 @@ public class DeviceCommunicationService extends Service implements SharedPrefere
mDeviceSupport.onEnableRealtimeHeartRateMeasurement(enable);
break;
}
+ case ACTION_SEND_CONFIGURATION: {
+ String config = intent.getStringExtra(EXTRA_CONFIG);
+ mDeviceSupport.onSendConfiguration(config);
+ break;
+ }
case ACTION_TEST_NEW_FUNCTION: {
mDeviceSupport.onTestNewFunction();
break;
diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/ServiceDeviceSupport.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/ServiceDeviceSupport.java
index 0772633d7..a90ee63c5 100644
--- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/ServiceDeviceSupport.java
+++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/ServiceDeviceSupport.java
@@ -320,6 +320,14 @@ public class ServiceDeviceSupport implements DeviceSupport {
delegate.onDeleteCalendarEvent(type, id);
}
+ @Override
+ public void onSendConfiguration(String config) {
+ if (checkBusy("send configuration: " + config)) {
+ return;
+ }
+ delegate.onSendConfiguration(config);
+ }
+
@Override
public void onTestNewFunction() {
if (checkBusy("test new function event")) {
diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/miband/MiBand2Support.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/miband/MiBand2Support.java
index d8754e803..e8602b766 100644
--- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/miband/MiBand2Support.java
+++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/miband/MiBand2Support.java
@@ -26,6 +26,7 @@ import nodomain.freeyourgadget.gadgetbridge.GBApplication;
import nodomain.freeyourgadget.gadgetbridge.R;
import nodomain.freeyourgadget.gadgetbridge.deviceevents.GBDeviceEventBatteryInfo;
import nodomain.freeyourgadget.gadgetbridge.deviceevents.GBDeviceEventVersionInfo;
+import nodomain.freeyourgadget.gadgetbridge.devices.miband.MiBand2Coordinator;
import nodomain.freeyourgadget.gadgetbridge.devices.miband.MiBand2Service;
import nodomain.freeyourgadget.gadgetbridge.devices.miband.MiBandConst;
import nodomain.freeyourgadget.gadgetbridge.devices.miband.MiBandCoordinator;
@@ -56,7 +57,7 @@ import nodomain.freeyourgadget.gadgetbridge.service.btle.actions.SetDeviceStateA
import nodomain.freeyourgadget.gadgetbridge.service.btle.actions.WriteAction;
import nodomain.freeyourgadget.gadgetbridge.service.btle.profiles.deviceinfo.DeviceInfoProfile;
import nodomain.freeyourgadget.gadgetbridge.service.btle.profiles.heartrate.HeartRateProfile;
-import nodomain.freeyourgadget.gadgetbridge.service.devices.miband2.DateDisplay;
+import nodomain.freeyourgadget.gadgetbridge.devices.miband.DateTimeDisplay;
import nodomain.freeyourgadget.gadgetbridge.service.devices.miband2.Mi2NotificationStrategy;
import nodomain.freeyourgadget.gadgetbridge.service.devices.miband2.operations.InitOperation;
import nodomain.freeyourgadget.gadgetbridge.util.DateTimeUtils;
@@ -401,6 +402,7 @@ public class MiBand2Support extends AbstractBTLEDeviceSupport {
LOG.info("Attempting to set wear location...");
BluetoothGattCharacteristic characteristic = getCharacteristic(MiBand2Service.UUID_UNKNOWN_CHARACTERISTIC8);
if (characteristic != null) {
+ builder.notify(characteristic, true);
int location = MiBandCoordinator.getWearLocation(getDevice().getAddress());
switch (location) {
case 0: // left hand
@@ -410,6 +412,7 @@ public class MiBand2Support extends AbstractBTLEDeviceSupport {
builder.write(characteristic, MiBand2Service.WEAR_LOCATION_RIGHT_WRIST);
break;
}
+ builder.notify(characteristic, false); // TODO: this should actually be in some kind of finally-block in the queue
}
return this;
}
@@ -444,6 +447,7 @@ public class MiBand2Support extends AbstractBTLEDeviceSupport {
BluetoothGattCharacteristic characteristicHRControlPoint = getCharacteristic(GattCharacteristic.UUID_CHARACTERISTIC_HEART_RATE_CONTROL_POINT);
final boolean enableHrSleepSupport = MiBandCoordinator.getHeartrateSleepSupport(getDevice().getAddress());
if (characteristicHRControlPoint != null) {
+ builder.notify(characteristicHRControlPoint, true);
if (enableHrSleepSupport) {
LOG.info("Enabling heartrate sleep support...");
builder.write(characteristicHRControlPoint, MiBand2Service.COMMAND_ENABLE_HR_SLEEP_MEASUREMENT);
@@ -451,6 +455,7 @@ public class MiBand2Support extends AbstractBTLEDeviceSupport {
LOG.info("Disabling heartrate sleep support...");
builder.write(characteristicHRControlPoint, MiBand2Service.COMMAND_DISABLE_HR_SLEEP_MEASUREMENT);
}
+ builder.notify(characteristicHRControlPoint, false); // TODO: this should run in some kind of finally-block in the queue
}
return this;
}
@@ -1154,13 +1159,30 @@ public class MiBand2Support extends AbstractBTLEDeviceSupport {
}
}
+ @Override
+ public void onSendConfiguration(String config) {
+ TransactionBuilder builder = null;
+ try {
+ builder = performInitialized("Sending configuration for option: " + config);
+ switch (config) {
+ case MiBandConst.PREF_MI2_DATEFORMAT:
+ setDateDisplay(builder);
+ break;
+ }
+ builder.queue(getQueue());
+ } catch (IOException e) {
+ GB.toast("Error setting configuration", Toast.LENGTH_LONG, GB.ERROR, e);
+ }
+ }
+
@Override
public void onTestNewFunction() {
}
- public MiBand2Support setDateDisplay(DateDisplay displayConfig, TransactionBuilder builder) {
- LOG.info("Setting date display to " + displayConfig);
- switch (displayConfig) {
+ private MiBand2Support setDateDisplay(TransactionBuilder builder) {
+ DateTimeDisplay dateTimeDisplay = MiBand2Coordinator.getDateDisplay(getContext());
+ LOG.info("Setting date display to " + dateTimeDisplay);
+ switch (dateTimeDisplay) {
case TIME:
builder.write(getCharacteristic(MiBand2Service.UUID_UNKNOWN_CHARACTERISTIC3), MiBand2Service.DATEFORMAT_TIME);
break;
@@ -1174,8 +1196,9 @@ public class MiBand2Support extends AbstractBTLEDeviceSupport {
public void phase2Initialize(TransactionBuilder builder) {
LOG.info("phase2Initialize...");
enableFurtherNotifications(builder, true);
- setDateDisplay(DateDisplay.TIME, builder);
+ setDateDisplay(builder);
setWearLocation(builder);
setHeartrateSleepSupport(builder);
+
}
}
diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/miband/MiBandSupport.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/miband/MiBandSupport.java
index 35cf1e0e0..fafab86fe 100644
--- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/miband/MiBandSupport.java
+++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/miband/MiBandSupport.java
@@ -1190,6 +1190,11 @@ public class MiBandSupport extends AbstractBTLEDeviceSupport {
}
}
+ @Override
+ public void onSendConfiguration(String config) {
+ // nothing yet
+ }
+
@Override
public void onTestNewFunction() {
try {
diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/miband2/DateDisplay.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/miband2/DateDisplay.java
deleted file mode 100644
index 0ac7de537..000000000
--- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/miband2/DateDisplay.java
+++ /dev/null
@@ -1,6 +0,0 @@
-package nodomain.freeyourgadget.gadgetbridge.service.devices.miband2;
-
-public enum DateDisplay {
- TIME,
- DATE_TIME
-}
diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/pebble/PebbleSupport.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/pebble/PebbleSupport.java
index dcf14ada3..2b37852a9 100644
--- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/pebble/PebbleSupport.java
+++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/pebble/PebbleSupport.java
@@ -157,6 +157,13 @@ public class PebbleSupport extends AbstractSerialDeviceSupport {
}
}
+ @Override
+ public void onSendConfiguration(String config) {
+ if (reconnect()) {
+ super.onSendConfiguration(config);
+ }
+ }
+
@Override
public void onTestNewFunction() {
if (reconnect()) {
diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/vibratissimo/VibratissimoSupport.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/vibratissimo/VibratissimoSupport.java
index e53d63b8b..a5f3e0d36 100644
--- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/vibratissimo/VibratissimoSupport.java
+++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/vibratissimo/VibratissimoSupport.java
@@ -272,6 +272,11 @@ public class VibratissimoSupport extends AbstractBTLEDeviceSupport {
return false;
}
+ @Override
+ public void onSendConfiguration(String config) {
+
+ }
+
@Override
public void onTestNewFunction() {
diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/serial/AbstractSerialDeviceSupport.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/serial/AbstractSerialDeviceSupport.java
index 71acbb87c..9c8add33c 100644
--- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/serial/AbstractSerialDeviceSupport.java
+++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/serial/AbstractSerialDeviceSupport.java
@@ -215,6 +215,12 @@ public abstract class AbstractSerialDeviceSupport extends AbstractDeviceSupport
sendToDevice(bytes);
}
+ @Override
+ public void onSendConfiguration(String config) {
+ byte[] bytes = gbDeviceProtocol.encodeSendConfiguration(config);
+ sendToDevice(bytes);
+ }
+
@Override
public void onTestNewFunction() {
byte[] bytes = gbDeviceProtocol.encodeTestNewFunction();
diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/serial/GBDeviceProtocol.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/serial/GBDeviceProtocol.java
index 55d4c10c6..c4fe1e737 100644
--- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/serial/GBDeviceProtocol.java
+++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/serial/GBDeviceProtocol.java
@@ -94,6 +94,10 @@ public abstract class GBDeviceProtocol {
return null;
}
+ public byte[] encodeSendConfiguration(String config) {
+ return null;
+ }
+
public byte[] encodeTestNewFunction() { return null; }
public GBDeviceEvent[] decodeResponse(byte[] responseData) {
@@ -103,4 +107,5 @@ public abstract class GBDeviceProtocol {
public GBDevice getDevice() {
return mDevice;
}
+
}
diff --git a/app/src/main/res/values/arrays.xml b/app/src/main/res/values/arrays.xml
index 830f7002d..e2aff8f58 100644
--- a/app/src/main/res/values/arrays.xml
+++ b/app/src/main/res/values/arrays.xml
@@ -113,5 +113,13 @@
- 3
- 1
+
+ - @string/dateformat_time
+ - @string/dateformat_date_time
+
+
+ - @string/p_dateformat_time
+ - @string/p_dateformat_datetime
+
\ No newline at end of file
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 00ece7d21..7e9e7dd2e 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -345,4 +345,7 @@
Vibration
+ Mi2: Date Format
+ Time
+
diff --git a/app/src/main/res/values/values.xml b/app/src/main/res/values/values.xml
index a89f911ca..df90cb5b7 100644
--- a/app/src/main/res/values/values.xml
+++ b/app/src/main/res/values/values.xml
@@ -9,4 +9,7 @@
- ring
- alarm_clock
+ - dateformat_time
+ - dateformat_datetime
+
diff --git a/app/src/main/res/xml/miband_preferences.xml b/app/src/main/res/xml/miband_preferences.xml
index faf1d7323..b2a5c3635 100644
--- a/app/src/main/res/xml/miband_preferences.xml
+++ b/app/src/main/res/xml/miband_preferences.xml
@@ -43,6 +43,15 @@
android:maxLength="2"
android:title="@string/miband_prefs_device_time_offset_hours" />
+
+
+