Progetto di fine corso Programmazione di Sistemi Embedded 2021 DEI@UniPD
Galleria per la visualizzazione di foto sviluppata utlizzando JetPack Compose.
Durante lo sviluppo abbiamo utilizzato l'emulatore in versione API 30.
- Supporto alla darkmode (Attraverso i temi)
- Supporto lingua Italiano e Inglese
- Implementazione della navigazione tramite Navigation
- Possibilità di utilizzo delle gesture di swipe e zoom in FullImage
- Possibilità di modificare le preferenze della galleria:
-
- Nome
-
- Modalità di ordinamento per data
-
- Dimensione delle immagini
- Possibilità di condividere foto
- Possibilità di aprire la fotocamera dall'app
- Creazione di una UI di primo avvio dell'app
- Intent per lanciare la gestione dei permessi
- Implementazione della richiesta dei premessi secondo linee guida
- Creazione UI per la gestione dei premessi
- Creazione della UI nel caso in cui i permessi vengano negati
Questa classe è l'activity principale della nostra applicazione, nonchè quella che viene lanciata all'avvio. La sua funzione è di disambiguazione, può:
- Mostrare FirstTimeActivity se è il primo lancio dell'applicazione
- Mostrare PermissionActivity per la gestione dei permessi
- Impostare la navigazione e lanciare /screen/ImagesGrid.kt
Questa classe contiene tutte le stringhe che abbiamo utilizzato come chiavi per salvare valori sulle shared preferences
Lo scopo di questa classe è quello di fornire un livello di astrazione rispetto alla gestione della memoria di Android.
- Reperire gli URI da MediaStore
- Reperire i metadati EXIF delle foto
- Metodo per la cancellazione delle foto
Dentro questo package vengono definiti colori e temi presenti per la nostra applicazione. Viene definito il GalleryTheme che poi abbiamo applicato alle nostre UI. L'utilizzo dei temi ha permesso di avere una coerenza grafica e l'implementazione della Dark Mode.
Dentro questo package sono state inserite tutte le UI che vengono usate dalla Navigation.
- Creazione UI (responsive) griglia principale
-
- Creazione di TopBar e Bottombar
-
- Rendere responsive alle modifiche eseguite in screen/Settings.kt
- Rendere modificabile la dimensione dei box
-
- Aggiunta FloatingActionButton con intent a forocamera
- Creazione di una UI da mostrare se non ci sono foto
-
- Aggiungre intent per aprire la fotocamera se non ci sono foto
- Creazione UI (responsive) per immagine con metadati EXIF
-
- Visualizzazione in 3 schede dei metadati EXIF
- Aggiunta del bottone per la condivisione dell'immagine (Intent)
- Il tocco sull'immagine mostrata deve riportare a FullImage
- Creazione UI (responsive) per immagine a schermo intero
- Implementazione delle gesture
-
- Implementazione della gesture per lo zoom
-
- Implementazione delle gesture di swipe per la navigazione tra le immagini
- Implementazione FloatingActionButton con ulteriori opzioni
-
- Implementazione della cancellazione di immagini
-
- Implementazione SnackBar per conferma cancellazione
-
- Implementazione Toast per cancellazione non consentita
- Creazione UI (responsive) per la gestione delle impostazioni
-
- Possibilità di cambiare il nome della galleria
-
- Possibilità di cambiare la dimensione mediante uno scroller
-
- Ordinamento per data