Merge branch 'main' of https://github.com/cake-tech/cake_wallet into CW-519-tor

This commit is contained in:
fosse 2024-02-14 14:36:34 -05:00
commit 529be42f23
39 changed files with 225 additions and 29 deletions

View file

@ -8,6 +8,7 @@
<uses-permission android:name="android.permission.WRITE_INTERNAL_STORAGE" /> <uses-permission android:name="android.permission.WRITE_INTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WAKE_LOCK" /> <uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.CAMERA" /> <uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS"/>
<application <application
android:name=".Application" android:name=".Application"

View file

@ -15,6 +15,10 @@ import android.os.Bundle;
import android.os.Handler; import android.os.Handler;
import android.os.Looper; import android.os.Looper;
import android.view.WindowManager; 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.DomainResolution;
import com.unstoppabledomains.resolution.Resolution; import com.unstoppabledomains.resolution.Resolution;
@ -65,6 +69,14 @@ public class MainActivity extends FlutterFragmentActivity {
getWindow().clearFlags(WindowManager.LayoutParams.FLAG_SECURE); getWindow().clearFlags(WindowManager.LayoutParams.FLAG_SECURE);
} }
break; break;
case "disableBatteryOptimization":
disableBatteryOptimization();
handler.post(() -> result.success(null));
break;
case "isBatteryOptimizationDisabled":
boolean isDisabled = isBatteryOptimizationDisabled();
handler.post(() -> result.success(isDisabled));
break;
default: default:
handler.post(() -> result.notImplemented()); 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);
}
} }

View file

@ -14,6 +14,10 @@ import android.os.Build;
import android.os.Handler; import android.os.Handler;
import android.os.Looper; import android.os.Looper;
import android.view.WindowManager; 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.DomainResolution;
import com.unstoppabledomains.resolution.Resolution; import com.unstoppabledomains.resolution.Resolution;
@ -55,6 +59,14 @@ public class MainActivity extends FlutterFragmentActivity {
handler.post(() -> result.success("")); handler.post(() -> result.success(""));
} }
break; break;
case "disableBatteryOptimization":
disableBatteryOptimization();
handler.post(() -> result.success(null));
break;
case "isBatteryOptimizationDisabled":
boolean isDisabled = isBatteryOptimizationDisabled();
handler.post(() -> result.success(isDisabled));
break;
default: default:
handler.post(() -> result.notImplemented()); 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);
}
} }

View file

@ -14,6 +14,10 @@ import android.os.Build;
import android.os.Handler; import android.os.Handler;
import android.os.Looper; import android.os.Looper;
import android.view.WindowManager; 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.DomainResolution;
import com.unstoppabledomains.resolution.Resolution; import com.unstoppabledomains.resolution.Resolution;
@ -64,6 +68,14 @@ public class MainActivity extends FlutterFragmentActivity {
getWindow().clearFlags(WindowManager.LayoutParams.FLAG_SECURE); getWindow().clearFlags(WindowManager.LayoutParams.FLAG_SECURE);
} }
break; break;
case "disableBatteryOptimization":
disableBatteryOptimization();
handler.post(() -> result.success(null));
break;
case "isBatteryOptimizationDisabled":
boolean isDisabled = isBatteryOptimizationDisabled();
handler.post(() -> result.success(isDisabled));
break;
default: default:
handler.post(() -> result.notImplemented()); 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);
}
} }

View file

@ -1,3 +1,3 @@
Security and Privacy enhancements Improve wallet recovery and error tolerance
Usability enhancements Enhance Background sync for Monero wallets
Bug fixes Bug fixes

View file

@ -1,4 +1,5 @@
List previously used Bitcoin addresses Bitcoin transactions fixes and enhancements
Security and Privacy enhancements EVM wallets enhancements (Ethereum and Polygon)
Usability enhancements Improve wallet recovery and error tolerance
Enhance Background sync for Monero wallets
Bug fixes Bug fixes

View file

@ -0,0 +1,22 @@
import 'package:flutter/services.dart';
const MethodChannel _channel = MethodChannel('com.cake_wallet/native_utils');
Future<void> requestDisableBatteryOptimization() async {
try {
await _channel.invokeMethod('disableBatteryOptimization');
} on PlatformException catch (e) {
print("Failed to disable battery optimization: '${e.message}'.");
}
}
Future<bool> 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;
}
}

