Signed-off-by: Mario Danic <mario@lovelyhq.com>
This commit is contained in:
Mario Danic 2019-03-06 13:37:19 +01:00
parent 364480ccf4
commit 7cf28e775b
4 changed files with 64 additions and 49 deletions

View File

@ -20,6 +20,7 @@
package com.nextcloud.talk.adapters.items; package com.nextcloud.talk.adapters.items;
import android.annotation.SuppressLint;
import android.view.View; import android.view.View;
import com.bumptech.glide.load.engine.DiskCacheStrategy; import com.bumptech.glide.load.engine.DiskCacheStrategy;
import com.bumptech.glide.load.model.GlideUrl; import com.bumptech.glide.load.model.GlideUrl;
@ -30,6 +31,7 @@ import com.nextcloud.talk.R;
import com.nextcloud.talk.application.NextcloudTalkApplication; import com.nextcloud.talk.application.NextcloudTalkApplication;
import com.nextcloud.talk.models.database.UserEntity; import com.nextcloud.talk.models.database.UserEntity;
import com.nextcloud.talk.utils.ApiUtils; import com.nextcloud.talk.utils.ApiUtils;
import com.nextcloud.talk.utils.DisplayUtils;
import com.nextcloud.talk.utils.glide.GlideApp; import com.nextcloud.talk.utils.glide.GlideApp;
import eu.davidea.flexibleadapter.FlexibleAdapter; import eu.davidea.flexibleadapter.FlexibleAdapter;
import eu.davidea.flexibleadapter.items.AbstractFlexibleItem; import eu.davidea.flexibleadapter.items.AbstractFlexibleItem;
@ -82,6 +84,7 @@ public class MentionAutocompleteItem extends AbstractFlexibleItem<UserItem.UserI
} }
@SuppressLint("SetTextI18n")
@Override @Override
public void bindViewHolder(FlexibleAdapter<IFlexible> adapter, UserItem.UserItemViewHolder holder, int position, List<Object> payloads) { public void bindViewHolder(FlexibleAdapter<IFlexible> adapter, UserItem.UserItemViewHolder holder, int position, List<Object> payloads) {
@ -89,31 +92,39 @@ public class MentionAutocompleteItem extends AbstractFlexibleItem<UserItem.UserI
FlexibleUtils.highlightText(holder.contactDisplayName, displayName, FlexibleUtils.highlightText(holder.contactDisplayName, displayName,
String.valueOf(adapter.getFilter(String.class)), NextcloudTalkApplication.getSharedApplication() String.valueOf(adapter.getFilter(String.class)), NextcloudTalkApplication.getSharedApplication()
.getResources().getColor(R.color.colorPrimary)); .getResources().getColor(R.color.colorPrimary));
FlexibleUtils.highlightText(holder.contactMentionId, "@" + userId, if (holder.contactMentionId != null) {
String.valueOf(adapter.getFilter(String.class)), NextcloudTalkApplication.getSharedApplication() FlexibleUtils.highlightText(holder.contactMentionId, "@" + userId,
.getResources().getColor(R.color.colorPrimary)); String.valueOf(adapter.getFilter(String.class)), NextcloudTalkApplication.getSharedApplication()
.getResources().getColor(R.color.colorPrimary));
}
} else { } else {
holder.contactDisplayName.setText(displayName); holder.contactDisplayName.setText(displayName);
holder.contactMentionId.setText("@" + userId); if (holder.contactMentionId != null) {
holder.contactMentionId.setText("@" + userId);
}
} }
GlideUrl glideUrl = new GlideUrl(ApiUtils.getUrlForAvatarWithName(currentUser.getBaseUrl(), if (userId.equals("all")) {
userId, R.dimen.avatar_size), new LazyHeaders.Builder() holder.avatarFlipView.setFrontImageBitmap(DisplayUtils.getRoundedBitmapFromVectorDrawableResource(NextcloudTalkApplication.getSharedApplication().getResources(), R.drawable.ic_people_group_white_24px));
.setHeader("Accept", "image/*") } else {
.setHeader("User-Agent", ApiUtils.getUserAgent()) GlideUrl glideUrl = new GlideUrl(ApiUtils.getUrlForAvatarWithName(currentUser.getBaseUrl(),
.build()); userId, R.dimen.avatar_size), new LazyHeaders.Builder()
.setHeader("Accept", "image/*")
.setHeader("User-Agent", ApiUtils.getUserAgent())
.build());
int avatarSize = Math.round(NextcloudTalkApplication int avatarSize = Math.round(NextcloudTalkApplication
.getSharedApplication().getResources().getDimension(R.dimen.avatar_size)); .getSharedApplication().getResources().getDimension(R.dimen.avatar_size));
GlideApp.with(NextcloudTalkApplication.getSharedApplication().getApplicationContext()) GlideApp.with(NextcloudTalkApplication.getSharedApplication().getApplicationContext())
.asBitmap() .asBitmap()
.diskCacheStrategy(DiskCacheStrategy.NONE) .diskCacheStrategy(DiskCacheStrategy.NONE)
.load(glideUrl) .load(glideUrl)
.centerInside() .centerInside()
.override(avatarSize, avatarSize) .override(avatarSize, avatarSize)
.apply(RequestOptions.bitmapTransform(new CircleCrop())) .apply(RequestOptions.bitmapTransform(new CircleCrop()))
.into(holder.avatarFlipView.getFrontImageView()); .into(holder.avatarFlipView.getFrontImageView());
}
} }
@Override @Override

