Bentornati.
Abbiamo aggiornato il repository e abbiamo aggiunto questi tre metodi.
Ora aggiorneremo il ViewModel.
Aprire il ViewModel.
Qui abbiamo i filmati che recuperiamo nei Composable.
E abbiamo filmati dell'API.
Dobbiamo creare un'altra variabile, quindi la chiameremo film Offline var film dalla stanza db
by mutable state of list of movie empty list private set dicendo che solo
il ViewModel dei film solo questa classe può cambiare i film dalla variabile DB.
Ora dobbiamo ottenere i dati e memorizzarli nei filmati dal database della stanza e aggiornare la
variabile dei filmati in caso di perdita della connessione dati e di connessione a Internet.
Ok, quindi all'interno del blocco initiate qui, nello
scope ViewModel, inseriamo i dati fetch dall'API.
Inizierò con il repository dot insert movies in DB, perché si tratta di un elenco.
Si tratta di un elenco di film, che dobbiamo inserire come film multipli.
Ecco quindi i filmati dell'API.
Recuperiamo i dati, recuperiamo i film, inseriamo i film
nel database e assegniamo i film ai film dell'API.
Ora, se i dati non vengono recuperati da
Internet, è necessario recuperarli dal database della stanza.
Per questo, dobbiamo iniziare con i filmati dal database della
stanza uguale al repository dot get movies from db.
Quindi è necessario assegnare i film ai film del database della sala.
Ok, abbiamo due casi.
Se c'è una connessione a Internet e tutto funziona bene e abbiamo fornito una chiave API valida,
possiamo recuperare i dati dalla stanza o dal retrofit e recuperare i dati dalla risposta JSON.
Ok, se si verifica un errore, andare a recuperare i dati dal database
delle sale e assegnare i film ai film del database delle sale.
Abbiamo quindi due casi.
I filmati corrispondono ai filmati dell'API.
Se c'è una connessione a Internet e tutto funziona bene, altrimenti dobbiamo ottenere un'assegnazione dei filmati
dalla variabile filmati del database della stanza che sono memorizzati all'interno del database della stanza.
Quindi, stiamo recuperando i dati dal database della stanza.
Passiamo all'attività principale.
E qui c'è un errore.
Il repository ha bisogno di un contesto.
È inoltre necessario inizializzare il database delle stanze.
Quindi qui il repository a cui devo passare il contesto dell'applicazione.
Inoltre dobbiamo inizializzare il database dei file della stanza uguale a film db dot get instance application.
Inoltre, si può eliminare questo database se non è necessario inizializzare il database e ottenere
il repository da esso, come in questo caso, posso eliminarlo dal database della stanza.
Voglio aggiungere gli ultimi ritocchi all'interfaccia utente nei prossimi video, ma lasciatemi eseguire l'applicazione e testare la funzionalità.
Eccoci qua.
Questa è la nostra applicazione.
Verifichiamo il database della stanza facendo clic sull'ispezione dell'applicazione
in tre punti e otterremo il DB dei filmati.
Inoltre, se faccio clic sulla tabella dei film, notiamo che ci sono 20 record
nel nostro database, il che ci dice che il database della sala funziona bene.
Abbiamo quindi il primo disco.
Il titolo è Inside Out overview.
Quando 11 anni e la panoramica e il percorso del poster qui, questo è il percorso dell'immagine.
Ok, tutto funziona bene.
Lasciate che spenga la connessione a Internet e che provi a eseguire di nuovo l'applicazione.
Ed eccoci qui.
Attiviamo la connessione a Internet.
La nostra applicazione visualizza i dati del database della stanza.
Quindi, congratulazioni ragazzi.
Siamo riusciti a costruire questa fantastica applicazione che recupera i dati dall'API online Tmdb
del sito web movie db.org e memorizza i dati recuperati nel database della stanza.
Utilizziamo il database della camera retrofit seguendo l'architettura MVVM con Jetpack Compose.