fix #131, handle Edit intent

This commit is contained in:
tibbi 2019-03-08 20:22:07 +01:00
parent b521f131cb
commit b3a140658b
2 changed files with 25 additions and 5 deletions

View File

@ -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

View File

@ -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 {