WEBVTT

1
00:00.830 --> 00:01.880
Bentornati.

2
00:01.880 --> 00:05.870
Abbiamo aggiornato il repository e abbiamo
aggiunto questi tre metodi.

3
00:05.870 --> 00:09.020
Ora aggiorneremo il ViewModel.

4
00:09.050 --> 00:10.280
Aprire il ViewModel.

5
00:10.280 --> 00:15.170
Qui abbiamo i filmati che recuperiamo nei
Composable.

6
00:15.170 --> 00:17.540
E abbiamo filmati dell'API.

7
00:17.570 --> 00:26.450
Dobbiamo creare un'altra variabile, quindi
la chiameremo film Offline var film dalla
stanza db

8
00:26.480 --> 00:36.170
by mutable state of list of movie empty
list private set dicendo che solo

9
00:36.170 --> 00:39.680
il ViewModel dei film solo questa classe
può cambiare i film dalla variabile DB.

10
00:39.680 --> 00:46.400
Ora dobbiamo ottenere i dati e
memorizzarli nei filmati dal database
della stanza e aggiornare la

11
00:46.400 --> 00:51.890
variabile dei filmati in caso di perdita
della connessione dati e di connessione a
Internet.

12
00:51.920 --> 00:59.600
Ok, quindi all'interno del blocco initiate
qui, nello

13
00:59.600 --> 01:00.200
scope ViewModel, inseriamo i dati fetch
dall'API.

14
01:00.230 --> 01:06.770
Inizierò con il repository dot insert
movies in DB, perché si tratta di un
elenco.

15
01:06.770 --> 01:12.110
Si tratta di un elenco di film, che
dobbiamo inserire come film multipli.

16
01:12.110 --> 01:15.290
Ecco quindi i filmati dell'API.

17
01:15.350 --> 01:22.400
Recuperiamo i dati, recuperiamo i film,
inseriamo i film

18
01:22.400 --> 01:24.440
nel database e assegniamo i film ai film
dell'API.

19
01:24.470 --> 01:31.250
Ora, se i dati non vengono recuperati da

20
01:31.250 --> 01:31.910
Internet, è necessario recuperarli dal
database della stanza.

21
01:31.910 --> 01:41.060
Per questo, dobbiamo iniziare con i
filmati dal database della

22
01:41.060 --> 01:41.330
stanza uguale al repository dot get movies
from db.

23
01:41.360 --> 01:47.660
Quindi è necessario assegnare i film ai
film del database della sala.

24
01:47.690 --> 01:50.270
Ok, abbiamo due casi.

25
01:50.270 --> 01:56.720
Se c'è una connessione a Internet e tutto
funziona bene e abbiamo fornito una chiave
API valida,

26
01:56.720 --> 02:05.480
possiamo recuperare i dati dalla stanza o
dal retrofit e recuperare i dati dalla
risposta JSON.

27
02:05.510 --> 02:12.440
Ok, se si verifica un errore, andare a
recuperare i dati dal database

28
02:12.440 --> 02:14.000
delle sale e assegnare i film ai film del
database delle sale.

29
02:14.000 --> 02:15.470
Abbiamo quindi due casi.

30
02:15.470 --> 02:17.990
I filmati corrispondono ai filmati
dell'API.

31
02:17.990 --> 02:23.390
Se c'è una connessione a Internet e tutto
funziona bene, altrimenti dobbiamo
ottenere un'assegnazione dei filmati

32
02:23.420 --> 02:29.690
dalla variabile filmati del database della
stanza che sono memorizzati all'interno
del database della stanza.

33
02:29.690 --> 02:33.170
Quindi, stiamo recuperando i dati dal
database della stanza.

34
02:33.170 --> 02:35.240
Passiamo all'attività principale.

35
02:35.240 --> 02:37.010
E qui c'è un errore.

36
02:37.040 --> 02:39.620
Il repository ha bisogno di un contesto.

37
02:39.620 --> 02:42.890
È inoltre necessario inizializzare il
database delle stanze.

38
02:42.890 --> 02:47.570
Quindi qui il repository a cui devo
passare il contesto dell'applicazione.

39
02:47.570 --> 02:57.440
Inoltre dobbiamo inizializzare il database
dei file della stanza uguale a film db dot
get instance application.

40
02:57.440 --> 03:04.910
Inoltre, si può eliminare questo database
se non è necessario inizializzare il
database e ottenere

41
03:04.910 --> 03:10.370
il repository da esso, come in questo
caso, posso eliminarlo dal database della
stanza.

42
03:10.370 --> 03:17.840
Voglio aggiungere gli ultimi ritocchi
all'interfaccia utente nei prossimi video,
ma lasciatemi eseguire l'applicazione e
testare la funzionalità.

43
03:17.870 --> 03:18.500
Eccoci qua.

44
03:18.530 --> 03:19.970
Questa è la nostra applicazione.

45
03:19.970 --> 03:28.380
Verifichiamo il database della stanza
facendo clic sull'ispezione
dell'applicazione

46
03:28.380 --> 03:29.340
in tre punti e otterremo il DB dei
filmati.

47
03:29.370 --> 03:37.410
Inoltre, se faccio clic sulla tabella dei
film, notiamo che ci sono 20 record

48
03:37.410 --> 03:40.230
nel nostro database, il che ci dice che il
database della sala funziona bene.

49
03:40.230 --> 03:42.120
Abbiamo quindi il primo disco.

50
03:42.120 --> 03:44.520
Il titolo è Inside Out overview.

51
03:44.550 --> 03:52.020
Quando 11 anni e la panoramica e il
percorso del poster qui, questo è il
percorso dell'immagine.

52
03:52.050 --> 03:54.570
Ok, tutto funziona bene.

53
03:54.570 --> 04:00.570
Lasciate che spenga la connessione a
Internet e che provi a eseguire di nuovo
l'applicazione.

54
04:00.570 --> 04:01.890
Ed eccoci qui.

55
04:01.890 --> 04:04.140
Attiviamo la connessione a Internet.

56
04:04.140 --> 04:09.480
La nostra applicazione visualizza i dati
del database della stanza.

57
04:09.480 --> 04:11.370
Quindi, congratulazioni ragazzi.

58
04:11.370 --> 04:20.310
Siamo riusciti a costruire questa
fantastica applicazione che recupera i
dati dall'API online Tmdb

59
04:20.310 --> 04:25.230
del sito web movie db.org e memorizza i
dati recuperati nel database della stanza.

60
04:25.230 --> 04:32.460
Utilizziamo il database della camera
retrofit seguendo l'architettura MVVM con
Jetpack Compose.


