From 73176662047bcad475cdc305174853baf11ef8be Mon Sep 17 00:00:00 2001
From: lp-hub <112799826+lp-hub@users.noreply.github.com>
Date: Sat, 7 Feb 2026 00:43:26 +0200
Subject: [PATCH 01/10] filename improvement + 3 column grid
---
.../files/filelist/FileListFragment.kt | 2 +-
app/src/main/res/layout/file_item_grid.xml | 56 ++++++++++---------
app/src/main/res/values/dimens.xml | 6 +-
3 files changed, 33 insertions(+), 31 deletions(-)
diff --git a/app/src/main/java/me/zhanghai/android/files/filelist/FileListFragment.kt b/app/src/main/java/me/zhanghai/android/files/filelist/FileListFragment.kt
index df31b7a92..f25d146d1 100644
--- a/app/src/main/java/me/zhanghai/android/files/filelist/FileListFragment.kt
+++ b/app/src/main/java/me/zhanghai/android/files/filelist/FileListFragment.kt
@@ -663,7 +663,7 @@ class FileListFragment : Fragment(), BreadcrumbLayout.Listener, FileListAdapter.
persistentDrawerLayout.isDrawerOpen(GravityCompat.START)) {
widthDp -= getDimensionDp(R.dimen.navigation_max_width).roundToInt()
}
- (widthDp / 180).coerceAtLeast(2)
+ (widthDp / 180).coerceAtLeast(3)
}
}
}
diff --git a/app/src/main/res/layout/file_item_grid.xml b/app/src/main/res/layout/file_item_grid.xml
index b599277e2..db4d57d32 100644
--- a/app/src/main/res/layout/file_item_grid.xml
+++ b/app/src/main/res/layout/file_item_grid.xml
@@ -30,6 +30,7 @@
android:layout_height="match_parent"
android:duplicateParentState="true"
android:scaleType="fitCenter"
+ android:padding="4dp"
android:src="@drawable/file_directory_thumbnail" />
-
-
-
+ android:scaleType="fitCenter" />
-
-
- 16dp
+ 1dp
12dp
8dp
- 4dp
+ 0dp
8dp
0dp
72dp
@@ -38,7 +38,7 @@
18dp
24dp
40dp
- 48dp
+ 30dp
12dp
4dp
18dp
From 0dc14a4c9924cbaf0cbc90d7592f0e25ad8d4261 Mon Sep 17 00:00:00 2001
From: lp-hub <112799826+lp-hub@users.noreply.github.com>
Date: Sat, 7 Feb 2026 11:44:41 +0200
Subject: [PATCH 02/10] 4 columnn grid
---
.../me/zhanghai/android/files/filelist/FileListFragment.kt | 2 +-
app/src/main/res/values/dimens.xml | 4 ++--
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/app/src/main/java/me/zhanghai/android/files/filelist/FileListFragment.kt b/app/src/main/java/me/zhanghai/android/files/filelist/FileListFragment.kt
index f25d146d1..62314f066 100644
--- a/app/src/main/java/me/zhanghai/android/files/filelist/FileListFragment.kt
+++ b/app/src/main/java/me/zhanghai/android/files/filelist/FileListFragment.kt
@@ -663,7 +663,7 @@ class FileListFragment : Fragment(), BreadcrumbLayout.Listener, FileListAdapter.
persistentDrawerLayout.isDrawerOpen(GravityCompat.START)) {
widthDp -= getDimensionDp(R.dimen.navigation_max_width).roundToInt()
}
- (widthDp / 180).coerceAtLeast(3)
+ (widthDp / 180).coerceAtLeast(4)
}
}
}
diff --git a/app/src/main/res/values/dimens.xml b/app/src/main/res/values/dimens.xml
index bc4284da9..f0235ab30 100644
--- a/app/src/main/res/values/dimens.xml
+++ b/app/src/main/res/values/dimens.xml
@@ -38,9 +38,9 @@
18dp
24dp
40dp
- 30dp
+ 24dp
12dp
- 4dp
+ 0dp
18dp
19dp
From f69cc0b7d09e9cdb53860914a2206cdea845159e Mon Sep 17 00:00:00 2001
From: lp-hub <112799826+lp-hub@users.noreply.github.com>
Date: Sat, 7 Feb 2026 14:13:59 +0200
Subject: [PATCH 03/10] +Grid columns count in Settings
---
.../java/me/zhanghai/android/files/settings/Settings.kt | 7 +++++++
app/src/main/res/values/donottranslate_prefs.xml | 9 +++++++++
app/src/main/res/values/strings.xml | 8 ++++++++
app/src/main/res/xml/settings.xml | 8 ++++++++
4 files changed, 32 insertions(+)
diff --git a/app/src/main/java/me/zhanghai/android/files/settings/Settings.kt b/app/src/main/java/me/zhanghai/android/files/settings/Settings.kt
index d2a8e2035..f3cf6f654 100644
--- a/app/src/main/java/me/zhanghai/android/files/settings/Settings.kt
+++ b/app/src/main/java/me/zhanghai/android/files/settings/Settings.kt
@@ -12,6 +12,7 @@ import java8.nio.file.Paths
import me.zhanghai.android.files.R
import me.zhanghai.android.files.app.application
import me.zhanghai.android.files.compat.EnvironmentCompat2
+import me.zhanghai.android.files.filelist.FileListFragment
import me.zhanghai.android.files.filelist.FileSortOptions
import me.zhanghai.android.files.filelist.FileViewType
import me.zhanghai.android.files.filelist.OpenApkDefaultAction
@@ -132,6 +133,12 @@ object Settings {
TextUtils.TruncateAt::class.java
)
+// val GRID_COLUMNS: SettingLiveData =
+// EnumSettingLiveData(
+// R.string.pref_key_grid_colums, R.string.pref_default_value_grid_colums
+// FileListFragment.updateSpanCount.coerceAtLeast()
+// )
+
val STANDARD_DIRECTORY_SETTINGS: SettingLiveData> =
ParcelValueSettingLiveData(R.string.pref_key_standard_directory_settings, emptyList())
diff --git a/app/src/main/res/values/donottranslate_prefs.xml b/app/src/main/res/values/donottranslate_prefs.xml
index 5edcd3425..a51cc229f 100644
--- a/app/src/main/res/values/donottranslate_prefs.xml
+++ b/app/src/main/res/values/donottranslate_prefs.xml
@@ -59,6 +59,15 @@
- 2
- 3
+ key_grid_columns
+ 0
+
+ - 0
+ - 1
+ - 2
+ - 3
+ - 4
+
key_standard_directories
key_bookmark_directories
key_root_strategy
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 964179529..a7d23999d 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -755,6 +755,14 @@
- Ellipsize the end
- Marquee
+ Grid columns count
+
+ - 2
+ - 3
+ - 4
+ - 5
+ - 6
+
Behavior
Default folder
@string/storage_list_title
diff --git a/app/src/main/res/xml/settings.xml b/app/src/main/res/xml/settings.xml
index 8cdac819a..050b6e153 100644
--- a/app/src/main/res/xml/settings.xml
+++ b/app/src/main/res/xml/settings.xml
@@ -53,6 +53,14 @@
android:entries="@array/settings_file_name_ellipsize_entries"
android:entryValues="@array/pref_entry_values_file_name_ellipsize"
app:useSimpleSummaryProvider="true" />
+
+
From d1fe2d72c7887d9b0c3b68d3b3870039c2f92d44 Mon Sep 17 00:00:00 2001
From: lp-hub <112799826+lp-hub@users.noreply.github.com>
Date: Sat, 7 Feb 2026 14:19:32 +0200
Subject: [PATCH 04/10] default grid: 3 portrait, 4 landscape
---
.../java/me/zhanghai/android/files/filelist/FileListFragment.kt | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/app/src/main/java/me/zhanghai/android/files/filelist/FileListFragment.kt b/app/src/main/java/me/zhanghai/android/files/filelist/FileListFragment.kt
index 62314f066..e275ee376 100644
--- a/app/src/main/java/me/zhanghai/android/files/filelist/FileListFragment.kt
+++ b/app/src/main/java/me/zhanghai/android/files/filelist/FileListFragment.kt
@@ -663,7 +663,7 @@ class FileListFragment : Fragment(), BreadcrumbLayout.Listener, FileListAdapter.
persistentDrawerLayout.isDrawerOpen(GravityCompat.START)) {
widthDp -= getDimensionDp(R.dimen.navigation_max_width).roundToInt()
}
- (widthDp / 180).coerceAtLeast(4)
+ (widthDp / 120).coerceAtLeast(2)
}
}
}
From c704b40bd09e44c557effb7ec7e766042bff8bde Mon Sep 17 00:00:00 2001
From: lp-hub <112799826+lp-hub@users.noreply.github.com>
Date: Sat, 7 Feb 2026 15:21:32 +0200
Subject: [PATCH 05/10] def value: def grid: 3, 4
---
app/src/main/res/values/strings.xml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index a7d23999d..4ffabd852 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -757,7 +757,7 @@
Grid columns count
- - 2
+ - Default
- 3
- 4
- 5
From 352deac3edd0ea9a2aa60a2474541a2febdc7edc Mon Sep 17 00:00:00 2001
From: lp-hub <112799826+lp-hub@users.noreply.github.com>
Date: Sat, 7 Feb 2026 16:21:02 +0200
Subject: [PATCH 06/10] =?UTF-8?q?string=20according=20to=20=1B[200~ =
-// EnumSettingLiveData(
-// R.string.pref_key_grid_colums, R.string.pref_default_value_grid_colums
-// FileListFragment.updateSpanCount.coerceAtLeast()
-// )
+ val GRID_COLUMNS: SettingLiveData =
+ StringSettingLiveData(
+ R.string.pref_key_grid_columns, R.string.pref_default_value_grid_columns
+ )
val STANDARD_DIRECTORY_SETTINGS: SettingLiveData> =
ParcelValueSettingLiveData(R.string.pref_key_standard_directory_settings, emptyList())
diff --git a/app/src/main/res/values/donottranslate_prefs.xml b/app/src/main/res/values/donottranslate_prefs.xml
index a51cc229f..e3aac4c84 100644
--- a/app/src/main/res/values/donottranslate_prefs.xml
+++ b/app/src/main/res/values/donottranslate_prefs.xml
@@ -60,7 +60,7 @@
- 3
key_grid_columns
- 0
+ 2
- 0
- 1
From f4c1fa1432d3cdba39126544966750071714243f Mon Sep 17 00:00:00 2001
From: lp-hub <112799826+lp-hub@users.noreply.github.com>
Date: Sat, 7 Feb 2026 22:21:07 +0200
Subject: [PATCH 07/10] user grid count works only after app restart
---
.../files/filelist/FileListFragment.kt | 20 ++++++++++++++-----
.../main/res/values/donottranslate_prefs.xml | 4 ++--
2 files changed, 17 insertions(+), 7 deletions(-)
diff --git a/app/src/main/java/me/zhanghai/android/files/filelist/FileListFragment.kt b/app/src/main/java/me/zhanghai/android/files/filelist/FileListFragment.kt
index e275ee376..fd36c9945 100644
--- a/app/src/main/java/me/zhanghai/android/files/filelist/FileListFragment.kt
+++ b/app/src/main/java/me/zhanghai/android/files/filelist/FileListFragment.kt
@@ -654,16 +654,26 @@ class FileListFragment : Fragment(), BreadcrumbLayout.Listener, FileListAdapter.
}
private fun updateSpanCount() {
- layoutManager.spanCount = when (viewModel.viewType) {
+ val lm = binding.recyclerView.layoutManager as? GridLayoutManager ?: return
+
+ lm.spanCount = when (viewModel.viewType) {
FileViewType.LIST -> 1
+
FileViewType.GRID -> {
var widthDp = resources.configuration.screenWidthDp
- val persistentDrawerLayout = binding.persistentDrawerLayout
- if (persistentDrawerLayout != null &&
- persistentDrawerLayout.isDrawerOpen(GravityCompat.START)) {
+ val drawer = binding.persistentDrawerLayout
+
+ if (drawer != null && drawer.isDrawerOpen(GravityCompat.START)) {
widthDp -= getDimensionDp(R.dimen.navigation_max_width).roundToInt()
}
- (widthDp / 120).coerceAtLeast(2)
+
+ val pref = Settings.GRID_COLUMNS.value?.toIntOrNull() ?: 0
+
+ if (pref == 0) {
+ (widthDp / 120).coerceAtLeast(2) // AUTO (default)
+ } else {
+ pref // USER CHOICE
+ }
}
}
}
diff --git a/app/src/main/res/values/donottranslate_prefs.xml b/app/src/main/res/values/donottranslate_prefs.xml
index e3aac4c84..7c7523782 100644
--- a/app/src/main/res/values/donottranslate_prefs.xml
+++ b/app/src/main/res/values/donottranslate_prefs.xml
@@ -63,10 +63,10 @@
2
- 0
- - 1
- - 2
- 3
- 4
+ - 5
+ - 6
key_standard_directories
key_bookmark_directories
From 35cedeaf19a4d4cce08ce2faf07f905bb01e944b Mon Sep 17 00:00:00 2001
From: lp-hub <112799826+lp-hub@users.noreply.github.com>
Date: Sat, 7 Feb 2026 23:42:06 +0200
Subject: [PATCH 08/10] finished user input grid 3-6 columns
---
.../me/zhanghai/android/files/filelist/FileListFragment.kt | 3 +++
1 file changed, 3 insertions(+)
diff --git a/app/src/main/java/me/zhanghai/android/files/filelist/FileListFragment.kt b/app/src/main/java/me/zhanghai/android/files/filelist/FileListFragment.kt
index fd36c9945..8f5afd60e 100644
--- a/app/src/main/java/me/zhanghai/android/files/filelist/FileListFragment.kt
+++ b/app/src/main/java/me/zhanghai/android/files/filelist/FileListFragment.kt
@@ -367,6 +367,9 @@ class FileListFragment : Fragment(), BreadcrumbLayout.Listener, FileListAdapter.
viewModel.fileListLiveData.observe(viewLifecycleOwner) { onFileListChanged(it) }
Settings.FILE_LIST_SHOW_HIDDEN_FILES.observe(viewLifecycleOwner) {
onShowHiddenFilesChanged(it)
+ Settings.GRID_COLUMNS.observe(viewLifecycleOwner) {
+ updateSpanCount()
+ }
}
}
From 6017430189844d96c168a69d3098662fda8c0b24 Mon Sep 17 00:00:00 2001
From: lp-hub <112799826+lp-hub@users.noreply.github.com>
Date: Sun, 8 Feb 2026 00:07:37 +0200
Subject: [PATCH 09/10] prevent unnecessary updates to GridLayoutManager
---
.../android/files/filelist/FileListFragment.kt | 11 ++++++++---
1 file changed, 8 insertions(+), 3 deletions(-)
diff --git a/app/src/main/java/me/zhanghai/android/files/filelist/FileListFragment.kt b/app/src/main/java/me/zhanghai/android/files/filelist/FileListFragment.kt
index 8f5afd60e..919bf2c26 100644
--- a/app/src/main/java/me/zhanghai/android/files/filelist/FileListFragment.kt
+++ b/app/src/main/java/me/zhanghai/android/files/filelist/FileListFragment.kt
@@ -659,7 +659,7 @@ class FileListFragment : Fragment(), BreadcrumbLayout.Listener, FileListAdapter.
private fun updateSpanCount() {
val lm = binding.recyclerView.layoutManager as? GridLayoutManager ?: return
- lm.spanCount = when (viewModel.viewType) {
+ val newSpan = when (viewModel.viewType) {
FileViewType.LIST -> 1
FileViewType.GRID -> {
@@ -673,12 +673,17 @@ class FileListFragment : Fragment(), BreadcrumbLayout.Listener, FileListAdapter.
val pref = Settings.GRID_COLUMNS.value?.toIntOrNull() ?: 0
if (pref == 0) {
- (widthDp / 120).coerceAtLeast(2) // AUTO (default)
+ (widthDp / 120).coerceAtLeast(2)
} else {
- pref // USER CHOICE
+ pref
}
}
}
+
+ if (lm.spanCount != newSpan) {
+ lm.spanCount = newSpan
+ binding.recyclerView.requestLayout()
+ }
}
private fun onSortOptionsChanged(sortOptions: FileSortOptions) {
From ce75eb597a6bcb173b031d881f6d7ac275410d1c Mon Sep 17 00:00:00 2001
From: lp-hub <112799826+lp-hub@users.noreply.github.com>
Date: Fri, 27 Feb 2026 21:24:58 +0200
Subject: [PATCH 10/10] init apk run Not set value to Default
---
app/src/main/res/values/donottranslate_prefs.xml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/app/src/main/res/values/donottranslate_prefs.xml b/app/src/main/res/values/donottranslate_prefs.xml
index 7c7523782..b11b6a342 100644
--- a/app/src/main/res/values/donottranslate_prefs.xml
+++ b/app/src/main/res/values/donottranslate_prefs.xml
@@ -60,7 +60,7 @@
- 3
key_grid_columns
- 2
+ 0
- 0
- 3