Cette PR doit implémenter un cache pour des livres.
Pour faciliter l'implémentation du cache, j'ai refactoré les BookDatabase pour avoir une interface BookProvider qui permet de chercher des livres par ISBN, et une interface BookDatabasequi permentent de chercher par ISBN, Titre, et Interêt.
J'ai fait ça parce que faire un cache pour un BookProvider est plus simple que pour un BookDatabase.
J'ai refactor FBBookDatabase pour que la classe ne va pas elle-même chercher les livre que Firebase ne contient pas sur OpenLibrary. Pour obtenir un résultat similaire, il faut utiliser la nouvelle classe CachedBookProvider qui permet d'utiliser un BookProvider comme cache pour un second. Exemple d'utilisation dans Database.kt
Afin de pouvoir implémenter le cache, il faut que le cache aie un Context. Ainsi pour obtenir une database, il faut un Context pour pouvoir obtenir une Database.
Pour aider à review
Vous pouvez commencer par aller voir Database.kt et comment la BookDatabase est définie. Celà vous mènera à aller regarder les classe CachedBookProvider et LocalBookCache et vous donne une idée de comment les utiliser. Il serait aussi bien d'aller voir les définitions de BookProvider et BookDatabase. Finalement Vous pouvez regarder ListBookActivity pour voir comment instancier les databases dans les Activités. Ça a un peu changé pour pouvoir passer un Context aux databases
Description
Cette PR doit implémenter un cache pour des livres.
Pour faciliter l'implémentation du cache, j'ai refactoré les BookDatabase pour avoir une interface
BookProvider
qui permet de chercher des livres par ISBN, et une interfaceBookDatabase
qui permentent de chercher par ISBN, Titre, et Interêt. J'ai fait ça parce que faire un cache pour un BookProvider est plus simple que pour un BookDatabase.J'ai refactor
FBBookDatabase
pour que la classe ne va pas elle-même chercher les livre que Firebase ne contient pas sur OpenLibrary. Pour obtenir un résultat similaire, il faut utiliser la nouvelle classeCachedBookProvider
qui permet d'utiliser unBookProvider
comme cache pour un second. Exemple d'utilisation dansDatabase.kt
Afin de pouvoir implémenter le cache, il faut que le cache aie un Context. Ainsi pour obtenir une database, il faut un Context pour pouvoir obtenir une Database.
Pour aider à review
Vous pouvez commencer par aller voir
Database.kt
et comment la BookDatabase est définie. Celà vous mènera à aller regarder les classeCachedBookProvider
etLocalBookCache
et vous donne une idée de comment les utiliser. Il serait aussi bien d'aller voir les définitions deBookProvider
etBookDatabase
. Finalement Vous pouvez regarderListBookActivity
pour voir comment instancier les databases dans les Activités. Ça a un peu changé pour pouvoir passer unContext
aux databasesPull reviewers stats
Pull reviewers stats