diff --git a/mobile/lib/app.dart b/mobile/lib/app.dart
index e7e299ed94..e1e76869e5 100644
--- a/mobile/lib/app.dart
+++ b/mobile/lib/app.dart
@@ -32,8 +32,8 @@ class EnteApp extends StatefulWidget {
this.killBackgroundTask,
this.locale,
this.savedThemeMode, {
- Key? key,
- }) : super(key: key);
+ super.key,
+ });
static void setLocale(BuildContext context, Locale newLocale) {
final state = context.findAncestorStateOfType<_EnteAppState>()!;
diff --git a/mobile/lib/generated/intl/messages_cs.dart b/mobile/lib/generated/intl/messages_cs.dart
index 48fedc432f..bc078fed69 100644
--- a/mobile/lib/generated/intl/messages_cs.dart
+++ b/mobile/lib/generated/intl/messages_cs.dart
@@ -60,6 +60,11 @@ class MessageLookup extends MessageLookupByLibrary {
MessageLookupByLibrary.simpleMessage("Face recognition"),
"fileTypes": MessageLookupByLibrary.simpleMessage("File types"),
"foundFaces": MessageLookupByLibrary.simpleMessage("Found faces"),
+ "hideContent": MessageLookupByLibrary.simpleMessage("Hide content"),
+ "hideContentDescriptionAndroid": MessageLookupByLibrary.simpleMessage(
+ "Hides app content in the app switcher and disables screenshots"),
+ "hideContentDescriptionIos": MessageLookupByLibrary.simpleMessage(
+ "Hides app content in the app switcher"),
"immediately": MessageLookupByLibrary.simpleMessage("Immediately"),
"indexingIsPaused": MessageLookupByLibrary.simpleMessage(
"Indexing is paused, will automatically resume when device is ready"),
diff --git a/mobile/lib/generated/intl/messages_de.dart b/mobile/lib/generated/intl/messages_de.dart
index 36fa28ebee..eee5ffd1ed 100644
--- a/mobile/lib/generated/intl/messages_de.dart
+++ b/mobile/lib/generated/intl/messages_de.dart
@@ -831,6 +831,11 @@ class MessageLookup extends MessageLookupByLibrary {
"help": MessageLookupByLibrary.simpleMessage("Hilfe"),
"hidden": MessageLookupByLibrary.simpleMessage("Versteckt"),
"hide": MessageLookupByLibrary.simpleMessage("Ausblenden"),
+ "hideContent": MessageLookupByLibrary.simpleMessage("Hide content"),
+ "hideContentDescriptionAndroid": MessageLookupByLibrary.simpleMessage(
+ "Hides app content in the app switcher and disables screenshots"),
+ "hideContentDescriptionIos": MessageLookupByLibrary.simpleMessage(
+ "Hides app content in the app switcher"),
"hiding": MessageLookupByLibrary.simpleMessage("Verstecken..."),
"hostedAtOsmFrance":
MessageLookupByLibrary.simpleMessage("Gehostet bei OSM France"),
@@ -1082,6 +1087,7 @@ class MessageLookup extends MessageLookupByLibrary {
"pairWithPin":
MessageLookupByLibrary.simpleMessage("Mit PIN verbinden"),
"pairingComplete": MessageLookupByLibrary.simpleMessage("Verbunden"),
+ "panorama": MessageLookupByLibrary.simpleMessage("Panorama"),
"passKeyPendingVerification": MessageLookupByLibrary.simpleMessage(
"Verifizierung steht noch aus"),
"passkey": MessageLookupByLibrary.simpleMessage("Passkey"),
@@ -1643,6 +1649,8 @@ class MessageLookup extends MessageLookupByLibrary {
"verifying": MessageLookupByLibrary.simpleMessage("Verifiziere …"),
"verifyingRecoveryKey": MessageLookupByLibrary.simpleMessage(
"Wiederherstellungs-Schlüssel wird überprüft..."),
+ "videoInfo":
+ MessageLookupByLibrary.simpleMessage("Video-Informationen"),
"videoSmallCase": MessageLookupByLibrary.simpleMessage("Video"),
"videos": MessageLookupByLibrary.simpleMessage("Videos"),
"viewActiveSessions":
diff --git a/mobile/lib/generated/intl/messages_en.dart b/mobile/lib/generated/intl/messages_en.dart
index 0082b803a4..786f84d101 100644
--- a/mobile/lib/generated/intl/messages_en.dart
+++ b/mobile/lib/generated/intl/messages_en.dart
@@ -800,6 +800,11 @@ class MessageLookup extends MessageLookupByLibrary {
"help": MessageLookupByLibrary.simpleMessage("Help"),
"hidden": MessageLookupByLibrary.simpleMessage("Hidden"),
"hide": MessageLookupByLibrary.simpleMessage("Hide"),
+ "hideContent": MessageLookupByLibrary.simpleMessage("Hide content"),
+ "hideContentDescriptionAndroid": MessageLookupByLibrary.simpleMessage(
+ "Hides app content in the app switcher and disables screenshots"),
+ "hideContentDescriptionIos": MessageLookupByLibrary.simpleMessage(
+ "Hides app content in the app switcher"),
"hiding": MessageLookupByLibrary.simpleMessage("Hiding..."),
"hostedAtOsmFrance":
MessageLookupByLibrary.simpleMessage("Hosted at OSM France"),
diff --git a/mobile/lib/generated/intl/messages_es.dart b/mobile/lib/generated/intl/messages_es.dart
index c5f038b858..d5d695886c 100644
--- a/mobile/lib/generated/intl/messages_es.dart
+++ b/mobile/lib/generated/intl/messages_es.dart
@@ -834,6 +834,11 @@ class MessageLookup extends MessageLookupByLibrary {
"help": MessageLookupByLibrary.simpleMessage("Ayuda"),
"hidden": MessageLookupByLibrary.simpleMessage("Oculto"),
"hide": MessageLookupByLibrary.simpleMessage("Ocultar"),
+ "hideContent": MessageLookupByLibrary.simpleMessage("Hide content"),
+ "hideContentDescriptionAndroid": MessageLookupByLibrary.simpleMessage(
+ "Hides app content in the app switcher and disables screenshots"),
+ "hideContentDescriptionIos": MessageLookupByLibrary.simpleMessage(
+ "Hides app content in the app switcher"),
"hiding": MessageLookupByLibrary.simpleMessage("Ocultando..."),
"hostedAtOsmFrance":
MessageLookupByLibrary.simpleMessage("Alojado en OSM France"),
diff --git a/mobile/lib/generated/intl/messages_fr.dart b/mobile/lib/generated/intl/messages_fr.dart
index 418276ff6f..511f9c5703 100644
--- a/mobile/lib/generated/intl/messages_fr.dart
+++ b/mobile/lib/generated/intl/messages_fr.dart
@@ -781,6 +781,11 @@ class MessageLookup extends MessageLookupByLibrary {
"Comment avez-vous entendu parler de Ente? (facultatif)"),
"hidden": MessageLookupByLibrary.simpleMessage("Masqué"),
"hide": MessageLookupByLibrary.simpleMessage("Masquer"),
+ "hideContent": MessageLookupByLibrary.simpleMessage("Hide content"),
+ "hideContentDescriptionAndroid": MessageLookupByLibrary.simpleMessage(
+ "Hides app content in the app switcher and disables screenshots"),
+ "hideContentDescriptionIos": MessageLookupByLibrary.simpleMessage(
+ "Hides app content in the app switcher"),
"hiding": MessageLookupByLibrary.simpleMessage("Masquage en cours..."),
"hostedAtOsmFrance":
MessageLookupByLibrary.simpleMessage("Hébergé chez OSM France"),
diff --git a/mobile/lib/generated/intl/messages_it.dart b/mobile/lib/generated/intl/messages_it.dart
index 82a0fa59af..d5fc300e1b 100644
--- a/mobile/lib/generated/intl/messages_it.dart
+++ b/mobile/lib/generated/intl/messages_it.dart
@@ -751,6 +751,11 @@ class MessageLookup extends MessageLookupByLibrary {
"Come hai sentito parlare di Ente? (opzionale)"),
"hidden": MessageLookupByLibrary.simpleMessage("Nascosti"),
"hide": MessageLookupByLibrary.simpleMessage("Nascondi"),
+ "hideContent": MessageLookupByLibrary.simpleMessage("Hide content"),
+ "hideContentDescriptionAndroid": MessageLookupByLibrary.simpleMessage(
+ "Hides app content in the app switcher and disables screenshots"),
+ "hideContentDescriptionIos": MessageLookupByLibrary.simpleMessage(
+ "Hides app content in the app switcher"),
"hiding": MessageLookupByLibrary.simpleMessage("Nascondendo..."),
"hostedAtOsmFrance":
MessageLookupByLibrary.simpleMessage("Ospitato presso OSM France"),
diff --git a/mobile/lib/generated/intl/messages_ko.dart b/mobile/lib/generated/intl/messages_ko.dart
index 69edfe4e57..57267b67df 100644
--- a/mobile/lib/generated/intl/messages_ko.dart
+++ b/mobile/lib/generated/intl/messages_ko.dart
@@ -60,6 +60,11 @@ class MessageLookup extends MessageLookupByLibrary {
MessageLookupByLibrary.simpleMessage("Face recognition"),
"fileTypes": MessageLookupByLibrary.simpleMessage("File types"),
"foundFaces": MessageLookupByLibrary.simpleMessage("Found faces"),
+ "hideContent": MessageLookupByLibrary.simpleMessage("Hide content"),
+ "hideContentDescriptionAndroid": MessageLookupByLibrary.simpleMessage(
+ "Hides app content in the app switcher and disables screenshots"),
+ "hideContentDescriptionIos": MessageLookupByLibrary.simpleMessage(
+ "Hides app content in the app switcher"),
"immediately": MessageLookupByLibrary.simpleMessage("Immediately"),
"indexingIsPaused": MessageLookupByLibrary.simpleMessage(
"Indexing is paused, will automatically resume when device is ready"),
diff --git a/mobile/lib/generated/intl/messages_nl.dart b/mobile/lib/generated/intl/messages_nl.dart
index 0666161cb6..88557c0799 100644
--- a/mobile/lib/generated/intl/messages_nl.dart
+++ b/mobile/lib/generated/intl/messages_nl.dart
@@ -834,6 +834,11 @@ class MessageLookup extends MessageLookupByLibrary {
"help": MessageLookupByLibrary.simpleMessage("Hulp"),
"hidden": MessageLookupByLibrary.simpleMessage("Verborgen"),
"hide": MessageLookupByLibrary.simpleMessage("Verbergen"),
+ "hideContent": MessageLookupByLibrary.simpleMessage("Hide content"),
+ "hideContentDescriptionAndroid": MessageLookupByLibrary.simpleMessage(
+ "Hides app content in the app switcher and disables screenshots"),
+ "hideContentDescriptionIos": MessageLookupByLibrary.simpleMessage(
+ "Hides app content in the app switcher"),
"hiding": MessageLookupByLibrary.simpleMessage("Verbergen..."),
"hostedAtOsmFrance":
MessageLookupByLibrary.simpleMessage("Gehost bij OSM France"),
diff --git a/mobile/lib/generated/intl/messages_no.dart b/mobile/lib/generated/intl/messages_no.dart
index f36546a740..48337a4692 100644
--- a/mobile/lib/generated/intl/messages_no.dart
+++ b/mobile/lib/generated/intl/messages_no.dart
@@ -78,6 +78,11 @@ class MessageLookup extends MessageLookupByLibrary {
"feedback": MessageLookupByLibrary.simpleMessage("Tilbakemelding"),
"fileTypes": MessageLookupByLibrary.simpleMessage("File types"),
"foundFaces": MessageLookupByLibrary.simpleMessage("Found faces"),
+ "hideContent": MessageLookupByLibrary.simpleMessage("Hide content"),
+ "hideContentDescriptionAndroid": MessageLookupByLibrary.simpleMessage(
+ "Hides app content in the app switcher and disables screenshots"),
+ "hideContentDescriptionIos": MessageLookupByLibrary.simpleMessage(
+ "Hides app content in the app switcher"),
"immediately": MessageLookupByLibrary.simpleMessage("Immediately"),
"indexingIsPaused": MessageLookupByLibrary.simpleMessage(
"Indexing is paused, will automatically resume when device is ready"),
diff --git a/mobile/lib/generated/intl/messages_pl.dart b/mobile/lib/generated/intl/messages_pl.dart
index 45e590d2ba..6ef5548479 100644
--- a/mobile/lib/generated/intl/messages_pl.dart
+++ b/mobile/lib/generated/intl/messages_pl.dart
@@ -89,7 +89,7 @@ class MessageLookup extends MessageLookupByLibrary {
static String m22(newEmail) => "Adres e-mail został zmieniony na ${newEmail}";
static String m23(email) =>
- "${email} nie posiada konta Ente.\n\nWyślij mu zaproszenie do udostępniania zdjęć.";
+ "${email} nie posiada konta Ente.\n\nWyślij im zaproszenie do udostępniania zdjęć.";
static String m24(count, formattedNumber) =>
"${Intl.plural(count, one: '1 plikowi', other: '${formattedNumber} plikom')} na tym urządzeniu została bezpiecznie utworzona kopia zapasowa";
@@ -306,7 +306,7 @@ class MessageLookup extends MessageLookupByLibrary {
"androidGoToSettingsDescription": MessageLookupByLibrary.simpleMessage(
"Uwierzytelnianie biometryczne nie jest skonfigurowane na tym urządzeniu. Przejdź do \'Ustawienia > Bezpieczeństwo\', aby dodać uwierzytelnianie biometryczne."),
"androidIosWebDesktop": MessageLookupByLibrary.simpleMessage(
- "Android, iOS, Strona Internetowa, Komputer"),
+ "Android, iOS, Strona Internetowa, Aplikacja Komputerowa"),
"androidSignInTitle":
MessageLookupByLibrary.simpleMessage("Wymagane uwierzytelnienie"),
"appLock": MessageLookupByLibrary.simpleMessage(
@@ -355,7 +355,7 @@ class MessageLookup extends MessageLookupByLibrary {
"Proszę uwierzytelnić się, aby zmienić hasło"),
"authToConfigureTwofactorAuthentication":
MessageLookupByLibrary.simpleMessage(
- "Uwierzytelnij się, aby skonfigurować uwierzytelnianie dwuskładnikowe"),
+ "Uwierzytelnij się, aby skonfigurować uwierzytelnianie dwustopniowe"),
"authToInitiateAccountDeletion": MessageLookupByLibrary.simpleMessage(
"Proszę uwierzytelnić się, aby zainicjować usuwanie konta"),
"authToViewYourActiveSessions": MessageLookupByLibrary.simpleMessage(
@@ -488,7 +488,7 @@ class MessageLookup extends MessageLookupByLibrary {
"color": MessageLookupByLibrary.simpleMessage("Kolor"),
"confirm": MessageLookupByLibrary.simpleMessage("Potwierdź"),
"confirm2FADisable": MessageLookupByLibrary.simpleMessage(
- "Czy na pewno chcesz wyłączyć uwierzytelnianie dwuetapowe?"),
+ "Czy na pewno chcesz wyłączyć uwierzytelnianie dwustopniowe?"),
"confirmAccountDeletion":
MessageLookupByLibrary.simpleMessage("Potwierdź usunięcie konta"),
"confirmDeletePrompt": MessageLookupByLibrary.simpleMessage(
@@ -620,7 +620,8 @@ class MessageLookup extends MessageLookupByLibrary {
"Wyłącz blokadę ekranu urządzenia, gdy Ente jest na pierwszym planie i w trakcie tworzenia kopii zapasowej. Zwykle nie jest to potrzebne, ale może pomóc w szybszym przesyłaniu i początkowym imporcie dużych bibliotek."),
"deviceNotFound":
MessageLookupByLibrary.simpleMessage("Nie znaleziono urządzenia"),
- "didYouKnow": MessageLookupByLibrary.simpleMessage("Czy wiedziałeś?"),
+ "didYouKnow":
+ MessageLookupByLibrary.simpleMessage("Czy wiedziałeś/aś?"),
"disableAutoLock":
MessageLookupByLibrary.simpleMessage("Wyłącz automatyczną blokadę"),
"disableDownloadWarningBody": MessageLookupByLibrary.simpleMessage(
@@ -629,10 +630,10 @@ class MessageLookup extends MessageLookupByLibrary {
MessageLookupByLibrary.simpleMessage("Uwaga"),
"disableLinkMessage": m18,
"disableTwofactor": MessageLookupByLibrary.simpleMessage(
- "Wyłącz Uwierzytelnianie Dwuetapowe"),
+ "Wyłącz uwierzytelnianie dwustopniowe"),
"disablingTwofactorAuthentication":
MessageLookupByLibrary.simpleMessage(
- "Uwierzytelnianie dwuskładnikowe jest wyłączane..."),
+ "Uwierzytelnianie dwustopniowe jest wyłączane..."),
"discord": MessageLookupByLibrary.simpleMessage("Discord"),
"dismiss": MessageLookupByLibrary.simpleMessage("Odrzuć"),
"distanceInKMUnit": MessageLookupByLibrary.simpleMessage("km"),
@@ -823,6 +824,11 @@ class MessageLookup extends MessageLookupByLibrary {
"help": MessageLookupByLibrary.simpleMessage("Pomoc"),
"hidden": MessageLookupByLibrary.simpleMessage("Ukryte"),
"hide": MessageLookupByLibrary.simpleMessage("Ukryj"),
+ "hideContent": MessageLookupByLibrary.simpleMessage("Hide content"),
+ "hideContentDescriptionAndroid": MessageLookupByLibrary.simpleMessage(
+ "Hides app content in the app switcher and disables screenshots"),
+ "hideContentDescriptionIos": MessageLookupByLibrary.simpleMessage(
+ "Hides app content in the app switcher"),
"hiding": MessageLookupByLibrary.simpleMessage("Ukrywanie..."),
"hostedAtOsmFrance":
MessageLookupByLibrary.simpleMessage("Hostowane w OSM Francja"),
@@ -1054,8 +1060,8 @@ class MessageLookup extends MessageLookupByLibrary {
"notifications": MessageLookupByLibrary.simpleMessage("Powiadomienia"),
"ok": MessageLookupByLibrary.simpleMessage("Ok"),
"onDevice": MessageLookupByLibrary.simpleMessage("Na urządzeniu"),
- "onEnte": MessageLookupByLibrary.simpleMessage(
- "Na ente"),
+ "onEnte":
+ MessageLookupByLibrary.simpleMessage("W ente"),
"oops": MessageLookupByLibrary.simpleMessage("Ups"),
"oopsCouldNotSaveEdits": MessageLookupByLibrary.simpleMessage(
"Ups, nie udało się zapisać zmian"),
@@ -1075,6 +1081,7 @@ class MessageLookup extends MessageLookupByLibrary {
MessageLookupByLibrary.simpleMessage("Sparuj z kodem PIN"),
"pairingComplete":
MessageLookupByLibrary.simpleMessage("Parowanie zakończone"),
+ "panorama": MessageLookupByLibrary.simpleMessage("Panorama"),
"passKeyPendingVerification": MessageLookupByLibrary.simpleMessage(
"Weryfikacja jest nadal w toku"),
"passkey": MessageLookupByLibrary.simpleMessage("Klucz dostępu"),
@@ -1564,19 +1571,19 @@ class MessageLookup extends MessageLookupByLibrary {
"twitter": MessageLookupByLibrary.simpleMessage("Twitter"),
"twoMonthsFreeOnYearlyPlans": MessageLookupByLibrary.simpleMessage(
"2 miesiące za darmo w planach rocznych"),
- "twofactor":
- MessageLookupByLibrary.simpleMessage("Uwierzytelnianie dwuetapowe"),
+ "twofactor": MessageLookupByLibrary.simpleMessage(
+ "Uwierzytelnianie dwustopniowe"),
"twofactorAuthenticationHasBeenDisabled":
MessageLookupByLibrary.simpleMessage(
- "Uwierzytelnianie dwuskładnikowe zostało wyłączone"),
+ "Uwierzytelnianie dwustopniowe zostało wyłączone"),
"twofactorAuthenticationPageTitle":
MessageLookupByLibrary.simpleMessage(
- "Uwierzytelnianie dwuskładnikowe"),
+ "Uwierzytelnianie dwustopniowe"),
"twofactorAuthenticationSuccessfullyReset":
MessageLookupByLibrary.simpleMessage(
- "Pomyślnie zresetowano uwierzytelnianie dwuskładnikowe"),
+ "Pomyślnie zresetowano uwierzytelnianie dwustopniowe"),
"twofactorSetup": MessageLookupByLibrary.simpleMessage(
- "Uwierzytelnianie dwuskładnikowe"),
+ "Uwierzytelnianie dwustopniowe"),
"unarchive":
MessageLookupByLibrary.simpleMessage("Przywróć z archiwum"),
"unarchiveAlbum":
@@ -1632,6 +1639,7 @@ class MessageLookup extends MessageLookupByLibrary {
"verifying": MessageLookupByLibrary.simpleMessage("Weryfikowanie..."),
"verifyingRecoveryKey": MessageLookupByLibrary.simpleMessage(
"Weryfikowanie klucza odzyskiwania..."),
+ "videoInfo": MessageLookupByLibrary.simpleMessage("Informacje Wideo"),
"videoSmallCase": MessageLookupByLibrary.simpleMessage("wideo"),
"videos": MessageLookupByLibrary.simpleMessage("Wideo"),
"viewActiveSessions":
diff --git a/mobile/lib/generated/intl/messages_pt.dart b/mobile/lib/generated/intl/messages_pt.dart
index e1cfee1c16..12b1718048 100644
--- a/mobile/lib/generated/intl/messages_pt.dart
+++ b/mobile/lib/generated/intl/messages_pt.dart
@@ -824,6 +824,11 @@ class MessageLookup extends MessageLookupByLibrary {
"help": MessageLookupByLibrary.simpleMessage("Ajuda"),
"hidden": MessageLookupByLibrary.simpleMessage("Oculto"),
"hide": MessageLookupByLibrary.simpleMessage("Ocultar"),
+ "hideContent": MessageLookupByLibrary.simpleMessage("Hide content"),
+ "hideContentDescriptionAndroid": MessageLookupByLibrary.simpleMessage(
+ "Hides app content in the app switcher and disables screenshots"),
+ "hideContentDescriptionIos": MessageLookupByLibrary.simpleMessage(
+ "Hides app content in the app switcher"),
"hiding": MessageLookupByLibrary.simpleMessage("Ocultando..."),
"hostedAtOsmFrance":
MessageLookupByLibrary.simpleMessage("Hospedado na OSM France"),
diff --git a/mobile/lib/generated/intl/messages_ru.dart b/mobile/lib/generated/intl/messages_ru.dart
index 819c375075..1dcaa55dd0 100644
--- a/mobile/lib/generated/intl/messages_ru.dart
+++ b/mobile/lib/generated/intl/messages_ru.dart
@@ -818,6 +818,11 @@ class MessageLookup extends MessageLookupByLibrary {
"help": MessageLookupByLibrary.simpleMessage("помощь"),
"hidden": MessageLookupByLibrary.simpleMessage("Скрыто"),
"hide": MessageLookupByLibrary.simpleMessage("Скрыть"),
+ "hideContent": MessageLookupByLibrary.simpleMessage("Hide content"),
+ "hideContentDescriptionAndroid": MessageLookupByLibrary.simpleMessage(
+ "Hides app content in the app switcher and disables screenshots"),
+ "hideContentDescriptionIos": MessageLookupByLibrary.simpleMessage(
+ "Hides app content in the app switcher"),
"hiding": MessageLookupByLibrary.simpleMessage("Скрытие..."),
"hostedAtOsmFrance":
MessageLookupByLibrary.simpleMessage("Размещено на OSM France"),
diff --git a/mobile/lib/generated/intl/messages_tr.dart b/mobile/lib/generated/intl/messages_tr.dart
index 70d51801a1..d47fb5ff9e 100644
--- a/mobile/lib/generated/intl/messages_tr.dart
+++ b/mobile/lib/generated/intl/messages_tr.dart
@@ -820,6 +820,11 @@ class MessageLookup extends MessageLookupByLibrary {
"help": MessageLookupByLibrary.simpleMessage("Yardım"),
"hidden": MessageLookupByLibrary.simpleMessage("Gizle"),
"hide": MessageLookupByLibrary.simpleMessage("Gizle"),
+ "hideContent": MessageLookupByLibrary.simpleMessage("Hide content"),
+ "hideContentDescriptionAndroid": MessageLookupByLibrary.simpleMessage(
+ "Hides app content in the app switcher and disables screenshots"),
+ "hideContentDescriptionIos": MessageLookupByLibrary.simpleMessage(
+ "Hides app content in the app switcher"),
"hiding": MessageLookupByLibrary.simpleMessage("Gizleniyor..."),
"hostedAtOsmFrance":
MessageLookupByLibrary.simpleMessage("OSM Fransa\'da ağırlandı"),
diff --git a/mobile/lib/generated/intl/messages_zh.dart b/mobile/lib/generated/intl/messages_zh.dart
index 552d3f7b9a..022150ae83 100644
--- a/mobile/lib/generated/intl/messages_zh.dart
+++ b/mobile/lib/generated/intl/messages_zh.dart
@@ -676,6 +676,11 @@ class MessageLookup extends MessageLookupByLibrary {
"help": MessageLookupByLibrary.simpleMessage("帮助"),
"hidden": MessageLookupByLibrary.simpleMessage("已隐藏"),
"hide": MessageLookupByLibrary.simpleMessage("隐藏"),
+ "hideContent": MessageLookupByLibrary.simpleMessage("Hide content"),
+ "hideContentDescriptionAndroid": MessageLookupByLibrary.simpleMessage(
+ "Hides app content in the app switcher and disables screenshots"),
+ "hideContentDescriptionIos": MessageLookupByLibrary.simpleMessage(
+ "Hides app content in the app switcher"),
"hiding": MessageLookupByLibrary.simpleMessage("正在隐藏..."),
"hostedAtOsmFrance": MessageLookupByLibrary.simpleMessage("法国 OSM 主办"),
"howItWorks": MessageLookupByLibrary.simpleMessage("工作原理"),
@@ -883,6 +888,7 @@ class MessageLookup extends MessageLookupByLibrary {
"pair": MessageLookupByLibrary.simpleMessage("配对"),
"pairWithPin": MessageLookupByLibrary.simpleMessage("用 PIN 配对"),
"pairingComplete": MessageLookupByLibrary.simpleMessage("配对完成"),
+ "panorama": MessageLookupByLibrary.simpleMessage("全景"),
"passKeyPendingVerification":
MessageLookupByLibrary.simpleMessage("仍需进行验证"),
"passkey": MessageLookupByLibrary.simpleMessage("通行密钥"),
@@ -1315,6 +1321,7 @@ class MessageLookup extends MessageLookupByLibrary {
"verifying": MessageLookupByLibrary.simpleMessage("正在验证..."),
"verifyingRecoveryKey":
MessageLookupByLibrary.simpleMessage("正在验证恢复密钥..."),
+ "videoInfo": MessageLookupByLibrary.simpleMessage("视频详情"),
"videoSmallCase": MessageLookupByLibrary.simpleMessage("视频"),
"videos": MessageLookupByLibrary.simpleMessage("视频"),
"viewActiveSessions": MessageLookupByLibrary.simpleMessage("查看活动会话"),
diff --git a/mobile/lib/generated/l10n.dart b/mobile/lib/generated/l10n.dart
index 8112f043f4..5209bc696f 100644
--- a/mobile/lib/generated/l10n.dart
+++ b/mobile/lib/generated/l10n.dart
@@ -9125,16 +9125,6 @@ class S {
);
}
- /// `Auto lock`
- String get autoLock {
- return Intl.message(
- 'Auto lock',
- name: 'autoLock',
- desc: '',
- args: [],
- );
- }
-
/// `To enable swipe lock, please setup device passcode or screen lock in your system settings.`
String get swipeLockEnablePreSteps {
return Intl.message(
@@ -9145,6 +9135,16 @@ class S {
);
}
+ /// `Auto lock`
+ String get autoLock {
+ return Intl.message(
+ 'Auto lock',
+ name: 'autoLock',
+ desc: '',
+ args: [],
+ );
+ }
+
/// `Immediately`
String get immediately {
return Intl.message(
@@ -9164,6 +9164,36 @@ class S {
args: [],
);
}
+
+ /// `Hide content`
+ String get hideContent {
+ return Intl.message(
+ 'Hide content',
+ name: 'hideContent',
+ desc: '',
+ args: [],
+ );
+ }
+
+ /// `Hides app content in the app switcher and disables screenshots`
+ String get hideContentDescriptionAndroid {
+ return Intl.message(
+ 'Hides app content in the app switcher and disables screenshots',
+ name: 'hideContentDescriptionAndroid',
+ desc: '',
+ args: [],
+ );
+ }
+
+ /// `Hides app content in the app switcher`
+ String get hideContentDescriptionIos {
+ return Intl.message(
+ 'Hides app content in the app switcher',
+ name: 'hideContentDescriptionIos',
+ desc: '',
+ args: [],
+ );
+ }
}
class AppLocalizationDelegate extends LocalizationsDelegate {
diff --git a/mobile/lib/l10n/intl_cs.arb b/mobile/lib/l10n/intl_cs.arb
index 537df606a9..404e66c921 100644
--- a/mobile/lib/l10n/intl_cs.arb
+++ b/mobile/lib/l10n/intl_cs.arb
@@ -44,5 +44,8 @@
"swipeLockEnablePreSteps": "To enable swipe lock, please setup device passcode or screen lock in your system settings.",
"autoLock": "Auto lock",
"immediately": "Immediately",
- "autoLockFeatureDescription": "Time after which the app locks after being put in the background"
+ "autoLockFeatureDescription": "Time after which the app locks after being put in the background",
+ "hideContent": "Hide content",
+ "hideContentDescriptionAndroid": "Hides app content in the app switcher and disables screenshots",
+ "hideContentDescriptionIos": "Hides app content in the app switcher"
}
\ No newline at end of file
diff --git a/mobile/lib/l10n/intl_de.arb b/mobile/lib/l10n/intl_de.arb
index 9b19c77bad..b84ce5e611 100644
--- a/mobile/lib/l10n/intl_de.arb
+++ b/mobile/lib/l10n/intl_de.arb
@@ -1282,5 +1282,8 @@
"autoLock": "Auto lock",
"immediately": "Immediately",
"autoLockFeatureDescription": "Time after which the app locks after being put in the background",
- "videoInfo": "Video-Informationen"
+ "videoInfo": "Video-Informationen",
+ "hideContent": "Hide content",
+ "hideContentDescriptionAndroid": "Hides app content in the app switcher and disables screenshots",
+ "hideContentDescriptionIos": "Hides app content in the app switcher"
}
\ No newline at end of file
diff --git a/mobile/lib/l10n/intl_en.arb b/mobile/lib/l10n/intl_en.arb
index 9187d18e54..d82851c56f 100644
--- a/mobile/lib/l10n/intl_en.arb
+++ b/mobile/lib/l10n/intl_en.arb
@@ -1282,5 +1282,8 @@
"swipeLockEnablePreSteps": "To enable swipe lock, please setup device passcode or screen lock in your system settings.",
"autoLock": "Auto lock",
"immediately": "Immediately",
- "autoLockFeatureDescription": "Time after which the app locks after being put in the background"
+ "autoLockFeatureDescription": "Time after which the app locks after being put in the background",
+ "hideContent": "Hide content",
+ "hideContentDescriptionAndroid": "Hides app content in the app switcher and disables screenshots",
+ "hideContentDescriptionIos": "Hides app content in the app switcher"
}
\ No newline at end of file
diff --git a/mobile/lib/l10n/intl_es.arb b/mobile/lib/l10n/intl_es.arb
index 9147bb8577..ff514293f0 100644
--- a/mobile/lib/l10n/intl_es.arb
+++ b/mobile/lib/l10n/intl_es.arb
@@ -1268,5 +1268,8 @@
"swipeLockEnablePreSteps": "To enable swipe lock, please setup device passcode or screen lock in your system settings.",
"autoLock": "Auto lock",
"immediately": "Immediately",
- "autoLockFeatureDescription": "Time after which the app locks after being put in the background"
+ "autoLockFeatureDescription": "Time after which the app locks after being put in the background",
+ "hideContent": "Hide content",
+ "hideContentDescriptionAndroid": "Hides app content in the app switcher and disables screenshots",
+ "hideContentDescriptionIos": "Hides app content in the app switcher"
}
\ No newline at end of file
diff --git a/mobile/lib/l10n/intl_fr.arb b/mobile/lib/l10n/intl_fr.arb
index dad4158c12..f37b356771 100644
--- a/mobile/lib/l10n/intl_fr.arb
+++ b/mobile/lib/l10n/intl_fr.arb
@@ -1185,5 +1185,8 @@
"swipeLockEnablePreSteps": "To enable swipe lock, please setup device passcode or screen lock in your system settings.",
"autoLock": "Auto lock",
"immediately": "Immediately",
- "autoLockFeatureDescription": "Time after which the app locks after being put in the background"
+ "autoLockFeatureDescription": "Time after which the app locks after being put in the background",
+ "hideContent": "Hide content",
+ "hideContentDescriptionAndroid": "Hides app content in the app switcher and disables screenshots",
+ "hideContentDescriptionIos": "Hides app content in the app switcher"
}
\ No newline at end of file
diff --git a/mobile/lib/l10n/intl_it.arb b/mobile/lib/l10n/intl_it.arb
index cb083b3960..047c92f816 100644
--- a/mobile/lib/l10n/intl_it.arb
+++ b/mobile/lib/l10n/intl_it.arb
@@ -1147,5 +1147,8 @@
"swipeLockEnablePreSteps": "To enable swipe lock, please setup device passcode or screen lock in your system settings.",
"autoLock": "Auto lock",
"immediately": "Immediately",
- "autoLockFeatureDescription": "Time after which the app locks after being put in the background"
+ "autoLockFeatureDescription": "Time after which the app locks after being put in the background",
+ "hideContent": "Hide content",
+ "hideContentDescriptionAndroid": "Hides app content in the app switcher and disables screenshots",
+ "hideContentDescriptionIos": "Hides app content in the app switcher"
}
\ No newline at end of file
diff --git a/mobile/lib/l10n/intl_ko.arb b/mobile/lib/l10n/intl_ko.arb
index 537df606a9..404e66c921 100644
--- a/mobile/lib/l10n/intl_ko.arb
+++ b/mobile/lib/l10n/intl_ko.arb
@@ -44,5 +44,8 @@
"swipeLockEnablePreSteps": "To enable swipe lock, please setup device passcode or screen lock in your system settings.",
"autoLock": "Auto lock",
"immediately": "Immediately",
- "autoLockFeatureDescription": "Time after which the app locks after being put in the background"
+ "autoLockFeatureDescription": "Time after which the app locks after being put in the background",
+ "hideContent": "Hide content",
+ "hideContentDescriptionAndroid": "Hides app content in the app switcher and disables screenshots",
+ "hideContentDescriptionIos": "Hides app content in the app switcher"
}
\ No newline at end of file
diff --git a/mobile/lib/l10n/intl_nl.arb b/mobile/lib/l10n/intl_nl.arb
index d5b515d935..90a6bedd9f 100644
--- a/mobile/lib/l10n/intl_nl.arb
+++ b/mobile/lib/l10n/intl_nl.arb
@@ -1280,5 +1280,8 @@
"swipeLockEnablePreSteps": "To enable swipe lock, please setup device passcode or screen lock in your system settings.",
"autoLock": "Auto lock",
"immediately": "Immediately",
- "autoLockFeatureDescription": "Time after which the app locks after being put in the background"
+ "autoLockFeatureDescription": "Time after which the app locks after being put in the background",
+ "hideContent": "Hide content",
+ "hideContentDescriptionAndroid": "Hides app content in the app switcher and disables screenshots",
+ "hideContentDescriptionIos": "Hides app content in the app switcher"
}
\ No newline at end of file
diff --git a/mobile/lib/l10n/intl_no.arb b/mobile/lib/l10n/intl_no.arb
index 9c1be2666d..9e9184d748 100644
--- a/mobile/lib/l10n/intl_no.arb
+++ b/mobile/lib/l10n/intl_no.arb
@@ -58,5 +58,8 @@
"swipeLockEnablePreSteps": "To enable swipe lock, please setup device passcode or screen lock in your system settings.",
"autoLock": "Auto lock",
"immediately": "Immediately",
- "autoLockFeatureDescription": "Time after which the app locks after being put in the background"
+ "autoLockFeatureDescription": "Time after which the app locks after being put in the background",
+ "hideContent": "Hide content",
+ "hideContentDescriptionAndroid": "Hides app content in the app switcher and disables screenshots",
+ "hideContentDescriptionIos": "Hides app content in the app switcher"
}
\ No newline at end of file
diff --git a/mobile/lib/l10n/intl_pl.arb b/mobile/lib/l10n/intl_pl.arb
index 164ee9447e..3e10228916 100644
--- a/mobile/lib/l10n/intl_pl.arb
+++ b/mobile/lib/l10n/intl_pl.arb
@@ -1282,5 +1282,8 @@
"autoLock": "Auto lock",
"immediately": "Immediately",
"autoLockFeatureDescription": "Time after which the app locks after being put in the background",
- "videoInfo": "Informacje Wideo"
+ "videoInfo": "Informacje Wideo",
+ "hideContent": "Hide content",
+ "hideContentDescriptionAndroid": "Hides app content in the app switcher and disables screenshots",
+ "hideContentDescriptionIos": "Hides app content in the app switcher"
}
\ No newline at end of file
diff --git a/mobile/lib/l10n/intl_pt.arb b/mobile/lib/l10n/intl_pt.arb
index 24d6a39434..73e163a304 100644
--- a/mobile/lib/l10n/intl_pt.arb
+++ b/mobile/lib/l10n/intl_pt.arb
@@ -1280,5 +1280,8 @@
"swipeLockEnablePreSteps": "To enable swipe lock, please setup device passcode or screen lock in your system settings.",
"autoLock": "Auto lock",
"immediately": "Immediately",
- "autoLockFeatureDescription": "Time after which the app locks after being put in the background"
+ "autoLockFeatureDescription": "Time after which the app locks after being put in the background",
+ "hideContent": "Hide content",
+ "hideContentDescriptionAndroid": "Hides app content in the app switcher and disables screenshots",
+ "hideContentDescriptionIos": "Hides app content in the app switcher"
}
\ No newline at end of file
diff --git a/mobile/lib/l10n/intl_ru.arb b/mobile/lib/l10n/intl_ru.arb
index 839bfc528e..c76b222fff 100644
--- a/mobile/lib/l10n/intl_ru.arb
+++ b/mobile/lib/l10n/intl_ru.arb
@@ -1267,5 +1267,8 @@
"swipeLockEnablePreSteps": "To enable swipe lock, please setup device passcode or screen lock in your system settings.",
"autoLock": "Auto lock",
"immediately": "Immediately",
- "autoLockFeatureDescription": "Time after which the app locks after being put in the background"
+ "autoLockFeatureDescription": "Time after which the app locks after being put in the background",
+ "hideContent": "Hide content",
+ "hideContentDescriptionAndroid": "Hides app content in the app switcher and disables screenshots",
+ "hideContentDescriptionIos": "Hides app content in the app switcher"
}
\ No newline at end of file
diff --git a/mobile/lib/l10n/intl_tr.arb b/mobile/lib/l10n/intl_tr.arb
index 05ad9a5189..cc38e1231a 100644
--- a/mobile/lib/l10n/intl_tr.arb
+++ b/mobile/lib/l10n/intl_tr.arb
@@ -1279,5 +1279,8 @@
"swipeLockEnablePreSteps": "To enable swipe lock, please setup device passcode or screen lock in your system settings.",
"autoLock": "Auto lock",
"immediately": "Immediately",
- "autoLockFeatureDescription": "Time after which the app locks after being put in the background"
+ "autoLockFeatureDescription": "Time after which the app locks after being put in the background",
+ "hideContent": "Hide content",
+ "hideContentDescriptionAndroid": "Hides app content in the app switcher and disables screenshots",
+ "hideContentDescriptionIos": "Hides app content in the app switcher"
}
\ No newline at end of file
diff --git a/mobile/lib/l10n/intl_zh.arb b/mobile/lib/l10n/intl_zh.arb
index a17920067b..cc31afa6a1 100644
--- a/mobile/lib/l10n/intl_zh.arb
+++ b/mobile/lib/l10n/intl_zh.arb
@@ -1282,5 +1282,8 @@
"autoLock": "Auto lock",
"immediately": "Immediately",
"autoLockFeatureDescription": "Time after which the app locks after being put in the background",
- "videoInfo": "视频详情"
+ "videoInfo": "视频详情",
+ "hideContent": "Hide content",
+ "hideContentDescriptionAndroid": "Hides app content in the app switcher and disables screenshots",
+ "hideContentDescriptionIos": "Hides app content in the app switcher"
}
\ No newline at end of file
diff --git a/mobile/lib/ui/settings/lock_screen/lock_screen_options.dart b/mobile/lib/ui/settings/lock_screen/lock_screen_options.dart
index 7b9ba31ac5..b4bf852f1e 100644
--- a/mobile/lib/ui/settings/lock_screen/lock_screen_options.dart
+++ b/mobile/lib/ui/settings/lock_screen/lock_screen_options.dart
@@ -1,3 +1,5 @@
+import "dart:io";
+
import "package:flutter/material.dart";
import "package:photos/core/configuration.dart";
import "package:photos/generated/l10n.dart";
@@ -29,9 +31,12 @@ class _LockScreenOptionsState extends State {
bool isPinEnabled = false;
bool isPasswordEnabled = false;
late int autoLockTimeInMilliseconds;
+ late bool hideAppContent;
+
@override
void initState() {
super.initState();
+ hideAppContent = _lockscreenSetting.getShouldHideAppContent();
autoLockTimeInMilliseconds = _lockscreenSetting.getAutoLockTime();
_initializeSettings();
appLock = isPinEnabled ||
@@ -42,9 +47,12 @@ class _LockScreenOptionsState extends State {
Future _initializeSettings() async {
final bool passwordEnabled = await _lockscreenSetting.isPasswordSet();
final bool pinEnabled = await _lockscreenSetting.isPinSet();
+ final bool shouldShowAppContent =
+ _lockscreenSetting.getShouldHideAppContent();
setState(() {
isPasswordEnabled = passwordEnabled;
isPinEnabled = pinEnabled;
+ hideAppContent = shouldShowAppContent;
});
}
@@ -104,12 +112,24 @@ class _LockScreenOptionsState extends State {
AppLock.of(context)!.setEnabled(!appLock);
await _configuration.setSystemLockScreen(!appLock);
await _lockscreenSetting.removePinAndPassword();
+ if (appLock == true) {
+ await _lockscreenSetting.setHideAppContent(false);
+ }
setState(() {
_initializeSettings();
appLock = !appLock;
});
}
+ Future _tapHideContent() async {
+ setState(() {
+ hideAppContent = !hideAppContent;
+ });
+ await _lockscreenSetting.setHideAppContent(
+ hideAppContent,
+ );
+ }
+
String _formatTime(Duration duration) {
if (duration.inHours != 0) {
return "in ${duration.inHours} hour${duration.inHours > 1 ? 's' : ''}";
@@ -264,6 +284,40 @@ class _LockScreenOptionsState extends State {
textAlign: TextAlign.left,
),
),
+ const SizedBox(
+ height: 24,
+ ),
+ MenuItemWidget(
+ captionedTextWidget: CaptionedTextWidget(
+ title: S.of(context).hideContent,
+ ),
+ alignCaptionedTextToLeft: true,
+ singleBorderRadius: 8,
+ menuItemColor: colorTheme.fillFaint,
+ trailingWidget: ToggleSwitchWidget(
+ value: () => hideAppContent,
+ onChanged: () => _tapHideContent(),
+ ),
+ trailingIconColor: colorTheme.tabIcon,
+ ),
+ Padding(
+ padding: const EdgeInsets.only(
+ top: 14,
+ left: 14,
+ right: 12,
+ ),
+ child: Text(
+ Platform.isAndroid
+ ? S
+ .of(context)
+ .hideContentDescriptionAndroid
+ : S
+ .of(context)
+ .hideContentDescriptionIos,
+ style: textTheme.miniFaint,
+ textAlign: TextAlign.left,
+ ),
+ ),
],
)
: Container(),
diff --git a/mobile/lib/utils/lock_screen_settings.dart b/mobile/lib/utils/lock_screen_settings.dart
index d8d5cc511f..dc47a61e8a 100644
--- a/mobile/lib/utils/lock_screen_settings.dart
+++ b/mobile/lib/utils/lock_screen_settings.dart
@@ -4,6 +4,7 @@ import "package:flutter/foundation.dart";
import "package:flutter_secure_storage/flutter_secure_storage.dart";
import "package:flutter_sodium/flutter_sodium.dart";
import "package:photos/utils/crypto_util.dart";
+import "package:privacy_screen/privacy_screen.dart";
import "package:shared_preferences/shared_preferences.dart";
class LockScreenSettings {
@@ -16,8 +17,8 @@ class LockScreenSettings {
static const saltKey = "ls_salt";
static const keyInvalidAttempts = "ls_invalid_attempts";
static const lastInvalidAttemptTime = "ls_last_invalid_attempt_time";
+ static const keyHideAppContent = "ls_hide_app_content";
static const autoLockTime = "ls_auto_lock_time";
-
late FlutterSecureStorage _secureStorage;
late SharedPreferences _preferences;
static const List autoLockDurations = [
@@ -31,6 +32,29 @@ class LockScreenSettings {
void init(SharedPreferences prefs) async {
_secureStorage = const FlutterSecureStorage();
_preferences = prefs;
+
+ ///Workaround for privacyScreen not working when app is killed and opened.
+ await setHideAppContent(getShouldHideAppContent());
+ }
+
+ Future setHideAppContent(bool hideContent) async {
+ !hideContent
+ ? await PrivacyScreen.instance.disable()
+ : await PrivacyScreen.instance.enable(
+ iosOptions: const PrivacyIosOptions(
+ enablePrivacy: true,
+ lockTrigger: IosLockTrigger.didEnterBackground,
+ ),
+ androidOptions: const PrivacyAndroidOptions(
+ enableSecure: true,
+ ),
+ blurEffect: PrivacyBlurEffect.extraLight,
+ );
+ await _preferences.setBool(keyHideAppContent, hideContent);
+ }
+
+ bool getShouldHideAppContent() {
+ return _preferences.getBool(keyHideAppContent) ?? false;
}
Future setAutoLockTime(Duration duration) async {
diff --git a/mobile/pubspec.lock b/mobile/pubspec.lock
index 138d9890fe..ca98122697 100644
--- a/mobile/pubspec.lock
+++ b/mobile/pubspec.lock
@@ -1903,6 +1903,14 @@ packages:
url: "https://pub.dev"
source: hosted
version: "1.5.1"
+ privacy_screen:
+ dependency: "direct main"
+ description:
+ name: privacy_screen
+ sha256: b80297d2726d96e8a8341149e81a415302755f02d3af7c05c820d9e191bbfbee
+ url: "https://pub.dev"
+ source: hosted
+ version: "0.0.6"
process:
dependency: transitive
description:
diff --git a/mobile/pubspec.yaml b/mobile/pubspec.yaml
index eebc7b4491..cf3cd0bf4c 100644
--- a/mobile/pubspec.yaml
+++ b/mobile/pubspec.yaml
@@ -142,6 +142,7 @@ dependencies:
pinput: ^5.0.0
pointycastle: ^3.7.3
pool: ^1.5.1
+ privacy_screen: ^0.0.6
protobuf: ^3.1.0
provider: ^6.0.0
quiver: ^3.0.1