mirror of
https://codeberg.org/Freeyourgadget/Gadgetbridge
synced 2024-11-25 19:36:50 +01:00
Withings Steel HR: Support setting device language
This commit is contained in:
parent
b1bedfaa56
commit
14df63854f
@ -172,4 +172,16 @@ public class WithingsSteelHRDeviceCoordinator extends AbstractDeviceCoordinator
|
|||||||
public boolean supportsFindDevice() {
|
public boolean supportsFindDevice() {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String[] getSupportedLanguageSettings(GBDevice device) {
|
||||||
|
return new String[]{
|
||||||
|
"auto",
|
||||||
|
"de_DE",
|
||||||
|
"en_US",
|
||||||
|
"es_ES",
|
||||||
|
"fr_FR",
|
||||||
|
"it_IT",
|
||||||
|
};
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -117,6 +117,9 @@ import nodomain.freeyourgadget.gadgetbridge.util.GBPrefs;
|
|||||||
import nodomain.freeyourgadget.gadgetbridge.util.Prefs;
|
import nodomain.freeyourgadget.gadgetbridge.util.Prefs;
|
||||||
import nodomain.freeyourgadget.gadgetbridge.util.StringUtils;
|
import nodomain.freeyourgadget.gadgetbridge.util.StringUtils;
|
||||||
|
|
||||||
|
import static nodomain.freeyourgadget.gadgetbridge.activities.devicesettings.DeviceSettingsPreferenceConst.PREF_LANGUAGE;
|
||||||
|
import static nodomain.freeyourgadget.gadgetbridge.activities.devicesettings.DeviceSettingsPreferenceConst.PREF_LANGUAGE_AUTO;
|
||||||
|
|
||||||
public class WithingsSteelHRDeviceSupport extends AbstractBTLEDeviceSupport {
|
public class WithingsSteelHRDeviceSupport extends AbstractBTLEDeviceSupport {
|
||||||
|
|
||||||
private static final Logger logger = LoggerFactory.getLogger(WithingsSteelHRDeviceSupport.class);
|
private static final Logger logger = LoggerFactory.getLogger(WithingsSteelHRDeviceSupport.class);
|
||||||
@ -215,7 +218,7 @@ public class WithingsSteelHRDeviceSupport extends AbstractBTLEDeviceSupport {
|
|||||||
mtuSize = mtu;
|
mtuSize = mtu;
|
||||||
if (firstTimeConnect) {
|
if (firstTimeConnect) {
|
||||||
addSimpleConversationToQueue(new WithingsMessage(WithingsMessageType.INITIAL_CONNECT));
|
addSimpleConversationToQueue(new WithingsMessage(WithingsMessageType.INITIAL_CONNECT));
|
||||||
addSimpleConversationToQueue(new WithingsMessage(WithingsMessageType.SET_LOCALE, new Locale("de")));
|
addSimpleConversationToQueue(new WithingsMessage(WithingsMessageType.SET_LOCALE, getLocale()));
|
||||||
addSimpleConversationToQueue(new WithingsMessage(WithingsMessageType.START_HANDS_CALIBRATION));
|
addSimpleConversationToQueue(new WithingsMessage(WithingsMessageType.START_HANDS_CALIBRATION));
|
||||||
addSimpleConversationToQueue(new WithingsMessage(WithingsMessageType.STOP_HANDS_CALIBRATION));
|
addSimpleConversationToQueue(new WithingsMessage(WithingsMessageType.STOP_HANDS_CALIBRATION));
|
||||||
addSimpleConversationToQueue(new WithingsMessage(WithingsMessageType.SET_TIME, new Time()));
|
addSimpleConversationToQueue(new WithingsMessage(WithingsMessageType.SET_TIME, new Time()));
|
||||||
@ -400,6 +403,9 @@ public class WithingsSteelHRDeviceSupport extends AbstractBTLEDeviceSupport {
|
|||||||
case HuamiConst.PREF_WORKOUT_ACTIVITY_TYPES_SORTABLE:
|
case HuamiConst.PREF_WORKOUT_ACTIVITY_TYPES_SORTABLE:
|
||||||
setWorkoutActivityTypes();
|
setWorkoutActivityTypes();
|
||||||
break;
|
break;
|
||||||
|
case PREF_LANGUAGE:
|
||||||
|
setLanguage();
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
logger.debug("unknown configuration setting received: " + config);
|
logger.debug("unknown configuration setting received: " + config);
|
||||||
}
|
}
|
||||||
@ -701,6 +707,35 @@ public class WithingsSteelHRDeviceSupport extends AbstractBTLEDeviceSupport {
|
|||||||
return message;
|
return message;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
protected void setLanguage() {
|
||||||
|
Locale locale = getLocale();
|
||||||
|
|
||||||
|
conversationQueue.clear();
|
||||||
|
addSimpleConversationToQueue(new WithingsMessage(WithingsMessageType.SET_LOCALE, locale));
|
||||||
|
conversationQueue.send();
|
||||||
|
}
|
||||||
|
|
||||||
|
private Locale getLocale() {
|
||||||
|
String localeString = GBApplication.getDeviceSpecificSharedPrefs(gbDevice.getAddress())
|
||||||
|
.getString(PREF_LANGUAGE, PREF_LANGUAGE_AUTO);
|
||||||
|
|
||||||
|
if (localeString == null || localeString.equals(PREF_LANGUAGE_AUTO)) {
|
||||||
|
localeString = java.util.Locale.getDefault().getLanguage();
|
||||||
|
}
|
||||||
|
|
||||||
|
String language = localeString.substring(0, 2);
|
||||||
|
switch (language) {
|
||||||
|
case "de":
|
||||||
|
case "en":
|
||||||
|
case "es":
|
||||||
|
case "fr":
|
||||||
|
case "it":
|
||||||
|
return new Locale(language);
|
||||||
|
default:
|
||||||
|
return new Locale("en");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private short getTimeMode() {
|
private short getTimeMode() {
|
||||||
GBPrefs gbPrefs = new GBPrefs(new Prefs(GBApplication.getDeviceSpecificSharedPrefs(gbDevice.getAddress())));
|
GBPrefs gbPrefs = new GBPrefs(new Prefs(GBApplication.getDeviceSpecificSharedPrefs(gbDevice.getAddress())));
|
||||||
String tmode = gbPrefs.getTimeFormat();
|
String tmode = gbPrefs.getTimeFormat();
|
||||||
|
Loading…
Reference in New Issue
Block a user