mirror of
https://github.com/SimpleMobileTools/Simple-File-Manager.git
synced 2025-04-29 17:38:51 +02:00
adding the actual file fetcher at the mimetype activity
This commit is contained in:
parent
05f99b49ba
commit
ffc838037f
@ -3,18 +3,20 @@ package com.simplemobiletools.filemanager.pro.activities
|
|||||||
import android.app.SearchManager
|
import android.app.SearchManager
|
||||||
import android.content.Context
|
import android.content.Context
|
||||||
import android.os.Bundle
|
import android.os.Bundle
|
||||||
|
import android.provider.MediaStore
|
||||||
import android.view.Menu
|
import android.view.Menu
|
||||||
import android.view.MenuItem
|
import android.view.MenuItem
|
||||||
import androidx.appcompat.widget.SearchView
|
import androidx.appcompat.widget.SearchView
|
||||||
import androidx.core.view.MenuItemCompat
|
import androidx.core.view.MenuItemCompat
|
||||||
import com.simplemobiletools.commons.extensions.handleHiddenFolderPasswordProtection
|
import com.simplemobiletools.commons.extensions.*
|
||||||
import com.simplemobiletools.commons.extensions.toast
|
|
||||||
import com.simplemobiletools.commons.helpers.VIEW_TYPE_GRID
|
import com.simplemobiletools.commons.helpers.VIEW_TYPE_GRID
|
||||||
|
import com.simplemobiletools.commons.helpers.ensureBackgroundThread
|
||||||
import com.simplemobiletools.filemanager.pro.R
|
import com.simplemobiletools.filemanager.pro.R
|
||||||
import com.simplemobiletools.filemanager.pro.dialogs.ChangeSortingDialog
|
import com.simplemobiletools.filemanager.pro.dialogs.ChangeSortingDialog
|
||||||
import com.simplemobiletools.filemanager.pro.dialogs.ChangeViewTypeDialog
|
import com.simplemobiletools.filemanager.pro.dialogs.ChangeViewTypeDialog
|
||||||
import com.simplemobiletools.filemanager.pro.extensions.config
|
import com.simplemobiletools.filemanager.pro.extensions.config
|
||||||
import com.simplemobiletools.filemanager.pro.helpers.*
|
import com.simplemobiletools.filemanager.pro.helpers.*
|
||||||
|
import java.util.*
|
||||||
|
|
||||||
class MimeTypesActivity : SimpleActivity() {
|
class MimeTypesActivity : SimpleActivity() {
|
||||||
private var isSearchOpen = false
|
private var isSearchOpen = false
|
||||||
@ -40,6 +42,14 @@ class MimeTypesActivity : SimpleActivity() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
|
||||||
|
ensureBackgroundThread {
|
||||||
|
getProperFilePaths { paths ->
|
||||||
|
runOnUiThread {
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun onCreateOptionsMenu(menu: Menu): Boolean {
|
override fun onCreateOptionsMenu(menu: Menu): Boolean {
|
||||||
@ -87,6 +97,58 @@ class MimeTypesActivity : SimpleActivity() {
|
|||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private fun getProperFilePaths(callback: (ArrayList<String>) -> Unit) {
|
||||||
|
val filePaths = ArrayList<String>()
|
||||||
|
val uri = MediaStore.Files.getContentUri("external")
|
||||||
|
val projection = arrayOf(
|
||||||
|
MediaStore.Files.FileColumns.MIME_TYPE,
|
||||||
|
MediaStore.Files.FileColumns.DATA
|
||||||
|
)
|
||||||
|
|
||||||
|
try {
|
||||||
|
queryCursor(uri, projection) { cursor ->
|
||||||
|
try {
|
||||||
|
val fullMimetype = cursor.getStringValue(MediaStore.Files.FileColumns.MIME_TYPE)?.lowercase(Locale.getDefault()) ?: return@queryCursor
|
||||||
|
val path = cursor.getStringValue(MediaStore.Files.FileColumns.DATA)
|
||||||
|
|
||||||
|
val mimetype = fullMimetype.substringBefore("/")
|
||||||
|
when (currentMimeType) {
|
||||||
|
IMAGES -> {
|
||||||
|
if (mimetype == "image") {
|
||||||
|
filePaths.add(path)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
VIDEOS -> {
|
||||||
|
if (mimetype == "video") {
|
||||||
|
filePaths.add(path)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
AUDIO -> {
|
||||||
|
if (mimetype == "audio" || extraAudioMimeTypes.contains(fullMimetype)) {
|
||||||
|
filePaths.add(path)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
DOCUMENTS -> {
|
||||||
|
if (mimetype == "text" || extraDocumentMimeTypes.contains(fullMimetype)) {
|
||||||
|
filePaths.add(path)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
ARCHIVES -> {
|
||||||
|
if (archiveMimeTypes.contains(fullMimetype)) {
|
||||||
|
filePaths.add(path)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} catch (e: Exception) {
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} catch (e: Exception) {
|
||||||
|
showErrorToast(e)
|
||||||
|
}
|
||||||
|
|
||||||
|
callback(filePaths)
|
||||||
|
}
|
||||||
|
|
||||||
private fun setupSearch(menu: Menu) {
|
private fun setupSearch(menu: Menu) {
|
||||||
val searchManager = getSystemService(Context.SEARCH_SERVICE) as SearchManager
|
val searchManager = getSystemService(Context.SEARCH_SERVICE) as SearchManager
|
||||||
searchMenuItem = menu.findItem(R.id.search)
|
searchMenuItem = menu.findItem(R.id.search)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user