Prevent IndexOutOfBoundsException in setUploadMediaDetails by validating index and list size (#6404)

This commit is contained in:
jagadeesh-18-bot 2025-09-27 22:01:13 +05:30
parent be371e5236
commit 708e8250f2

View file

@ -69,7 +69,18 @@ class UploadMediaPresenter @Inject constructor(
uploadMediaDetails: List<UploadMediaDetail>,
uploadItemIndex: Int
) {
repository.getUploads()[uploadItemIndex].uploadMediaDetails = uploadMediaDetails.toMutableList()
val uploadItems = repository.getUploads()
if (uploadItemIndex >= 0 && uploadItemIndex < uploadItems.size) {
if (uploadMediaDetails.isNotEmpty()) {
uploadItems[uploadItemIndex].uploadMediaDetails = uploadMediaDetails.toMutableList()
Timber.d("Set uploadMediaDetails for index %d, size %d", uploadItemIndex, uploadMediaDetails.size)
} else {
uploadItems[uploadItemIndex].uploadMediaDetails = mutableListOf(UploadMediaDetail())
Timber.w("Received empty uploadMediaDetails for index %d, initialized default", uploadItemIndex)
}
} else {
Timber.e("Invalid index %d for uploadItems size %d, skipping setUploadMediaDetails", uploadItemIndex, uploadItems.size)
}
}
override fun setupBasicKvStoreFactory(factory: (String) -> BasicKvStore) {