Skip to content

Commit 75e75c9

Browse files
committed
Update
1 parent 6ff09a7 commit 75e75c9

1 file changed

Lines changed: 31 additions & 45 deletions

File tree

app/src/main/java/com/tool/tree/MainActivity.kt

Lines changed: 31 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -81,13 +81,12 @@ class MainActivity : AppCompatActivity() {
8181
// ========================
8282
private fun loadTabs() {
8383
lifecycleScope.launch(Dispatchers.IO) {
84-
val pages = getItems(krScriptConfig.pageListConfig)
8584
val favorites = getItems(krScriptConfig.favoriteConfig)
86-
85+
val pages = getItems(krScriptConfig.pageListConfig)
86+
8787
withContext(Dispatchers.Main) {
88-
progressBarDialog.hideDialog()
8988
adapter = MainPagerAdapter(this@MainActivity)
90-
89+
9190
if (!favorites.isNullOrEmpty()) {
9291
adapter.addFragment(
9392
ActionListFragment.create(
@@ -99,7 +98,7 @@ class MainActivity : AppCompatActivity() {
9998
getString(R.string.tab_favorites)
10099
)
101100
}
102-
101+
103102
if (!pages.isNullOrEmpty()) {
104103
adapter.addFragment(
105104
ActionListFragment.create(
@@ -111,23 +110,21 @@ class MainActivity : AppCompatActivity() {
111110
getString(R.string.tab_pages)
112111
)
113112
}
114-
113+
115114
binding.viewPager.adapter = adapter
116-
115+
117116
val tabHelper = TabIconHelper(this@MainActivity)
118117
TabLayoutMediator(binding.tabLayout, binding.viewPager) { tab, position ->
119118
val title = adapter.getTitle(position)
120-
val iconRes = if (title == getString(R.string.tab_favorites))
121-
R.drawable.tab_favorites else R.drawable.tab_pages
122-
119+
val iconRes = if (title == getString(R.string.tab_favorites)) R.drawable.tab_favorites else R.drawable.tab_pages
123120
getDrawable(iconRes)?.let {
124121
tab.customView = tabHelper.createTabView(title, it, position == 0)
125122
} ?: run { tab.text = title }
126123
}.attach()
127-
128-
isFavoritesTab = binding.tabLayout.getTabAt(binding.tabLayout.selectedTabPosition)?.text ==
129-
getString(R.string.tab_favorites)
130-
124+
125+
// luôn đặt tab mặc định
126+
binding.tabLayout.getTabAt(0)?.select()
127+
131128
binding.tabLayout.addOnTabSelectedListener(object : TabLayout.OnTabSelectedListener {
132129
override fun onTabSelected(tab: TabLayout.Tab) {
133130
isFavoritesTab = adapter.getTitle(tab.position) == getString(R.string.tab_favorites)
@@ -140,48 +137,37 @@ class MainActivity : AppCompatActivity() {
140137
}
141138
}
142139
}
143-
144-
private fun getItems(pageNode: PageNode): ArrayList<NodeInfoBase>? {
145-
var items: ArrayList<NodeInfoBase>? = null
146-
if (pageNode.pageConfigSh.isNotEmpty())
147-
items = PageConfigSh(this, pageNode.pageConfigSh, null).execute()
148-
if (items == null && pageNode.pageConfigPath.isNotEmpty())
149-
items = PageConfigReader(this.applicationContext, pageNode.pageConfigPath, null).readConfigXml()
150-
return items
151-
}
152-
153-
// ========================
154-
// RELOAD TABS
155-
// ========================
140+
141+
// reloadTabs vẫn như cũ, tạo fragment mới mỗi lần
156142
private fun reloadTabs() {
143+
val position = if (isFavoritesTab) 0 else 1
144+
val pageNode = if (isFavoritesTab) krScriptConfig.favoriteConfig else krScriptConfig.pageListConfig
145+
157146
lifecycleScope.launch(Dispatchers.IO) {
158-
val favorites = getItems(krScriptConfig.favoriteConfig)
159-
val pages = getItems(krScriptConfig.pageListConfig)
160-
161-
withContext(Dispatchers.Main) {
162-
favorites?.let {
163-
val favFragment = ActionListFragment.create(
147+
val items = getItems(pageNode)
148+
items?.let {
149+
withContext(Dispatchers.Main) {
150+
val newFragment = ActionListFragment.create(
164151
it,
165-
getKrScriptActionHandler(krScriptConfig.favoriteConfig, true),
152+
getKrScriptActionHandler(pageNode, isFavoritesTab),
166153
null,
167154
ThemeModeState.getThemeMode()
168155
)
169-
adapter.updateFragment(0, favFragment)
170-
}
171-
172-
pages?.let {
173-
val pageFragment = ActionListFragment.create(
174-
it,
175-
getKrScriptActionHandler(krScriptConfig.pageListConfig, false),
176-
null,
177-
ThemeModeState.getThemeMode()
178-
)
179-
adapter.updateFragment(1, pageFragment)
156+
adapter.updateFragment(position, newFragment)
180157
}
181158
}
182159
}
183160
}
184161

162+
private fun getItems(pageNode: PageNode): ArrayList<NodeInfoBase>? {
163+
var items: ArrayList<NodeInfoBase>? = null
164+
if (pageNode.pageConfigSh.isNotEmpty())
165+
items = PageConfigSh(this, pageNode.pageConfigSh, null).execute()
166+
if (items == null && pageNode.pageConfigPath.isNotEmpty())
167+
items = PageConfigReader(this.applicationContext, pageNode.pageConfigPath, null).readConfigXml()
168+
return items
169+
}
170+
185171
// ========================
186172
private fun restartApp() {
187173
val intent = Intent(this, SplashActivity::class.java)

0 commit comments

Comments
 (0)