@@ -26,6 +26,7 @@ import kotlinx.coroutines.MainScope
2626import kotlinx.coroutines.cancel
2727import kotlinx.coroutines.flow.MutableStateFlow
2828import kotlinx.coroutines.launch
29+ import kotlinx.coroutines.withContext
2930import java.util.TreeMap
3031import kotlin.collections.ArrayList
3132
@@ -342,45 +343,36 @@ class ImageAdapter(
342343 numberOfSelectedImagesMarkedAsNotForUpload--
343344 }
344345 notifyItemChanged(position, ImageUnselected ())
345-
346- // Getting index from all images index when switch is on
347- val indexes =
348- if (showAlreadyActionedImages) {
349- ImageHelper .getIndexList(selectedImages, images)
350-
351- // Getting index from actionable images when switch is off
352- } else {
353- ImageHelper .getIndexList(selectedImages, ArrayList (actionableImagesMap.values))
354- }
355- for (index in indexes) {
356- notifyItemChanged(index, ImageSelectedOrUpdated ())
357- }
358346 } else {
347+ val image = images[position]
348+ scope.launch(ioDispatcher) {
349+ val imageSHA1 = imageLoader.getSHA1(image, defaultDispatcher)
350+ withContext(Dispatchers .Main ) {
359351 if (holder.isItemUploaded()) {
360352 Toast .makeText(context, R .string.custom_selector_already_uploaded_image_text, Toast .LENGTH_SHORT ).show()
361- } else {
362- if (holder.isItemNotForUpload()) {
363- numberOfSelectedImagesMarkedAsNotForUpload++
364- }
353+ return @withContext
354+ }
365355
366- // Getting index from all images index when switch is on
367- val indexes : ArrayList < Int > =
368- if (showAlreadyActionedImages) {
369- selectedImages.add(images[position])
370- ImageHelper .getIndexList(selectedImages, images)
356+ if (imageSHA1.isNotEmpty() && imageLoader.getFromUploaded(imageSHA1) != null ) {
357+ holder.itemUploaded()
358+ Toast .makeText(context, R .string.custom_selector_already_uploaded_image_text, Toast . LENGTH_SHORT ).show()
359+ return @withContext
360+ }
371361
372- // Getting index from actionable images when switch is off
373- } else {
374- selectedImages.add(ArrayList (actionableImagesMap.values)[position])
375- ImageHelper .getIndexList(selectedImages, ArrayList (actionableImagesMap.values))
362+ if (! holder.isItemUploaded() && imageSHA1.isNotEmpty() && imageLoader.getFromUploaded(imageSHA1) != null ) {
363+ Toast .makeText(context, R .string.custom_selector_already_uploaded_image_text, Toast .LENGTH_SHORT ).show()
376364 }
377365
378- for (index in indexes) {
379- notifyItemChanged(index, ImageSelectedOrUpdated ())
366+ if (holder.isItemNotForUpload()) {
367+ numberOfSelectedImagesMarkedAsNotForUpload++
368+ }
369+ selectedImages.add(image)
370+ notifyItemChanged(position, ImageSelectedOrUpdated ())
371+
372+ imageSelectListener.onSelectedImagesChanged(selectedImages, numberOfSelectedImagesMarkedAsNotForUpload)
380373 }
381374 }
382375 }
383- imageSelectListener.onSelectedImagesChanged(selectedImages, numberOfSelectedImagesMarkedAsNotForUpload)
384376 }
385377
386378 /* *
0 commit comments