1
1
package net.kuama.documentscanner.presentation
2
2
3
3
import android.annotation.SuppressLint
4
- import android.content.Intent
4
+ import android.app.Activity
5
5
import android.graphics.Bitmap
6
6
import android.graphics.Canvas
7
7
import android.net.Uri
@@ -14,6 +14,10 @@ import androidx.core.net.toUri
14
14
import androidx.lifecycle.Observer
15
15
import kotlinx.android.synthetic.main.activity_cropper.*
16
16
import net.kuama.documentscanner.R
17
+ import java.io.ByteArrayOutputStream
18
+ import android.content.Intent
19
+ import java.io.File
20
+ import java.io.FileOutputStream
17
21
18
22
class CropperActivity : AppCompatActivity () {
19
23
private lateinit var cropModel: CropperModel
@@ -51,30 +55,16 @@ class CropperActivity : AppCompatActivity() {
51
55
}
52
56
})
53
57
54
- cropModel.finalDocument.observe(this , Observer {
55
- finalResult.setImageBitmap(cropModel.finalDocument.value)
56
- })
57
-
58
58
cropModel.bitmapToCrop.observe(this , Observer {
59
59
cropResultPreview.setImageBitmap(cropModel.bitmapToCrop.value)
60
60
})
61
61
62
- acceptFinalResult.setOnClickListener {
63
- val intent = Intent (this , ScannerActivity ::class .java)
64
- finish()
65
- this .startActivity(intent)
66
- }
67
-
68
62
closeResultPreview.setOnClickListener {
69
- val intent = Intent (this , ScannerActivity ::class .java)
70
- finish()
71
- this .startActivity(intent)
63
+ closeActivity()
72
64
}
73
65
74
66
closeCropPreview.setOnClickListener {
75
- val intent = Intent (this , ScannerActivity ::class .java)
76
- finish()
77
- this .startActivity(intent)
67
+ closeActivity()
78
68
}
79
69
80
70
confirmCropPreview.setOnClickListener {
@@ -85,9 +75,16 @@ class CropperActivity : AppCompatActivity() {
85
75
}
86
76
87
77
confirmCropResult.setOnClickListener {
88
- cropResultWrap.visibility = View .GONE
89
- cropModel.onAcceptResult()
90
- finalResultWrap.visibility = View .VISIBLE
78
+ val file = File (" /storage/emulated/0/Documents/croppedDoc.jpg" )
79
+ val outputStream = FileOutputStream (file)
80
+ outputStream.write(cropModel.bitmapToCrop.value?.toByteArray())
81
+ outputStream.close()
82
+
83
+ val resultIntent = Intent ()
84
+ resultIntent.putExtra(" croppedPath" , " /storage/emulated/0/Documents/croppedDoc.jpg" )
85
+ setResult(RESULT_OK , resultIntent)
86
+ // this.setResult(Activity.RESULT_OK)
87
+ finish()
91
88
}
92
89
93
90
cropPreview.setOnTouchListener { _, motionEvent ->
@@ -113,6 +110,17 @@ class CropperActivity : AppCompatActivity() {
113
110
v.draw(c)
114
111
return b
115
112
}
113
+
114
+ private fun closeActivity () {
115
+ this .setResult(Activity .RESULT_CANCELED )
116
+ finish()
117
+ }
118
+ }
119
+ fun Bitmap.toByteArray (): ByteArray {
120
+ ByteArrayOutputStream ().apply {
121
+ compress(Bitmap .CompressFormat .JPEG , 100 , this )
122
+ return toByteArray()
123
+ }
116
124
}
117
125
118
126
private inline fun View.waitForLayout (crossinline yourAction : () -> Unit ) {
0 commit comments