mirror of
https://github.com/FossifyOrg/File-Manager.git
synced 2026-02-25 11:10:03 -05:00
fix: filter out files from hidden folders in storage (#283)
Refs: https://github.com/FossifyOrg/File-Manager/issues/217, https://github.com/FossifyOrg/File-Manager/issues/33
This commit is contained in:
@@ -5,6 +5,8 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
|
||||
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
||||
|
||||
## [Unreleased]
|
||||
### Fixed
|
||||
- Fixed files from hidden folders showing up in storage tab browser ([#217])
|
||||
|
||||
## [1.3.0] - 2025-09-30
|
||||
### Added
|
||||
|
||||
@@ -25,6 +25,7 @@ import org.fossify.filemanager.databinding.ActivityMimetypesBinding
|
||||
import org.fossify.filemanager.dialogs.ChangeSortingDialog
|
||||
import org.fossify.filemanager.dialogs.ChangeViewTypeDialog
|
||||
import org.fossify.filemanager.extensions.config
|
||||
import org.fossify.filemanager.extensions.isPathInHiddenFolder
|
||||
import org.fossify.filemanager.extensions.tryOpenPathIntent
|
||||
import org.fossify.filemanager.helpers.*
|
||||
import org.fossify.filemanager.interfaces.ItemOperationsListener
|
||||
@@ -288,7 +289,10 @@ class MimeTypesActivity : SimpleActivity(), ItemOperationsListener {
|
||||
try {
|
||||
val fullMimetype = cursor.getStringValue(MediaStore.Files.FileColumns.MIME_TYPE)?.lowercase(Locale.getDefault()) ?: return@queryCursor
|
||||
val name = cursor.getStringValue(MediaStore.Files.FileColumns.DISPLAY_NAME)
|
||||
if (!showHidden && name.startsWith(".")) {
|
||||
val path = cursor.getStringValue(MediaStore.Files.FileColumns.DATA)
|
||||
|
||||
val isHiddenFile = name.startsWith(".")
|
||||
if (!showHidden && (isHiddenFile || path.isPathInHiddenFolder())) {
|
||||
return@queryCursor
|
||||
}
|
||||
|
||||
@@ -297,7 +301,6 @@ class MimeTypesActivity : SimpleActivity(), ItemOperationsListener {
|
||||
return@queryCursor
|
||||
}
|
||||
|
||||
val path = cursor.getStringValue(MediaStore.Files.FileColumns.DATA)
|
||||
val lastModified = cursor.getLongValue(MediaStore.Files.FileColumns.DATE_MODIFIED) * 1000
|
||||
|
||||
val mimetype = fullMimetype.substringBefore("/")
|
||||
|
||||
@@ -1,3 +1,15 @@
|
||||
package org.fossify.filemanager.extensions
|
||||
|
||||
fun String.isZipFile() = endsWith(".zip", true)
|
||||
|
||||
fun String.isPathInHiddenFolder(): Boolean {
|
||||
val parts = split("/")
|
||||
for (i in 1 until parts.size - 1) {
|
||||
val part = parts[i]
|
||||
val isHidden = part.startsWith(".") && part != "." && part != ".." && part.isNotEmpty()
|
||||
if (isHidden) {
|
||||
return true
|
||||
}
|
||||
}
|
||||
return false
|
||||
}
|
||||
|
||||
@@ -25,6 +25,7 @@ import org.fossify.filemanager.activities.SimpleActivity
|
||||
import org.fossify.filemanager.adapters.ItemsAdapter
|
||||
import org.fossify.filemanager.databinding.RecentsFragmentBinding
|
||||
import org.fossify.filemanager.extensions.config
|
||||
import org.fossify.filemanager.extensions.isPathInHiddenFolder
|
||||
import org.fossify.filemanager.helpers.MAX_COLUMN_COUNT
|
||||
import org.fossify.filemanager.interfaces.ItemOperationsListener
|
||||
import org.fossify.filemanager.models.ListItem
|
||||
@@ -180,7 +181,7 @@ class RecentsFragment(context: Context, attributeSet: AttributeSet) : MyViewPage
|
||||
val size = cursor.getLongValue(FileColumns.SIZE)
|
||||
val modified = cursor.getLongValue(FileColumns.DATE_MODIFIED) * 1000
|
||||
val isHiddenFile = name.startsWith(".")
|
||||
val shouldShow = showHidden || (!isHiddenFile && !isPathInHiddenFolder(path))
|
||||
val shouldShow = showHidden || (!isHiddenFile && !path.isPathInHiddenFolder())
|
||||
if (shouldShow && activity?.getDoesFilePathExist(path) == true) {
|
||||
if (wantedMimeTypes.any { isProperMimeType(it, path, false) }) {
|
||||
val fileDirItem = ListItem(path, name, false, 0, size, modified, false, false)
|
||||
@@ -199,18 +200,6 @@ class RecentsFragment(context: Context, attributeSet: AttributeSet) : MyViewPage
|
||||
}
|
||||
}
|
||||
|
||||
private fun isPathInHiddenFolder(path: String): Boolean {
|
||||
val parts = path.split("/")
|
||||
for (i in 1 until parts.size - 1) {
|
||||
val part = parts[i]
|
||||
val isHidden = part.startsWith(".") && part != "." && part != ".." && part.isNotEmpty()
|
||||
if (isHidden) {
|
||||
return true
|
||||
}
|
||||
}
|
||||
return false
|
||||
}
|
||||
|
||||
private fun getRecyclerAdapter() = binding.recentsList.adapter as? ItemsAdapter
|
||||
|
||||
override fun toggleFilenameVisibility() {
|
||||
|
||||
Reference in New Issue
Block a user