comparison app/src/main/java/com/bartsent/simpleresizer/EditImage.kt @ 21:7e7e71724770

No longer breaks when phone rotated.
author David Barts <n5jrn@me.com>
date Mon, 22 Feb 2021 17:49:27 -0800
parents eedf995462d9
children c29f941d09cd
comparison
equal deleted inserted replaced
20:21be543e9127 21:7e7e71724770
104 else 104 else
105 setImage(State.bitmap!!) 105 setImage(State.bitmap!!)
106 return 106 return
107 } 107 }
108 108
109 // Being stateful stops data loss when the phone gets rotated. 109 // User has opened a new image.
110 if (imageUri != State.uri) { 110 if (imageUri != State.uri) {
111 State.uri = imageUri 111 State.uri = imageUri
112 binding.progressBar.visibility = ProgressBar.VISIBLE 112 binding.progressBar.visibility = ProgressBar.VISIBLE
113 ThreadPools.WORKERS.execute { 113 ThreadPools.WORKERS.execute {
114 State.bitmap = contentResolver.openInputStream(imageUri).use { 114 State.bitmap = contentResolver.openInputStream(imageUri).use {
120 showFatalError(getString(R.string.error_bad_image)) 120 showFatalError(getString(R.string.error_bad_image))
121 else 121 else
122 setImage(State.bitmap!!) 122 setImage(State.bitmap!!)
123 } 123 }
124 } 124 }
125 } 125 return
126 }
127
128 // Rotation (of the phone).
129 val oldBitmap = State.bitmap
130 if (oldBitmap != null)
131 setImage(oldBitmap)
126 } 132 }
127 133
128 private fun setImage(image: Bitmap): Unit { 134 private fun setImage(image: Bitmap): Unit {
129 binding.imageSize.text = getString(R.string.image_size_text, image.width, image.height) 135 binding.imageSize.text = getString(R.string.image_size_text, image.width, image.height)
130 binding.image.setImageBitmap(image) 136 binding.image.setImageBitmap(image)