mirror of
https://github.com/commons-app/apps-android-commons.git
synced 2025-10-26 12:23:58 +01:00
Fix: Fix crash when adding location after removing a picture (#6175)
* Fix: Resolved the Crash in UploadMediaDetailFragment * Fix uninitialized basicKvStoreFactory in UploadMediaPresenter --------- Co-authored-by: Nicolas Raoul <nicolas.raoul@gmail.com>
This commit is contained in:
parent
12cadd0186
commit
e9e2697369
2 changed files with 13 additions and 9 deletions
|
|
@ -15,6 +15,7 @@ import android.widget.CompoundButton
|
|||
import android.widget.ImageView
|
||||
import android.widget.Toast
|
||||
import androidx.activity.result.ActivityResult
|
||||
import androidx.activity.result.ActivityResultLauncher
|
||||
import androidx.activity.result.contract.ActivityResultContracts
|
||||
import androidx.core.content.ContextCompat
|
||||
import androidx.core.os.bundleOf
|
||||
|
|
@ -60,8 +61,7 @@ import javax.inject.Named
|
|||
class UploadMediaDetailFragment : UploadBaseFragment(), UploadMediaDetailsContract.View,
|
||||
UploadMediaDetailAdapter.EventListener {
|
||||
|
||||
private val startForResult = registerForActivityResult<Intent, ActivityResult>(
|
||||
ActivityResultContracts.StartActivityForResult(), ::onCameraPosition)
|
||||
private lateinit var startForResult: ActivityResultLauncher<Intent>
|
||||
|
||||
private val startForEditActivityResult = registerForActivityResult<Intent, ActivityResult>(
|
||||
ActivityResultContracts.StartActivityForResult(), ::onEditActivityResult)
|
||||
|
|
@ -135,6 +135,10 @@ class UploadMediaDetailFragment : UploadBaseFragment(), UploadMediaDetailsContra
|
|||
if (savedInstanceState != null && uploadableFile == null) {
|
||||
uploadableFile = savedInstanceState.getParcelable(UPLOADABLE_FILE)
|
||||
}
|
||||
// Register the ActivityResultLauncher for LocationPickerActivity
|
||||
startForResult = registerForActivityResult(ActivityResultContracts.StartActivityForResult()) { result ->
|
||||
onCameraPosition(result)
|
||||
}
|
||||
}
|
||||
|
||||
fun setImageToBeUploaded(
|
||||
|
|
|
|||
|
|
@ -51,7 +51,7 @@ class UploadMediaPresenter @Inject constructor(
|
|||
}
|
||||
}
|
||||
}
|
||||
lateinit var basicKvStoreFactory: (String) -> BasicKvStore
|
||||
private var basicKvStoreFactory: ((String) -> BasicKvStore)? = null
|
||||
|
||||
override fun onAttachView(view: UploadMediaDetailsContract.View) {
|
||||
this.view = view
|
||||
|
|
@ -339,8 +339,8 @@ class UploadMediaPresenter @Inject constructor(
|
|||
*/
|
||||
override fun checkImageQuality(uploadItem: UploadItem, index: Int) {
|
||||
if ((uploadItem.imageQuality != IMAGE_OK) && (uploadItem.imageQuality != IMAGE_KEEP)) {
|
||||
val value = basicKvStoreFactory(UploadActivity.storeNameForCurrentUploadImagesSize)
|
||||
.getString(UPLOAD_QUALITIES_KEY, null)
|
||||
val value = basicKvStoreFactory?.let { it(UploadActivity.storeNameForCurrentUploadImagesSize) }
|
||||
?.getString(UPLOAD_QUALITIES_KEY, null)
|
||||
try {
|
||||
val imageQuality = value.asJsonObject()["UploadItem$index"] as Int
|
||||
view.showProgress(false)
|
||||
|
|
@ -363,8 +363,8 @@ class UploadMediaPresenter @Inject constructor(
|
|||
* @param index Index of the UploadItem which was deleted
|
||||
*/
|
||||
override fun updateImageQualitiesJSON(size: Int, index: Int) {
|
||||
val value = basicKvStoreFactory(UploadActivity.storeNameForCurrentUploadImagesSize)
|
||||
.getString(UPLOAD_QUALITIES_KEY, null)
|
||||
val value = basicKvStoreFactory?.let { it(UploadActivity.storeNameForCurrentUploadImagesSize) }
|
||||
?.getString(UPLOAD_QUALITIES_KEY, null)
|
||||
try {
|
||||
val jsonObject = value.asJsonObject().apply {
|
||||
for (i in index until (size - 1)) {
|
||||
|
|
@ -372,8 +372,8 @@ class UploadMediaPresenter @Inject constructor(
|
|||
}
|
||||
remove("UploadItem" + (size - 1))
|
||||
}
|
||||
basicKvStoreFactory(UploadActivity.storeNameForCurrentUploadImagesSize)
|
||||
.putString(UPLOAD_QUALITIES_KEY, jsonObject.toString())
|
||||
basicKvStoreFactory?.let { it(UploadActivity.storeNameForCurrentUploadImagesSize) }
|
||||
?.putString(UPLOAD_QUALITIES_KEY, jsonObject.toString())
|
||||
} catch (e: Exception) {
|
||||
Timber.e(e)
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue