1
0
mirror of https://codeberg.org/Freeyourgadget/Gadgetbridge synced 2024-10-02 03:07:09 +02:00

Merge branch 'master' into bip-wip

This commit is contained in:
Andreas Shimokawa 2018-01-04 12:09:57 +01:00
commit 6f68c8adde
33 changed files with 892 additions and 110 deletions

View File

@ -1,5 +1,14 @@
### Changelog
#### Version 0.23.2
* Mi Band 1S: Fix sync problem with firmware 4.16.11.15 (probably also Mi Band 1.0.15.0 and Mi Band 1A 5.16.11.15)
* Amazfit Cor: Fix problem with firmware >=1.0.6.27 being detected as Mi Band 2
#### Version 0.23.1
* Initial support for Omnijaws weather service
* Amazfit Bip: Allow installation of latest gps firmware
* Amazfit Cor: Fixes for installing newer firmware versions
#### Version 0.23.0
* Initial support for LineageOS/CyanogenMod weather provider
* Amazfit Bip/Cor: Support for current weather temperature

View File

@ -4,7 +4,7 @@
|-----------------------------------| ----------|---------------|---------|-----------|-------------|
|Calls Notification | YES | YES | YES | YES | YES |
|Reject Calls | YES | YES | NO | NO | YES |
|Accept Calls | NO(2) | NO(2) | NO | NO | NO(3) |
|Accept Calls | NO(2) | NO(2) | NO | NO | NO |
|Generic Notification | YES | YES | YES | YES | YES |
|Dismiss Notifications on Phone | YES | YES | NO | NO | NO |
|Predefined Replies | YES | YES | NO | NO | NO |
@ -18,7 +18,7 @@
|HR Tracking | N/A | YES | YES | YES | YES |
|Realtime Activity Tracking | NO | NO | YES | YES | YES |
|Music Control | YES | YES | NO | NO | NO |
|Watchapp/face Installation | YES | YES | NO | NO | NO |
|Watchapp/face Installation | YES | YES | NO | NO | YES |
|Firmware Installaton | YES | YES | YES | YES | YES |
|Taking Screenshots | YES | YES | NO | NO | NO |
|Support Android Companion Apps | YES | YES | NO | NO | NO |

View File

