Merge branch 'main' into use_media_kit
This commit is contained in:
commit
21d6a4672b
15 changed files with 235 additions and 78 deletions
37
lib/generated/intl/messages_fr.dart
generated
37
lib/generated/intl/messages_fr.dart
generated
|
@ -94,7 +94,7 @@ class MessageLookup extends MessageLookupByLibrary {
|
|||
static String m21(endDate) => "Essai gratuit valide jusqu’au ${endDate}";
|
||||
|
||||
static String m22(count) =>
|
||||
"Vous pouvez toujours accéder à ${Intl.plural(count, one: 'it', other: 'them')} sur ente tant que vous avez un abonnement actif";
|
||||
"Vous pouvez toujours ${Intl.plural(count, one: 'y', other: 'y')} accéder sur ente tant que vous avez un abonnement actif";
|
||||
|
||||
static String m23(sizeInMBorGB) => "Libérer ${sizeInMBorGB}";
|
||||
|
||||
|
@ -140,10 +140,10 @@ class MessageLookup extends MessageLookupByLibrary {
|
|||
|
||||
static String m38(endDate) => "Renouvellement le ${endDate}";
|
||||
|
||||
static String m39(count) => "${count} sélectionné";
|
||||
static String m39(count) => "${count} sélectionné(s)";
|
||||
|
||||
static String m40(count, yourCount) =>
|
||||
"${count} sélectionné (${yourCount} votre)";
|
||||
"${count} sélectionné(s) (${yourCount} à vous)";
|
||||
|
||||
static String m41(verificationID) =>
|
||||
"Voici mon ID de vérification : ${verificationID} pour ente.io.";
|
||||
|
@ -160,10 +160,10 @@ class MessageLookup extends MessageLookupByLibrary {
|
|||
static String m45(emailIDs) => "Partagé avec ${emailIDs}";
|
||||
|
||||
static String m46(fileType) =>
|
||||
"Ce ${fileType} sera supprimé de votre appareil.";
|
||||
"Elle ${fileType} sera supprimée de votre appareil.";
|
||||
|
||||
static String m47(fileType) =>
|
||||
"Ce ${fileType} est à la fois dans ente et votre appareil.";
|
||||
"Cette ${fileType} est à la fois sur ente et sur votre appareil.";
|
||||
|
||||
static String m48(fileType) => "Ce ${fileType} sera supprimé de ente.";
|
||||
|
||||
|
@ -195,7 +195,7 @@ class MessageLookup extends MessageLookupByLibrary {
|
|||
"Nous avons envoyé un e-mail à <green>${email}</green>";
|
||||
|
||||
static String m59(count) =>
|
||||
"${Intl.plural(count, one: '${count} il y a un an', other: '${count} il y a des années')}";
|
||||
"${Intl.plural(count, one: 'il y a ${count} an', other: 'il y a ${count} ans')}";
|
||||
|
||||
static String m60(storageSaved) =>
|
||||
"Vous avez libéré ${storageSaved} avec succès !";
|
||||
|
@ -230,7 +230,7 @@ class MessageLookup extends MessageLookupByLibrary {
|
|||
MessageLookupByLibrary.simpleMessage("Ajouter à l\'album"),
|
||||
"addToEnte": MessageLookupByLibrary.simpleMessage("Ajouter à ente"),
|
||||
"addToHiddenAlbum":
|
||||
MessageLookupByLibrary.simpleMessage("Add to hidden album"),
|
||||
MessageLookupByLibrary.simpleMessage("Ajouter à un album masqué"),
|
||||
"addViewer":
|
||||
MessageLookupByLibrary.simpleMessage("Ajouter un observateur"),
|
||||
"addedAs": MessageLookupByLibrary.simpleMessage("Ajouté comme"),
|
||||
|
@ -373,6 +373,8 @@ class MessageLookup extends MessageLookupByLibrary {
|
|||
"cancelSubscription":
|
||||
MessageLookupByLibrary.simpleMessage("Annuler l\'abonnement"),
|
||||
"cannotAddMorePhotosAfterBecomingViewer": m6,
|
||||
"cannotDeleteSharedFiles": MessageLookupByLibrary.simpleMessage(
|
||||
"Les fichiers partagés ne peuvent pas être supprimés"),
|
||||
"centerPoint": MessageLookupByLibrary.simpleMessage("Point central"),
|
||||
"changeEmail":
|
||||
MessageLookupByLibrary.simpleMessage("Modifier l\'e-mail"),
|
||||
|
@ -503,7 +505,7 @@ class MessageLookup extends MessageLookupByLibrary {
|
|||
"deleteAlbum":
|
||||
MessageLookupByLibrary.simpleMessage("Supprimer l\'album"),
|
||||
"deleteAlbumDialog": MessageLookupByLibrary.simpleMessage(
|
||||
"Supprimer aussi les photos (et vidéos) présentes dans cet album depuis <bold>tous</bold> les autres albums dont ils font partie ?"),
|
||||
"Supprimer aussi les photos (et vidéos) présentes dans cet album de <bold>tous</bold> les autres albums dont elles font partie ?"),
|
||||
"deleteAlbumsDialogBody": MessageLookupByLibrary.simpleMessage(
|
||||
"Ceci supprimera tous les albums vides. Ceci est utile lorsque vous voulez réduire l\'encombrement dans votre liste d\'albums."),
|
||||
"deleteAll": MessageLookupByLibrary.simpleMessage("Tout Supprimer"),
|
||||
|
@ -541,7 +543,7 @@ class MessageLookup extends MessageLookupByLibrary {
|
|||
"deleteSharedAlbum": MessageLookupByLibrary.simpleMessage(
|
||||
"Supprimer l\'album partagé ?"),
|
||||
"deleteSharedAlbumDialogBody": MessageLookupByLibrary.simpleMessage(
|
||||
"L\'album sera supprimé pour tout le monde\n\nVous perdrez l\'accès aux photos partagées dans cet album qui est détenues par d\'autres personnes"),
|
||||
"L\'album sera supprimé pour tout le monde\n\nVous perdrez l\'accès aux photos partagées dans cet album qui sont détenues par d\'autres personnes"),
|
||||
"deselectAll":
|
||||
MessageLookupByLibrary.simpleMessage("Tout déselectionner"),
|
||||
"designedToOutlive":
|
||||
|
@ -720,6 +722,8 @@ class MessageLookup extends MessageLookupByLibrary {
|
|||
MessageLookupByLibrary.simpleMessage("Allez aux réglages"),
|
||||
"googlePlayId":
|
||||
MessageLookupByLibrary.simpleMessage("Identifiant Google Play"),
|
||||
"grantFullAccessPrompt": MessageLookupByLibrary.simpleMessage(
|
||||
"Veuillez autoriser l’accès à toutes les photos dans les paramètres"),
|
||||
"grantPermission":
|
||||
MessageLookupByLibrary.simpleMessage("Accorder la permission"),
|
||||
"groupNearbyPhotos": MessageLookupByLibrary.simpleMessage(
|
||||
|
@ -873,8 +877,8 @@ class MessageLookup extends MessageLookupByLibrary {
|
|||
"moveItem": m28,
|
||||
"moveToAlbum":
|
||||
MessageLookupByLibrary.simpleMessage("Déplacer vers l\'album"),
|
||||
"moveToHiddenAlbum":
|
||||
MessageLookupByLibrary.simpleMessage("Move to hidden album"),
|
||||
"moveToHiddenAlbum": MessageLookupByLibrary.simpleMessage(
|
||||
"Déplacer vers un album masqué"),
|
||||
"movedSuccessfullyTo": m29,
|
||||
"movedToTrash":
|
||||
MessageLookupByLibrary.simpleMessage("Déplacé dans la corbeille"),
|
||||
|
@ -888,6 +892,7 @@ class MessageLookup extends MessageLookupByLibrary {
|
|||
"no": MessageLookupByLibrary.simpleMessage("Non"),
|
||||
"noAlbumsSharedByYouYet": MessageLookupByLibrary.simpleMessage(
|
||||
"Aucun album que vous avez partagé"),
|
||||
"noDeviceLimit": MessageLookupByLibrary.simpleMessage("Aucune"),
|
||||
"noDeviceThatCanBeDeleted": MessageLookupByLibrary.simpleMessage(
|
||||
"Vous n\'avez pas de fichiers sur cet appareil qui peuvent être supprimés"),
|
||||
"noDuplicates": MessageLookupByLibrary.simpleMessage("✨ Aucun doublon"),
|
||||
|
@ -923,6 +928,8 @@ class MessageLookup extends MessageLookupByLibrary {
|
|||
"Oups, impossible d\'enregistrer les modifications"),
|
||||
"oopsSomethingWentWrong": MessageLookupByLibrary.simpleMessage(
|
||||
"Oups, une erreur est arrivée"),
|
||||
"openSettings":
|
||||
MessageLookupByLibrary.simpleMessage("Ouvrir les paramètres"),
|
||||
"openTheItem":
|
||||
MessageLookupByLibrary.simpleMessage("• Ouvrir l\'élément"),
|
||||
"openstreetmapContributors": MessageLookupByLibrary.simpleMessage(
|
||||
|
@ -996,6 +1003,8 @@ class MessageLookup extends MessageLookupByLibrary {
|
|||
"preserveMore": MessageLookupByLibrary.simpleMessage("Conserver plus"),
|
||||
"pressAndHoldToPlayVideo": MessageLookupByLibrary.simpleMessage(
|
||||
"Appuyez et maintenez enfoncé pour lire la vidéo"),
|
||||
"pressAndHoldToPlayVideoDetailed": MessageLookupByLibrary.simpleMessage(
|
||||
"Maintenez appuyé sur l\'image pour lire la vidéo"),
|
||||
"privacy": MessageLookupByLibrary.simpleMessage("Confidentialité"),
|
||||
"privacyPolicyTitle": MessageLookupByLibrary.simpleMessage(
|
||||
"Politique de Confidentialité"),
|
||||
|
@ -1073,7 +1082,7 @@ class MessageLookup extends MessageLookupByLibrary {
|
|||
"removePublicLink":
|
||||
MessageLookupByLibrary.simpleMessage("Supprimer le lien public"),
|
||||
"removeShareItemsWarning": MessageLookupByLibrary.simpleMessage(
|
||||
"Certains des objets que vous êtes en train de retirer ont été ajoutés par d\'autres personnes, vous perdrez l\'accès vers ces objets"),
|
||||
"Certains des éléments que vous êtes en train de retirer ont été ajoutés par d\'autres personnes, vous perdrez l\'accès vers ces éléments"),
|
||||
"removeWithQuestionMark":
|
||||
MessageLookupByLibrary.simpleMessage("Enlever?"),
|
||||
"removingFromFavorites":
|
||||
|
@ -1139,6 +1148,8 @@ class MessageLookup extends MessageLookupByLibrary {
|
|||
"Sélectionner les éléments à ajouter"),
|
||||
"selectLanguage":
|
||||
MessageLookupByLibrary.simpleMessage("Sélectionner une langue"),
|
||||
"selectMorePhotos":
|
||||
MessageLookupByLibrary.simpleMessage("Sélectionner plus de photos"),
|
||||
"selectReason":
|
||||
MessageLookupByLibrary.simpleMessage("Sélectionner une raison"),
|
||||
"selectYourPlan":
|
||||
|
@ -1210,7 +1221,7 @@ class MessageLookup extends MessageLookupByLibrary {
|
|||
"J\'accepte les <u-terms>conditions d\'utilisation</u-terms> et la <u-policy>politique de confidentialité</u-policy>"),
|
||||
"singleFileDeleteFromDevice": m46,
|
||||
"singleFileDeleteHighlight": MessageLookupByLibrary.simpleMessage(
|
||||
"Il sera supprimé de tous les albums."),
|
||||
"Elle sera supprimée de tous les albums."),
|
||||
"singleFileInBothLocalAndRemote": m47,
|
||||
"singleFileInRemoteOnly": m48,
|
||||
"skip": MessageLookupByLibrary.simpleMessage("Ignorer"),
|
||||
|
|
20
lib/generated/intl/messages_zh.dart
generated
20
lib/generated/intl/messages_zh.dart
generated
|
@ -200,8 +200,7 @@ class MessageLookup extends MessageLookupByLibrary {
|
|||
"addSelected": MessageLookupByLibrary.simpleMessage("添加所选项"),
|
||||
"addToAlbum": MessageLookupByLibrary.simpleMessage("添加到相册"),
|
||||
"addToEnte": MessageLookupByLibrary.simpleMessage("添加到 ente"),
|
||||
"addToHiddenAlbum":
|
||||
MessageLookupByLibrary.simpleMessage("Add to hidden album"),
|
||||
"addToHiddenAlbum": MessageLookupByLibrary.simpleMessage("添加到隐藏相册"),
|
||||
"addViewer": MessageLookupByLibrary.simpleMessage("添加查看者"),
|
||||
"addedAs": MessageLookupByLibrary.simpleMessage("已添加为"),
|
||||
"addedBy": m1,
|
||||
|
@ -318,6 +317,8 @@ class MessageLookup extends MessageLookupByLibrary {
|
|||
"cancelOtherSubscription": m5,
|
||||
"cancelSubscription": MessageLookupByLibrary.simpleMessage("取消订阅"),
|
||||
"cannotAddMorePhotosAfterBecomingViewer": m6,
|
||||
"cannotDeleteSharedFiles":
|
||||
MessageLookupByLibrary.simpleMessage("无法删除共享文件"),
|
||||
"centerPoint": MessageLookupByLibrary.simpleMessage("中心点"),
|
||||
"changeEmail": MessageLookupByLibrary.simpleMessage("修改邮箱"),
|
||||
"changePassword": MessageLookupByLibrary.simpleMessage("修改密码"),
|
||||
|
@ -577,10 +578,13 @@ class MessageLookup extends MessageLookupByLibrary {
|
|||
MessageLookupByLibrary.simpleMessage("正在生成加密密钥..."),
|
||||
"goToSettings": MessageLookupByLibrary.simpleMessage("前往设置"),
|
||||
"googlePlayId": MessageLookupByLibrary.simpleMessage("Google Play ID"),
|
||||
"grantFullAccessPrompt":
|
||||
MessageLookupByLibrary.simpleMessage("请在“设置”应用中将权限更改为允许访问所有所有照片"),
|
||||
"grantPermission": MessageLookupByLibrary.simpleMessage("授予权限"),
|
||||
"groupNearbyPhotos": MessageLookupByLibrary.simpleMessage("将附近的照片分组"),
|
||||
"hidden": MessageLookupByLibrary.simpleMessage("已隐藏"),
|
||||
"hide": MessageLookupByLibrary.simpleMessage("隐藏"),
|
||||
"hiding": MessageLookupByLibrary.simpleMessage("正在隐藏..."),
|
||||
"hostedAtOsmFrance": MessageLookupByLibrary.simpleMessage("法国 OSM 主办"),
|
||||
"howItWorks": MessageLookupByLibrary.simpleMessage("工作原理"),
|
||||
"howToViewShareeVerificationID": MessageLookupByLibrary.simpleMessage(
|
||||
|
@ -700,8 +704,7 @@ class MessageLookup extends MessageLookupByLibrary {
|
|||
"monthly": MessageLookupByLibrary.simpleMessage("每月"),
|
||||
"moveItem": m28,
|
||||
"moveToAlbum": MessageLookupByLibrary.simpleMessage("移动到相册"),
|
||||
"moveToHiddenAlbum":
|
||||
MessageLookupByLibrary.simpleMessage("Move to hidden album"),
|
||||
"moveToHiddenAlbum": MessageLookupByLibrary.simpleMessage("移至隐藏相册"),
|
||||
"movedSuccessfullyTo": m29,
|
||||
"movedToTrash": MessageLookupByLibrary.simpleMessage("已移至回收站"),
|
||||
"movingFilesToAlbum":
|
||||
|
@ -714,6 +717,7 @@ class MessageLookup extends MessageLookupByLibrary {
|
|||
"no": MessageLookupByLibrary.simpleMessage("否"),
|
||||
"noAlbumsSharedByYouYet":
|
||||
MessageLookupByLibrary.simpleMessage("您尚未共享任何相册"),
|
||||
"noDeviceLimit": MessageLookupByLibrary.simpleMessage("无"),
|
||||
"noDeviceThatCanBeDeleted":
|
||||
MessageLookupByLibrary.simpleMessage("您在此设备上没有可被删除的文件"),
|
||||
"noDuplicates": MessageLookupByLibrary.simpleMessage("✨ 没有重复内容"),
|
||||
|
@ -743,6 +747,7 @@ class MessageLookup extends MessageLookupByLibrary {
|
|||
MessageLookupByLibrary.simpleMessage("糟糕,无法保存编辑"),
|
||||
"oopsSomethingWentWrong":
|
||||
MessageLookupByLibrary.simpleMessage("哎呀,似乎出了点问题"),
|
||||
"openSettings": MessageLookupByLibrary.simpleMessage("打开“设置”"),
|
||||
"openTheItem": MessageLookupByLibrary.simpleMessage("• 打开该项目"),
|
||||
"openstreetmapContributors":
|
||||
MessageLookupByLibrary.simpleMessage("OpenStreetMap 贡献者"),
|
||||
|
@ -798,6 +803,8 @@ class MessageLookup extends MessageLookupByLibrary {
|
|||
"preserveMore": MessageLookupByLibrary.simpleMessage("保留更多"),
|
||||
"pressAndHoldToPlayVideo":
|
||||
MessageLookupByLibrary.simpleMessage("按住以播放视频"),
|
||||
"pressAndHoldToPlayVideoDetailed":
|
||||
MessageLookupByLibrary.simpleMessage("长按图像以播放视频"),
|
||||
"privacy": MessageLookupByLibrary.simpleMessage("隐私"),
|
||||
"privacyPolicyTitle": MessageLookupByLibrary.simpleMessage("隐私政策"),
|
||||
"privateBackups": MessageLookupByLibrary.simpleMessage("私人备份"),
|
||||
|
@ -901,6 +908,7 @@ class MessageLookup extends MessageLookupByLibrary {
|
|||
MessageLookupByLibrary.simpleMessage("选择要备份的文件夹"),
|
||||
"selectItemsToAdd": MessageLookupByLibrary.simpleMessage("选择要添加的项目"),
|
||||
"selectLanguage": MessageLookupByLibrary.simpleMessage("选择语言"),
|
||||
"selectMorePhotos": MessageLookupByLibrary.simpleMessage("选择更多照片"),
|
||||
"selectReason": MessageLookupByLibrary.simpleMessage("选择原因"),
|
||||
"selectYourPlan": MessageLookupByLibrary.simpleMessage("选择您的计划"),
|
||||
"selectedFilesAreNotOnEnte":
|
||||
|
@ -953,6 +961,7 @@ class MessageLookup extends MessageLookupByLibrary {
|
|||
"sharedWithMe": MessageLookupByLibrary.simpleMessage("与我共享"),
|
||||
"sharedWithYou": MessageLookupByLibrary.simpleMessage("已与您共享"),
|
||||
"sharing": MessageLookupByLibrary.simpleMessage("正在分享..."),
|
||||
"showMemories": MessageLookupByLibrary.simpleMessage("显示回忆"),
|
||||
"signUpTerms": MessageLookupByLibrary.simpleMessage(
|
||||
"我同意 <u-terms>服务条款</u-terms> 和 <u-policy>隐私政策</u-policy>"),
|
||||
"singleFileDeleteFromDevice": m46,
|
||||
|
@ -1001,8 +1010,10 @@ class MessageLookup extends MessageLookupByLibrary {
|
|||
"subscription": MessageLookupByLibrary.simpleMessage("订阅"),
|
||||
"success": MessageLookupByLibrary.simpleMessage("成功"),
|
||||
"successfullyArchived": MessageLookupByLibrary.simpleMessage("归档成功"),
|
||||
"successfullyHid": MessageLookupByLibrary.simpleMessage("已成功隐藏"),
|
||||
"successfullyUnarchived":
|
||||
MessageLookupByLibrary.simpleMessage("取消归档成功"),
|
||||
"successfullyUnhid": MessageLookupByLibrary.simpleMessage("已成功取消隐藏"),
|
||||
"suggestFeatures": MessageLookupByLibrary.simpleMessage("建议新功能"),
|
||||
"support": MessageLookupByLibrary.simpleMessage("支持"),
|
||||
"syncProgress": m53,
|
||||
|
@ -1078,6 +1089,7 @@ class MessageLookup extends MessageLookupByLibrary {
|
|||
"uncategorized": MessageLookupByLibrary.simpleMessage("未分类的"),
|
||||
"unhide": MessageLookupByLibrary.simpleMessage("取消隐藏"),
|
||||
"unhideToAlbum": MessageLookupByLibrary.simpleMessage("取消隐藏到相册"),
|
||||
"unhiding": MessageLookupByLibrary.simpleMessage("正在取消隐藏..."),
|
||||
"unhidingFilesToAlbum":
|
||||
MessageLookupByLibrary.simpleMessage("正在取消隐藏文件到相册"),
|
||||
"unlock": MessageLookupByLibrary.simpleMessage("解锁"),
|
||||
|
|
|
@ -24,6 +24,7 @@
|
|||
"sendEmail": "E-Mail senden",
|
||||
"deleteRequestSLAText": "Deine Anfrage wird innerhalb von 72 Stunden bearbeitet.",
|
||||
"deleteEmailRequest": "Bitte sende eine E-Mail an <warning>account-deletion@ente.io</warning> von Deiner bei uns hinterlegten E-Mail-Adresse.",
|
||||
"entePhotosPerm": "ente <i>benötigt die Erlaubnis</i> Ihre Fotos zu bewahren",
|
||||
"ok": "Ok",
|
||||
"createAccount": "Konto erstellen",
|
||||
"createNewAccount": "Neues Konto erstellen",
|
||||
|
@ -48,6 +49,7 @@
|
|||
"sorry": "Entschuldigung",
|
||||
"noRecoveryKeyNoDecryption": "Aufgrund unseres Ende-zu-Ende-Verschlüsselungsprotokolls können deine Daten nicht ohne dein Passwort oder deinen Wiederherstellungs-Schlüssel entschlüsselt werden",
|
||||
"verifyEmail": "E-Mail-Adresse verifizieren",
|
||||
"toResetVerifyEmail": "Um Ihr Passwort zurückzusetzen, verifizieren Sie bitte zuerst Ihre E-Mail Adresse.",
|
||||
"checkInboxAndSpamFolder": "Bitte überprüfe deinen E-Mail-Posteingang (und Spam), um die Verifizierung abzuschließen",
|
||||
"tapToEnterCode": "Antippen, um den Code einzugeben",
|
||||
"resendEmail": "E-Mail erneut senden",
|
||||
|
@ -187,6 +189,10 @@
|
|||
"disableDownloadWarningBody": "Zuschauer können weiterhin Screenshots oder mit anderen externen Programmen Kopien der Bilder machen.",
|
||||
"allowDownloads": "Downloads erlauben",
|
||||
"linkDeviceLimit": "Geräte Limit",
|
||||
"noDeviceLimit": "Keins",
|
||||
"@noDeviceLimit": {
|
||||
"description": "Text to indicate that there is limit on number of devices"
|
||||
},
|
||||
"linkExpiry": "Ablaufdatum des Links",
|
||||
"linkExpired": "Abgelaufen",
|
||||
"linkEnabled": "Aktiviert",
|
||||
|
@ -199,15 +205,6 @@
|
|||
"manageLink": "Link verwalten",
|
||||
"linkExpiresOn": "Link läuft am {expiryTime} ab",
|
||||
"albumUpdated": "Album aktualisiert",
|
||||
"maxDeviceLimitSpikeHandling": "Wenn auf den Höchstwert von {maxValue} gesetzt, dann wird das Limit gelockert um potenzielle Höchstlasten unterstützen zu können.",
|
||||
"@maxDeviceLimitSpikeHandling": {
|
||||
"placeholders": {
|
||||
"maxValue": {
|
||||
"type": "int",
|
||||
"example": "100"
|
||||
}
|
||||
}
|
||||
},
|
||||
"never": "Niemals",
|
||||
"custom": "Benutzerdefiniert",
|
||||
"@custom": {
|
||||
|
@ -417,6 +414,23 @@
|
|||
"skip": "Überspringen",
|
||||
"updatingFolderSelection": "Ordnerauswahl wird aktualisiert...",
|
||||
"itemCount": "{count, plural, one{{count} Objekt} other{{count} Objekte}}",
|
||||
"deleteItemCount": "{count, plural, one {}=1 {Lösche {count} Element} other {Lösche {count} Elemente}}",
|
||||
"duplicateItemsGroup": "{count} Dateien, {formattedSize} jede",
|
||||
"@duplicateItemsGroup": {
|
||||
"description": "Display the number of duplicate files and their size",
|
||||
"type": "text",
|
||||
"placeholders": {
|
||||
"count": {
|
||||
"example": "12",
|
||||
"type": "int"
|
||||
},
|
||||
"formattedSize": {
|
||||
"example": "2.3 MB",
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
"showMemories": "Erinnerungen anschauen",
|
||||
"yearsAgo": "{count, plural, one{vor einem Jahr} other{vor {count} Jahren}}",
|
||||
"backupSettings": "Backup-Einstellungen",
|
||||
"backupOverMobileData": "Über mobile Daten sichern",
|
||||
|
@ -435,6 +449,8 @@
|
|||
"authToChangeYourEmail": "Bitte authentifizieren, um deine E-Mail-Adresse zu ändern",
|
||||
"changePassword": "Passwort ändern",
|
||||
"authToChangeYourPassword": "Bitte authentifizieren, um das Passwort zu ändern",
|
||||
"emailVerificationToggle": "E-Mail-Verifizierung",
|
||||
"authToChangeEmailVerificationSetting": "Bitte Authentifizieren um die E-Mail Bestätigung zu ändern",
|
||||
"exportYourData": "Daten exportieren",
|
||||
"logout": "Ausloggen",
|
||||
"authToInitiateAccountDeletion": "Bitte authentifizieren, um die Löschung des Kontos einzuleiten",
|
||||
|
@ -447,6 +463,7 @@
|
|||
"updateAvailable": "Update verfügbar",
|
||||
"ignoreUpdate": "Ignorieren",
|
||||
"downloading": "Wird heruntergeladen...",
|
||||
"cannotDeleteSharedFiles": "Konnte geteilte Dateien nicht löschen",
|
||||
"theDownloadCouldNotBeCompleted": "Der Download konnte nicht abgeschlossen werden",
|
||||
"retry": "Erneut versuchen",
|
||||
"backedUpFolders": "Gesicherte Ordner",
|
||||
|
@ -490,6 +507,9 @@
|
|||
},
|
||||
"familyPlans": "Familientarif",
|
||||
"referrals": "Weiterempfehlungen",
|
||||
"notifications": "Benachrichtigungen",
|
||||
"sharedPhotoNotifications": "Neue geteilte Fotos",
|
||||
"sharedPhotoNotificationsExplanation": "Erhalte Benachrichtigungen, wenn jemand ein Foto zu einem gemeinsam genutzten Album hinzufügt, dem du angehörst",
|
||||
"advanced": "Erweitert",
|
||||
"general": "Allgemein",
|
||||
"security": "Sicherheit",
|
||||
|
@ -538,6 +558,7 @@
|
|||
"faqs": "FAQs",
|
||||
"renewsOn": "Erneuert am {endDate}",
|
||||
"freeTrialValidTill": "Kostenlose Demo verfügbar bis zum {endDate}",
|
||||
"playStoreFreeTrialValidTill": "Kostenlose Testversion gültig bis {endDate}.\nSie können anschließend ein bezahltes Paket auswählen.",
|
||||
"subWillBeCancelledOn": "Ihr Abo endet am {endDate}",
|
||||
"subscription": "Abonnement",
|
||||
"paymentDetails": "Zahlungsdetails",
|
||||
|
@ -619,6 +640,9 @@
|
|||
"startBackup": "Sicherung starten",
|
||||
"noPhotosAreBeingBackedUpRightNow": "Momentan werden keine Fotos gesichert",
|
||||
"preserveMore": "Mehr Daten sichern",
|
||||
"grantFullAccessPrompt": "Bitte gewähre Zugang zu allen Fotos in der Einstellungen App",
|
||||
"openSettings": "Öffne Einstellungen",
|
||||
"selectMorePhotos": "Mehr Fotos auswählen",
|
||||
"existingUser": "Existierender Benutzer",
|
||||
"privateBackups": "Private Sicherungen",
|
||||
"forYourMemories": "Als Erinnerung",
|
||||
|
@ -742,6 +766,7 @@
|
|||
},
|
||||
"deleteAll": "Alle löschen",
|
||||
"renameAlbum": "Album umbenennen",
|
||||
"convertToAlbum": "Konvertiere zum Album",
|
||||
"setCover": "Titelbild festlegen",
|
||||
"@setCover": {
|
||||
"description": "Text to set cover photo for an album"
|
||||
|
@ -788,6 +813,7 @@
|
|||
"fileFailedToSaveToGallery": "Fehler beim Speichern der Datei in der Galerie",
|
||||
"download": "Herunterladen",
|
||||
"pressAndHoldToPlayVideo": "Gedrückt halten, um Video abzuspielen",
|
||||
"pressAndHoldToPlayVideoDetailed": "Drücke und halte aufs Foto gedrückt um Video abzuspielen",
|
||||
"downloadFailed": "Herunterladen fehlgeschlagen",
|
||||
"deduplicateFiles": "Dateien duplizieren",
|
||||
"deselectAll": "Alle abwählen",
|
||||
|
@ -945,6 +971,10 @@
|
|||
"centerPoint": "Mittelpunkt",
|
||||
"pickCenterPoint": "Mittelpunkt auswählen",
|
||||
"useSelectedPhoto": "Ausgewähltes Foto verwenden",
|
||||
"resetToDefault": "Standardwerte zurücksetzen",
|
||||
"@resetToDefault": {
|
||||
"description": "Button text to reset cover photo to default"
|
||||
},
|
||||
"edit": "Bearbeiten",
|
||||
"deleteLocation": "Standort löschen",
|
||||
"rotateLeft": "Nach links drehen",
|
||||
|
@ -1048,6 +1078,29 @@
|
|||
"maps": "Karten",
|
||||
"enableMaps": "Karten aktivieren",
|
||||
"enableMapsDesc": "Dies zeigt Ihre Fotos auf einer Weltkarte.\n\nDiese Karte wird von OpenStreetMap gehostet und die genauen Standorte Ihrer Fotos werden niemals geteilt.\n\nSie können diese Funktion jederzeit in den Einstellungen deaktivieren.",
|
||||
"addToHiddenAlbum": "Add to hidden album",
|
||||
"moveToHiddenAlbum": "Move to hidden album"
|
||||
"quickLinks": "Quick Links",
|
||||
"selectItemsToAdd": "Elemente zum Hinzufügen auswählen",
|
||||
"addSelected": "Auswahl hinzufügen",
|
||||
"addFromDevice": "Vom Gerät hinzufügen",
|
||||
"addPhotos": "Fotos hinzufügen",
|
||||
"noPhotosFoundHere": "Keine Fotos gefunden",
|
||||
"zoomOutToSeePhotos": "Verkleinern, um Fotos zu sehen",
|
||||
"noImagesWithLocation": "Keine Bilder mit Standort",
|
||||
"unpinAlbum": "Album lösen",
|
||||
"pinAlbum": "Album anheften",
|
||||
"create": "Erstellen",
|
||||
"viewAll": "Alle anzeigen",
|
||||
"nothingSharedWithYouYet": "Noch nichts mit Dir geteilt",
|
||||
"noAlbumsSharedByYouYet": "Noch keine Alben von dir geteilt",
|
||||
"sharedWithYou": "Mit dir geteilt",
|
||||
"sharedByYou": "Von dir geteilt",
|
||||
"inviteYourFriendsToEnte": "Lade deine Freunde zu ente ein",
|
||||
"failedToDownloadVideo": "Herunterladen des Videos fehlgeschlagen",
|
||||
"hiding": "Verstecken...",
|
||||
"unhiding": "Einblenden...",
|
||||
"successfullyHid": "Erfolgreich versteckt",
|
||||
"successfullyUnhid": "Erfolgreich eingeblendet",
|
||||
"crashReporting": "Absturzbericht",
|
||||
"addToHiddenAlbum": "Zum versteckten Album hinzufügen",
|
||||
"moveToHiddenAlbum": "Zu verstecktem Album verschieben"
|
||||
}
|
|
@ -189,6 +189,10 @@
|
|||
"disableDownloadWarningBody": "Les téléspectateurs peuvent toujours prendre des captures d'écran ou enregistrer une copie de vos photos en utilisant des outils externes",
|
||||
"allowDownloads": "Autoriser les téléchargements",
|
||||
"linkDeviceLimit": "Limite d'appareil",
|
||||
"noDeviceLimit": "Aucune",
|
||||
"@noDeviceLimit": {
|
||||
"description": "Text to indicate that there is limit on number of devices"
|
||||
},
|
||||
"linkExpiry": "Expiration du lien",
|
||||
"linkExpired": "Expiré",
|
||||
"linkEnabled": "Activé",
|
||||
|
@ -201,15 +205,6 @@
|
|||
"manageLink": "Gérer le lien",
|
||||
"linkExpiresOn": "Le lien expirera le {expiryTime}",
|
||||
"albumUpdated": "Album mis à jour",
|
||||
"maxDeviceLimitSpikeHandling": "Lorsqu'elle est définie au maximum ({maxValue}), la limite de l'appareil sera assouplie pour permettre des pointes temporaires d'un grand nombre de téléspectateurs.",
|
||||
"@maxDeviceLimitSpikeHandling": {
|
||||
"placeholders": {
|
||||
"maxValue": {
|
||||
"type": "int",
|
||||
"example": "100"
|
||||
}
|
||||
}
|
||||
},
|
||||
"never": "Jamais",
|
||||
"custom": "Personnaliser",
|
||||
"@custom": {
|
||||
|
@ -321,7 +316,7 @@
|
|||
"removeFromAlbumTitle": "Retirer de l'album ?",
|
||||
"removeFromAlbum": "Retirer de l'album",
|
||||
"itemsWillBeRemovedFromAlbum": "Les éléments sélectionnés seront supprimés de cet album",
|
||||
"removeShareItemsWarning": "Certains des objets que vous êtes en train de retirer ont été ajoutés par d'autres personnes, vous perdrez l'accès vers ces objets",
|
||||
"removeShareItemsWarning": "Certains des éléments que vous êtes en train de retirer ont été ajoutés par d'autres personnes, vous perdrez l'accès vers ces éléments",
|
||||
"addingToFavorites": "Ajout aux favoris...",
|
||||
"removingFromFavorites": "Suppression des favoris…",
|
||||
"sorryCouldNotAddToFavorites": "Désolé, impossible d'ajouter aux favoris !",
|
||||
|
@ -331,8 +326,8 @@
|
|||
"canOnlyRemoveFilesOwnedByYou": "Vous ne pouvez supprimer que les fichiers que vous possédez",
|
||||
"deleteSharedAlbum": "Supprimer l'album partagé ?",
|
||||
"deleteAlbum": "Supprimer l'album",
|
||||
"deleteAlbumDialog": "Supprimer aussi les photos (et vidéos) présentes dans cet album depuis <bold>tous</bold> les autres albums dont ils font partie ?",
|
||||
"deleteSharedAlbumDialogBody": "L'album sera supprimé pour tout le monde\n\nVous perdrez l'accès aux photos partagées dans cet album qui est détenues par d'autres personnes",
|
||||
"deleteAlbumDialog": "Supprimer aussi les photos (et vidéos) présentes dans cet album de <bold>tous</bold> les autres albums dont elles font partie ?",
|
||||
"deleteSharedAlbumDialogBody": "L'album sera supprimé pour tout le monde\n\nVous perdrez l'accès aux photos partagées dans cet album qui sont détenues par d'autres personnes",
|
||||
"yesRemove": "Oui, supprimer",
|
||||
"creatingLink": "Création du lien...",
|
||||
"removeWithQuestionMark": "Enlever?",
|
||||
|
@ -354,10 +349,10 @@
|
|||
"uncategorized": "Aucune catégorie",
|
||||
"videoSmallCase": "vidéo",
|
||||
"photoSmallCase": "photo",
|
||||
"singleFileDeleteHighlight": "Il sera supprimé de tous les albums.",
|
||||
"singleFileInBothLocalAndRemote": "Ce {fileType} est à la fois dans ente et votre appareil.",
|
||||
"singleFileDeleteHighlight": "Elle sera supprimée de tous les albums.",
|
||||
"singleFileInBothLocalAndRemote": "Cette {fileType} est à la fois sur ente et sur votre appareil.",
|
||||
"singleFileInRemoteOnly": "Ce {fileType} sera supprimé de ente.",
|
||||
"singleFileDeleteFromDevice": "Ce {fileType} sera supprimé de votre appareil.",
|
||||
"singleFileDeleteFromDevice": "Elle {fileType} sera supprimée de votre appareil.",
|
||||
"deleteFromEnte": "Supprimer de ente",
|
||||
"yesDelete": "Oui, supprimer",
|
||||
"movedToTrash": "Déplacé dans la corbeille",
|
||||
|
@ -380,7 +375,7 @@
|
|||
}
|
||||
}
|
||||
},
|
||||
"selectedPhotos": "{count} sélectionné",
|
||||
"selectedPhotos": "{count} sélectionné(s)",
|
||||
"@selectedPhotos": {
|
||||
"description": "Display the number of selected photos",
|
||||
"type": "text",
|
||||
|
@ -391,7 +386,7 @@
|
|||
}
|
||||
}
|
||||
},
|
||||
"selectedPhotosWithYours": "{count} sélectionné ({yourCount} votre)",
|
||||
"selectedPhotosWithYours": "{count} sélectionné(s) ({yourCount} à vous)",
|
||||
"@selectedPhotosWithYours": {
|
||||
"description": "Display the number of selected photos, including the number of selected photos owned by the user",
|
||||
"type": "text",
|
||||
|
@ -436,7 +431,7 @@
|
|||
}
|
||||
},
|
||||
"showMemories": "Montrer les souvenirs",
|
||||
"yearsAgo": "{count, plural, one{{count} il y a un an} other{{count} il y a des années}}",
|
||||
"yearsAgo": "{count, plural, one{il y a {count} an} other{il y a {count} ans}}",
|
||||
"backupSettings": "Paramètres de la sauvegarde",
|
||||
"backupOverMobileData": "Sauvegarde sur données mobiles",
|
||||
"backupVideos": "Sauvegarde des vidéos",
|
||||
|
@ -468,6 +463,7 @@
|
|||
"updateAvailable": "Une mise à jour est disponible",
|
||||
"ignoreUpdate": "Ignorer",
|
||||
"downloading": "Téléchargement en cours...",
|
||||
"cannotDeleteSharedFiles": "Les fichiers partagés ne peuvent pas être supprimés",
|
||||
"theDownloadCouldNotBeCompleted": "Le téléchargement n'a pas pu être terminé",
|
||||
"retry": "Réessayer",
|
||||
"backedUpFolders": "Dossiers sauvegardés",
|
||||
|
@ -644,6 +640,9 @@
|
|||
"startBackup": "Démarrer la sauvegarde",
|
||||
"noPhotosAreBeingBackedUpRightNow": "Aucune photo en cours de sauvegarde",
|
||||
"preserveMore": "Conserver plus",
|
||||
"grantFullAccessPrompt": "Veuillez autoriser l’accès à toutes les photos dans les paramètres",
|
||||
"openSettings": "Ouvrir les paramètres",
|
||||
"selectMorePhotos": "Sélectionner plus de photos",
|
||||
"existingUser": "Utilisateur existant",
|
||||
"privateBackups": "Sauvegardes privées",
|
||||
"forYourMemories": "pour vos souvenirs",
|
||||
|
@ -814,6 +813,7 @@
|
|||
"fileFailedToSaveToGallery": "Échec de l'enregistrement dans la galerie",
|
||||
"download": "Télécharger",
|
||||
"pressAndHoldToPlayVideo": "Appuyez et maintenez enfoncé pour lire la vidéo",
|
||||
"pressAndHoldToPlayVideoDetailed": "Maintenez appuyé sur l'image pour lire la vidéo",
|
||||
"downloadFailed": "Échec du téléchargement",
|
||||
"deduplicateFiles": "Déduplication de fichiers",
|
||||
"deselectAll": "Tout déselectionner",
|
||||
|
@ -862,7 +862,7 @@
|
|||
"@freeUpSpaceSaving": {
|
||||
"description": "Text to tell user how much space they can free up by deleting items from the device"
|
||||
},
|
||||
"freeUpAccessPostDelete": "Vous pouvez toujours accéder à {count, plural, one {it} other {them}} sur ente tant que vous avez un abonnement actif",
|
||||
"freeUpAccessPostDelete": "Vous pouvez toujours {count, plural, one {y} other {y}} accéder sur ente tant que vous avez un abonnement actif",
|
||||
"@freeUpAccessPostDelete": {
|
||||
"placeholders": {
|
||||
"count": {
|
||||
|
@ -1101,6 +1101,6 @@
|
|||
"successfullyHid": "Masquage réussi",
|
||||
"successfullyUnhid": "Masquage réussi",
|
||||
"crashReporting": "Rapports d'erreurs",
|
||||
"addToHiddenAlbum": "Add to hidden album",
|
||||
"moveToHiddenAlbum": "Move to hidden album"
|
||||
"addToHiddenAlbum": "Ajouter à un album masqué",
|
||||
"moveToHiddenAlbum": "Déplacer vers un album masqué"
|
||||
}
|
|
@ -189,6 +189,10 @@
|
|||
"disableDownloadWarningBody": "查看者仍然可以使用外部工具截图或保存您的照片副本",
|
||||
"allowDownloads": "允许下载",
|
||||
"linkDeviceLimit": "设备限制",
|
||||
"noDeviceLimit": "无",
|
||||
"@noDeviceLimit": {
|
||||
"description": "Text to indicate that there is limit on number of devices"
|
||||
},
|
||||
"linkExpiry": "链接过期",
|
||||
"linkExpired": "已过期",
|
||||
"linkEnabled": "已启用",
|
||||
|
@ -201,15 +205,6 @@
|
|||
"manageLink": "管理链接",
|
||||
"linkExpiresOn": "链接将在 {expiryTime} 过期",
|
||||
"albumUpdated": "相册已更新",
|
||||
"maxDeviceLimitSpikeHandling": "当设置为最大值 ({maxValue}) 时,设备限制将放宽以允许大量查看者查看的临时高峰。",
|
||||
"@maxDeviceLimitSpikeHandling": {
|
||||
"placeholders": {
|
||||
"maxValue": {
|
||||
"type": "int",
|
||||
"example": "100"
|
||||
}
|
||||
}
|
||||
},
|
||||
"never": "永不",
|
||||
"custom": "自定义",
|
||||
"@custom": {
|
||||
|
@ -435,6 +430,7 @@
|
|||
}
|
||||
}
|
||||
},
|
||||
"showMemories": "显示回忆",
|
||||
"yearsAgo": "{count, plural, one{{count} 年前} other{{count} 年前}}",
|
||||
"backupSettings": "备份设置",
|
||||
"backupOverMobileData": "通过移动数据备份",
|
||||
|
@ -467,6 +463,7 @@
|
|||
"updateAvailable": "有可用的更新",
|
||||
"ignoreUpdate": "忽略",
|
||||
"downloading": "正在下载...",
|
||||
"cannotDeleteSharedFiles": "无法删除共享文件",
|
||||
"theDownloadCouldNotBeCompleted": "未能完成下载",
|
||||
"retry": "重试",
|
||||
"backedUpFolders": "已备份的文件夹",
|
||||
|
@ -643,6 +640,9 @@
|
|||
"startBackup": "开始备份",
|
||||
"noPhotosAreBeingBackedUpRightNow": "目前没有照片正在备份",
|
||||
"preserveMore": "保留更多",
|
||||
"grantFullAccessPrompt": "请在“设置”应用中将权限更改为允许访问所有所有照片",
|
||||
"openSettings": "打开“设置”",
|
||||
"selectMorePhotos": "选择更多照片",
|
||||
"existingUser": "现有用户",
|
||||
"privateBackups": "私人备份",
|
||||
"forYourMemories": "为您的回忆",
|
||||
|
@ -813,6 +813,7 @@
|
|||
"fileFailedToSaveToGallery": "无法将文件保存到相册",
|
||||
"download": "下载",
|
||||
"pressAndHoldToPlayVideo": "按住以播放视频",
|
||||
"pressAndHoldToPlayVideoDetailed": "长按图像以播放视频",
|
||||
"downloadFailed": "下載失敗",
|
||||
"deduplicateFiles": "重复文件",
|
||||
"deselectAll": "取消全选",
|
||||
|
@ -1095,7 +1096,11 @@
|
|||
"sharedByYou": "您共享的",
|
||||
"inviteYourFriendsToEnte": "邀请您的好友加入ente",
|
||||
"failedToDownloadVideo": "视频下载失败",
|
||||
"hiding": "正在隐藏...",
|
||||
"unhiding": "正在取消隐藏...",
|
||||
"successfullyHid": "已成功隐藏",
|
||||
"successfullyUnhid": "已成功取消隐藏",
|
||||
"crashReporting": "崩溃报告",
|
||||
"addToHiddenAlbum": "Add to hidden album",
|
||||
"moveToHiddenAlbum": "Move to hidden album"
|
||||
"addToHiddenAlbum": "添加到隐藏相册",
|
||||
"moveToHiddenAlbum": "移至隐藏相册"
|
||||
}
|
|
@ -27,4 +27,27 @@ class Location with _$Location {
|
|||
if (latValue == 0.0 && longValue == 0.0) return false;
|
||||
return true;
|
||||
}
|
||||
|
||||
// isValidRange checks if the latitude and longitude are within the valid range
|
||||
// for latitude and longitude. Note: We are only checking the range while
|
||||
// rending location on the map. We need to investigate in which cases we are
|
||||
// parsing incorrect location value.
|
||||
static bool isValidRange({
|
||||
required double latitude,
|
||||
required double longitude,
|
||||
}) {
|
||||
if (latitude.isNaN || latitude.isInfinite) {
|
||||
return false;
|
||||
}
|
||||
if (longitude.isNaN || longitude.isInfinite) {
|
||||
return false;
|
||||
}
|
||||
if (latitude >= 90 || latitude <= -90) {
|
||||
return false;
|
||||
}
|
||||
if (longitude >= 180 || longitude <= -180) {
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -25,8 +25,9 @@ class NotificationService {
|
|||
NotificationResponse notificationResponse,
|
||||
)
|
||||
onNotificationTapped,
|
||||
SharedPreferences preferences,
|
||||
) async {
|
||||
_preferences = await SharedPreferences.getInstance();
|
||||
_preferences = preferences;
|
||||
const androidSettings = AndroidInitializationSettings('notification_icon');
|
||||
const iosSettings = DarwinInitializationSettings(
|
||||
requestAlertPermission: false,
|
||||
|
|
|
@ -139,6 +139,11 @@ class RemoteSyncService {
|
|||
Bus.instance.fire(SyncStatusUpdate(SyncStatus.completedBackup));
|
||||
}
|
||||
} else {
|
||||
// if filesToBeUploaded is empty, clear any stale files in the temp
|
||||
// directory
|
||||
if (filesToBeUploaded.isEmpty) {
|
||||
await _uploader.removeStaleFiles();
|
||||
}
|
||||
_existingSync?.complete();
|
||||
_existingSync = null;
|
||||
}
|
||||
|
|
|
@ -9,6 +9,7 @@ import "package:latlong2/latlong.dart";
|
|||
import "package:logging/logging.dart";
|
||||
import "package:photos/generated/l10n.dart";
|
||||
import 'package:photos/models/file/file.dart';
|
||||
import "package:photos/models/location/location.dart";
|
||||
import "package:photos/theme/ente_theme.dart";
|
||||
import "package:photos/ui/common/loading_widget.dart";
|
||||
import "package:photos/ui/map/image_marker.dart";
|
||||
|
@ -78,9 +79,17 @@ class _MapScreenState extends State<MapScreen> {
|
|||
bool hasAnyLocation = false;
|
||||
EnteFile? mostRecentFile;
|
||||
for (var file in files) {
|
||||
if (file.hasLocation && file.location != null) {
|
||||
if (file.hasLocation) {
|
||||
if (!Location.isValidRange(
|
||||
latitude: file.location!.latitude!,
|
||||
longitude: file.location!.longitude!,
|
||||
)) {
|
||||
_logger.warning(
|
||||
'Skipping file with invalid location ${file.toString()}',
|
||||
);
|
||||
continue;
|
||||
}
|
||||
hasAnyLocation = true;
|
||||
|
||||
if (mostRecentFile == null) {
|
||||
mostRecentFile = file;
|
||||
} else {
|
||||
|
|
|
@ -54,6 +54,7 @@ import "package:photos/ui/viewer/gallery/collection_page.dart";
|
|||
import 'package:photos/utils/dialog_util.dart';
|
||||
import "package:photos/utils/navigation_util.dart";
|
||||
import 'package:receive_sharing_intent/receive_sharing_intent.dart';
|
||||
import "package:shared_preferences/shared_preferences.dart";
|
||||
import 'package:uni_links/uni_links.dart';
|
||||
|
||||
class HomeWidget extends StatefulWidget {
|
||||
|
@ -209,7 +210,10 @@ class _HomeWidgetState extends State<HomeWidget> {
|
|||
),
|
||||
);
|
||||
|
||||
NotificationService.instance.init(_onDidReceiveNotificationResponse);
|
||||
SharedPreferences.getInstance().then((preferences) {
|
||||
NotificationService.instance
|
||||
.init(_onDidReceiveNotificationResponse, preferences);
|
||||
});
|
||||
|
||||
super.initState();
|
||||
}
|
||||
|
@ -278,10 +282,12 @@ class _HomeWidgetState extends State<HomeWidget> {
|
|||
);
|
||||
// For sharing images coming from outside the app while the app is closed
|
||||
ReceiveSharingIntent.getInitialMedia().then((List<SharedMediaFile> value) {
|
||||
setState(() {
|
||||
_sharedFiles = value;
|
||||
_shouldRenderCreateCollectionSheet = true;
|
||||
});
|
||||
if (mounted) {
|
||||
setState(() {
|
||||
_sharedFiles = value;
|
||||
_shouldRenderCreateCollectionSheet = true;
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
|
|
|
@ -130,7 +130,7 @@ class _UserCollectionsTabState extends State<UserCollectionsTab>
|
|||
padding: const EdgeInsets.only(left: 12, right: 6),
|
||||
),
|
||||
),
|
||||
SliverToBoxAdapter(child: DeleteEmptyAlbums(collections ?? [])),
|
||||
SliverToBoxAdapter(child: DeleteEmptyAlbums(collections)),
|
||||
Configuration.instance.hasConfiguredAccount()
|
||||
? CollectionsFlexiGridViewWidget(
|
||||
collections,
|
||||
|
|
|
@ -42,7 +42,6 @@ class _DeleteEmptyAlbumsState extends State<DeleteEmptyAlbums> {
|
|||
})
|
||||
.toList()
|
||||
.length;
|
||||
debugPrint("Empty albums count $emptyAlbumCount");
|
||||
return emptyAlbumCount > 2;
|
||||
}
|
||||
|
||||
|
|
|
@ -152,12 +152,16 @@ class _ZoomableImageState extends State<ZoomableImage>
|
|||
if (!_loadedFinalImage && !_loadingFinalImage) {
|
||||
_loadingFinalImage = true;
|
||||
getFileFromServer(_photo).then((file) {
|
||||
_onFinalImageLoaded(
|
||||
Image.file(
|
||||
file!,
|
||||
gaplessPlayback: true,
|
||||
).image,
|
||||
);
|
||||
if (file != null) {
|
||||
_onFinalImageLoaded(
|
||||
Image.file(
|
||||
file,
|
||||
gaplessPlayback: true,
|
||||
).image,
|
||||
);
|
||||
} else {
|
||||
_loadingFinalImage = false;
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
|
|
@ -106,6 +106,9 @@ class _LazyGroupGalleryState extends State<LazyGroupGallery> {
|
|||
}
|
||||
|
||||
Future _onReload(FilesUpdatedEvent event) async {
|
||||
if (_files.isEmpty) {
|
||||
return;
|
||||
}
|
||||
final DateTime groupDate =
|
||||
DateTime.fromMicrosecondsSinceEpoch(_files[0].creationTime!);
|
||||
// iterate over files and check if any of the belongs to this group
|
||||
|
|
|
@ -45,6 +45,7 @@ class FileUploader {
|
|||
static const kBlockedUploadsPollFrequency = Duration(seconds: 2);
|
||||
static const kFileUploadTimeout = Duration(minutes: 50);
|
||||
static const k20MBStorageBuffer = 20 * 1024 * 1024;
|
||||
static const kUploadTempPrefix = "upload_file_";
|
||||
|
||||
final _logger = Logger("FileUploader");
|
||||
final _dio = NetworkClient.instance.getDio();
|
||||
|
@ -282,6 +283,29 @@ class FileUploader {
|
|||
}
|
||||
}
|
||||
|
||||
|
||||
Future<void> removeStaleFiles() async {
|
||||
try {
|
||||
final String dir = Configuration.instance.getTempDirectory();
|
||||
// delete all files in the temp directory that start with upload_ and
|
||||
// ends with .encrypted. Fetch files in async manner
|
||||
final files = await Directory(dir).list().toList();
|
||||
final filesToDelete = files.where((file) {
|
||||
return file.path.contains(kUploadTempPrefix) &&
|
||||
file.path.contains(".encrypted");
|
||||
});
|
||||
if (filesToDelete.isEmpty) {
|
||||
return;
|
||||
}
|
||||
_logger.info('cleaning up state files ${filesToDelete.length}');
|
||||
for (final file in filesToDelete) {
|
||||
await file.delete();
|
||||
}
|
||||
} catch (e, s) {
|
||||
_logger.severe("Failed to remove stale files", e, s);
|
||||
}
|
||||
}
|
||||
|
||||
Future<void> checkNetworkForUpload({bool isForceUpload = false}) async {
|
||||
// Note: We don't support force uploading currently. During force upload,
|
||||
// network check is skipped completely
|
||||
|
@ -340,8 +364,10 @@ class FileUploader {
|
|||
|
||||
final tempDirectory = Configuration.instance.getTempDirectory();
|
||||
final String uniqueID = const Uuid().v4().toString();
|
||||
final encryptedFilePath = '$tempDirectory${uniqueID}_file.encrypted';
|
||||
final encryptedThumbnailPath = '$tempDirectory${uniqueID}_thumb.encrypted';
|
||||
final encryptedFilePath =
|
||||
'$tempDirectory$kUploadTempPrefix${uniqueID}_file.encrypted';
|
||||
final encryptedThumbnailPath =
|
||||
'$tempDirectory$kUploadTempPrefix${uniqueID}_thumb.encrypted';
|
||||
MediaUploadData? mediaUploadData;
|
||||
var uploadCompleted = false;
|
||||
// This flag is used to decide whether to clear the iOS origin file cache
|
||||
|
|
Loading…
Add table
Reference in a new issue