From 5249cb123b8a3408ccd78d2e9083e6a86ce94032 Mon Sep 17 00:00:00 2001 From: Phillip Thelen Date: Tue, 28 Mar 2023 11:19:33 +0200 Subject: [PATCH] refactor inbox slightly --- .../ui/adapter/social/InboxAdapter.kt | 3 +- .../habitica/ui/fragments/BaseMainFragment.kt | 4 - .../social/InboxMessageListFragment.kt | 73 ++++++++----------- .../habitica/ui/viewmodels/InboxViewModel.kt | 6 +- 4 files changed, 36 insertions(+), 50 deletions(-) diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/adapter/social/InboxAdapter.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/adapter/social/InboxAdapter.kt index 829ea2315..dee5229f0 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/adapter/social/InboxAdapter.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/adapter/social/InboxAdapter.kt @@ -12,7 +12,8 @@ import com.habitrpg.android.habitica.ui.viewHolders.ChatRecyclerIntroViewHolder import com.habitrpg.android.habitica.ui.viewHolders.ChatRecyclerMessageViewHolder import com.habitrpg.android.habitica.ui.viewHolders.ChatRecyclerViewHolder -class InboxAdapter(private var user: User?, private var replyToUser: Member?) : PagedListAdapter(DIFF_CALLBACK) { +class InboxAdapter(private var user: User?) : PagedListAdapter(DIFF_CALLBACK) { + internal var replyToUser: Member? = null private val FIRST_MESSAGE = 0 private val NORMAL_MESSAGE = 1 diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/BaseMainFragment.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/BaseMainFragment.kt index 4b1139bb8..8d8bd880a 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/BaseMainFragment.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/BaseMainFragment.kt @@ -15,7 +15,6 @@ import com.google.android.material.appbar.AppBarLayout import com.google.android.material.tabs.TabLayout import com.google.firebase.analytics.FirebaseAnalytics import com.habitrpg.android.habitica.R -import com.habitrpg.android.habitica.data.ApiClient import com.habitrpg.android.habitica.data.UserRepository import com.habitrpg.android.habitica.extensions.setScaledPadding import com.habitrpg.android.habitica.helpers.SoundManager @@ -25,9 +24,6 @@ import com.habitrpg.common.habitica.extensions.getThemeColor import javax.inject.Inject abstract class BaseMainFragment : BaseFragment() { - - @Inject - lateinit var apiClient: ApiClient @Inject lateinit var userRepository: UserRepository @Inject diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/social/InboxMessageListFragment.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/social/InboxMessageListFragment.kt index f805da4ab..2b09d131e 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/social/InboxMessageListFragment.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/social/InboxMessageListFragment.kt @@ -12,7 +12,9 @@ import android.view.MenuItem import android.view.View import android.view.ViewGroup import androidx.fragment.app.viewModels +import androidx.lifecycle.Lifecycle import androidx.lifecycle.lifecycleScope +import androidx.lifecycle.repeatOnLifecycle import androidx.recyclerview.widget.RecyclerView import com.habitrpg.android.habitica.MainNavDirections import com.habitrpg.android.habitica.R @@ -55,8 +57,6 @@ class InboxMessageListFragment : BaseMainFragment - adapter.onOpenProfile = { - FullProfileActivity.open(it) - } - adapter.onDeleteMessage = { showDeleteConfirmationDialog(it) } - adapter.onFlagMessage = { showFlagConfirmationDialog(it) } - adapter.onCopyMessage = { copyMessageToClipboard(it) } } + }) + binding?.recyclerView?.adapter = chatAdapter + binding?.recyclerView?.itemAnimator = SafeDefaultItemAnimator() + chatAdapter?.let { adapter -> + adapter.onOpenProfile = { + FullProfileActivity.open(it) + } + adapter.onDeleteMessage = { showDeleteConfirmationDialog(it) } + adapter.onFlagMessage = { showFlagConfirmationDialog(it) } + adapter.onCopyMessage = { copyMessageToClipboard(it) } } viewModel.messages.observe(viewLifecycleOwner) { @@ -120,16 +112,18 @@ class InboxMessageListFragment : BaseMainFragment) { socialRepository.markSomePrivateMessagesAsRead(viewModel.user.value, messages) } @@ -170,7 +163,7 @@ class InboxMessageListFragment : BaseMainFragment(null) val memberIDState: StateFlow = memberIDFlow