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