mirror of
https://github.com/SimpleMobileTools/Simple-Draw.git
synced 2025-05-22 13:44:26 +02:00
fix #131, handle Edit intent
This commit is contained in:
parent
b521f131cb
commit
b3a140658b
@ -55,6 +55,12 @@
|
|||||||
<action android:name="android.media.action.IMAGE_CAPTURE"/>
|
<action android:name="android.media.action.IMAGE_CAPTURE"/>
|
||||||
<category android:name="android.intent.category.DEFAULT"/>
|
<category android:name="android.intent.category.DEFAULT"/>
|
||||||
</intent-filter>
|
</intent-filter>
|
||||||
|
|
||||||
|
<intent-filter>
|
||||||
|
<action android:name="android.intent.action.EDIT"/>
|
||||||
|
<category android:name="android.intent.category.DEFAULT"/>
|
||||||
|
<data android:mimeType="image/*"/>
|
||||||
|
</intent-filter>
|
||||||
</activity>
|
</activity>
|
||||||
|
|
||||||
<activity
|
<activity
|
||||||
|
@ -35,7 +35,6 @@ import java.io.ByteArrayOutputStream
|
|||||||
import java.io.File
|
import java.io.File
|
||||||
import java.io.OutputStream
|
import java.io.OutputStream
|
||||||
|
|
||||||
|
|
||||||
class MainActivity : SimpleActivity(), CanvasListener {
|
class MainActivity : SimpleActivity(), CanvasListener {
|
||||||
private val PICK_IMAGE_INTENT = 1
|
private val PICK_IMAGE_INTENT = 1
|
||||||
|
|
||||||
@ -52,6 +51,7 @@ class MainActivity : SimpleActivity(), CanvasListener {
|
|||||||
private var brushSize = 0f
|
private var brushSize = 0f
|
||||||
private var isEraserOn = false
|
private var isEraserOn = false
|
||||||
private var isImageCaptureIntent = false
|
private var isImageCaptureIntent = false
|
||||||
|
private var isEditIntent = false
|
||||||
private var lastBitmapPath = ""
|
private var lastBitmapPath = ""
|
||||||
|
|
||||||
override fun onCreate(savedInstanceState: Bundle?) {
|
override fun onCreate(savedInstanceState: Bundle?) {
|
||||||
@ -112,9 +112,10 @@ class MainActivity : SimpleActivity(), CanvasListener {
|
|||||||
override fun onCreateOptionsMenu(menu: Menu): Boolean {
|
override fun onCreateOptionsMenu(menu: Menu): Boolean {
|
||||||
menuInflater.inflate(R.menu.menu, menu)
|
menuInflater.inflate(R.menu.menu, menu)
|
||||||
menu.apply {
|
menu.apply {
|
||||||
findItem(R.id.menu_confirm).isVisible = isImageCaptureIntent
|
findItem(R.id.menu_confirm).isVisible = isImageCaptureIntent || isEditIntent
|
||||||
findItem(R.id.menu_save).isVisible = !isImageCaptureIntent
|
findItem(R.id.menu_save).isVisible = !isImageCaptureIntent && !isEditIntent
|
||||||
findItem(R.id.menu_share).isVisible = !isImageCaptureIntent
|
findItem(R.id.menu_share).isVisible = !isImageCaptureIntent && !isEditIntent
|
||||||
|
findItem(R.id.open_file).isVisible = !isEditIntent
|
||||||
}
|
}
|
||||||
|
|
||||||
return true
|
return true
|
||||||
@ -196,6 +197,16 @@ class MainActivity : SimpleActivity(), CanvasListener {
|
|||||||
invalidateOptionsMenu()
|
invalidateOptionsMenu()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (intent?.action == Intent.ACTION_EDIT) {
|
||||||
|
val data = intent.data
|
||||||
|
val output = intent.extras?.get(MediaStore.EXTRA_OUTPUT)
|
||||||
|
if (data != null && output != null && output is Uri) {
|
||||||
|
tryOpenUri(data, intent)
|
||||||
|
isEditIntent = true
|
||||||
|
intentUri = output
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun getStoragePermission(callback: () -> Unit) {
|
private fun getStoragePermission(callback: () -> Unit) {
|
||||||
@ -276,7 +287,10 @@ class MainActivity : SimpleActivity(), CanvasListener {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private fun confirmImage() {
|
private fun confirmImage() {
|
||||||
if (intentUri?.scheme == "content") {
|
if (isEditIntent) {
|
||||||
|
val outputStream = contentResolver.openOutputStream(intentUri)
|
||||||
|
saveToOutputStream(outputStream, defaultPath.getCompressionFormat())
|
||||||
|
} else if (intentUri?.scheme == "content") {
|
||||||
val outputStream = contentResolver.openOutputStream(intentUri)
|
val outputStream = contentResolver.openOutputStream(intentUri)
|
||||||
saveToOutputStream(outputStream, defaultPath.getCompressionFormat())
|
saveToOutputStream(outputStream, defaultPath.getCompressionFormat())
|
||||||
} else {
|
} else {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user