mirror of
https://github.com/SimpleMobileTools/Simple-Contacts.git
synced 2025-04-30 17:28:41 +02:00
alwas recreate the viewpager tabs to avoid glitching
This commit is contained in:
parent
399ae4c0b6
commit
e1d21a9ed4
@ -318,61 +318,23 @@ class MainActivity : SimpleActivity(), RefreshContactsListener {
|
|||||||
intent.data = null
|
intent.data = null
|
||||||
}
|
}
|
||||||
|
|
||||||
val showTabs = config.showTabs
|
main_tabs_holder.removeAllTabs()
|
||||||
val indexesToRemove = ArrayList<Int>()
|
var skippedTabs = 0
|
||||||
tabsList.forEachIndexed { index, value ->
|
tabsList.forEachIndexed { index, value ->
|
||||||
if (showTabs and value == 0) {
|
if (config.showTabs and value == 0) {
|
||||||
if (main_tabs_holder?.getTabAt(index) != null) {
|
skippedTabs++
|
||||||
indexesToRemove.add(index)
|
} else {
|
||||||
}
|
main_tabs_holder.addTab(main_tabs_holder.newTab().setIcon(getTabIcon(index)), index - skippedTabs, config.lastUsedViewPagerPage == index - skippedTabs)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
indexesToRemove.reversed().forEach {
|
|
||||||
main_tabs_holder.removeTabAt(it)
|
|
||||||
}
|
|
||||||
|
|
||||||
tabsList.forEachIndexed { index, value ->
|
|
||||||
if (showTabs and value != 0 && handledShowTabs and value == 0) {
|
|
||||||
main_tabs_holder.addTab(main_tabs_holder.newTab().setIcon(getTabIcon(value)), getTabPosition(value, showTabs))
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
handledShowTabs = config.showTabs
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun getTabIcon(position: Int) = resources.getDrawable(when (position) {
|
private fun getTabIcon(position: Int) = resources.getDrawable(when (position) {
|
||||||
CONTACTS_TAB_MASK -> R.drawable.ic_person
|
LOCATION_CONTACTS_TAB -> R.drawable.ic_person
|
||||||
FAVORITES_TAB_MASK -> R.drawable.ic_star_on
|
LOCATION_FAVORITES_TAB -> R.drawable.ic_star_on
|
||||||
else -> R.drawable.ic_group
|
else -> R.drawable.ic_group
|
||||||
})
|
})
|
||||||
|
|
||||||
private fun getTabPosition(value: Int, showTabs: Int): Int {
|
|
||||||
return when (value) {
|
|
||||||
CONTACTS_TAB_MASK -> 0
|
|
||||||
FAVORITES_TAB_MASK -> {
|
|
||||||
if (showTabs and CONTACTS_TAB_MASK != 0) {
|
|
||||||
1
|
|
||||||
} else {
|
|
||||||
0
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else -> {
|
|
||||||
if (showTabs and CONTACTS_TAB_MASK != 0) {
|
|
||||||
if (showTabs and FAVORITES_TAB_MASK != 0) {
|
|
||||||
2
|
|
||||||
} else {
|
|
||||||
1
|
|
||||||
}
|
|
||||||
} else if (showTabs and FAVORITES_TAB_MASK != 0) {
|
|
||||||
1
|
|
||||||
} else {
|
|
||||||
0
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private fun showSortingDialog() {
|
private fun showSortingDialog() {
|
||||||
ChangeSortingDialog(this) {
|
ChangeSortingDialog(this) {
|
||||||
refreshContacts(CONTACTS_TAB_MASK or FAVORITES_TAB_MASK)
|
refreshContacts(CONTACTS_TAB_MASK or FAVORITES_TAB_MASK)
|
||||||
|
@ -14,27 +14,7 @@
|
|||||||
app:tabIndicatorColor="@android:color/white"
|
app:tabIndicatorColor="@android:color/white"
|
||||||
app:tabIndicatorHeight="2dp"
|
app:tabIndicatorHeight="2dp"
|
||||||
app:tabMinWidth="150dp"
|
app:tabMinWidth="150dp"
|
||||||
app:tabSelectedTextColor="@android:color/white">
|
app:tabSelectedTextColor="@android:color/white"/>
|
||||||
|
|
||||||
<android.support.design.widget.TabItem
|
|
||||||
android:id="@+id/tab_contacts"
|
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:icon="@drawable/ic_person"/>
|
|
||||||
|
|
||||||
<android.support.design.widget.TabItem
|
|
||||||
android:id="@+id/tab_favorites"
|
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:icon="@drawable/ic_star_on"/>
|
|
||||||
|
|
||||||
<android.support.design.widget.TabItem
|
|
||||||
android:id="@+id/tab_groups"
|
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:icon="@drawable/ic_group"/>
|
|
||||||
|
|
||||||
</android.support.design.widget.TabLayout>
|
|
||||||
|
|
||||||
<com.booking.rtlviewpager.RtlViewPager
|
<com.booking.rtlviewpager.RtlViewPager
|
||||||
android:id="@+id/viewpager"
|
android:id="@+id/viewpager"
|
||||||
|
Loading…
x
Reference in New Issue
Block a user