@ -22,14 +22,14 @@ vendor's servers.
[List of changes](https://github.com/Freeyourgadget/Gadgetbridge/blob/master/CHANGELOG.md)
## Supported Devices
* Pebble, Pebble Steel, Pebble Time, Pebble Time Steel, Pebble Time Round [Wiki section about this device](https://github.com/Freeyourgadget/Gadgetbridge/wiki/Pebble)
* Pebble 2 (add the device from within Gadgetbridge!) [Wiki section about pebble](https://github.com/Freeyourgadget/Gadgetbridge/wiki/Pebble), most parts apply to Pebble 2 as well
* Mi Band, Mi Band 1A, Mi Band 1S [Wiki section about this device](https://github.com/Freeyourgadget/Gadgetbridge/wiki/Mi-Band)
* Mi Band 2 [Wiki section about mi band](https://github.com/Freeyourgadget/Gadgetbridge/wiki/Mi-Band), some parts apply to mi band 2 as well
* Amazfit Bip [Wiki section about the Amazfit Bip](https://github.com/Freeyourgadget/Gadgetbridge/wiki/Amazfit-Bip)
* Amazfit Cor (no maintainer) [Wiki section about the Amazfit Cor](https://github.com/Freeyourgadget/Gadgetbridge/wiki/Amazfit-Cor)
* HPlus Devices (e.g. ZeBand) [Wiki section about this device](https://github.com/Freeyourgadget/Gadgetbridge/wiki/HPlus)
* Teclast H30 (WIP)
* Pebble, Pebble Steel, Pebble Time, Pebble Time Steel, Pebble Time Round [Wiki](https://github.com/Freeyourgadget/Gadgetbridge/wiki/Pebble)
* Pebble 2 [Wiki](https://github.com/Freeyourgadget/Gadgetbridge/wiki/Pebble)
* Mi Band, Mi Band 1A, Mi Band 1S [Wiki](https://github.com/Freeyourgadget/Gadgetbridge/wiki/Mi-Band)
* Mi Band 2 [Wiki](https://github.com/Freeyourgadget/Gadgetbridge/wiki/Mi-Band-2)
* Amazfit Bip [Wiki](https://github.com/Freeyourgadget/Gadgetbridge/wiki/Amazfit-Bip)
* Amazfit Cor (no maintainer) [Wiki](https://github.com/Freeyourgadget/Gadgetbridge/wiki/Amazfit-Cor)
* HPlus Devices (e.g. ZeBand) [Wiki](https://github.com/Freeyourgadget/Gadgetbridge/wiki/HPlus)
* Teclast H10, H30 (WIP)
* NO.1 F1 (WIP)
* Liveview
* Vibratissimo (experimental)

View File

@ -26,8 +26,8 @@ android {
targetSdkVersion 25
// note: always bump BOTH versionCode and versionName!
versionName "0.23.0"
versionCode 114
versionName "0.23.2"
versionCode 116
vectorDrawables.useSupportLibrary = true
}
buildTypes {
@ -75,7 +75,7 @@ dependencies {
exclude group: 'com.google.android', module: 'android'
}
compile 'org.slf4j:slf4j-api:1.7.12'
compile 'com.github.PhilJay:MPAndroidChart:v3.0.2'
compile 'com.github.Freeyourgadget:MPAndroidChart:40c924deab89945a2c7820f51c2fed8b1b803cb4'
compile 'com.github.pfichtner:durationformatter:0.1.1'
compile 'de.cketti.library.changelog:ckchangelog:1.2.2'
compile 'net.e175.klaus:solarpositioning:0.0.9'

View File

@ -21,6 +21,7 @@
<uses-permission android:name="cyanogenmod.permission.ACCESS_WEATHER_MANAGER" />
<uses-permission android:name="cyanogenmod.permission.READ_WEATHER" />
<uses-permission android:name="org.omnirom.omnijaws.READ_WEATHER" />
<uses-feature
android:name="android.hardware.bluetooth"

View File

@ -20,6 +20,8 @@ package nodomain.freeyourgadget.gadgetbridge;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import ch.qos.logback.classic.LoggerContext;
/**
* Catches otherwise uncaught exceptions, logs them and terminates the app.
*/
@ -34,6 +36,10 @@ public class LoggingExceptionHandler implements Thread.UncaughtExceptionHandler
@Override
public void uncaughtException(Thread thread, Throwable ex) {
LOG.error("Uncaught exception: " + ex.getMessage(), ex);
// flush the log buffers and stop logging
LoggerContext loggerContext = (LoggerContext) LoggerFactory.getILoggerFactory();
loggerContext.stop();
if (mDelegate != null) {
mDelegate.uncaughtException(thread, ex);
} else {

View File

@ -69,7 +69,8 @@ public class AppManagerActivity extends AbstractGBFragmentActivity {
Bundle extras = getIntent().getExtras();
if (extras != null) {
mGBDevice = extras.getParcelable(GBDevice.EXTRA_DEVICE);
} else {
}
if (mGBDevice == null) {
throw new IllegalArgumentException("Must provide a device when invoking this activity");
}

View File

@ -44,7 +44,7 @@ public class AmazfitCorCoordinator extends HuamiCoordinator {
try {
BluetoothDevice device = candidate.getDevice();
String name = device.getName();
if (name != null && name.equalsIgnoreCase("Amazfit Band")) {
if (name != null && (name.equalsIgnoreCase("Amazfit Band") || name.equalsIgnoreCase("Amazfit Cor"))) {
return DeviceType.AMAZFITCOR;
}
} catch (Exception ex) {

View File

@ -50,7 +50,7 @@ public abstract class AbstractMiBandFWHelper {
}
try (InputStream in = new BufferedInputStream(uriHelper.openInputStream())) {
this.fw = FileUtils.readAll(in, 1024 * 1024); // 1 MB
this.fw = FileUtils.readAll(in, 1024 * 1536); // 1.5 MB
determineFirmwareInfo(fw);
} catch (IOException ex) {
throw ex; // pass through

View File

@ -62,6 +62,7 @@ public class MiBandFWHelper extends AbstractMiBandFWHelper {
68094986, // 4.15.12.10 tested by developer
68158215, // 4.16.3.7 tested by developer
68158486, // 4.16.4.22 tested by developer and user
68160271, // 4.16.11.15 tested by developer
84870926, // 5.15.7.14 tested by developer
};

View File

@ -0,0 +1,163 @@
package nodomain.freeyourgadget.gadgetbridge.externalevents;
import android.content.Context;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.content.pm.PackageManager.NameNotFoundException;
import android.database.ContentObserver;
import android.database.Cursor;
import android.net.Uri;
import android.os.Handler;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.util.ArrayList;
import nodomain.freeyourgadget.gadgetbridge.GBApplication;
import nodomain.freeyourgadget.gadgetbridge.model.Weather;
import nodomain.freeyourgadget.gadgetbridge.model.WeatherSpec;
public class OmniJawsObserver extends ContentObserver {
private static final Logger LOG = LoggerFactory.getLogger(OmniJawsObserver.class);
private static final String SERVICE_PACKAGE = "org.omnirom.omnijaws";
public static final Uri WEATHER_URI = Uri.parse("content://org.omnirom.omnijaws.provider/weather");
private static final Uri SETTINGS_URI = Uri.parse("content://org.omnirom.omnijaws.provider/settings");
private Context mContext;
private boolean mInstalled;
private boolean mEnabled = false;
private boolean mMetric = true;
private final String[] WEATHER_PROJECTION = new String[]{
"city",
"condition", //unused, see below
"condition_code",
"temperature",
"humidity",
"forecast_low",
"forecast_high",
"forecast_condition",
"forecast_condition_code",
"time_stamp",
"forecast_date"
};
private final String[] SETTINGS_PROJECTION = new String[]{
"enabled",
"units"
};
public OmniJawsObserver(Handler handler) throws NameNotFoundException {
super(handler);
mContext = GBApplication.getContext();
mInstalled = isOmniJawsServiceAvailable();
LOG.info("OmniJaws installation status: " + mInstalled);
checkSettings();
LOG.info("OmniJaws is enabled: " + mEnabled);
if (!mEnabled) {
throw new NameNotFoundException();
}
updateWeather();
}
@Override
public void onChange(boolean selfChange) {
super.onChange(selfChange);
LOG.info("Weather update received");
checkSettings();
if (!mEnabled) {
LOG.info("Provider was disabled, ignoring.");
return;
}
queryWeather();
}
private void queryWeather() {
Cursor c = mContext.getContentResolver().query(WEATHER_URI, WEATHER_PROJECTION, null, null, null);
if (c != null) {
try {
WeatherSpec weatherSpec = new WeatherSpec();
weatherSpec.forecasts = new ArrayList<>();
int count = c.getCount();
if (count > 0) {
for (int i = 0; i < count; i++) {
c.moveToPosition(i);
if (i == 0) {
weatherSpec.location = c.getString(0);
weatherSpec.currentConditionCode = Weather.mapToOpenWeatherMapCondition(c.getInt(2));
weatherSpec.currentCondition = Weather.getConditionString(weatherSpec.currentConditionCode);
//alternatively the following would also be possible
//weatherSpec.currentCondition = c.getString(1);
weatherSpec.currentTemp = toKelvin(c.getFloat(3));
weatherSpec.currentHumidity = (int) c.getFloat(4);
weatherSpec.todayMinTemp = toKelvin(c.getFloat(5));
weatherSpec.todayMaxTemp = toKelvin(c.getFloat(6));
weatherSpec.timestamp = (int) (Long.valueOf(c.getString(9)) / 1000);
} else {
WeatherSpec.Forecast gbForecast = new WeatherSpec.Forecast();
gbForecast.minTemp = toKelvin(c.getFloat(5));
gbForecast.maxTemp = toKelvin(c.getFloat(6));
gbForecast.conditionCode = Weather.mapToOpenWeatherMapCondition(c.getInt(8));
weatherSpec.forecasts.add(gbForecast);
}
}
}
Weather.getInstance().setWeatherSpec(weatherSpec);
GBApplication.deviceService().onSendWeather(weatherSpec);
} finally {
c.close();
}
}
}
private void updateWeather() {
Intent updateIntent = new Intent(Intent.ACTION_MAIN)
.setClassName(SERVICE_PACKAGE, SERVICE_PACKAGE + ".WeatherService");
updateIntent.setAction(SERVICE_PACKAGE + ".ACTION_UPDATE");
mContext.startService(updateIntent);
}
private boolean isOmniJawsServiceAvailable() throws NameNotFoundException {
final PackageManager pm = mContext.getPackageManager();
pm.getPackageInfo("org.omnirom.omnijaws", 0);
return true;
}
private void checkSettings() {
if (!mInstalled) {
return;
}
final Cursor c = mContext.getContentResolver().query(SETTINGS_URI, SETTINGS_PROJECTION,
null, null, null);
if (c != null) {
int count = c.getCount();
if (count == 1) {
c.moveToPosition(0);
mEnabled = c.getInt(0) == 1 ? true : false;
mMetric = c.getInt(1) == 0 ? true : false;
}
}
}
private int toKelvin(double temperature) {
if (mMetric) {
return (int) (temperature + 273.15);
}
return (int) ((temperature - 32) * 0.5555555555555556D + 273.15);
}
}

View File

@ -69,6 +69,9 @@ public class AppNotificationType extends HashMap<String, NotificationType> {
// Telegram
put("org.telegram.messenger", NotificationType.TELEGRAM);
// Threema
put("ch.threema.app", NotificationType.THREEMA);
// Twitter
put("org.mariotaku.twidere", NotificationType.TWITTER);
put("com.twitter.android", NotificationType.TWITTER);
@ -139,6 +142,9 @@ public class AppNotificationType extends HashMap<String, NotificationType> {
// Transit
put("com.thetransitapp.droid", NotificationType.TRANSIT);
// Etar
put("ws.xsoh.etar", NotificationType.GENERIC_CALENDAR);
}
}

View File

@ -57,6 +57,7 @@ public enum NotificationType {
SLACK(PebbleIconID.NOTIFICATION_SLACK, PebbleColor.Folly),
SNAPCHAT(PebbleIconID.NOTIFICATION_SNAPCHAT, PebbleColor.Icterine),
TELEGRAM(PebbleIconID.NOTIFICATION_TELEGRAM, PebbleColor.VividCerulean),
THREEMA(PebbleIconID.NOTIFICATION_HIPCHAT, PebbleColor.JaegerGreen),
TRANSIT(PebbleIconID.LOCATION, PebbleColor.JaegerGreen),
TWITTER(PebbleIconID.NOTIFICATION_TWITTER, PebbleColor.BlueMoon),
VIBER(PebbleIconID.NOTIFICATION_VIBER, PebbleColor.VividViolet),
@ -101,6 +102,7 @@ public enum NotificationType {
case RIOT:
case SIGNAL:
case TELEGRAM:
case THREEMA:
case WHATSAPP:
case GOOGLE_MESSENGER:
case GOOGLE_HANGOUTS:

View File

@ -30,6 +30,7 @@ import android.content.IntentFilter;
import android.content.SharedPreferences;
import android.content.pm.PackageManager;
import android.net.Uri;
import android.os.Handler;
import android.os.IBinder;
import android.support.annotation.Nullable;
import android.support.v4.content.ContextCompat;
@ -53,6 +54,7 @@ import nodomain.freeyourgadget.gadgetbridge.externalevents.BluetoothPairingReque
import nodomain.freeyourgadget.gadgetbridge.externalevents.CMWeatherReceiver;
import nodomain.freeyourgadget.gadgetbridge.externalevents.CalendarReceiver;
import nodomain.freeyourgadget.gadgetbridge.externalevents.MusicPlaybackReceiver;
import nodomain.freeyourgadget.gadgetbridge.externalevents.OmniJawsObserver;
import nodomain.freeyourgadget.gadgetbridge.externalevents.PebbleReceiver;
import nodomain.freeyourgadget.gadgetbridge.externalevents.PhoneCallReceiver;
import nodomain.freeyourgadget.gadgetbridge.externalevents.SMSReceiver;
@ -175,6 +177,7 @@ public class DeviceCommunicationService extends Service implements SharedPrefere
private AlarmReceiver mAlarmReceiver = null;
private CalendarReceiver mCalendarReceiver = null;
private CMWeatherReceiver mCMWeatherReceiver = null;
private OmniJawsObserver mOmniJawsObserver = null;
private Random mRandom = new Random();
private final String[] mMusicActions = {
@ -588,7 +591,7 @@ public class DeviceCommunicationService extends Service implements SharedPrefere
LOG.info("Setting broadcast receivers to: " + enable);
if (enable && initialized && coordinator != null && coordinator.supportsCalendarEvents()) {
if (mCalendarReceiver == null && getPrefs().getBoolean("enable_calendar_sync", true)) {
if (mCalendarReceiver == null && getPrefs().getBoolean("enable_calendar_sync", true)) {
if (!(GBApplication.isRunningMarshmallowOrLater() && ContextCompat.checkSelfPermission(this, Manifest.permission.READ_CALENDAR) == PackageManager.PERMISSION_DENIED)) {
IntentFilter calendarIntentFilter = new IntentFilter();
calendarIntentFilter.addAction("android.intent.action.PROVIDER_CHANGED");
@ -632,7 +635,7 @@ public class DeviceCommunicationService extends Service implements SharedPrefere
if (mMusicPlaybackReceiver == null) {
mMusicPlaybackReceiver = new MusicPlaybackReceiver();
IntentFilter filter = new IntentFilter();
for (String action : mMusicActions){
for (String action : mMusicActions) {
filter.addAction(action);
}
registerReceiver(mMusicPlaybackReceiver, filter);
@ -663,6 +666,14 @@ public class DeviceCommunicationService extends Service implements SharedPrefere
mCMWeatherReceiver = new CMWeatherReceiver();
registerReceiver(mCMWeatherReceiver, new IntentFilter("GB_UPDATE_WEATHER"));
}
if (mOmniJawsObserver == null && coordinator != null && coordinator.supportsWeather()) {
try {
mOmniJawsObserver = new OmniJawsObserver(new Handler());
getContentResolver().registerContentObserver(mOmniJawsObserver.WEATHER_URI, true, mOmniJawsObserver);
} catch (PackageManager.NameNotFoundException e) {
//Nothing wrong, it just means we're not running on omnirom.
}
}
} else {
if (mPhoneCallReceiver != null) {
unregisterReceiver(mPhoneCallReceiver);
@ -701,6 +712,9 @@ public class DeviceCommunicationService extends Service implements SharedPrefere
unregisterReceiver(mCMWeatherReceiver);
mCMWeatherReceiver = null;
}
if (mOmniJawsObserver != null) {
getContentResolver().unregisterContentObserver(mOmniJawsObserver);
}
}
}

View File

@ -327,6 +327,7 @@ public class BLETypeConversions {
case SKYPE:
case SNAPCHAT:
case TELEGRAM:
case THREEMA:
case TWITTER:
case WHATSAPP:
case VIBER:

View File

@ -26,7 +26,7 @@ import nodomain.freeyourgadget.gadgetbridge.service.devices.huami.HuamiFirmwareT
import nodomain.freeyourgadget.gadgetbridge.util.ArrayUtils;
public class AmazfitBipFirmwareInfo extends HuamiFirmwareInfo {
// total crap maybe
// gps detection is totally bogus, just the first 16 bytes
private static final byte[] GPS_HEADER = new byte[]{
(byte) 0xcb, 0x51, (byte) 0xc1, 0x30, 0x41, (byte) 0x9e, 0x5e, (byte) 0xd3,
0x51, 0x35, (byte) 0xdf, 0x66, (byte) 0xed, (byte) 0xd9, 0x5f, (byte) 0xa7
@ -35,6 +35,10 @@ public class AmazfitBipFirmwareInfo extends HuamiFirmwareInfo {
0x10, 0x50, 0x26, 0x76, (byte) 0x8f, 0x4a, (byte) 0xa1, 0x49,
(byte) 0xa7, 0x26, (byte) 0xd0, (byte) 0xe6, 0x4a, 0x21, (byte) 0x88, (byte) 0xd4
};
private static final byte[] GPS_HEADER3 = new byte[]{
(byte) 0xeb, (byte) 0xfa, (byte) 0xc5, (byte) 0x89, (byte) 0xf0, 0x5c, 0x2e, (byte) 0xcc,
(byte) 0xfa, (byte) 0xf3, 0x62, (byte) 0xeb, (byte) 0x92, (byte) 0xc6, (byte) 0xa1, (byte) 0xbb
};
// guessed - at least it is the same across versions from 0.0.7.x to 0.0.9.x
// and different from other devices
@ -76,6 +80,8 @@ public class AmazfitBipFirmwareInfo extends HuamiFirmwareInfo {
crcToVersion.put(26714, "0.1.0.11");
crcToVersion.put(64160, "0.1.0.17");
crcToVersion.put(43028, "0.1.0.27");
crcToVersion.put(59462, "0.1.0.33");
crcToVersion.put(55277, "0.1.0.39");
// resources
crcToVersion.put(12586, "0.0.8.74");
@ -85,11 +91,14 @@ public class AmazfitBipFirmwareInfo extends HuamiFirmwareInfo {
crcToVersion.put(22051, "0.0.9.40");
crcToVersion.put(46233, "0.0.9.49-0.1.0.11");
crcToVersion.put(12098, "0.1.0.17");
crcToVersion.put(28696, "0.1.0.27");
crcToVersion.put(28696, "0.1.0.26-0.1.0.27");
crcToVersion.put(5650, "0.1.0.33");
crcToVersion.put(16117, "0.1.0.39");
// gps
crcToVersion.put(61520, "9367,8f79a91,0,0,");
crcToVersion.put(8784, "9565,dfbd8fa,0,0,");
crcToVersion.put(16716, "9565,dfbd8faf42,0");
}
public AmazfitBipFirmwareInfo(byte[] bytes) {
@ -104,7 +113,7 @@ public class AmazfitBipFirmwareInfo extends HuamiFirmwareInfo {
}
return HuamiFirmwareType.RES;
}
if (ArrayUtils.startsWith(bytes, GPS_HEADER) || ArrayUtils.startsWith(bytes, GPS_HEADER2)) {
if (ArrayUtils.startsWith(bytes, GPS_HEADER) || ArrayUtils.startsWith(bytes, GPS_HEADER2) || ArrayUtils.startsWith(bytes, GPS_HEADER3)) {
return HuamiFirmwareType.GPS;
}
if (ArrayUtils.startsWith(bytes, GPS_ALMANAC_HEADER)) {

View File

@ -60,7 +60,6 @@ public class HuamiIcon {
public static final byte WEATHER = 35;
public static final byte HR_WARNING_36 = 36;
public static byte mapToIconId(NotificationType type) {
switch (type) {
case UNKNOWN:
@ -104,6 +103,8 @@ public class HuamiIcon {
return SNAPCHAT;
case TELEGRAM:
return TELEGRAM;
case THREEMA:
return CHAT_BLUE_13;
case VIBER:
return VIBER;
case WECHAT:
@ -115,4 +116,4 @@ public class HuamiIcon {
}
return APP_11;
}
}
}

View File

@ -33,6 +33,7 @@ public class AmazfitCorFirmwareInfo extends HuamiFirmwareInfo {
};
private static final int FW_HEADER_OFFSET = 0x9330;
private static final int FW_HEADER_OFFSET_2 = 0x9340;
private static final int NEW_RES_HEADER_OFFSET = 0x9;
private static Map<Integer, String> crcToVersion = new HashMap<>();
@ -61,7 +62,7 @@ public class AmazfitCorFirmwareInfo extends HuamiFirmwareInfo {
return HuamiFirmwareType.RES;
} else if (ArrayUtils.equals(bytes, RES_HEADER, NEW_RES_HEADER_OFFSET)) {
return HuamiFirmwareType.RES_NEW;
} else if (ArrayUtils.equals(bytes, FW_HEADER, FW_HEADER_OFFSET)) {
} else if (ArrayUtils.equals(bytes, FW_HEADER, FW_HEADER_OFFSET) || ArrayUtils.equals(bytes, FW_HEADER, FW_HEADER_OFFSET_2)) {
// TODO: this is certainly not a correct validation, but it works for now
return HuamiFirmwareType.FIRMWARE;
}

View File

@ -95,6 +95,10 @@ public class DeviceInfo extends AbstractInfo {
return fw2Version;
}
public int getProfileVersion() {
return profileVersion;
}
public void setTest1AHRMode(boolean enableTestMode) {
test1AHRMode = enableTestMode;
}

View File

@ -67,11 +67,11 @@ public class FetchActivityOperation extends AbstractMiBand1Operation {
private final int activityMetadataLength = 11;
//temporary buffer, size is a multiple of 60 because we want to store complete minutes (1 minute = 3 or 4 bytes)
private final int activityDataHolderSize;
private final boolean hasExtendedActivityData;
private final boolean hasPacketCounter;
private static class ActivityStruct {
private class ActivityStruct {
private int maxDataPacketLength = 20;
private int lastNotifiedProgress;
private final byte[] activityDataHolder;
private final int activityDataHolderSize;
@ -86,21 +86,22 @@ public class FetchActivityOperation extends AbstractMiBand1Operation {
//same as above, but remains untouched for the ack message
private GregorianCalendar activityDataTimestampToAck = null;
ActivityStruct(int activityDataHolderSize) {
ActivityStruct(int activityDataHolderSize, int maxDataPacketLength) {
this.activityDataHolderSize = activityDataHolderSize;
this.maxDataPacketLength = maxDataPacketLength;
activityDataHolder = new byte[activityDataHolderSize];
}
public boolean hasRoomFor(byte[] value) {
boolean hasRoomFor(byte[] value) {
return activityDataRemainingBytes >= value.length;
}
public boolean isValidData(byte[] value) {
boolean isValidData(byte[] value) {
//I don't like this clause, but until we figure out why we get different data sometimes this should work
return value.length == 20 || value.length == activityDataRemainingBytes;
return value.length == maxDataPacketLength || value.length == activityDataRemainingBytes;
}
public boolean isBufferFull() {
boolean isBufferFull() {
return activityDataHolderSize == activityDataHolderProgress;
}
@ -116,11 +117,11 @@ public class FetchActivityOperation extends AbstractMiBand1Operation {
GB.assertThat(activityDataRemainingBytes >= 0, "Illegal state, remaining bytes is negative");
}
public boolean isFirstChunk() {
boolean isFirstChunk() {
return activityDataTimestampProgress == null;
}
public void startNewBlock(GregorianCalendar timestamp, int dataUntilNextHeader) {
void startNewBlock(GregorianCalendar timestamp, int dataUntilNextHeader) {
GB.assertThat(timestamp != null, "Timestamp must not be null");
if (isFirstChunk()) {
@ -140,11 +141,11 @@ public class FetchActivityOperation extends AbstractMiBand1Operation {
validate();
}
public boolean isBlockFinished() {
boolean isBlockFinished() {
return activityDataRemainingBytes == 0;
}
public void bufferFlushed(int minutes) {
void bufferFlushed(int minutes) {
activityDataTimestampProgress.add(Calendar.MINUTE, minutes);
activityDataHolderProgress = 0;
lastNotifiedProgress = 0;
@ -156,8 +157,11 @@ public class FetchActivityOperation extends AbstractMiBand1Operation {
public FetchActivityOperation(MiBandSupport support) {
super(support);
hasExtendedActivityData = support.getDeviceInfo().supportsHeartrate();
activityDataHolderSize = getBytesPerMinuteOfActivityData() * 60 * 4; // 4h
activityStruct = new ActivityStruct(activityDataHolderSize);
hasPacketCounter = support.getDeviceInfo().getProfileVersion() >= 0x02000700;
//temporary buffer, size is a multiple of 60 because we want to store complete minutes (1 minute = 3 or 4 bytes)
int activityDataHolderSize = getBytesPerMinuteOfActivityData() * 60 * 4;
int maxDataPacketLength = hasPacketCounter ? (hasExtendedActivityData ? 16 : 18) : 20;
activityStruct = new ActivityStruct(activityDataHolderSize, maxDataPacketLength);
}
@Override
@ -216,7 +220,13 @@ public class FetchActivityOperation extends AbstractMiBand1Operation {
if (value.length == activityMetadataLength) {
handleActivityMetadata(value);
} else {
bufferActivityData(value);
if (hasPacketCounter) {
byte[] valueChopped = new byte[value.length - 1];
System.arraycopy(value, 1, valueChopped, 0, value.length - 1);
bufferActivityData(valueChopped);
} else {
bufferActivityData(value);
}
}
if (LOG.isDebugEnabled()) {
LOG.debug("activity data: length: " + value.length + ", remaining bytes: " + activityStruct.activityDataRemainingBytes);

View File

@ -46,6 +46,7 @@ public class NotificationUtils {
case SKYPE:
case SNAPCHAT:
case TELEGRAM:
case THREEMA:
case TWITTER:
case WHATSAPP:
case VIBER:

View File

@ -169,7 +169,7 @@
<string name="toast_enable_networklocationprovider">Παρακαλώ ενεργοποιήστε τις υπηρεσίες τοποθεσίας</string>
<string name="toast_aqurired_networklocation">Η τοποθεσία βρέθηκε</string>
<string name="pref_title_pebble_forceprotocol">Υποχρεωτικό πρωτόκολλο ειδοποιήσεων</string>
<string name="pref_title_pebble_forceprotocol">Πρωτόκολλο υποχρεωτικών ειδοποιήσεων</string>
<string name="pref_summary_pebble_forceprotocol">Αυτή η επιλογή υποχρεώνει την χρήση του πιο πρόσφατου πρωτοκόλλου ειδοποιήσεων ανάλογα με την έκδοση του λογισμικού. ΕΝΕΡΓΟΠΟΙΗΣΤΕ ΜΟΝΟ ΑΝ ΞΕΡΕΤΕ ΤΙ ΚΑΝΕΤΕ!</string>
<string name="pref_title_pebble_forceuntested">Να επιτρέπονται τα μη δοκιμασμένα χαρακτηριστικά</string>
<string name="pref_summary_pebble_forceuntested">Χρήση μη δοκιμασμένων χαρακτηριστικών. ΕΝΕΡΓΟΠΟΙΗΣΤΕ ΜΟΝΟ ΑΝ ΞΕΡΕΤΕ ΤΙ ΚΑΝΕΤΕ!</string>
@ -277,7 +277,7 @@
<string name="pref_header_vibration_settings">Ρυθμίσεις δόνησης</string>
<string name="pref_screen_notification_profile_generic">Γενικές ειδοποιήσεις</string>
<string name="pref_screen_notification_profile_email">Ειδοποιήσεις email</string>
<string name="pref_title_weather_location">Τοποθεσία καιρού</string>
<string name="pref_title_weather_location">Τοποθεσία καιρού (για τις ROM Cyanogenmod ή LineageOS)</string>
<string name="pref_screen_notification_profile_incoming_call">Ειδοποιήσεις εισερχομένων κλήσεων</string>
<string name="pref_screen_notification_profile_generic_chat">Συζήτηση</string>
@ -542,4 +542,5 @@
<string name="devicetype_exrizu_k8">Exrizu K8</string>
<string name="devicetype_no1_f1">No.1 F1</string>
<string name="devicetype_teclast_h30">Teclast H30</string>
</resources>
<string name="pref_title_weather">Καιρός</string>
</resources>

View File

@ -458,4 +458,30 @@
<string name="interval_thirty_minutes">Cada 30 minutos</string>
<string name="interval_one_hour">Cada hora</string>
</resources>
<string name="pref_title_weather">Tiempo</string>
<string name="pref_title_weather_location">Ubicación para el tiempo (CM/LOS)</string>
<string name="kind_firmware">Firmware</string>
<string name="kind_invalid">Datos no válidos</string>
<string name="kind_font">Fuente</string>
<string name="kind_gps">Firmware del GPS</string>
<string name="kind_gps_almanac">Almanaque GPS</string>
<string name="kind_gps_cep">Corrección de error del GPS</string>
<string name="kind_resources">Recursos</string>
<string name="kind_watchface">Watchface</string>
<string name="devicetype_unknown">Dispositivo desconocido</string>
<string name="devicetype_test">Dispositivo de prueba</string>
<string name="devicetype_pebble">Pebble</string>
<string name="devicetype_miband">Mi Band</string>
<string name="devicetype_miband2">Mi Band 2</string>
<string name="devicetype_amazfit_bip">Amazfit Bip</string>
<string name="devicetype_amazfit_cor">Amazfit Cor</string>
<string name="devicetype_vibratissimo">Vibratissimo</string>
<string name="devicetype_liveview">LiveView</string>
<string name="devicetype_hplus">HPlus</string>
<string name="devicetype_makibes_f68">Makibes F68</string>
<string name="devicetype_exrizu_k8">Exrizu K8</string>
<string name="devicetype_no1_f1">No.1 F1</string>
<string name="devicetype_teclast_h30">Teclast H30</string>
</resources>

View File

@ -51,7 +51,7 @@
<string name="miband_firmware_unknown_warning">Ce micrologiciel n\'a pas été testé et peut ne pas être compatible avec Gadgetbridge.
\n
\nIl n\'est pas conseillé de le flasher sur votre Mi Band !</string>
<string name="miband_firmware_suggest_whitelist">Si vous désirez continuer et que tout fonctionne correctement par la suite, veuillez en informer les développeurs de Gadgetbridge pour demander l\'ajout de ce micrologiciel à leur liste: %s</string>
<string name="miband_firmware_suggest_whitelist">Si vous désirez continuer et que tout fonctionne correctement par la suite, veuillez en informer les développeurs de Gadgetbridge pour demander l\'ajout de ce micrologiciel à leur liste : %s</string>
<!--Strings related to Settings-->
<string name="title_activity_settings">Paramètres</string>
<string name="pref_header_general">Paramètres généraux</string>
@ -166,8 +166,8 @@
<string name="installing_binary_d_d">Installation du binaire %1$d/%2$d</string>
<string name="installation_failed_">Échec de l\'installation</string>
<string name="installation_successful">Installation réalisée avec succès</string>
<string name="firmware_install_warning">VOUS TENTEZ D\'INSTALLER UN MICROLOGICIEL, PROCÉDEZ À VOS RISQUES ET PÉRILS.\n\n\nCe micrologiciel est pour la version de matériel: %s</string>
<string name="app_install_info">Vous êtes sur le point d\'installer l\'application suivante:\n\n\n%1$s Version %2$s par %3$s\n</string>
<string name="firmware_install_warning">VOUS TENTEZ D\'INSTALLER UN MICROLOGICIEL, PROCÉDEZ À VOS RISQUES ET PÉRILS.\n\n\nCe micrologiciel est pour la version de matériel : %s</string>
<string name="app_install_info">Vous êtes sur le point d\'installer l\'application suivante :\n\n\n%1$s Version %2$s par %3$s\n</string>
<string name="n_a">N.D.</string>
<string name="initialized">Initialisé</string>
<string name="appversion_by_creator">%1$s par %2$s</string>
@ -248,18 +248,18 @@
<string name="miband_prefs_fitness_goal">Objectif de pas par jour</string>
<string name="dbaccess_error_executing">Erreur lors de lexécution de %1$s\'</string>
<string name="controlcenter_start_activitymonitor">Votre activité (ALPHA)</string>
<string name="cannot_connect">Impossible de se connecter: %1$s</string>
<string name="cannot_connect">Impossible de se connecter : %1$s</string>
<string name="installer_activity_unable_to_find_handler">Impossible de trouver un gestionnaire pour installer ce fichier.</string>
<string name="pbw_install_handler_unable_to_install">Impossible d\'installer le ficher suivant: %1$s</string>
<string name="pbw_install_handler_hw_revision_mismatch">Impossible d\'installer le micrologiciel spécifié: il ne correspond pas à la version du matériel de votre Pebble.</string>
<string name="pbw_install_handler_unable_to_install">Impossible d\'installer le ficher suivant : %1$s</string>
<string name="pbw_install_handler_hw_revision_mismatch">Impossible d\'installer le micrologiciel spécifié : il ne correspond pas à la version du matériel de votre Pebble.</string>
<string name="installer_activity_wait_while_determining_status">Veuillez patienter pendant la détermination de l\'état de l\'installation…</string>
<string name="notif_battery_low_title">Niveau de batterie faible !</string>
<string name="notif_battery_low_percent">%1$s batterie restante: %2$s%%</string>
<string name="notif_battery_low_bigtext_last_charge_time">Dernière charge: %s \n</string>
<string name="notif_battery_low_bigtext_number_of_charges">Nombre de charges: %s</string>
<string name="notif_battery_low_percent">%1$s batterie restante : %2$s%%</string>
<string name="notif_battery_low_bigtext_last_charge_time">Dernière charge : %s \n</string>
<string name="notif_battery_low_bigtext_number_of_charges">Nombre de charges : %s</string>
<string name="sleepchart_your_sleep">Votre sommeil</string>
<string name="weeksleepchart_sleep_a_week">Sommeil cette semaine</string>
<string name="weeksleepchart_today_sleep_description">Sommeil aujourd\'hui, objectif: %1$s</string>
<string name="weeksleepchart_today_sleep_description">Sommeil aujourd\'hui, objectif : %1$s</string>
<string name="weekstepschart_steps_a_week">Pas de la semaine</string>
<string name="activity_sleepchart_activity_and_sleep">Votre activité et sommeil</string>
<string name="updating_firmware">Mise à jour du micrologiciel…</string>
@ -267,7 +267,7 @@
<string name="installhandler_firmware_name">%1$s: %2$s %3$s</string>
<string name="miband_fwinstaller_compatible_version">Version compatible</string>
<string name="miband_fwinstaller_untested_version">Version non-testée !</string>
<string name="fwappinstaller_connection_state">Connexion à l\'appareil: %1$s</string>
<string name="fwappinstaller_connection_state">Connexion à l\'appareil : %1$s</string>
<string name="pbw_installhandler_pebble_firmware">Micrologiciel Pebble %1$s</string>
<string name="pbwinstallhandler_correct_hw_revision">Version du matériel correcte</string>
<string name="pbwinstallhandler_incorrect_hw_revision">Version du matériel incorrecte !</string>
@ -284,7 +284,7 @@
<string name="heart_rate">Fréquence cardiaque</string>
<string name="battery">Batterie</string>
<string name="liveactivity_live_activity">Activité en direct</string>
<string name="weeksteps_today_steps_description">Nombre de pas aujourd\'hui, objectif: %1$s</string>
<string name="weeksteps_today_steps_description">Nombre de pas aujourd\'hui, objectif : %1$s</string>
<string name="pref_title_dont_ack_transfer">Ne pas confirmer le transfert de données d\'activités</string>
<string name="pref_summary_dont_ack_transfers">Les données d\'activités ne seront pas effacées du bracelet si elles ne sont pas confirmées. Utile si GB est utilisé avec d\'autres applications.</string>
<string name="pref_summary_keep_data_on_device">Les données d\'activités seront conservées sur le Mi Band après la synchronisation. Utile si GB est utilisé avec d\'autres applications.</string>
@ -338,8 +338,8 @@
<string name="activity_prefs_sleep_duration">
Temps de sommeil péféré en heures</string>
<string name="appwidget_alarms_set">Une alarme a été enregistré pour %1$02d:%2$02d</string>
<string name="device_hw">Révision matérielle: %1$s</string>
<string name="device_fw">Version du micrologiciel: %1$s</string>
<string name="device_hw">Révision matérielle : %1$s</string>
<string name="device_fw">Version du micrologiciel : %1$s</string>
<string name="error_creating_directory_for_logfiles">Erreur à la création de votre fichier log : %1$s</string>
<string name="DEVINFO_HR_VER">"Révision matérielle : "</string>
<string name="updatefirmwareoperation_update_in_progress">Le micrologiciel se met à jour</string>
@ -348,7 +348,7 @@ Temps de sommeil péféré en heures</string>
<string name="live_activity_heart_rate">Fréquence cardiaque</string>
<string name="pref_title_pebble_health_store_raw">Stockez les enregistrements brut dans la base de données</string>
<string name="pref_summary_pebble_health_store_raw">Si coché, les données sont stockées \"telles quelles\" et seront disponibles pour une interprétation ultérieure.
NOTE: la base de données sera bien évidement plus grande !</string>
NOTE : la base de données sera bien évidement plus grande !</string>
<string name="action_db_management">Gestion de base de données</string>
<string name="title_activity_db_management">Gestion de base de données</string>
<string name="activity_db_management_import_export_explanation">Les opérations sur la base de donnée ont utilisé le chemin suivant sur votre appareil.
@ -357,13 +357,13 @@ NOTE: la base de données sera bien évidement plus grande !</string>
<string name="activity_db_management_merge_old_title">Effacer l\'ancienne base de données</string>
<string name="dbmanagementactivvity_cannot_access_export_path">Impossible d\'accéder au fichier d\'export. Merci de contacter les développeurs.</string>
<string name="dbmanagementactivity_exported_to">Exporter vers : %1$s</string>
<string name="dbmanagementactivity_error_exporting_db">Erreur d\'exportation de la base de données: %1$s</string>
<string name="dbmanagementactivity_error_exporting_shared">Erreur d\'exportation des préférences: %1$s</string>
<string name="dbmanagementactivity_error_exporting_db">Erreur d\'exportation de la base de données : %1$s</string>
<string name="dbmanagementactivity_error_exporting_shared">Erreur d\'exportation des préférences : %1$s</string>
<string name="dbmanagementactivity_import_data_title">Importer des données ?</string>
<string name="dbmanagementactivity_overwrite_database_confirmation">Voulez-vous vraiment effacer la base de données actuelle ? Toutes vos données (si vous en avez) seront perdues.</string>
<string name="dbmanagementactivity_import_successful">Importation réussie.</string>
<string name="dbmanagementactivity_error_importing_db">Erreur lors de l\'importation de la base de données: %1$s</string>
<string name="dbmanagementactivity_error_importing_shared">Erreur d\'importation des préférences: %1$s</string>
<string name="dbmanagementactivity_error_importing_db">Erreur lors de l\'importation de la base de données : %1$s</string>
<string name="dbmanagementactivity_error_importing_shared">Erreur d\'importation des préférences : %1$s</string>
<string name="dbmanagementactivity_delete_activity_data_title">Détruire les anciennes données ?</string>
<string name="dbmanagementactivity_really_delete_entire_db">Voulez-vous vraiment détruire entièrement la base de données ? Toutes vos données d\'activité et vos informations issues de vos appareils seront perdues.</string>
<string name="dbmanagementactivity_database_successfully_deleted">Les données ont été effacées.</string>
@ -390,17 +390,17 @@ NOTE: la base de données sera bien évidement plus grande !</string>
<string name="pref_screen_notification_profile_alarm_clock">Réveil</string>
<string name="StringUtils_sender">(%1$s)</string>
<string name="find_device_you_found_it">Vous l\'avez trouvé !</string>
<string name="miband2_prefs_timeformat">Mi2: format de l\'heure</string>
<string name="miband2_prefs_timeformat">Mi2 : format de l\'heure</string>
<string name="mi2_fw_installhandler_fw53_hint">Vous devez installer la version %1$s avant d\'installer ce micrologiciel !</string>
<string name="mi2_enable_text_notifications">Notifications textuelles</string>
<string name="mi2_enable_text_notifications_summary"><![CDATA[Requis: micrologiciel version 1.0.1.28 ou plus, fichier Mili_pro.ft* installé.]]></string>
<string name="mi2_enable_text_notifications_summary"><![CDATA[Requis : micrologiciel version 1.0.1.28 ou plus, fichier Mili_pro.ft* installé.]]></string>
<string name="off">Éteint</string>
<string name="mi2_dnd_off">Éteint</string>
<string name="mi2_dnd_automatic">Automatique (détection de sommeil)</string>
<string name="mi2_dnd_scheduled">Programmé (intervalle de temps)</string>
<string name="discovery_attempting_to_pair">Tentative de jumelage avec %1$s</string>
<string name="discovery_bonding_failed_immediately">Le lien avec %1$s a échoué instantanément.</string>
<string name="discovery_trying_to_connect_to">Tentative de connexion à: %1$s</string>
<string name="discovery_trying_to_connect_to">Tentative de connexion à : %1$s</string>
<string name="discovery_enable_bluetooth">Activez le Bluetooth pour trouver des dispositifs.</string>
<string name="discovery_successfully_bonded">Correctement lié à %1$s.</string>
<string name="discovery_pair_title">Appairer avec %1$s ?</string>
@ -411,7 +411,7 @@ NOTE: la base de données sera bien évidement plus grande !</string>
\n
\nVeuillez installer le micrologiciel .gps, ensuite le fichier .res, puis le fichier .fw. Votre montre redémarrera après installation du .fw.
\n
\nNote: vous ne devez pas installer .res et .gps si ceux-ci sont identiques à ceux installés précédemment.
\nNote : vous ne devez pas installer .res et .gps si ceux-ci sont identiques à ceux installés précédemment.
\n
\nCONTINUEZ À VOS RISQUES !</string>
<string name="amazfitbip_firmware">Firmware Amazfit Bip %1$s</string>
@ -443,7 +443,7 @@ NOTE: la base de données sera bien évidement plus grande !</string>
\n
\nVeuillez installer le micrologiciel .gps, ensuite le fichier .res, puis le fichier .fw. Votre montre redémarrera après installation du .fw.
\n
\nNote: vous ne devez pas installer .res si celui-ci est identique à celui installé précédemment.
\nNote : vous ne devez pas installer .res si celui-ci est identique à celui installé précédemment.
\n
\nNON TESTÉ, PEUT BRICKER L\'APPAREIL. CONTINUEZ À VOS RISQUES !</string>
<string name="amazfitcor_firmware">Micrologiciel Amazfit Cor %1$s</string>
@ -462,4 +462,30 @@ NOTE: la base de données sera bien évidement plus grande !</string>
<string name="interval_thirty_minutes">Toutes les 30 minutes</string>
<string name="interval_one_hour">Une fois par heure</string>
</resources>
<string name="pref_title_weather">Météo</string>
<string name="pref_title_weather_location">Emplacement météo (CM/LOS)</string>
<string name="kind_firmware">Micrologiciel</string>
<string name="kind_invalid">Données non valides</string>
<string name="kind_font">Police</string>
<string name="kind_gps">Micrologiciel GPS</string>
<string name="kind_gps_almanac">Almanach GPS</string>
<string name="kind_gps_cep">Correction d\'erreurs GPS</string>
<string name="kind_resources">Ressources</string>
<string name="kind_watchface">Watchface</string>
<string name="devicetype_unknown">Appareil inconnu</string>
<string name="devicetype_test">Appareil de test</string>
<string name="devicetype_pebble">Pebble</string>
<string name="devicetype_miband">Mi Band</string>
<string name="devicetype_miband2">Mi Band 2</string>
<string name="devicetype_amazfit_bip">Amazfit Bip</string>
<string name="devicetype_amazfit_cor">Amazfit Cor</string>
<string name="devicetype_vibratissimo">Vibratissimo</string>
<string name="devicetype_liveview">LiveView</string>
<string name="devicetype_hplus">HPlus</string>
<string name="devicetype_makibes_f68">Makibes F68</string>
<string name="devicetype_exrizu_k8">Exrizu K8</string>
<string name="devicetype_no1_f1">No.1 F1</string>
<string name="devicetype_teclast_h30">Teclast H30</string>
</resources>

View File

@ -463,7 +463,7 @@
<string name="interval_thirty_minutes">כל חצי שעה</string>
<string name="interval_one_hour">פעם בשעה</string>
<string name="pref_title_weather_location">מיקום מזג אוויר</string>
<string name="pref_title_weather_location">מיקום מזג אוויר (CM/LOS)</string>
<string name="kind_firmware">קושחה</string>
<string name="kind_invalid">נתונים שגויים</string>
@ -487,4 +487,5 @@
<string name="devicetype_exrizu_k8">Exrizu K8</string>
<string name="devicetype_no1_f1">No.1 F1</string>
<string name="devicetype_teclast_h30">Teclast H30</string>
</resources>
<string name="pref_title_weather">מזג אוויר</string>
</resources>

View File

@ -456,4 +456,30 @@
<string name="traditional_chinese">繁体中国語</string>
<string name="english">英語</string>
</resources>
<string name="pref_title_weather">天気</string>
<string name="pref_title_weather_location">天気の場所 (CM/ロサンゼルス)</string>
<string name="kind_firmware">ファームウェア</string>
<string name="kind_invalid">無効なデータ</string>
<string name="kind_font">フォント</string>
<string name="kind_gps">GPS ファームウェア</string>
<string name="kind_gps_almanac">GPS 年鑑</string>
<string name="kind_gps_cep">GPS エラー訂正</string>
<string name="kind_resources">リソース</string>
<string name="kind_watchface">ウォッチフェイス</string>
<string name="devicetype_unknown">不明なデバイス</string>
<string name="devicetype_test">テスト デバイス</string>
<string name="devicetype_pebble">Pebble</string>
<string name="devicetype_miband">Mi Band</string>
<string name="devicetype_miband2">Mi Band 2</string>
<string name="devicetype_amazfit_bip">Amazfit Bip</string>
<string name="devicetype_amazfit_cor">Amazfit Cor</string>
<string name="devicetype_vibratissimo">Vibratissimo</string>
<string name="devicetype_liveview">LiveView</string>
<string name="devicetype_hplus">HPlus</string>
<string name="devicetype_makibes_f68">Makibes F68</string>
<string name="devicetype_exrizu_k8">Exrizu K8</string>
<string name="devicetype_no1_f1">No.1 F1</string>
<string name="devicetype_teclast_h30">Teclast H30</string>
</resources>

View File

@ -48,7 +48,7 @@
<string name="app_name">Gadgetbru</string>
<string name="title_activity_controlcenter">Gadgetbru</string>
<string name="controlcenter_delete_device_dialogmessage">Dette vil slette enheten og all tilknyttet data</string>
<string name="controlcenter_delete_device_dialogmessage">Dette vil slette enheten og all tilknyttet data!</string>
<string name="fw_upgrade_notice_amazfitbip">Du er i ferd med å installere fastvaren %s på din Amazfit Bip.
\n
\nForsikre deg om at du installerer .gps-fastvaren, så .res-fila, og til sist .fw-fila. Armbåndsuret ditt vil starte på nytt etter at .fw-fila er installert.
@ -298,7 +298,7 @@
<string name="user_feedback_miband_set_alarms_failed">Feil ved setting av alarm, prøv igjen.</string>
<string name="user_feedback_miband_set_alarms_ok">Alarmer sendt til enhet.</string>
<string name="chart_no_data_synchronize">Ingen data. Synkroniser enhet?</string>
<string name="user_feedback_miband_activity_data_transfer">I ferd med å overføre %1$d med data fra %2$s</string>
<string name="user_feedback_miband_activity_data_transfer">I ferd med å overføre %1$s med data fra %2$s</string>
<string name="miband_prefs_fitness_goal">Stegmål</string>
<string name="dbaccess_error_executing">Feil under kjøring av \"%1$s\"</string>
<string name="controlcenter_start_activitymonitor">Din aktivitet (alfa)</string>
@ -426,7 +426,7 @@
<string name="dbmanagementactivity_error_exporting_shared">Feil ved eksport av innstilling: %1$s</string>
<string name="dbmanagementactivity_import_data_title">Importer data?</string>
<string name="dbmanagementactivity_overwrite_database_confirmation">Vil du virkelig overskrive gjeldende database? All nåværende aktivitetsdata (hvis noen) vil gå tapt.</string>
<string name="dbmanagementactivity_import_successful">Importert</string>
<string name="dbmanagementactivity_import_successful">Importert.</string>
<string name="dbmanagementactivity_error_importing_db">Feil ved import av DB: %1$s</string>
<string name="dbmanagementactivity_error_importing_shared">Feil ved import av innstilling: %1$s</string>
<string name="dbmanagementactivity_delete_activity_data_title">Slett aktivitetsdata?</string>
@ -480,4 +480,65 @@
<string name="_pebble_watch_open_on_phone">Åpne på telefonen</string>
<string name="_pebble_watch_mute">Forstum</string>
<string name="_pebble_watch_reply">Svar</string>
<string name="pref_title_weather">Vær</string>
<string name="kind_firmware">Fastvare</string>
<string name="kind_invalid">Ugyldig data</string>
<string name="kind_font">Skrift</string>
<string name="kind_gps">GPS-fastvare</string>
<string name="kind_resources">Ressurser</string>
<string name="kind_watchface">Urskive</string>
<string name="devicetype_unknown">Ukjent enhet</string>
<string name="devicetype_test">Test enhet</string>
<string name="devicetype_pebble">Pebble</string>
<string name="devicetype_miband">Mi Band</string>
<string name="devicetype_miband2">Mi Band 2</string>
<string name="pref_title_charts_swipe">Skru på</string>
<string name="pref_title_weather_location">Vær-plassering (CM/LOS)</string>
<string name="pref_header_cannned_messages">Forhåndsutfylte meldinger</string>
<string name="pref_title_canned_reply_suffix">Vanlig endelse</string>
<string name="pref_title_canned_messages_dismisscall">Legg på røret</string>
<string name="pref_title_pebble_enable_applogs">SKru på logging av klokkeprogram</string>
<string name="pref_summary_pebble_enable_applogs">Logger klokkeprogram i Gadgetbridge (krever omstart)</string>
<string name="pref_title_pebble_always_ack_pebblekit">Send ACK til PebbleKit</string>
<string name="pref_summary_pebble_always_ack_pebblekit">Meldinger sendt til eksterne tredjepartsprogrammer vil alltid bli anerkjent umiddelbart</string>
<string name="pref_title_screentime">Demp skjerm etter</string>
<string name="miband_prefs_device_time_offset_hours">Tidsjustering i timer (for oppdagelse av søvn for skiftarbeidere)</string>
<string name="mi2_prefs_button_press_broadcast_summary">Kringkast melding ved et gitt antall knappetrykk</string>
<string name="mi2_prefs_button_action">Skru på knappehandling</string>
<string name="mi2_prefs_button_action_summary">Skru på handling ved gitt antall knappetrykk</string>
<string name="mi2_prefs_button_action_vibrate">Skru på båndvibrasjon</string>
<string name="mi2_prefs_button_action_vibrate_summary">Skru på knappetrykk ved knappetrykk</string>
<string name="mi2_prefs_button_press_count_max_delay">Maksimal forsinkelse mellom trykk</string>
<string name="mi2_prefs_button_press_count_max_delay_summary">Maksimal forsinkelse mellom knappetrykk i millisekunder</string>
<string name="mi2_prefs_button_press_count_match_delay">Forsinkelse etter knappetrykkshandling</string>
<string name="mi2_prefs_button_press_count_match_delay_summary">Forsinkelse etter at én knappetrykkshandling samsvarer (nummeret er i button_id intent extra) eller 0 for umiddelbar</string>
<string name="mi2_prefs_activate_display_on_lift">Aktiver skjerm ved løfting</string>
<string name="activity_db_management_import_export_explanation">Databaseoperasjoner bruker følgende sti på din enhet.
\nDenne stien er tilgjengelig for andre Android-programmer og din datamaskin.
\nForvent å finne din eksporterte database (eller plasser databasen du ønsker å importere) der:</string>
<string name="activity_db_management_merge_old_title">Sletting av foreldet database</string>
<string name="dbmanagementactivvity_cannot_access_export_path">Får ikke tilgang til eksportstien. Kontakt utviklerne.</string>
<string name="weather_notification_label">Forsikre deg om at denne drakten er iført Værmeldingsprogrammet for å få varsel på din Pebble.
\n
\nInget oppsett nødvendig.
\n
\nDu kan skru på systemværmeldingsprogrammet på din Pebble fra programbehandling.
\n
\nStøttede urskiver vil vise vær automatisk.</string>
<string name="activity_web_view">Web View-aktivitet</string>
<string name="kind_gps_almanac">GPS-almanakk</string>
<string name="kind_gps_cep">GPS-korrigering</string>
<string name="devicetype_amazfit_bip">Amazfit Bip</string>
<string name="devicetype_amazfit_cor">Amazfit Cor</string>
<string name="devicetype_vibratissimo">Vibratissimo</string>
<string name="devicetype_liveview">LiveView</string>
<string name="devicetype_hplus">HPlus</string>
<string name="devicetype_makibes_f68">Makibes F68</string>
<string name="devicetype_exrizu_k8">Exrizu K8</string>
<string name="devicetype_no1_f1">No.1 F1</string>
<string name="devicetype_teclast_h30">Teclast H30</string>
</resources>

View File

@ -22,7 +22,7 @@
<string name="title_activity_debug">Debug</string>
<string name="title_activity_appmanager"/>
<string name="title_activity_appmanager">Applicatie Beheer</string>
<string name="appmanager_cached_watchapps_watchfaces">Apps in de cache</string>
<string name="appmanager_installed_watchapps">Geïnstalleerde apps</string>
<string name="appmanager_installed_watchfaces">Geïnstalleerde wijzerplaten</string>
@ -34,7 +34,7 @@
<string name="appmanager_health_deactivate">deactiveren</string>
<string name="appmanager_hrm_activate">Activeer HRM</string>
<string name="appmanager_hrm_deactivate">Deactiveer HRM</string>
<string name="appmanager_weather_activate">Activeer het systeem weer app</string>
<string name="appmanager_weather_activate">Activeer de systeemweer-app</string>
<string name="appmanager_weather_install_provider">Installeer de app voor weerbericht</string>
<string name="app_configure">Configureren</string>
<string name="app_move_to_top">Verplaats naar de top</string>
@ -42,13 +42,13 @@
<string name="title_activity_appblacklist">Notificatie zwarte lijst</string>
<string name="fw_upgrade_notice">U staat op het punt om firmware% s te installeren in plaats van die nu op uw Mi Band staat.</string>
<string name="fw_upgrade_notice_amazfitbip">U staat op het punt om firmware% s te installeren in plaats van die nu op uw Amazfit Bip staat.
\n
\nZorg ervoor dat u de .gps firmware installeert, dan het .res-bestand en tenslotte het .fw-bestand. Uw horloge wordt opnieuw gestart na het installeren van het .fw-bestand.
\n
\nOpmerking: u hoeft geen .res en .gps te installeren als deze bestanden exact hetzelfde zijn als die welke eerder zijn geïnstalleerd.
\n
\nEXPERIMENTEEL, PROCEDURE OP JE EIGEN RISICO</string>
<string name="fw_upgrade_notice_amazfitbip">U staat op het punt om firmware %s te installeren op uw Amazfit Bip.
\n
\nZorg ervoor dat u de .gps firmware installeert, dan het .res-bestand en tenslotte het .fw-bestand. Uw horloge wordt opnieuw gestart na het installeren van het .fw-bestand.
\n
\nOpmerking: u hoeft geen .res en .gps te installeren als deze bestanden exact hetzelfde zijn als die welke eerder zijn geïnstalleerd.
\n
\nGA VERDER OP EIGEN RISICO!</string>
<string name="fw_multi_upgrade_notice">U staat op het punt om firmwares %1$s en %2$s te installeren in plaats van die momenteel op uw Mi Band staat.</string>
<string name="miband_firmware_known">Deze firmware is getest en is compatibel met Gadgetbridge.</string>
<string name="miband_firmware_unknown_warning">Deze firmware is niet getest en is mogelijk niet compatibel met Gadgetbridge.
@ -104,7 +104,7 @@
<string name="pref_call_privacy_mode_complete">Verberg naam en nummer</string>
<string name="pref_blacklist">Blacklist Apps</string>
<string name="pref_blacklist">Apps op de zwarte lijst plaatsen</string>
<string name="pref_blacklist_calendars">Blacklist Kalenders</string>
<string name="pref_title_canned_replies">Antwoorden</string>
@ -117,14 +117,14 @@
<string name="pref_title_pebble_settings">Pebble instellingen</string>
<string name="pref_header_activitytrackers">Activity trackers</string>
<string name="pref_title_pebble_activitytracker">Gewenste activiteit tracker</string>
<string name="pref_header_activitytrackers">"Activiteit trackers "</string>
<string name="pref_title_pebble_activitytracker">Voorkeurs-activiteit tracker</string>
<string name="pref_title_pebble_sync_health">Synchroniseer Pebble Health</string>
<string name="pref_title_pebble_sync_misfit">Sync Misfit</string>
<string name="pref_title_pebble_sync_morpheuz">Sync Morpheuz</string>
<string name="pref_title_enable_outgoing_call">Ondersteun uitgaande oproepen</string>
<string name="pref_summary_enable_outgoing_call">Als u dit uitschakelt, wordt ook de Pebble 2/LE gestopt om voor uitgaande gesprekken te trillen</string>
<string name="pref_summary_enable_outgoing_call">Als u dit uitschakelt, zal de Pebble 2/LE ook stoppen met trillen bij uitgaande gesprekken</string>
<string name="pref_title_enable_pebblekit">Toegang tot de Android App van 3de partij toestaan</string>
<string name="pref_summary_enable_pebblekit">De experimentele ondersteuning voor Android Apps inschakelen met PebbleKit</string>
@ -149,14 +149,397 @@
<string name="toast_enable_networklocationprovider">Activeer de netwerk locatie</string>
<string name="toast_aqurired_networklocation">locatie gevonden</string>
<string name="discovery_successfully_bonded">Succesvol gekoppeld aan %1$s.</string>
<string name="discovery_successfully_bonded">Succesvol gekoppeld met %1$s.</string>
<string name="discovery_pair_title">Koppel met %1$s?</string>
<string name="discovery_pair_question">Koppelen selecteren om uw apparaten te koppelen. Als dit mislukt, probeer het opnieuw zonder te koppelen.</string>
<string name="discovery_pair_question">Selecteer koppelen om uw apparaten te koppelen. Als dit mislukt, probeer het opnieuw zonder koppelen.</string>
<string name="discovery_yes_pair">Koppel</string>
<string name="discovery_dont_pair">Niet Koppelen</string>
<string name="_pebble_watch_open_on_phone">Open op de telefoon</string>
<string name="_pebble_watch_open_on_phone">Open op telefoon</string>
<string name="_pebble_watch_mute">Dempen</string>
<string name="_pebble_watch_reply">Antwoord</string>
<string name="installhandler_firmware_name">%1$s: %2$s %3$s</string>
<string name="controlcenter_connect">Verbinden</string>
<string name="controlcenter_navigation_drawer_open">Open het navigatie scherm</string>
<string name="controlcenter_navigation_drawer_close">Sluit het navigatie scherm</string>
<string name="appmanager_weather_deactivate">Deactiveer de systeemweer-app</string>
<string name="title_activity_calblacklist">Kalenders op de zwarte lijst</string>
<string name="title_activity_fw_app_insaller">Firmware/Apps installeren</string>
<string name="fw_upgrade_notice_amazfitcor">U staat op het punt om firmware %s te installeren op uw Amazfit Cor.
\n
\nZorg ervoor dat u het .res-bestand installeert en daarna het .fw-bestand. Uw horloge zal herstarten na de installatie van het .fw-bestand.
\n
\nOpmerking: U hoeft de .res niet te installeren als deze exact dezelfde is als degene die ervoor al was geïnstalleerd.
\n
\nNOG NIET GETEST, KAN UW TOESTEL ONBRUIKBAAR MAKEN, GA VERDER OP EIGEN RISICO!</string>
<string name="pref_title_charts_swipe">Activeer links/rechts vegen in grafiek schermen</string>
<string name="pref_title_weather">Weer</string>
<string name="pref_title_weather_location">Weer locatie (CM/LOS)</string>
<string name="pref_title_autoremove_notifications">Verwijder automatisch verworpen meldingen</string>
<string name="pref_summary_autoremove_notifications">Meldingen worden automatisch verwijderd op de Pebble als ze verworpen worden op het Android toestel</string>
<string name="pref_pebble_privacy_mode_content">Schuif de meldingstekst van het scherm</string>
<string name="pref_header_cannned_messages">Voorgedefinieerde berichten</string>
<string name="pref_title_pebble_forceprotocol">Verplicht notificatie protocol</string>
<string name="pref_summary_pebble_forceprotocol">Deze optie verplicht het gebruik van het laatste notificatie protocol, afhankelijk van de firmware versie. SCHAKEL DIT ALLEEN IN ALS JE WEET WAAR JE MEE BEZIG BENT!</string>
<string name="pref_title_pebble_forceuntested">Schakel niet geteste features in</string>
<string name="pref_summary_pebble_forceuntested">Schakel features in die nog niet getest zijn. SCHAKEL DIT ALLEEN IN ALS JE WEET WAAR JE MEE BEZIG BENT!</string>
<string name="pref_title_pebble_forcele">Geef altijd de voorkeur aan BLE</string>
<string name="pref_summary_pebble_forcele">Gebruik experimentele Pebble LE-ondersteuning voor alle Pebbels in plaats van BT classic, dit vereist het paren met een Pebble LE nadat een niet LE-versie eenmalig geconnecteerd is geweest.</string>
<string name="pref_title_pebble_mtu_limit">Pebble 2/LE GATT MTU limiet</string>
<string name="pref_summary_pebble_mtu_limit">Als uw Pebble 2/Pebble LE niet werkt zoals verwacht, probeer deze instelling om de MTU te limiteren (geldig bereik: 20-512)</string>
<string name="pref_title_pebble_enable_applogs">logging van horlogeapp inschakelen</string>
<string name="pref_summary_pebble_enable_applogs">Zorgt ervoor dat logs van horloge-apps gelogd zullen worden door Gadgetbridge (opnieuw verbinden vereist)</string>
<string name="pref_title_pebble_always_ack_pebblekit">Vroegtijdige ACK PebbleKit</string>
<string name="pref_summary_pebble_always_ack_pebblekit">Zorgt ervoor dat berichten die door apps van derden worden verzonden, altijd en onmiddellijk herkend zullen worden</string>
<string name="pref_title_pebble_enable_bgjs">Schakel achtergrond JS in</string>
<string name="pref_summary_pebble_enable_bgjs">Wanneer ingeschakeld, kunnen horloges het weer, batterijinformatie enz weergeven</string>
<string name="pref_title_pebble_reconnect_attempts">Pogingen tot opnieuw verbinden</string>
<string name="pref_title_unit_system">Eenheden</string>
<string name="pref_title_timeformat">Tijd weergave</string>
<string name="pref_title_screentime">Scherm en duratie</string>
<string name="prefs_title_all_day_heart_rate">Heel de dag door hartslag metingen uitvoeren</string>
<string name="preferences_hplus_settings">HPlus/Makibes instellingen</string>
<string name="not_connected">Niet verbonden</string>
<string name="connecting">Aan het verbinden</string>
<string name="connected">Verbonden</string>
<string name="unknown_state">Onbekende staat</string>
<string name="_unknown_">(onbekend)</string>
<string name="test">Test</string>
<string name="test_notification">Test notificatie</string>
<string name="this_is_a_test_notification_from_gadgetbridge">Dit is een test notificatie van Gadgetbridge</string>
<string name="bluetooth_is_not_supported_">Bluetooth is niet ondersteund.</string>
<string name="bluetooth_is_disabled_">Bluetooth is uitgeschakeld.</string>
<string name="tap_connected_device_for_app_mananger">Tap op het verbonden toestel voor de App beheerder</string>
<string name="tap_connected_device_for_activity">Tap op het verbonden toestel voor activiteitsweergave</string>
<string name="tap_connected_device_for_vibration">Tap op het verbonden toestel voor vibratie</string>
<string name="tap_a_device_to_connect">Tap op een toestel om te verbinden</string>
<string name="cannot_connect_bt_address_invalid_">Kan niet verbinden. Is het Bluetooth adres ongeldig?</string>
<string name="gadgetbridge_running">Gadgetbridge loopt</string>
<string name="installing_binary_d_d">Binary installeren %1$d/%2$d</string>
<string name="installation_failed_">Installatie gefaald</string>
<string name="installation_successful">Installatie succesvol</string>
<string name="firmware_install_warning">U PROBEERT EEN NIEUWE FIRMWARE TE INSTALLEREN, GA VERDER OP EIGEN RISICO.
\n
\n
\nDeze firmware is voor HW revisie: %s</string>
<string name="app_install_info">U staat op het punt om volgende app te installeren:
\n
\n
\n%1$s Versie %2$s door %3$s
\n</string>
<string name="n_a">N/B</string>
<string name="initialized">Geïnitialiseerd</string>
<string name="appversion_by_creator">%1$s door %2$s</string>
<string name="title_activity_discovery">Naar apparaten scannen</string>
<string name="discovery_stop_scanning">Stop met scannen</string>
<string name="discovery_start_scanning">Start met scannen</string>
<string name="action_discover">Nieuw toestel verbinden</string>
<string name="device_with_rssi">%1$s (%2$s)</string>
<string name="title_activity_android_pairing">Toestel koppelen</string>
<string name="android_pairing_hint">Gebruik het Android Bluetooth-venster om het toestel te koppelen.</string>
<string name="title_activity_mi_band_pairing">Koppel uw Mi Band</string>
<string name="pairing">Koppelen met %s…</string>
<string name="pairing_creating_bond_with">Koppeling maken met %1$s (%2$s)</string>
<string name="pairing_unable_to_pair_with">Niet in staat om te koppelen met %1$s (%2$s)</string>
<string name="pairing_in_progress">Bezig met koppelen: %1$s (%2$s)</string>
<string name="pairing_already_bonded">Reeds gekoppeld met %1$s (%2$s), verbinden…</string>
<string name="message_cannot_pair_no_mac">Geen MAC adres doorgegeven, kan niet koppelen.</string>
<string name="preferences_category_device_specific_settings">Toestel specifieke instellingen</string>
<string name="preferences_miband_settings">Mi Band / Amazfit instellingen</string>
<string name="preferences_amazfitbip_settings">Amazfit Bip instellingen</string>
<string name="male">Mannelijk</string>
<string name="female">Vrouwelijk</string>
<string name="other">Anders</string>
<string name="left">Links</string>
<string name="right">Rechts</string>
<string name="miband_pairing_using_dummy_userdata">Geen geldige gebruikers data ingegeven, voorlopig dummy gebruikersdata gebruiken.</string>
<string name="miband_pairing_tap_hint">Als uw Mi Band trilt en oplicht, tik een aantal keer na elkaar.</string>
<string name="appinstaller_install">Installeren</string>
<string name="discovery_connected_devices_hint">Maak uw toestel zichtbaar. Toestellen die op dit moment verbonden zijn zullen waarschijnlijk niet zichtbaar zijn. Activeer locatie (b.v. GPS) op Android 6+. Schakel Privacy Guard voor Guadgetbridge uit, anders kan uw telefoon crashen en herstarten. Als er geen toestel gevonden is na een paar minuten, probeer dan opnieuw na het heropstarten van uw mobiel toestel.</string>
<string name="discovery_note">Opmerking:</string>
<string name="candidate_item_device_image">Toestel afbeelding</string>
<string name="miband_prefs_alias">Naam</string>
<string name="pref_header_vibration_count">Vibratie nummer</string>
<string name="title_activity_sleepmonitor">Slaapmonitor</string>
<string name="pref_write_logfiles">Schrijf logbestanden</string>
<string name="initializing">Initialiseren</string>
<string name="busy_task_fetch_activity_data">Ophalen van activiteitsgegevens</string>
<string name="sleep_activity_date_range">Van %1$s aan %2$s</string>
<string name="miband_prefs_wearside">Links of rechts dragen?</string>
<string name="pref_screen_vibration_profile">Vibratie profiel</string>
<string name="vibration_profile_staccato">Staccato</string>
<string name="vibration_profile_short">Kort</string>
<string name="vibration_profile_medium">Medium</string>
<string name="vibration_profile_long">Lang</string>
<string name="vibration_profile_waterdrop">Waterdruppel</string>
<string name="vibration_profile_ring">Ring</string>
<string name="vibration_profile_alarm_clock">Alarm klok</string>
<string name="miband_prefs_vibration">Vibratie</string>
<string name="vibration_try">Proberen</string>
<string name="pref_screen_notification_profile_sms">SMS notificatie</string>
<string name="pref_header_vibration_settings">Vibratie instellingen</string>
<string name="pref_screen_notification_profile_generic">Generieke melding</string>
<string name="pref_screen_notification_profile_email">E-mail notificatie</string>
<string name="pref_screen_notification_profile_incoming_call">Inkomend gesprek melding</string>
<string name="pref_screen_notification_profile_generic_chat">Chat</string>
<string name="pref_screen_notification_profile_generic_navigation">Navigatie</string>
<string name="pref_screen_notification_profile_generic_social">Sociaal netwerk</string>
<string name="prefs_title_heartrate_measurement_interval">Hele dag HR-meting</string>
<string name="interval_one_minute">een keer per minuut</string>
<string name="interval_five_minutes">iedere 5 minuten</string>
<string name="interval_ten_minutes">iedere 10 minuten</string>
<string name="interval_thirty_minutes">iedere 30 minuten</string>
<string name="interval_one_hour">een keer per uur</string>
<string name="stats_title">Snelheidszones</string>
<string name="stats_x_axis_label">Totale minuten</string>
<string name="stats_y_axis_label">Stappen per minuut</string>
<string name="control_center_find_lost_device">Zoek verloren toestel</string>
<string name="control_center_cancel_to_stop_vibration">Annuleer om vibratie te stoppen.</string>
<string name="title_activity_charts">Uw activiteit</string>
<string name="title_activity_set_alarm">Alarmen configureren</string>
<string name="controlcenter_start_configure_alarms">Alarmen configureren</string>
<string name="title_activity_alarm_details">Alarm details</string>
<string name="alarm_sun_short">Zon</string>
<string name="alarm_mon_short">Ma</string>
<string name="alarm_tue_short">Di</string>
<string name="alarm_wed_short">Woe</string>
<string name="alarm_thu_short">Don</string>
<string name="alarm_fri_short">Vrij</string>
<string name="alarm_sat_short">Zat</string>
<string name="alarm_smart_wakeup">Slim ontwaken</string>
<string name="user_feedback_miband_set_alarms_failed">Er is een fout opgetreden bij het instellen van de alarmen. Probeer het opnieuw!</string>
<string name="user_feedback_miband_set_alarms_ok">Alarmen verzonden naar het apparaat!</string>
<string name="chart_no_data_synchronize">Geen data. Toestel synchroniseren?</string>
<string name="user_feedback_miband_activity_data_transfer">Klaar om %1$s data over te dragen van %2$s</string>
<string name="miband_prefs_fitness_goal">Doel aantal stappen per dag</string>
<string name="dbaccess_error_executing">Fout bij het uitvoeren van \'%1$s\'</string>
<string name="controlcenter_start_activitymonitor">Uw activiteit (ALPHA)</string>
<string name="cannot_connect">Kan niet verbinden: %1$s</string>
<string name="installer_activity_unable_to_find_handler">Kan geen handler vinden om dit bestand te installeren.</string>
<string name="pbw_install_handler_unable_to_install">Kan het gegeven bestand niet installeren: %1$s</string>
<string name="pbw_install_handler_hw_revision_mismatch">Kan de gegeven firmware niet installeren: het komt niet overeen met jouw Pebble\'s hardware revisie.</string>
<string name="installer_activity_wait_while_determining_status">Gelieve te wachten tijdens het bepalen van de installatie status…</string>
<string name="notif_battery_low_title">Gadget batterij laag!</string>
<string name="notif_battery_low_percent">%1$s batterij resterend: %2$s%%</string>
<string name="notif_battery_low_bigtext_last_charge_time">Laatste lading: %s
\n</string>
<string name="notif_battery_low_bigtext_number_of_charges">Aantal ladingen: %s</string>
<string name="sleepchart_your_sleep">Uw slaap</string>
<string name="weeksleepchart_sleep_a_week">Slaap per week</string>
<string name="weeksleepchart_today_sleep_description">Slaap vandaag, doel: %1$s</string>
<string name="weekstepschart_steps_a_week">Stappen per week</string>
<string name="activity_sleepchart_activity_and_sleep">Uw activiteit en slaap</string>
<string name="updating_firmware">Firmware updaten…</string>
<string name="fwapp_install_device_not_ready">Bestand kan niet geïnstalleerd worden, toestel is niet gereed.</string>
<string name="miband_fwinstaller_compatible_version">Compatibele versie</string>
<string name="miband_fwinstaller_untested_version">Niet geteste versie!</string>
<string name="fwappinstaller_connection_state">Verbinding met toestel: %1$s</string>
<string name="pbw_installhandler_pebble_firmware">Pebble Firmware %1$s</string>
<string name="pbwinstallhandler_correct_hw_revision">Correcte hardware revisie</string>
<string name="pbwinstallhandler_incorrect_hw_revision">Hardware revisie mismatch!</string>
<string name="pbwinstallhandler_app_item">%1$s (%2$s)</string>
<string name="updatefirmwareoperation_updateproblem_do_not_reboot">Probleem met firmware-overdracht. START uw Mi Band NIET OPNIEUW OP!</string>
<string name="updatefirmwareoperation_metadata_updateproblem">Probleem met de firmware metadata-overdracht</string>
<string name="updatefirmwareoperation_update_complete">Firmware installatie voltooid</string>
<string name="updatefirmwareoperation_update_complete_rebooting">Firmware installatie voltooid, opnieuw opstarten…</string>
<string name="updatefirmwareoperation_write_failed">Firmware schrijven mislukt</string>
<string name="chart_steps">Stappen</string>
<string name="calories">Calorieën</string>
<string name="distance">Afstand</string>
<string name="clock">Klok</string>
<string name="heart_rate">Hartslag</string>
<string name="battery">Batterij</string>
<string name="liveactivity_live_activity">Live activiteit</string>
<string name="weeksteps_today_steps_description">Stappen vandaag, doel: %1$s</string>
<string name="pref_title_dont_ack_transfer">Bevestig de activiteitsdata transfer niet</string>
<string name="pref_summary_dont_ack_transfers">Als de activiteitsdata niet geacked wordt naar de armband, zal deze niet gewist worden. Dit is nuttig als GB gebruikt wordt samen met andere apps.</string>
<string name="pref_summary_keep_data_on_device">Wij zullen activiteitsdata op de Mi Band houden zelfs na synchronisatie. Dit is nuttig als GB gebruikt wordt samen met andere apps.</string>
<string name="pref_title_low_latency_fw_update">Gebruik lage vertragingstijd modus voor Firmware updates</string>
<string name="pref_summary_low_latency_fw_update">Dit kan helpen op toestellen waar firmware updates falen</string>
<string name="live_activity_steps_history">Stappen geschiedenis</string>
<string name="live_activity_current_steps_per_minute">Huidige stappen/min</string>
<string name="live_activity_total_steps">Totale stappen</string>
<string name="live_activity_steps_per_minute_history">Stappen per minuut geschiedenis</string>
<string name="live_activity_start_your_activity">Start uw activiteit</string>
<string name="abstract_chart_fragment_kind_activity">Activiteit</string>
<string name="abstract_chart_fragment_kind_light_sleep">Lichte slaap</string>
<string name="abstract_chart_fragment_kind_deep_sleep">Diepe slaap</string>
<string name="abstract_chart_fragment_kind_not_worn">Niet gedragen</string>
<string name="device_not_connected">Niet verbonden.</string>
<string name="user_feedback_all_alarms_disabled">Alle alarmen uitgeschakeld</string>
<string name="pref_title_keep_data_on_device">Houd activiteitsdata op het toestel</string>
<string name="miband_fwinstaller_incompatible_version">Incompatibele firmware</string>
<string name="fwinstaller_firmware_not_compatible_to_device">Deze firmware is niet compatibel met het toestel</string>
<string name="miband_prefs_reserve_alarm_calendar">Alarmen voor te behouden voor toekomstige evenementen</string>
<string name="miband_prefs_hr_sleep_detection">Gebruik hartslag sensor om slaap detectie te verbeteren</string>
<string name="miband_prefs_device_time_offset_hours">Toestel tijdsverschuiving in uren (voor het detecteren van slaap van ploegarbeiders)</string>
<string name="miband2_prefs_dateformat">Mi2: Datum formaat</string>
<string name="dateformat_time">Tijd</string>
<string name="dateformat_date_time">Tijd &amp; datum</string>
<string name="mi2_prefs_button_actions">Knoppen acties</string>
<string name="mi2_prefs_button_actions_summary">Specificeer actie voor de Mi Band 2 knopdruk</string>
<string name="mi2_prefs_button_press_count">Aantal knopdrukken</string>
<string name="mi2_prefs_button_press_count_summary">Aantal knopdrukken nodig om een melding uit te sturen</string>
<string name="mi2_prefs_button_press_broadcast">Uit te zenden bericht</string>
<string name="mi2_prefs_button_press_broadcast_summary">Uit te zenden bericht bij het bereiken van een aantal gedefinieerde knopdrukken</string>
<string name="mi2_prefs_button_action">Activeer knop actie</string>
<string name="mi2_prefs_button_action_summary">Activeer actie na een gegeven aantal knopdrukken</string>
<string name="mi2_prefs_button_action_vibrate">Schakel band vibratie in</string>
<string name="mi2_prefs_button_action_vibrate_summary">Schakel band vibratie in als een knopactie gedetecteerd wordt</string>
<string name="mi2_prefs_button_press_count_max_delay">Maximum tijdsvertraging tussen knopdrukken</string>
<string name="mi2_prefs_button_press_count_max_delay_summary">Maximum tijdsvertraging tussen knopdrukken in milliseconden</string>
<string name="mi2_prefs_button_press_count_match_delay">Vertraging na knopactie</string>
<string name="mi2_prefs_button_press_count_match_delay_summary">Vertraag na één knopactie (nummer is button_id intent extra) of nul voor onmiddelijk</string>
<string name="mi2_prefs_goal_notification">Doel notificatie</string>
<string name="mi2_prefs_goal_notification_summary">De armband zal trillen als het doel voor het dagelijks aantal stappen is bereikt</string>
<string name="mi2_prefs_display_items">Toon items</string>
<string name="mi2_prefs_display_items_summary">Kies de items die weergegeven worden op het armbandscherm</string>
<string name="mi2_prefs_activate_display_on_lift">Activeer het display bij optilling</string>
<string name="mi2_prefs_rotate_wrist_to_switch_info">Draai pols om info te switchen</string>
<string name="mi2_prefs_do_not_disturb">Niet storen</string>
<string name="mi2_prefs_do_not_disturb_summary">De armband zal geen meldingen krijgen als hij actief is</string>
<string name="mi2_prefs_inactivity_warnings">Inactiviteitswaarschuwingen</string>
<string name="mi2_prefs_inactivity_warnings_summary">De armband zal trillen als je een tijdje inactief bent</string>
<string name="mi2_prefs_inactivity_warnings_threshold">Inactiviteits-drempel (in minuten)</string>
<string name="mi2_prefs_inactivity_warnings_dnd_summary">Schakel de inactiviteits-waarschuwing uit voor een bepaald tijdsinterval</string>
<string name="mi2_prefs_do_not_disturb_start">Start tijd</string>
<string name="mi2_prefs_do_not_disturb_end">Stop tijd</string>
<string name="automatic">Automatisch</string>
<string name="simplified_chinese">Versimpeld Chinees</string>
<string name="traditional_chinese">Traditioneel Chinees</string>
<string name="english">Engels</string>
<string name="FetchActivityOperation_about_to_transfer_since">Op het punt om data over te zetten sinds %1$s</string>
<string name="waiting_for_reconnect">Wachten om opnieuw te verbinden</string>
<string name="activity_prefs_about_you">Over jou</string>
<string name="activity_prefs_year_birth">Geboortejaar</string>
<string name="activity_prefs_gender">Geslacht</string>
<string name="activity_prefs_height_cm">Hoogte in cm</string>
<string name="activity_prefs_weight_kg">Gewicht in kg</string>
<string name="authenticating">Authenticatie</string>
<string name="authentication_required">Authenticatie vereist</string>
<string name="appwidget_text">Zzz</string>
<string name="add_widget">Widget toevoegen</string>
<string name="activity_prefs_sleep_duration">Gewenste slaapduur in uren</string>
<string name="appwidget_alarms_set">Een alarm is ingesteld voor %1$02d:%2$02d</string>
<string name="device_hw">Hardware revisie: %1$s</string>
<string name="device_fw">Firmware versie: %1$s</string>
<string name="error_creating_directory_for_logfiles">Fout tijdens het aanmaken van map voor logbestanden: %1$s</string>
<string name="DEVINFO_HR_VER">"HR: "</string>
<string name="updatefirmwareoperation_update_in_progress">Firmware-update wordt uitgevoerd</string>
<string name="updatefirmwareoperation_firmware_not_sent">Firmware niet verzonden</string>
<string name="charts_legend_heartrate">Hartslag</string>
<string name="live_activity_heart_rate">Hartslag</string>
<string name="pref_title_pebble_health_store_raw">Bewaar onbewerkte record in de database</string>
<string name="pref_summary_pebble_health_store_raw">Indien aangevinkt, wordt de data opgeslagen \"zoals ze is\" en zijn ze beschikbaar voor latere interpretatie. NB: De database zal groter zijn in dit geval!</string>
<string name="action_db_management">Database beheer</string>
<string name="title_activity_db_management">Database beheer</string>
<string name="activity_db_management_import_export_explanation">De database operaties gebruiken het volgende pad op uw toestel.
\nDit pad is toegankelijk voor andere Android applicaties en uw computer.
\nVerwacht uw geëxporteerde database daar (of plaats de database die u wil importeren) terug te vinden:</string>
<string name="activity_db_management_merge_old_title">Legacy-database verwijderen</string>
<string name="dbmanagementactivvity_cannot_access_export_path">Export pad is niet toegankelijk. Neem contact op met de ontwikkelaars.</string>
<string name="dbmanagementactivity_exported_to">Geëxporteerd naar: %1$s</string>
<string name="dbmanagementactivity_error_exporting_db">Fout bij het exporteren DB: %1$s</string>
<string name="dbmanagementactivity_error_exporting_shared">Fout bij het exporteren voorkeur: %1$s</string>
<string name="dbmanagementactivity_import_data_title">Data importeren?</string>
<string name="dbmanagementactivity_overwrite_database_confirmation">Weet u zeker dat u de huidige database wil overschrijven? Al uw huidige activiteitsgegevens (indien aanwezig) zullen verloren gaan.</string>
<string name="dbmanagementactivity_import_successful">Importeren succesvol.</string>
<string name="dbmanagementactivity_error_importing_db">Fout bij het importeren DB: %1$s</string>
<string name="dbmanagementactivity_error_importing_shared">Fout bij het importeren voorkeur: %1$s</string>
<string name="dbmanagementactivity_delete_activity_data_title">Verwijder activeitsgegevens?</string>
<string name="dbmanagementactivity_really_delete_entire_db">Weet u zeker dat u de volledige database wil verwijderen? Al uw activiteitsgegevens en informatie over uw toestellen zullen verloren gaan.</string>
<string name="dbmanagementactivity_database_successfully_deleted">Gegevens succesvol verwijderd.</string>
<string name="dbmanagementactivity_db_deletion_failed">Verwijderen database mislukt.</string>
<string name="dbmanagementactivity_delete_old_activity_db">Oude activiteitsdatabase verwijderen?</string>
<string name="dbmanagementactivity_delete_old_activitydb_confirmation">Weet u zeker dat u de oude activiteitsdatabase wil verwijderen? Activiteitsgegevens die niet geïmporteerd zijn zullen verloren gaan.</string>
<string name="dbmanagementactivity_old_activity_db_successfully_deleted">Oude activiteitsgegevens succesvol verwijderd.</string>
<string name="dbmanagementactivity_old_activity_db_deletion_failed">Oude activiteitsdatabase verwijderen mislukt.</string>
<string name="dbmanagementactivity_overwrite">Overschrijven</string>
<string name="Cancel">Annuleren</string>
<string name="Delete">Verwijderen</string>
<string name="title_activity_vibration">Vibratie</string>
<string name="title_activity_pebble_pairing">Pebble koppelen</string>
<string name="pebble_pairing_hint">Waarschijnlijk verschijnt er een koppelingsdialoogvenster op uw Android-apparaat. Als dat niet gebeurt, kijk dan tussen uw notificaties en accepteer het koppelingsverzoek. Accepteer daarna het koppelingsverzoek op uw Pebble</string>
<string name="weather_notification_label">Zorg ervoor dat deze skin is ingeschakeld in de Weermeldingen app om informatie over het weer op uw Pebble te krijgen.
\n
\nHier is geen configuratie nodig.
\n
\nU kunt de systeemweer-app van uw Pebble vanuit het app-beheer inschakelen.
\n
\nOndersteunde watchfaces geven het weer automatisch weer.</string>
<string name="pref_title_setup_bt_pairing">Schakel Bluetooth koppeling in</string>
<string name="pref_summary_setup_bt_pairing">Deactiveer dit als u problemen hebt met verbinden</string>
<string name="unit_metric">Metriek</string>
<string name="unit_imperial">Imperiaal</string>
<string name="timeformat_24h">24H</string>
<string name="timeformat_am_pm">AM/PM</string>
<string name="pref_screen_notification_profile_alarm_clock">Alarm klok</string>
<string name="activity_web_view">Webweergave activiteit</string>
<string name="StringUtils_sender">(%1$s)</string>
<string name="find_device_you_found_it">U hebt het gevonden!</string>
<string name="miband2_prefs_timeformat">Mi2: Tijdsformaat</string>
<string name="mi2_fw_installhandler_fw53_hint">U moet versie %1$s installeren vooraleer deze firmware te installeren!</string>
<string name="mi2_enable_text_notifications">Tekst notificaties</string>
<string name="mi2_enable_text_notifications_summary">Vereist firmware &gt;= 1.0.1.28 en Mili_pro.ft* geïnstalleerd te hebben.</string>
<string name="off">Uit</string>
<string name="mi2_dnd_off">Uit</string>
<string name="mi2_dnd_automatic">Automatisch (slaap detectie)</string>
<string name="mi2_dnd_scheduled">Gepland (tijdsinterval)</string>
<string name="discovery_attempting_to_pair">Proberen te koppelen met %1$s</string>
<string name="discovery_bonding_failed_immediately">Koppelen met %1$s faalde onmiddellijk.</string>
<string name="discovery_trying_to_connect_to">Proberen te verbinden met: %1$s</string>
<string name="discovery_enable_bluetooth">Schakel Bluetooth in om toestellen te vinden.</string>
<string name="kind_firmware">Firmware</string>
<string name="kind_invalid">Ongeldige data</string>
<string name="kind_font">Lettertype</string>
<string name="kind_gps">GPS Firmware</string>
<string name="kind_gps_almanac">GPS Almanak</string>
<string name="kind_gps_cep">GPS Foutcorrectie</string>
<string name="kind_resources">Middelen</string>
<string name="kind_watchface">Wijzerplaat</string>
<string name="devicetype_unknown">Onbekend apparaat</string>
<string name="devicetype_test">Test Apparaat</string>
<string name="devicetype_pebble">Pebble</string>
<string name="devicetype_miband">Mi Band</string>
<string name="devicetype_miband2">Mi Band 2</string>
<string name="devicetype_amazfit_bip">Amazfit Bip</string>
<string name="devicetype_amazfit_cor">Amazfit Cor</string>
<string name="devicetype_vibratissimo">Virbatissimo</string>
<string name="devicetype_liveview">Live beelden</string>
<string name="devicetype_hplus">HPlus</string>
<string name="devicetype_makibes_f68">Makibes F68</string>
<string name="devicetype_exrizu_k8">Exrizu K8</string>
<string name="devicetype_no1_f1">No.1 F1</string>
<string name="devicetype_teclast_h30">Teclast H30</string>
</resources>

View File

@ -48,12 +48,12 @@
<string name="title_activity_fw_app_insaller">FW/App 安装器</string>
<string name="fw_upgrade_notice">您即将安装固件 %s 代替当前在Mi Band上的固件。</string>
<string name="fw_upgrade_notice_amazfitbip">即将在您的米手表青春版(Amazfit Bip)上安装固件 %s 。
\n
\n请确保安装.gps固件然后安装.res文件最后安装.fw文件。 安装.fw文件后手表将重新启动。
\n
\n注意如果这些文件与之前安装的完全一样则不必安装.res和.gps文件。
\n
<string name="fw_upgrade_notice_amazfitbip">即将在您的米手表青春版(Amazfit Bip)上安装固件 %s 。
\n
\n请确保安装.gps固件然后安装.res文件最后安装.fw文件。 安装.fw文件后手表将重新启动。
\n
\n注意如果这些文件与之前安装的完全一样则不必安装.res和.gps文件。
\n
\n***继续需要您自担风险!</string>
<string name="fw_upgrade_notice_amazfitcor">您即将在您的米动手环(Amazfit Cor)上安装固件 %s。
\n
@ -67,7 +67,7 @@
<string name="miband_firmware_unknown_warning">此固件未经测试可能与Gadgetbridge不兼容。
\n
\n不建议把它安装到你的Mi Band</string>
<string name="miband_firmware_suggest_whitelist">如果您仍想继续并且此固件在之后能够正常工作请告知Gadgetbridge开发者将固件版本列入白名单: %s</string>
<string name="miband_firmware_suggest_whitelist">如果您仍想继续并且此固件在安装之后能够正常工作请告知Gadgetbridge开发者将固件列入白名单:%s</string>
<string name="title_activity_settings">设置</string>
@ -90,7 +90,7 @@
<string name="pref_title_language">语言</string>
<string name="pref_title_minimize_priority">隐藏 Gadgetbridge 通知</string>
<string name="pref_summary_minimize_priority_off">状态栏中的图标和锁定屏幕中的通知已开启</string>
<string name="pref_summary_minimize_priority_off">状态栏中的图标和锁定屏幕中的通知已开启</string>
<string name="pref_summary_minimize_priority_on">状态栏中的图标和锁定屏幕中的通知已被隐藏</string>
<string name="pref_header_notifications">通知</string>
@ -117,7 +117,7 @@
<string name="pref_call_privacy_mode_number">显示号码但隐藏姓名</string>
<string name="pref_call_privacy_mode_complete">隐藏姓名和号码</string>
<string name="pref_title_weather_location">天气位置</string>
<string name="pref_title_weather_location">天气位置(CM/LOS)</string>
<string name="pref_blacklist">黑名单应用</string>
<string name="pref_blacklist_calendars">黑名单列表</string>
@ -174,7 +174,7 @@
<string name="pref_summary_pebble_enable_applogs">应用程序日志将保存在Gadgetbridge中需要重新连接</string>
<string name="pref_summary_pebble_always_ack_pebblekit">这将导致发送到外部第三方应用程序的消息始终立即得到确认</string>
<string name="pref_title_pebble_enable_bgjs">启用后台JS</string>
<string name="pref_summary_pebble_enable_bgjs">启用后,允许表盘显示天气,电池等信息。</string>
<string name="pref_summary_pebble_enable_bgjs">启用后,允许表盘显示天气,电池等信息。</string>
<string name="pref_title_pebble_reconnect_attempts">尝试重新连接</string>
@ -231,7 +231,7 @@
<string name="message_cannot_pair_no_mac">没有 MAC 地址通过, 不能配对。</string>
<string name="preferences_category_device_specific_settings">设备特定设置</string>
<string name="preferences_miband_settings">小米手环/Amazfit手表设置</string>
<string name="preferences_amazfitbip_settings">米手表青春版设置</string>
<string name="preferences_amazfitbip_settings">手表青春版设置</string>
<string name="male"></string>
<string name="female"></string>
<string name="other">其它</string>
@ -273,7 +273,7 @@
<string name="interval_five_minutes">每5分钟一次</string>
<string name="interval_ten_minutes">每10分钟一次</string>
<string name="interval_thirty_minutes">每30分钟一次</string>
<string name="interval_one_hour">小时一次</string>
<string name="interval_one_hour">每小时一次</string>
<string name="stats_title">速度</string>
<string name="stats_x_axis_label">总分钟</string>
@ -335,13 +335,13 @@
<string name="distance">距离</string>
<string name="clock">时钟</string>
<string name="heart_rate">心率</string>
<string name="battery"></string>
<string name="battery"></string>
<string name="liveactivity_live_activity">实时活动数据</string>
<string name="weeksteps_today_steps_description">今天的步数, 目标:%1$s</string>
<string name="pref_title_dont_ack_transfer">不要发送活动数据</string>
<string name="pref_summary_dont_ack_transfers">如果活动数据未传输到设备,则不会被清除。 GB与其他应用程序一起使用时很有用。</string>
<string name="pref_summary_keep_data_on_device">即使在同步之后, 也会将活动数据保留在 Mi Band上。如果 GB 与其他应用程序一起使用, 这将非常有用。</string>
<string name="pref_title_low_latency_fw_update">使用低延迟模式(low-latency mode)进行固件更新</string>
<string name="pref_title_low_latency_fw_update">使用低延迟模式进行固件更新</string>
<string name="pref_summary_low_latency_fw_update">这可能对更新固件失败的设备有帮助</string>
<string name="live_activity_steps_history">步数历史</string>
@ -410,7 +410,7 @@
<string name="appwidget_text">Zzz</string>
<string name="add_widget">添加小部件</string>
<string name="activity_prefs_sleep_duration">期望的睡眠时间</string>
<string name="activity_prefs_sleep_duration">睡眠时间目标</string>
<string name="appwidget_alarms_set">已设置一个闹钟为 %1$02d:%2$02d</string>
<string name="device_hw">硬件版本:%1$s</string>
<string name="device_fw">固件版本:%1$s</string>
@ -424,8 +424,8 @@
<string name="pref_summary_pebble_health_store_raw">如果选中该复选框,则数据保持原样,并且稍后可以处理。注意:在这种情况下,数据将占用更多的空间!</string>
<string name="action_db_management">数据库管理</string>
<string name="title_activity_db_management">数据库管理</string>
<string name="activity_db_management_import_export_explanation">在您的设备上使用此路径进行数据库操作
\n它可用于其他Android应用程序和您的计算机。
<string name="activity_db_management_import_export_explanation">数据库操作会使用此路径在您的设备上进行。
\n此路径可用于其它Android应用程序和您的计算机。
\n您可以在这里找到导出的数据库或放置您要导入的数据库</string>
<string name="activity_db_management_merge_old_title">删除旧版数据库</string>
<string name="dbmanagementactivvity_cannot_access_export_path">无法访问导出路径。请与开发者联系。</string>
@ -475,7 +475,7 @@
<string name="StringUtils_sender">(%1$s)</string>
<string name="find_device_you_found_it">找到了!</string>
<string name="miband2_prefs_timeformat">小米手环2时间格式</string>
<string name="mi2_fw_installhandler_fw53_hint">您需要安装版本号为%1$s的固件在安装此固件前</string>
<string name="mi2_fw_installhandler_fw53_hint">您需要安装版本号为%1$s的固件在安装此固件前</string>
<string name="mi2_enable_text_notifications">文本通知</string>
<string name="mi2_enable_text_notifications_summary">需要已安装固件1.0.1.28 和 Mili_pro. ft * 。</string>
<string name="off"></string>
@ -504,6 +504,20 @@
<string name="devicetype_unknown">未知设备</string>
<string name="devicetype_miband">小米手环</string>
<string name="devicetype_miband2">小米手环2</string>
<string name="devicetype_amazfit_bip">米手表青春版</string>
<string name="devicetype_amazfit_bip">手表青春版</string>
<string name="devicetype_amazfit_cor">米动手环</string>
<string name="pref_title_weather">天气</string>
<string name="vibration_profile_waterdrop">水滴</string>
<string name="devicetype_test">测试设备</string>
<string name="pref_title_pebble_forcele">总是优先使用低功耗蓝牙</string>
<string name="kind_watchface">表盘</string>
<string name="appmanager_cached_watchapps_watchfaces">在内存缓冲区中的应用程序</string>
<string name="pref_title_canned_messages_set">在Pebble上升级</string>
<string name="pref_screen_vibration_profile">振动配置</string>
<string name="vibration_profile_ring">响铃</string>
<string name="mi2_prefs_button_press_broadcast">要发送的广播消息</string>
<string name="devicetype_pebble">Pebble</string>
</resources>

View File

@ -1,5 +1,14 @@
<?xml version="1.0" encoding="utf-8"?>
<changelog>
<release version="0.23.2" versioncode="116">
<change>Mi Band 1S: Fix sync problem with firmware 4.16.11.15 (probably also Mi Band 1.0.15.0 and Mi Band 1A 5.16.11.15)</change>
<change>Amazfit Cor: Fix problem with firmware >=1.0.6.27 being detected as Mi Band 2</change>
</release>
<release version="0.23.1" versioncode="115">
<change>Initial support for Omnijaws weather service</change>
<change>Amazfit Bip: Allow installation of latest gps firmware</change>
<change>Amazfit Cor: Fixes for installing newer firmware versions</change>
</release>
<release version="0.23.0" versioncode="114">
<change>Initial support for LineageOS/CyanogenMod weather provider</change>
<change>Amazfit Bip/Cor: Support for current weather temperature</change>

View File

@ -17,7 +17,7 @@ import nodomain.freeyourgadget.gadgetbridge.util.FileUtils;
@Ignore("Disabled for travis -- needs vm parameter -DMiFirmwareDir=/path/to/firmware/directory/")
public class FirmwareTest {
private static final long MAX_FILE_SIZE_BYTES = 1024 * 1024; // 1MB
private static final long MAX_FILE_SIZE_BYTES = 1024 * 1536; // 1.5MB
private static final int MI_FW_VERSION = 0; // FIXME
private static final int MI1A_FW_VERSION = 0; // FIXME
private static final int MI1S_FW1_VERSION = 0;

View File

@ -0,0 +1,3 @@
* Initial support for Omnijaws weather service
* Amazfit Bip: Allow installation of latest gps firmware
* Amazfit Cor: Fixes for installing newer firmware versions

View File

@ -0,0 +1,2 @@
* Mi Band 1S: Fix sync problem with firmware 4.16.11.15 (probably also Mi Band 1.0.15.0 and Mi Band 1A 5.16.11.15)
* Amazfit Cor: Fix problem with firmware >=1.0.6.27 being detected as Mi Band 2