From 560e850bce8004ab7efdbc2dc60886f4b1c3dfb8 Mon Sep 17 00:00:00 2001 From: Gopal Panigrahi <50495221+gopal-panigrahi@users.noreply.github.com> Date: Sun, 26 Oct 2025 00:41:57 +0530 Subject: [PATCH 1/2] feat: show/hide local hidden files --- app/src/main/java/org/xbmc/kore/Settings.java | 4 ++++ .../sections/localfile/LocalMediaFileListFragment.java | 10 +++++++++- app/src/main/res/values/strings.xml | 1 + app/src/main/res/xml/preferences.xml | 6 ++++++ 4 files changed, 20 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/org/xbmc/kore/Settings.java b/app/src/main/java/org/xbmc/kore/Settings.java index 7d69259aa..c0b593c23 100644 --- a/app/src/main/java/org/xbmc/kore/Settings.java +++ b/app/src/main/java/org/xbmc/kore/Settings.java @@ -90,6 +90,10 @@ public class Settings { public static final String KEY_PREF_PAUSE_DURING_CALLS = "pref_pause_during_calls"; public static final boolean DEFAULT_PREF_PAUSE_DURING_CALLS = false; + // Show hidden local files + public static final String KEY_PREF_SHOW_HIDDEN_LOCAL_FILES = "pref_show_hidden_local_files"; + public static final boolean DEFAULT_PREF_SHOW_HIDDEN_LOCAL_FILES = false; + // Other keys used in preferences.xml public static final String KEY_PREF_ABOUT = "pref_about"; diff --git a/app/src/main/java/org/xbmc/kore/ui/sections/localfile/LocalMediaFileListFragment.java b/app/src/main/java/org/xbmc/kore/ui/sections/localfile/LocalMediaFileListFragment.java index 692eab1d8..1873219c7 100644 --- a/app/src/main/java/org/xbmc/kore/ui/sections/localfile/LocalMediaFileListFragment.java +++ b/app/src/main/java/org/xbmc/kore/ui/sections/localfile/LocalMediaFileListFragment.java @@ -39,10 +39,12 @@ import androidx.annotation.Nullable; import androidx.core.content.ContextCompat; import androidx.recyclerview.widget.RecyclerView; +import androidx.preference.PreferenceManager; import com.squareup.picasso.Picasso; import org.xbmc.kore.R; +import org.xbmc.kore.Settings; import org.xbmc.kore.host.HostConnection; import org.xbmc.kore.host.HostManager; import org.xbmc.kore.jsonrpc.ApiCallback; @@ -230,8 +232,14 @@ private void browseDirectory(final LocalFileLocation dir) { file_list.add(0, new LocalFileLocation("..", getParentDirectory(dir.fullPath), true)); } + boolean showHiddenFiles = PreferenceManager + .getDefaultSharedPreferences(requireContext()) + .getBoolean(Settings.KEY_PREF_SHOW_HIDDEN_LOCAL_FILES, Settings.DEFAULT_PREF_SHOW_HIDDEN_LOCAL_FILES); + for (File file : files) { - file_list.add(new LocalFileLocation(file.getName(), file.getAbsolutePath(), file.isDirectory())); + if (showHiddenFiles || (!file.isHidden() && !file.getName().startsWith("."))) { + file_list.add(new LocalFileLocation(file.getName(), file.getAbsolutePath(), file.isDirectory())); + } } ((MediaPictureListAdapter) getAdapter()).setFilelistItems(file_list); } diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 014e7423a..c8d1adbf9 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -417,6 +417,7 @@ Show notification while playing Show now playing panel Display a panel at the bottom of the screen when media is playing + Show hidden local files Pause during phone call Vibrate on touch Prefer SendToKodi addon diff --git a/app/src/main/res/xml/preferences.xml b/app/src/main/res/xml/preferences.xml index c4d734fb7..9bf9a7245 100644 --- a/app/src/main/res/xml/preferences.xml +++ b/app/src/main/res/xml/preferences.xml @@ -99,6 +99,12 @@ android:defaultValue="true" app:singleLineTitle="false"/> + + Date: Sat, 15 Nov 2025 14:25:04 +0530 Subject: [PATCH 2/2] chore: moved show hidden files setting --- .../localfile/LocalMediaFileListFragment.java | 29 +++++++++++++++++++ app/src/main/res/menu/local_file_list.xml | 12 ++++++++ app/src/main/res/values/strings.xml | 2 +- app/src/main/res/xml/preferences.xml | 6 ---- 4 files changed, 42 insertions(+), 7 deletions(-) create mode 100644 app/src/main/res/menu/local_file_list.xml diff --git a/app/src/main/java/org/xbmc/kore/ui/sections/localfile/LocalMediaFileListFragment.java b/app/src/main/java/org/xbmc/kore/ui/sections/localfile/LocalMediaFileListFragment.java index 1873219c7..b16a61f5c 100644 --- a/app/src/main/java/org/xbmc/kore/ui/sections/localfile/LocalMediaFileListFragment.java +++ b/app/src/main/java/org/xbmc/kore/ui/sections/localfile/LocalMediaFileListFragment.java @@ -18,6 +18,7 @@ import android.Manifest; import android.content.Context; +import android.content.SharedPreferences; import android.content.pm.PackageManager; import android.content.res.Resources; import android.os.Bundle; @@ -26,6 +27,9 @@ import android.os.Looper; import android.text.TextUtils; import android.view.LayoutInflater; +import android.view.Menu; +import android.view.MenuInflater; +import android.view.MenuItem; import android.view.View; import android.view.ViewGroup; import android.widget.ImageView; @@ -133,6 +137,31 @@ public void onSaveInstanceState(@NonNull Bundle outState) { outState.putString(ROOT_PATH, rootPath); } + @Override + public void onCreateOptionsMenu(@NonNull Menu menu, MenuInflater inflater) { + inflater.inflate(R.menu.local_file_list, menu); + + SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(requireContext()); + MenuItem showHidden = menu.findItem(R.id.action_show_hidden); + showHidden.setChecked(preferences.getBoolean(Settings.KEY_PREF_SHOW_HIDDEN_LOCAL_FILES, Settings.DEFAULT_PREF_SHOW_HIDDEN_LOCAL_FILES)); + super.onCreateOptionsMenu(menu, inflater); + } + + @Override + public boolean onOptionsItemSelected(MenuItem item) { + SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(requireContext()); + int itemId = item.getItemId(); + if (itemId == R.id.action_show_hidden) { + item.setChecked(!item.isChecked()); + preferences.edit() + .putBoolean(Settings.KEY_PREF_SHOW_HIDDEN_LOCAL_FILES, item.isChecked()) + .apply(); + browseDirectory(currentDirLocation); + } + + return super.onOptionsItemSelected(item); + } + @Override public void onRefresh() { if (checkReadStoragePermission(false)){ diff --git a/app/src/main/res/menu/local_file_list.xml b/app/src/main/res/menu/local_file_list.xml new file mode 100644 index 000000000..25e047f43 --- /dev/null +++ b/app/src/main/res/menu/local_file_list.xml @@ -0,0 +1,12 @@ + + + + + + diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index c8d1adbf9..2d878c295 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -373,6 +373,7 @@ Addon unpinned + Show hidden Hide watched Hide disabled Sort @@ -417,7 +418,6 @@ Show notification while playing Show now playing panel Display a panel at the bottom of the screen when media is playing - Show hidden local files Pause during phone call Vibrate on touch Prefer SendToKodi addon diff --git a/app/src/main/res/xml/preferences.xml b/app/src/main/res/xml/preferences.xml index 9bf9a7245..c4d734fb7 100644 --- a/app/src/main/res/xml/preferences.xml +++ b/app/src/main/res/xml/preferences.xml @@ -99,12 +99,6 @@ android:defaultValue="true" app:singleLineTitle="false"/> - -