Skip to content

Commit 34edd70

Browse files
committed
toggle between list and grid view as needed
1 parent c80b981 commit 34edd70

File tree

3 files changed

+29
-4
lines changed

3 files changed

+29
-4
lines changed

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -285,7 +285,7 @@ class MainActivity : SimpleActivity() {
285285

286286
private fun changeViewType() {
287287
ChangeViewTypeDialog(this, fragment.currentPath) {
288-
288+
fragment.setupLayoutManager(true)
289289
}
290290
}
291291

app/src/main/kotlin/com/simplemobiletools/filemanager/pro/fragments/ItemsFragment.kt

Lines changed: 27 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,11 +10,12 @@ import com.simplemobiletools.commons.activities.BaseSimpleActivity
1010
import com.simplemobiletools.commons.dialogs.StoragePickerDialog
1111
import com.simplemobiletools.commons.extensions.*
1212
import com.simplemobiletools.commons.helpers.SORT_BY_SIZE
13+
import com.simplemobiletools.commons.helpers.VIEW_TYPE_GRID
1314
import com.simplemobiletools.commons.helpers.ensureBackgroundThread
1415
import com.simplemobiletools.commons.helpers.isRPlus
1516
import com.simplemobiletools.commons.models.FileDirItem
1617
import com.simplemobiletools.commons.views.Breadcrumbs
17-
import com.simplemobiletools.commons.views.MyLinearLayoutManager
18+
import com.simplemobiletools.commons.views.MyGridLayoutManager
1819
import com.simplemobiletools.filemanager.pro.R
1920
import com.simplemobiletools.filemanager.pro.activities.MainActivity
2021
import com.simplemobiletools.filemanager.pro.activities.SimpleActivity
@@ -67,6 +68,7 @@ class ItemsFragment : Fragment(), ItemOperationsListener, Breadcrumbs.Breadcrumb
6768
breadcrumbs.listener = this@ItemsFragment
6869
breadcrumbs.updateFontSize(context!!.getTextSize())
6970
}
71+
setupLayoutManager(false)
7072
}
7173

7274
override fun onSaveInstanceState(outState: Bundle) {
@@ -189,7 +191,7 @@ class ItemsFragment : Fragment(), ItemOperationsListener, Breadcrumbs.Breadcrumb
189191

190192
private fun getScrollState() = getRecyclerLayoutManager().onSaveInstanceState()
191193

192-
private fun getRecyclerLayoutManager() = (mView.items_list.layoutManager as MyLinearLayoutManager)
194+
private fun getRecyclerLayoutManager() = (mView.items_list.layoutManager as MyGridLayoutManager)
193195

194196
private fun getItems(path: String, callback: (originalPath: String, items: ArrayList<ListItem>) -> Unit) {
195197
skipItemUpdating = false
@@ -404,6 +406,29 @@ class ItemsFragment : Fragment(), ItemOperationsListener, Breadcrumbs.Breadcrumb
404406

405407
private fun getRecyclerAdapter() = mView.items_list.adapter as? ItemsAdapter
406408

409+
fun setupLayoutManager(resetAdapter: Boolean) {
410+
if (context!!.config.getFolderViewType(currentPath) == VIEW_TYPE_GRID) {
411+
setupGridLayoutManager()
412+
} else {
413+
setupListLayoutManager()
414+
}
415+
416+
if (resetAdapter) {
417+
mView.items_list.adapter = null
418+
addItems(storedItems, true)
419+
}
420+
}
421+
422+
private fun setupGridLayoutManager() {
423+
val layoutManager = mView.items_list.layoutManager as MyGridLayoutManager
424+
layoutManager.spanCount = 3
425+
}
426+
427+
private fun setupListLayoutManager() {
428+
val layoutManager = mView.items_list.layoutManager as MyGridLayoutManager
429+
layoutManager.spanCount = 1
430+
}
431+
407432
override fun breadcrumbClicked(id: Int) {
408433
if (id == 0) {
409434
StoragePickerDialog(activity as SimpleActivity, currentPath, true) {

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@
5858
android:layout_below="@+id/breadcrumbs"
5959
android:clipToPadding="false"
6060
android:scrollbars="none"
61-
app:layoutManager="com.simplemobiletools.commons.views.MyLinearLayoutManager" />
61+
app:layoutManager="com.simplemobiletools.commons.views.MyGridLayoutManager" />
6262

6363
<com.simplemobiletools.commons.views.FastScroller
6464
android:id="@+id/items_fastscroller"

0 commit comments

Comments
 (0)