@@ -7,7 +7,6 @@ import android.media.ExifInterface
77import android.net.Uri
88import android.os.AsyncTask
99import android.os.Environment
10- import android.util.Log
1110import com.simplemobiletools.camera.activities.MainActivity
1211import com.simplemobiletools.camera.extensions.compensateDeviceRotation
1312import com.simplemobiletools.camera.extensions.config
@@ -19,19 +18,9 @@ import com.simplemobiletools.commons.extensions.showErrorToast
1918import com.simplemobiletools.commons.extensions.toast
2019import java.io.File
2120import java.io.FileOutputStream
22- import java.io.IOException
2321import java.io.OutputStream
24- import java.lang.ref.WeakReference
2522
2623class PhotoProcessor (val activity : MainActivity , val uri : Uri ? , val currCameraId : Int , val deviceOrientation : Int ) : AsyncTask<ByteArray, Void, String>() {
27- companion object {
28- private val TAG = PhotoProcessor ::class .java.simpleName
29- private var mActivity: WeakReference <MainActivity >? = null
30- }
31-
32- init {
33- mActivity = WeakReference (activity)
34- }
3524
3625 override fun doInBackground (vararg params : ByteArray ): String {
3726 var fos: OutputStream ? = null
@@ -59,7 +48,11 @@ class PhotoProcessor(val activity: MainActivity, val uri: Uri?, val currCameraId
5948 document = document?.createFile(" " , path.substring(path.lastIndexOf(' /' ) + 1 ))
6049 fos = activity.contentResolver.openOutputStream(document?.uri)
6150 } else {
62- fos = FileOutputStream (photoFile)
51+ fos = if (uri == null ) {
52+ FileOutputStream (photoFile)
53+ } else {
54+ activity.contentResolver.openOutputStream(uri)
55+ }
6356 }
6457
6558 var image = BitmapFactory .decodeByteArray(data, 0 , data.size)
@@ -79,13 +72,9 @@ class PhotoProcessor(val activity: MainActivity, val uri: Uri?, val currCameraId
7972 fos?.close()
8073 return photoFile.absolutePath
8174 } catch (e: Exception ) {
82- Log .e( TAG , " PhotoProcessor file not found: $e " )
75+ activity.showErrorToast(e )
8376 } finally {
84- try {
85- fos?.close()
86- } catch (e: IOException ) {
87- Log .e(TAG , " PhotoProcessor close ioexception $e " )
88- }
77+ fos?.close()
8978 }
9079
9180 return " "
@@ -100,6 +89,7 @@ class PhotoProcessor(val activity: MainActivity, val uri: Uri?, val currCameraId
10089
10190 val matrix = Matrix ()
10291 matrix.setRotate(degree.toFloat())
92+
10393 try {
10494 return Bitmap .createBitmap(bitmap, 0 , 0 , width, height, matrix, true )
10595 } catch (e: OutOfMemoryError ) {
@@ -110,7 +100,7 @@ class PhotoProcessor(val activity: MainActivity, val uri: Uri?, val currCameraId
110100
111101 override fun onPostExecute (path : String ) {
112102 super .onPostExecute(path)
113- mActivity?.get()? .mediaSaved(path)
103+ activity .mediaSaved(path)
114104 }
115105
116106 interface MediaSavedListener {
0 commit comments