Skip to content

Commit 5f4532d

Browse files
committed
handle third party Open Image intents
1 parent 32fcf70 commit 5f4532d

2 files changed

Lines changed: 24 additions & 1 deletion

File tree

app/src/main/AndroidManifest.xml

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,16 @@
2323

2424
<activity
2525
android:name=".activities.MainActivity"
26-
android:configChanges="orientation"/>
26+
android:configChanges="orientation">
27+
<intent-filter>
28+
<action android:name="android.intent.action.VIEW"/>
29+
30+
<category android:name="android.intent.category.BROWSABLE"/>
31+
<category android:name="android.intent.category.DEFAULT"/>
32+
33+
<data android:mimeType="image/*"/>
34+
</intent-filter>
35+
</activity>
2736

2837
<activity
2938
android:name="com.simplemobiletools.commons.activities.AboutActivity"

app/src/main/kotlin/com/simplemobiletools/draw/activities/MainActivity.kt

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,11 +36,13 @@ class MainActivity : SimpleActivity(), MyCanvas.PathsChangedListener {
3636
private val FILE_NAME = "simple-draw.png"
3737
private val SAVE_IMAGE = 1
3838
private val OPEN_FILE = 2
39+
private val OPEN_FILE_INTENT = 3
3940

4041
private var curPath = ""
4142
private var color = 0
4243
private var strokeWidth = 0f
4344
private var suggestedFileExtension = PNG
45+
private var openFileIntentPath = ""
4446

4547
override fun onCreate(savedInstanceState: Bundle?) {
4648
super.onCreate(savedInstanceState)
@@ -58,6 +60,16 @@ class MainActivity : SimpleActivity(), MyCanvas.PathsChangedListener {
5860
color_picker.setOnClickListener { pickColor() }
5961
undo.setOnClickListener { my_canvas.undo() }
6062
storeStoragePaths()
63+
64+
if (intent?.action == Intent.ACTION_VIEW && intent.data != null) {
65+
val path = intent.data!!.path
66+
if (hasWriteStoragePermission()) {
67+
openPath(path)
68+
} else {
69+
openFileIntentPath = path
70+
ActivityCompat.requestPermissions(this, arrayOf(Manifest.permission.WRITE_EXTERNAL_STORAGE), OPEN_FILE_INTENT)
71+
}
72+
}
6173
}
6274

6375
override fun onResume() {
@@ -100,6 +112,8 @@ class MainActivity : SimpleActivity(), MyCanvas.PathsChangedListener {
100112
saveImage()
101113
} else if (requestCode == OPEN_FILE) {
102114
openFile()
115+
} else if (requestCode == OPEN_FILE_INTENT) {
116+
openPath(openFileIntentPath)
103117
}
104118
} else {
105119
toast(R.string.no_storage_permissions)

0 commit comments

Comments
 (0)