refactor: prevent app from crashing for SDKs >= 34

This commit is contained in:
Rohit Verma 2024-08-24 20:56:31 +05:30 committed by Rohit Verma
parent f8d164b6a2
commit ad1074a84a
4 changed files with 16 additions and 8 deletions

View file

@ -62,13 +62,15 @@ class FolderAdapter(
folder.images.removeAll(toBeRemoved) folder.images.removeAll(toBeRemoved)
val count = folder.images.size val count = folder.images.size
if(count == 0) { if(count == 0 && folders.size > 0) {
// Folder is empty, remove folder from the adapter. // Folder is empty, remove folder from the adapter.
holder.itemView.post{ holder.itemView.post{
val updatePosition = folders.indexOf(folder) val updatePosition = folders.indexOf(folder)
folders.removeAt(updatePosition) if(updatePosition != -1) {
notifyItemRemoved(updatePosition) folders.removeAt(updatePosition)
notifyItemRangeChanged(updatePosition, folders.size) notifyItemRemoved(updatePosition)
notifyItemRangeChanged(updatePosition, folders.size)
}
} }
} else { } else {
val previewImage = folder.images[0] val previewImage = folder.images[0]

View file

@ -122,7 +122,7 @@ class ImageAdapter(
* Bind View holder, load image, selected view, click listeners. * Bind View holder, load image, selected view, click listeners.
*/ */
override fun onBindViewHolder(holder: ImageViewHolder, position: Int) { override fun onBindViewHolder(holder: ImageViewHolder, position: Int) {
if(images.size == 0) { return }
var image=images[position] var image=images[position]
holder.image.setImageDrawable (null) holder.image.setImageDrawable (null)
if (context.contentResolver.getType(image.uri) == null) { if (context.contentResolver.getType(image.uri) == null) {

View file

@ -116,11 +116,14 @@ class FolderFragment : CommonsDaggerSupportFragment() {
private fun handleResult(result: Result) { private fun handleResult(result: Result) {
if(result.status is CallbackStatus.SUCCESS){ if(result.status is CallbackStatus.SUCCESS){
val images = result.images val images = result.images
if(images.isNullOrEmpty()) if(images.isEmpty()){
{
binding?.emptyText?.let { binding?.emptyText?.let {
it.visibility = View.VISIBLE it.visibility = View.VISIBLE
} }
} else {
binding?.emptyText?.let {
it.visibility = View.GONE
}
} }
folders = ImageHelper.folderListFromImages(result.images) folders = ImageHelper.folderListFromImages(result.images)
folderAdapter.init(folders) folderAdapter.init(folders)

View file

@ -39,6 +39,7 @@ import fr.free.nrw.commons.upload.FileUtilsWrapper
import io.reactivex.schedulers.Schedulers import io.reactivex.schedulers.Schedulers
import java.util.* import java.util.*
import javax.inject.Inject import javax.inject.Inject
import kotlin.collections.ArrayList
/** /**
* Custom Selector Image Fragment. * Custom Selector Image Fragment.
@ -279,6 +280,8 @@ class ImageFragment : CommonsDaggerSupportFragment(), RefreshUIListener, PassDat
} }
} }
} else { } else {
filteredImages = ArrayList()
allImages = filteredImages
binding?.emptyText?.let { binding?.emptyText?.let {
it.visibility = View.VISIBLE it.visibility = View.VISIBLE
} }
@ -324,7 +327,7 @@ class ImageFragment : CommonsDaggerSupportFragment(), RefreshUIListener, PassDat
.findFirstVisibleItemPosition() .findFirstVisibleItemPosition()
// Check for empty RecyclerView. // Check for empty RecyclerView.
if (position != -1) { if (position != -1 && filteredImages.size > 0) {
context?.let { context -> context?.let { context ->
context.getSharedPreferences( context.getSharedPreferences(
"CustomSelector", "CustomSelector",