Skip to content

Commit

Permalink
Add new experimental file picker (#86) and improve save video page
Browse files Browse the repository at this point in the history
  • Loading branch information
KyleKun committed Aug 30, 2023
1 parent 55fb8ac commit 0f722e5
Show file tree
Hide file tree
Showing 15 changed files with 651 additions and 491 deletions.
8 changes: 7 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,11 @@
## v1.5.2 - xx/2023
## v1.5.2 - 09/2023
- Added a new "lock orientation" button in the recording page
- Added a new experimental file picker with:
- Filter support: past dates will show videos recorded on that date on the top
- Preview support: videos can be fully watched before being selected
- Improved save video page by separating options in tabs
- Fixed calendar page resetting to current date after returning from save video page for past dates
- Fixed videoplayer showing some landscape videos rotated in preview

## v1.5.1 - 02/2023
- Improved movies viewer page ordering movies by most recent
Expand Down
41 changes: 18 additions & 23 deletions lib/lang/de.dart
Original file line number Diff line number Diff line change
Expand Up @@ -12,23 +12,19 @@ const Map<String, String> de = {
'createMovie': 'Film erstellen',
'settings': 'Einstellungen',
'movieErrorTitle': 'Film konnte nicht erstellt werden!',
'movieInsufficientVideos':
'Du benötigst mindestens 2 Videos, um einen Film zu erstellen',
'movieInsufficientVideos': 'Du benötigst mindestens 2 Videos, um einen Film zu erstellen',
'movieCreatedTitle': 'Film wurde erstellt!',
'movieCreatedDesc':
'Der Film wurde im DCIM/OneSecondDiary/Movies-Verzeichnis gespeichert',
'movieCreatedDesc': 'Der Film wurde im DCIM/OneSecondDiary/Movies-Verzeichnis gespeichert',
'movieError': 'Film wurde nicht gespeichert!',
'tryAgainMsg':
'Bitte versuche es erneut. Wenn das Problem weiterhin besteht, kontaktiere die Entwickler.',
'create': 'Erstellen',
'days': 'Tage',
'day': 'Tag',
'totalRecordedTitle': 'Aufgenommen:',
'tapBelowToGenerate':
'Tippe auf den untenstehenden Button um\neinen Film zu erstellen:',
'tapBelowToGenerate': 'Tippe auf den untenstehenden Button um\neinen Film zu erstellen:',
'editQuestionTitle': 'Video bearbeiten?',
'editQuestion':
'Deine vorherige Aufnahme wird entfernt, möchtest Du fortsetzen?',
'editQuestion': 'Deine vorherige Aufnahme wird entfernt, möchtest Du fortsetzen?',
'yes': 'Ja',
'no': 'Nein',
'edit': 'Bearbeiten',
Expand All @@ -46,8 +42,7 @@ const Map<String, String> de = {
'discardVideoTitle': 'Video verwerfen?',
'discardVideoDesc': 'Tippe "Ja" um erneut aufzunehmen',
'introTitle1': 'Halte 1 Sekunde eines jeden Tages fest',
'introDesc1':
'Wähle einen speziellen Moment Deines Tages an welchen Du Dich erinnern möchtest.',
'introDesc1': 'Wähle einen speziellen Moment Deines Tages an welchen Du Dich erinnern möchtest.',
'introTitle2': 'Erstelle den Film Deines Lebens',
'introDesc2': 'Kreiere eine Zusammenstellung Deiner schönsten Momente.',
'introTitle3': 'Keine Werbung und kostenlos',
Expand Down Expand Up @@ -114,8 +109,7 @@ const Map<String, String> de = {
'Alle mit diesem Profil verknüpften Videos werden ebenfalls dauerhaft gelöscht.Bist du sicher weiter? ',
'profileNameCannotBeEmpty': 'Profilname kann nicht leer sein',
'reservedProfileName': 'Dies ist ein reservierter Profilname',
'creatingMovie':
'Verarbeitung... Bitte warten.\nDies kann mehrere Minuten dauern.',
'creatingMovie': 'Verarbeitung... Bitte warten.\nDies kann mehrere Minuten dauern.',
'doNotCloseTheApp': 'Bitte schließen Sie die\nApp nicht',
'cancelMovieCreation': 'Film erstellen abbrechen',
'cancelMovieDesc': 'Möchtest Du wirklich abbrechen?',
Expand All @@ -141,20 +135,17 @@ const Map<String, String> de = {
'whatsNewDescv15':
'Diese Version brachte viele neue Funktionen und Verbesserungen!\n\nSehen Sie es sich in den nächsten Seiten an 😊',
'feat1v15': 'Galerie',
'featDesc1v15':
'Fügen Sie ganz einfach Videos aus der Galerie zu Ihrer Sammlung hinzu 🤩',
'featDesc1v15': 'Fügen Sie ganz einfach Videos aus der Galerie zu Ihrer Sammlung hinzu 🤩',
'feat2v15': 'Untertitel',
'featDesc2v15':
'Fügen Sie Untertitel hinzu, um mehr Details über Ihren Tag zu erfahren 📝',
'featDesc2v15': 'Fügen Sie Untertitel hinzu, um mehr Details über Ihren Tag zu erfahren 📝',
'feat3v15': 'Geotagging',
'featDesc3v15':
'Fügen Sie Ihren Videos automatische oder manuelle Geotagging-Informationen hinzu, um sich an den Ort jedes Moments erinnern zu können 📍',
'feat4v15': 'Profile',
'featDesc4v15':
'Erstellen Sie mehrere Profile, um Ihre Videos separat zu speichern und einfach zwischen ihnen zu wechseln 🤗',
'feat5v15': 'Kalender',
'featDesc5v15':
'Anzeige und Bearbeitung von jedem Ihrer aufgezeichneten Tage im Kalender 📅',
'featDesc5v15': 'Anzeige und Bearbeitung von jedem Ihrer aufgezeichneten Tage im Kalender 📅',
'feat6v15': 'Filme',
'featDesc6v15':
'Erstellen Sie benutzerdefinierte Filme mit ausgewählten Zeiträumen oder spezifischen Videos 🎥',
Expand All @@ -163,25 +154,29 @@ const Map<String, String> de = {
'Einrichten von täglichen Benachrichtigungen, um Sie daran zu erinnern, Ihren besonderen Moment aufzuzeichnen 🔔',
'default': 'Standard',
'profileNameAlreadyExists': 'Profilname existiert bereits',
'profileNameCannotContainSpecialChars':
'Profilname kann keine\nSonderzeichen enthalten',
'profileNameCannotContainSpecialChars': 'Profilname kann keine\nSonderzeichen enthalten',
'subtitlesSaved': 'Untertitel gespeichert!',
'error': 'Fehler',
'migrationError':
'Beim Migrieren Ihrer Videos ist ein Fehler aufgetreten. Bitte schließen Sie die App und kopieren Sie die Videos manuell von Internal Storage > OneSecondDiary nach Internal Storage > DCIM > OneSecondDiary und löschen Sie anschließend den alten Ordner.',
'success': 'Erfolg',
'migrationSuccess':
'Migration erfolgreich! Alle Videos und Filme sind jetzt in Internal Storage > DCIM > OneSecondDiary gespeichert',
'migrationInProgress':
'Migrieren aller Videos in den neuen App-Ordner, bitte warten...',
'migrationInProgress': 'Migrieren aller Videos in den neuen App-Ordner, bitte warten...',
'migrationFolderDeletionError':
'Migration abgeschlossen, aber beim Löschen der alten Ordner ist ein Fehler aufgetreten. Bitte löschen Sie sie manuell.',
'preferences': 'Einstellungen',
'forceNativeCamera': 'Nur nativen Kamera-Modus verwenden',
'forceNativeCameraDescription':
'Verwenden Sie die native Kamera-App, um Videos aufzunehmen, anstatt die integrierte Kamera. Dies kann Probleme beim Aufzeichnen für Geräte mit geringeren Leistungsmerkmalen lösen. Diese Option funktioniert nicht auf Android 13.',
'Verwenden Sie die native Kamera-App, um Videos aufzunehmen, anstatt der eingebauten Kamera. Dies kann Aufnahmeprobleme für Geräte mit geringerer Leistungsfähigkeit lösen. Es funktioniert möglicherweise nicht auf einigen Geräten.',
'movies': 'Filme',
'myMovies': 'Meine filme',
'noMoviesFound': 'Keine Filme gefunden',
'play': 'Abspielen',
'saveVideoTabOne': 'Dateneigenschaften',
'saveVideoTabTwo': 'Standort',
'saveVideoTabThree': 'Untertitel',
'useExperimentalPicker': 'Experimentellen Dateiauswähler',
'useExperimentalPickerDescription':
'Verwenden Sie den experimentellen Dateiauswähler, um Videos aus der Galerie auszuwählen. Dies ermöglicht eine Vorschau des Videos vor der Auswahl, schnellere Ladezeiten und zeigt direkt die Aufnahmen für das ausgewählte Datum an. Deaktivieren Sie es, wenn Sie Probleme haben oder die alte Methode bevorzugen.',
};
38 changes: 17 additions & 21 deletions lib/lang/en.dart
Original file line number Diff line number Diff line change
Expand Up @@ -15,20 +15,16 @@ const Map<String, String> en = {
'movieInsufficientVideos':
'You need to have 2 or more recorded videos in order to create a movie',
'movieCreatedTitle': 'Movie created!',
'movieCreatedDesc':
'Movie saved to storage inside DCIM/OneSecondDiary/Movies folder',
'movieCreatedDesc': 'Movie saved to storage inside DCIM/OneSecondDiary/Movies folder',
'movieError': 'Error saving the movie!',
'tryAgainMsg':
'Please try again. If the problem persists, contact the developer.',
'tryAgainMsg': 'Please try again. If the problem persists, contact the developer.',
'create': 'Create',
'days': 'days',
'day': 'day',
'totalRecordedTitle': 'You have recorded:',
'tapBelowToGenerate':
'Tap the button below to generate\na single video file:',
'tapBelowToGenerate': 'Tap the button below to generate\na single video file:',
'editQuestionTitle': 'Edit video?',
'editQuestion':
'Your previous recording will be deleted, do you want to continue?',
'editQuestion': 'Your previous recording will be deleted, do you want to continue?',
'yes': 'Yes',
'no': 'No',
'edit': 'Edit',
Expand All @@ -51,8 +47,7 @@ const Map<String, String> en = {
'introTitle2': 'Create the movie of your life',
'introDesc2': 'Generate a compilation of all your recorded videos.',
'introTitle3': 'No ads and totally free',
'introDesc3':
'If you like the app, consider supporting the development with a donation.',
'introDesc3': 'If you like the app, consider supporting the development with a donation.',
'skip': 'Skip',
'done': 'Done',
'futureUpdates': 'Future Updates',
Expand Down Expand Up @@ -129,8 +124,7 @@ const Map<String, String> en = {
'unsupportedPortraitMode':
'Portrait mode videos are not supported at this time. Please select another video',
'processingVideo': 'Processing video',
'deleteVideoWarning':
'Are you sure you want to permanently delete this video?',
'deleteVideoWarning': 'Are you sure you want to permanently delete this video?',
'deleteVideo': 'Delete video',
'addSubtitles': 'Add subtitles',
'dateColorAndFormat': 'Date Color & Format',
Expand All @@ -147,8 +141,7 @@ const Map<String, String> en = {
'feat1v15': 'Gallery',
'featDesc1v15': 'Easily add videos from the gallery to your collection 🤩',
'feat2v15': 'Subtitles',
'featDesc2v15':
'Add or edit subtitles to include more details of your day 📝',
'featDesc2v15': 'Add or edit subtitles to include more details of your day 📝',
'feat3v15': 'Geotagging',
'featDesc3v15':
'Add automatic or manual geotagging to your videos to help you remember where each moment took place 📍',
Expand All @@ -158,32 +151,35 @@ const Map<String, String> en = {
'feat5v15': 'Calendar',
'featDesc5v15': 'View and edit any of your recorded days in a calendar 📅',
'feat6v15': 'Movies',
'featDesc6v15':
'Generate custom movies with select periods or specific videos 🎥',
'featDesc6v15': 'Generate custom movies with select periods or specific videos 🎥',
'feat7v15': 'Notifications',
'featDesc7v15':
'Set up scheduled daily notifications to remind you to record your special moment 🔔',
'default': 'Default',
'profileNameAlreadyExists': 'Profile name already exists',
'profileNameCannotContainSpecialChars':
'Profile name cannot contain\nspecial characters',
'profileNameCannotContainSpecialChars': 'Profile name cannot contain\nspecial characters',
'subtitlesSaved': 'Subtitles saved!',
'error': 'Error',
'migrationError':
'An error occurred while migrating your videos. Please close the app and manually copy the videos from Internal Storage > OneSecondDiary to Internal Storage > DCIM > OneSecondDiary and delete the old folder afterwards.',
'success': 'Success',
'migrationSuccess':
'Migration successful! All videos and movies are now saved inside Internal Storage > DCIM > OneSecondDiary',
'migrationInProgress':
'Migrating all your videos to the new app folder, please wait...',
'migrationInProgress': 'Migrating all your videos to the new app folder, please wait...',
'migrationFolderDeletionError':
'Migration complete, but an error occurred while deleting the old folders. Please delete it manually.',
'preferences': 'Preferences',
'forceNativeCamera': 'Force native camera',
'forceNativeCameraDescription':
'Use the native camera app to record videos instead of the built-in camera. This can solve recording issues for devices with lower performance capabilities. This option does not work on Android 13.',
'Use the native camera app to record videos instead of the built-in camera. This can solve recording issues for devices with lower performance capabilities. It may not work on some devices.',
'movies': 'Movies',
'myMovies': 'My movies',
'noMoviesFound': 'No movies found',
'play': 'Play',
'saveVideoTabOne': 'Date Properties',
'saveVideoTabTwo': 'Location',
'saveVideoTabThree': 'Subtitles',
'useExperimentalPicker': 'Use experimental file picker',
'useExperimentalPickerDescription':
'Use the experimental file picker to select videos from the gallery. This allows previewing the video before selecting, faster loading times, and showing directly the recordings for the date selected. Disable it if you experience any issues or prefer the old method.',
};
32 changes: 15 additions & 17 deletions lib/lang/es.dart
Original file line number Diff line number Diff line change
Expand Up @@ -12,20 +12,17 @@ const Map<String, String> es = {
'createMovie': 'Crear película',
'settings': 'Ajustes',
'movieErrorTitle': 'La película no ha podido ser creada.',
'movieInsufficientVideos':
'Necesitas tener dos o más videos grabados para crear una película.',
'movieInsufficientVideos': 'Necesitas tener dos o más videos grabados para crear una película.',
'movieCreatedTitle': '¡Tu película se ha creado exitosamente!',
'movieCreatedDesc':
'La película ha sido guardada en la carpeta DCIM/OneSecondDiary/Movies.',
'movieCreatedDesc': 'La película ha sido guardada en la carpeta DCIM/OneSecondDiary/Movies.',
'movieError': 'Ha ocurrido un error guardando la película.',
'tryAgainMsg':
'Inténtalo nuevamente, por favor. Si el problema persiste, contacta al desarrollador.',
'create': 'Crear',
'days': 'días',
'day': 'día',
'totalRecordedTitle': 'Has grabado',
'tapBelowToGenerate':
'Presiona el siguiente botón para generar\nun archivo de video único.',
'tapBelowToGenerate': 'Presiona el siguiente botón para generar\nun archivo de video único.',
'editQuestionTitle': '¿Deseas editar el video?',
'editQuestion': 'La grabación anterior será eliminada, ¿deseas continuar?',
'yes': 'Sí',
Expand All @@ -45,8 +42,7 @@ const Map<String, String> es = {
'discardVideoTitle': '¿Descartar video grabado?',
'discardVideoDesc': 'Presiona "Sí" para grabar nuevamente.',
'introTitle1': 'Graba un segundo cada día.',
'introDesc1':
'Escoge un momento especial de tu día que te gustaría recordar en un futuro.',
'introDesc1': 'Escoge un momento especial de tu día que te gustaría recordar en un futuro.',
'introTitle2': 'Crea la película de tu vida.',
'introDesc2': 'Genera una compilación de todos tus videos grabados.',
'introTitle3': '¡Sin anuncios y totalmente gratis!',
Expand Down Expand Up @@ -114,12 +110,10 @@ const Map<String, String> es = {
'Todos los videos asociados con este perfil también se eliminarán permanentemente.¿Estás seguro de continuar?',
'profileNameCannotBeEmpty': 'El nombre del perfil no puede estar vacío',
'reservedProfileName': 'Este es un nombre de perfil reservado',
'creatingMovie':
'Procesando... Por favor espera.\nEsto puede tomar varios minutos.',
'creatingMovie': 'Procesando... Por favor espera.\nEsto puede tomar varios minutos.',
'doNotCloseTheApp': 'No cierres la aplicación',
'cancelMovieCreation': 'Cancelar creación de película',
'cancelMovieDesc':
'¿Estás seguro de que quieres cancelar la creación de la película?',
'cancelMovieDesc': '¿Estás seguro de que quieres cancelar la creación de la película?',
'reportError': 'Reportar error',
'oops': '¡Ups!',
'videoResolutionWarning':
Expand All @@ -144,17 +138,15 @@ const Map<String, String> es = {
'feat1v15': 'Galería',
'featDesc1v15': 'Añade fácilmente vídeos de la galería a tu colección 🤩',
'feat2v15': 'Subtítulos',
'featDesc2v15':
'Añade o edita subtítulos para incluir más detalles de tu día 📝',
'featDesc2v15': 'Añade o edita subtítulos para incluir más detalles de tu día 📝',
'feat3v15': 'Geotagging',
'featDesc3v15':
'Añade geotagging automático o manual a tus vídeos para ayudarte a recordar dónde ocurrió cada momento 📍',
'feat4v15': 'Perfiles',
'featDesc4v15':
'Crea múltiples perfiles para guardar tus vídeos por separado y cambiar entre ellos fácilmente 🤗',
'feat5v15': 'Calendario',
'featDesc5v15':
'Visualiza y edita cualquiera de tus días grabados en un calendario 📅',
'featDesc5v15': 'Visualiza y edita cualquiera de tus días grabados en un calendario 📅',
'feat6v15': 'Películas',
'featDesc6v15':
'Genera películas personalizadas con periodos seleccionados o vídeos específicos 🎥',
Expand All @@ -179,9 +171,15 @@ const Map<String, String> es = {
'preferences': 'Preferencias',
'forceNativeCamera': 'Forzar cámara nativa',
'forceNativeCameraDescription':
'Usa la aplicación de cámara nativa para grabar videos en lugar de la cámara incorporada. Esto puede solucionar problemas de grabación para dispositivos con capacidades de rendimiento más bajas. Esta opción no funciona en Android 13.',
'Use la aplicación de cámara nativa para grabar videos en lugar de la cámara integrada. Esto puede resolver problemas de grabación para dispositivos con capacidades de rendimiento más bajas. Puede que no funcione en algunos dispositivos.',
'movies': 'Películas',
'myMovies': 'Mis películas',
'noMoviesFound': 'No se encontraron películas',
'play': 'Reproducir',
'saveVideoTabOne': 'Propiedades de la fecha',
'saveVideoTabTwo': 'Ubicación',
'saveVideoTabThree': 'Subtítulos',
'useExperimentalPicker': 'Selector de archivos experimental',
'useExperimentalPickerDescription':
'Use el selector de archivos experimental para seleccionar videos de la galería. Esto permite previsualizar el video antes de seleccionarlo, tiempos de carga más rápidos y mostrar directamente las grabaciones para la fecha seleccionada. Desactívelo si experimenta algún problema o prefiere el método antiguo.',
};
Loading

0 comments on commit 0f722e5

Please sign in to comment.