mirror of
https://github.com/commons-app/apps-android-commons.git
synced 2025-10-31 23:03:54 +01:00
refactor: prevent app from crashing for SDKs >= 34
This commit is contained in:
parent
f8d164b6a2
commit
ad1074a84a
4 changed files with 16 additions and 8 deletions
|
|
@ -62,14 +62,16 @@ 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)
|
||||||
|
if(updatePosition != -1) {
|
||||||
folders.removeAt(updatePosition)
|
folders.removeAt(updatePosition)
|
||||||
notifyItemRemoved(updatePosition)
|
notifyItemRemoved(updatePosition)
|
||||||
notifyItemRangeChanged(updatePosition, folders.size)
|
notifyItemRangeChanged(updatePosition, folders.size)
|
||||||
}
|
}
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
val previewImage = folder.images[0]
|
val previewImage = folder.images[0]
|
||||||
Glide.with(holder.image).load(previewImage.uri).into(holder.image)
|
Glide.with(holder.image).load(previewImage.uri).into(holder.image)
|
||||||
|
|
|
||||||
|
|
@ -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) {
|
||||||
|
|
|
||||||
|
|
@ -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)
|
||||||
|
|
|
||||||
|
|
@ -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",
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue