Browse Source

pass "replace" as parameter to load*Avatar methods

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
Marcel Hibbe 2 years ago
parent
commit
076b9b2aef

+ 2 - 2
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)
         }

+ 3 - 2
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
             )
         }

+ 2 - 1
app/src/main/java/com/nextcloud/talk/adapters/items/AdvancedUserItem.java

@@ -128,7 +128,8 @@ public class AdvancedUserItem extends AbstractFlexibleItem<AdvancedUserItem.User
         if (user != null &&
             user.getBaseUrl() != null &&
             (user.getBaseUrl().startsWith("http://") || user.getBaseUrl().startsWith("https://"))) {
-            ImageViewExtensionsKt.loadAvatar(holder.binding.userIcon, user, participant.getCalculatedActorId(), true);
+            ImageViewExtensionsKt.loadUserAvatar(holder.binding.userIcon, user, participant.getCalculatedActorId(),
+                                                 true, false);
         }
     }
 

+ 4 - 3
app/src/main/java/com/nextcloud/talk/adapters/items/ContactItem.java

@@ -181,10 +181,11 @@ public class ContactItem extends AbstractFlexibleItem<ContactItem.ContactItemVie
                 displayName = "Guest";
             }
 
-            ImageViewExtensionsKt.loadAvatar(holder.binding.avatarView, user, displayName, true);
+            ImageViewExtensionsKt.loadUserAvatar(holder.binding.avatarView, user, displayName, true, false);
         } else if (participant.getCalculatedActorType() == Participant.ActorType.USERS ||
             PARTICIPANT_SOURCE_USERS.equals(participant.getSource())) {
-            ImageViewExtensionsKt.loadAvatar(holder.binding.avatarView, user, participant.getCalculatedActorId(), true);
+            ImageViewExtensionsKt.loadUserAvatar(holder.binding.avatarView, user, participant.getCalculatedActorId(),
+                                                 true, false);
         }
     }
 
@@ -203,7 +204,7 @@ public class ContactItem extends AbstractFlexibleItem<ContactItem.ContactItemVie
             avatar = fallbackImageResource;
         }
 
-        ImageViewExtensionsKt.loadAvatar(holder.binding.avatarView, avatar);
+        ImageViewExtensionsKt.loadUserAvatar(holder.binding.avatarView, avatar);
     }
 
     @Override

+ 5 - 5
app/src/main/java/com/nextcloud/talk/adapters/items/ConversationItem.kt

@@ -40,9 +40,9 @@ import com.nextcloud.talk.adapters.items.ConversationItem.ConversationItemViewHo
 import com.nextcloud.talk.application.NextcloudTalkApplication.Companion.sharedApplication
 import com.nextcloud.talk.data.user.model.User
 import com.nextcloud.talk.databinding.RvItemConversationWithLastMessageBinding
-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.chat.ChatMessage
 import com.nextcloud.talk.models.json.conversations.Conversation
 import com.nextcloud.talk.models.json.conversations.Conversation.ConversationType
@@ -170,7 +170,7 @@ class ConversationItem(
             when (model.type) {
                 ConversationType.ROOM_TYPE_ONE_TO_ONE_CALL -> {
                     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
                     )
                 }

+ 4 - 4
app/src/main/java/com/nextcloud/talk/adapters/items/MentionAutocompleteItem.java

@@ -157,22 +157,22 @@ public class MentionAutocompleteItem extends AbstractFlexibleItem<ParticipantIte
 
         if (SOURCE_CALLS.equals(source) || SOURCE_GROUPS.equals(source)) {
             if (Build.VERSION.SDK_INT >= 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);

+ 4 - 4
app/src/main/java/com/nextcloud/talk/adapters/items/ParticipantItem.java

@@ -168,10 +168,10 @@ public class ParticipantItem extends AbstractFlexibleItem<ParticipantItem.Partic
 
         } else if (participant.getCalculatedActorType() == Participant.ActorType.USERS ||
             "users".equals(participant.getSource())) {
-            ImageViewExtensionsKt.loadAvatar(holder.binding.avatarView,
-                                             user,
-                                             participant.getCalculatedActorId(),
-                                             true);
+            ImageViewExtensionsKt.loadUserAvatar(holder.binding.avatarView,
+                                                 user,
+                                                 participant.getCalculatedActorId(),
+                                                 true, false);
         }
 
         Resources resources = NextcloudTalkApplication.Companion.getSharedApplication().getResources();

+ 3 - 3
app/src/main/java/com/nextcloud/talk/conversation/info/ConversationInfoActivity.kt

@@ -62,9 +62,9 @@ import com.nextcloud.talk.controllers.bottomsheet.items.listItemsWithImage
 import com.nextcloud.talk.data.user.model.User
 import com.nextcloud.talk.databinding.ActivityConversationInfoBinding
 import com.nextcloud.talk.events.EventStatus
-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.jobs.DeleteConversationWorker
 import com.nextcloud.talk.jobs.LeaveConversationWorker
 import com.nextcloud.talk.models.json.conversations.Conversation
@@ -800,11 +800,11 @@ class ConversationInfoActivity :
     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!!, false)
             }
 
             Conversation.ConversationType.ROOM_SYSTEM -> {

+ 3 - 3
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 -> {

+ 13 - 26
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 {

+ 2 - 2
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)
         }
     }
 }

+ 2 - 2
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)
         }
     }
 

+ 2 - 1
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);
             }

+ 2 - 2
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
             }

+ 1 - 5
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);
             }
         }
     }