mirror of
https://github.com/nextcloud/talk-android
synced 2025-07-28 07:05:41 +01:00
parent
c831b90a09
commit
3ac3a3b965
@ -175,10 +175,13 @@ public class ConversationItem extends AbstractFlexibleItem<ConversationItem.Conv
|
||||
authorDisplayName = NextcloudTalkApplication.Companion.getSharedApplication().getString(R.string.nc_guest);
|
||||
}
|
||||
holder.dialogLastMessageUserAvatar.setVisibility(View.VISIBLE);
|
||||
TextDrawable drawable = TextDrawable.builder().beginConfig().bold()
|
||||
.endConfig().buildRound(String.valueOf(authorDisplayName.charAt(0)),
|
||||
context.getResources().getColor(R.color.nc_grey));
|
||||
holder.dialogLastMessageUserAvatar.getHierarchy().setImage(drawable, 100, true);
|
||||
|
||||
DraweeController draweeController = Fresco.newDraweeControllerBuilder()
|
||||
.setOldController(holder.dialogLastMessageUserAvatar.getController())
|
||||
.setAutoPlayAnimations(true)
|
||||
.setImageRequest(DisplayUtils.getImageRequestForUrl(ApiUtils.getUrlForAvatarWithNameForGuests(userEntity.getBaseUrl(), authorDisplayName, R.dimen.small_item_height), userEntity))
|
||||
.build();
|
||||
holder.dialogLastMessageUserAvatar.setController(draweeController);
|
||||
} else if (conversation.getLastMessage().getActorId().equals(userEntity.getUserId())
|
||||
|| !conversation.getType().equals(Conversation.ConversationType.ROOM_TYPE_ONE_TO_ONE_CALL)) {
|
||||
holder.dialogLastMessageUserAvatar.setVisibility(View.VISIBLE);
|
||||
|
@ -22,6 +22,7 @@ package com.nextcloud.talk.adapters.items;
|
||||
|
||||
import android.annotation.SuppressLint;
|
||||
import android.view.View;
|
||||
|
||||
import com.facebook.drawee.backends.pipeline.Fresco;
|
||||
import com.facebook.drawee.interfaces.DraweeController;
|
||||
import com.nextcloud.talk.R;
|
||||
@ -29,15 +30,16 @@ import com.nextcloud.talk.application.NextcloudTalkApplication;
|
||||
import com.nextcloud.talk.models.database.UserEntity;
|
||||
import com.nextcloud.talk.utils.ApiUtils;
|
||||
import com.nextcloud.talk.utils.DisplayUtils;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.regex.Pattern;
|
||||
|
||||
import eu.davidea.flexibleadapter.FlexibleAdapter;
|
||||
import eu.davidea.flexibleadapter.items.AbstractFlexibleItem;
|
||||
import eu.davidea.flexibleadapter.items.IFilterable;
|
||||
import eu.davidea.flexibleadapter.items.IFlexible;
|
||||
import eu.davidea.flexibleadapter.utils.FlexibleUtils;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.regex.Pattern;
|
||||
|
||||
public class MentionAutocompleteItem extends AbstractFlexibleItem<UserItem.UserItemViewHolder>
|
||||
implements IFilterable<String> {
|
||||
|
||||
@ -113,12 +115,20 @@ public class MentionAutocompleteItem extends AbstractFlexibleItem<UserItem.UserI
|
||||
if (source.equals("calls")) {
|
||||
holder.simpleDraweeView.getHierarchy().setPlaceholderImage(DisplayUtils.getRoundedBitmapDrawableFromVectorDrawableResource(NextcloudTalkApplication.Companion.getSharedApplication().getResources(), R.drawable.ic_people_group_white_24px));
|
||||
} else {
|
||||
holder.simpleDraweeView.setController(null);
|
||||
String avatarId = objectId;
|
||||
String avatarUrl = ApiUtils.getUrlForAvatarWithName(currentUser.getBaseUrl(),
|
||||
avatarId, R.dimen.avatar_size_big);
|
||||
|
||||
if (source.equals("guests")) {
|
||||
avatarId = displayName;
|
||||
avatarUrl = ApiUtils.getUrlForAvatarWithNameForGuests(currentUser.getBaseUrl(), avatarId, R.dimen.avatar_size_big);
|
||||
}
|
||||
|
||||
holder.simpleDraweeView.setController(null);
|
||||
DraweeController draweeController = Fresco.newDraweeControllerBuilder()
|
||||
.setOldController(holder.simpleDraweeView.getController())
|
||||
.setAutoPlayAnimations(true)
|
||||
.setImageRequest(DisplayUtils.getImageRequestForUrl(ApiUtils.getUrlForAvatarWithName(currentUser.getBaseUrl(),
|
||||
objectId, R.dimen.avatar_size_big), null))
|
||||
.setImageRequest(DisplayUtils.getImageRequestForUrl(avatarUrl, null))
|
||||
.build();
|
||||
holder.simpleDraweeView.setController(draweeController);
|
||||
}
|
||||
|
@ -40,6 +40,9 @@ import com.nextcloud.talk.models.json.converters.EnumParticipantTypeConverter;
|
||||
import com.nextcloud.talk.models.json.participants.Participant;
|
||||
import com.nextcloud.talk.utils.ApiUtils;
|
||||
import com.nextcloud.talk.utils.DisplayUtils;
|
||||
|
||||
import org.w3c.dom.Text;
|
||||
|
||||
import eu.davidea.flexibleadapter.FlexibleAdapter;
|
||||
import eu.davidea.flexibleadapter.items.AbstractFlexibleItem;
|
||||
import eu.davidea.flexibleadapter.items.IFilterable;
|
||||
@ -122,20 +125,33 @@ public class UserItem extends AbstractFlexibleItem<UserItem.UserItemViewHolder>
|
||||
FlexibleUtils.highlightText(holder.contactDisplayName, participant.getDisplayName(),
|
||||
String.valueOf(adapter.getFilter(String.class)), NextcloudTalkApplication.Companion.getSharedApplication()
|
||||
.getResources().getColor(R.color.colorPrimary));
|
||||
} else {
|
||||
holder.contactDisplayName.setText(participant.getDisplayName());
|
||||
}
|
||||
|
||||
if (TextUtils.isEmpty(participant.getDisplayName()) &&
|
||||
(participant.getType().equals(Participant.ParticipantType.GUEST) || participant.getType().equals(Participant.ParticipantType.USER_FOLLOWING_LINK))) {
|
||||
holder.contactDisplayName.setText(NextcloudTalkApplication.Companion.getSharedApplication().getString(R.string.nc_guest));
|
||||
}
|
||||
holder.contactDisplayName.setText(participant.getDisplayName());
|
||||
|
||||
if (TextUtils.isEmpty(participant.getDisplayName()) &&
|
||||
(participant.getType().equals(Participant.ParticipantType.GUEST) || participant.getType().equals(Participant.ParticipantType.USER_FOLLOWING_LINK))) {
|
||||
holder.contactDisplayName.setText(NextcloudTalkApplication.Companion.getSharedApplication().getString(R.string.nc_guest));
|
||||
}
|
||||
|
||||
if (TextUtils.isEmpty(participant.getSource()) || participant.getSource().equals("users")) {
|
||||
|
||||
if (Participant.ParticipantType.GUEST.equals(participant.getType()) ||
|
||||
Participant.ParticipantType.USER_FOLLOWING_LINK.equals(participant.getType())) {
|
||||
// TODO: Show generated avatar for guests
|
||||
String displayName = NextcloudTalkApplication.Companion.getSharedApplication()
|
||||
.getResources().getString(R.string.nc_guest);
|
||||
|
||||
if (!TextUtils.isEmpty(participant.getDisplayName())) {
|
||||
displayName = participant.getDisplayName();
|
||||
}
|
||||
|
||||
DraweeController draweeController = Fresco.newDraweeControllerBuilder()
|
||||
.setOldController(holder.simpleDraweeView.getController())
|
||||
.setAutoPlayAnimations(true)
|
||||
.setImageRequest(DisplayUtils.getImageRequestForUrl(ApiUtils.getUrlForAvatarWithNameForGuests(userEntity.getBaseUrl(),
|
||||
displayName, R.dimen.avatar_size), null))
|
||||
.build();
|
||||
holder.simpleDraweeView.setController(draweeController);
|
||||
|
||||
} else {
|
||||
|
||||
DraweeController draweeController = Fresco.newDraweeControllerBuilder()
|
||||
|
@ -105,10 +105,7 @@ public class MagicIncomingTextMessageViewHolder
|
||||
if (!message.isGrouped() && !message.isOneToOneConversation()) {
|
||||
messageUserAvatarView.setVisibility(View.VISIBLE);
|
||||
if (message.getActorType().equals("guests")) {
|
||||
TextDrawable drawable = TextDrawable.builder().beginConfig().bold()
|
||||
.endConfig().buildRound(String.valueOf(messageAuthor.getText().charAt(0))
|
||||
, NextcloudTalkApplication.Companion.getSharedApplication().getResources().getColor(R.color.nc_grey));
|
||||
messageUserAvatarView.getHierarchy().setPlaceholderImage(drawable);
|
||||
// do nothing, avatar is set
|
||||
} else if (message.getActorType().equals("bots") && message.getActorId().equals("changelog")) {
|
||||
messageUserAvatarView.setController(null);
|
||||
Drawable[] layers = new Drawable[2];
|
||||
|
@ -212,6 +212,14 @@ public class ChatMessage implements IMessage, MessageContentType, MessageContent
|
||||
public String getAvatar() {
|
||||
if (getActorType().equals("users")) {
|
||||
return ApiUtils.getUrlForAvatarWithName(getActiveUser().getBaseUrl(), actorId, R.dimen.avatar_size);
|
||||
} else if (getActorType().equals("guests")) {
|
||||
String apiId =
|
||||
NextcloudTalkApplication.Companion.getSharedApplication().getString(R.string.nc_guest);
|
||||
|
||||
if (!TextUtils.isEmpty(getActorDisplayName())) {
|
||||
apiId = getActorDisplayName();
|
||||
}
|
||||
return ApiUtils.getUrlForAvatarWithNameForGuests(getActiveUser().getBaseUrl(), apiId, R.dimen.avatar_size);
|
||||
} else {
|
||||
return null;
|
||||
}
|
||||
|
@ -224,6 +224,14 @@ public class ApiUtils {
|
||||
return baseUrl + "/index.php/avatar/" + Uri.encode(name) + "/" + avatarSize;
|
||||
}
|
||||
|
||||
public static String getUrlForAvatarWithNameForGuests(String baseUrl, String name,
|
||||
@DimenRes int avatarSize) {
|
||||
avatarSize = Math.round(NextcloudTalkApplication
|
||||
.Companion.getSharedApplication().getResources().getDimension(avatarSize));
|
||||
|
||||
return baseUrl + "/index.php/avatar/guest/" + Uri.encode(name) + "/" + avatarSize;
|
||||
}
|
||||
|
||||
public static String getUrlForPassword(String baseUrl, String token) {
|
||||
return baseUrl + ocsApiVersion + spreedApiVersion + "/room/" + token + "/password";
|
||||
}
|
||||
|
@ -262,8 +262,11 @@ public class DisplayUtils {
|
||||
chip.setBounds(0, 0, chip.getIntrinsicWidth(), chip.getIntrinsicHeight());
|
||||
|
||||
if (!isCall) {
|
||||
ImageRequest imageRequest =
|
||||
getImageRequestForUrl(ApiUtils.getUrlForAvatarWithName(conversationUser.getBaseUrl(), id, R.dimen.avatar_size_big), null);
|
||||
String url = ApiUtils.getUrlForAvatarWithName(conversationUser.getBaseUrl(), id, R.dimen.avatar_size_big);
|
||||
if ("guests".equals(type)) {
|
||||
url = ApiUtils.getUrlForAvatarWithNameForGuests(conversationUser.getBaseUrl(), label, R.dimen.avatar_size_big);
|
||||
}
|
||||
ImageRequest imageRequest = getImageRequestForUrl(url, null);
|
||||
ImagePipeline imagePipeline = Fresco.getImagePipeline();
|
||||
DataSource<CloseableReference<CloseableImage>> dataSource = imagePipeline.fetchDecodedImage(imageRequest, context);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user