Skip to content

Commit cc66fbe

Browse files
committed
allow changing the column count at mimetype activity
1 parent 226040e commit cc66fbe

File tree

2 files changed

+28
-1
lines changed

2 files changed

+28
-1
lines changed

app/src/main/kotlin/com/simplemobiletools/filemanager/pro/activities/MimeTypesActivity.kt

Lines changed: 27 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ import com.simplemobiletools.commons.extensions.*
1212
import com.simplemobiletools.commons.helpers.VIEW_TYPE_GRID
1313
import com.simplemobiletools.commons.helpers.ensureBackgroundThread
1414
import com.simplemobiletools.commons.models.FileDirItem
15+
import com.simplemobiletools.commons.views.MyGridLayoutManager
1516
import com.simplemobiletools.filemanager.pro.R
1617
import com.simplemobiletools.filemanager.pro.adapters.ItemsAdapter
1718
import com.simplemobiletools.filemanager.pro.dialogs.ChangeSortingDialog
@@ -121,9 +122,18 @@ class MimeTypesActivity : SimpleActivity(), ItemOperationsListener {
121122
}
122123

123124
override fun increaseColumnCount() {
125+
if (config.getFolderViewType(currentMimeType) == VIEW_TYPE_GRID) {
126+
config.fileColumnCnt = ++(mimetypes_list.layoutManager as MyGridLayoutManager).spanCount
127+
columnCountChanged()
128+
}
124129
}
125130

126-
override fun reduceColumnCount() {}
131+
override fun reduceColumnCount() {
132+
if (config.getFolderViewType(currentMimeType) == VIEW_TYPE_GRID) {
133+
config.fileColumnCnt = --(mimetypes_list.layoutManager as MyGridLayoutManager).spanCount
134+
columnCountChanged()
135+
}
136+
}
127137

128138
override fun finishActMode() {}
129139

@@ -282,6 +292,22 @@ class MimeTypesActivity : SimpleActivity(), ItemOperationsListener {
282292
}
283293
}
284294

295+
private fun columnCountChanged() {
296+
invalidateOptionsMenu()
297+
getRecyclerAdapter()?.apply {
298+
notifyItemRangeChanged(0, listItems.size)
299+
calculateContentHeight(listItems)
300+
}
301+
}
302+
303+
private fun calculateContentHeight(items: MutableList<ListItem>) {
304+
val layoutManager = mimetypes_list.layoutManager as MyGridLayoutManager
305+
val thumbnailHeight = layoutManager.getChildAt(0)?.height ?: 0
306+
val fullHeight = ((items.size - 1) / layoutManager.spanCount + 1) * thumbnailHeight
307+
items_fastscroller.setContentHeight(fullHeight)
308+
items_fastscroller.setScrollToY(mimetypes_list.computeVerticalScrollOffset())
309+
}
310+
285311
private fun tryToggleTemporarilyShowHidden() {
286312
if (config.temporarilyShowHidden) {
287313
toggleTemporarilyShowHidden(false)

app/src/main/res/layout/activity_mimetypes.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
android:layout_height="match_parent"
1212
android:clipToPadding="false"
1313
android:layoutAnimation="@anim/layout_animation"
14+
android:paddingTop="@dimen/small_margin"
1415
android:scrollbars="none"
1516
app:layoutManager="com.simplemobiletools.commons.views.MyGridLayoutManager" />
1617

0 commit comments

Comments
 (0)