mirror of
https://github.com/SimpleMobileTools/Simple-Draw.git
synced 2025-03-01 18:07:43 +01:00
fix #74, properly handle image_capture intent with output defined
This commit is contained in:
parent
68d07fbafc
commit
f106b35aab
@ -31,12 +31,14 @@ import kotlinx.android.synthetic.main.activity_main.*
|
|||||||
import java.io.ByteArrayOutputStream
|
import java.io.ByteArrayOutputStream
|
||||||
import java.io.File
|
import java.io.File
|
||||||
import java.io.FileOutputStream
|
import java.io.FileOutputStream
|
||||||
|
import java.io.OutputStream
|
||||||
|
|
||||||
class MainActivity : SimpleActivity(), CanvasListener {
|
class MainActivity : SimpleActivity(), CanvasListener {
|
||||||
private val FOLDER_NAME = "images"
|
private val FOLDER_NAME = "images"
|
||||||
private val FILE_NAME = "simple-draw.png"
|
private val FILE_NAME = "simple-draw.png"
|
||||||
|
|
||||||
private var curPath = ""
|
private var curPath = ""
|
||||||
|
private var intentUri: Uri? = null
|
||||||
private var color = 0
|
private var color = 0
|
||||||
private var strokeWidth = 0f
|
private var strokeWidth = 0f
|
||||||
private var suggestedFileExtension = PNG
|
private var suggestedFileExtension = PNG
|
||||||
@ -170,6 +172,7 @@ class MainActivity : SimpleActivity(), CanvasListener {
|
|||||||
val output = intent.extras?.get(MediaStore.EXTRA_OUTPUT)
|
val output = intent.extras?.get(MediaStore.EXTRA_OUTPUT)
|
||||||
if (output != null && output is Uri) {
|
if (output != null && output is Uri) {
|
||||||
isImageCaptureIntent = true
|
isImageCaptureIntent = true
|
||||||
|
intentUri = output
|
||||||
curPath = output.path
|
curPath = output.path
|
||||||
invalidateOptionsMenu()
|
invalidateOptionsMenu()
|
||||||
}
|
}
|
||||||
@ -252,14 +255,28 @@ class MainActivity : SimpleActivity(), CanvasListener {
|
|||||||
|
|
||||||
private fun confirmImage() {
|
private fun confirmImage() {
|
||||||
val file = File(curPath)
|
val file = File(curPath)
|
||||||
|
if (intentUri?.scheme == "content") {
|
||||||
|
val outputStream = contentResolver.openOutputStream(intentUri)
|
||||||
|
saveToOutputStream(outputStream, file.getCompressionFormat())
|
||||||
|
} else {
|
||||||
getFileOutputStream(file) {
|
getFileOutputStream(file) {
|
||||||
it.use {
|
saveToOutputStream(it, file.getCompressionFormat())
|
||||||
my_canvas.getBitmap().compress(file.getCompressionFormat(), 70, it)
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private fun saveToOutputStream(outputStream: OutputStream?, format: Bitmap.CompressFormat) {
|
||||||
|
if (outputStream == null) {
|
||||||
|
toast(R.string.unknown_error_occurred)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
outputStream.use {
|
||||||
|
my_canvas.getBitmap().compress(format, 70, it)
|
||||||
}
|
}
|
||||||
setResult(Activity.RESULT_OK)
|
setResult(Activity.RESULT_OK)
|
||||||
finish()
|
finish()
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
private fun trySaveImage() {
|
private fun trySaveImage() {
|
||||||
getStoragePermission {
|
getStoragePermission {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user