diff --git a/android/app/src/main/AndroidManifestBase.xml b/android/app/src/main/AndroidManifestBase.xml
index 2dceca577..180190914 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 @@ public class MainActivity extends FlutterFragmentActivity {
}
});
}
+
+ 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 8c13d1f8d..d0a465d22 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.Build;
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 @@ public class MainActivity extends FlutterFragmentActivity {
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 @@ public class MainActivity extends FlutterFragmentActivity {
}
});
}
+
+ 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 73914c43c..49c368ec7 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.Build;
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 @@ public class MainActivity extends FlutterFragmentActivity {
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 @@ public class MainActivity extends FlutterFragmentActivity {
}
});
}
+
+ 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/assets/text/Monerocom_Release_Notes.txt b/assets/text/Monerocom_Release_Notes.txt
index 2b783ee1e..7cf786332 100644
--- a/assets/text/Monerocom_Release_Notes.txt
+++ b/assets/text/Monerocom_Release_Notes.txt
@@ -1,3 +1,3 @@
-Security and Privacy enhancements
-Usability enhancements
+Improve wallet recovery and error tolerance
+Enhance Background sync for Monero wallets
Bug fixes
\ No newline at end of file
diff --git a/assets/text/Release_Notes.txt b/assets/text/Release_Notes.txt
index 411ed609b..2f5130bea 100644
--- a/assets/text/Release_Notes.txt
+++ b/assets/text/Release_Notes.txt
@@ -1,4 +1,5 @@
-List previously used Bitcoin addresses
-Security and Privacy enhancements
-Usability enhancements
+Bitcoin transactions fixes and enhancements
+EVM wallets enhancements (Ethereum and Polygon)
+Improve wallet recovery and error tolerance
+Enhance Background sync for Monero wallets
Bug fixes
\ 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 000000000..edd04d3f4
--- /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 a83995b7d..c048775e3 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';
@@ -12,6 +14,7 @@ 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:cake_wallet/view_model/settings/tor_connection.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';
@@ -49,12 +52,39 @@ 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 (Platform.isIOS) return;
+
+ if (syncMode.type != SyncType.disabled) {
+ final isDisabled = await isBatteryOptimizationDisabled();
+
+ if (isDisabled) 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) {
diff --git a/lib/view_model/settings/sync_mode.dart b/lib/view_model/settings/sync_mode.dart
index 1153e2f32..ac3ac8717 100644
--- a/lib/view_model/settings/sync_mode.dart
+++ b/lib/view_model/settings/sync_mode.dart
@@ -9,7 +9,7 @@ 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("Unobtrusive", SyncType.unobtrusive, Duration(hours: 12)),
+ SyncMode("Aggressive", SyncType.aggressive, Duration(hours: 3)),
];
}
diff --git a/res/values/strings_ar.arb b/res/values/strings_ar.arb
index b4478be07..07d8b83a0 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 d51e044ba..3ee3e8819 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 038647f19..b0d430c36 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 7f1eaddb4..33e2422f1 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 13b43ddf5..65a3ed71a 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 ae43328b4..3b0f1e8ac 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 5d30704cc..cd45d00e5 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 5d933b725..7c4b257f9 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 aa81379ff..2dad82538 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 d95fee165..7f4d427dc 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 3d47a6cbf..57335a74e 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 7af39f7ee..5eeb3986c 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 58935efa9..3ab358562 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 dba81cad3..84752638b 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 0fe00e154..51f580d9d 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 d646c1c59..9b9648c66 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 ee3a07aee..5ebaef7b5 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 cb3fe5a74..147733c6f 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 7302850f0..7bf0318e7 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 d44958d0f..f9a284372 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 7aa29ac34..c2f57c9f2 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 a5ce0e027..f22f96364 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 f2cb15fc2..fe1fccd36 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 9d8c7ff1f..1df6ea98b 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 e39af3afa..b6ea2fe49 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 fcc8866ca..c2eb9c4df 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": "显示设置",
diff --git a/scripts/android/app_env.sh b/scripts/android/app_env.sh
index 8de5be02c..f659239e7 100644
--- a/scripts/android/app_env.sh
+++ b/scripts/android/app_env.sh
@@ -15,15 +15,15 @@ TYPES=($MONERO_COM $CAKEWALLET $HAVEN)
APP_ANDROID_TYPE=$1
MONERO_COM_NAME="Monero.com"
-MONERO_COM_VERSION="1.10.2"
-MONERO_COM_BUILD_NUMBER=74
+MONERO_COM_VERSION="1.10.3"
+MONERO_COM_BUILD_NUMBER=75
MONERO_COM_BUNDLE_ID="com.monero.app"
MONERO_COM_PACKAGE="com.monero.app"
MONERO_COM_SCHEME="monero.com"
CAKEWALLET_NAME="Cake Wallet"
-CAKEWALLET_VERSION="4.13.2"
-CAKEWALLET_BUILD_NUMBER=191
+CAKEWALLET_VERSION="4.13.3"
+CAKEWALLET_BUILD_NUMBER=192
CAKEWALLET_BUNDLE_ID="com.cakewallet.cake_wallet"
CAKEWALLET_PACKAGE="com.cakewallet.cake_wallet"
CAKEWALLET_SCHEME="cakewallet"
diff --git a/scripts/ios/app_env.sh b/scripts/ios/app_env.sh
index c7d62a40a..bb4ca77f8 100644
--- a/scripts/ios/app_env.sh
+++ b/scripts/ios/app_env.sh
@@ -13,13 +13,13 @@ TYPES=($MONERO_COM $CAKEWALLET $HAVEN)
APP_IOS_TYPE=$1
MONERO_COM_NAME="Monero.com"
-MONERO_COM_VERSION="1.10.2"
-MONERO_COM_BUILD_NUMBER=72
+MONERO_COM_VERSION="1.10.3"
+MONERO_COM_BUILD_NUMBER=73
MONERO_COM_BUNDLE_ID="com.cakewallet.monero"
CAKEWALLET_NAME="Cake Wallet"
-CAKEWALLET_VERSION="4.13.2"
-CAKEWALLET_BUILD_NUMBER=210
+CAKEWALLET_VERSION="4.13.3"
+CAKEWALLET_BUILD_NUMBER=212
CAKEWALLET_BUNDLE_ID="com.fotolockr.cakewallet"
HAVEN_NAME="Haven"
diff --git a/scripts/macos/app_env.sh b/scripts/macos/app_env.sh
index c2c7493af..49edd9acb 100755
--- a/scripts/macos/app_env.sh
+++ b/scripts/macos/app_env.sh
@@ -16,13 +16,13 @@ if [ -n "$1" ]; then
fi
MONERO_COM_NAME="Monero.com"
-MONERO_COM_VERSION="1.0.2"
-MONERO_COM_BUILD_NUMBER=4
+MONERO_COM_VERSION="1.0.3"
+MONERO_COM_BUILD_NUMBER=5
MONERO_COM_BUNDLE_ID="com.cakewallet.monero"
CAKEWALLET_NAME="Cake Wallet"
-CAKEWALLET_VERSION="1.6.2"
-CAKEWALLET_BUILD_NUMBER=52
+CAKEWALLET_VERSION="1.6.3"
+CAKEWALLET_BUILD_NUMBER=53
CAKEWALLET_BUNDLE_ID="com.fotolockr.cakewallet"
if ! [[ " ${TYPES[*]} " =~ " ${APP_MACOS_TYPE} " ]]; then
diff --git a/tool/configure.dart b/tool/configure.dart
index 140670327..b1776504f 100644
--- a/tool/configure.dart
+++ b/tool/configure.dart
@@ -526,6 +526,8 @@ import 'package:cw_core/wallet_base.dart';
import 'package:cw_core/wallet_credentials.dart';
import 'package:cw_core/wallet_info.dart';
import 'package:cw_core/wallet_service.dart';
+import 'package:hive/hive.dart';
+import 'package:web3dart/web3dart.dart';
""";
const ethereumCWHeaders = """
@@ -541,8 +543,6 @@ import 'package:cw_ethereum/ethereum_wallet.dart';
import 'package:cw_ethereum/ethereum_wallet_service.dart';
import 'package:eth_sig_util/util/utils.dart';
-import 'package:hive/hive.dart';
-import 'package:web3dart/web3dart.dart';
""";
const ethereumCwPart = "part 'cw_ethereum.dart';";
@@ -618,6 +618,8 @@ import 'package:cw_core/wallet_base.dart';
import 'package:cw_core/wallet_credentials.dart';
import 'package:cw_core/wallet_info.dart';
import 'package:cw_core/wallet_service.dart';
+import 'package:hive/hive.dart';
+import 'package:web3dart/web3dart.dart';
""";
const polygonCWHeaders = """
@@ -632,8 +634,6 @@ import 'package:cw_polygon/polygon_client.dart';
import 'package:cw_polygon/polygon_wallet.dart';
import 'package:cw_polygon/polygon_wallet_service.dart';
-import 'package:hive/hive.dart';
-import 'package:web3dart/web3dart.dart';
import 'package:eth_sig_util/util/utils.dart';
""";