Disable remote emoji reaction buttons on Iceshrimp
This commit is contained in:
@@ -44,7 +44,7 @@ import org.joinmastodon.android.model.Status;
|
||||
import org.joinmastodon.android.ui.CustomEmojiPopupKeyboard;
|
||||
import org.joinmastodon.android.ui.utils.TextDrawable;
|
||||
import org.joinmastodon.android.ui.utils.UiUtils;
|
||||
import org.joinmastodon.android.ui.views.ProgressBarButton;
|
||||
import org.joinmastodon.android.ui.views.EmojiReactionButton;
|
||||
|
||||
import me.grishka.appkit.Nav;
|
||||
import me.grishka.appkit.api.Callback;
|
||||
@@ -340,7 +340,7 @@ public class EmojiReactionsStatusDisplayItem extends StatusDisplayItem {
|
||||
}
|
||||
|
||||
private static class EmojiReactionViewHolder extends BindableViewHolder<Pair<EmojiReactionsStatusDisplayItem, EmojiReaction>> implements ImageLoaderViewHolder{
|
||||
private final ProgressBarButton btn;
|
||||
private final EmojiReactionButton btn;
|
||||
private final ProgressBar progress;
|
||||
|
||||
public EmojiReactionViewHolder(Context context, RecyclerView list){
|
||||
@@ -379,6 +379,14 @@ public class EmojiReactionsStatusDisplayItem extends StatusDisplayItem {
|
||||
btn.setCompoundDrawablesRelative(item.first.placeholder, null, null, null);
|
||||
}
|
||||
btn.setSelected(reaction.me);
|
||||
if(parent.parentFragment.isInstanceIceshrimp() && reaction.name.contains("@")){
|
||||
btn.setEnabled(false);
|
||||
btn.setClickable(false);
|
||||
btn.setLongClickable(true);
|
||||
}else{
|
||||
btn.setEnabled(true);
|
||||
btn.setClickable(true);
|
||||
}
|
||||
btn.setOnClickListener(e->{
|
||||
boolean deleting=reaction.me;
|
||||
parent.createRequest(reaction.name, reaction.count, deleting, this, ()->{
|
||||
|
||||
@@ -0,0 +1,34 @@
|
||||
package org.joinmastodon.android.ui.views;
|
||||
|
||||
import android.content.Context;
|
||||
import android.os.Handler;
|
||||
import android.util.AttributeSet;
|
||||
import android.view.MotionEvent;
|
||||
import android.view.ViewConfiguration;
|
||||
|
||||
public class EmojiReactionButton extends ProgressBarButton {
|
||||
private final Handler handler=new Handler();
|
||||
|
||||
public EmojiReactionButton(Context context){
|
||||
super(context);
|
||||
}
|
||||
|
||||
public EmojiReactionButton(Context context, AttributeSet attrs){
|
||||
super(context, attrs);
|
||||
}
|
||||
|
||||
public EmojiReactionButton(Context context, AttributeSet attrs, int defStyleAttr){
|
||||
super(context, attrs, defStyleAttr);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onTouchEvent(MotionEvent event) {
|
||||
// allow long click even if button is disabled
|
||||
int action=event.getAction();
|
||||
if(action==MotionEvent.ACTION_DOWN)
|
||||
handler.postDelayed(this::performLongClick, ViewConfiguration.getLongPressTimeout());
|
||||
if(action==MotionEvent.ACTION_UP)
|
||||
handler.removeCallbacksAndMessages(null);
|
||||
return super.onTouchEvent(event);
|
||||
}
|
||||
}
|
||||
@@ -15,7 +15,7 @@
|
||||
android:indeterminate="true"
|
||||
android:outlineProvider="none"
|
||||
android:visibility="gone"/>
|
||||
<org.joinmastodon.android.ui.views.ProgressBarButton
|
||||
<org.joinmastodon.android.ui.views.EmojiReactionButton
|
||||
android:id="@+id/btn"
|
||||
style="@style/Widget.Mastodon.M3.Button.Outlined.Icon"
|
||||
android:layout_width="wrap_content"
|
||||
|
||||
Reference in New Issue
Block a user