diff --git a/app/src/main/java/com/itsaky/androidide/handlers/FileTreeActionHandler.kt b/app/src/main/java/com/itsaky/androidide/handlers/FileTreeActionHandler.kt
index 8da02e6812..dad2018ff4 100644
--- a/app/src/main/java/com/itsaky/androidide/handlers/FileTreeActionHandler.kt
+++ b/app/src/main/java/com/itsaky/androidide/handlers/FileTreeActionHandler.kt
@@ -25,6 +25,7 @@ import com.blankj.utilcode.util.ClipboardUtils
import com.blankj.utilcode.util.FileIOUtils
import com.blankj.utilcode.util.FileUtils
import com.blankj.utilcode.util.IntentUtils
+import com.itsaky.androidide.utils.IntentUtils.shareFile
import com.itsaky.androidide.EditorActivity
import com.itsaky.androidide.R
import com.itsaky.androidide.R.string
@@ -84,6 +85,7 @@ class FileTreeActionHandler : BaseEventHandler() {
const val ID_DELETE_FILE = 2
const val ID_NEW_FILE = 3
const val ID_NEW_FOLDER = 4
+ const val ID_OPEN_WITH = 5
}
@Subscribe(threadMode = MAIN)
@@ -137,6 +139,7 @@ class FileTreeActionHandler : BaseEventHandler() {
ID_DELETE_FILE -> delete(context, file)
ID_NEW_FILE -> createNewFile(context, file)
ID_NEW_FOLDER -> createNewFolder(context, file)
+ ID_OPEN_WITH -> openWith(context, file)
}
}
@@ -157,9 +160,17 @@ class FileTreeActionHandler : BaseEventHandler() {
)
}
+ if (file.isFile) {
+ fragment.addOption(SheetOption(ID_OPEN_WITH, R.drawable.ic_open_with, string.open_with, file))
+ }
+
return fragment
}
+ private fun openWith(context: Context, file: File) {
+ shareFile(context, file, "*/*")
+ }
+
private fun createNewFile(context: Context, file: File) {
createNewFile(context, file, false)
}
diff --git a/app/src/main/res/drawable/ic_open_with.xml b/app/src/main/res/drawable/ic_open_with.xml
new file mode 100644
index 0000000000..c8f8c93ec7
--- /dev/null
+++ b/app/src/main/res/drawable/ic_open_with.xml
@@ -0,0 +1,9 @@
+
+
+
diff --git a/app/src/main/res/values-ru/strings.xml b/app/src/main/res/values-ru/strings.xml
index 374a501e8c..3613633e6d 100644
--- a/app/src/main/res/values-ru/strings.xml
+++ b/app/src/main/res/values-ru/strings.xml
@@ -184,6 +184,7 @@
Проверка разрешений на взаимодействие с памятью
Невозможно без разрешения на взаимодействие с памятью
Разрешение на взаимодействие с памятью получено!
+ Открыть с помощью...
Отмена действия
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index a325243654..65ea90aeb0 100755
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -183,6 +183,7 @@
Failed to list project files!
Can\'t proceed without storage permissions
Storage permissions granted!
+ Open with...
Undo