Merge branch 'master' of https://github.com/Freeyourgadget/Gadgetbridge into feature-weather

This commit is contained in:
danielegobbetti 2016-01-03 16:36:09 +01:00
commit 1f1ac8cf37
15 changed files with 425 additions and 42 deletions

View File

@ -1,11 +1,19 @@
###Changelog
####Next Version
####Version 0.7.1
* Pebble: allow reinstallation of apps in pbw-cache from App Manager (long press menu)
* Pebble: Fix regression which freezes Gadgetbridge when disconnecting via long-press menu
####Version 0.7.0
* Read upcoming events (up to 7 days in the future). Requires READ_CALENDAR permission
* Fix double SMS on Sony Android and Android 6.0
* Pebble: Support replying to SMS form the watch (canned replies)
* Pebble: Allow installing apps compiled with SDK 2.x also on the basalt platform (Time, Time Steel)
* Pebble: Fix decoding strings in appmessages from the pebble (fixes sending SMS from "Dialer for Pebble")
* Miband: reserve some alarm slots for alerting when upcoming events begin. NB: the band will vibrate at the start time of the event, android reminders are ignored
* Pebble: Support incoming reconnections when device returns from "Airplane Mode" or "Stand-By Mode"
* Pebble: Fix crash when turning off bluetooth when connected on Android 6.0
* Mi Band: reserve some alarm slots for alerting when upcoming events begin. NB: the band will vibrate at the start time of the event, android reminders are ignored
* Mi Band: Display unique devices Names, not just "MI"
* Some new and updated icons
####Version 0.6.9
@ -22,7 +30,7 @@
* Mi Band 1S: hopefully fixed connection errors (#178) Notifications probably do not work yet, though
####Version 0.6.8
* Mi Band support for Firmware upgrade/downgrade on Mi Band 1A (white LEDs, no heartrate sensor)
* Mi Band: support for Firmware upgrade/downgrade on Mi Band 1A (white LEDs, no heartrate sensor)
* Pebble: fix regression in 0.6.7 when installing pbw/pbz files from content providers (eg. download manager)
* Pebble: fix installation of pbw files on firmware 3.x when using content providers (eg. download manager)
* Pebble: fix crash on firmware 3.x when pebble requests a pbw that is not in Gadgetbridge's cache

View File

@ -1,10 +1,18 @@
The following artwork is licensed under the following licenses
Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International (CC BY-NC-SA 4.0):
ic_device_pebble.png (by xphnx)
ic_device_miband.png (by xphnx)
ic_activitytracker.png (by xphnx)
ic_watchface.png (by xphnx)
ic_device_pebble.png
ic_device_miband.png
ic_activitytracker.png
ic_watchface.png
ic_languagepack.png
ic_firmware.png
ic_watchapp.png
ic_systemapp.png
(All of the above by xphnx)
Creative Commons Attribution-NonCommercial-ShareAlike (CC BY-NC-SA):
ic_launcher.png (by Joseph Kim)
Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0):
"GET IT ON F-Droid" button by Laura Kalbag. Source: https://ind.ie/about/blog/f-droid-button/

View File

@ -15,13 +15,13 @@ need to create an account and transmit any of your data to the vendor's servers.
## Features (Pebble)
* Incoming calls notification and display (caller, phone number)
* Incoming calls notification and display
* Outgoing call display
* Reject/hangup calls
* SMS notification (sender, body)
* K-9 Mail notification support (sender, subject, preview)
* SMS notification including experimental support for 16 predefined replies
* K-9 Mail notification support
* Support for generic notifications (above filtered out)
* Dismiss individial notifications or open corresponding app on phone from the action menu (generic notifications)
* Dismiss individial notifications, mute or open corresponding app on phone from the action menu (generic notifications)
* Dismiss all notifications from the action menu (non-generic notifications)
* Music playback info (artist, album, track)
* Music control: play/pause, next track, previous track, volume up, volume down
@ -37,13 +37,6 @@ need to create an account and transmit any of your data to the vendor's servers.
## Notes about Firmware 3.x (Pebble Time, updated OG)
* Listing installed watchfaces will simply display previously installed watchapps, no matter if they are still installed or not.
* You should disable the "Stand-By-Mode" introduced in firmware 3.4.
According to pebble, this mode will disable bluetooth automatically when the
pebble does not sense motion for about 30 minutes, and then re-enable it if it
senses motion again. We do not support initiating connections from the pebble
yet, so this will leave you pebble disconnected until you connect it again
manually, and/or use even more energy by triggering a reconnect from
Gadgetbridge.
## How to use (Pebble)

View File

