From 076b9b2aefe260b95e97ca5270e04ce66b04319b Mon Sep 17 00:00:00 2001 From: Marcel Hibbe Date: Wed, 26 Apr 2023 11:30:14 +0200 Subject: [PATCH] pass "replace" as parameter to load*Avatar methods Signed-off-by: Marcel Hibbe --- .../activities/CallNotificationActivity.kt | 4 +- .../talk/adapters/ReactionsViewHolder.kt | 5 ++- .../talk/adapters/items/AdvancedUserItem.java | 3 +- .../talk/adapters/items/ContactItem.java | 7 ++-- .../talk/adapters/items/ConversationItem.kt | 10 ++--- .../items/MentionAutocompleteItem.java | 8 ++-- .../talk/adapters/items/ParticipantItem.java | 8 ++-- .../info/ConversationInfoActivity.kt | 6 +-- .../info/ConversationInfoEditActivity.kt | 6 +-- .../talk/extensions/ImageViewExtensions.kt | 39 +++++++------------ .../adapters/PollResultVoterViewHolder.kt | 4 +- .../PollResultVotersOverviewViewHolder.kt | 4 +- .../dialog/ChooseAccountDialogFragment.java | 3 +- .../ChooseAccountShareToDialogFragment.kt | 4 +- .../nextcloud/talk/utils/DisplayUtils.java | 6 +-- 15 files changed, 52 insertions(+), 65 deletions(-) diff --git a/app/src/main/java/com/nextcloud/talk/activities/CallNotificationActivity.kt b/app/src/main/java/com/nextcloud/talk/activities/CallNotificationActivity.kt index a33e0c574..c7eacc2cb 100644 --- a/app/src/main/java/com/nextcloud/talk/activities/CallNotificationActivity.kt +++ b/app/src/main/java/com/nextcloud/talk/activities/CallNotificationActivity.kt @@ -39,7 +39,7 @@ import com.nextcloud.talk.application.NextcloudTalkApplication import com.nextcloud.talk.application.NextcloudTalkApplication.Companion.sharedApplication import com.nextcloud.talk.data.user.model.User import com.nextcloud.talk.databinding.CallNotificationActivityBinding -import com.nextcloud.talk.extensions.loadAvatar +import com.nextcloud.talk.extensions.loadUserAvatar import com.nextcloud.talk.models.json.conversations.Conversation import com.nextcloud.talk.models.json.conversations.RoomOverall import com.nextcloud.talk.models.json.participants.Participant @@ -249,7 +249,7 @@ class CallNotificationActivity : CallBaseActivity() { private fun setUpAfterConversationIsKnown() { binding!!.conversationNameTextView.text = currentConversation!!.displayName if (currentConversation!!.type === Conversation.ConversationType.ROOM_TYPE_ONE_TO_ONE_CALL) { - binding!!.avatarImageView.loadAvatar(userBeingCalled!!, currentConversation!!.name!!) + binding!!.avatarImageView.loadUserAvatar(userBeingCalled!!, currentConversation!!.name!!, true, false) } else { binding!!.avatarImageView.setImageResource(R.drawable.ic_circular_group) } diff --git a/app/src/main/java/com/nextcloud/talk/adapters/ReactionsViewHolder.kt b/app/src/main/java/com/nextcloud/talk/adapters/ReactionsViewHolder.kt index 2f9071ae0..dcd26f53f 100644 --- a/app/src/main/java/com/nextcloud/talk/adapters/ReactionsViewHolder.kt +++ b/app/src/main/java/com/nextcloud/talk/adapters/ReactionsViewHolder.kt @@ -26,8 +26,8 @@ import com.nextcloud.talk.R import com.nextcloud.talk.application.NextcloudTalkApplication.Companion.sharedApplication import com.nextcloud.talk.data.user.model.User import com.nextcloud.talk.databinding.ReactionItemBinding -import com.nextcloud.talk.extensions.loadAvatar import com.nextcloud.talk.extensions.loadGuestAvatar +import com.nextcloud.talk.extensions.loadUserAvatar import com.nextcloud.talk.models.json.reactions.ReactionVoter class ReactionsViewHolder( @@ -53,9 +53,10 @@ class ReactionsViewHolder( } binding.avatar.loadGuestAvatar(user!!.baseUrl!!, displayName!!, false) } else if (reactionItem.reactionVoter.actorType == ReactionVoter.ReactionActorType.USERS) { - binding.avatar.loadAvatar( + binding.avatar.loadUserAvatar( user!!, reactionItem.reactionVoter.actorId!!, + false, false ) } diff --git a/app/src/main/java/com/nextcloud/talk/adapters/items/AdvancedUserItem.java b/app/src/main/java/com/nextcloud/talk/adapters/items/AdvancedUserItem.java index a5ac03a25..bb82cfa26 100644 --- a/app/src/main/java/com/nextcloud/talk/adapters/items/AdvancedUserItem.java +++ b/app/src/main/java/com/nextcloud/talk/adapters/items/AdvancedUserItem.java @@ -128,7 +128,8 @@ public class AdvancedUserItem extends AbstractFlexibleItem { if (!TextUtils.isEmpty(model.name)) { - holder.binding.dialogAvatar.loadAvatar(user, model.name!!) + holder.binding.dialogAvatar.loadUserAvatar(user, model.name!!, true, false) } else { holder.binding.dialogAvatar.visibility = View.GONE } @@ -179,7 +179,7 @@ class ConversationItem( ConversationType.ROOM_GROUP_CALL, ConversationType.FORMER_ONE_TO_ONE, ConversationType.ROOM_PUBLIC_CALL -> - holder.binding.dialogAvatar.loadConversationAvatar(user, model) + holder.binding.dialogAvatar.loadConversationAvatar(user, model, true) else -> holder.binding.dialogAvatar.visibility = View.GONE } @@ -202,14 +202,14 @@ class ConversationItem( Conversation.ObjectType.FILE -> { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { - holder.binding.dialogAvatar.loadAvatar( + holder.binding.dialogAvatar.loadUserAvatar( viewThemeUtils.talk.themePlaceholderAvatar( holder.binding.dialogAvatar, R.drawable.ic_avatar_document ) ) } else { - holder.binding.dialogAvatar.loadAvatar( + holder.binding.dialogAvatar.loadUserAvatar( R.drawable.ic_circular_document ) } diff --git a/app/src/main/java/com/nextcloud/talk/adapters/items/MentionAutocompleteItem.java b/app/src/main/java/com/nextcloud/talk/adapters/items/MentionAutocompleteItem.java index b0f5f0e55..5286eed22 100644 --- a/app/src/main/java/com/nextcloud/talk/adapters/items/MentionAutocompleteItem.java +++ b/app/src/main/java/com/nextcloud/talk/adapters/items/MentionAutocompleteItem.java @@ -157,22 +157,22 @@ public class MentionAutocompleteItem extends AbstractFlexibleItem= Build.VERSION_CODES.O) { - ImageViewExtensionsKt.loadAvatar( + ImageViewExtensionsKt.loadUserAvatar( holder.binding.avatarView, viewThemeUtils.talk.themePlaceholderAvatar( holder.binding.avatarView, R.drawable.ic_avatar_group ) - ); + ); } else { - ImageViewExtensionsKt.loadAvatar(holder.binding.avatarView, R.drawable.ic_circular_group); + ImageViewExtensionsKt.loadUserAvatar(holder.binding.avatarView, R.drawable.ic_circular_group); } } else { String avatarId = objectId; if (SOURCE_GUESTS.equals(source)) { avatarId = displayName; } - ImageViewExtensionsKt.loadAvatar(holder.binding.avatarView, currentUser, avatarId, true); + ImageViewExtensionsKt.loadUserAvatar(holder.binding.avatarView, currentUser, avatarId, true, false); } drawStatus(holder); diff --git a/app/src/main/java/com/nextcloud/talk/adapters/items/ParticipantItem.java b/app/src/main/java/com/nextcloud/talk/adapters/items/ParticipantItem.java index 532c0f8ee..dca244ea1 100644 --- a/app/src/main/java/com/nextcloud/talk/adapters/items/ParticipantItem.java +++ b/app/src/main/java/com/nextcloud/talk/adapters/items/ParticipantItem.java @@ -168,10 +168,10 @@ public class ParticipantItem extends AbstractFlexibleItem if (!TextUtils.isEmpty(conversation!!.name)) { - conversation!!.name?.let { binding.avatarImage.loadAvatar(conversationUser, it) } + conversation!!.name?.let { binding.avatarImage.loadUserAvatar(conversationUser, it, true, false) } } Conversation.ConversationType.ROOM_GROUP_CALL, Conversation.ConversationType.ROOM_PUBLIC_CALL -> { - binding.avatarImage.loadConversationAvatar(conversationUser, conversation!!) + binding.avatarImage.loadConversationAvatar(conversationUser, conversation!!, false) } Conversation.ConversationType.ROOM_SYSTEM -> { diff --git a/app/src/main/java/com/nextcloud/talk/conversation/info/ConversationInfoEditActivity.kt b/app/src/main/java/com/nextcloud/talk/conversation/info/ConversationInfoEditActivity.kt index fb8c81180..69aa558ad 100644 --- a/app/src/main/java/com/nextcloud/talk/conversation/info/ConversationInfoEditActivity.kt +++ b/app/src/main/java/com/nextcloud/talk/conversation/info/ConversationInfoEditActivity.kt @@ -39,9 +39,9 @@ import com.nextcloud.talk.api.NcApi import com.nextcloud.talk.application.NextcloudTalkApplication import com.nextcloud.talk.data.user.model.User import com.nextcloud.talk.databinding.ActivityConversationInfoEditBinding -import com.nextcloud.talk.extensions.loadAvatar import com.nextcloud.talk.extensions.loadConversationAvatar import com.nextcloud.talk.extensions.loadSystemAvatar +import com.nextcloud.talk.extensions.loadUserAvatar import com.nextcloud.talk.models.json.conversations.Conversation import com.nextcloud.talk.models.json.generic.GenericOverall import com.nextcloud.talk.repositories.conversations.ConversationsRepository @@ -352,11 +352,11 @@ class ConversationInfoEditActivity : private fun loadConversationAvatar() { when (conversation!!.type) { Conversation.ConversationType.ROOM_TYPE_ONE_TO_ONE_CALL -> if (!TextUtils.isEmpty(conversation!!.name)) { - conversation!!.name?.let { binding.avatarImage.loadAvatar(conversationUser, it) } + conversation!!.name?.let { binding.avatarImage.loadUserAvatar(conversationUser, it, true, false) } } Conversation.ConversationType.ROOM_GROUP_CALL, Conversation.ConversationType.ROOM_PUBLIC_CALL -> { - binding.avatarImage.loadConversationAvatar(conversationUser, conversation!!) + binding.avatarImage.loadConversationAvatar(conversationUser, conversation!!, true) } Conversation.ConversationType.ROOM_SYSTEM -> { diff --git a/app/src/main/java/com/nextcloud/talk/extensions/ImageViewExtensions.kt b/app/src/main/java/com/nextcloud/talk/extensions/ImageViewExtensions.kt index fad425fbe..19a41cba2 100644 --- a/app/src/main/java/com/nextcloud/talk/extensions/ImageViewExtensions.kt +++ b/app/src/main/java/com/nextcloud/talk/extensions/ImageViewExtensions.kt @@ -51,7 +51,8 @@ private const val TAG = "ImageViewExtensions" fun ImageView.loadConversationAvatar( user: User, - conversation: Conversation + conversation: Conversation, + replace: Boolean ): io.reactivex.disposables .Disposable { val imageRequestUri = ApiUtils.getUrlForConversationAvatar( @@ -73,37 +74,23 @@ fun ImageView.loadConversationAvatar( else -> ContextCompat.getDrawable(context, R.drawable.account_circle_96dp) } - return loadAvatarInternal(user, imageRequestUri, false, placeholder) + return loadAvatarInternal(user, imageRequestUri, replace, placeholder) } -fun ImageView.loadAvatar( +fun ImageView.loadUserAvatar( user: User, - avatar: String, - requestBigSize: Boolean = true + avatarId: String, + requestBigSize: Boolean = true, + replace: Boolean ): io.reactivex.disposables .Disposable { val imageRequestUri = ApiUtils.getUrlForAvatar( user.baseUrl, - avatar, + avatarId, requestBigSize ) - return loadAvatarInternal(user, imageRequestUri, false, null) -} - -fun ImageView.replaceAvatar( - user: User, - avatar: String, - requestBigSize: Boolean = true -): io.reactivex.disposables -.Disposable { - val imageRequestUri = ApiUtils.getUrlForAvatar( - user.baseUrl, - avatar, - requestBigSize - ) - - return loadAvatarInternal(user, imageRequestUri, true, null) + return loadAvatarInternal(user, imageRequestUri, replace, null) } @OptIn(ExperimentalCoilApi::class) @@ -218,7 +205,7 @@ fun ImageView.loadAvatarOrImagePreview(url: String, user: User, placeholder: Dra } } -fun ImageView.loadAvatar(any: Any?): io.reactivex.disposables.Disposable { +fun ImageView.loadUserAvatar(any: Any?): io.reactivex.disposables.Disposable { return DisposableWrapper( load(any) { transformations(CircleCropTransformation()) @@ -249,7 +236,7 @@ fun ImageView.loadChangelogBotAvatar(): io.reactivex.disposables.Disposable { } fun ImageView.loadBotsAvatar(): io.reactivex.disposables.Disposable { - return loadAvatar( + return loadUserAvatar( TextDrawable.builder() .beginConfig() .bold() @@ -267,7 +254,7 @@ fun ImageView.loadDefaultGroupCallAvatar(viewThemeUtils: ViewThemeUtils): io.rea } else { R.drawable.ic_circular_group } - return loadAvatar(data) + return loadUserAvatar(data) } fun ImageView.loadMailAvatar(viewThemeUtils: ViewThemeUtils): io.reactivex.disposables.Disposable { @@ -276,7 +263,7 @@ fun ImageView.loadMailAvatar(viewThemeUtils: ViewThemeUtils): io.reactivex.dispo } else { R.drawable.ic_circular_mail } - return loadAvatar(data) + return loadUserAvatar(data) } fun ImageView.loadGuestAvatar(user: User, name: String, big: Boolean): io.reactivex.disposables.Disposable { diff --git a/app/src/main/java/com/nextcloud/talk/polls/adapters/PollResultVoterViewHolder.kt b/app/src/main/java/com/nextcloud/talk/polls/adapters/PollResultVoterViewHolder.kt index bc415f4e2..fd356c7af 100644 --- a/app/src/main/java/com/nextcloud/talk/polls/adapters/PollResultVoterViewHolder.kt +++ b/app/src/main/java/com/nextcloud/talk/polls/adapters/PollResultVoterViewHolder.kt @@ -27,8 +27,8 @@ import com.nextcloud.talk.R import com.nextcloud.talk.application.NextcloudTalkApplication import com.nextcloud.talk.data.user.model.User import com.nextcloud.talk.databinding.PollResultVoterItemBinding -import com.nextcloud.talk.extensions.loadAvatar import com.nextcloud.talk.extensions.loadGuestAvatar +import com.nextcloud.talk.extensions.loadUserAvatar import com.nextcloud.talk.polls.model.PollDetails import com.nextcloud.talk.ui.theme.ViewThemeUtils @@ -57,7 +57,7 @@ class PollResultVoterViewHolder( } avatar.loadGuestAvatar(user, displayName!!, false) } else if (pollDetail.actorType == "users") { - avatar.loadAvatar(user, pollDetail.actorId!!, false) + avatar.loadUserAvatar(user, pollDetail.actorId!!, false, false) } } } diff --git a/app/src/main/java/com/nextcloud/talk/polls/adapters/PollResultVotersOverviewViewHolder.kt b/app/src/main/java/com/nextcloud/talk/polls/adapters/PollResultVotersOverviewViewHolder.kt index d934115fb..878b1b15c 100644 --- a/app/src/main/java/com/nextcloud/talk/polls/adapters/PollResultVotersOverviewViewHolder.kt +++ b/app/src/main/java/com/nextcloud/talk/polls/adapters/PollResultVotersOverviewViewHolder.kt @@ -31,8 +31,8 @@ import com.nextcloud.talk.R import com.nextcloud.talk.application.NextcloudTalkApplication import com.nextcloud.talk.data.user.model.User import com.nextcloud.talk.databinding.PollResultVotersOverviewItemBinding -import com.nextcloud.talk.extensions.loadAvatar import com.nextcloud.talk.extensions.loadGuestAvatar +import com.nextcloud.talk.extensions.loadUserAvatar import com.nextcloud.talk.polls.model.PollDetails class PollResultVotersOverviewViewHolder( @@ -88,7 +88,7 @@ class PollResultVotersOverviewViewHolder( } avatar.loadGuestAvatar(user, displayName!!, false) } else if (pollDetail.actorType == "users") { - avatar.loadAvatar(user, pollDetail.actorId!!, false) + avatar.loadUserAvatar(user, pollDetail.actorId!!, false, false) } } diff --git a/app/src/main/java/com/nextcloud/talk/ui/dialog/ChooseAccountDialogFragment.java b/app/src/main/java/com/nextcloud/talk/ui/dialog/ChooseAccountDialogFragment.java index 6de4ddd30..e5f1cb6c1 100644 --- a/app/src/main/java/com/nextcloud/talk/ui/dialog/ChooseAccountDialogFragment.java +++ b/app/src/main/java/com/nextcloud/talk/ui/dialog/ChooseAccountDialogFragment.java @@ -136,7 +136,8 @@ public class ChooseAccountDialogFragment extends DialogFragment { if (user.getBaseUrl() != null && (user.getBaseUrl().startsWith("http://") || user.getBaseUrl().startsWith("https://"))) { binding.currentAccount.userIcon.setVisibility(View.VISIBLE); - ImageViewExtensionsKt.loadAvatar(binding.currentAccount.userIcon, user, user.getUserId(), true); + ImageViewExtensionsKt.loadUserAvatar(binding.currentAccount.userIcon, user, user.getUserId(), true, + false); } else { binding.currentAccount.userIcon.setVisibility(View.INVISIBLE); } diff --git a/app/src/main/java/com/nextcloud/talk/ui/dialog/ChooseAccountShareToDialogFragment.kt b/app/src/main/java/com/nextcloud/talk/ui/dialog/ChooseAccountShareToDialogFragment.kt index 330eb2741..e83937f81 100644 --- a/app/src/main/java/com/nextcloud/talk/ui/dialog/ChooseAccountShareToDialogFragment.kt +++ b/app/src/main/java/com/nextcloud/talk/ui/dialog/ChooseAccountShareToDialogFragment.kt @@ -40,7 +40,7 @@ import com.nextcloud.talk.application.NextcloudTalkApplication import com.nextcloud.talk.application.NextcloudTalkApplication.Companion.sharedApplication import com.nextcloud.talk.data.user.model.User import com.nextcloud.talk.databinding.DialogChooseAccountShareToBinding -import com.nextcloud.talk.extensions.loadAvatar +import com.nextcloud.talk.extensions.loadUserAvatar import com.nextcloud.talk.models.json.participants.Participant import com.nextcloud.talk.ui.theme.ViewThemeUtils import com.nextcloud.talk.users.UserManager @@ -95,7 +95,7 @@ class ChooseAccountShareToDialogFragment : DialogFragment() { if (user.baseUrl != null && (user.baseUrl!!.startsWith("http://") || user.baseUrl!!.startsWith("https://")) ) { - binding!!.currentAccount.userIcon.loadAvatar(user, user.userId!!) + binding!!.currentAccount.userIcon.loadUserAvatar(user, user.userId!!, true, false) } else { binding!!.currentAccount.userIcon.visibility = View.INVISIBLE } diff --git a/app/src/main/java/com/nextcloud/talk/utils/DisplayUtils.java b/app/src/main/java/com/nextcloud/talk/utils/DisplayUtils.java index f5a649dfc..ceeea1aa5 100644 --- a/app/src/main/java/com/nextcloud/talk/utils/DisplayUtils.java +++ b/app/src/main/java/com/nextcloud/talk/utils/DisplayUtils.java @@ -468,11 +468,7 @@ public class DisplayUtils { } if (avatarId != null) { - if (deleteCache) { - ImageViewExtensionsKt.replaceAvatar(avatarImageView, user, avatarId, true); - } else { - ImageViewExtensionsKt.loadAvatar(avatarImageView, user, avatarId, true); - } + ImageViewExtensionsKt.loadUserAvatar(avatarImageView, user, avatarId, true, deleteCache); } } }