Moyoung: Implement language setting

This commit is contained in:
Arjan Schrijver 2024-09-03 10:04:10 +02:00
parent fa070579be
commit 0bb1db06df
2 changed files with 74 additions and 7 deletions

View File

@ -212,12 +212,28 @@ public abstract class AbstractMoyoungDeviceCoordinator extends AbstractBLEDevice
}
@Override
public String[] getSupportedLanguageSettings(GBDevice device) {
public String[] getSupportedLanguageSettings(final GBDevice device) {
// TODO: use settings customizer to display the languages
// retrieved from the watch instead of this fixed list
return new String[]{
"ar_SA",
"cs_CZ",
"de_DE",
"en_US",
"es_ES",
"fr_FR",
"it_IT",
"ja_JP",
"ko_KO",
"nl_NL",
"pl_PL",
"pt_PT",
"ro_RO",
"ru_RU",
"uk_UA",
"zh_CN",
};
}
};
@Override
public List<HeartRateCapability.MeasurementInterval> getHeartRateMeasurementIntervals() {

View File

@ -1235,12 +1235,63 @@ public class MoyoungDeviceSupport extends AbstractBTLEDeviceSupport {
sendSetting(getSetting("DISPLAY_WATCH_FACE"), watchFace);
break;
case MoyoungConstants.PREF_LANGUAGE:
String languagePref = prefs.getString(MoyoungConstants.PREF_LANGUAGE,
String.valueOf(MoyoungEnumLanguage.LANGUAGE_ENGLISH.value()));
byte languageNum = Byte.valueOf(languagePref);
case DeviceSettingsPreferenceConst.PREF_LANGUAGE:
String languagePref = prefs.getString(DeviceSettingsPreferenceConst.PREF_LANGUAGE, "en_US");
byte languageCode;
switch (languagePref.substring(0, 2)) {
case "zh":
languageCode = MoyoungEnumLanguage.LANGUAGE_CHINESE.value();
break;
case "it":
languageCode = MoyoungEnumLanguage.LANGUAGE_ITALIAN.value();
break;
case "cs":
languageCode = MoyoungEnumLanguage.LANGUAGE_CZECH.value();
break;
case "ru":
languageCode = MoyoungEnumLanguage.LANGUAGE_RUSSIAN.value();
break;
case "pl":
languageCode = MoyoungEnumLanguage.LANGUAGE_POLISH.value();
break;
case "nl":
languageCode = MoyoungEnumLanguage.LANGUAGE_DUTCH.value();
break;
case "fr":
languageCode = MoyoungEnumLanguage.LANGUAGE_FRENCH.value();
break;
case "es":
languageCode = MoyoungEnumLanguage.LANGUAGE_SPANISH.value();
break;
case "de":
languageCode = MoyoungEnumLanguage.LANGUAGE_GERMAN.value();
break;
case "pt":
languageCode = MoyoungEnumLanguage.LANGUAGE_PORTUGUESE.value();
break;
case "jp":
languageCode = MoyoungEnumLanguage.LANGUAGE_JAPANESE.value();
break;
case "ko":
languageCode = MoyoungEnumLanguage.LANGUAGE_KOREAN.value();
break;
case "ar":
languageCode = MoyoungEnumLanguage.LANGUAGE_ARABIC.value();
break;
case "uk":
languageCode = MoyoungEnumLanguage.LANGUAGE_UKRAINIAN.value();
break;
case "hu":
languageCode = MoyoungEnumLanguage.LANGUAGE_HUNGARIAN.value();
break;
case "ro":
languageCode = MoyoungEnumLanguage.LANGUAGE_ROMANIAN.value();
break;
default:
languageCode = MoyoungEnumLanguage.LANGUAGE_ENGLISH.value();
}
MoyoungSettingEnum<MoyoungEnumLanguage> languageSetting = getSetting("DEVICE_LANGUAGE");
sendSetting(languageSetting, languageSetting.findByValue(languageNum));
sendSetting(languageSetting, languageSetting.findByValue(languageCode));
break;
case MoyoungConstants.PREF_DEVICE_VERSION: