mirror of
https://github.com/nextcloud/talk-android
synced 2025-03-06 14:27:24 +00:00
pass "replace" as parameter to load*Avatar methods
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
This commit is contained in:
parent
5a56d8c614
commit
076b9b2aef
@ -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)
|
||||
}
|
||||
|
@ -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
|
||||
)
|
||||
}
|
||||
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
)
|
||||
}
|
||||
|
@ -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);
|
||||
|
@ -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();
|
||||
|
@ -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 -> {
|
||||
|
@ -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 -> {
|
||||
|
@ -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 {
|
||||
|
@ -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)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -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)
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -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);
|
||||
}
|
||||
|
@ -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
|
||||
}
|
||||
|
@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user