mirror of
				https://github.com/commons-app/apps-android-commons.git
				synced 2025-10-31 06:43:56 +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
	
	 Sonal Yadav
						Sonal Yadav