View file

@ -1,3 +1,5 @@
import 'dart:io';
import 'package:cake_wallet/reactions/wallet_connect.dart'; 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_cell_with_arrow.dart';
import 'package:cake_wallet/src/screens/settings/widgets/settings_picker_cell.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/dashboard/dashboard_view_model.dart';
import 'package:cake_wallet/view_model/settings/sync_mode.dart'; import 'package:cake_wallet/view_model/settings/sync_mode.dart';
import 'package:cake_wallet/view_model/settings/tor_connection.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:flutter/material.dart';
import 'package:cake_wallet/routes.dart'; import 'package:cake_wallet/routes.dart';
import 'package:cake_wallet/generated/i18n.dart'; import 'package:cake_wallet/generated/i18n.dart';
@ -49,12 +52,39 @@ class ConnectionSyncPage extends BasePage {
if (DeviceInfo.instance.isMobile) ...[ if (DeviceInfo.instance.isMobile) ...[
Observer(builder: (context) { Observer(builder: (context) {
return SettingsPickerCell<SyncMode>( return SettingsPickerCell<SyncMode>(
title: S.current.background_sync_mode, title: S.current.background_sync_mode,
items: SyncMode.all, items: SyncMode.all,
displayItem: (SyncMode syncMode) => syncMode.name, displayItem: (SyncMode syncMode) => syncMode.name,
selectedItem: dashboardViewModel.syncMode, selectedItem: dashboardViewModel.syncMode,
onItemSelected: dashboardViewModel.setSyncMode, onItemSelected: (syncMode) async {
); dashboardViewModel.setSyncMode(syncMode);
if (Platform.isIOS) return;
if (syncMode.type != SyncType.disabled) {
final isDisabled = await isBatteryOptimizationDisabled();
if (isDisabled) return;
await showPopUp<void>(
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)), const StandardListSeparator(padding: EdgeInsets.symmetric(horizontal: 24)),
Observer(builder: (context) { Observer(builder: (context) {

View file

@ -9,7 +9,7 @@ class SyncMode {
static final all = [ static final all = [
SyncMode("Disabled", SyncType.disabled, Duration.zero), SyncMode("Disabled", SyncType.disabled, Duration.zero),
SyncMode("Unobtrusive", SyncType.unobtrusive, Duration(days: 1)), SyncMode("Unobtrusive", SyncType.unobtrusive, Duration(hours: 12)),
SyncMode("Aggressive", SyncType.aggressive, Duration(hours: 6)), SyncMode("Aggressive", SyncType.aggressive, Duration(hours: 3)),
]; ];
} }

View file

@ -189,6 +189,8 @@
"disable_exchange": "تعطيل التبادل", "disable_exchange": "تعطيل التبادل",
"disable_fiat": "تعطيل fiat", "disable_fiat": "تعطيل fiat",
"disable_sell": "قم بتعطيل إجراء البيع", "disable_sell": "قم بتعطيل إجراء البيع",
"disableBatteryOptimization": "تعطيل تحسين البطارية",
"disableBatteryOptimizationDescription": "هل تريد تعطيل تحسين البطارية من أجل جعل الخلفية مزامنة تعمل بحرية وسلاسة؟",
"disabled": "معطلة", "disabled": "معطلة",
"discount": "وفر ${value}٪", "discount": "وفر ${value}٪",
"display_settings": "اعدادات العرض", "display_settings": "اعدادات العرض",

View file

@ -189,6 +189,8 @@
"disable_exchange": "Деактивиране на борса", "disable_exchange": "Деактивиране на борса",
"disable_fiat": "Деактивиране на fiat", "disable_fiat": "Деактивиране на fiat",
"disable_sell": "Деактивирайте действието за продажба", "disable_sell": "Деактивирайте действието за продажба",
"disableBatteryOptimization": "Деактивирайте оптимизацията на батерията",
"disableBatteryOptimizationDescription": "Искате ли да деактивирате оптимизацията на батерията, за да направите синхронизирането на фона да работи по -свободно и гладко?",
"disabled": "Деактивирано", "disabled": "Деактивирано",
"discount": "Спестете ${value}%", "discount": "Спестете ${value}%",
"display_settings": "Настройки на екрана", "display_settings": "Настройки на екрана",

View file

@ -189,6 +189,8 @@
"disable_exchange": "Zakázat směnárny", "disable_exchange": "Zakázat směnárny",
"disable_fiat": "Zakázat fiat", "disable_fiat": "Zakázat fiat",
"disable_sell": "Zakázat akci prodeje", "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", "disabled": "Zakázáno",
"discount": "Ušetříte ${value}%", "discount": "Ušetříte ${value}%",
"display_settings": "Nastavení zobrazení", "display_settings": "Nastavení zobrazení",

View file

@ -189,6 +189,8 @@
"disable_exchange": "Exchange deaktivieren", "disable_exchange": "Exchange deaktivieren",
"disable_fiat": "Fiat deaktivieren", "disable_fiat": "Fiat deaktivieren",
"disable_sell": "Verkaufsaktion 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", "disabled": "Deaktiviert",
"discount": "${value} % sparen", "discount": "${value} % sparen",
"display_settings": "Anzeigeeinstellungen", "display_settings": "Anzeigeeinstellungen",

View file

@ -189,6 +189,8 @@
"disable_exchange": "Disable exchange", "disable_exchange": "Disable exchange",
"disable_fiat": "Disable fiat", "disable_fiat": "Disable fiat",
"disable_sell": "Disable sell action", "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", "disabled": "Disabled",
"discount": "Save ${value}%", "discount": "Save ${value}%",
"display_settings": "Display settings", "display_settings": "Display settings",

View file

@ -189,6 +189,8 @@
"disable_exchange": "Deshabilitar intercambio", "disable_exchange": "Deshabilitar intercambio",
"disable_fiat": "Deshabilitar fiat", "disable_fiat": "Deshabilitar fiat",
"disable_sell": "Desactivar acción de venta", "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", "disabled": "Desactivado",
"discount": "Ahorra ${value}%", "discount": "Ahorra ${value}%",
"display_settings": "Configuración de pantalla", "display_settings": "Configuración de pantalla",

View file

@ -189,6 +189,8 @@
"disable_exchange": "Désactiver l'échange", "disable_exchange": "Désactiver l'échange",
"disable_fiat": "Désactiver les montants en fiat", "disable_fiat": "Désactiver les montants en fiat",
"disable_sell": "Désactiver l'action de vente", "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é", "disabled": "Désactivé",
"discount": "Économisez ${value}%", "discount": "Économisez ${value}%",
"display_settings": "Paramètres d'affichage", "display_settings": "Paramètres d'affichage",

View file

@ -189,6 +189,8 @@
"disable_exchange": "Kashe musanya", "disable_exchange": "Kashe musanya",
"disable_fiat": "Dakatar da fiat", "disable_fiat": "Dakatar da fiat",
"disable_sell": "Kashe karbuwa", "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", "disabled": "tsaya",
"discount": "Ajiye ${value}%", "discount": "Ajiye ${value}%",
"display_settings": "Nuni saituna", "display_settings": "Nuni saituna",

View file

@ -189,6 +189,8 @@
"disable_exchange": "एक्सचेंज अक्षम करें", "disable_exchange": "एक्सचेंज अक्षम करें",
"disable_fiat": "िएट को अक्षम करें", "disable_fiat": "िएट को अक्षम करें",
"disable_sell": "बेचने की कार्रवाई अक्षम करें", "disable_sell": "बेचने की कार्रवाई अक्षम करें",
"disableBatteryOptimization": "बैटरी अनुकूलन अक्षम करें",
"disableBatteryOptimizationDescription": "क्या आप बैकग्राउंड सिंक को अधिक स्वतंत्र और सुचारू रूप से चलाने के लिए बैटरी ऑप्टिमाइज़ेशन को अक्षम करना चाहते हैं?",
"disabled": "अक्षम", "disabled": "अक्षम",
"discount": "${value}% बचाएं", "discount": "${value}% बचाएं",
"display_settings": "प्रदर्शन सेटिंग्स", "display_settings": "प्रदर्शन सेटिंग्स",

View file

@ -189,6 +189,8 @@
"disable_exchange": "Onemogući exchange", "disable_exchange": "Onemogući exchange",
"disable_fiat": "Isključi, fiat", "disable_fiat": "Isključi, fiat",
"disable_sell": "Onemogući akciju prodaje", "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", "disabled": "Onemogućeno",
"discount": "Uštedite ${value}%", "discount": "Uštedite ${value}%",
"display_settings": "Postavke zaslona", "display_settings": "Postavke zaslona",

View file

@ -189,6 +189,8 @@
"disable_exchange": "Nonaktifkan pertukaran", "disable_exchange": "Nonaktifkan pertukaran",
"disable_fiat": "Nonaktifkan fiat", "disable_fiat": "Nonaktifkan fiat",
"disable_sell": "Nonaktifkan aksi jual", "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", "disabled": "Dinonaktifkan",
"discount": "Hemat ${value}%", "discount": "Hemat ${value}%",
"display_settings": "Pengaturan tampilan", "display_settings": "Pengaturan tampilan",

View file

@ -190,6 +190,8 @@
"disable_exchange": "Disabilita scambio", "disable_exchange": "Disabilita scambio",
"disable_fiat": "Disabilita fiat", "disable_fiat": "Disabilita fiat",
"disable_sell": "Disabilita l'azione di vendita", "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", "disabled": "Disabilitato",
"discount": "Risparmia ${value}%", "discount": "Risparmia ${value}%",
"display_settings": "Impostazioni di visualizzazione", "display_settings": "Impostazioni di visualizzazione",

View file

@ -189,6 +189,8 @@
"disable_exchange": "交換を無効にする", "disable_exchange": "交換を無効にする",
"disable_fiat": "フィアットを無効にする", "disable_fiat": "フィアットを無効にする",
"disable_sell": "販売アクションを無効にする", "disable_sell": "販売アクションを無効にする",
"disableBatteryOptimization": "バッテリーの最適化を無効にします",
"disableBatteryOptimizationDescription": "バックグラウンドシンクをより自由かつスムーズに実行するために、バッテリーの最適化を無効にしたいですか?",
"disabled": "無効", "disabled": "無効",
"discount": "${value}%を節約", "discount": "${value}%を節約",
"display_settings": "表示設定", "display_settings": "表示設定",

View file

@ -189,6 +189,8 @@
"disable_exchange": "교환 비활성화", "disable_exchange": "교환 비활성화",
"disable_fiat": "법정화폐 비활성화", "disable_fiat": "법정화폐 비활성화",
"disable_sell": "판매 조치 비활성화", "disable_sell": "판매 조치 비활성화",
"disableBatteryOptimization": "배터리 최적화를 비활성화합니다",
"disableBatteryOptimizationDescription": "백그라운드 동기화를보다 자유롭고 매끄럽게 실행하기 위해 배터리 최적화를 비활성화하고 싶습니까?",
"disabled": "장애가 있는", "disabled": "장애가 있는",
"discount": "${value}% 절약", "discount": "${value}% 절약",
"display_settings": "디스플레이 설정", "display_settings": "디스플레이 설정",

View file

@ -189,6 +189,8 @@
"disable_exchange": "လဲလှယ်မှုကို ပိတ်ပါ။", "disable_exchange": "လဲလှယ်မှုကို ပိတ်ပါ။",
"disable_fiat": "Fiat ကိုပိတ်ပါ။", "disable_fiat": "Fiat ကိုပိတ်ပါ။",
"disable_sell": "ရောင်းချခြင်းလုပ်ဆောင်ချက်ကို ပိတ်ပါ။", "disable_sell": "ရောင်းချခြင်းလုပ်ဆောင်ချက်ကို ပိတ်ပါ။",
"disableBatteryOptimization": "ဘက်ထရီ optimization ကိုပိတ်ပါ",
"disableBatteryOptimizationDescription": "နောက်ခံထပ်တူပြုခြင်းနှင့်ချောချောမွေ့မွေ့ပြုလုပ်နိုင်ရန်ဘက်ထရီ optimization ကိုသင်ပိတ်ထားလိုပါသလား။",
"disabled": "မသန်စွမ်း", "disabled": "မသန်စွမ်း",
"discount": "${value}% ချွေတာ", "discount": "${value}% ချွေတာ",
"display_settings": "ပြသရန် ဆက်တင်များ", "display_settings": "ပြသရန် ဆက်တင်များ",

View file

@ -189,6 +189,8 @@
"disable_exchange": "Uitwisseling uitschakelen", "disable_exchange": "Uitwisseling uitschakelen",
"disable_fiat": "Schakel Fiat uit", "disable_fiat": "Schakel Fiat uit",
"disable_sell": "Verkoopactie uitschakelen", "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", "disabled": "Gehandicapt",
"discount": "Bespaar ${value}%", "discount": "Bespaar ${value}%",
"display_settings": "Weergave-instellingen", "display_settings": "Weergave-instellingen",

View file

@ -189,6 +189,8 @@
"disable_exchange": "Wyłącz wymianę", "disable_exchange": "Wyłącz wymianę",
"disable_fiat": "Wyłącz waluty FIAT", "disable_fiat": "Wyłącz waluty FIAT",
"disable_sell": "Wyłącz akcję sprzedaży", "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", "disabled": "Wyłączone",
"discount": "Zaoszczędź ${value}%", "discount": "Zaoszczędź ${value}%",
"display_settings": "Ustawienia wyświetlania", "display_settings": "Ustawienia wyświetlania",

View file

@ -189,6 +189,8 @@
"disable_exchange": "Desativar troca", "disable_exchange": "Desativar troca",
"disable_fiat": "Desativar fiat", "disable_fiat": "Desativar fiat",
"disable_sell": "Desativar ação de venda", "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", "disabled": "Desabilitado",
"discount": "Economize ${value}%", "discount": "Economize ${value}%",
"display_settings": "Configurações de exibição", "display_settings": "Configurações de exibição",

View file

@ -189,6 +189,8 @@
"disable_exchange": "Отключить обмен", "disable_exchange": "Отключить обмен",
"disable_fiat": "Отключить фиат", "disable_fiat": "Отключить фиат",
"disable_sell": "Отключить действие продажи", "disable_sell": "Отключить действие продажи",
"disableBatteryOptimization": "Отключить оптимизацию батареи",
"disableBatteryOptimizationDescription": "Вы хотите отключить оптимизацию батареи, чтобы сделать фона синхронизации более свободно и плавно?",
"disabled": "Отключено", "disabled": "Отключено",
"discount": "Сэкономьте ${value}%", "discount": "Сэкономьте ${value}%",
"display_settings": "Настройки отображения", "display_settings": "Настройки отображения",

View file

@ -189,6 +189,8 @@
"disable_exchange": "ปิดใช้งานการแลกเปลี่ยน", "disable_exchange": "ปิดใช้งานการแลกเปลี่ยน",
"disable_fiat": "ปิดใช้งานสกุลเงินตรา", "disable_fiat": "ปิดใช้งานสกุลเงินตรา",
"disable_sell": "ปิดการใช้งานการขาย", "disable_sell": "ปิดการใช้งานการขาย",
"disableBatteryOptimization": "ปิดใช้งานการเพิ่มประสิทธิภาพแบตเตอรี่",
"disableBatteryOptimizationDescription": "คุณต้องการปิดใช้งานการเพิ่มประสิทธิภาพแบตเตอรี่เพื่อให้การซิงค์พื้นหลังทำงานได้อย่างอิสระและราบรื่นมากขึ้นหรือไม่?",
"disabled": "ปิดใช้งาน", "disabled": "ปิดใช้งาน",
"discount": "ประหยัด ${value}%", "discount": "ประหยัด ${value}%",
"display_settings": "การตั้งค่าการแสดงผล", "display_settings": "การตั้งค่าการแสดงผล",

View file

@ -189,6 +189,8 @@
"disable_exchange": "Huwag paganahin ang palitan", "disable_exchange": "Huwag paganahin ang palitan",
"disable_fiat": "Huwag paganahin ang Fiat", "disable_fiat": "Huwag paganahin ang Fiat",
"disable_sell": "Huwag paganahin ang pagkilos ng pagbebenta", "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", "disabled": "Hindi pinagana",
"discount": "Makatipid ng ${value}%", "discount": "Makatipid ng ${value}%",
"display_settings": "Mga setting ng pagpapakita", "display_settings": "Mga setting ng pagpapakita",

View file

@ -189,6 +189,8 @@
"disable_exchange": "Borsayı devre dışı bırak", "disable_exchange": "Borsayı devre dışı bırak",
"disable_fiat": "İtibari paraları devre dışı bırak", "disable_fiat": "İtibari paraları devre dışı bırak",
"disable_sell": "Satış işlemini 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ışı", "disabled": "Devre dışı",
"discount": "%${value} tasarruf et", "discount": "%${value} tasarruf et",
"display_settings": "Görüntü ayarları", "display_settings": "Görüntü ayarları",

View file

@ -189,6 +189,8 @@
"disable_exchange": "Вимкнути exchange", "disable_exchange": "Вимкнути exchange",
"disable_fiat": "Вимкнути фиат", "disable_fiat": "Вимкнути фиат",
"disable_sell": "Вимкнути дію продажу", "disable_sell": "Вимкнути дію продажу",
"disableBatteryOptimization": "Вимкнути оптимізацію акумулятора",
"disableBatteryOptimizationDescription": "Ви хочете відключити оптимізацію акумулятора, щоб зробити фонову синхронізацію більш вільно та плавно?",
"disabled": "Вимкнено", "disabled": "Вимкнено",
"discount": "Зекономте ${value}%", "discount": "Зекономте ${value}%",
"display_settings": "Налаштування дисплея", "display_settings": "Налаштування дисплея",

View file

@ -189,6 +189,8 @@
"disable_exchange": "تبادلے کو غیر فعال کریں۔", "disable_exchange": "تبادلے کو غیر فعال کریں۔",
"disable_fiat": "فیاٹ کو غیر فعال کریں۔", "disable_fiat": "فیاٹ کو غیر فعال کریں۔",
"disable_sell": "فروخت کی کارروائی کو غیر فعال کریں۔", "disable_sell": "فروخت کی کارروائی کو غیر فعال کریں۔",
"disableBatteryOptimization": "بیٹری کی اصلاح کو غیر فعال کریں",
"disableBatteryOptimizationDescription": "کیا آپ پس منظر کی مطابقت پذیری کو زیادہ آزادانہ اور آسانی سے چلانے کے لئے بیٹری کی اصلاح کو غیر فعال کرنا چاہتے ہیں؟",
"disabled": "معذور", "disabled": "معذور",
"discount": "${value}% بچائیں", "discount": "${value}% بچائیں",
"display_settings": "ڈسپلے کی ترتیبات", "display_settings": "ڈسپلے کی ترتیبات",

View file

@ -189,6 +189,8 @@
"disable_exchange": "Pa ilé pàṣípààrọ̀", "disable_exchange": "Pa ilé pàṣípààrọ̀",
"disable_fiat": "Pa owó tí ìjọba pàṣẹ wa lò", "disable_fiat": "Pa owó tí ìjọba pàṣẹ wa lò",
"disable_sell": "Ko iṣọrọ iṣọrọ", "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", "disabled": "Wọ́n tí a ti pa",
"discount": "Pamọ́ ${value}%", "discount": "Pamọ́ ${value}%",
"display_settings": "Fihàn àwọn ààtò", "display_settings": "Fihàn àwọn ààtò",

View file

@ -189,6 +189,8 @@
"disable_exchange": "禁用交换", "disable_exchange": "禁用交换",
"disable_fiat": "禁用法令", "disable_fiat": "禁用法令",
"disable_sell": "禁用卖出操作", "disable_sell": "禁用卖出操作",
"disableBatteryOptimization": "禁用电池优化",
"disableBatteryOptimizationDescription": "您是否要禁用电池优化以使背景同步更加自由,平稳地运行?",
"disabled": "禁用", "disabled": "禁用",
"discount": "节省 ${value}%", "discount": "节省 ${value}%",
"display_settings": "显示设置", "display_settings": "显示设置",

View file

@ -15,15 +15,15 @@ TYPES=($MONERO_COM $CAKEWALLET $HAVEN)
APP_ANDROID_TYPE=$1 APP_ANDROID_TYPE=$1
MONERO_COM_NAME="Monero.com" MONERO_COM_NAME="Monero.com"
MONERO_COM_VERSION="1.10.2" MONERO_COM_VERSION="1.10.3"
MONERO_COM_BUILD_NUMBER=74 MONERO_COM_BUILD_NUMBER=75
MONERO_COM_BUNDLE_ID="com.monero.app" MONERO_COM_BUNDLE_ID="com.monero.app"
MONERO_COM_PACKAGE="com.monero.app" MONERO_COM_PACKAGE="com.monero.app"
MONERO_COM_SCHEME="monero.com" MONERO_COM_SCHEME="monero.com"
CAKEWALLET_NAME="Cake Wallet" CAKEWALLET_NAME="Cake Wallet"
CAKEWALLET_VERSION="4.13.2" CAKEWALLET_VERSION="4.13.3"
CAKEWALLET_BUILD_NUMBER=191 CAKEWALLET_BUILD_NUMBER=192
CAKEWALLET_BUNDLE_ID="com.cakewallet.cake_wallet" CAKEWALLET_BUNDLE_ID="com.cakewallet.cake_wallet"
CAKEWALLET_PACKAGE="com.cakewallet.cake_wallet" CAKEWALLET_PACKAGE="com.cakewallet.cake_wallet"
CAKEWALLET_SCHEME="cakewallet" CAKEWALLET_SCHEME="cakewallet"

View file

@ -13,13 +13,13 @@ TYPES=($MONERO_COM $CAKEWALLET $HAVEN)
APP_IOS_TYPE=$1 APP_IOS_TYPE=$1
MONERO_COM_NAME="Monero.com" MONERO_COM_NAME="Monero.com"
MONERO_COM_VERSION="1.10.2" MONERO_COM_VERSION="1.10.3"
MONERO_COM_BUILD_NUMBER=72 MONERO_COM_BUILD_NUMBER=73
MONERO_COM_BUNDLE_ID="com.cakewallet.monero" MONERO_COM_BUNDLE_ID="com.cakewallet.monero"
CAKEWALLET_NAME="Cake Wallet" CAKEWALLET_NAME="Cake Wallet"
CAKEWALLET_VERSION="4.13.2" CAKEWALLET_VERSION="4.13.3"
CAKEWALLET_BUILD_NUMBER=210 CAKEWALLET_BUILD_NUMBER=212
CAKEWALLET_BUNDLE_ID="com.fotolockr.cakewallet" CAKEWALLET_BUNDLE_ID="com.fotolockr.cakewallet"
HAVEN_NAME="Haven" HAVEN_NAME="Haven"

View file

@ -16,13 +16,13 @@ if [ -n "$1" ]; then
fi fi
MONERO_COM_NAME="Monero.com" MONERO_COM_NAME="Monero.com"
MONERO_COM_VERSION="1.0.2" MONERO_COM_VERSION="1.0.3"
MONERO_COM_BUILD_NUMBER=4 MONERO_COM_BUILD_NUMBER=5
MONERO_COM_BUNDLE_ID="com.cakewallet.monero" MONERO_COM_BUNDLE_ID="com.cakewallet.monero"
CAKEWALLET_NAME="Cake Wallet" CAKEWALLET_NAME="Cake Wallet"
CAKEWALLET_VERSION="1.6.2" CAKEWALLET_VERSION="1.6.3"
CAKEWALLET_BUILD_NUMBER=52 CAKEWALLET_BUILD_NUMBER=53
CAKEWALLET_BUNDLE_ID="com.fotolockr.cakewallet" CAKEWALLET_BUNDLE_ID="com.fotolockr.cakewallet"
if ! [[ " ${TYPES[*]} " =~ " ${APP_MACOS_TYPE} " ]]; then if ! [[ " ${TYPES[*]} " =~ " ${APP_MACOS_TYPE} " ]]; then

View file

@ -526,6 +526,8 @@ import 'package:cw_core/wallet_base.dart';
import 'package:cw_core/wallet_credentials.dart'; import 'package:cw_core/wallet_credentials.dart';
import 'package:cw_core/wallet_info.dart'; import 'package:cw_core/wallet_info.dart';
import 'package:cw_core/wallet_service.dart'; import 'package:cw_core/wallet_service.dart';
import 'package:hive/hive.dart';
import 'package:web3dart/web3dart.dart';
"""; """;
const ethereumCWHeaders = """ const ethereumCWHeaders = """
@ -541,8 +543,6 @@ import 'package:cw_ethereum/ethereum_wallet.dart';
import 'package:cw_ethereum/ethereum_wallet_service.dart'; import 'package:cw_ethereum/ethereum_wallet_service.dart';
import 'package:eth_sig_util/util/utils.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';"; 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_credentials.dart';
import 'package:cw_core/wallet_info.dart'; import 'package:cw_core/wallet_info.dart';
import 'package:cw_core/wallet_service.dart'; import 'package:cw_core/wallet_service.dart';
import 'package:hive/hive.dart';
import 'package:web3dart/web3dart.dart';
"""; """;
const polygonCWHeaders = """ 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.dart';
import 'package:cw_polygon/polygon_wallet_service.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'; import 'package:eth_sig_util/util/utils.dart';
"""; """;