@ -14,8 +14,8 @@ android {
targetSdkVersion 23
// note: always bump BOTH versionCode and versionName!
versionName "0.6.9"
versionCode 35
versionName "0.7.1"
versionCode 37
}
buildTypes {
release {

View File

@ -84,8 +84,17 @@ public class AppBlacklistActivity extends Activity {
Collections.sort(packageList, new Comparator<ApplicationInfo>() {
@Override
public int compare(ApplicationInfo ai1, ApplicationInfo ai2) {
int retval = GBApplication.blacklist.contains(ai1.packageName) ? -1 : 0;
return GBApplication.blacklist.contains(ai2.packageName) ? retval+=1 : retval;
boolean blacklisted1 = GBApplication.blacklist.contains(ai1.packageName);
boolean blacklisted2 = GBApplication.blacklist.contains(ai2.packageName);
if ((blacklisted1 && blacklisted2) || (!blacklisted1 && !blacklisted2)) {
// both blacklisted or both not blacklisted = sort by alphabet
return ai1.packageName.compareTo(ai2.packageName);
} else if (blacklisted1) {
return -1;
} else {
return 1;
}
}
});
return view;

View File

@ -6,6 +6,7 @@ import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.content.SharedPreferences;
import android.net.Uri;
import android.os.Bundle;
import android.preference.PreferenceManager;
import android.support.v4.app.NavUtils;
@ -150,10 +151,13 @@ public class AppManagerActivity extends Activity {
@Override
public void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo) {
super.onCreateContextMenu(menu, v, menuInfo);
getMenuInflater().inflate(
R.menu.appmanager_context, menu);
getMenuInflater().inflate(R.menu.appmanager_context, menu);
AdapterView.AdapterContextMenuInfo acmi = (AdapterView.AdapterContextMenuInfo) menuInfo;
selectedApp = appList.get(acmi.position);
if (!selectedApp.isInCache()) {
menu.removeItem(R.id.appmanager_app_reinstall);
}
menu.setHeaderTitle(selectedApp.getName());
}
@ -161,9 +165,17 @@ public class AppManagerActivity extends Activity {
public boolean onContextItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.appmanager_app_delete:
if (selectedApp != null) {
GBApplication.deviceService().onAppDelete(selectedApp.getUUID());
GBApplication.deviceService().onAppDelete(selectedApp.getUUID());
return true;
case R.id.appmanager_app_reinstall:
File cachePath;
try {
cachePath = new File(FileUtils.getExternalFilesDir().getPath() + "/pbw-cache/" + selectedApp.getUUID() + ".pbw");
} catch (IOException e) {
LOG.warn("could not get external dir while reading pbw cache.");
return true;
}
GBApplication.deviceService().onInstallApp(Uri.fromFile(cachePath));
return true;
default:
return super.onContextItemSelected(item);

View File

@ -2,7 +2,6 @@ package nodomain.freeyourgadget.gadgetbridge.activities;
import android.app.Activity;
import android.app.ProgressDialog;
import android.bluetooth.BluetoothAdapter;
import android.bluetooth.BluetoothDevice;
import android.content.BroadcastReceiver;
import android.content.Context;
@ -35,9 +34,7 @@ import nodomain.freeyourgadget.gadgetbridge.R;
import nodomain.freeyourgadget.gadgetbridge.activities.charts.ChartsActivity;
import nodomain.freeyourgadget.gadgetbridge.adapter.GBDeviceAdapter;
import nodomain.freeyourgadget.gadgetbridge.devices.DeviceCoordinator;
import nodomain.freeyourgadget.gadgetbridge.devices.miband.MiBandConst;
import nodomain.freeyourgadget.gadgetbridge.impl.GBDevice;
import nodomain.freeyourgadget.gadgetbridge.model.DeviceType;
import nodomain.freeyourgadget.gadgetbridge.util.DeviceHelper;
import nodomain.freeyourgadget.gadgetbridge.util.GB;

View File

@ -11,6 +11,7 @@ public class GBDeviceApp {
private final String version;
private final UUID uuid;
private final Type type;
private final boolean inCache;
public GBDeviceApp(UUID uuid, String name, String creator, String version, Type type) {
this.uuid = uuid;
@ -18,6 +19,8 @@ public class GBDeviceApp {
this.creator = creator;
this.version = version;
this.type = type;
//FIXME: do not assume
this.inCache = false;
}
public GBDeviceApp(JSONObject json) {
@ -42,6 +45,12 @@ public class GBDeviceApp {
this.creator = creator;
this.version = version;
this.type = type;
//FIXME: do not assume
this.inCache = true;
}
public boolean isInCache() {
return inCache;
}
public String getName() {

View File

@ -178,6 +178,9 @@ public class PebbleIoThread extends GBDeviceIoThread {
mIsTCP = false;
BluetoothDevice btDevice = mBtAdapter.getRemoteDevice(btDeviceAddress);
ParcelUuid uuids[] = btDevice.getUuids();
if (uuids == null) {
return false;
}
for (ParcelUuid uuid : uuids) {
LOG.info("found service UUID " + uuid);
}
@ -364,7 +367,7 @@ public class PebbleIoThread extends GBDeviceIoThread {
mIsConnected = connect(gbDevice.getAddress());
}
}
if (!mIsConnected) {
if (!mIsConnected && !mQuit) {
try {
gbDevice.setState(GBDevice.State.WAITING_FOR_RECONNECT);
gbDevice.sendDeviceUpdateIntent(getContext());

View File

@ -18,6 +18,7 @@ import java.util.Random;
import java.util.SimpleTimeZone;
import java.util.UUID;
import nodomain.freeyourgadget.gadgetbridge.GBApplication;
import nodomain.freeyourgadget.gadgetbridge.deviceevents.GBDeviceEvent;
import nodomain.freeyourgadget.gadgetbridge.deviceevents.GBDeviceEventAppInfo;
import nodomain.freeyourgadget.gadgetbridge.deviceevents.GBDeviceEventAppManagement;
@ -1579,6 +1580,7 @@ public class PebbleProtocol extends GBDeviceProtocol {
icon_id = PebbleIconID.RESULT_MUTE;
break;
case 0x05:
boolean failed = true;
byte attribute_count = buf.get();
if (attribute_count > 0) {
byte attribute = buf.get();
@ -1587,16 +1589,18 @@ public class PebbleProtocol extends GBDeviceProtocol {
if (length > 64) length = 64;
byte[] reply = new byte[length];
buf.get(reply);
devEvtNotificationControl.event = GBDeviceEventNotificationControl.Event.REPLY;
devEvtNotificationControl.reply = new String(reply);
caption = "SENT";
icon_id = PebbleIconID.RESULT_SENT;
} else {
devEvtNotificationControl = null; // error
caption = "FAILED";
icon_id = PebbleIconID.RESULT_FAILED;
// FIXME: this does not belong here, but we want at least check if there is no chance at all to send out the SMS later before we report success
String phoneNumber = GBApplication.getIDSenderLookup().lookup(id);
if (phoneNumber != null) {
devEvtNotificationControl.event = GBDeviceEventNotificationControl.Event.REPLY;
devEvtNotificationControl.reply = new String(reply);
caption = "SENT";
icon_id = PebbleIconID.RESULT_SENT;
failed = false;
}
}
} else {
}
if (failed) {
caption = "FAILED";
icon_id = PebbleIconID.RESULT_FAILED;
devEvtNotificationControl = null; // error

View File

@ -1,5 +1,8 @@
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android" >
<item
android:id="@+id/appmanager_app_reinstall"
android:title="@string/appmananger_app_reinstall"/>
<item
android:id="@+id/appmanager_app_delete"
android:title="@string/appmananger_app_delete"/>

View File

@ -94,8 +94,8 @@
<string name="male">masculino</string>
<string name="female">femenino</string>
<string name="other">otro</string>
<string name="left">zurdo</string>
<string name="right">diestro</string>
<string name="left">izquierda</string>
<string name="right">derecha</string>
<string name="miband_pairing_using_dummy_userdata">No se han proporcionado datos de usuario válidos, se usarán datos de usuario por defecto.</string>
<string name="miband_pairing_tap_hint">Cuando tu MiBand vibre y parpadee, púlsala repetidas veces.</string>
<string name="appinstaller_install">Instalar</string>
@ -114,7 +114,7 @@
<string name="initializing">iniciando</string>
<string name="busy_task_fetch_activity_data">Recuperando datos de actividad</string>
<string name="sleep_activity_date_range">Desde %1$s a %2$s</string>
<string name="miband_prefs_wearside">¿Zurdo o diestro?</string>
<string name="miband_prefs_wearside">¿En derecha o en izquierda?</string>
<string name="pref_screen_vibration_profile">Perfil de vibración</string>
<string name="vibration_profile_staccato">Muy corto</string>
<string name="vibration_profile_short">Corto</string>
@ -199,4 +199,5 @@
<string name="miband_fwinstaller_incompatible_version">Firmware incompatible</string>
<string name="fwinstaller_firmware_not_compatible_to_device">Este firmware no es compatible con tu dispositivo</string>
<string name="miband_prefs_reserve_alarm_calendar">Reserva de alarmas para próximos eventos</string>
<string name="waiting_for_reconnect">esperando reconexión</string>
</resources>

View File

@ -0,0 +1,203 @@
<?xml version='1.0' encoding='UTF-8'?>
<resources>
<string name="app_name">Gadgetbridge</string>
<string name="title_activity_controlcenter">Gadgetbridge</string>
<string name="action_settings">Ustawienia</string>
<string name="action_debug">Usuń błąd</string>
<string name="action_quit">Zakończ</string>
<string name="controlcenter_fetch_activity_data">Synchronizuj</string>
<string name="controlcenter_start_sleepmonitor">Monitor snu (ALPHA)</string>
<string name="controlcenter_find_device">Odnajdź zagubione urządzenie</string>
<string name="controlcenter_take_screenshot">Zrób printscreen</string>
<string name="controlcenter_disconnect">Rozłącz</string>
<string name="title_activity_debug">Usuń błąd</string>
<!--Strings related to AppManager-->
<string name="title_activity_appmanager">Zarządzanie aplikacjami</string>
<string name="appmananger_app_delete">Usuń</string>
<!--Strings related to AppBlacklist-->
<string name="title_activity_appblacklist">Czarna lista powiadomień</string>
<!--Strings related to FwAppInstaller-->
<string name="title_activity_fw_app_insaller">Instalator FW/Aplikacji</string>
<string name="fw_upgrade_notice">Masz zamiar zainstalować firmware %s zamiast aktualnie zainstalowanego na twoim Mi Band</string>
<string name="miband_firmware_known">Ten firmware został przetestowany i jest zgodny z Gadgetbridge.</string>
<string name="miband_firmware_unknown_warning">Ten firmware nie jest przetestowany i może nie być zgodny z Gadgetbridge.\n\n Nie zalecamy wgrywania na twój Mi Band!</string>
<string name="miband_firmware_suggest_whitelist">Jeśli nadal chcesz kontynuować i po instalacji wszystko działa prawidłowo, proszę powiadom programistów Gadgetbridge by dodali wersję firmware: %s do białej listy.</string>
<!--Strings related to Settings-->
<string name="title_activity_settings">Ustawienia</string>
<string name="pref_header_general">Ustawienia ogólne</string>
<string name="pref_title_general_autoconnectonbluetooth">Połącz z urządzeniem gdy Bluetooth jest włączone</string>
<string name="pref_title_audo_player">Domyślny odtwarzacz muzyki</string>
<string name="pref_default">Domyślny</string>
<string name="pref_header_datetime">Data i godzina</string>
<string name="pref_title_datetime_syctimeonconnect">Synchronizuj czas</string>
<string name="pref_summary_datetime_syctimeonconnect">Synchronizuj czas urządzenia podczas połączenia gdy czas lub strefa czasowa zmienia się na Androidzie</string>
<string name="pref_header_notifications">Powiadomienia</string>
<string name="pref_title_notifications_repetitions">Powtórzenia</string>
<string name="pref_title_notifications_call">Połączenia</string>
<string name="pref_title_notifications_sms">SMS</string>
<string name="pref_title_notifications_k9mail">K9-Mail</string>
<string name="pref_title_notifications_pebblemsg">Wiadomości Pebble</string>
<string name="pref_summary_notifications_pebblemsg">Obsługa aplikacji które wysyłają powiadomienia do Pebble przez Intent. Może być użyte do konwersacji</string>
<string name="pref_title_notifications_generic">Obsługa ogólnych powiadomień</string>
<string name="pref_title_whenscreenon">... także gdy ekran jest włączony</string>
<string name="always">zawsze</string>
<string name="when_screen_off">gdy ekran jest wyłączony</string>
<string name="never">nigdy</string>
<string name="pref_blacklist">Czarna lista aplikacji</string>
<string name="pref_title_canned_replies">Odrzucone odpowiedzi</string>
<string name="pref_header_development">Ustawienia programisty</string>
<string name="pref_title_development_miaddr">Adres Mi Band</string>
<string name="pref_title_pebble_settings">Ustawienia Pebble</string>
<string name="pref_title_enable_pebblekit">Zezwól zewnętrznym aplikacjom Android na dostęp</string>
<string name="pref_summary_enable_pebblekit">Włącz eksperymentalną obsługę aplikacji android przez PebbleKit</string>
<string name="pref_title_pebble_forceprotocol">Wymuś protokół komunikacji</string>
<string name="pref_summary_pebble_forceprotocol">Ta opcja wymusza użycie najnowszego protokołu powiadomień w zależności od wersji firmware. WŁĄCZ JEDYNIE JEŚLI WIESZ CO ROBISZ!</string>
<string name="pref_title_pebble_forceuntested">Włącz nietestowane funkcje</string>
<string name="pref_summary_pebble_forceuntested">Włącz nie testowane funkcje. WŁĄCZ JEDYNIE JEŚLI WIESZ CO ROBISZ!</string>
<string name="pref_title_pebble_reconnect_attempts">Próby ponownego połączenia</string>
<string name="not_connected">nie połączony</string>
<string name="connecting">łącze</string>
<string name="connected">połączony</string>
<string name="unknown_state">nieznany stan</string>
<string name="connectionstate_hw_fw">Wersja hardware: %1$s FW: %2$s</string>
<string name="connectionstate_fw">Wersja firmware: %1$s</string>
<string name="_unknown_">(nieznane)</string>
<string name="test">Test</string>
<string name="test_notification">Test powiadomień</string>
<string name="this_is_a_test_notification_from_gadgetbridge">To jest testowe powiadomienie z Gadgetbridge</string>
<string name="bluetooth_is_not_supported_">Bluetooth nie jest obsługiwane</string>
<string name="bluetooth_is_disabled_">Bluetooth jest wyłączone</string>
<string name="tap_connected_device_for_app_mananger">Kliknij podłączone urządzenia dla zarządzania aplikacjami</string>
<string name="tap_a_device_to_connect">kliknij urządzenie by połączyć</string>
<string name="cannot_connect_bt_address_invalid_">Nie można połączyć. Adres BT nieprawidłowy?</string>
<string name="gadgetbridge_running">Gadgetbridge działa</string>
<string name="installing_binary_d_d">Instalowanie binarki %1$d/%2$d</string>
<string name="installation_failed_">Instalacja nie powiodła się</string>
<string name="installation_successful">Instalacja powiodła się</string>
<string name="firmware_install_warning">MASZ ZAMIAR ZAINSTALOWAĆ FIRMWARE, POSTĘPUJ NA WŁASNĄ ODPOWIEDZIALNOŚĆ \n\n\n Ten firmware jest dla wersji: %s hardware</string>
<string name="app_install_info">Zamierzasz zainstalować poniższą aplikacje :\n\n\n%1$s wersja %2$s przez %3$s\n</string>
<string name="n_a">Nie dostępne</string>
<string name="initialized">rozpoczęty</string>
<string name="appversion_by_creator">%1$s przez %2$s</string>
<string name="title_activity_discovery">Wykrywanie urządzeń</string>
<string name="discovery_stop_scanning">Przerwij wyszukiwanie</string>
<string name="discovery_start_scanning">Rozpocznij wyszukiwanie</string>
<string name="action_discover">Podłącz nowe urządzenie</string>
<string name="device_with_rssi">%1$s (%2$s)</string>
<string name="title_activity_android_pairing">sparuj urządzenie</string>
<string name="android_pairing_hint">Użyj parowania bluetooth na androidzie by sparować urządzenie.</string>
<string name="title_activity_mi_band_pairing">Sparuj swoje Mi Band</string>
<string name="miband_pairing">Parowanie z %s…</string>
<string name="message_cannot_pair_no_mac">Żaden mac nie przeszedł, nie można sparować.</string>
<string name="preferences_category_device_specific_settings">Ustawienia danego urządzenia</string>
<string name="preferences_miband_settings">Ustawienia Mi Band</string>
<string name="male">mężczyzna</string>
<string name="female">kobieta</string>
<string name="other">inne</string>
<string name="left">lewa</string>
<string name="right">prawa</string>
<string name="miband_pairing_using_dummy_userdata">Brak prawidłowych danych użytkownika, używam danych zastępczych na ten moment.</string>
<string name="miband_pairing_tap_hint">Gdy twój Mi Band wibruje i błyska, stuknij go kilka razy pod rząd.</string>
<string name="appinstaller_install">instaluj</string>
<string name="discovery_connected_devices_hint">Uwidocznij swoje urządzenie. Aktualnie połączone urządzenia prawdopodobnie nie będą znalezione.</string>
<string name="discovery_note">Uwaga</string>
<string name="candidate_item_device_image">Obraz urządzenia</string>
<string name="miband_prefs_about_you">O tobie</string>
<string name="miband_prefs_alias">Nazwisko/Pseudonim</string>
<string name="miband_prefs_year_birth">Data urodzenia</string>
<string name="miband_prefs_gender">Płeć</string>
<string name="miband_prefs_height_cm">Wzrost w cm</string>
<string name="miband_prefs_weight_kg">Waga w kg</string>
<string name="pref_header_vibration_count">Liczba wibracji</string>
<string name="title_activity_sleepmonitor">Monitor snu</string>
<string name="pref_write_logfiles">Zapisuj logi (wymaga restartu)</string>
<string name="initializing">Uruchamianie</string>
<string name="busy_task_fetch_activity_data">Pobieranie danych aktywności</string>
<string name="sleep_activity_date_range">Od %1$s do %2$s</string>
<string name="miband_prefs_wearside">Nosisz na prawej czy lewej?</string>
<string name="pref_screen_vibration_profile">Profil wibracji</string>
<string name="vibration_profile_staccato">Słabe</string>
<string name="vibration_profile_short">Krótkie</string>
<string name="vibration_profile_medium">Średnie</string>
<string name="vibration_profile_long">Długie</string>
<string name="vibration_profile_waterdrop">Kropla wody</string>
<string name="vibration_profile_ring">Dzwoń</string>
<string name="vibration_profile_alarm_clock">Budzik</string>
<string name="miband_prefs_vibration">Wibracja</string>
<string name="pref_screen_notification_profile_sms">Powiadomienie SMS</string>
<string name="pref_header_vibration_settings">Ustawienia wibracji</string>
<string name="pref_screen_notification_profile_generic">Ogólne powiadomienia</string>
<string name="pref_screen_notification_profile_pebblemsg">Powiadomienia Pebble</string>
<string name="pref_screen_notification_profile_k9mail">Powiadomienia K9 Mail</string>
<string name="pref_screen_notification_profile_incoming_call">Powiadomienia o połaczeniach przychodzących</string>
<string name="control_center_find_lost_device">Odnajdź zagubione urządzenie</string>
<string name="control_center_cancel_to_stop_vibration">Anuluj by przerwać wibracje.</string>
<string name="title_activity_charts">Twoja aktywność</string>
<string name="title_activity_set_alarm">Konfiguruj alarmy</string>
<string name="controlcenter_start_configure_alarms">Konfiguruj alarmy</string>
<string name="title_activity_alarm_details">Szczegóły alarmu</string>
<string name="alarm_sun_short">Niedź</string>
<string name="alarm_mon_short">Pon</string>
<string name="alarm_tue_short">Wto</string>
<string name="alarm_wed_short">Śro</string>
<string name="alarm_thu_short">Czw</string>
<string name="alarm_fri_short">Pią</string>
<string name="alarm_sat_short">Sob</string>
<string name="alarm_smart_wakeup">Inteligentna pobudka</string>
<string name="user_feedback_miband_set_alarms_failed">Błąd podczas ustawiania alarmu, proszę spróbuj ponownie!</string>
<string name="user_feedback_miband_set_alarms_ok">Alarmy wysłane do urządzenia</string>
<string name="chart_no_data_synchronize">Brak danych, Synchronizować urządzenie?</string>
<string name="user_feedback_miband_activity_data_transfer">Zamierzam przesłać %1$s danych,rozpoczynając od %2$s</string>
<string name="miband_prefs_fitness_goal">Cel kroków na każdy dzień</string>
<string name="dbaccess_error_executing">Błąd przetwarzania \'%1$s\' </string>
<string name="controlcenter_start_activitymonitor">Twoja aktywność (ALPHA)</string>
<string name="cannot_connect">Nie można połączyć: %1$s</string>
<string name="installer_activity_unable_to_find_handler">Nie można znaleźć procedury by zainstalować ten plik.</string>
<string name="pbw_install_handler_unable_to_install">Nie można zainstalować podanego pliku : %1$s</string>
<string name="pbw_install_handler_hw_revision_mismatch">Nie możliwa instalacja firmware: nie odpowiada wersji hardware twojego Pebble.</string>
<string name="installer_activity_wait_while_determining_status">Proszę czekać podczas określania statusu instalacji...</string>
<string name="notif_battery_low_title">Bateria prawie wyładowana</string>
<string name="notif_battery_low_percent">%1$s pozostało baterii: %2$s%%</string>
<string name="notif_battery_low_bigtext_last_charge_time">Ostatnio ładowano: %s \n</string>
<string name="notif_battery_low_bigtext_number_of_charges">Liczba ładowań: %s</string>
<string name="sleepchart_your_sleep">Czas spania</string>
<string name="weekstepschart_steps_a_week">Liczba kroków tygodniowo</string>
<string name="activity_sleepchart_activity_and_sleep">Twoja aktywność i sen</string>
<string name="updating_firmware">Aktualizacja Firmware...</string>
<string name="fwapp_install_device_not_ready">Plik nie może być zainstalowany, urządzenie nie gotowe.</string>
<string name="miband_installhandler_miband_firmware">Firmware Mi Band %1$s</string>
<string name="miband_fwinstaller_compatible_version">Zgodna wersja</string>
<string name="miband_fwinstaller_untested_version">Nietestowana wersja!</string>
<string name="fwappinstaller_connection_state">Połączenie z urządzeniem %1$s</string>
<string name="pbw_installhandler_pebble_firmware">Firmware Pebble %1$s</string>
<string name="pbwinstallhandler_correct_hw_revision">Prawidłowa wersja hardware</string>
<string name="pbwinstallhandler_incorrect_hw_revision">Niezgodność wersji hardware!</string>
<string name="pbwinstallhandler_app_item">%1$s (%2$s)</string>
<string name="updatefirmwareoperation_updateproblem_do_not_reboot">Problem podczas przesyłania firmware. NIE RESTARTUJ swojego Mi Band!</string>
<string name="updatefirmwareoperation_metadata_updateproblem">Problem z transferem metadanych firmware</string>
<string name="updatefirmwareoperation_update_complete">Instalacja firmware zakończona</string>
<string name="updatefirmwareoperation_update_complete_rebooting">Instalacja firmware zakończona, restart urządzenia</string>
<string name="updatefirmwareoperation_write_failed">Instalacja firmware nie powiodła się</string>
<string name="chart_steps">Kroki</string>
<string name="liveactivity_live_activity">Ostatnia aktywność</string>
<string name="weeksteps_today_steps_description">Kroków dziś, cel: %1$s</string>
<string name="pref_summary_dont_ack_transfers">Gdy dane aktywności nie są przesłane na opaskę, wtedy nie będą usuwane. Przydatne gdy Gadgetbridge jest używany wraz z innymi aplikacjami</string>
<string name="pref_summary_keep_data_on_device">Dane aktywności będą zachowane na Mi Band nawet po synchronizacji. Przydatne gdy Gadgetbridge jest używany z innymi aplikacjami.</string>
<string name="pref_title_dont_ack_transfer">Nie wysyłaj danych aktywności</string>
<string name="live_activity_steps_history">Historia kroków</string>
<string name="live_activity_current_steps_per_minute">Aktualnie kroków/min</string>
<string name="live_activity_total_steps">Kroków łącznie</string>
<string name="live_activity_steps_per_minute_history">Historia kroków na minutę</string>
<string name="live_activity_start_your_activity">Rozpocznij aktywność</string>
<string name="abstract_chart_fragment_kind_activity">Aktywność</string>
<string name="abstract_chart_fragment_kind_light_sleep">Płytki sen</string>
<string name="abstract_chart_fragment_kind_deep_sleep">Głęboki sen</string>
<string name="abstract_chart_fragment_kind_not_worn">Niezałożona</string>
<string name="device_not_connected">Nie połączono</string>
<string name="user_feedback_all_alarms_disabled">Wszystkie alarmy wyłączono</string>
<string name="pref_title_keep_data_on_device">Zachowaj dane aktywności na urządzeniu</string>
<string name="miband_fwinstaller_incompatible_version">Niekompatybilny firmware</string>
<string name="fwinstaller_firmware_not_compatible_to_device">Ten firmware nie jest kompatybilny z urządzeniem</string>
<string name="miband_prefs_reserve_alarm_calendar">Alarmy zarezerwowane dla nadchodzących zdarzeń</string>
<string name="waiting_for_reconnect">oczekiwanie na ponowne połaczenie</string>
</resources>

View File

@ -0,0 +1,132 @@
<?xml version='1.0' encoding='UTF-8'?>
<resources>
<string name="app_name">Gadgetbridge</string>
<string name="title_activity_controlcenter">Gadgetbridge</string>
<string name="action_settings">Cài đặt</string>
<string name="action_debug">Dò lỗi</string>
<string name="action_quit">Thoát</string>
<string name="controlcenter_fetch_activity_data">Đồng bộ</string>
<string name="controlcenter_start_sleepmonitor">Giám sát giấc ngủ (ALPHA)</string>
<string name="controlcenter_find_device">Tìm thiết bị thất lạc...</string>
<string name="controlcenter_take_screenshot">Chụp ảnh màn hình</string>
<string name="controlcenter_disconnect">Huỷ kết nối</string>
<string name="title_activity_debug">Dò lỗi</string>
<!--Strings related to AppManager-->
<string name="title_activity_appmanager">Trình quản lý ứng dụng</string>
<string name="appmananger_app_delete">Xoá</string>
<!--Strings related to AppBlacklist-->
<string name="title_activity_appblacklist">Danh sách đen thông báo</string>
<!--Strings related to FwAppInstaller-->
<string name="title_activity_fw_app_insaller">Trình cài đặt FW/ứng dụng</string>
<string name="fw_upgrade_notice">Bạn sắp cài đặt phần cứng %s thay cho phiên bản hiện thời trên Mi Band của bạn.</string>
<!--Strings related to Settings-->
<string name="title_activity_settings">Cài đặt</string>
<string name="pref_header_general">Cài đặt tổng quát</string>
<string name="pref_default">Mặc định</string>
<string name="pref_header_datetime">Ngày giờ</string>
<string name="pref_title_datetime_syctimeonconnect">Đồng bộ giờ</string>
<string name="pref_summary_datetime_syctimeonconnect">Đồng bộ giờ cho thiết bị khi kết nối và khi giờ hoặc múi giờ thay đổi trên Android.</string>
<string name="pref_header_notifications">Thông báo</string>
<string name="pref_title_notifications_repetitions">Lặp lại</string>
<string name="pref_title_notifications_call">Các cuộc gọi</string>
<string name="pref_title_notifications_sms">SMS</string>
<string name="pref_title_notifications_k9mail">K9-Mail</string>
<string name="pref_title_notifications_pebblemsg">Tin nhắn Pebble</string>
<string name="always">luôn luôn</string>
<string name="when_screen_off">khi tắt màn hình</string>
<string name="never">không bao giờ</string>
<string name="pref_blacklist">Ứng dụng trong Danh sách đen</string>
<string name="pref_header_development">Tuỳ chọn cho Nhà phát triển</string>
<string name="pref_title_development_miaddr">Địa chỉ Mi Band</string>
<string name="pref_title_pebble_settings">Cài đặt Pebble</string>
<string name="pref_title_enable_pebblekit">Cho phép ứng dụng Android bên thứ 3 quyền truy cập</string>
<string name="not_connected">chưa kết nối</string>
<string name="connecting">đang kết nối</string>
<string name="connected">đã kết nối</string>
<string name="unknown_state">không rõ tình trạng</string>
<string name="connectionstate_hw_fw">HW: %1$s FW: %2$s</string>
<string name="connectionstate_fw">FW: %1$s</string>
<string name="_unknown_">(không rõ)</string>
<string name="test">Kiểm tra</string>
<string name="test_notification">Kiểm tra thông báo</string>
<string name="this_is_a_test_notification_from_gadgetbridge">Đây là một kiểm tra thông báo từ Gadgetbridge</string>
<string name="bluetooth_is_not_supported_">Không hỗ trợ Bluetooth.</string>
<string name="bluetooth_is_disabled_">Đã tắt Bluetooth.</string>
<string name="tap_connected_device_for_app_mananger">chạm vào thiết bị đã kết nối để chạy Trình quản lý ứng dụng</string>
<string name="tap_a_device_to_connect">chạm vào một thiết bị để kết nối</string>
<string name="cannot_connect_bt_address_invalid_">Không thể kết nối. Địa chỉ BT không hợp lệ?</string>
<string name="gadgetbridge_running">Gadgetbridge đang chạy</string>
<string name="installing_binary_d_d">đang cài phần mềm chạy %1$d/%2$d</string>
<string name="installation_failed_">cài đặt thất bại!</string>
<string name="installation_successful">cài đặt thành công</string>
<string name="n_a">N/A</string>
<string name="initialized">đã khởi chạy</string>
<string name="appversion_by_creator">%1$s bởi %2$s</string>
<string name="title_activity_discovery">Dò tìm thiết bị</string>
<string name="discovery_stop_scanning">Dừng quét</string>
<string name="discovery_start_scanning">Bắt đầu dò tìm</string>
<string name="action_discover">Kết nối thiết bị mới</string>
<string name="device_with_rssi">%1$s (%2$s)</string>
<string name="title_activity_android_pairing">Ghép đôi thiết bị</string>
<string name="title_activity_mi_band_pairing">Ghép đôi Mi Band</string>
<string name="miband_pairing">Đang ghép đôi với %s…</string>
<string name="message_cannot_pair_no_mac">không thể kiểm tra địa chỉ mac, không thể ghép đôi.</string>
<string name="preferences_category_device_specific_settings">Cài đặt cụ thể cho thiết bị</string>
<string name="preferences_miband_settings">Cài đặt Mi Band</string>
<string name="male">nam</string>
<string name="female">nữ</string>
<string name="other">khác</string>
<string name="left">trái</string>
<string name="right">phải</string>
<string name="appinstaller_install">Cài đặt</string>
<string name="discovery_note">Ghi chú:</string>
<string name="candidate_item_device_image">Ảnh thiết bị</string>
<string name="miband_prefs_about_you">Thông tin về bạn</string>
<string name="miband_prefs_alias">Tên/Bí danh</string>
<string name="miband_prefs_year_birth">Năm sinh</string>
<string name="miband_prefs_gender">Giới tính</string>
<string name="miband_prefs_height_cm">Chiều cao bằng cm</string>
<string name="miband_prefs_weight_kg">Trọng lượng bằng kg</string>
<string name="title_activity_sleepmonitor">Trình giám sát giấc ngủ</string>
<string name="pref_write_logfiles">Ghi tập tin nhật ký (cần khởi động lại)</string>
<string name="initializing">đang khởi chạy</string>
<string name="sleep_activity_date_range">Từ %1$s đến %2$s</string>
<string name="miband_prefs_wearside">Đeo bên trái hay phải?</string>
<string name="vibration_profile_short">Ngắn</string>
<string name="vibration_profile_medium">Trung bình</string>
<string name="vibration_profile_long">Dài</string>
<string name="pref_screen_notification_profile_sms">Thông báo SMS</string>
<string name="pref_header_vibration_settings">Cài đặt rung</string>
<string name="pref_screen_notification_profile_pebblemsg">Thông báo Pebble</string>
<string name="pref_screen_notification_profile_k9mail">Thông báo K9 Mail</string>
<string name="pref_screen_notification_profile_incoming_call">Thông báo cuộc gọi đến</string>
<string name="control_center_find_lost_device">Tìm thiết bị thất lạc</string>
<string name="control_center_cancel_to_stop_vibration">Huỷ để ngừng rung.</string>
<string name="title_activity_charts">Hoạt động của bạn</string>
<string name="title_activity_set_alarm">Cấu hình báo thức</string>
<string name="controlcenter_start_configure_alarms">Cấu hình báo thức</string>
<string name="title_activity_alarm_details">Chi tiết báo thức</string>
<string name="alarm_sun_short">CN</string>
<string name="alarm_mon_short">T2</string>
<string name="alarm_tue_short">T3</string>
<string name="alarm_wed_short">T4</string>
<string name="alarm_thu_short">T5</string>
<string name="alarm_fri_short">T6</string>
<string name="alarm_sat_short">T7</string>
<string name="pbwinstallhandler_app_item">%1$s (%2$s)</string>
<string name="chart_steps">Số bước</string>
<string name="live_activity_steps_history">Lịch sử bước chân</string>
<string name="live_activity_current_steps_per_minute">Số bước/phút hiện thời</string>
<string name="live_activity_total_steps">Tổng số bước</string>
<string name="live_activity_steps_per_minute_history">Lịch sử số bước trên phút</string>
<string name="live_activity_start_your_activity">Bắt đầu hoạt động</string>
<string name="abstract_chart_fragment_kind_activity">Hoạt động</string>
<string name="abstract_chart_fragment_kind_light_sleep">Giấc ngủ nông</string>
<string name="abstract_chart_fragment_kind_deep_sleep">Giấc ngủ sâu</string>
<string name="abstract_chart_fragment_kind_not_worn">Không đeo</string>
<string name="device_not_connected">Không kết nối.</string>
<string name="user_feedback_all_alarms_disabled">Đã tắt hết báo thức</string>
<string name="pref_title_keep_data_on_device">Giữ dữ liệu hoạt động trên thiết bị</string>
<string name="miband_fwinstaller_incompatible_version">Phần cứng không tương thích</string>
<string name="fwinstaller_firmware_not_compatible_to_device">Phần cứng này không tương thích với thiết bị</string>
</resources>

View File

@ -216,4 +216,5 @@
<string name="fwinstaller_firmware_not_compatible_to_device">This firmware is not compatible with the device</string>
<string name="miband_prefs_reserve_alarm_calendar">Alarms to reserve for upcoming events</string>
<string name="waiting_for_reconnect">waiting for reconnect</string>
<string name="appmananger_app_reinstall">Reinstall</string>
</resources>