Some refactoring and fixes
This commit is contained in:
parent
fd3b1a8d18
commit
da41393177
@ -9,8 +9,8 @@ import android.util.Log
|
|||||||
import android.view.*
|
import android.view.*
|
||||||
import androidx.coordinatorlayout.widget.CoordinatorLayout
|
import androidx.coordinatorlayout.widget.CoordinatorLayout
|
||||||
import androidx.fragment.app.Fragment
|
import androidx.fragment.app.Fragment
|
||||||
|
import androidx.fragment.app.activityViewModels
|
||||||
import androidx.lifecycle.Observer
|
import androidx.lifecycle.Observer
|
||||||
import androidx.lifecycle.ViewModelProvider
|
|
||||||
import androidx.navigation.fragment.NavHostFragment
|
import androidx.navigation.fragment.NavHostFragment
|
||||||
import androidx.recyclerview.widget.LinearLayoutManager
|
import androidx.recyclerview.widget.LinearLayoutManager
|
||||||
import androidx.swiperefreshlayout.widget.SwipeRefreshLayout.OnRefreshListener
|
import androidx.swiperefreshlayout.widget.SwipeRefreshLayout.OnRefreshListener
|
||||||
@ -30,15 +30,15 @@ import com.google.android.material.internal.ToolbarUtils
|
|||||||
import com.google.android.material.snackbar.Snackbar
|
import com.google.android.material.snackbar.Snackbar
|
||||||
|
|
||||||
class DirectMessageInboxFragment : Fragment(), OnRefreshListener {
|
class DirectMessageInboxFragment : Fragment(), OnRefreshListener {
|
||||||
|
private val viewModel: DirectInboxViewModel by activityViewModels()
|
||||||
|
|
||||||
private lateinit var fragmentActivity: MainActivity
|
private lateinit var fragmentActivity: MainActivity
|
||||||
private lateinit var viewModel: DirectInboxViewModel
|
|
||||||
private lateinit var root: CoordinatorLayout
|
private lateinit var root: CoordinatorLayout
|
||||||
private lateinit var binding: FragmentDirectMessagesInboxBinding
|
private lateinit var binding: FragmentDirectMessagesInboxBinding
|
||||||
private lateinit var inboxAdapter: DirectMessageInboxAdapter
|
private lateinit var inboxAdapter: DirectMessageInboxAdapter
|
||||||
private lateinit var lazyLoader: RecyclerLazyLoaderAtEdge
|
private lateinit var lazyLoader: RecyclerLazyLoaderAtEdge
|
||||||
|
|
||||||
private var shouldRefresh = true
|
private var shouldRefresh = true
|
||||||
// private var receiver: DMRefreshBroadcastReceiver? = null
|
|
||||||
private var scrollToTop = false
|
private var scrollToTop = false
|
||||||
private var navigating = false
|
private var navigating = false
|
||||||
private var threadsObserver: Observer<List<DirectThread?>>? = null
|
private var threadsObserver: Observer<List<DirectThread?>>? = null
|
||||||
@ -49,7 +49,6 @@ class DirectMessageInboxFragment : Fragment(), OnRefreshListener {
|
|||||||
override fun onCreate(savedInstanceState: Bundle?) {
|
override fun onCreate(savedInstanceState: Bundle?) {
|
||||||
super.onCreate(savedInstanceState)
|
super.onCreate(savedInstanceState)
|
||||||
fragmentActivity = requireActivity() as MainActivity
|
fragmentActivity = requireActivity() as MainActivity
|
||||||
viewModel = ViewModelProvider(fragmentActivity).get(DirectInboxViewModel::class.java)
|
|
||||||
setHasOptionsMenu(true)
|
setHasOptionsMenu(true)
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -78,13 +77,12 @@ class DirectMessageInboxFragment : Fragment(), OnRefreshListener {
|
|||||||
viewModel.refresh()
|
viewModel.refresh()
|
||||||
}
|
}
|
||||||
|
|
||||||
@SuppressLint("UnsafeExperimentalUsageError", "UnsafeOptInUsageError")
|
@SuppressLint("UnsafeExperimentalUsageError", "UnsafeOptInUsageError", "RestrictedApi")
|
||||||
override fun onPause() {
|
override fun onPause() {
|
||||||
super.onPause()
|
super.onPause()
|
||||||
// unregisterReceiver()
|
|
||||||
isPendingRequestTotalBadgeAttached = false
|
isPendingRequestTotalBadgeAttached = false
|
||||||
pendingRequestsMenuItem?.let {
|
pendingRequestsMenuItem?.let {
|
||||||
@SuppressLint("RestrictedApi") val menuItemView = ToolbarUtils.getActionMenuItemView(fragmentActivity.toolbar, it.itemId)
|
val menuItemView = ToolbarUtils.getActionMenuItemView(fragmentActivity.toolbar, it.itemId)
|
||||||
if (menuItemView != null) {
|
if (menuItemView != null) {
|
||||||
BadgeUtils.detachBadgeDrawable(pendingRequestTotalBadgeDrawable, fragmentActivity.toolbar, it.itemId)
|
BadgeUtils.detachBadgeDrawable(pendingRequestTotalBadgeDrawable, fragmentActivity.toolbar, it.itemId)
|
||||||
pendingRequestTotalBadgeDrawable = null
|
pendingRequestTotalBadgeDrawable = null
|
||||||
@ -95,9 +93,6 @@ class DirectMessageInboxFragment : Fragment(), OnRefreshListener {
|
|||||||
override fun onResume() {
|
override fun onResume() {
|
||||||
super.onResume()
|
super.onResume()
|
||||||
setupObservers()
|
setupObservers()
|
||||||
// val context = context ?: return
|
|
||||||
// receiver = DMRefreshBroadcastReceiver { Log.d(TAG, "onResume: broadcast received") }
|
|
||||||
// context.registerReceiver(receiver, IntentFilter(DMRefreshBroadcastReceiver.ACTION_REFRESH_DM))
|
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun onCreateOptionsMenu(menu: Menu, inflater: MenuInflater) {
|
override fun onCreateOptionsMenu(menu: Menu, inflater: MenuInflater) {
|
||||||
@ -119,13 +114,6 @@ class DirectMessageInboxFragment : Fragment(), OnRefreshListener {
|
|||||||
return super.onOptionsItemSelected(item)
|
return super.onOptionsItemSelected(item)
|
||||||
}
|
}
|
||||||
|
|
||||||
// private fun unregisterReceiver() {
|
|
||||||
// if (receiver == null) return
|
|
||||||
// val context = context ?: return
|
|
||||||
// context.unregisterReceiver(receiver)
|
|
||||||
// receiver = null
|
|
||||||
// }
|
|
||||||
|
|
||||||
override fun onConfigurationChanged(newConfig: Configuration) {
|
override fun onConfigurationChanged(newConfig: Configuration) {
|
||||||
super.onConfigurationChanged(newConfig)
|
super.onConfigurationChanged(newConfig)
|
||||||
init()
|
init()
|
||||||
@ -140,6 +128,7 @@ class DirectMessageInboxFragment : Fragment(), OnRefreshListener {
|
|||||||
private fun setupObservers() {
|
private fun setupObservers() {
|
||||||
removeViewModelObservers()
|
removeViewModelObservers()
|
||||||
threadsObserver = Observer { list: List<DirectThread?> ->
|
threadsObserver = Observer { list: List<DirectThread?> ->
|
||||||
|
if (!this::inboxAdapter.isInitialized) return@Observer
|
||||||
inboxAdapter.submitList(list) {
|
inboxAdapter.submitList(list) {
|
||||||
if (!scrollToTop) return@submitList
|
if (!scrollToTop) return@submitList
|
||||||
binding.inboxList.post { binding.inboxList.smoothScrollToPosition(0) }
|
binding.inboxList.post { binding.inboxList.smoothScrollToPosition(0) }
|
||||||
@ -166,7 +155,7 @@ class DirectMessageInboxFragment : Fragment(), OnRefreshListener {
|
|||||||
viewModel.pendingRequestsTotal.observe(viewLifecycleOwner, { count: Int? -> attachPendingRequestsBadge(count) })
|
viewModel.pendingRequestsTotal.observe(viewLifecycleOwner, { count: Int? -> attachPendingRequestsBadge(count) })
|
||||||
}
|
}
|
||||||
|
|
||||||
@SuppressLint("UnsafeExperimentalUsageError", "UnsafeOptInUsageError")
|
@SuppressLint("UnsafeExperimentalUsageError", "UnsafeOptInUsageError", "RestrictedApi")
|
||||||
private fun attachPendingRequestsBadge(count: Int?) {
|
private fun attachPendingRequestsBadge(count: Int?) {
|
||||||
val pendingRequestsMenuItem1 = pendingRequestsMenuItem
|
val pendingRequestsMenuItem1 = pendingRequestsMenuItem
|
||||||
if (pendingRequestsMenuItem1 == null) {
|
if (pendingRequestsMenuItem1 == null) {
|
||||||
@ -179,7 +168,7 @@ class DirectMessageInboxFragment : Fragment(), OnRefreshListener {
|
|||||||
pendingRequestTotalBadgeDrawable = BadgeDrawable.create(context)
|
pendingRequestTotalBadgeDrawable = BadgeDrawable.create(context)
|
||||||
}
|
}
|
||||||
if (count == null || count == 0) {
|
if (count == null || count == 0) {
|
||||||
@SuppressLint("RestrictedApi") val menuItemView = ToolbarUtils.getActionMenuItemView(
|
val menuItemView = ToolbarUtils.getActionMenuItemView(
|
||||||
fragmentActivity.toolbar,
|
fragmentActivity.toolbar,
|
||||||
pendingRequestsMenuItem1.itemId
|
pendingRequestsMenuItem1.itemId
|
||||||
)
|
)
|
||||||
|
Loading…
Reference in New Issue
Block a user