From 2c6bfc1e51c3a80ac36dae44b27abd12714a8516 Mon Sep 17 00:00:00 2001 From: arm64v8a <48624112+arm64v8a@users.noreply.github.com> Date: Wed, 10 May 2023 11:09:46 +0900 Subject: [PATCH] fix: GroupPagerAdapter crash --- .../sagernet/ui/ConfigurationFragment.kt | 22 ++++++++++--------- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/app/src/main/java/io/nekohasekai/sagernet/ui/ConfigurationFragment.kt b/app/src/main/java/io/nekohasekai/sagernet/ui/ConfigurationFragment.kt index 58620c2..5f19136 100644 --- a/app/src/main/java/io/nekohasekai/sagernet/ui/ConfigurationFragment.kt +++ b/app/src/main/java/io/nekohasekai/sagernet/ui/ConfigurationFragment.kt @@ -886,16 +886,18 @@ class ConfigurationFragment @JvmOverloads constructor( } } - val runFunc = if (now) requireActivity()::runOnUiThread else groupPager::post - runFunc { - groupList = newGroupList - notifyDataSetChanged() - if (set) groupPager.setCurrentItem(selectedGroupIndex, false) - val hideTab = groupList.size < 2 - tabLayout.isGone = hideTab - toolbar.elevation = if (hideTab) 0F else dp2px(4).toFloat() - if (!select) { - groupPager.registerOnPageChangeCallback(updateSelectedCallback) + val runFunc = if (now) activity?.let { it::runOnUiThread } else groupPager::post + if (runFunc != null) { + runFunc { + groupList = newGroupList + notifyDataSetChanged() + if (set) groupPager.setCurrentItem(selectedGroupIndex, false) + val hideTab = groupList.size < 2 + tabLayout.isGone = hideTab + toolbar.elevation = if (hideTab) 0F else dp2px(4).toFloat() + if (!select) { + groupPager.registerOnPageChangeCallback(updateSelectedCallback) + } } } }