Переглянути джерело

Moved note click handler to presenter

Vadik Sirekanyan 7 роки тому
батько
коміт
93aad7d7e1

+ 1 - 1
app/src/main/java/com/sirekanyan/knigopis/Router.kt

@@ -5,6 +5,6 @@ import com.sirekanyan.knigopis.model.BookDataModel
 
 interface Router {
     fun openBookScreen(book: BookDataModel)
-    fun openUserScreen(id: String, name: String, avatar: String?)
+    fun openUserScreen(id: String, name: String, image: String?)
     fun openWebPage(uri: Uri)
 }

+ 3 - 10
app/src/main/java/com/sirekanyan/knigopis/feature/MainActivity.kt

@@ -26,7 +26,6 @@ import com.sirekanyan.knigopis.createParameters
 import com.sirekanyan.knigopis.feature.book.createEditBookIntent
 import com.sirekanyan.knigopis.feature.book.createNewBookIntent
 import com.sirekanyan.knigopis.feature.books.BooksAdapter
-import com.sirekanyan.knigopis.feature.notes.NotesAdapter
 import com.sirekanyan.knigopis.feature.profile.createProfileIntent
 import com.sirekanyan.knigopis.feature.user.createUserIntent
 import com.sirekanyan.knigopis.feature.users.UriItem
@@ -35,7 +34,6 @@ import com.sirekanyan.knigopis.model.BookDataModel
 import com.sirekanyan.knigopis.model.CurrentTab
 import com.sirekanyan.knigopis.model.CurrentTab.HOME_TAB
 import com.sirekanyan.knigopis.model.CurrentTab.NOTES_TAB
-import com.sirekanyan.knigopis.model.NoteModel
 import com.sirekanyan.knigopis.model.UserModel
 import com.sirekanyan.knigopis.repository.*
 import com.tbruyelle.rxpermissions2.RxPermissions
@@ -59,7 +57,6 @@ class MainActivity : BaseActivity(), Router, MainPresenter.Router {
     private val resourceProvider by inject<ResourceProvider>()
     private val booksAdapter by lazy { BooksAdapter(::onBookClicked, ::onBookLongClicked) }
     private val usersAdapter by lazy { UsersAdapter(::onUserClicked, ::onUserLongClicked) }
-    private val notesAdapter by lazy { NotesAdapter(::onNoteClicked) }
     private var userLoggedIn = false
     private var booksChanged = false
     private lateinit var loginOption: MenuItem
@@ -71,7 +68,7 @@ class MainActivity : BaseActivity(), Router, MainPresenter.Router {
         setTheme(if (config.isDarkTheme) R.style.DarkAppTheme else R.style.AppTheme)
         super.onCreate(savedInstanceState)
         setContentView(R.layout.activity_main)
-        val view = MainViewImpl(getRootView(), booksAdapter, usersAdapter, notesAdapter)
+        val view = MainViewImpl(getRootView(), booksAdapter, usersAdapter)
         presenter = MainPresenterImpl(
             view,
             this,
@@ -161,8 +158,8 @@ class MainActivity : BaseActivity(), Router, MainPresenter.Router {
         startActivityForResult(createEditBookIntent(book), BOOK_REQUEST_CODE)
     }
 
-    override fun openUserScreen(id: String, name: String, avatar: String?) {
-        startActivity(createUserIntent(id, name, avatar))
+    override fun openUserScreen(id: String, name: String, image: String?) {
+        startActivity(createUserIntent(id, name, image))
     }
 
     override fun openWebPage(uri: Uri) {
@@ -345,8 +342,4 @@ class MainActivity : BaseActivity(), Router, MainPresenter.Router {
         dialogs.showDialog(user.name, *dialogItems.toTypedArray())
     }
 
-    private fun onNoteClicked(note: NoteModel) {
-        openUserScreen(note.userId, note.userName, note.userImage)
-    }
-
 }

+ 6 - 0
app/src/main/java/com/sirekanyan/knigopis/feature/MainPresenter.kt

@@ -6,6 +6,7 @@ import com.sirekanyan.knigopis.common.extensions.io2main
 import com.sirekanyan.knigopis.common.functions.logError
 import com.sirekanyan.knigopis.model.CurrentTab
 import com.sirekanyan.knigopis.model.CurrentTab.*
+import com.sirekanyan.knigopis.model.NoteModel
 import com.sirekanyan.knigopis.repository.BookRepository
 import com.sirekanyan.knigopis.repository.Configuration
 import com.sirekanyan.knigopis.repository.NoteRepository
@@ -21,6 +22,7 @@ interface MainPresenter : Presenter {
         fun openProfileScreen()
         fun reopenScreen()
         fun openNewBookScreen()
+        fun openUserScreen(id: String, name: String, image: String?)
     }
 
 }
@@ -69,6 +71,10 @@ class MainPresenterImpl(
         router.openNewBookScreen()
     }
 
+    override fun onNoteClicked(note: NoteModel) {
+        router.openUserScreen(note.userId, note.userName, note.userImage)
+    }
+
     private fun refreshHomeTab(tab: CurrentTab) {
         bookRepository.observeBooks()
             .io2main()

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

@@ -48,6 +48,7 @@ interface MainView {
         fun onAboutOptionClicked()
         fun onDarkThemeOptionClicked(isChecked: Boolean)
         fun onAddBookClicked()
+        fun onNoteClicked(note: NoteModel)
     }
 
 }
@@ -55,12 +56,12 @@ interface MainView {
 class MainViewImpl(
     override val containerView: View,
     private val booksAdapter: BooksAdapter,
-    private val usersAdapter: UsersAdapter,
-    private val notesAdapter: NotesAdapter
+    private val usersAdapter: UsersAdapter
 ) : MainView, LayoutContainer {
 
     lateinit var callbacks: MainView.Callbacks
     private val context = containerView.context
+    private val notesAdapter = NotesAdapter { callbacks.onNoteClicked(it) }
 
     init {
         toolbar.inflateMenu(R.menu.options)