From cc66fbe65ca6bd39b6b5b81405ec52cfb7239080 Mon Sep 17 00:00:00 2001 From: tibbi Date: Wed, 13 Oct 2021 17:06:25 +0200 Subject: [PATCH] allow changing the column count at mimetype activity --- .../pro/activities/MimeTypesActivity.kt | 28 ++++++++++++++++++- .../main/res/layout/activity_mimetypes.xml | 1 + 2 files changed, 28 insertions(+), 1 deletion(-) diff --git a/app/src/main/kotlin/com/simplemobiletools/filemanager/pro/activities/MimeTypesActivity.kt b/app/src/main/kotlin/com/simplemobiletools/filemanager/pro/activities/MimeTypesActivity.kt index 9154eb3d..da9a3638 100644 --- a/app/src/main/kotlin/com/simplemobiletools/filemanager/pro/activities/MimeTypesActivity.kt +++ b/app/src/main/kotlin/com/simplemobiletools/filemanager/pro/activities/MimeTypesActivity.kt @@ -12,6 +12,7 @@ import com.simplemobiletools.commons.extensions.* import com.simplemobiletools.commons.helpers.VIEW_TYPE_GRID import com.simplemobiletools.commons.helpers.ensureBackgroundThread import com.simplemobiletools.commons.models.FileDirItem +import com.simplemobiletools.commons.views.MyGridLayoutManager import com.simplemobiletools.filemanager.pro.R import com.simplemobiletools.filemanager.pro.adapters.ItemsAdapter import com.simplemobiletools.filemanager.pro.dialogs.ChangeSortingDialog @@ -121,9 +122,18 @@ class MimeTypesActivity : SimpleActivity(), ItemOperationsListener { } override fun increaseColumnCount() { + if (config.getFolderViewType(currentMimeType) == VIEW_TYPE_GRID) { + config.fileColumnCnt = ++(mimetypes_list.layoutManager as MyGridLayoutManager).spanCount + columnCountChanged() + } } - override fun reduceColumnCount() {} + override fun reduceColumnCount() { + if (config.getFolderViewType(currentMimeType) == VIEW_TYPE_GRID) { + config.fileColumnCnt = --(mimetypes_list.layoutManager as MyGridLayoutManager).spanCount + columnCountChanged() + } + } override fun finishActMode() {} @@ -282,6 +292,22 @@ class MimeTypesActivity : SimpleActivity(), ItemOperationsListener { } } + private fun columnCountChanged() { + invalidateOptionsMenu() + getRecyclerAdapter()?.apply { + notifyItemRangeChanged(0, listItems.size) + calculateContentHeight(listItems) + } + } + + private fun calculateContentHeight(items: MutableList) { + val layoutManager = mimetypes_list.layoutManager as MyGridLayoutManager + val thumbnailHeight = layoutManager.getChildAt(0)?.height ?: 0 + val fullHeight = ((items.size - 1) / layoutManager.spanCount + 1) * thumbnailHeight + items_fastscroller.setContentHeight(fullHeight) + items_fastscroller.setScrollToY(mimetypes_list.computeVerticalScrollOffset()) + } + private fun tryToggleTemporarilyShowHidden() { if (config.temporarilyShowHidden) { toggleTemporarilyShowHidden(false) diff --git a/app/src/main/res/layout/activity_mimetypes.xml b/app/src/main/res/layout/activity_mimetypes.xml index 331eafff..f04eeadd 100644 --- a/app/src/main/res/layout/activity_mimetypes.xml +++ b/app/src/main/res/layout/activity_mimetypes.xml @@ -11,6 +11,7 @@ android:layout_height="match_parent" android:clipToPadding="false" android:layoutAnimation="@anim/layout_animation" + android:paddingTop="@dimen/small_margin" android:scrollbars="none" app:layoutManager="com.simplemobiletools.commons.views.MyGridLayoutManager" />