mirror of
https://github.com/imcarlost/Friendlists.git
synced 2026-04-10 02:46:54 -04:00
implement favorite view
This commit is contained in:
@@ -1,15 +1,8 @@
|
||||
package com.hako.userlist.domain.usecase
|
||||
|
||||
import com.hako.base.domain.database.dao.UserDao
|
||||
import com.hako.base.extensions.wasUpdated
|
||||
import com.hako.userlist.domain.datasource.UserlistRemoteApi
|
||||
import com.hako.userlist.model.UserViewable
|
||||
import com.hako.userlist.model.toUserEntity
|
||||
import com.hako.userlist.model.toUserViewable
|
||||
import io.reactivex.Single
|
||||
import io.reactivex.schedulers.Schedulers
|
||||
import org.koin.core.KoinComponent
|
||||
import org.koin.core.get
|
||||
|
||||
class SetFavoriteStatus(private val dao: UserDao) {
|
||||
|
||||
|
||||
@@ -0,0 +1,9 @@
|
||||
package com.hako.userlist.feature
|
||||
|
||||
class FavoriteUserlistFragment : UserlistFragment() {
|
||||
override fun doRequest() {
|
||||
viewModel.fetchFavoriteUsers()
|
||||
}
|
||||
|
||||
override fun shouldShowFabButton() = false
|
||||
}
|
||||
@@ -9,7 +9,6 @@ import androidx.recyclerview.widget.LinearLayoutManager
|
||||
import com.hako.base.domain.network.RequestStatus
|
||||
import com.hako.base.extensions.gone
|
||||
import com.hako.base.extensions.observeNonNull
|
||||
import com.hako.base.extensions.toast
|
||||
import com.hako.base.extensions.visible
|
||||
import com.hako.base.navigation.NavigationRouter
|
||||
import com.hako.base.navigation.ShowFabButton
|
||||
@@ -23,11 +22,9 @@ import org.koin.android.ext.android.inject
|
||||
import org.koin.androidx.viewmodel.ext.android.viewModel
|
||||
import timber.log.Timber
|
||||
|
||||
const val ALBUMLIST_FRAGMENT_BUNDLE_FAVORITES = "ALBUMLIST_FRAGMENT_BUNDLE_FAVORITES"
|
||||
open class UserlistFragment : Fragment(), ShowFabButton {
|
||||
|
||||
class UserlistFragment : Fragment(), ShowFabButton {
|
||||
|
||||
private val viewModel: UserlistViewmodel by viewModel()
|
||||
val viewModel: UserlistViewmodel by viewModel()
|
||||
private val listAdapter by lazy { UserlistAdapter() }
|
||||
private val navigation: NavigationRouter by inject()
|
||||
|
||||
@@ -39,9 +36,19 @@ class UserlistFragment : Fragment(), ShowFabButton {
|
||||
super.onViewCreated(view, savedInstanceState)
|
||||
setRecycler()
|
||||
setObservers()
|
||||
doRequest()
|
||||
}
|
||||
|
||||
open fun doRequest() {
|
||||
viewModel.fetchUsers()
|
||||
}
|
||||
|
||||
override fun shouldShowFabButton() = true
|
||||
|
||||
override fun fabButtonPressed(): () -> Unit = {
|
||||
navigation.sendNavigation(UserlistNavigation.ClickedOnFab)
|
||||
}
|
||||
|
||||
private fun setObservers() {
|
||||
viewModel.userList.observeNonNull(this) {
|
||||
it.either(::handleFetchError, ::handleFetchSuccess)
|
||||
|
||||
@@ -4,4 +4,5 @@ import com.hako.base.navigation.NavigationEvent
|
||||
|
||||
sealed class UserlistNavigation : NavigationEvent {
|
||||
data class ClickedOnUser(val userId: Int, val userName: String) : UserlistNavigation()
|
||||
object ClickedOnFab : UserlistNavigation()
|
||||
}
|
||||
|
||||
@@ -9,6 +9,20 @@
|
||||
android:id="@+id/userlistFragment"
|
||||
android:name="com.hako.userlist.feature.UserlistFragment"
|
||||
tools:layout="@layout/fragment_userlist"
|
||||
android:label="Friendlist" />
|
||||
android:label="Friendlist" >
|
||||
<action
|
||||
android:id="@+id/action_userlistFragment_to_favoriteUserlistFragment"
|
||||
app:destination="@id/favoriteUserlistFragment"
|
||||
app:enterAnim="@anim/slide_in_right"
|
||||
app:exitAnim="@anim/slide_out_left"
|
||||
app:popEnterAnim="@anim/slide_in_left"
|
||||
app:popExitAnim="@anim/slide_out_right"/>
|
||||
</fragment>
|
||||
|
||||
<fragment
|
||||
android:id="@+id/favoriteUserlistFragment"
|
||||
android:name="com.hako.userlist.feature.FavoriteUserlistFragment"
|
||||
tools:layout="@layout/fragment_userlist"
|
||||
android:label="Favoritos" />
|
||||
|
||||
</navigation>
|
||||
Reference in New Issue
Block a user