diff --git a/app/src/main/kotlin/com/simplemobiletools/filemanager/adapters/ItemsAdapter.kt b/app/src/main/kotlin/com/simplemobiletools/filemanager/adapters/ItemsAdapter.kt index 7972d1d1..b039772f 100644 --- a/app/src/main/kotlin/com/simplemobiletools/filemanager/adapters/ItemsAdapter.kt +++ b/app/src/main/kotlin/com/simplemobiletools/filemanager/adapters/ItemsAdapter.kt @@ -88,6 +88,7 @@ class ItemsAdapter(activity: SimpleActivity, var fileDirItems: MutableList copyPath() R.id.cab_set_as -> setAs() R.id.cab_open_with -> openWith() + R.id.cab_open_as_text -> openAsText() R.id.cab_copy_to -> copyMoveTo(true) R.id.cab_move_to -> copyMoveTo(false) R.id.cab_compress -> compressSelection() @@ -190,6 +191,10 @@ class ItemsAdapter(activity: SimpleActivity, var fileDirItems: MutableList() selectedPositions.forEach { diff --git a/app/src/main/kotlin/com/simplemobiletools/filemanager/extensions/Activity.kt b/app/src/main/kotlin/com/simplemobiletools/filemanager/extensions/Activity.kt index d70592e7..16fef83d 100644 --- a/app/src/main/kotlin/com/simplemobiletools/filemanager/extensions/Activity.kt +++ b/app/src/main/kotlin/com/simplemobiletools/filemanager/extensions/Activity.kt @@ -15,8 +15,41 @@ fun Activity.sharePaths(paths: ArrayList) { sharePathsIntent(paths, BuildConfig.APPLICATION_ID) } -fun Activity.tryOpenPathIntent(path: String, forceChooser: Boolean) { - if (!forceChooser && path.endsWith(".apk", true)) { +fun Activity.tryOpenPathIntent(path: String, forceChooser: Boolean, asText: Boolean = false) { + if (asText) { + + //TODO: Improve + + val uri = if (isNougatPlus()) { + FileProvider.getUriForFile(this, "${BuildConfig.APPLICATION_ID}.provider", File(path)) + } else { + Uri.fromFile(File(path)) + } + + Intent().apply { + action = Intent.ACTION_VIEW + + val mimeType = "text/plain" + setDataAndType(uri, mimeType) + + addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION) + + if (resolveActivity(packageManager) != null) { + val chooser = Intent.createChooser(this, getString(R.string.open_with)) + try { + startActivity(if (forceChooser) chooser else this) + } catch (e: NullPointerException) { + showErrorToast(e) + } + } else { + if (!tryGenericMimeType(this, mimeType, uri)) { + toast(R.string.no_app_found) + } + } + + } + } + else if (!forceChooser && path.endsWith(".apk", true)) { val uri = if (isNougatPlus()) { FileProvider.getUriForFile(this, "${BuildConfig.APPLICATION_ID}.provider", File(path)) } else { diff --git a/app/src/main/res/menu/cab.xml b/app/src/main/res/menu/cab.xml index ba290ac4..cce0c905 100644 --- a/app/src/main/res/menu/cab.xml +++ b/app/src/main/res/menu/cab.xml @@ -33,6 +33,10 @@ android:id="@+id/cab_open_with" android:title="@string/open_with" app:showAsAction="never"/> + Set as home folder Home folder updated Copy path to clipboard + Open as Plain Text Path copied Please select an audio file Search folder