Simple-Contacts/app/src/main/kotlin/com/simplemobiletools/contacts/pro/adapters/ViewPagerAdapter.kt

55 lines
1.9 KiB
Kotlin
Raw Normal View History

2018-11-05 12:36:29 +01:00
package com.simplemobiletools.contacts.pro.adapters
import android.view.View
import android.view.ViewGroup
import androidx.viewpager.widget.PagerAdapter
2022-04-10 21:40:19 +02:00
import com.simplemobiletools.commons.extensions.getProperPrimaryColor
import com.simplemobiletools.commons.extensions.getProperTextColor
import com.simplemobiletools.commons.helpers.TAB_CONTACTS
import com.simplemobiletools.commons.helpers.TAB_FAVORITES
import com.simplemobiletools.commons.helpers.TAB_GROUPS
import com.simplemobiletools.contacts.pro.R
import com.simplemobiletools.contacts.pro.activities.SimpleActivity
2018-11-05 12:36:29 +01:00
import com.simplemobiletools.contacts.pro.fragments.MyViewPagerFragment
class ViewPagerAdapter(val activity: SimpleActivity, val currTabsList: ArrayList<Int>, val showTabs: Int) : PagerAdapter() {
override fun instantiateItem(container: ViewGroup, position: Int): Any {
2018-03-16 20:23:15 +01:00
val layout = getFragment(position)
val view = activity.layoutInflater.inflate(layout, container, false)
container.addView(view)
2018-08-02 12:05:21 +02:00
(view as MyViewPagerFragment<*>).apply {
setupFragment(activity)
2022-04-10 21:40:19 +02:00
setupColors(activity.getProperTextColor(), activity.getProperPrimaryColor())
}
return view
}
override fun destroyItem(container: ViewGroup, position: Int, item: Any) {
container.removeView(item as View)
}
override fun getCount() = currTabsList.filter { it and showTabs != 0 }.size
2018-08-02 12:05:21 +02:00
override fun isViewFromObject(view: View, item: Any) = view == item
2018-03-16 20:23:15 +01:00
2018-08-02 12:05:21 +02:00
private fun getFragment(position: Int): Int {
2018-08-03 13:52:44 +02:00
val fragments = arrayListOf<Int>()
if (showTabs and TAB_CONTACTS != 0) {
fragments.add(R.layout.fragment_contacts)
2018-08-02 12:05:21 +02:00
}
2018-08-03 13:52:44 +02:00
if (showTabs and TAB_FAVORITES != 0) {
fragments.add(R.layout.fragment_favorites)
2018-08-03 13:52:44 +02:00
}
if (showTabs and TAB_GROUPS != 0) {
fragments.add(R.layout.fragment_groups)
2018-08-03 13:52:44 +02:00
}
return fragments[position]
2018-03-16 20:23:15 +01:00
}
}