stage 1: added emoji adapter and dialog selector
This commit is contained in:
parent
3536c80293
commit
84bedab82c
|
@ -12,8 +12,8 @@ android {
|
|||
applicationId 'org.nuclearfog.twidda'
|
||||
minSdkVersion 21
|
||||
targetSdkVersion 33
|
||||
versionCode 81
|
||||
versionName '3.1.1'
|
||||
versionCode 82
|
||||
versionName '3.1.2'
|
||||
resConfigs 'en', 'de-rDE', 'zh-rCN'
|
||||
}
|
||||
|
||||
|
|
|
@ -768,6 +768,7 @@ public class Mastodon implements Connection {
|
|||
Emoji item = new MastodonEmoji(json.getJSONObject(i));
|
||||
result.add(item);
|
||||
}
|
||||
Collections.sort(result);
|
||||
return result;
|
||||
}
|
||||
throw new MastodonException(response);
|
||||
|
|
|
@ -23,7 +23,7 @@ import java.util.TreeMap;
|
|||
*
|
||||
* @author nuclearfog
|
||||
*/
|
||||
public class EmojiLoader extends AsyncExecutor<EmojiLoader.EmojiParam, EmojiLoader.EmojiResult> {
|
||||
public class TextEmojiLoader extends AsyncExecutor<TextEmojiLoader.EmojiParam, TextEmojiLoader.EmojiResult> {
|
||||
|
||||
private Connection connection;
|
||||
private ImageCache cache;
|
||||
|
@ -31,7 +31,7 @@ public class EmojiLoader extends AsyncExecutor<EmojiLoader.EmojiParam, EmojiLoad
|
|||
/**
|
||||
*
|
||||
*/
|
||||
public EmojiLoader(Context context) {
|
||||
public TextEmojiLoader(Context context) {
|
||||
connection = ConnectionManager.getDefaultConnection(context);
|
||||
cache = ImageCache.getInstance(context);
|
||||
}
|
|
@ -55,9 +55,9 @@ import org.nuclearfog.textviewtool.LinkAndScrollMovement;
|
|||
import org.nuclearfog.twidda.R;
|
||||
import org.nuclearfog.twidda.backend.api.ConnectionException;
|
||||
import org.nuclearfog.twidda.backend.async.AsyncExecutor.AsyncCallback;
|
||||
import org.nuclearfog.twidda.backend.async.EmojiLoader;
|
||||
import org.nuclearfog.twidda.backend.async.EmojiLoader.EmojiParam;
|
||||
import org.nuclearfog.twidda.backend.async.EmojiLoader.EmojiResult;
|
||||
import org.nuclearfog.twidda.backend.async.TextEmojiLoader;
|
||||
import org.nuclearfog.twidda.backend.async.TextEmojiLoader.EmojiParam;
|
||||
import org.nuclearfog.twidda.backend.async.TextEmojiLoader.EmojiResult;
|
||||
import org.nuclearfog.twidda.backend.async.RelationLoader;
|
||||
import org.nuclearfog.twidda.backend.async.RelationLoader.RelationParam;
|
||||
import org.nuclearfog.twidda.backend.async.RelationLoader.RelationResult;
|
||||
|
@ -152,7 +152,7 @@ public class ProfileActivity extends AppCompatActivity implements ActivityResult
|
|||
|
||||
private RelationLoader relationLoader;
|
||||
private UserLoader userLoader;
|
||||
private EmojiLoader emojiLoader;
|
||||
private TextEmojiLoader emojiLoader;
|
||||
|
||||
private NestedScrollView root;
|
||||
private ConstraintLayout header;
|
||||
|
@ -201,7 +201,7 @@ public class ProfileActivity extends AppCompatActivity implements ActivityResult
|
|||
|
||||
relationLoader = new RelationLoader(this);
|
||||
userLoader = new UserLoader(this);
|
||||
emojiLoader = new EmojiLoader(this);
|
||||
emojiLoader = new TextEmojiLoader(this);
|
||||
picasso = PicassoBuilder.get(this);
|
||||
settings = GlobalSettings.getInstance(this);
|
||||
if (!settings.toolbarOverlapEnabled()) {
|
||||
|
|
|
@ -52,9 +52,9 @@ import org.nuclearfog.textviewtool.LinkAndScrollMovement;
|
|||
import org.nuclearfog.twidda.R;
|
||||
import org.nuclearfog.twidda.backend.api.ConnectionException;
|
||||
import org.nuclearfog.twidda.backend.async.AsyncExecutor.AsyncCallback;
|
||||
import org.nuclearfog.twidda.backend.async.EmojiLoader;
|
||||
import org.nuclearfog.twidda.backend.async.EmojiLoader.EmojiParam;
|
||||
import org.nuclearfog.twidda.backend.async.EmojiLoader.EmojiResult;
|
||||
import org.nuclearfog.twidda.backend.async.TextEmojiLoader;
|
||||
import org.nuclearfog.twidda.backend.async.TextEmojiLoader.EmojiParam;
|
||||
import org.nuclearfog.twidda.backend.async.TextEmojiLoader.EmojiResult;
|
||||
import org.nuclearfog.twidda.backend.async.NotificationAction;
|
||||
import org.nuclearfog.twidda.backend.async.NotificationAction.NotificationActionParam;
|
||||
import org.nuclearfog.twidda.backend.async.NotificationAction.NotificationActionResult;
|
||||
|
@ -205,7 +205,7 @@ public class StatusActivity extends AppCompatActivity implements OnClickListener
|
|||
private NotificationAction notificationLoader;
|
||||
private TranslationLoader translationLoader;
|
||||
private PollAction pollLoader;
|
||||
private EmojiLoader emojiLoader;
|
||||
private TextEmojiLoader emojiLoader;
|
||||
|
||||
@Nullable
|
||||
private ClipboardManager clip;
|
||||
|
@ -268,7 +268,7 @@ public class StatusActivity extends AppCompatActivity implements OnClickListener
|
|||
pollLoader = new PollAction(this);
|
||||
notificationLoader = new NotificationAction(this);
|
||||
translationLoader = new TranslationLoader(this);
|
||||
emojiLoader = new EmojiLoader(this);
|
||||
emojiLoader = new TextEmojiLoader(this);
|
||||
|
||||
picasso = PicassoBuilder.get(this);
|
||||
settings = GlobalSettings.getInstance(this);
|
||||
|
|
|
@ -0,0 +1,91 @@
|
|||
package org.nuclearfog.twidda.ui.adapter;
|
||||
|
||||
import android.content.Context;
|
||||
import android.view.ViewGroup;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.recyclerview.widget.RecyclerView.Adapter;
|
||||
|
||||
import com.squareup.picasso.Picasso;
|
||||
|
||||
import org.nuclearfog.twidda.backend.image.PicassoBuilder;
|
||||
import org.nuclearfog.twidda.config.GlobalSettings;
|
||||
import org.nuclearfog.twidda.model.Emoji;
|
||||
import org.nuclearfog.twidda.ui.adapter.holder.EmojiHolder;
|
||||
import org.nuclearfog.twidda.ui.adapter.holder.EmojiHolder.OnEmojiClickListener;
|
||||
|
||||
import java.util.LinkedList;
|
||||
import java.util.List;
|
||||
|
||||
|
||||
public class EmojiAdapter extends Adapter<EmojiHolder> implements OnEmojiClickListener {
|
||||
|
||||
private GlobalSettings settings;
|
||||
private Picasso picasso;
|
||||
|
||||
private LinkedList<Object> items = new LinkedList<>();
|
||||
|
||||
|
||||
public EmojiAdapter(Context context) {
|
||||
settings = GlobalSettings.getInstance(context);
|
||||
picasso = PicassoBuilder.get(context);
|
||||
}
|
||||
|
||||
|
||||
@NonNull
|
||||
@Override
|
||||
public EmojiHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
|
||||
return new EmojiHolder(parent, settings, picasso, this);
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void onBindViewHolder(@NonNull EmojiHolder holder, int position) {
|
||||
Object item = items.get(position);
|
||||
if (item instanceof Emoji[]) {
|
||||
holder.setData((Emoji[]) item);
|
||||
} else if (item instanceof String) {
|
||||
holder.setLabel((String) item);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public int getItemCount() {
|
||||
return items.size();
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void onEmojiClick(int position, int index) {
|
||||
}
|
||||
|
||||
|
||||
public void replaceItems(List<Emoji> emojis) {
|
||||
items.clear();
|
||||
String groupname = "";
|
||||
for (Emoji emoji : emojis) {
|
||||
Emoji[] row;
|
||||
Object item = items.peekLast();
|
||||
if (!emoji.getCategory().equals(groupname)) {
|
||||
row = new Emoji[EmojiHolder.ROW_COUNT];
|
||||
row[0] = emoji;
|
||||
items.add(groupname);
|
||||
items.add(row);
|
||||
} else if (item instanceof Emoji[]) {
|
||||
row = (Emoji[]) item;
|
||||
if (row[EmojiHolder.ROW_COUNT - 1] == null) {
|
||||
for (int j = 0; j < row.length; j++) {
|
||||
if (row[j] == null) {
|
||||
row[j] = emoji;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
row = new Emoji[EmojiHolder.ROW_COUNT];
|
||||
row[0] = emoji;
|
||||
items.add(row);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -10,7 +10,7 @@ import androidx.recyclerview.widget.RecyclerView.ViewHolder;
|
|||
import com.squareup.picasso.Picasso;
|
||||
|
||||
import org.nuclearfog.tag.Tagger.OnTagClickListener;
|
||||
import org.nuclearfog.twidda.backend.async.EmojiLoader;
|
||||
import org.nuclearfog.twidda.backend.async.TextEmojiLoader;
|
||||
import org.nuclearfog.twidda.backend.helper.Messages;
|
||||
import org.nuclearfog.twidda.backend.image.PicassoBuilder;
|
||||
import org.nuclearfog.twidda.config.GlobalSettings;
|
||||
|
@ -45,7 +45,7 @@ public class MessageAdapter extends Adapter<ViewHolder> implements OnItemClickLi
|
|||
private OnMessageClickListener itemClickListener;
|
||||
private GlobalSettings settings;
|
||||
private Picasso picasso;
|
||||
private EmojiLoader emojiLoader;
|
||||
private TextEmojiLoader emojiLoader;
|
||||
|
||||
private Messages messages;
|
||||
private int loadingIndex;
|
||||
|
@ -58,7 +58,7 @@ public class MessageAdapter extends Adapter<ViewHolder> implements OnItemClickLi
|
|||
loadingIndex = NO_LOADING;
|
||||
settings = GlobalSettings.getInstance(context);
|
||||
picasso = PicassoBuilder.get(context);
|
||||
emojiLoader = new EmojiLoader(context);
|
||||
emojiLoader = new TextEmojiLoader(context);
|
||||
this.itemClickListener = itemClickListener;
|
||||
}
|
||||
|
||||
|
|
|
@ -9,7 +9,7 @@ import androidx.recyclerview.widget.RecyclerView.ViewHolder;
|
|||
|
||||
import com.squareup.picasso.Picasso;
|
||||
|
||||
import org.nuclearfog.twidda.backend.async.EmojiLoader;
|
||||
import org.nuclearfog.twidda.backend.async.TextEmojiLoader;
|
||||
import org.nuclearfog.twidda.backend.image.PicassoBuilder;
|
||||
import org.nuclearfog.twidda.config.GlobalSettings;
|
||||
import org.nuclearfog.twidda.model.Notification;
|
||||
|
@ -55,7 +55,7 @@ public class NotificationAdapter extends Adapter<ViewHolder> implements OnHolder
|
|||
private Picasso picasso;
|
||||
private GlobalSettings settings;
|
||||
private OnNotificationClickListener listener;
|
||||
private EmojiLoader emojiLoader;
|
||||
private TextEmojiLoader emojiLoader;
|
||||
|
||||
private List<Notification> notifications;
|
||||
private int loadingIndex;
|
||||
|
@ -64,7 +64,7 @@ public class NotificationAdapter extends Adapter<ViewHolder> implements OnHolder
|
|||
public NotificationAdapter(Context context, OnNotificationClickListener listener) {
|
||||
settings = GlobalSettings.getInstance(context);
|
||||
picasso = PicassoBuilder.get(context);
|
||||
emojiLoader = new EmojiLoader(context);
|
||||
emojiLoader = new TextEmojiLoader(context);
|
||||
notifications = new LinkedList<>();
|
||||
loadingIndex = NO_LOADING;
|
||||
this.listener = listener;
|
||||
|
|
|
@ -9,7 +9,7 @@ import androidx.recyclerview.widget.RecyclerView.ViewHolder;
|
|||
|
||||
import com.squareup.picasso.Picasso;
|
||||
|
||||
import org.nuclearfog.twidda.backend.async.EmojiLoader;
|
||||
import org.nuclearfog.twidda.backend.async.TextEmojiLoader;
|
||||
import org.nuclearfog.twidda.backend.image.PicassoBuilder;
|
||||
import org.nuclearfog.twidda.config.GlobalSettings;
|
||||
import org.nuclearfog.twidda.model.Status;
|
||||
|
@ -50,7 +50,7 @@ public class StatusAdapter extends Adapter<ViewHolder> implements OnHolderClickL
|
|||
*/
|
||||
private static final int MIN_COUNT = 2;
|
||||
|
||||
private EmojiLoader emojiLoader;
|
||||
private TextEmojiLoader emojiLoader;
|
||||
private StatusSelectListener listener;
|
||||
private GlobalSettings settings;
|
||||
private Picasso picasso;
|
||||
|
@ -64,7 +64,7 @@ public class StatusAdapter extends Adapter<ViewHolder> implements OnHolderClickL
|
|||
public StatusAdapter(Context context, StatusSelectListener itemClickListener) {
|
||||
settings = GlobalSettings.getInstance(context);
|
||||
picasso = PicassoBuilder.get(context);
|
||||
emojiLoader = new EmojiLoader(context);
|
||||
emojiLoader = new TextEmojiLoader(context);
|
||||
loadingIndex = NO_LOADING;
|
||||
items = new LinkedList<>();
|
||||
this.listener = itemClickListener;
|
||||
|
|
|
@ -9,7 +9,7 @@ import androidx.recyclerview.widget.RecyclerView.ViewHolder;
|
|||
|
||||
import com.squareup.picasso.Picasso;
|
||||
|
||||
import org.nuclearfog.twidda.backend.async.EmojiLoader;
|
||||
import org.nuclearfog.twidda.backend.async.TextEmojiLoader;
|
||||
import org.nuclearfog.twidda.backend.helper.Users;
|
||||
import org.nuclearfog.twidda.backend.image.PicassoBuilder;
|
||||
import org.nuclearfog.twidda.config.GlobalSettings;
|
||||
|
@ -43,7 +43,7 @@ public class UserAdapter extends Adapter<ViewHolder> implements OnHolderClickLis
|
|||
|
||||
private GlobalSettings settings;
|
||||
private Picasso picasso;
|
||||
private EmojiLoader emojiLoader;
|
||||
private TextEmojiLoader emojiLoader;
|
||||
|
||||
private UserClickListener listener;
|
||||
private boolean enableDelete;
|
||||
|
@ -58,7 +58,7 @@ public class UserAdapter extends Adapter<ViewHolder> implements OnHolderClickLis
|
|||
public UserAdapter(Context context, UserClickListener listener, boolean enableDelete) {
|
||||
settings = GlobalSettings.getInstance(context);
|
||||
picasso = PicassoBuilder.get(context);
|
||||
emojiLoader = new EmojiLoader(context);
|
||||
emojiLoader = new TextEmojiLoader(context);
|
||||
users = new Users(0L, 0L);
|
||||
loadingIndex = NO_LOADING;
|
||||
this.enableDelete = enableDelete;
|
||||
|
|
|
@ -9,7 +9,7 @@ import androidx.recyclerview.widget.RecyclerView.ViewHolder;
|
|||
|
||||
import com.squareup.picasso.Picasso;
|
||||
|
||||
import org.nuclearfog.twidda.backend.async.EmojiLoader;
|
||||
import org.nuclearfog.twidda.backend.async.TextEmojiLoader;
|
||||
import org.nuclearfog.twidda.backend.helper.UserLists;
|
||||
import org.nuclearfog.twidda.backend.image.PicassoBuilder;
|
||||
import org.nuclearfog.twidda.config.GlobalSettings;
|
||||
|
@ -49,7 +49,7 @@ public class UserlistAdapter extends Adapter<ViewHolder> implements OnHolderClic
|
|||
private ListClickListener listener;
|
||||
private GlobalSettings settings;
|
||||
private Picasso picasso;
|
||||
private EmojiLoader emojiLoader;
|
||||
private TextEmojiLoader emojiLoader;
|
||||
|
||||
private UserLists userlists;
|
||||
private int loadingIndex;
|
||||
|
@ -61,7 +61,7 @@ public class UserlistAdapter extends Adapter<ViewHolder> implements OnHolderClic
|
|||
this.listener = listener;
|
||||
settings = GlobalSettings.getInstance(context);
|
||||
picasso = PicassoBuilder.get(context);
|
||||
emojiLoader = new EmojiLoader(context);
|
||||
emojiLoader = new TextEmojiLoader(context);
|
||||
userlists = new UserLists(0L, 0L);
|
||||
loadingIndex = NO_LOADING;
|
||||
}
|
||||
|
|
|
@ -0,0 +1,90 @@
|
|||
package org.nuclearfog.twidda.ui.adapter.holder;
|
||||
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.View.OnClickListener;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.ImageView;
|
||||
import android.widget.TextView;
|
||||
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
import androidx.recyclerview.widget.RecyclerView.ViewHolder;
|
||||
|
||||
import com.squareup.picasso.Picasso;
|
||||
|
||||
import org.nuclearfog.twidda.R;
|
||||
import org.nuclearfog.twidda.config.GlobalSettings;
|
||||
import org.nuclearfog.twidda.model.Emoji;
|
||||
|
||||
|
||||
public class EmojiHolder extends ViewHolder implements OnClickListener {
|
||||
|
||||
public static final int ROW_COUNT = 6;
|
||||
|
||||
private ImageView[] emojiViews = new ImageView[ROW_COUNT];
|
||||
private TextView groupLabel;
|
||||
|
||||
private OnEmojiClickListener listener;
|
||||
private Picasso picasso;
|
||||
|
||||
|
||||
public EmojiHolder(ViewGroup parent, GlobalSettings settings, Picasso picasso, OnEmojiClickListener listener) {
|
||||
super(LayoutInflater.from(parent.getContext()).inflate(R.layout.item_emoji, parent, false));
|
||||
|
||||
groupLabel = itemView.findViewById(R.id.item_emoji_group);
|
||||
emojiViews[0] = itemView.findViewById(R.id.item_emoji_1);
|
||||
emojiViews[1] = itemView.findViewById(R.id.item_emoji_2);
|
||||
emojiViews[2] = itemView.findViewById(R.id.item_emoji_3);
|
||||
emojiViews[3] = itemView.findViewById(R.id.item_emoji_4);
|
||||
emojiViews[4] = itemView.findViewById(R.id.item_emoji_5);
|
||||
emojiViews[5] = itemView.findViewById(R.id.item_emoji_6);
|
||||
|
||||
groupLabel.setTextColor(settings.getTextColor());
|
||||
groupLabel.setTypeface(settings.getTypeFace());
|
||||
|
||||
this.listener = listener;
|
||||
this.picasso = picasso;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
int pos = getLayoutPosition();
|
||||
if (pos != RecyclerView.NO_POSITION) {
|
||||
for (int i = 0; i < emojiViews.length; i++) {
|
||||
if (v == emojiViews[i]) {
|
||||
listener.onEmojiClick(pos, i);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public void setData(Emoji[] emojis) {
|
||||
for (int i = 0 ; i < emojis.length && i < emojiViews.length ; i++) {
|
||||
Emoji emoji = emojis[i];
|
||||
ImageView emojiView = emojiViews[i];
|
||||
if (!emoji.getUrl().trim().isEmpty()) {
|
||||
picasso.load(emoji.getUrl()).into(emojiViews[i]);
|
||||
emojiView.setVisibility(View.VISIBLE);
|
||||
}
|
||||
emojiView.setOnClickListener(this);
|
||||
}
|
||||
groupLabel.setVisibility(View.GONE);
|
||||
}
|
||||
|
||||
|
||||
public void setLabel(String label) {
|
||||
for (ImageView emojiView : emojiViews) {
|
||||
emojiView.setVisibility(View.GONE);
|
||||
}
|
||||
groupLabel.setText(label);
|
||||
groupLabel.setVisibility(View.VISIBLE);
|
||||
}
|
||||
|
||||
|
||||
public interface OnEmojiClickListener {
|
||||
|
||||
void onEmojiClick(int position, int index);
|
||||
}
|
||||
}
|
|
@ -29,9 +29,9 @@ import org.nuclearfog.tag.Tagger;
|
|||
import org.nuclearfog.tag.Tagger.OnTagClickListener;
|
||||
import org.nuclearfog.twidda.R;
|
||||
import org.nuclearfog.twidda.backend.async.AsyncExecutor.AsyncCallback;
|
||||
import org.nuclearfog.twidda.backend.async.EmojiLoader;
|
||||
import org.nuclearfog.twidda.backend.async.EmojiLoader.EmojiParam;
|
||||
import org.nuclearfog.twidda.backend.async.EmojiLoader.EmojiResult;
|
||||
import org.nuclearfog.twidda.backend.async.TextEmojiLoader;
|
||||
import org.nuclearfog.twidda.backend.async.TextEmojiLoader.EmojiParam;
|
||||
import org.nuclearfog.twidda.backend.async.TextEmojiLoader.EmojiResult;
|
||||
import org.nuclearfog.twidda.backend.utils.AppStyles;
|
||||
import org.nuclearfog.twidda.backend.utils.EmojiUtils;
|
||||
import org.nuclearfog.twidda.backend.utils.StringUtils;
|
||||
|
@ -60,12 +60,12 @@ public class MessageHolder extends ViewHolder implements OnClickListener, OnTagC
|
|||
private GlobalSettings settings;
|
||||
private Picasso picasso;
|
||||
private IconAdapter adapter;
|
||||
private EmojiLoader emojiLoader;
|
||||
private TextEmojiLoader emojiLoader;
|
||||
|
||||
private long tagId;
|
||||
|
||||
|
||||
public MessageHolder(ViewGroup parent, GlobalSettings settings, Picasso picasso, EmojiLoader emojiLoader, OnItemClickListener listener) {
|
||||
public MessageHolder(ViewGroup parent, GlobalSettings settings, Picasso picasso, TextEmojiLoader emojiLoader, OnItemClickListener listener) {
|
||||
super(LayoutInflater.from(parent.getContext()).inflate(R.layout.item_message, parent, false));
|
||||
this.settings = settings;
|
||||
this.picasso = picasso;
|
||||
|
|
|
@ -27,9 +27,9 @@ import com.squareup.picasso.Transformation;
|
|||
import org.nuclearfog.tag.Tagger;
|
||||
import org.nuclearfog.twidda.R;
|
||||
import org.nuclearfog.twidda.backend.async.AsyncExecutor.AsyncCallback;
|
||||
import org.nuclearfog.twidda.backend.async.EmojiLoader;
|
||||
import org.nuclearfog.twidda.backend.async.EmojiLoader.EmojiParam;
|
||||
import org.nuclearfog.twidda.backend.async.EmojiLoader.EmojiResult;
|
||||
import org.nuclearfog.twidda.backend.async.TextEmojiLoader;
|
||||
import org.nuclearfog.twidda.backend.async.TextEmojiLoader.EmojiParam;
|
||||
import org.nuclearfog.twidda.backend.async.TextEmojiLoader.EmojiResult;
|
||||
import org.nuclearfog.twidda.backend.utils.AppStyles;
|
||||
import org.nuclearfog.twidda.backend.utils.StringUtils;
|
||||
import org.nuclearfog.twidda.backend.utils.EmojiUtils;
|
||||
|
@ -57,7 +57,7 @@ public class StatusHolder extends ViewHolder implements OnClickListener {
|
|||
|
||||
private GlobalSettings settings;
|
||||
private Picasso picasso;
|
||||
private EmojiLoader emojiLoader;
|
||||
private TextEmojiLoader emojiLoader;
|
||||
private IconAdapter adapter;
|
||||
private OnHolderClickListener listener;
|
||||
|
||||
|
@ -67,7 +67,7 @@ public class StatusHolder extends ViewHolder implements OnClickListener {
|
|||
private long tagId = 0L;
|
||||
|
||||
|
||||
public StatusHolder(ViewGroup parent, GlobalSettings settings, Picasso picasso, EmojiLoader emojiLoader, OnHolderClickListener listener) {
|
||||
public StatusHolder(ViewGroup parent, GlobalSettings settings, Picasso picasso, TextEmojiLoader emojiLoader, OnHolderClickListener listener) {
|
||||
super(LayoutInflater.from(parent.getContext()).inflate(R.layout.item_status, parent, false));
|
||||
this.settings = settings;
|
||||
this.picasso = picasso;
|
||||
|
|
|
@ -25,9 +25,9 @@ import com.squareup.picasso.Transformation;
|
|||
|
||||
import org.nuclearfog.twidda.R;
|
||||
import org.nuclearfog.twidda.backend.async.AsyncExecutor.AsyncCallback;
|
||||
import org.nuclearfog.twidda.backend.async.EmojiLoader;
|
||||
import org.nuclearfog.twidda.backend.async.EmojiLoader.EmojiParam;
|
||||
import org.nuclearfog.twidda.backend.async.EmojiLoader.EmojiResult;
|
||||
import org.nuclearfog.twidda.backend.async.TextEmojiLoader;
|
||||
import org.nuclearfog.twidda.backend.async.TextEmojiLoader.EmojiParam;
|
||||
import org.nuclearfog.twidda.backend.async.TextEmojiLoader.EmojiResult;
|
||||
import org.nuclearfog.twidda.backend.utils.AppStyles;
|
||||
import org.nuclearfog.twidda.backend.utils.StringUtils;
|
||||
import org.nuclearfog.twidda.backend.utils.EmojiUtils;
|
||||
|
@ -51,7 +51,7 @@ public class UserHolder extends ViewHolder implements OnClickListener, AsyncCall
|
|||
private View notificationDismiss;
|
||||
|
||||
private GlobalSettings settings;
|
||||
private EmojiLoader emojiLoader;
|
||||
private TextEmojiLoader emojiLoader;
|
||||
private Picasso picasso;
|
||||
|
||||
private OnHolderClickListener listener;
|
||||
|
@ -59,7 +59,7 @@ public class UserHolder extends ViewHolder implements OnClickListener, AsyncCall
|
|||
private long tagId = 0L;
|
||||
|
||||
|
||||
public UserHolder(ViewGroup parent, GlobalSettings settings, Picasso picasso, EmojiLoader emojiLoader, OnHolderClickListener listener, boolean enableDelete) {
|
||||
public UserHolder(ViewGroup parent, GlobalSettings settings, Picasso picasso, TextEmojiLoader emojiLoader, OnHolderClickListener listener, boolean enableDelete) {
|
||||
super(LayoutInflater.from(parent.getContext()).inflate(R.layout.item_user, parent, false));
|
||||
this.settings = settings;
|
||||
this.picasso = picasso;
|
||||
|
|
|
@ -21,9 +21,9 @@ import com.squareup.picasso.Transformation;
|
|||
|
||||
import org.nuclearfog.twidda.R;
|
||||
import org.nuclearfog.twidda.backend.async.AsyncExecutor;
|
||||
import org.nuclearfog.twidda.backend.async.EmojiLoader;
|
||||
import org.nuclearfog.twidda.backend.async.EmojiLoader.EmojiParam;
|
||||
import org.nuclearfog.twidda.backend.async.EmojiLoader.EmojiResult;
|
||||
import org.nuclearfog.twidda.backend.async.TextEmojiLoader;
|
||||
import org.nuclearfog.twidda.backend.async.TextEmojiLoader.EmojiParam;
|
||||
import org.nuclearfog.twidda.backend.async.TextEmojiLoader.EmojiResult;
|
||||
import org.nuclearfog.twidda.backend.utils.AppStyles;
|
||||
import org.nuclearfog.twidda.backend.utils.EmojiUtils;
|
||||
import org.nuclearfog.twidda.backend.utils.StringUtils;
|
||||
|
@ -49,7 +49,7 @@ public class UserlistHolder extends ViewHolder implements OnClickListener {
|
|||
private Picasso picasso;
|
||||
private GlobalSettings settings;
|
||||
private OnHolderClickListener listener;
|
||||
private EmojiLoader emojiLoader;
|
||||
private TextEmojiLoader emojiLoader;
|
||||
|
||||
private boolean enableExtras, enableImages;
|
||||
private long tagId;
|
||||
|
@ -57,7 +57,7 @@ public class UserlistHolder extends ViewHolder implements OnClickListener {
|
|||
/**
|
||||
* @param parent Parent view from adapter
|
||||
*/
|
||||
public UserlistHolder(ViewGroup parent, GlobalSettings settings, Picasso picasso, EmojiLoader emojiLoader, OnHolderClickListener listener) {
|
||||
public UserlistHolder(ViewGroup parent, GlobalSettings settings, Picasso picasso, TextEmojiLoader emojiLoader, OnHolderClickListener listener) {
|
||||
super(LayoutInflater.from(parent.getContext()).inflate(R.layout.item_list, parent, false));
|
||||
CardView background = (CardView) itemView;
|
||||
ViewGroup container = itemView.findViewById(R.id.item_list_container);
|
||||
|
|
|
@ -0,0 +1,34 @@
|
|||
package org.nuclearfog.twidda.ui.dialogs;
|
||||
|
||||
import android.content.Context;
|
||||
import android.graphics.Color;
|
||||
import android.view.View;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
|
||||
import com.google.android.material.bottomsheet.BottomSheetBehavior;
|
||||
import com.google.android.material.bottomsheet.BottomSheetDialog;
|
||||
|
||||
import org.nuclearfog.twidda.config.GlobalSettings;
|
||||
import org.nuclearfog.twidda.ui.adapter.EmojiAdapter;
|
||||
|
||||
public class EmojiPicker extends BottomSheetDialog {
|
||||
|
||||
private EmojiAdapter adapter;
|
||||
|
||||
public EmojiPicker(@NonNull Context context) {
|
||||
super(context);
|
||||
RecyclerView listView = new RecyclerView(context);
|
||||
GlobalSettings settings = GlobalSettings.getInstance(context);
|
||||
setContentView(listView);
|
||||
|
||||
BottomSheetBehavior<View> mBehavior = BottomSheetBehavior.from((View)listView.getParent());
|
||||
mBehavior.setPeekHeight(500);
|
||||
listView.setBackgroundColor(settings.getBackgroundColor());
|
||||
|
||||
adapter = new EmojiAdapter(context);
|
||||
}
|
||||
|
||||
|
||||
}
|
|
@ -0,0 +1,50 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="horizontal">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/item_emoji_group"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:visibility="gone" />
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/item_emoji_1"
|
||||
android:layout_width="@dimen/item_emoji_emoji_size"
|
||||
android:layout_height="@dimen/item_emoji_emoji_size"
|
||||
tools:ignore="ContentDescription" />
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/item_emoji_2"
|
||||
android:layout_width="@dimen/item_emoji_emoji_size"
|
||||
android:layout_height="@dimen/item_emoji_emoji_size"
|
||||
tools:ignore="ContentDescription" />
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/item_emoji_3"
|
||||
android:layout_width="@dimen/item_emoji_emoji_size"
|
||||
android:layout_height="@dimen/item_emoji_emoji_size"
|
||||
tools:ignore="ContentDescription" />
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/item_emoji_4"
|
||||
android:layout_width="@dimen/item_emoji_emoji_size"
|
||||
android:layout_height="@dimen/item_emoji_emoji_size"
|
||||
tools:ignore="ContentDescription" />
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/item_emoji_5"
|
||||
android:layout_width="@dimen/item_emoji_emoji_size"
|
||||
android:layout_height="@dimen/item_emoji_emoji_size"
|
||||
tools:ignore="ContentDescription" />
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/item_emoji_6"
|
||||
android:layout_width="@dimen/item_emoji_emoji_size"
|
||||
android:layout_height="@dimen/item_emoji_emoji_size"
|
||||
tools:ignore="ContentDescription" />
|
||||
|
||||
</LinearLayout>
|
|
@ -11,11 +11,11 @@
|
|||
|
||||
<!--dimens of page_settings.xml-->
|
||||
<dimen name="settings_toolbar_height">@dimen/toolbar_height</dimen>
|
||||
<dimen name="settings_color_button_height">42sp</dimen>
|
||||
<dimen name="settings_color_button_height">38sp</dimen>
|
||||
<dimen name="settings_color_button_margin">2dp</dimen>
|
||||
<dimen name="settings_color_button_stroke_width">2dp</dimen>
|
||||
<dimen name="settings_color_button_corner_radius">4dp</dimen>
|
||||
<dimen name="settings_cardview_padding">10dp</dimen>
|
||||
<dimen name="settings_cardview_padding">6dp</dimen>
|
||||
<dimen name="settings_textsize">20sp</dimen>
|
||||
<dimen name="settings_icon_size">20sp</dimen>
|
||||
<dimen name="settings_textsize_small">12sp</dimen>
|
||||
|
@ -295,4 +295,7 @@
|
|||
<dimen name="dialog_status_layout_margins">5dp</dimen>
|
||||
<dimen name="dialog_status_dropdown_height">22sp</dimen>
|
||||
|
||||
<!--dimens of item_emoji.xml-->
|
||||
<dimen name="item_emoji_emoji_size">48dp</dimen>
|
||||
|
||||
</resources>
|
Loading…
Reference in New Issue