View File

@ -132,24 +132,26 @@ public class MagicIncomingTextMessageViewHolder
if (messageParameters != null && messageParameters.size() > 0) { if (messageParameters != null && messageParameters.size() > 0) {
for (String key : messageParameters.keySet()) { for (String key : messageParameters.keySet()) {
Map<String, String> individualHashMap = message.getMessageParameters().get(key); Map<String, String> individualHashMap = message.getMessageParameters().get(key);
if (individualHashMap.get("type").equals("user") || individualHashMap.get("type").equals("guest")) { if (individualHashMap != null) {
int color; if (individualHashMap.get("type").equals("user") || individualHashMap.get("type").equals("guest") || individualHashMap.get("type").equals("call")) {
int color;
if (individualHashMap.get("id").equals(message.getActiveUserId())) {
color = NextcloudTalkApplication.getSharedApplication().getResources().getColor(R.color
.nc_incoming_text_mention_you);
} else {
color = NextcloudTalkApplication.getSharedApplication().getResources().getColor(R.color
.nc_incoming_text_mention_others);
}
messageString = DisplayUtils.searchAndColor(message.getText(), "@" + individualHashMap.get("name"), color);
} else if (individualHashMap.get("type").equals("file")) {
itemView.setOnClickListener(v -> {
Intent browserIntent = new Intent(Intent.ACTION_VIEW, Uri.parse(individualHashMap.get("link")));
context.startActivity(browserIntent);
});
if (individualHashMap.get("id").equals(message.getActiveUserId())) {
color = NextcloudTalkApplication.getSharedApplication().getResources().getColor(R.color
.nc_incoming_text_mention_you);
} else {
color = NextcloudTalkApplication.getSharedApplication().getResources().getColor(R.color
.nc_incoming_text_mention_others);
} }
messageString = DisplayUtils.searchAndColor(message.getText(), "@" + individualHashMap.get("name"), color);
} else if (individualHashMap.get("type").equals("file")) {
itemView.setOnClickListener(v -> {
Intent browserIntent = new Intent(Intent.ACTION_VIEW, Uri.parse(individualHashMap.get("link")));
context.startActivity(browserIntent);
});
} }
} }

View File

@ -88,20 +88,22 @@ public class MagicOutcomingTextMessageViewHolder extends MessageHolders.Outcomin
if (messageParameters != null && messageParameters.size() > 0) { if (messageParameters != null && messageParameters.size() > 0) {
for (String key : messageParameters.keySet()) { for (String key : messageParameters.keySet()) {
Map<String, String> individualHashMap = message.getMessageParameters().get(key); Map<String, String> individualHashMap = message.getMessageParameters().get(key);
if (individualHashMap.get("type").equals("user") || individualHashMap.get("type").equals("guest")) { if (individualHashMap != null) {
if (!individualHashMap.get("id").equals(message.getActiveUserId())) { if (individualHashMap.get("type").equals("user") || individualHashMap.get("type").equals("guest") || individualHashMap.get("type").equals("call")) {
messageString = if (!individualHashMap.get("id").equals(message.getActiveUserId())) {
DisplayUtils.searchAndColor(message.getText(), messageString =
"@" + individualHashMap.get("name"), NextcloudTalkApplication DisplayUtils.searchAndColor(message.getText(),
.getSharedApplication().getResources().getColor(R.color.nc_outcoming_text_default)); "@" + individualHashMap.get("name"), NextcloudTalkApplication
.getSharedApplication().getResources().getColor(R.color.nc_outcoming_text_default));
}
} else if (individualHashMap.get("type").equals("file")) {
itemView.setOnClickListener(v -> {
Intent browserIntent = new Intent(Intent.ACTION_VIEW, Uri.parse(individualHashMap.get("link")));
context.startActivity(browserIntent);
});
} }
} else if (individualHashMap.get("type").equals("file")) {
itemView.setOnClickListener(v -> {
Intent browserIntent = new Intent(Intent.ACTION_VIEW, Uri.parse(individualHashMap.get("link")));
context.startActivity(browserIntent);
});
} }
} }

View File

@ -59,7 +59,7 @@ public class MagicSystemMessageViewHolder extends MessageHolders.IncomingTextMes
for (String key : message.getMessageParameters().keySet()) { for (String key : message.getMessageParameters().keySet()) {
Map<String, String> individualHashMap = message.getMessageParameters().get(key); Map<String, String> individualHashMap = message.getMessageParameters().get(key);
int color; int color;
if (individualHashMap.get("type").equals("user") || individualHashMap.get("type").equals("guest")) { if (individualHashMap != null && (individualHashMap.get("type").equals("user") || individualHashMap.get("type").equals("guest") || individualHashMap.get("type").equals("call"))) {
if (individualHashMap.get("id").equals(message.getActiveUserId())) { if (individualHashMap.get("id").equals(message.getActiveUserId())) {
color = context.getResources().getColor(R.color.nc_incoming_text_mention_you); color = context.getResources().getColor(R.color.nc_incoming_text_mention_you);