@@ -26,6 +26,7 @@ import kotlinx.coroutines.MainScope
26
26
import kotlinx.coroutines.cancel
27
27
import kotlinx.coroutines.flow.MutableStateFlow
28
28
import kotlinx.coroutines.launch
29
+ import kotlinx.coroutines.withContext
29
30
import java.util.TreeMap
30
31
import kotlin.collections.ArrayList
31
32
@@ -342,45 +343,36 @@ class ImageAdapter(
342
343
numberOfSelectedImagesMarkedAsNotForUpload--
343
344
}
344
345
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
- }
358
346
} else {
347
+ val image = images[position]
348
+ scope.launch(ioDispatcher) {
349
+ val imageSHA1 = imageLoader.getSHA1(image, defaultDispatcher)
350
+ withContext(Dispatchers .Main ) {
359
351
if (holder.isItemUploaded()) {
360
352
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
+ }
365
355
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
+ }
371
361
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()
376
364
}
377
365
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)
380
373
}
381
374
}
382
375
}
383
- imageSelectListener.onSelectedImagesChanged(selectedImages, numberOfSelectedImagesMarkedAsNotForUpload)
384
376
}
385
377
386
378
/* *
0 commit comments