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 844dd9b3..6e746eb4 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 @@ -13,6 +13,7 @@ import android.view.Menu import android.view.MenuItem import androidx.appcompat.widget.SearchView import androidx.core.view.MenuItemCompat +import androidx.viewpager.widget.ViewPager import com.simplemobiletools.commons.dialogs.RadioGroupDialog import com.simplemobiletools.commons.extensions.* import com.simplemobiletools.commons.helpers.* @@ -316,6 +317,25 @@ class MainActivity : SimpleActivity() { ) setupTabColors(tabToOpen) + + main_view_pager.addOnPageChangeListener(object : ViewPager.OnPageChangeListener { + override fun onPageScrollStateChanged(state: Int) { + if (isSearchOpen) { + getCurrentFragment()?.searchQueryChanged("") + searchMenuItem?.collapseActionView() + } + } + + override fun onPageScrolled(position: Int, positionOffset: Float, positionOffsetPixels: Int) {} + + override fun onPageSelected(position: Int) { + main_tabs_holder.getTabAt(position)?.select() + getAllFragments().forEach { + it?.finishActMode() + } + invalidateOptionsMenu() + } + }) } private fun setupTabColors(lastUsedTab: Int) { diff --git a/app/src/main/kotlin/com/simplemobiletools/filemanager/pro/fragments/ItemsFragment.kt b/app/src/main/kotlin/com/simplemobiletools/filemanager/pro/fragments/ItemsFragment.kt index 960b3ccd..32d43d06 100644 --- a/app/src/main/kotlin/com/simplemobiletools/filemanager/pro/fragments/ItemsFragment.kt +++ b/app/src/main/kotlin/com/simplemobiletools/filemanager/pro/fragments/ItemsFragment.kt @@ -77,7 +77,7 @@ class ItemsFragment(context: Context, attributeSet: AttributeSet) : MyViewPagerF getRecyclerAdapter()?.updateDateTimeFormat() } - fun finishActMode() { + override fun finishActMode() { getRecyclerAdapter()?.finishActMode() } @@ -276,7 +276,7 @@ class ItemsFragment(context: Context, attributeSet: AttributeSet) : MyViewPagerF openPath(path) } - fun searchQueryChanged(text: String) { + override fun searchQueryChanged(text: String) { val searchText = text.trim() lastSearchedText = searchText ensureBackgroundThread { diff --git a/app/src/main/kotlin/com/simplemobiletools/filemanager/pro/fragments/MyViewPagerFragment.kt b/app/src/main/kotlin/com/simplemobiletools/filemanager/pro/fragments/MyViewPagerFragment.kt index 81f1886c..7a5d72cc 100644 --- a/app/src/main/kotlin/com/simplemobiletools/filemanager/pro/fragments/MyViewPagerFragment.kt +++ b/app/src/main/kotlin/com/simplemobiletools/filemanager/pro/fragments/MyViewPagerFragment.kt @@ -13,4 +13,8 @@ abstract class MyViewPagerFragment(context: Context, attributeSet: AttributeSet) abstract fun setupFontSize() abstract fun setupDateTimeFormat() + + abstract fun searchQueryChanged(text: String) + + abstract fun finishActMode() } diff --git a/app/src/main/kotlin/com/simplemobiletools/filemanager/pro/fragments/RecentsFragment.kt b/app/src/main/kotlin/com/simplemobiletools/filemanager/pro/fragments/RecentsFragment.kt index 1dacd19e..80cdafec 100644 --- a/app/src/main/kotlin/com/simplemobiletools/filemanager/pro/fragments/RecentsFragment.kt +++ b/app/src/main/kotlin/com/simplemobiletools/filemanager/pro/fragments/RecentsFragment.kt @@ -64,6 +64,8 @@ class RecentsFragment(context: Context, attributeSet: AttributeSet) : MyViewPage } } + private fun getRecyclerAdapter() = recents_list.adapter as? ItemsAdapter + override fun refreshItems() {} override fun deleteFiles(files: ArrayList) {} @@ -73,4 +75,10 @@ class RecentsFragment(context: Context, attributeSet: AttributeSet) : MyViewPage override fun setupFontSize() {} override fun setupDateTimeFormat() {} + + override fun searchQueryChanged(text: String) {} + + override fun finishActMode() { + getRecyclerAdapter()?.finishActMode() + } }