mirror of
https://github.com/nextcloud/talk-android
synced 2025-02-01 12:11:59 +00:00
Update chips
Signed-off-by: Mario Danic <mario@lovelyhq.com>
This commit is contained in:
parent
bd3eae81d2
commit
06992b400f
@ -31,14 +31,18 @@ import com.nextcloud.talk.utils.DisplayUtils;
|
||||
import com.nextcloud.talk.utils.MagicCharPolicy;
|
||||
import com.nextcloud.talk.utils.text.Spans;
|
||||
import com.otaliastudios.autocomplete.AutocompleteCallback;
|
||||
import com.vanniktech.emoji.EmojiEditText;
|
||||
|
||||
public class MentionAutocompleteCallback implements AutocompleteCallback<Mention> {
|
||||
private Context context;
|
||||
private UserEntity conversationUser;
|
||||
private EmojiEditText emojiEditText;
|
||||
|
||||
public MentionAutocompleteCallback(Context context, UserEntity conversationUser) {
|
||||
public MentionAutocompleteCallback(Context context, UserEntity conversationUser,
|
||||
EmojiEditText emojiEditText) {
|
||||
this.context = context;
|
||||
this.conversationUser = conversationUser;
|
||||
this.emojiEditText = emojiEditText;
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -52,10 +56,10 @@ public class MentionAutocompleteCallback implements AutocompleteCallback<Mention
|
||||
Spans.MentionChipSpan mentionChipSpan =
|
||||
new Spans.MentionChipSpan(DisplayUtils.getDrawableForMentionChipSpan(context,
|
||||
item.getId(), item.getLabel(), conversationUser, item.getSource(),
|
||||
R.xml.chip_accent_background),
|
||||
R.xml.chip_accent_background, emojiEditText),
|
||||
DynamicDrawableSpan.ALIGN_BASELINE,
|
||||
item.getId(), item.getLabel());
|
||||
editable.setSpan(mentionChipSpan, start, start + item.getLabel().length() ,
|
||||
editable.setSpan(mentionChipSpan, start, start + item.getLabel().length(),
|
||||
Spanned.SPAN_INCLUSIVE_EXCLUSIVE);
|
||||
return true;
|
||||
}
|
||||
|
@ -486,7 +486,7 @@ public class ChatController extends BaseController implements MessagesListAdapte
|
||||
Drawable backgroundDrawable = new ColorDrawable(Color.WHITE);
|
||||
AutocompletePresenter<Mention> presenter = new MentionAutocompletePresenter(getApplicationContext(), roomToken);
|
||||
AutocompleteCallback<Mention> callback = new MentionAutocompleteCallback(getActivity(),
|
||||
conversationUser);
|
||||
conversationUser, messageInput);
|
||||
|
||||
if (mentionAutocomplete == null && messageInput != null) {
|
||||
mentionAutocomplete = Autocomplete.<Mention>on(messageInput)
|
||||
|
@ -192,8 +192,10 @@ public class CallMenuController extends BaseController implements FlexibleAdapte
|
||||
|
||||
|
||||
if (conversation.canLeave(currentUser)) {
|
||||
menuItems.add(new MenuItem(getResources().getString(R.string.nc_leave), 1, getResources().getDrawable(R.drawable
|
||||
.ic_close_grey600_24dp)));
|
||||
menuItems.add(new MenuItem(getResources().getString(R.string.nc_leave), 1,
|
||||
DisplayUtils.getTintedDrawable(getResources(),
|
||||
R.drawable.ic_exit_to_app_black_24dp, R.color.grey_600)
|
||||
));
|
||||
}
|
||||
} else if (menuType.equals(MenuType.SHARE)) {
|
||||
prepareIntent();
|
||||
|
@ -30,7 +30,10 @@ import android.graphics.Bitmap;
|
||||
import android.graphics.Canvas;
|
||||
import android.graphics.Paint;
|
||||
import android.graphics.Typeface;
|
||||
import android.graphics.drawable.*;
|
||||
import android.graphics.drawable.Animatable;
|
||||
import android.graphics.drawable.BitmapDrawable;
|
||||
import android.graphics.drawable.Drawable;
|
||||
import android.graphics.drawable.VectorDrawable;
|
||||
import android.net.Uri;
|
||||
import android.os.Build;
|
||||
import android.text.*;
|
||||
@ -50,7 +53,6 @@ import com.facebook.common.references.CloseableReference;
|
||||
import com.facebook.datasource.DataSource;
|
||||
import com.facebook.drawee.backends.pipeline.Fresco;
|
||||
import com.facebook.drawee.controller.ControllerListener;
|
||||
import com.facebook.drawee.drawable.RoundedColorDrawable;
|
||||
import com.facebook.drawee.view.SimpleDraweeView;
|
||||
import com.facebook.imagepipeline.common.RotationOptions;
|
||||
import com.facebook.imagepipeline.core.ImagePipeline;
|
||||
@ -65,12 +67,12 @@ import com.nextcloud.talk.R;
|
||||
import com.nextcloud.talk.application.NextcloudTalkApplication;
|
||||
import com.nextcloud.talk.models.database.UserEntity;
|
||||
import com.nextcloud.talk.utils.text.Spans;
|
||||
import com.vanniktech.emoji.EmojiEditText;
|
||||
import com.vanniktech.emoji.EmojiTextView;
|
||||
|
||||
import java.lang.reflect.Constructor;
|
||||
import java.lang.reflect.InvocationTargetException;
|
||||
import java.lang.reflect.Method;
|
||||
import java.util.Objects;
|
||||
import java.util.regex.Matcher;
|
||||
import java.util.regex.Pattern;
|
||||
|
||||
@ -218,7 +220,8 @@ public class DisplayUtils {
|
||||
|
||||
public static Drawable getDrawableForMentionChipSpan(Context context, String id, String label,
|
||||
UserEntity conversationUser, String type,
|
||||
@XmlRes int chipResource) {
|
||||
@XmlRes int chipResource,
|
||||
@Nullable EmojiEditText emojiEditText) {
|
||||
ChipDrawable chip = ChipDrawable.createFromResource(context, chipResource);
|
||||
chip.setText(label);
|
||||
|
||||
@ -253,11 +256,15 @@ public class DisplayUtils {
|
||||
|
||||
dataSource.subscribe(
|
||||
new BaseBitmapDataSubscriber() {
|
||||
|
||||
@Override
|
||||
protected void onNewResultImpl(Bitmap bitmap) {
|
||||
if (bitmap != null) {
|
||||
chip.setChipIcon(getRoundedDrawable(new BitmapDrawable(bitmap)));
|
||||
|
||||
// A hack to refresh the chip icon
|
||||
if (emojiEditText != null) {
|
||||
emojiEditText.setTextKeepState(emojiEditText.getText());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -291,7 +298,7 @@ public class DisplayUtils {
|
||||
int end = start + m.group().length();
|
||||
lastStartIndex = end;
|
||||
mentionChipSpan = new Spans.MentionChipSpan(DisplayUtils.getDrawableForMentionChipSpan(context,
|
||||
id, label, conversationUser, type, chipXmlRes),
|
||||
id, label, conversationUser, type, chipXmlRes, null),
|
||||
DynamicDrawableSpan.ALIGN_BASELINE, id,
|
||||
label);
|
||||
spannableString.setSpan(mentionChipSpan, start, end, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
|
||||
|
@ -20,24 +20,10 @@
|
||||
|
||||
package com.nextcloud.talk.utils.text;
|
||||
|
||||
import android.graphics.Bitmap;
|
||||
import android.graphics.drawable.Drawable;
|
||||
import androidx.annotation.NonNull;
|
||||
import com.facebook.common.executors.UiThreadImmediateExecutorService;
|
||||
import com.facebook.common.references.CloseableReference;
|
||||
import com.facebook.datasource.DataSource;
|
||||
import com.facebook.drawee.backends.pipeline.Fresco;
|
||||
import com.facebook.imagepipeline.core.ImagePipeline;
|
||||
import com.facebook.imagepipeline.datasource.BaseBitmapDataSubscriber;
|
||||
import com.facebook.imagepipeline.image.CloseableImage;
|
||||
import com.facebook.imagepipeline.request.ImageRequest;
|
||||
import com.nextcloud.talk.R;
|
||||
import com.nextcloud.talk.utils.ApiUtils;
|
||||
import com.nextcloud.talk.utils.DisplayUtils;
|
||||
import lombok.Data;
|
||||
|
||||
import static com.nextcloud.talk.utils.DisplayUtils.getImageRequestForUrl;
|
||||
|
||||
public class Spans {
|
||||
|
||||
@Data
|
||||
|
Loading…
Reference in New Issue
Block a user