From 09018683b8e406c2b02d34d736ff282a546733b5 Mon Sep 17 00:00:00 2001 From: tibbi Date: Wed, 19 May 2021 18:12:57 +0200 Subject: [PATCH] adding the top tab holder --- .../pro/activities/MainActivity.kt | 50 ++++++++++++++++++- app/src/main/res/layout/activity_main.xml | 22 +++++++- 2 files changed, 70 insertions(+), 2 deletions(-) diff --git a/app/src/main/kotlin/com/simplemobiletools/filemanager/pro/activities/MainActivity.kt b/app/src/main/kotlin/com/simplemobiletools/filemanager/pro/activities/MainActivity.kt index 2b7bf14c..fefad353 100644 --- a/app/src/main/kotlin/com/simplemobiletools/filemanager/pro/activities/MainActivity.kt +++ b/app/src/main/kotlin/com/simplemobiletools/filemanager/pro/activities/MainActivity.kt @@ -5,6 +5,7 @@ import android.app.SearchManager import android.content.ClipData import android.content.Context import android.content.Intent +import android.graphics.drawable.ColorDrawable import android.media.RingtoneManager import android.os.Bundle import android.os.Handler @@ -88,6 +89,14 @@ class MainActivity : SimpleActivity() { it.updateDateTimeFormat() } } + + getInactiveTabIndexes(main_view_pager.currentItem).forEach { + main_tabs_holder.getTabAt(it)?.icon?.applyColorFilter(config.textColor) + } + + main_tabs_holder.background = ColorDrawable(config.backgroundColor) + main_tabs_holder.setSelectedTabIndicatorColor(getAdjustedPrimaryColor()) + main_tabs_holder.getTabAt(main_view_pager.currentItem)?.icon?.applyColorFilter(getAdjustedPrimaryColor()) } override fun onPause() { @@ -163,7 +172,7 @@ class MainActivity : SimpleActivity() { val path = savedInstanceState.getString(PICKED_PATH) ?: internalStoragePath if (main_view_pager.adapter == null) { - main_view_pager.adapter = ViewPagerAdapter(this) + initFragments() main_view_pager.onGlobalLayout { restorePath(path) } @@ -276,6 +285,43 @@ class MainActivity : SimpleActivity() { } } + private fun initFragments() { + main_view_pager.adapter = ViewPagerAdapter(this) + main_view_pager.onPageChangeListener { + main_tabs_holder.getTabAt(it)?.select() + invalidateOptionsMenu() + } + + val tabToOpen = config.lastUsedViewPagerPage + main_view_pager.currentItem = tabToOpen + main_tabs_holder.onTabSelectionChanged( + tabUnselectedAction = { + it.icon?.applyColorFilter(config.textColor) + }, + tabSelectedAction = { + main_view_pager.currentItem = it.position + it.icon?.applyColorFilter(getAdjustedPrimaryColor()) + } + ) + + setupTabColors(tabToOpen) + } + + private fun setupTabColors(lastUsedTab: Int) { + main_tabs_holder.apply { + background = ColorDrawable(config.backgroundColor) + setSelectedTabIndicatorColor(getAdjustedPrimaryColor()) + getTabAt(lastUsedTab)?.apply { + select() + icon?.applyColorFilter(getAdjustedPrimaryColor()) + } + + getInactiveTabIndexes(lastUsedTab).forEach { + getTabAt(it)?.icon?.applyColorFilter(config.textColor) + } + } + } + private fun checkOTGPath() { ensureBackgroundThread { if (!config.wasOTGHandled && hasPermission(PERMISSION_WRITE_STORAGE) && hasOTGConnected() && config.OTGPath.isEmpty()) { @@ -466,6 +512,8 @@ class MainActivity : SimpleActivity() { } } + private fun getInactiveTabIndexes(activeIndex: Int) = arrayListOf(0, 1).filter { it != activeIndex } + private fun getAllFragments() = arrayListOf(items_fragment) private fun getCurrentFragment() = items_fragment diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml index 45b61f2d..6a90f080 100644 --- a/app/src/main/res/layout/activity_main.xml +++ b/app/src/main/res/layout/activity_main.xml @@ -1,12 +1,32 @@ + + + + + + + android:layout_height="match_parent" + android:layout_below="@+id/main_tabs_holder" />