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.CustomEmojiPopupKeyboard;
|
||||||
import org.joinmastodon.android.ui.utils.TextDrawable;
|
import org.joinmastodon.android.ui.utils.TextDrawable;
|
||||||
import org.joinmastodon.android.ui.utils.UiUtils;
|
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.Nav;
|
||||||
import me.grishka.appkit.api.Callback;
|
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 static class EmojiReactionViewHolder extends BindableViewHolder<Pair<EmojiReactionsStatusDisplayItem, EmojiReaction>> implements ImageLoaderViewHolder{
|
||||||
private final ProgressBarButton btn;
|
private final EmojiReactionButton btn;
|
||||||
private final ProgressBar progress;
|
private final ProgressBar progress;
|
||||||
|
|
||||||
public EmojiReactionViewHolder(Context context, RecyclerView list){
|
public EmojiReactionViewHolder(Context context, RecyclerView list){
|
||||||
@@ -379,6 +379,14 @@ public class EmojiReactionsStatusDisplayItem extends StatusDisplayItem {
|
|||||||
btn.setCompoundDrawablesRelative(item.first.placeholder, null, null, null);
|
btn.setCompoundDrawablesRelative(item.first.placeholder, null, null, null);
|
||||||
}
|
}
|
||||||
btn.setSelected(reaction.me);
|
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->{
|
btn.setOnClickListener(e->{
|
||||||
boolean deleting=reaction.me;
|
boolean deleting=reaction.me;
|
||||||
parent.createRequest(reaction.name, reaction.count, deleting, this, ()->{
|
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:indeterminate="true"
|
||||||
android:outlineProvider="none"
|
android:outlineProvider="none"
|
||||||
android:visibility="gone"/>
|
android:visibility="gone"/>
|
||||||
<org.joinmastodon.android.ui.views.ProgressBarButton
|
<org.joinmastodon.android.ui.views.EmojiReactionButton
|
||||||
android:id="@+id/btn"
|
android:id="@+id/btn"
|
||||||
style="@style/Widget.Mastodon.M3.Button.Outlined.Icon"
|
style="@style/Widget.Mastodon.M3.Button.Outlined.Icon"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
|
|||||||
Reference in New Issue
Block a user