Explorar el Código

Removed tab arguments from refresh methods

Vadik Sirekanyan hace 7 años
padre
commit
6f66a4efad

+ 18 - 9
app/src/main/java/com/sirekanyan/knigopis/feature/MainPresenter.kt

@@ -115,9 +115,9 @@ class MainPresenterImpl(
         val isFirst = !loadedTabs.contains(tab)
         if (isFirst || isForce) {
             when (tab) {
-                HOME_TAB -> refreshHomeTab(tab)
-                USERS_TAB -> refreshUsersTab(tab)
-                NOTES_TAB -> refreshNotesTab(tab)
+                HOME_TAB -> refreshHomeTab()
+                USERS_TAB -> refreshUsersTab()
+                NOTES_TAB -> refreshNotesTab()
             }
         }
     }
@@ -217,39 +217,48 @@ class MainPresenterImpl(
         router.openUserScreen(note.userId, note.userName, note.userImage)
     }
 
-    private fun refreshHomeTab(tab: CurrentTab) {
+    override fun onBooksUpdated() {
+        loadedTabs.add(HOME_TAB)
+    }
+
+    override fun onUsersUpdated() {
+        loadedTabs.add(USERS_TAB)
+    }
+
+    override fun onNotesUpdated() {
+        loadedTabs.add(NOTES_TAB)
+    }
+
+    private fun refreshHomeTab() {
         bookRepository.observeBooks()
             .io2main()
             .showProgressBar()
             .bind({ books ->
                 view.updateBooks(books)
-                loadedTabs.add(tab)
             }, {
                 logError("cannot load books", it)
                 view.showBooksError(it)
             })
     }
 
-    private fun refreshUsersTab(tab: CurrentTab) {
+    private fun refreshUsersTab() {
         userRepository.observeUsers()
             .io2main()
             .showProgressBar()
             .bind({ users ->
                 view.updateUsers(users)
-                loadedTabs.add(tab)
             }, {
                 logError("cannot load users", it)
                 view.showUsersError(it)
             })
     }
 
-    private fun refreshNotesTab(tab: CurrentTab) {
+    private fun refreshNotesTab() {
         noteRepository.observeNotes()
             .io2main()
             .showProgressBar()
             .bind({ notes ->
                 view.updateNotes(notes)
-                loadedTabs.add(tab)
             }, {
                 logError("cannot load notes", it)
                 view.showNotesError(it)

+ 3 - 0
app/src/main/java/com/sirekanyan/knigopis/feature/MainView.kt

@@ -147,18 +147,21 @@ class MainViewImpl(
         booksPlaceholder.show(books.isEmpty())
         booksErrorPlaceholder.hide()
         booksAdapter.submitList(books)
+        callbacks.onBooksUpdated()
     }
 
     override fun updateUsers(users: List<UserModel>) {
         usersPlaceholder.show(users.isEmpty())
         usersErrorPlaceholder.hide()
         usersAdapter.submitList(users)
+        callbacks.onUsersUpdated()
     }
 
     override fun updateNotes(notes: List<NoteModel>) {
         notesPlaceholder.show(notes.isEmpty())
         notesErrorPlaceholder.hide()
         notesAdapter.submitList(notes)
+        callbacks.onNotesUpdated()
     }
 
     override fun showBooksError(throwable: Throwable) {

+ 1 - 0
app/src/main/java/com/sirekanyan/knigopis/feature/books/BooksView.kt

@@ -17,6 +17,7 @@ interface BooksView {
         fun onDeleteBookConfirmed(book: BookDataModel)
         fun onBookClicked(book: BookDataModel)
         fun onBookLongClicked(book: BookDataModel)
+        fun onBooksUpdated()
     }
 
 }

+ 1 - 0
app/src/main/java/com/sirekanyan/knigopis/feature/notes/NotesView.kt

@@ -9,6 +9,7 @@ interface NotesView {
 
     interface Callbacks {
         fun onNoteClicked(note: NoteModel)
+        fun onNotesUpdated()
     }
 
 }

+ 1 - 0
app/src/main/java/com/sirekanyan/knigopis/feature/users/UsersView.kt

@@ -13,6 +13,7 @@ interface UsersView {
         fun onUserClicked(user: UserModel)
         fun onUserLongClicked(user: UserModel)
         fun onUserProfileClicked(uri: ProfileItem)
+        fun onUsersUpdated()
     }
 
 }