mirror of
https://github.com/oxen-io/session-android.git
synced 2025-02-20 08:38:26 +00:00
Make conversation settings pager cyclic
This commit is contained in:
parent
312164e364
commit
ee6f393c9a
@ -10,6 +10,7 @@ import androidx.core.view.isVisible
|
|||||||
import androidx.recyclerview.widget.DiffUtil
|
import androidx.recyclerview.widget.DiffUtil
|
||||||
import androidx.recyclerview.widget.ListAdapter
|
import androidx.recyclerview.widget.ListAdapter
|
||||||
import androidx.recyclerview.widget.RecyclerView
|
import androidx.recyclerview.widget.RecyclerView
|
||||||
|
import androidx.viewpager2.widget.ViewPager2.OnPageChangeCallback
|
||||||
import com.google.android.material.tabs.TabLayoutMediator
|
import com.google.android.material.tabs.TabLayoutMediator
|
||||||
import dagger.hilt.android.AndroidEntryPoint
|
import dagger.hilt.android.AndroidEntryPoint
|
||||||
import network.loki.messenger.R
|
import network.loki.messenger.R
|
||||||
@ -49,6 +50,21 @@ class ConversationActionBarView : LinearLayout {
|
|||||||
|
|
||||||
private fun initialize() {
|
private fun initialize() {
|
||||||
binding = ViewConversationActionBarBinding.inflate(LayoutInflater.from(context), this, true)
|
binding = ViewConversationActionBarBinding.inflate(LayoutInflater.from(context), this, true)
|
||||||
|
var previousState: Int
|
||||||
|
var currentState = 0
|
||||||
|
binding.settingsPager.registerOnPageChangeCallback(object : OnPageChangeCallback() {
|
||||||
|
override fun onPageScrollStateChanged(state: Int) {
|
||||||
|
val currentPage: Int = binding.settingsPager.currentItem
|
||||||
|
val lastPage = maxOf( (binding.settingsPager.adapter?.itemCount ?: 0) - 1, 0)
|
||||||
|
if (currentPage == lastPage || currentPage == 0) {
|
||||||
|
previousState = currentState
|
||||||
|
currentState = state
|
||||||
|
if (previousState == 1 && currentState == 0) {
|
||||||
|
binding.settingsPager.setCurrentItem(if (currentPage == 0) lastPage else 0, true)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})
|
||||||
binding.settingsPager.adapter = settingsAdapter
|
binding.settingsPager.adapter = settingsAdapter
|
||||||
val mediator = TabLayoutMediator(binding.settingsTabLayout, binding.settingsPager) { _, _ -> }
|
val mediator = TabLayoutMediator(binding.settingsTabLayout, binding.settingsPager) { _, _ -> }
|
||||||
mediator.attach()
|
mediator.attach()
|
||||||
|
Loading…
x
Reference in New Issue
Block a user