Skip to content

Commit 00edde4

Browse files
authored
Merge pull request #244 from Himura2la/master
Add "Open As Text" item
2 parents 74c5d89 + 2310ffc commit 00edde4

File tree

28 files changed

+69
-2
lines changed

28 files changed

+69
-2
lines changed

app/src/main/kotlin/com/simplemobiletools/filemanager/adapters/ItemsAdapter.kt

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -88,6 +88,7 @@ class ItemsAdapter(activity: SimpleActivity, var fileDirItems: MutableList<FileD
8888
R.id.cab_copy_path -> copyPath()
8989
R.id.cab_set_as -> setAs()
9090
R.id.cab_open_with -> openWith()
91+
R.id.cab_open_as_text -> openAsText()
9192
R.id.cab_copy_to -> copyMoveTo(true)
9293
R.id.cab_move_to -> copyMoveTo(false)
9394
R.id.cab_compress -> compressSelection()
@@ -192,6 +193,10 @@ class ItemsAdapter(activity: SimpleActivity, var fileDirItems: MutableList<FileD
192193
activity.tryOpenPathIntent(getSelectedMedia().first().path, true)
193194
}
194195

196+
private fun openAsText() {
197+
activity.tryOpenPathIntent(getSelectedMedia().first().path, false, true)
198+
}
199+
195200
private fun copyMoveTo(isCopyOperation: Boolean) {
196201
val files = ArrayList<FileDirItem>()
197202
selectedPositions.forEach {

app/src/main/kotlin/com/simplemobiletools/filemanager/extensions/Activity.kt

Lines changed: 35 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,41 @@ fun Activity.sharePaths(paths: ArrayList<String>) {
1515
sharePathsIntent(paths, BuildConfig.APPLICATION_ID)
1616
}
1717

18-
fun Activity.tryOpenPathIntent(path: String, forceChooser: Boolean) {
19-
if (!forceChooser && path.endsWith(".apk", true)) {
18+
fun Activity.tryOpenPathIntent(path: String, forceChooser: Boolean, asText: Boolean = false) {
19+
if (asText) {
20+
21+
//TODO: Improve
22+
23+
val uri = if (isNougatPlus()) {
24+
FileProvider.getUriForFile(this, "${BuildConfig.APPLICATION_ID}.provider", File(path))
25+
} else {
26+
Uri.fromFile(File(path))
27+
}
28+
29+
Intent().apply {
30+
action = Intent.ACTION_VIEW
31+
32+
val mimeType = "text/plain"
33+
setDataAndType(uri, mimeType)
34+
35+
addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION)
36+
37+
if (resolveActivity(packageManager) != null) {
38+
val chooser = Intent.createChooser(this, getString(R.string.open_with))
39+
try {
40+
startActivity(if (forceChooser) chooser else this)
41+
} catch (e: NullPointerException) {
42+
showErrorToast(e)
43+
}
44+
} else {
45+
if (!tryGenericMimeType(this, mimeType, uri)) {
46+
toast(R.string.no_app_found)
47+
}
48+
}
49+
50+
}
51+
}
52+
else if (!forceChooser && path.endsWith(".apk", true)) {
2053
val uri = if (isNougatPlus()) {
2154
FileProvider.getUriForFile(this, "${BuildConfig.APPLICATION_ID}.provider", File(path))
2255
} else {

app/src/main/res/menu/cab.xml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,10 @@
3333
android:id="@+id/cab_open_with"
3434
android:title="@string/open_with"
3535
app:showAsAction="never"/>
36+
<item
37+
android:id="@+id/cab_open_as_text"
38+
android:title="@string/open_as_text"
39+
app:showAsAction="never"/>
3640
<item
3741
android:id="@+id/cab_copy_to"
3842
android:title="@string/copy_to"

app/src/main/res/values-ar/strings.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
<string name="go_to_home_folder">الذهاب الى الرئيسية</string>
88
<string name="set_as_home_folder">تعيين كمجلد رئيسي</string>
99
<string name="home_folder_updated">تم تحديث المجلد الرئيسي</string>
10+
<string name="open_as_text">Open as Plain Text</string>
1011
<string name="copy_path">نسخ المسار الى الحافظة</string>
1112
<string name="path_copied">تم نسخ المسار</string>
1213
<string name="select_audio_file">الرجاء تحديد ملف صوتي</string>

app/src/main/res/values-az/strings.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
<string name="go_to_home_folder">Əsas qovluğa qayıt</string>
88
<string name="set_as_home_folder">Əsas qovluq kimi təyin et</string>
99
<string name="home_folder_updated">Əsas qovluq yeniləndi</string>
10+
<string name="open_as_text">Open as Plain Text</string>
1011
<string name="copy_path">Məkanı kopyala</string>
1112
<string name="path_copied">Məkan kopyalandı</string>
1213
<string name="select_audio_file">Xahiş olunur səs faylı seçin</string>

app/src/main/res/values-cs/strings.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
<string name="go_to_home_folder">Jít do domovské složky</string>
88
<string name="set_as_home_folder">Nastavit jako domovskou složku</string>
99
<string name="home_folder_updated">Domovská složka aktualizována</string>
10+
<string name="open_as_text">Open as Plain Text</string>
1011
<string name="copy_path">Copy path to clipboard</string>
1112
<string name="path_copied">Path copied</string>
1213
<string name="select_audio_file">Please select an audio file</string>

app/src/main/res/values-da/strings.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
<string name="go_to_home_folder">Gå til hjemmemappen</string>
88
<string name="set_as_home_folder">Sæt som hjemmemappe</string>
99
<string name="home_folder_updated">Hjemmemappe opdateret</string>
10+
<string name="open_as_text">Open as Plain Text</string>
1011
<string name="copy_path">Kopier sti til udklipsholderen</string>
1112
<string name="path_copied">Sti kopieret</string>
1213
<string name="select_audio_file">Vælg en lydfil</string>

app/src/main/res/values-de/strings.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
<string name="go_to_home_folder">Gehe zum Home-Ordner</string>
88
<string name="set_as_home_folder">Als Home-Ordner setzen</string>
99
<string name="home_folder_updated">Home-Ordner aktualisiert</string>
10+
<string name="open_as_text">Open as Plain Text</string>
1011
<string name="copy_path">Kopiere Pfad in die Zwischenablage</string>
1112
<string name="path_copied">Pfad kopiert</string>
1213
<string name="select_audio_file">Bitte wähle eine Audiodatei aus</string>

app/src/main/res/values-es/strings.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
<string name="go_to_home_folder">Ir a carpeta principal</string>
88
<string name="set_as_home_folder">Establecer como carpeta principal</string>
99
<string name="home_folder_updated">Carpeta principal actualizada</string>
10+
<string name="open_as_text">Open as Plain Text</string>
1011
<string name="copy_path">Copy path to clipboard</string>
1112
<string name="path_copied">Path copied</string>
1213
<string name="select_audio_file">Please select an audio file</string>

app/src/main/res/values-fr/strings.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
<string name="go_to_home_folder">Aller au dossier par défaut</string>
88
<string name="set_as_home_folder">Définir en tant que dossier par défaut</string>
99
<string name="home_folder_updated">Dossier par défaut mis à jour</string>
10+
<string name="open_as_text">Open as Plain Text</string>
1011
<string name="copy_path">Copier le chemin du fichier dans le presse-papiers</string>
1112
<string name="path_copied">Chemin du fichier copié</string>
1213
<string name="select_audio_file">Veuillez sélectionner un fichier audio</string>

0 commit comments

Comments
 (0)