From 258a334de33637e86d47a9eec106fd666a653d78 Mon Sep 17 00:00:00 2001 From: 0x330a <92654767+0x330a@users.noreply.github.com> Date: Wed, 12 Jul 2023 11:59:16 +1000 Subject: [PATCH] fix: compiles with removal of iterator erase --- .../components/ProfilePictureView.kt | 22 +++++++++---------- libsession-util/src/main/cpp/conversation.cpp | 12 ++++++---- 2 files changed, 19 insertions(+), 15 deletions(-) diff --git a/app/src/main/java/org/thoughtcrime/securesms/components/ProfilePictureView.kt b/app/src/main/java/org/thoughtcrime/securesms/components/ProfilePictureView.kt index 0a6bd2ac4..a8dada3ab 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/components/ProfilePictureView.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/components/ProfilePictureView.kt @@ -32,10 +32,10 @@ class ProfilePictureView @JvmOverloads constructor( var isLarge = false private val profilePicturesCache = mutableMapOf() - private val unknownRecipientDrawable = ResourceContactPhoto(R.drawable.ic_profile_default) - .asDrawable(context, ContactColors.UNKNOWN_COLOR.toConversationColor(context), false) - private val unknownOpenGroupDrawable = ResourceContactPhoto(R.drawable.ic_notification) - .asDrawable(context, ContactColors.UNKNOWN_COLOR.toConversationColor(context), false) + private val unknownRecipientDrawable by lazy { ResourceContactPhoto(R.drawable.ic_profile_default) + .asDrawable(context, ContactColors.UNKNOWN_COLOR.toConversationColor(context), false) } + private val unknownOpenGroupDrawable by lazy { ResourceContactPhoto(R.drawable.ic_notification) + .asDrawable(context, ContactColors.UNKNOWN_COLOR.toConversationColor(context), false) } // endregion @@ -120,7 +120,7 @@ class ProfilePictureView @JvmOverloads constructor( if (signalProfilePicture != null && avatar != "0" && avatar != "") { glide.clear(imageView) glide.load(signalProfilePicture) - .placeholder(R.drawable.ic_profile_default) + .placeholder(unknownRecipientDrawable) .centerCrop() .error(glide.load(placeholder)) .diskCacheStrategy(DiskCacheStrategy.NONE) @@ -128,20 +128,20 @@ class ProfilePictureView @JvmOverloads constructor( .into(imageView) } else if (recipient.isOpenGroupRecipient && recipient.groupAvatarId == null) { glide.clear(imageView) - glide.load(R.drawable.ic_notification) - .centerCrop() + glide.load(unknownOpenGroupDrawable) + .circleCrop() .into(imageView) } else { glide.clear(imageView) glide.load(placeholder) - .placeholder(R.drawable.ic_profile_default) - .centerCrop() + .placeholder(unknownRecipientDrawable) + .circleCrop() .diskCacheStrategy(DiskCacheStrategy.NONE).circleCrop().into(imageView) } profilePicturesCache[publicKey] = recipient.profileAvatar } else { - glide.load(R.drawable.ic_profile_default) - .centerInside() + glide.load(unknownRecipientDrawable) + .circleCrop() .into(imageView) } } diff --git a/libsession-util/src/main/cpp/conversation.cpp b/libsession-util/src/main/cpp/conversation.cpp index 90074c863..364c06dd1 100644 --- a/libsession-util/src/main/cpp/conversation.cpp +++ b/libsession-util/src/main/cpp/conversation.cpp @@ -58,15 +58,19 @@ Java_network_loki_messenger_libsession_1util_ConversationVolatileConfig_eraseAll jmethodID bool_get = env->GetMethodID(bool_class, "booleanValue", "()Z"); int removed = 0; + auto to_erase = std::vector(); - for (auto it = conversations->begin(); it != conversations->end(); ) { + for (auto it = conversations->begin(); it != conversations->end(); ++it) { auto result = env->CallObjectMethod(predicate, predicate_call, serialize_any(env, *it)); bool bool_result = env->CallBooleanMethod(result, bool_get); if (bool_result) { - it = conversations->erase(it); + to_erase.push_back(*it); + } + } + + for (auto & entry : to_erase) { + if (conversations->erase(entry)) { removed++; - } else { - ++it; } }