mirror of
https://github.com/oxen-io/session-android.git
synced 2025-02-17 15:18: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.ListAdapter
|
||||
import androidx.recyclerview.widget.RecyclerView
|
||||
import androidx.viewpager2.widget.ViewPager2.OnPageChangeCallback
|
||||
import com.google.android.material.tabs.TabLayoutMediator
|
||||
import dagger.hilt.android.AndroidEntryPoint
|
||||
import network.loki.messenger.R
|
||||
@ -49,6 +50,21 @@ class ConversationActionBarView : LinearLayout {
|
||||
|
||||
private fun initialize() {
|
||||
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
|
||||
val mediator = TabLayoutMediator(binding.settingsTabLayout, binding.settingsPager) { _, _ -> }
|
||||
mediator.attach()
|
||||
|
Loading…
x
Reference in New Issue
Block a user