Amazfit Bip U: Fix setting the language

This commit is contained in:
Andreas Shimokawa 2021-10-07 12:50:44 +02:00
parent 1a892aa159
commit 2219eb489e
3 changed files with 73 additions and 19 deletions

View File

@ -0,0 +1,44 @@
/* Copyright (C) 2020-2021 Andreas Shimokawa, TinfoilSubmarine
This file is part of Gadgetbridge.
Gadgetbridge is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as published
by the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
Gadgetbridge is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Affero General Public License for more details.
You should have received a copy of the GNU Affero General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>. */
package nodomain.freeyourgadget.gadgetbridge.service.devices.huami;
import java.util.HashMap;
import java.util.Map;
public class HuamiLanguageType {
public static final Map<String, Integer> idLookup = new HashMap<String, Integer>() {{
put("zh_CN", 0x00);
put("zh_TW", 0x01);
put("zh_HK", 0x01);
put("en_US", 0x02);
put("en_GB", 0x02);
put("en_AU", 0x02);
put("es_ES", 0x03);
put("ru_RU", 0x04);
put("ko_KO", 0x05);
put("fr_FR", 0x06);
put("de_DE", 0x07);
put("de_AT", 0x07);
put("de_CH", 0x07);
put("pl_PL", 0x09);
put("it_IT", 0x0a);
put("pt_PT", 0x0f);
put("tr_TR", 0x11);
put("pt_BR", 0x14);
put("cs_CZ", 0x16);
}};
}

View File

@ -21,15 +21,42 @@ import android.content.Context;
import android.net.Uri;
import java.io.IOException;
import java.util.Locale;
import nodomain.freeyourgadget.gadgetbridge.GBApplication;
import nodomain.freeyourgadget.gadgetbridge.devices.huami.HuamiFWHelper;
import nodomain.freeyourgadget.gadgetbridge.devices.huami.amazfitbipu.AmazfitBipUFWHelper;
import nodomain.freeyourgadget.gadgetbridge.service.btle.TransactionBuilder;
import nodomain.freeyourgadget.gadgetbridge.service.devices.huami.HuamiLanguageType;
import nodomain.freeyourgadget.gadgetbridge.service.devices.huami.HuamiSupport;
import nodomain.freeyourgadget.gadgetbridge.service.devices.huami.amazfitbips.AmazfitBipSSupport;
import nodomain.freeyourgadget.gadgetbridge.service.devices.huami.operations.UpdateFirmwareOperation;
import nodomain.freeyourgadget.gadgetbridge.service.devices.huami.operations.UpdateFirmwareOperation2020;
public class AmazfitBipUSupport extends AmazfitBipSSupport {
@Override
protected HuamiSupport setLanguage(TransactionBuilder builder) {
byte language_code = 0x02; // english default
String localeString = GBApplication.getDeviceSpecificSharedPrefs(gbDevice.getAddress()).getString("language", "auto");
if (localeString == null || localeString.equals("auto")) {
String language = Locale.getDefault().getLanguage();
String country = Locale.getDefault().getCountry();
localeString = language + "_" + country.toUpperCase();
}
Integer id = HuamiLanguageType.idLookup.get(localeString);
if (id != null) {
language_code = id.byteValue();
}
final byte[] command = new byte[]{0x06, 0x3b, 0x00, language_code, 0x03};
writeToConfiguration(builder, command);
return this;
}
@Override
public boolean supportsSunriseSunsetWindHumidity() {
return true;

View File

@ -24,29 +24,12 @@ import java.io.IOException;
import nodomain.freeyourgadget.gadgetbridge.devices.huami.HuamiFWHelper;
import nodomain.freeyourgadget.gadgetbridge.devices.huami.amazfitbipupro.AmazfitBipUProFWHelper;
import nodomain.freeyourgadget.gadgetbridge.service.devices.huami.amazfitbips.AmazfitBipSSupport;
import nodomain.freeyourgadget.gadgetbridge.service.devices.huami.operations.UpdateFirmwareOperation;
import nodomain.freeyourgadget.gadgetbridge.service.devices.huami.operations.UpdateFirmwareOperation2020;
import nodomain.freeyourgadget.gadgetbridge.service.devices.huami.amazfitbipu.AmazfitBipUSupport;
public class AmazfitBipUProSupport extends AmazfitBipSSupport {
@Override
public boolean supportsSunriseSunsetWindHumidity() {
return true;
}
public class AmazfitBipUProSupport extends AmazfitBipUSupport {
@Override
public HuamiFWHelper createFWHelper(Uri uri, Context context) throws IOException {
return new AmazfitBipUProFWHelper(uri, context);
}
@Override
public UpdateFirmwareOperation createUpdateFirmwareOperation(Uri uri) {
return new UpdateFirmwareOperation2020(uri, this);
}
@Override
public int getActivitySampleSize() {
return 8;
}
}