From d6e10bdbd57561f51ba33be9741bdee1ba1319ca Mon Sep 17 00:00:00 2001 From: Adegoke David <64401859+Blazebrain@users.noreply.github.com> Date: Fri, 9 Feb 2024 00:11:41 +0100 Subject: [PATCH] CW-572-Disable-battery-optimization (#1285) * feat: Disable battery optimization on android * fix: Add permission to androidmanifestbase file * Increase the frequency of app running in background on aggressive mode * Revert the sync mode frequency [skip ci] * Fix translation * increase frequency to 1 hour --------- Co-authored-by: OmarHatem --- android/app/src/main/AndroidManifestBase.xml | 1 + .../cakewallet/cake_wallet/MainActivity.java | 30 ++++++++++++++ .../com/cakewallet/haven/MainActivity.java | 30 ++++++++++++++ .../java/com/monero/app/MainActivity.java | 30 ++++++++++++++ cw_core/lib/battery_optimization_native.dart | 22 ++++++++++ .../settings/connection_sync_page.dart | 41 +++++++++++++++---- lib/view_model/settings/sync_mode.dart | 2 +- res/values/strings_ar.arb | 2 + res/values/strings_bg.arb | 2 + res/values/strings_cs.arb | 2 + res/values/strings_de.arb | 2 + res/values/strings_en.arb | 2 + res/values/strings_es.arb | 2 + res/values/strings_fr.arb | 2 + res/values/strings_ha.arb | 2 + res/values/strings_hi.arb | 2 + res/values/strings_hr.arb | 2 + res/values/strings_id.arb | 2 + res/values/strings_it.arb | 2 + res/values/strings_ja.arb | 2 + res/values/strings_ko.arb | 2 + res/values/strings_my.arb | 2 + res/values/strings_nl.arb | 2 + res/values/strings_pl.arb | 2 + res/values/strings_pt.arb | 2 + res/values/strings_ru.arb | 2 + res/values/strings_th.arb | 2 + res/values/strings_tl.arb | 2 + res/values/strings_tr.arb | 2 + res/values/strings_uk.arb | 2 + res/values/strings_ur.arb | 2 + res/values/strings_yo.arb | 2 + res/values/strings_zh.arb | 2 + 33 files changed, 200 insertions(+), 8 deletions(-) create mode 100644 cw_core/lib/battery_optimization_native.dart diff --git a/android/app/src/main/AndroidManifestBase.xml b/android/app/src/main/AndroidManifestBase.xml index 2dceca577e..1801909147 100644 --- a/android/app/src/main/AndroidManifestBase.xml +++ b/android/app/src/main/AndroidManifestBase.xml @@ -8,6 +8,7 @@ + result.success(null)); + break; + case "isBatteryOptimizationDisabled": + boolean isDisabled = isBatteryOptimizationDisabled(); + handler.post(() -> result.success(isDisabled)); + break; default: handler.post(() -> result.notImplemented()); } @@ -89,4 +101,22 @@ private void getUnstoppableDomainAddress(@NonNull MethodCall call, @NonNull Meth } }); } + + private void disableBatteryOptimization() { + String packageName = getPackageName(); + PowerManager pm = (PowerManager) getSystemService(POWER_SERVICE); + if (!pm.isIgnoringBatteryOptimizations(packageName)) { + Intent intent = new Intent(); + intent.setAction(Settings.ACTION_REQUEST_IGNORE_BATTERY_OPTIMIZATIONS); + intent.setData(Uri.parse("package:" + packageName)); + startActivity(intent); + } + } + + private boolean isBatteryOptimizationDisabled() { + String packageName = getPackageName(); + PowerManager pm = (PowerManager) getSystemService(POWER_SERVICE); + return pm.isIgnoringBatteryOptimizations(packageName); + } + } \ No newline at end of file diff --git a/android/app/src/main/java/com/cakewallet/haven/MainActivity.java b/android/app/src/main/java/com/cakewallet/haven/MainActivity.java index 8c13d1f8d4..d0a465d225 100644 --- a/android/app/src/main/java/com/cakewallet/haven/MainActivity.java +++ b/android/app/src/main/java/com/cakewallet/haven/MainActivity.java @@ -14,6 +14,10 @@ import android.os.Handler; import android.os.Looper; import android.view.WindowManager; +import android.content.Intent; +import android.net.Uri; +import android.os.PowerManager; +import android.provider.Settings; import com.unstoppabledomains.resolution.DomainResolution; import com.unstoppabledomains.resolution.Resolution; @@ -55,6 +59,14 @@ private void handle(@NonNull MethodCall call, @NonNull MethodChannel.Result resu handler.post(() -> result.success("")); } break; + case "disableBatteryOptimization": + disableBatteryOptimization(); + handler.post(() -> result.success(null)); + break; + case "isBatteryOptimizationDisabled": + boolean isDisabled = isBatteryOptimizationDisabled(); + handler.post(() -> result.success(isDisabled)); + break; default: handler.post(() -> result.notImplemented()); } @@ -79,4 +91,22 @@ private void getUnstoppableDomainAddress(@NonNull MethodCall call, @NonNull Meth } }); } + + private void disableBatteryOptimization() { + String packageName = getPackageName(); + PowerManager pm = (PowerManager) getSystemService(POWER_SERVICE); + if (!pm.isIgnoringBatteryOptimizations(packageName)) { + Intent intent = new Intent(); + intent.setAction(Settings.ACTION_REQUEST_IGNORE_BATTERY_OPTIMIZATIONS); + intent.setData(Uri.parse("package:" + packageName)); + startActivity(intent); + } + } + + private boolean isBatteryOptimizationDisabled() { + String packageName = getPackageName(); + PowerManager pm = (PowerManager) getSystemService(POWER_SERVICE); + return pm.isIgnoringBatteryOptimizations(packageName); + } + } \ No newline at end of file diff --git a/android/app/src/main/java/com/monero/app/MainActivity.java b/android/app/src/main/java/com/monero/app/MainActivity.java index 73914c43c8..49c368ec70 100644 --- a/android/app/src/main/java/com/monero/app/MainActivity.java +++ b/android/app/src/main/java/com/monero/app/MainActivity.java @@ -14,6 +14,10 @@ import android.os.Handler; import android.os.Looper; import android.view.WindowManager; +import android.content.Intent; +import android.net.Uri; +import android.os.PowerManager; +import android.provider.Settings; import com.unstoppabledomains.resolution.DomainResolution; import com.unstoppabledomains.resolution.Resolution; @@ -64,6 +68,14 @@ private void handle(@NonNull MethodCall call, @NonNull MethodChannel.Result resu getWindow().clearFlags(WindowManager.LayoutParams.FLAG_SECURE); } break; + case "disableBatteryOptimization": + disableBatteryOptimization(); + handler.post(() -> result.success(null)); + break; + case "isBatteryOptimizationDisabled": + boolean isDisabled = isBatteryOptimizationDisabled(); + handler.post(() -> result.success(isDisabled)); + break; default: handler.post(() -> result.notImplemented()); } @@ -88,4 +100,22 @@ private void getUnstoppableDomainAddress(@NonNull MethodCall call, @NonNull Meth } }); } + + private void disableBatteryOptimization() { + String packageName = getPackageName(); + PowerManager pm = (PowerManager) getSystemService(POWER_SERVICE); + if (!pm.isIgnoringBatteryOptimizations(packageName)) { + Intent intent = new Intent(); + intent.setAction(Settings.ACTION_REQUEST_IGNORE_BATTERY_OPTIMIZATIONS); + intent.setData(Uri.parse("package:" + packageName)); + startActivity(intent); + } + } + + private boolean isBatteryOptimizationDisabled() { + String packageName = getPackageName(); + PowerManager pm = (PowerManager) getSystemService(POWER_SERVICE); + return pm.isIgnoringBatteryOptimizations(packageName); + } + } \ No newline at end of file diff --git a/cw_core/lib/battery_optimization_native.dart b/cw_core/lib/battery_optimization_native.dart new file mode 100644 index 0000000000..edd04d3f41 --- /dev/null +++ b/cw_core/lib/battery_optimization_native.dart @@ -0,0 +1,22 @@ +import 'package:flutter/services.dart'; + +const MethodChannel _channel = MethodChannel('com.cake_wallet/native_utils'); + +Future requestDisableBatteryOptimization() async { + try { + await _channel.invokeMethod('disableBatteryOptimization'); + } on PlatformException catch (e) { + print("Failed to disable battery optimization: '${e.message}'."); + } +} + +Future isBatteryOptimizationDisabled() async { + try { + final bool isDisabled = await _channel.invokeMethod('isBatteryOptimizationDisabled') as bool; + print('It\'s actually disabled? $isDisabled'); + return isDisabled; + } on PlatformException catch (e) { + print("Failed to check battery optimization status: '${e.message}'."); + return false; + } +} diff --git a/lib/src/screens/settings/connection_sync_page.dart b/lib/src/screens/settings/connection_sync_page.dart index bec2e62963..45d44d443e 100644 --- a/lib/src/screens/settings/connection_sync_page.dart +++ b/lib/src/screens/settings/connection_sync_page.dart @@ -1,3 +1,5 @@ +import 'dart:io'; + import 'package:cake_wallet/reactions/wallet_connect.dart'; import 'package:cake_wallet/src/screens/settings/widgets/settings_cell_with_arrow.dart'; import 'package:cake_wallet/src/screens/settings/widgets/settings_picker_cell.dart'; @@ -8,6 +10,7 @@ import 'package:cake_wallet/utils/feature_flag.dart'; import 'package:cake_wallet/utils/show_pop_up.dart'; import 'package:cake_wallet/view_model/dashboard/dashboard_view_model.dart'; import 'package:cake_wallet/view_model/settings/sync_mode.dart'; +import 'package:cw_core/battery_optimization_native.dart'; import 'package:flutter/material.dart'; import 'package:cake_wallet/routes.dart'; import 'package:cake_wallet/generated/i18n.dart'; @@ -45,12 +48,37 @@ class ConnectionSyncPage extends BasePage { if (DeviceInfo.instance.isMobile) ...[ Observer(builder: (context) { return SettingsPickerCell( - title: S.current.background_sync_mode, - items: SyncMode.all, - displayItem: (SyncMode syncMode) => syncMode.name, - selectedItem: dashboardViewModel.syncMode, - onItemSelected: dashboardViewModel.setSyncMode, - ); + title: S.current.background_sync_mode, + items: SyncMode.all, + displayItem: (SyncMode syncMode) => syncMode.name, + selectedItem: dashboardViewModel.syncMode, + onItemSelected: (syncMode) async { + dashboardViewModel.setSyncMode(syncMode); + + if (syncMode.type != SyncType.disabled) { + final isDisabled = await isBatteryOptimizationDisabled(); + + if (isDisabled || Platform.isIOS) return; + + await showPopUp( + context: context, + builder: (BuildContext dialogContext) { + return AlertWithTwoActions( + alertTitle: S.current.disableBatteryOptimization, + alertContent: S.current.disableBatteryOptimizationDescription, + leftButtonText: S.of(context).cancel, + rightButtonText: S.of(context).ok, + actionLeftButton: () => Navigator.of(dialogContext).pop(), + actionRightButton: () async { + await requestDisableBatteryOptimization(); + + Navigator.of(dialogContext).pop(); + }, + ); + }, + ); + } + }); }), const StandardListSeparator(padding: EdgeInsets.symmetric(horizontal: 24)), Observer(builder: (context) { @@ -99,7 +127,6 @@ class ConnectionSyncPage extends BasePage { ); } - Future _presentReconnectAlert(BuildContext context) async { await showPopUp( context: context, diff --git a/lib/view_model/settings/sync_mode.dart b/lib/view_model/settings/sync_mode.dart index 1153e2f328..37e400acb4 100644 --- a/lib/view_model/settings/sync_mode.dart +++ b/lib/view_model/settings/sync_mode.dart @@ -10,6 +10,6 @@ class SyncMode { static final all = [ SyncMode("Disabled", SyncType.disabled, Duration.zero), SyncMode("Unobtrusive", SyncType.unobtrusive, Duration(days: 1)), - SyncMode("Aggressive", SyncType.aggressive, Duration(hours: 6)), + SyncMode("Aggressive", SyncType.aggressive, Duration(hours: 1)), ]; } diff --git a/res/values/strings_ar.arb b/res/values/strings_ar.arb index 8ad38bc834..553262f79f 100644 --- a/res/values/strings_ar.arb +++ b/res/values/strings_ar.arb @@ -189,6 +189,8 @@ "disable_exchange": "تعطيل التبادل", "disable_fiat": "تعطيل fiat", "disable_sell": "قم بتعطيل إجراء البيع", + "disableBatteryOptimization": "تعطيل تحسين البطارية", + "disableBatteryOptimizationDescription": "هل تريد تعطيل تحسين البطارية من أجل جعل الخلفية مزامنة تعمل بحرية وسلاسة؟", "disabled": "معطلة", "discount": "وفر ${value}٪", "display_settings": "اعدادات العرض", diff --git a/res/values/strings_bg.arb b/res/values/strings_bg.arb index 1190a53cea..8d89f463be 100644 --- a/res/values/strings_bg.arb +++ b/res/values/strings_bg.arb @@ -189,6 +189,8 @@ "disable_exchange": "Деактивиране на борса", "disable_fiat": "Деактивиране на fiat", "disable_sell": "Деактивирайте действието за продажба", + "disableBatteryOptimization": "Деактивирайте оптимизацията на батерията", + "disableBatteryOptimizationDescription": "Искате ли да деактивирате оптимизацията на батерията, за да направите синхронизирането на фона да работи по -свободно и гладко?", "disabled": "Деактивирано", "discount": "Спестете ${value}%", "display_settings": "Настройки на екрана", diff --git a/res/values/strings_cs.arb b/res/values/strings_cs.arb index db6d2103cc..e81eab5704 100644 --- a/res/values/strings_cs.arb +++ b/res/values/strings_cs.arb @@ -189,6 +189,8 @@ "disable_exchange": "Zakázat směnárny", "disable_fiat": "Zakázat fiat", "disable_sell": "Zakázat akci prodeje", + "disableBatteryOptimization": "Zakázat optimalizaci baterie", + "disableBatteryOptimizationDescription": "Chcete deaktivovat optimalizaci baterie, aby se synchronizovala pozadí volně a hladce?", "disabled": "Zakázáno", "discount": "Ušetříte ${value}%", "display_settings": "Nastavení zobrazení", diff --git a/res/values/strings_de.arb b/res/values/strings_de.arb index 46c8a3c13f..3ca972af4f 100644 --- a/res/values/strings_de.arb +++ b/res/values/strings_de.arb @@ -189,6 +189,8 @@ "disable_exchange": "Exchange deaktivieren", "disable_fiat": "Fiat deaktivieren", "disable_sell": "Verkaufsaktion deaktivieren", + "disableBatteryOptimization": "Batterieoptimierung deaktivieren", + "disableBatteryOptimizationDescription": "Möchten Sie die Batterieoptimierung deaktivieren, um die Hintergrundsynchronisierung freier und reibungsloser zu gestalten?", "disabled": "Deaktiviert", "discount": "${value} % sparen", "display_settings": "Anzeigeeinstellungen", diff --git a/res/values/strings_en.arb b/res/values/strings_en.arb index a6ea6e39a3..2db7602c17 100644 --- a/res/values/strings_en.arb +++ b/res/values/strings_en.arb @@ -189,6 +189,8 @@ "disable_exchange": "Disable exchange", "disable_fiat": "Disable fiat", "disable_sell": "Disable sell action", + "disableBatteryOptimization": "Disable Battery Optimization", + "disableBatteryOptimizationDescription": "Do you want to disable battery optimization in order to make background sync run more freely and smoothly?", "disabled": "Disabled", "discount": "Save ${value}%", "display_settings": "Display settings", diff --git a/res/values/strings_es.arb b/res/values/strings_es.arb index 9e719d8126..5ca5ff4d3d 100644 --- a/res/values/strings_es.arb +++ b/res/values/strings_es.arb @@ -189,6 +189,8 @@ "disable_exchange": "Deshabilitar intercambio", "disable_fiat": "Deshabilitar fiat", "disable_sell": "Desactivar acción de venta", + "disableBatteryOptimization": "Deshabilitar la optimización de la batería", + "disableBatteryOptimizationDescription": "¿Desea deshabilitar la optimización de la batería para que la sincronización de fondo se ejecute más libremente y sin problemas?", "disabled": "Desactivado", "discount": "Ahorra ${value}%", "display_settings": "Configuración de pantalla", diff --git a/res/values/strings_fr.arb b/res/values/strings_fr.arb index b4c4d9eb61..aee967d21c 100644 --- a/res/values/strings_fr.arb +++ b/res/values/strings_fr.arb @@ -189,6 +189,8 @@ "disable_exchange": "Désactiver l'échange", "disable_fiat": "Désactiver les montants en fiat", "disable_sell": "Désactiver l'action de vente", + "disableBatteryOptimization": "Désactiver l'optimisation de la batterie", + "disableBatteryOptimizationDescription": "Voulez-vous désactiver l'optimisation de la batterie afin de faire fonctionner la synchronisation d'arrière-plan plus librement et en douceur?", "disabled": "Désactivé", "discount": "Économisez ${value}%", "display_settings": "Paramètres d'affichage", diff --git a/res/values/strings_ha.arb b/res/values/strings_ha.arb index 06b212e945..dfffa8a8b3 100644 --- a/res/values/strings_ha.arb +++ b/res/values/strings_ha.arb @@ -189,6 +189,8 @@ "disable_exchange": "Kashe musanya", "disable_fiat": "Dakatar da fiat", "disable_sell": "Kashe karbuwa", + "disableBatteryOptimization": "Kashe ingantawa baturi", + "disableBatteryOptimizationDescription": "Shin kana son kashe ingantawa baturi don yin setnc bankwali gudu da yar kyauta da kyau?", "disabled": "tsaya", "discount": "Ajiye ${value}%", "display_settings": "Nuni saituna", diff --git a/res/values/strings_hi.arb b/res/values/strings_hi.arb index f553608f79..e67b00726c 100644 --- a/res/values/strings_hi.arb +++ b/res/values/strings_hi.arb @@ -189,6 +189,8 @@ "disable_exchange": "एक्सचेंज अक्षम करें", "disable_fiat": "िएट को अक्षम करें", "disable_sell": "बेचने की कार्रवाई अक्षम करें", + "disableBatteryOptimization": "बैटरी अनुकूलन अक्षम करें", + "disableBatteryOptimizationDescription": "क्या आप बैकग्राउंड सिंक को अधिक स्वतंत्र और सुचारू रूप से चलाने के लिए बैटरी ऑप्टिमाइज़ेशन को अक्षम करना चाहते हैं?", "disabled": "अक्षम", "discount": "${value}% बचाएं", "display_settings": "प्रदर्शन सेटिंग्स", diff --git a/res/values/strings_hr.arb b/res/values/strings_hr.arb index b388df74f4..c2fee8420d 100644 --- a/res/values/strings_hr.arb +++ b/res/values/strings_hr.arb @@ -189,6 +189,8 @@ "disable_exchange": "Onemogući exchange", "disable_fiat": "Isključi, fiat", "disable_sell": "Onemogući akciju prodaje", + "disableBatteryOptimization": "Onemogući optimizaciju baterije", + "disableBatteryOptimizationDescription": "Želite li onemogućiti optimizaciju baterije kako bi se pozadinska sinkronizacija radila slobodnije i glatko?", "disabled": "Onemogućeno", "discount": "Uštedite ${value}%", "display_settings": "Postavke zaslona", diff --git a/res/values/strings_id.arb b/res/values/strings_id.arb index 84cfd8a5df..28a7df3c90 100644 --- a/res/values/strings_id.arb +++ b/res/values/strings_id.arb @@ -189,6 +189,8 @@ "disable_exchange": "Nonaktifkan pertukaran", "disable_fiat": "Nonaktifkan fiat", "disable_sell": "Nonaktifkan aksi jual", + "disableBatteryOptimization": "Nonaktifkan optimasi baterai", + "disableBatteryOptimizationDescription": "Apakah Anda ingin menonaktifkan optimasi baterai untuk membuat sinkronisasi latar belakang berjalan lebih bebas dan lancar?", "disabled": "Dinonaktifkan", "discount": "Hemat ${value}%", "display_settings": "Pengaturan tampilan", diff --git a/res/values/strings_it.arb b/res/values/strings_it.arb index 33209fb341..42f0b8d86c 100644 --- a/res/values/strings_it.arb +++ b/res/values/strings_it.arb @@ -190,6 +190,8 @@ "disable_exchange": "Disabilita scambio", "disable_fiat": "Disabilita fiat", "disable_sell": "Disabilita l'azione di vendita", + "disableBatteryOptimization": "Disabilita l'ottimizzazione della batteria", + "disableBatteryOptimizationDescription": "Vuoi disabilitare l'ottimizzazione della batteria per far funzionare la sincronizzazione in background più libera e senza intoppi?", "disabled": "Disabilitato", "discount": "Risparmia ${value}%", "display_settings": "Impostazioni di visualizzazione", diff --git a/res/values/strings_ja.arb b/res/values/strings_ja.arb index 3cb1f64f6f..f4b014909d 100644 --- a/res/values/strings_ja.arb +++ b/res/values/strings_ja.arb @@ -189,6 +189,8 @@ "disable_exchange": "交換を無効にする", "disable_fiat": "フィアットを無効にする", "disable_sell": "販売アクションを無効にする", + "disableBatteryOptimization": "バッテリーの最適化を無効にします", + "disableBatteryOptimizationDescription": "バックグラウンドシンクをより自由かつスムーズに実行するために、バッテリーの最適化を無効にしたいですか?", "disabled": "無効", "discount": "${value}%を節約", "display_settings": "表示設定", diff --git a/res/values/strings_ko.arb b/res/values/strings_ko.arb index 74afac0941..7af7376ce3 100644 --- a/res/values/strings_ko.arb +++ b/res/values/strings_ko.arb @@ -189,6 +189,8 @@ "disable_exchange": "교환 비활성화", "disable_fiat": "법정화폐 비활성화", "disable_sell": "판매 조치 비활성화", + "disableBatteryOptimization": "배터리 최적화를 비활성화합니다", + "disableBatteryOptimizationDescription": "백그라운드 동기화를보다 자유롭고 매끄럽게 실행하기 위해 배터리 최적화를 비활성화하고 싶습니까?", "disabled": "장애가 있는", "discount": "${value}% 절약", "display_settings": "디스플레이 설정", diff --git a/res/values/strings_my.arb b/res/values/strings_my.arb index 6109908c13..6cba70ab27 100644 --- a/res/values/strings_my.arb +++ b/res/values/strings_my.arb @@ -189,6 +189,8 @@ "disable_exchange": "လဲလှယ်မှုကို ပိတ်ပါ။", "disable_fiat": "Fiat ကိုပိတ်ပါ။", "disable_sell": "ရောင်းချခြင်းလုပ်ဆောင်ချက်ကို ပိတ်ပါ။", + "disableBatteryOptimization": "ဘက်ထရီ optimization ကိုပိတ်ပါ", + "disableBatteryOptimizationDescription": "နောက်ခံထပ်တူပြုခြင်းနှင့်ချောချောမွေ့မွေ့ပြုလုပ်နိုင်ရန်ဘက်ထရီ optimization ကိုသင်ပိတ်ထားလိုပါသလား။", "disabled": "မသန်စွမ်း", "discount": "${value}% ချွေတာ", "display_settings": "ပြသရန် ဆက်တင်များ", diff --git a/res/values/strings_nl.arb b/res/values/strings_nl.arb index 03090db7e3..19451da27e 100644 --- a/res/values/strings_nl.arb +++ b/res/values/strings_nl.arb @@ -189,6 +189,8 @@ "disable_exchange": "Uitwisseling uitschakelen", "disable_fiat": "Schakel Fiat uit", "disable_sell": "Verkoopactie uitschakelen", + "disableBatteryOptimization": "Schakel de batterijoptimalisatie uit", + "disableBatteryOptimizationDescription": "Wilt u de optimalisatie van de batterij uitschakelen om achtergrondsynchronisatie te laten werken, vrijer en soepeler?", "disabled": "Gehandicapt", "discount": "Bespaar ${value}%", "display_settings": "Weergave-instellingen", diff --git a/res/values/strings_pl.arb b/res/values/strings_pl.arb index bafb9f1518..74aafd014b 100644 --- a/res/values/strings_pl.arb +++ b/res/values/strings_pl.arb @@ -189,6 +189,8 @@ "disable_exchange": "Wyłącz wymianę", "disable_fiat": "Wyłącz waluty FIAT", "disable_sell": "Wyłącz akcję sprzedaży", + "disableBatteryOptimization": "Wyłącz optymalizację baterii", + "disableBatteryOptimizationDescription": "Czy chcesz wyłączyć optymalizację baterii, aby synchronizacja tła działała swobodniej i płynnie?", "disabled": "Wyłączone", "discount": "Zaoszczędź ${value}%", "display_settings": "Ustawienia wyświetlania", diff --git a/res/values/strings_pt.arb b/res/values/strings_pt.arb index 694a2be922..53d93fe758 100644 --- a/res/values/strings_pt.arb +++ b/res/values/strings_pt.arb @@ -189,6 +189,8 @@ "disable_exchange": "Desativar troca", "disable_fiat": "Desativar fiat", "disable_sell": "Desativar ação de venda", + "disableBatteryOptimization": "Desative a otimização da bateria", + "disableBatteryOptimizationDescription": "Deseja desativar a otimização da bateria para fazer a sincronização de fundo funcionar de forma mais livre e suave?", "disabled": "Desabilitado", "discount": "Economize ${value}%", "display_settings": "Configurações de exibição", diff --git a/res/values/strings_ru.arb b/res/values/strings_ru.arb index 480f3ea686..89a25db06b 100644 --- a/res/values/strings_ru.arb +++ b/res/values/strings_ru.arb @@ -189,6 +189,8 @@ "disable_exchange": "Отключить обмен", "disable_fiat": "Отключить фиат", "disable_sell": "Отключить действие продажи", + "disableBatteryOptimization": "Отключить оптимизацию батареи", + "disableBatteryOptimizationDescription": "Вы хотите отключить оптимизацию батареи, чтобы сделать фона синхронизации более свободно и плавно?", "disabled": "Отключено", "discount": "Сэкономьте ${value}%", "display_settings": "Настройки отображения", diff --git a/res/values/strings_th.arb b/res/values/strings_th.arb index fd08d332dd..ef8992329b 100644 --- a/res/values/strings_th.arb +++ b/res/values/strings_th.arb @@ -189,6 +189,8 @@ "disable_exchange": "ปิดใช้งานการแลกเปลี่ยน", "disable_fiat": "ปิดใช้งานสกุลเงินตรา", "disable_sell": "ปิดการใช้งานการขาย", + "disableBatteryOptimization": "ปิดใช้งานการเพิ่มประสิทธิภาพแบตเตอรี่", + "disableBatteryOptimizationDescription": "คุณต้องการปิดใช้งานการเพิ่มประสิทธิภาพแบตเตอรี่เพื่อให้การซิงค์พื้นหลังทำงานได้อย่างอิสระและราบรื่นมากขึ้นหรือไม่?", "disabled": "ปิดใช้งาน", "discount": "ประหยัด ${value}%", "display_settings": "การตั้งค่าการแสดงผล", diff --git a/res/values/strings_tl.arb b/res/values/strings_tl.arb index 2759eaabe8..55b6adb519 100644 --- a/res/values/strings_tl.arb +++ b/res/values/strings_tl.arb @@ -189,6 +189,8 @@ "disable_exchange": "Huwag paganahin ang palitan", "disable_fiat": "Huwag paganahin ang Fiat", "disable_sell": "Huwag paganahin ang pagkilos ng pagbebenta", + "disableBatteryOptimization": "Huwag paganahin ang pag -optimize ng baterya", + "disableBatteryOptimizationDescription": "Nais mo bang huwag paganahin ang pag -optimize ng baterya upang gawing mas malaya at maayos ang pag -sync ng background?", "disabled": "Hindi pinagana", "discount": "Makatipid ng ${value}%", "display_settings": "Mga setting ng pagpapakita", diff --git a/res/values/strings_tr.arb b/res/values/strings_tr.arb index c8af1fbd35..e6cab50272 100644 --- a/res/values/strings_tr.arb +++ b/res/values/strings_tr.arb @@ -189,6 +189,8 @@ "disable_exchange": "Borsayı devre dışı bırak", "disable_fiat": "İtibari paraları devre dışı bırak", "disable_sell": "Satış işlemini devre dışı bırak", + "disableBatteryOptimization": "Pil optimizasyonunu devre dışı bırakın", + "disableBatteryOptimizationDescription": "Arka plan senkronizasyonunu daha özgür ve sorunsuz bir şekilde çalıştırmak için pil optimizasyonunu devre dışı bırakmak istiyor musunuz?", "disabled": "Devre dışı", "discount": "%${value} tasarruf et", "display_settings": "Görüntü ayarları", diff --git a/res/values/strings_uk.arb b/res/values/strings_uk.arb index 7007ec86c9..e81d97021e 100644 --- a/res/values/strings_uk.arb +++ b/res/values/strings_uk.arb @@ -189,6 +189,8 @@ "disable_exchange": "Вимкнути exchange", "disable_fiat": "Вимкнути фиат", "disable_sell": "Вимкнути дію продажу", + "disableBatteryOptimization": "Вимкнути оптимізацію акумулятора", + "disableBatteryOptimizationDescription": "Ви хочете відключити оптимізацію акумулятора, щоб зробити фонову синхронізацію більш вільно та плавно?", "disabled": "Вимкнено", "discount": "Зекономте ${value}%", "display_settings": "Налаштування дисплея", diff --git a/res/values/strings_ur.arb b/res/values/strings_ur.arb index 5233e473b0..465fac0039 100644 --- a/res/values/strings_ur.arb +++ b/res/values/strings_ur.arb @@ -189,6 +189,8 @@ "disable_exchange": "تبادلے کو غیر فعال کریں۔", "disable_fiat": "فیاٹ کو غیر فعال کریں۔", "disable_sell": "فروخت کی کارروائی کو غیر فعال کریں۔", + "disableBatteryOptimization": "بیٹری کی اصلاح کو غیر فعال کریں", + "disableBatteryOptimizationDescription": "کیا آپ پس منظر کی مطابقت پذیری کو زیادہ آزادانہ اور آسانی سے چلانے کے لئے بیٹری کی اصلاح کو غیر فعال کرنا چاہتے ہیں؟", "disabled": "معذور", "discount": "${value}% بچائیں", "display_settings": "ڈسپلے کی ترتیبات", diff --git a/res/values/strings_yo.arb b/res/values/strings_yo.arb index 95349e63ad..c88f488cda 100644 --- a/res/values/strings_yo.arb +++ b/res/values/strings_yo.arb @@ -189,6 +189,8 @@ "disable_exchange": "Pa ilé pàṣípààrọ̀", "disable_fiat": "Pa owó tí ìjọba pàṣẹ wa lò", "disable_sell": "Ko iṣọrọ iṣọrọ", + "disableBatteryOptimization": "Mu Ifasi batiri", + "disableBatteryOptimizationDescription": "Ṣe o fẹ lati mu iṣapelo batiri si lati le ṣiṣe ayẹwo ẹhin ati laisiyonu?", "disabled": "Wọ́n tí a ti pa", "discount": "Pamọ́ ${value}%", "display_settings": "Fihàn àwọn ààtò", diff --git a/res/values/strings_zh.arb b/res/values/strings_zh.arb index 22792d307f..7e05d4471b 100644 --- a/res/values/strings_zh.arb +++ b/res/values/strings_zh.arb @@ -189,6 +189,8 @@ "disable_exchange": "禁用交换", "disable_fiat": "禁用法令", "disable_sell": "禁用卖出操作", + "disableBatteryOptimization": "禁用电池优化", + "disableBatteryOptimizationDescription": "您是否要禁用电池优化以使背景同步更加自由,平稳地运行?", "disabled": "禁用", "discount": "节省 ${value}%", "display_settings": "显示设置",