StatusBaseViewHolder: fix recycling bug, fix emoji reaction view empty space touch
This commit is contained in:
parent
738d378154
commit
8908e93580
|
@ -9,12 +9,14 @@ import android.text.TextUtils;
|
|||
import android.text.format.DateUtils;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.view.MotionEvent;
|
||||
import android.widget.Button;
|
||||
import android.widget.ImageButton;
|
||||
import android.widget.ImageView;
|
||||
import android.widget.LinearLayout;
|
||||
import android.widget.TextView;
|
||||
import android.widget.Toast;
|
||||
import android.util.Log;
|
||||
|
||||
import androidx.annotation.DrawableRes;
|
||||
import androidx.annotation.NonNull;
|
||||
|
@ -131,14 +133,15 @@ public abstract class StatusBaseViewHolder extends RecyclerView.ViewHolder {
|
|||
moreButton = itemView.findViewById(R.id.status_more);
|
||||
emojiReactionsView = itemView.findViewById(R.id.status_emoji_reactions);
|
||||
|
||||
float INCREASE_HORIZONTAL_HIT_AREA = 20.0f;
|
||||
/* Disabled, because it doesn't handle parent resizes. It must be fixed and can be enabled again */
|
||||
/* float INCREASE_HORIZONTAL_HIT_AREA = 20.0f;
|
||||
|
||||
ViewExtensionsKt.increaseHitArea(replyButton, 0.0f, INCREASE_HORIZONTAL_HIT_AREA);
|
||||
if(reblogButton != null)
|
||||
ViewExtensionsKt.increaseHitArea(reblogButton, 0.0f, INCREASE_HORIZONTAL_HIT_AREA);
|
||||
ViewExtensionsKt.increaseHitArea(favouriteButton, 0.0f, INCREASE_HORIZONTAL_HIT_AREA);
|
||||
ViewExtensionsKt.increaseHitArea(bookmarkButton, 0.0f, INCREASE_HORIZONTAL_HIT_AREA);
|
||||
ViewExtensionsKt.increaseHitArea(moreButton, 0.0f, INCREASE_HORIZONTAL_HIT_AREA);
|
||||
ViewExtensionsKt.increaseHitArea(moreButton, 0.0f, INCREASE_HORIZONTAL_HIT_AREA); */
|
||||
|
||||
itemView.findViewById(R.id.status_media_preview_container).setClipToOutline(true);
|
||||
|
||||
|
@ -707,11 +710,29 @@ public abstract class StatusBaseViewHolder extends RecyclerView.ViewHolder {
|
|||
}
|
||||
|
||||
private void setEmojiReactions(@Nullable List<EmojiReaction> reactions, final StatusActionListener listener, final String statusId) {
|
||||
if(emojiReactionsView != null && reactions != null && reactions.size() > 0) {
|
||||
emojiReactionsView.setVisibility(View.VISIBLE);
|
||||
FlexboxLayoutManager lm = new FlexboxLayoutManager(emojiReactionsView.getContext());
|
||||
emojiReactionsView.setLayoutManager(lm);
|
||||
emojiReactionsView.setAdapter(new EmojiReactionsAdapter(reactions, listener, statusId));
|
||||
if(emojiReactionsView != null ) {
|
||||
if( reactions != null && reactions.size() > 0) {
|
||||
emojiReactionsView.setVisibility(View.VISIBLE);
|
||||
FlexboxLayoutManager lm = new FlexboxLayoutManager(emojiReactionsView.getContext());
|
||||
emojiReactionsView.setLayoutManager(lm);
|
||||
emojiReactionsView.setAdapter(new EmojiReactionsAdapter(reactions, listener, statusId));
|
||||
emojiReactionsView.setOnTouchListener(new View.OnTouchListener() {
|
||||
@Override
|
||||
public boolean onTouch(View v, MotionEvent event) {
|
||||
if(event.getAction() == MotionEvent.ACTION_POINTER_UP ||
|
||||
event.getAction() == MotionEvent.ACTION_UP) {
|
||||
int position = getAdapterPosition();
|
||||
if(position != RecyclerView.NO_POSITION)
|
||||
listener.onViewThread(position);
|
||||
}
|
||||
return false;
|
||||
}
|
||||
});
|
||||
} else {
|
||||
emojiReactionsView.setVisibility(View.GONE);
|
||||
emojiReactionsView.setLayoutManager(null);
|
||||
emojiReactionsView.setAdapter(null);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue