Search UI improvements (#1506)
This commit is contained in:
commit
519c15bfae
25 changed files with 375 additions and 120 deletions
BIN
assets/map.png
Normal file
BIN
assets/map.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 14 KiB |
7
lib/generated/intl/messages_cs.dart
generated
7
lib/generated/intl/messages_cs.dart
generated
|
@ -26,7 +26,12 @@ class MessageLookup extends MessageLookupByLibrary {
|
|||
MessageLookupByLibrary.simpleMessage("Add to hidden album"),
|
||||
"deleteConfirmDialogBody": MessageLookupByLibrary.simpleMessage(
|
||||
"This account is linked to other ente apps, if you use any.\\n\\nYour uploaded data, across all ente apps, will be scheduled for deletion, and your account will be permanently deleted."),
|
||||
"fileTypes": MessageLookupByLibrary.simpleMessage("File types"),
|
||||
"modifyYourQueryOrTrySearchingFor":
|
||||
MessageLookupByLibrary.simpleMessage(
|
||||
"Modify your query, or try searching for"),
|
||||
"moveToHiddenAlbum":
|
||||
MessageLookupByLibrary.simpleMessage("Move to hidden album")
|
||||
MessageLookupByLibrary.simpleMessage("Move to hidden album"),
|
||||
"yourMap": MessageLookupByLibrary.simpleMessage("Your map")
|
||||
};
|
||||
}
|
||||
|
|
7
lib/generated/intl/messages_de.dart
generated
7
lib/generated/intl/messages_de.dart
generated
|
@ -56,7 +56,7 @@ class MessageLookup extends MessageLookupByLibrary {
|
|||
"Bitte kontaktieren Sie uns über support@ente.io, um Ihr ${provider} Abo zu verwalten.";
|
||||
|
||||
static String m11(count) =>
|
||||
"${Intl.plural(count, one: 'Lösche 1 Element', other: 'Lösche ${count} Elemente')}";
|
||||
"${Intl.plural(count, one: 'Lösche ${count} Element', other: 'Lösche ${count} Elemente')}";
|
||||
|
||||
static String m12(currentlyDeleting, totalCount) =>
|
||||
"Lösche ${currentlyDeleting} / ${totalCount}";
|
||||
|
@ -681,6 +681,7 @@ class MessageLookup extends MessageLookupByLibrary {
|
|||
MessageLookupByLibrary.simpleMessage("Beschreibung hinzufügen …"),
|
||||
"fileSavedToGallery": MessageLookupByLibrary.simpleMessage(
|
||||
"Datei in Galerie gespeichert"),
|
||||
"fileTypes": MessageLookupByLibrary.simpleMessage("File types"),
|
||||
"filesBackedUpFromDevice": m19,
|
||||
"filesBackedUpInAlbum": m20,
|
||||
"filesDeleted":
|
||||
|
@ -860,6 +861,9 @@ class MessageLookup extends MessageLookupByLibrary {
|
|||
"mobileWebDesktop":
|
||||
MessageLookupByLibrary.simpleMessage("Mobil, Web, Desktop"),
|
||||
"moderateStrength": MessageLookupByLibrary.simpleMessage("Mittel"),
|
||||
"modifyYourQueryOrTrySearchingFor":
|
||||
MessageLookupByLibrary.simpleMessage(
|
||||
"Modify your query, or try searching for"),
|
||||
"monthly": MessageLookupByLibrary.simpleMessage("Monatlich"),
|
||||
"moveItem": m30,
|
||||
"moveToAlbum":
|
||||
|
@ -1451,6 +1455,7 @@ class MessageLookup extends MessageLookupByLibrary {
|
|||
"youHaveSuccessfullyFreedUp": m63,
|
||||
"yourAccountHasBeenDeleted": MessageLookupByLibrary.simpleMessage(
|
||||
"Dein Benutzerkonto wurde gelöscht"),
|
||||
"yourMap": MessageLookupByLibrary.simpleMessage("Your map"),
|
||||
"yourPlanWasSuccessfullyDowngraded":
|
||||
MessageLookupByLibrary.simpleMessage(
|
||||
"Ihr Tarif wurde erfolgreich heruntergestuft"),
|
||||
|
|
30
lib/generated/intl/messages_en.dart
generated
30
lib/generated/intl/messages_en.dart
generated
|
@ -137,6 +137,9 @@ class MessageLookup extends MessageLookupByLibrary {
|
|||
|
||||
static String m41(endDate) => "Renews on ${endDate}";
|
||||
|
||||
static String m64(count) =>
|
||||
"${Intl.plural(count, one: '${count} result found', other: '${count} results found')}";
|
||||
|
||||
static String m42(count) => "${count} selected";
|
||||
|
||||
static String m43(count, yourCount) =>
|
||||
|
@ -187,7 +190,7 @@ class MessageLookup extends MessageLookupByLibrary {
|
|||
static String m59(count) =>
|
||||
"${Intl.plural(count, zero: '', one: '1 day', other: '${count} days')}";
|
||||
|
||||
static String m64(endDate) => "Valid till ${endDate}";
|
||||
static String m65(endDate) => "Valid till ${endDate}";
|
||||
|
||||
static String m60(email) => "Verify ${email}";
|
||||
|
||||
|
@ -220,6 +223,7 @@ class MessageLookup extends MessageLookupByLibrary {
|
|||
"addLocation": MessageLookupByLibrary.simpleMessage("Add location"),
|
||||
"addLocationButton": MessageLookupByLibrary.simpleMessage("Add"),
|
||||
"addMore": MessageLookupByLibrary.simpleMessage("Add more"),
|
||||
"addNew": MessageLookupByLibrary.simpleMessage("Add new"),
|
||||
"addOnPageSubtitle":
|
||||
MessageLookupByLibrary.simpleMessage("Details of add-ons"),
|
||||
"addOns": MessageLookupByLibrary.simpleMessage("Add-ons"),
|
||||
|
@ -230,6 +234,8 @@ class MessageLookup extends MessageLookupByLibrary {
|
|||
"addToHiddenAlbum":
|
||||
MessageLookupByLibrary.simpleMessage("Add to hidden album"),
|
||||
"addViewer": MessageLookupByLibrary.simpleMessage("Add viewer"),
|
||||
"addYourPhotosNow":
|
||||
MessageLookupByLibrary.simpleMessage("Add your photos now"),
|
||||
"addedAs": MessageLookupByLibrary.simpleMessage("Added as"),
|
||||
"addedBy": m1,
|
||||
"addedSuccessfullyTo": m2,
|
||||
|
@ -435,6 +441,7 @@ class MessageLookup extends MessageLookupByLibrary {
|
|||
"contactSupport":
|
||||
MessageLookupByLibrary.simpleMessage("Contact support"),
|
||||
"contactToManageSubscription": m10,
|
||||
"contents": MessageLookupByLibrary.simpleMessage("Contents"),
|
||||
"continueLabel": MessageLookupByLibrary.simpleMessage("Continue"),
|
||||
"continueOnFreeTrial":
|
||||
MessageLookupByLibrary.simpleMessage("Continue on free trial"),
|
||||
|
@ -634,6 +641,7 @@ class MessageLookup extends MessageLookupByLibrary {
|
|||
"exportLogs": MessageLookupByLibrary.simpleMessage("Export logs"),
|
||||
"exportYourData":
|
||||
MessageLookupByLibrary.simpleMessage("Export your data"),
|
||||
"faces": MessageLookupByLibrary.simpleMessage("Faces"),
|
||||
"failedToApplyCode":
|
||||
MessageLookupByLibrary.simpleMessage("Failed to apply code"),
|
||||
"failedToCancel":
|
||||
|
@ -664,6 +672,7 @@ class MessageLookup extends MessageLookupByLibrary {
|
|||
MessageLookupByLibrary.simpleMessage("Add a description..."),
|
||||
"fileSavedToGallery":
|
||||
MessageLookupByLibrary.simpleMessage("File saved to gallery"),
|
||||
"fileTypes": MessageLookupByLibrary.simpleMessage("File types"),
|
||||
"fileTypesAndNames":
|
||||
MessageLookupByLibrary.simpleMessage("File types and names"),
|
||||
"filesBackedUpFromDevice": m19,
|
||||
|
@ -778,6 +787,7 @@ class MessageLookup extends MessageLookupByLibrary {
|
|||
"linkHasExpired":
|
||||
MessageLookupByLibrary.simpleMessage("Link has expired"),
|
||||
"linkNeverExpires": MessageLookupByLibrary.simpleMessage("Never"),
|
||||
"livePhotos": MessageLookupByLibrary.simpleMessage("Live Photos"),
|
||||
"loadMessage1": MessageLookupByLibrary.simpleMessage(
|
||||
"You can share your subscription with your family"),
|
||||
"loadMessage2": MessageLookupByLibrary.simpleMessage(
|
||||
|
@ -839,6 +849,9 @@ class MessageLookup extends MessageLookupByLibrary {
|
|||
"mobileWebDesktop":
|
||||
MessageLookupByLibrary.simpleMessage("Mobile, Web, Desktop"),
|
||||
"moderateStrength": MessageLookupByLibrary.simpleMessage("Moderate"),
|
||||
"modifyYourQueryOrTrySearchingFor":
|
||||
MessageLookupByLibrary.simpleMessage(
|
||||
"Modify your query, or try searching for"),
|
||||
"moments": MessageLookupByLibrary.simpleMessage("Moments"),
|
||||
"monthly": MessageLookupByLibrary.simpleMessage("Monthly"),
|
||||
"moveItem": m30,
|
||||
|
@ -927,6 +940,7 @@ class MessageLookup extends MessageLookupByLibrary {
|
|||
"photoGridSize":
|
||||
MessageLookupByLibrary.simpleMessage("Photo grid size"),
|
||||
"photoSmallCase": MessageLookupByLibrary.simpleMessage("photo"),
|
||||
"photos": MessageLookupByLibrary.simpleMessage("Photos"),
|
||||
"photosAddedByYouWillBeRemovedFromTheAlbum":
|
||||
MessageLookupByLibrary.simpleMessage(
|
||||
"Photos added by you will be removed from the album"),
|
||||
|
@ -1098,12 +1112,22 @@ class MessageLookup extends MessageLookupByLibrary {
|
|||
MessageLookupByLibrary.simpleMessage("Find all photos of a person"),
|
||||
"searchFileTypesAndNamesEmptySection":
|
||||
MessageLookupByLibrary.simpleMessage("File types and names"),
|
||||
"searchHint1":
|
||||
MessageLookupByLibrary.simpleMessage("Fast, on-device search"),
|
||||
"searchHint2":
|
||||
MessageLookupByLibrary.simpleMessage("Photo dates, descriptions"),
|
||||
"searchHint3": MessageLookupByLibrary.simpleMessage(
|
||||
"Albums, file names, and types"),
|
||||
"searchHint4": MessageLookupByLibrary.simpleMessage("Location"),
|
||||
"searchHint5": MessageLookupByLibrary.simpleMessage(
|
||||
"Coming soon: Photo contents, faces"),
|
||||
"searchHintText": MessageLookupByLibrary.simpleMessage(
|
||||
"Albums, months, days, years, ..."),
|
||||
"searchLocationEmptySection": MessageLookupByLibrary.simpleMessage(
|
||||
"Group photos that are taken within some radius of a photo"),
|
||||
"searchPeopleEmptySection": MessageLookupByLibrary.simpleMessage(
|
||||
"Invite people, and you\'ll see all photos shared by them here"),
|
||||
"searchResultCount": m64,
|
||||
"security": MessageLookupByLibrary.simpleMessage("Security"),
|
||||
"selectAlbum": MessageLookupByLibrary.simpleMessage("Select album"),
|
||||
"selectAll": MessageLookupByLibrary.simpleMessage("Select all"),
|
||||
|
@ -1352,7 +1376,7 @@ class MessageLookup extends MessageLookupByLibrary {
|
|||
"useSelectedPhoto":
|
||||
MessageLookupByLibrary.simpleMessage("Use selected photo"),
|
||||
"usedSpace": MessageLookupByLibrary.simpleMessage("Used space"),
|
||||
"validTill": m64,
|
||||
"validTill": m65,
|
||||
"verificationFailedPleaseTryAgain":
|
||||
MessageLookupByLibrary.simpleMessage(
|
||||
"Verification failed, please try again"),
|
||||
|
@ -1368,6 +1392,7 @@ class MessageLookup extends MessageLookupByLibrary {
|
|||
"verifyingRecoveryKey":
|
||||
MessageLookupByLibrary.simpleMessage("Verifying recovery key..."),
|
||||
"videoSmallCase": MessageLookupByLibrary.simpleMessage("video"),
|
||||
"videos": MessageLookupByLibrary.simpleMessage("Videos"),
|
||||
"viewActiveSessions":
|
||||
MessageLookupByLibrary.simpleMessage("View active sessions"),
|
||||
"viewAddOnButton": MessageLookupByLibrary.simpleMessage("View add-ons"),
|
||||
|
@ -1422,6 +1447,7 @@ class MessageLookup extends MessageLookupByLibrary {
|
|||
"youHaveSuccessfullyFreedUp": m63,
|
||||
"yourAccountHasBeenDeleted": MessageLookupByLibrary.simpleMessage(
|
||||
"Your account has been deleted"),
|
||||
"yourMap": MessageLookupByLibrary.simpleMessage("Your map"),
|
||||
"yourPlanWasSuccessfullyDowngraded":
|
||||
MessageLookupByLibrary.simpleMessage(
|
||||
"Your plan was successfully downgraded"),
|
||||
|
|
5
lib/generated/intl/messages_es.dart
generated
5
lib/generated/intl/messages_es.dart
generated
|
@ -621,6 +621,7 @@ class MessageLookup extends MessageLookupByLibrary {
|
|||
MessageLookupByLibrary.simpleMessage("Añadir una descripción..."),
|
||||
"fileSavedToGallery": MessageLookupByLibrary.simpleMessage(
|
||||
"Archivo guardado en la galería"),
|
||||
"fileTypes": MessageLookupByLibrary.simpleMessage("File types"),
|
||||
"filesBackedUpFromDevice": m19,
|
||||
"filesBackedUpInAlbum": m20,
|
||||
"filesDeleted":
|
||||
|
@ -787,6 +788,9 @@ class MessageLookup extends MessageLookupByLibrary {
|
|||
"mobileWebDesktop":
|
||||
MessageLookupByLibrary.simpleMessage("Celular, Web, Computadora"),
|
||||
"moderateStrength": MessageLookupByLibrary.simpleMessage("Moderada"),
|
||||
"modifyYourQueryOrTrySearchingFor":
|
||||
MessageLookupByLibrary.simpleMessage(
|
||||
"Modify your query, or try searching for"),
|
||||
"monthly": MessageLookupByLibrary.simpleMessage("Mensual"),
|
||||
"moveItem": m30,
|
||||
"moveToAlbum": MessageLookupByLibrary.simpleMessage("Mover al álbum"),
|
||||
|
@ -1327,6 +1331,7 @@ class MessageLookup extends MessageLookupByLibrary {
|
|||
"youHaveSuccessfullyFreedUp": m63,
|
||||
"yourAccountHasBeenDeleted":
|
||||
MessageLookupByLibrary.simpleMessage("Su cuenta ha sido eliminada"),
|
||||
"yourMap": MessageLookupByLibrary.simpleMessage("Your map"),
|
||||
"yourPlanWasSuccessfullyDowngraded":
|
||||
MessageLookupByLibrary.simpleMessage(
|
||||
"Tu plan ha sido degradado con éxito"),
|
||||
|
|
5
lib/generated/intl/messages_fr.dart
generated
5
lib/generated/intl/messages_fr.dart
generated
|
@ -689,6 +689,7 @@ class MessageLookup extends MessageLookupByLibrary {
|
|||
MessageLookupByLibrary.simpleMessage("Ajouter une description..."),
|
||||
"fileSavedToGallery": MessageLookupByLibrary.simpleMessage(
|
||||
"Fichier enregistré dans la galerie"),
|
||||
"fileTypes": MessageLookupByLibrary.simpleMessage("File types"),
|
||||
"filesBackedUpFromDevice": m19,
|
||||
"filesBackedUpInAlbum": m20,
|
||||
"filesDeleted":
|
||||
|
@ -873,6 +874,9 @@ class MessageLookup extends MessageLookupByLibrary {
|
|||
MessageLookupByLibrary.simpleMessage("Mobile, Web, Ordinateur"),
|
||||
"moderateStrength":
|
||||
MessageLookupByLibrary.simpleMessage("Sécurité moyenne"),
|
||||
"modifyYourQueryOrTrySearchingFor":
|
||||
MessageLookupByLibrary.simpleMessage(
|
||||
"Modify your query, or try searching for"),
|
||||
"monthly": MessageLookupByLibrary.simpleMessage("Mensuel"),
|
||||
"moveItem": m30,
|
||||
"moveToAlbum":
|
||||
|
@ -1477,6 +1481,7 @@ class MessageLookup extends MessageLookupByLibrary {
|
|||
"youHaveSuccessfullyFreedUp": m63,
|
||||
"yourAccountHasBeenDeleted":
|
||||
MessageLookupByLibrary.simpleMessage("Votre compte a été supprimé"),
|
||||
"yourMap": MessageLookupByLibrary.simpleMessage("Your map"),
|
||||
"yourPlanWasSuccessfullyDowngraded":
|
||||
MessageLookupByLibrary.simpleMessage(
|
||||
"Votre plan a été rétrogradé avec succès"),
|
||||
|
|
8
lib/generated/intl/messages_it.dart
generated
8
lib/generated/intl/messages_it.dart
generated
|
@ -187,7 +187,7 @@ class MessageLookup extends MessageLookupByLibrary {
|
|||
static String m59(count) =>
|
||||
"${Intl.plural(count, zero: '', one: '1 giorno', other: '${count} giorni')}";
|
||||
|
||||
static String m64(endDate) => "Valido fino al ${endDate}";
|
||||
static String m65(endDate) => "Valido fino al ${endDate}";
|
||||
|
||||
static String m60(email) => "Verifica ${email}";
|
||||
|
||||
|
@ -865,6 +865,9 @@ class MessageLookup extends MessageLookupByLibrary {
|
|||
"mobileWebDesktop":
|
||||
MessageLookupByLibrary.simpleMessage("Mobile, Web, Desktop"),
|
||||
"moderateStrength": MessageLookupByLibrary.simpleMessage("Mediocre"),
|
||||
"modifyYourQueryOrTrySearchingFor":
|
||||
MessageLookupByLibrary.simpleMessage(
|
||||
"Modify your query, or try searching for"),
|
||||
"monthly": MessageLookupByLibrary.simpleMessage("Mensile"),
|
||||
"moveItem": m30,
|
||||
"moveToAlbum":
|
||||
|
@ -1387,7 +1390,7 @@ class MessageLookup extends MessageLookupByLibrary {
|
|||
"useSelectedPhoto":
|
||||
MessageLookupByLibrary.simpleMessage("Usa la foto selezionata"),
|
||||
"usedSpace": MessageLookupByLibrary.simpleMessage("Spazio utilizzato"),
|
||||
"validTill": m64,
|
||||
"validTill": m65,
|
||||
"verificationFailedPleaseTryAgain":
|
||||
MessageLookupByLibrary.simpleMessage(
|
||||
"Verifica fallita, per favore prova di nuovo"),
|
||||
|
@ -1459,6 +1462,7 @@ class MessageLookup extends MessageLookupByLibrary {
|
|||
"youHaveSuccessfullyFreedUp": m63,
|
||||
"yourAccountHasBeenDeleted": MessageLookupByLibrary.simpleMessage(
|
||||
"Il tuo account è stato eliminato"),
|
||||
"yourMap": MessageLookupByLibrary.simpleMessage("Your map"),
|
||||
"yourPlanWasSuccessfullyDowngraded":
|
||||
MessageLookupByLibrary.simpleMessage(
|
||||
"Il tuo piano è stato aggiornato con successo"),
|
||||
|
|
7
lib/generated/intl/messages_ko.dart
generated
7
lib/generated/intl/messages_ko.dart
generated
|
@ -26,7 +26,12 @@ class MessageLookup extends MessageLookupByLibrary {
|
|||
MessageLookupByLibrary.simpleMessage("Add to hidden album"),
|
||||
"deleteConfirmDialogBody": MessageLookupByLibrary.simpleMessage(
|
||||
"This account is linked to other ente apps, if you use any.\\n\\nYour uploaded data, across all ente apps, will be scheduled for deletion, and your account will be permanently deleted."),
|
||||
"fileTypes": MessageLookupByLibrary.simpleMessage("File types"),
|
||||
"modifyYourQueryOrTrySearchingFor":
|
||||
MessageLookupByLibrary.simpleMessage(
|
||||
"Modify your query, or try searching for"),
|
||||
"moveToHiddenAlbum":
|
||||
MessageLookupByLibrary.simpleMessage("Move to hidden album")
|
||||
MessageLookupByLibrary.simpleMessage("Move to hidden album"),
|
||||
"yourMap": MessageLookupByLibrary.simpleMessage("Your map")
|
||||
};
|
||||
}
|
||||
|
|
5
lib/generated/intl/messages_nl.dart
generated
5
lib/generated/intl/messages_nl.dart
generated
|
@ -684,6 +684,7 @@ class MessageLookup extends MessageLookupByLibrary {
|
|||
"Voeg een beschrijving toe..."),
|
||||
"fileSavedToGallery": MessageLookupByLibrary.simpleMessage(
|
||||
"Bestand opgeslagen in galerij"),
|
||||
"fileTypes": MessageLookupByLibrary.simpleMessage("File types"),
|
||||
"filesBackedUpFromDevice": m19,
|
||||
"filesBackedUpInAlbum": m20,
|
||||
"filesDeleted":
|
||||
|
@ -859,6 +860,9 @@ class MessageLookup extends MessageLookupByLibrary {
|
|||
"mobileWebDesktop":
|
||||
MessageLookupByLibrary.simpleMessage("Mobiel, Web, Desktop"),
|
||||
"moderateStrength": MessageLookupByLibrary.simpleMessage("Matig"),
|
||||
"modifyYourQueryOrTrySearchingFor":
|
||||
MessageLookupByLibrary.simpleMessage(
|
||||
"Modify your query, or try searching for"),
|
||||
"monthly": MessageLookupByLibrary.simpleMessage("Maandelijks"),
|
||||
"moveItem": m30,
|
||||
"moveToAlbum":
|
||||
|
@ -1444,6 +1448,7 @@ class MessageLookup extends MessageLookupByLibrary {
|
|||
"youHaveSuccessfullyFreedUp": m63,
|
||||
"yourAccountHasBeenDeleted":
|
||||
MessageLookupByLibrary.simpleMessage("Je account is verwijderd"),
|
||||
"yourMap": MessageLookupByLibrary.simpleMessage("Your map"),
|
||||
"yourPlanWasSuccessfullyDowngraded":
|
||||
MessageLookupByLibrary.simpleMessage(
|
||||
"Uw abonnement is succesvol gedegradeerd"),
|
||||
|
|
7
lib/generated/intl/messages_no.dart
generated
7
lib/generated/intl/messages_no.dart
generated
|
@ -44,12 +44,17 @@ class MessageLookup extends MessageLookupByLibrary {
|
|||
"enterYourEmailAddress": MessageLookupByLibrary.simpleMessage(
|
||||
"Skriv inn e-postadressen din"),
|
||||
"feedback": MessageLookupByLibrary.simpleMessage("Tilbakemelding"),
|
||||
"fileTypes": MessageLookupByLibrary.simpleMessage("File types"),
|
||||
"invalidEmailAddress":
|
||||
MessageLookupByLibrary.simpleMessage("Ugyldig e-postadresse"),
|
||||
"kindlyHelpUsWithThisInformation": MessageLookupByLibrary.simpleMessage(
|
||||
"Vær vennlig og hjelp oss med denne informasjonen"),
|
||||
"modifyYourQueryOrTrySearchingFor":
|
||||
MessageLookupByLibrary.simpleMessage(
|
||||
"Modify your query, or try searching for"),
|
||||
"moveToHiddenAlbum":
|
||||
MessageLookupByLibrary.simpleMessage("Move to hidden album"),
|
||||
"verify": MessageLookupByLibrary.simpleMessage("Bekreft")
|
||||
"verify": MessageLookupByLibrary.simpleMessage("Bekreft"),
|
||||
"yourMap": MessageLookupByLibrary.simpleMessage("Your map")
|
||||
};
|
||||
}
|
||||
|
|
9
lib/generated/intl/messages_pl.dart
generated
9
lib/generated/intl/messages_pl.dart
generated
|
@ -92,6 +92,7 @@ class MessageLookup extends MessageLookupByLibrary {
|
|||
"enterYourRecoveryKey": MessageLookupByLibrary.simpleMessage(
|
||||
"Wprowadź swój klucz odzyskiwania"),
|
||||
"feedback": MessageLookupByLibrary.simpleMessage("Informacja zwrotna"),
|
||||
"fileTypes": MessageLookupByLibrary.simpleMessage("File types"),
|
||||
"forgotPassword":
|
||||
MessageLookupByLibrary.simpleMessage("Nie pamiętam hasła"),
|
||||
"generatingEncryptionKeys": MessageLookupByLibrary.simpleMessage(
|
||||
|
@ -109,6 +110,9 @@ class MessageLookup extends MessageLookupByLibrary {
|
|||
MessageLookupByLibrary.simpleMessage("Pomóż nam z tą informacją"),
|
||||
"logInLabel": MessageLookupByLibrary.simpleMessage("Zaloguj się"),
|
||||
"moderateStrength": MessageLookupByLibrary.simpleMessage("Umiarkowana"),
|
||||
"modifyYourQueryOrTrySearchingFor":
|
||||
MessageLookupByLibrary.simpleMessage(
|
||||
"Modify your query, or try searching for"),
|
||||
"moveToHiddenAlbum":
|
||||
MessageLookupByLibrary.simpleMessage("Move to hidden album"),
|
||||
"noRecoveryKey":
|
||||
|
@ -180,7 +184,8 @@ class MessageLookup extends MessageLookupByLibrary {
|
|||
MessageLookupByLibrary.simpleMessage("Zweryfikuj hasło"),
|
||||
"weakStrength": MessageLookupByLibrary.simpleMessage("Słabe"),
|
||||
"welcomeBack": MessageLookupByLibrary.simpleMessage("Witaj ponownie!"),
|
||||
"yourAccountHasBeenDeleted":
|
||||
MessageLookupByLibrary.simpleMessage("Twoje konto zostało usunięte")
|
||||
"yourAccountHasBeenDeleted": MessageLookupByLibrary.simpleMessage(
|
||||
"Twoje konto zostało usunięte"),
|
||||
"yourMap": MessageLookupByLibrary.simpleMessage("Your map")
|
||||
};
|
||||
}
|
||||
|
|
7
lib/generated/intl/messages_pt.dart
generated
7
lib/generated/intl/messages_pt.dart
generated
|
@ -213,6 +213,7 @@ class MessageLookup extends MessageLookupByLibrary {
|
|||
"Não foi possível buscar informações do produto. Por favor, tente novamente mais tarde."),
|
||||
"faq": MessageLookupByLibrary.simpleMessage("Perguntas frequentes"),
|
||||
"feedback": MessageLookupByLibrary.simpleMessage("Opinião"),
|
||||
"fileTypes": MessageLookupByLibrary.simpleMessage("File types"),
|
||||
"forgotPassword":
|
||||
MessageLookupByLibrary.simpleMessage("Esqueceu sua senha"),
|
||||
"freeStorageClaimed": MessageLookupByLibrary.simpleMessage(
|
||||
|
@ -259,6 +260,9 @@ class MessageLookup extends MessageLookupByLibrary {
|
|||
MessageLookupByLibrary.simpleMessage("Dispositivo perdido?"),
|
||||
"manage": MessageLookupByLibrary.simpleMessage("Gerenciar"),
|
||||
"moderateStrength": MessageLookupByLibrary.simpleMessage("Moderada"),
|
||||
"modifyYourQueryOrTrySearchingFor":
|
||||
MessageLookupByLibrary.simpleMessage(
|
||||
"Modify your query, or try searching for"),
|
||||
"moveToHiddenAlbum":
|
||||
MessageLookupByLibrary.simpleMessage("Move to hidden album"),
|
||||
"noRecoveryKey": MessageLookupByLibrary.simpleMessage(
|
||||
|
@ -426,6 +430,7 @@ class MessageLookup extends MessageLookupByLibrary {
|
|||
"youCanAtMaxDoubleYourStorage": MessageLookupByLibrary.simpleMessage(
|
||||
"* Você pode duplicar seu armazenamento no máximo"),
|
||||
"yourAccountHasBeenDeleted":
|
||||
MessageLookupByLibrary.simpleMessage("Sua conta foi deletada")
|
||||
MessageLookupByLibrary.simpleMessage("Sua conta foi deletada"),
|
||||
"yourMap": MessageLookupByLibrary.simpleMessage("Your map")
|
||||
};
|
||||
}
|
||||
|
|
8
lib/generated/intl/messages_zh.dart
generated
8
lib/generated/intl/messages_zh.dart
generated
|
@ -170,7 +170,7 @@ class MessageLookup extends MessageLookupByLibrary {
|
|||
static String m59(count) =>
|
||||
"${Intl.plural(count, zero: '', one: '1天', other: '${count} 天')}";
|
||||
|
||||
static String m64(endDate) => "有效期至 ${endDate}";
|
||||
static String m65(endDate) => "有效期至 ${endDate}";
|
||||
|
||||
static String m60(email) => "验证 ${email}";
|
||||
|
||||
|
@ -709,6 +709,9 @@ class MessageLookup extends MessageLookupByLibrary {
|
|||
"mobileWebDesktop":
|
||||
MessageLookupByLibrary.simpleMessage("移动端, 网页端, 桌面端"),
|
||||
"moderateStrength": MessageLookupByLibrary.simpleMessage("中等"),
|
||||
"modifyYourQueryOrTrySearchingFor":
|
||||
MessageLookupByLibrary.simpleMessage(
|
||||
"Modify your query, or try searching for"),
|
||||
"monthly": MessageLookupByLibrary.simpleMessage("每月"),
|
||||
"moveItem": m30,
|
||||
"moveToAlbum": MessageLookupByLibrary.simpleMessage("移动到相册"),
|
||||
|
@ -1117,7 +1120,7 @@ class MessageLookup extends MessageLookupByLibrary {
|
|||
"useRecoveryKey": MessageLookupByLibrary.simpleMessage("使用恢复密钥"),
|
||||
"useSelectedPhoto": MessageLookupByLibrary.simpleMessage("使用所选照片"),
|
||||
"usedSpace": MessageLookupByLibrary.simpleMessage("已用空间"),
|
||||
"validTill": m64,
|
||||
"validTill": m65,
|
||||
"verificationFailedPleaseTryAgain":
|
||||
MessageLookupByLibrary.simpleMessage("验证失败,请重试"),
|
||||
"verificationId": MessageLookupByLibrary.simpleMessage("验证 ID"),
|
||||
|
@ -1175,6 +1178,7 @@ class MessageLookup extends MessageLookupByLibrary {
|
|||
"youHaveSuccessfullyFreedUp": m63,
|
||||
"yourAccountHasBeenDeleted":
|
||||
MessageLookupByLibrary.simpleMessage("您的账户已删除"),
|
||||
"yourMap": MessageLookupByLibrary.simpleMessage("Your map"),
|
||||
"yourPlanWasSuccessfullyDowngraded":
|
||||
MessageLookupByLibrary.simpleMessage("您的计划已成功降级"),
|
||||
"yourPlanWasSuccessfullyUpgraded":
|
||||
|
|
169
lib/generated/l10n.dart
generated
169
lib/generated/l10n.dart
generated
|
@ -6810,10 +6810,10 @@ class S {
|
|||
}
|
||||
|
||||
/// `File types and names`
|
||||
String get fileTypes {
|
||||
String get fileTypesAndNames {
|
||||
return Intl.message(
|
||||
'File types',
|
||||
name: 'fileTypes',
|
||||
'File types and names',
|
||||
name: 'fileTypesAndNames',
|
||||
desc: '',
|
||||
args: [],
|
||||
);
|
||||
|
@ -7825,6 +7825,16 @@ class S {
|
|||
);
|
||||
}
|
||||
|
||||
/// `File types`
|
||||
String get fileTypes {
|
||||
return Intl.message(
|
||||
'File types',
|
||||
name: 'fileTypes',
|
||||
desc: '',
|
||||
args: [],
|
||||
);
|
||||
}
|
||||
|
||||
/// `This account is linked to other ente apps, if you use any.\n\nYour uploaded data, across all ente apps, will be scheduled for deletion, and your account will be permanently deleted.`
|
||||
String get deleteConfirmDialogBody {
|
||||
return Intl.message(
|
||||
|
@ -7895,16 +7905,6 @@ class S {
|
|||
);
|
||||
}
|
||||
|
||||
/// `Black Friday Sale`
|
||||
String get blackFridaySale {
|
||||
return Intl.message(
|
||||
'Black Friday Sale',
|
||||
name: 'blackFridaySale',
|
||||
desc: '',
|
||||
args: [],
|
||||
);
|
||||
}
|
||||
|
||||
/// `Modify your query, or try searching for`
|
||||
String get modifyYourQueryOrTrySearchingFor {
|
||||
return Intl.message(
|
||||
|
@ -7915,6 +7915,16 @@ class S {
|
|||
);
|
||||
}
|
||||
|
||||
/// `Black Friday Sale`
|
||||
String get blackFridaySale {
|
||||
return Intl.message(
|
||||
'Black Friday Sale',
|
||||
name: 'blackFridaySale',
|
||||
desc: '',
|
||||
args: [],
|
||||
);
|
||||
}
|
||||
|
||||
/// `Upto 50% off, until 4th Dec.`
|
||||
String get upto50OffUntil4thDec {
|
||||
return Intl.message(
|
||||
|
@ -7924,6 +7934,139 @@ class S {
|
|||
args: [],
|
||||
);
|
||||
}
|
||||
|
||||
/// `Photos`
|
||||
String get photos {
|
||||
return Intl.message(
|
||||
'Photos',
|
||||
name: 'photos',
|
||||
desc: '',
|
||||
args: [],
|
||||
);
|
||||
}
|
||||
|
||||
/// `Videos`
|
||||
String get videos {
|
||||
return Intl.message(
|
||||
'Videos',
|
||||
name: 'videos',
|
||||
desc: '',
|
||||
args: [],
|
||||
);
|
||||
}
|
||||
|
||||
/// `Live Photos`
|
||||
String get livePhotos {
|
||||
return Intl.message(
|
||||
'Live Photos',
|
||||
name: 'livePhotos',
|
||||
desc: '',
|
||||
args: [],
|
||||
);
|
||||
}
|
||||
|
||||
/// `Fast, on-device search`
|
||||
String get searchHint1 {
|
||||
return Intl.message(
|
||||
'Fast, on-device search',
|
||||
name: 'searchHint1',
|
||||
desc: '',
|
||||
args: [],
|
||||
);
|
||||
}
|
||||
|
||||
/// `Photo dates, descriptions`
|
||||
String get searchHint2 {
|
||||
return Intl.message(
|
||||
'Photo dates, descriptions',
|
||||
name: 'searchHint2',
|
||||
desc: '',
|
||||
args: [],
|
||||
);
|
||||
}
|
||||
|
||||
/// `Albums, file names, and types`
|
||||
String get searchHint3 {
|
||||
return Intl.message(
|
||||
'Albums, file names, and types',
|
||||
name: 'searchHint3',
|
||||
desc: '',
|
||||
args: [],
|
||||
);
|
||||
}
|
||||
|
||||
/// `Location`
|
||||
String get searchHint4 {
|
||||
return Intl.message(
|
||||
'Location',
|
||||
name: 'searchHint4',
|
||||
desc: '',
|
||||
args: [],
|
||||
);
|
||||
}
|
||||
|
||||
/// `Coming soon: Photo contents, faces`
|
||||
String get searchHint5 {
|
||||
return Intl.message(
|
||||
'Coming soon: Photo contents, faces',
|
||||
name: 'searchHint5',
|
||||
desc: '',
|
||||
args: [],
|
||||
);
|
||||
}
|
||||
|
||||
/// `Add your photos now`
|
||||
String get addYourPhotosNow {
|
||||
return Intl.message(
|
||||
'Add your photos now',
|
||||
name: 'addYourPhotosNow',
|
||||
desc: '',
|
||||
args: [],
|
||||
);
|
||||
}
|
||||
|
||||
/// `{count, plural, one{{count} result found} other{{count} results found}}`
|
||||
String searchResultCount(int count) {
|
||||
return Intl.plural(
|
||||
count,
|
||||
one: '$count result found',
|
||||
other: '$count results found',
|
||||
name: 'searchResultCount',
|
||||
desc:
|
||||
'Text to tell user how many results were found for their search query',
|
||||
args: [count],
|
||||
);
|
||||
}
|
||||
|
||||
/// `Faces`
|
||||
String get faces {
|
||||
return Intl.message(
|
||||
'Faces',
|
||||
name: 'faces',
|
||||
desc: '',
|
||||
args: [],
|
||||
);
|
||||
}
|
||||
|
||||
/// `Contents`
|
||||
String get contents {
|
||||
return Intl.message(
|
||||
'Contents',
|
||||
name: 'contents',
|
||||
desc: '',
|
||||
args: [],
|
||||
);
|
||||
}
|
||||
|
||||
/// `Add new`
|
||||
String get addNew {
|
||||
return Intl.message(
|
||||
'Add new',
|
||||
name: 'addNew',
|
||||
desc: 'Text to add a new item (location tag, album, caption etc)',
|
||||
args: [],
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
class AppLocalizationDelegate extends LocalizationsDelegate<S> {
|
||||
|
|
|
@ -1124,5 +1124,30 @@
|
|||
"yourMap": "Your map",
|
||||
"modifyYourQueryOrTrySearchingFor": "Modify your query, or try searching for",
|
||||
"blackFridaySale": "Black Friday Sale",
|
||||
"upto50OffUntil4thDec": "Upto 50% off, until 4th Dec."
|
||||
"upto50OffUntil4thDec": "Upto 50% off, until 4th Dec.",
|
||||
"photos": "Photos",
|
||||
"videos": "Videos",
|
||||
"livePhotos": "Live Photos",
|
||||
"searchHint1": "Fast, on-device search",
|
||||
"searchHint2": "Photo dates, descriptions",
|
||||
"searchHint3": "Albums, file names, and types",
|
||||
"searchHint4": "Location",
|
||||
"searchHint5": "Coming soon: Photo contents, faces",
|
||||
"addYourPhotosNow": "Add your photos now",
|
||||
"searchResultCount": "{count, plural, one{{count} result found} other{{count} results found}}",
|
||||
"@searchResultCount": {
|
||||
"description": "Text to tell user how many results were found for their search query",
|
||||
"placeholders": {
|
||||
"count": {
|
||||
"example": "1|2|3",
|
||||
"type": "int"
|
||||
}
|
||||
}
|
||||
},
|
||||
"faces": "Faces",
|
||||
"contents": "Contents",
|
||||
"addNew": "Add new",
|
||||
"@addNew": {
|
||||
"description": "Text to add a new item (location tag, album, caption etc)"
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,4 +1,6 @@
|
|||
import "package:flutter/material.dart";
|
||||
import "package:photo_manager/photo_manager.dart";
|
||||
import "package:photos/l10n/l10n.dart";
|
||||
|
||||
enum FileType {
|
||||
image,
|
||||
|
@ -54,14 +56,14 @@ FileType fileTypeFromAsset(AssetEntity asset) {
|
|||
return type;
|
||||
}
|
||||
|
||||
String getHumanReadableString(FileType fileType) {
|
||||
String getHumanReadableString(BuildContext context, FileType fileType) {
|
||||
switch (fileType) {
|
||||
case FileType.image:
|
||||
return "Image";
|
||||
return context.l10n.photos;
|
||||
case FileType.video:
|
||||
return "Video";
|
||||
return context.l10n.videos;
|
||||
case FileType.livePhoto:
|
||||
return "Live Photo";
|
||||
return context.l10n.livePhotos;
|
||||
default:
|
||||
return fileType.name.toUpperCase();
|
||||
}
|
||||
|
|
|
@ -50,9 +50,9 @@ extension SectionTypeExtensions on SectionType {
|
|||
String sectionTitle(BuildContext context) {
|
||||
switch (this) {
|
||||
case SectionType.face:
|
||||
return "Faces";
|
||||
return S.of(context).faces;
|
||||
case SectionType.content:
|
||||
return "Contents";
|
||||
return S.of(context).contents;
|
||||
case SectionType.moment:
|
||||
return S.of(context).moments;
|
||||
case SectionType.location:
|
||||
|
@ -136,21 +136,23 @@ extension SectionTypeExtensions on SectionType {
|
|||
String getCTAText(BuildContext context) {
|
||||
switch (this) {
|
||||
case SectionType.face:
|
||||
// todo: later
|
||||
return "Setup";
|
||||
case SectionType.content:
|
||||
// todo: later
|
||||
return "Add tags";
|
||||
case SectionType.moment:
|
||||
return "Add new";
|
||||
return S.of(context).addNew;
|
||||
case SectionType.location:
|
||||
return "Add new";
|
||||
return S.of(context).addNew;
|
||||
case SectionType.people:
|
||||
return "Invite";
|
||||
return S.of(context).invite;
|
||||
case SectionType.album:
|
||||
return "Add new";
|
||||
return S.of(context).addNew;
|
||||
case SectionType.fileTypesAndExtension:
|
||||
return "";
|
||||
case SectionType.fileCaption:
|
||||
return "Add new";
|
||||
return S.of(context).addNew;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -230,10 +232,10 @@ extension SectionTypeExtensions on SectionType {
|
|||
}
|
||||
}
|
||||
|
||||
Future<List<SearchResult>> getData({int? limit, BuildContext? context}) {
|
||||
if (this == SectionType.moment && context == null) {
|
||||
AssertionError("context cannot be null for SectionType.moment");
|
||||
}
|
||||
Future<List<SearchResult>> getData(
|
||||
BuildContext context, {
|
||||
int? limit,
|
||||
}) {
|
||||
switch (this) {
|
||||
case SectionType.face:
|
||||
return SearchService.instance.getAllLocationTags(limit);
|
||||
|
@ -242,7 +244,7 @@ extension SectionTypeExtensions on SectionType {
|
|||
return SearchService.instance.getAllLocationTags(limit);
|
||||
|
||||
case SectionType.moment:
|
||||
return SearchService.instance.getRandomMomentsSearchResults(context!);
|
||||
return SearchService.instance.getRandomMomentsSearchResults(context);
|
||||
|
||||
case SectionType.location:
|
||||
return SearchService.instance.getAllLocationTags(limit);
|
||||
|
@ -255,7 +257,7 @@ extension SectionTypeExtensions on SectionType {
|
|||
|
||||
case SectionType.fileTypesAndExtension:
|
||||
return SearchService.instance
|
||||
.getAllFileTypesAndExtensionsResults(limit);
|
||||
.getAllFileTypesAndExtensionsResults(context, limit);
|
||||
|
||||
case SectionType.fileCaption:
|
||||
return SearchService.instance.getAllDescriptionSearchResults(limit);
|
||||
|
|
|
@ -287,12 +287,13 @@ class SearchService {
|
|||
}
|
||||
|
||||
Future<List<GenericSearchResult>> getFileTypeResults(
|
||||
BuildContext context,
|
||||
String query,
|
||||
) async {
|
||||
final List<GenericSearchResult> searchResults = [];
|
||||
final List<EnteFile> allFiles = await getAllFiles();
|
||||
for (var fileType in FileType.values) {
|
||||
final String fileTypeString = getHumanReadableString(fileType);
|
||||
final String fileTypeString = getHumanReadableString(context, fileType);
|
||||
if (fileTypeString.toLowerCase().startsWith(query.toLowerCase())) {
|
||||
final matchedFiles =
|
||||
allFiles.where((e) => e.fileType == fileType).toList();
|
||||
|
@ -311,6 +312,7 @@ class SearchService {
|
|||
}
|
||||
|
||||
Future<List<GenericSearchResult>> getAllFileTypesAndExtensionsResults(
|
||||
BuildContext context,
|
||||
int? limit,
|
||||
) async {
|
||||
final List<GenericSearchResult> searchResults = [];
|
||||
|
@ -340,13 +342,23 @@ class SearchService {
|
|||
}
|
||||
|
||||
fileTypesAndMatchingFiles.forEach((key, value) {
|
||||
searchResults
|
||||
.add(GenericSearchResult(ResultType.fileType, key.name, value));
|
||||
searchResults.add(
|
||||
GenericSearchResult(
|
||||
ResultType.fileType,
|
||||
getHumanReadableString(context, key),
|
||||
value,
|
||||
),
|
||||
);
|
||||
});
|
||||
|
||||
extensionsAndMatchingFiles.forEach((key, value) {
|
||||
searchResults
|
||||
.add(GenericSearchResult(ResultType.fileExtension, key, value));
|
||||
searchResults.add(
|
||||
GenericSearchResult(
|
||||
ResultType.fileExtension,
|
||||
key + "s",
|
||||
value,
|
||||
),
|
||||
);
|
||||
});
|
||||
|
||||
if (limit != null) {
|
||||
|
@ -860,7 +872,9 @@ class SearchService {
|
|||
searchResults.add(
|
||||
GenericSearchResult(
|
||||
ResultType.shared,
|
||||
key.name != null && key.name!.isNotEmpty ? key.name! : key.email,
|
||||
key.name != null && key.name!.isNotEmpty
|
||||
? key.name!
|
||||
: key.email.split("@")[0],
|
||||
value,
|
||||
),
|
||||
);
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
import "dart:async";
|
||||
|
||||
import "package:flutter/material.dart";
|
||||
import "package:flutter/scheduler.dart";
|
||||
import "package:logging/logging.dart";
|
||||
import "package:photos/core/constants.dart";
|
||||
import "package:photos/core/event_bus.dart";
|
||||
|
@ -37,13 +36,11 @@ class _AllSectionsExamplesProviderState
|
|||
@override
|
||||
void initState() {
|
||||
super.initState();
|
||||
SchedulerBinding.instance.addPostFrameCallback((timeStamp) {
|
||||
//add all common events for all search sections to reload to here.
|
||||
_filesUpdatedEvent = Bus.instance.on<FilesUpdatedEvent>().listen((event) {
|
||||
reloadAllSections();
|
||||
});
|
||||
//add all common events for all search sections to reload to here.
|
||||
_filesUpdatedEvent = Bus.instance.on<FilesUpdatedEvent>().listen((event) {
|
||||
reloadAllSections();
|
||||
});
|
||||
reloadAllSections();
|
||||
}
|
||||
|
||||
void reloadAllSections() {
|
||||
|
@ -57,7 +54,7 @@ class _AllSectionsExamplesProviderState
|
|||
continue;
|
||||
}
|
||||
allSectionsExamples.add(
|
||||
sectionType.getData(limit: searchSectionLimit, context: context),
|
||||
sectionType.getData(context, limit: searchSectionLimit),
|
||||
);
|
||||
}
|
||||
allSectionsExamplesFuture =
|
||||
|
|
|
@ -1,4 +1,3 @@
|
|||
import "package:flutter/cupertino.dart";
|
||||
import "package:flutter/material.dart";
|
||||
import "package:photos/generated/l10n.dart";
|
||||
import "package:photos/services/search_service.dart";
|
||||
|
@ -19,7 +18,6 @@ class GoToMapWidget extends StatelessWidget {
|
|||
width = 85.0 + ((textScaleFactor - 1.0) * 64);
|
||||
}
|
||||
|
||||
final colorScheme = getEnteColorScheme(context);
|
||||
return GestureDetector(
|
||||
onTap: () async {
|
||||
final bool result = await requestForMapEnable(context);
|
||||
|
@ -40,14 +38,10 @@ class GoToMapWidget extends StatelessWidget {
|
|||
child: Column(
|
||||
mainAxisSize: MainAxisSize.min,
|
||||
children: [
|
||||
SizedBox(
|
||||
Image.asset(
|
||||
"assets/map.png",
|
||||
width: 64,
|
||||
height: 64,
|
||||
child: Icon(
|
||||
CupertinoIcons.map_fill,
|
||||
color: colorScheme.strokeFaint,
|
||||
size: 48,
|
||||
),
|
||||
),
|
||||
const SizedBox(
|
||||
height: 10,
|
||||
|
|
|
@ -30,24 +30,20 @@ class _SearchSectionAllPageState extends State<SearchSectionAllPage> {
|
|||
@override
|
||||
void initState() {
|
||||
super.initState();
|
||||
sectionData = widget.sectionType.getData(context);
|
||||
|
||||
final streamsToListenTo = widget.sectionType.viewAllUpdateEvents();
|
||||
for (Stream<Event> stream in streamsToListenTo) {
|
||||
streamSubscriptions.add(
|
||||
stream.listen((event) async {
|
||||
setState(() {
|
||||
sectionData = widget.sectionType.getData();
|
||||
sectionData = widget.sectionType.getData(context);
|
||||
});
|
||||
}),
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
@override
|
||||
void didChangeDependencies() {
|
||||
super.didChangeDependencies();
|
||||
sectionData = widget.sectionType.getData(limit: null, context: context);
|
||||
}
|
||||
|
||||
@override
|
||||
void dispose() {
|
||||
for (var subscriptions in streamSubscriptions) {
|
||||
|
|
|
@ -48,8 +48,10 @@ class _SearchSectionState extends State<SearchSection> {
|
|||
for (Stream<Event> stream in streamsToListenTo) {
|
||||
streamSubscriptions.add(
|
||||
stream.listen((event) async {
|
||||
_examples =
|
||||
await widget.sectionType.getData(limit: searchSectionLimit);
|
||||
_examples = await widget.sectionType.getData(
|
||||
context,
|
||||
limit: searchSectionLimit,
|
||||
);
|
||||
setState(() {});
|
||||
}),
|
||||
);
|
||||
|
@ -73,47 +75,51 @@ class _SearchSectionState extends State<SearchSection> {
|
|||
@override
|
||||
Widget build(BuildContext context) {
|
||||
debugPrint("Building section for ${widget.sectionType.name}");
|
||||
final shouldShowMore = _examples.length >= widget.limit - 1;
|
||||
final textTheme = getEnteTextTheme(context);
|
||||
return Padding(
|
||||
padding: const EdgeInsets.symmetric(vertical: 8),
|
||||
child: widget.examples.isNotEmpty
|
||||
? Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
Row(
|
||||
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
||||
children: [
|
||||
Padding(
|
||||
padding: const EdgeInsets.all(12),
|
||||
child: Text(
|
||||
widget.sectionType.sectionTitle(context),
|
||||
style: textTheme.largeBold,
|
||||
),
|
||||
? GestureDetector(
|
||||
behavior: HitTestBehavior.opaque,
|
||||
onTap: () {
|
||||
if (shouldShowMore) {
|
||||
routeToPage(
|
||||
context,
|
||||
SearchSectionAllPage(
|
||||
sectionType: widget.sectionType,
|
||||
),
|
||||
_examples.length < (widget.limit - 1)
|
||||
? const SizedBox.shrink()
|
||||
: GestureDetector(
|
||||
onTap: () {
|
||||
routeToPage(
|
||||
context,
|
||||
SearchSectionAllPage(
|
||||
sectionType: widget.sectionType,
|
||||
),
|
||||
);
|
||||
},
|
||||
child: Padding(
|
||||
);
|
||||
}
|
||||
},
|
||||
child: Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
Row(
|
||||
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
||||
children: [
|
||||
Padding(
|
||||
padding: const EdgeInsets.all(12),
|
||||
child: Text(
|
||||
widget.sectionType.sectionTitle(context),
|
||||
style: textTheme.largeBold,
|
||||
),
|
||||
),
|
||||
shouldShowMore
|
||||
? Padding(
|
||||
padding: const EdgeInsets.all(12),
|
||||
child: Icon(
|
||||
Icons.chevron_right_outlined,
|
||||
color: getEnteColorScheme(context).strokeMuted,
|
||||
),
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
const SizedBox(height: 2),
|
||||
SearchExampleRow(_examples, widget.sectionType),
|
||||
],
|
||||
)
|
||||
: const SizedBox.shrink(),
|
||||
],
|
||||
),
|
||||
const SizedBox(height: 2),
|
||||
SearchExampleRow(_examples, widget.sectionType),
|
||||
],
|
||||
),
|
||||
)
|
||||
: Padding(
|
||||
padding: const EdgeInsets.only(left: 16, right: 8),
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
import 'package:flutter/material.dart';
|
||||
import 'package:logging/logging.dart';
|
||||
import "package:photos/generated/l10n.dart";
|
||||
import 'package:photos/models/search/album_search_result.dart';
|
||||
import 'package:photos/models/search/generic_search_result.dart';
|
||||
import 'package:photos/models/search/search_result.dart';
|
||||
|
@ -21,12 +22,7 @@ class SearchSuggestionsWidget extends StatelessWidget {
|
|||
Widget build(BuildContext context) {
|
||||
late final String title;
|
||||
final resultsCount = results.length;
|
||||
//todo: extract string
|
||||
if (resultsCount == 1) {
|
||||
title = "$resultsCount result found";
|
||||
} else {
|
||||
title = "$resultsCount results found";
|
||||
}
|
||||
title = S.of(context).searchResultCount(resultsCount);
|
||||
return Padding(
|
||||
padding: const EdgeInsets.fromLTRB(12, 32, 12, 0),
|
||||
child: Column(
|
||||
|
|
|
@ -225,7 +225,7 @@ class SearchWidgetState extends State<SearchWidget> {
|
|||
allResults.addAll(holidayResults);
|
||||
|
||||
final fileTypeSearchResults =
|
||||
await _searchService.getFileTypeResults(query);
|
||||
await _searchService.getFileTypeResults(context, query);
|
||||
allResults.addAll(fileTypeSearchResults);
|
||||
|
||||
final captionAndDisplayNameResult =
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
import "package:flutter/material.dart";
|
||||
import "package:photos/generated/l10n.dart";
|
||||
import "package:photos/theme/ente_theme.dart";
|
||||
import "package:photos/ui/components/buttons/button_widget.dart";
|
||||
import "package:photos/ui/components/empty_state_item_widget.dart";
|
||||
|
@ -19,25 +20,25 @@ class SearchTabEmptyState extends StatelessWidget {
|
|||
mainAxisAlignment: MainAxisAlignment.center,
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
Text("Fast, on-device search", style: textStyle.h3Bold),
|
||||
Text(S.of(context).searchHint1, style: textStyle.h3Bold),
|
||||
const SizedBox(height: 24),
|
||||
const EmptyStateItemWidget("Photo dates, descriptions"),
|
||||
EmptyStateItemWidget(S.of(context).searchHint2),
|
||||
const SizedBox(height: 12),
|
||||
const EmptyStateItemWidget("Albums, file names, and types"),
|
||||
EmptyStateItemWidget(S.of(context).searchHint3),
|
||||
const SizedBox(height: 12),
|
||||
const EmptyStateItemWidget("Location"),
|
||||
EmptyStateItemWidget(S.of(context).searchHint4),
|
||||
const SizedBox(height: 12),
|
||||
const EmptyStateItemWidget("Coming soon: Photo contents, faces"),
|
||||
EmptyStateItemWidget(S.of(context).searchHint5),
|
||||
const SizedBox(height: 32),
|
||||
ButtonWidget(
|
||||
buttonType: ButtonType.trailingIconPrimary,
|
||||
labelText: "Add your photos now",
|
||||
labelText: S.of(context).addYourPhotosNow,
|
||||
icon: Icons.arrow_forward_outlined,
|
||||
onTap: () async {
|
||||
routeToPage(
|
||||
context,
|
||||
const BackupFolderSelectionPage(
|
||||
buttonText: "Backup",
|
||||
BackupFolderSelectionPage(
|
||||
buttonText: S.of(context).backup,
|
||||
),
|
||||
);
|
||||
},
|
||||
|
|
Loading…
Reference in a new issue