support static url for emoji reacts and keyboard
This commit is contained in:
parent
ea01b14ffb
commit
807010893a
4 changed files with 28 additions and 9 deletions
|
@ -41,6 +41,12 @@ public class Emoji extends BaseModel{
|
||||||
this.staticUrl = staticUrl;
|
this.staticUrl = staticUrl;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public String getUrl(boolean playGifs){
|
||||||
|
String idealUrl=playGifs ? url : staticUrl;
|
||||||
|
if(idealUrl==null) return url==null ? staticUrl : url;
|
||||||
|
return idealUrl;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String toString(){
|
public String toString(){
|
||||||
return "Emoji{"+
|
return "Emoji{"+
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
package org.joinmastodon.android.model;
|
package org.joinmastodon.android.model;
|
||||||
|
|
||||||
|
import org.joinmastodon.android.GlobalUserPreferences;
|
||||||
import org.parceler.Parcel;
|
import org.parceler.Parcel;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
@ -22,6 +23,12 @@ public class EmojiReaction {
|
||||||
|
|
||||||
public transient ImageLoaderRequest request;
|
public transient ImageLoaderRequest request;
|
||||||
|
|
||||||
|
public String getUrl(boolean playGifs){
|
||||||
|
String idealUrl=playGifs ? url : staticUrl;
|
||||||
|
if(idealUrl==null) return url==null ? staticUrl : url;
|
||||||
|
return idealUrl;
|
||||||
|
}
|
||||||
|
|
||||||
public static EmojiReaction of(Emoji info, Account me){
|
public static EmojiReaction of(Emoji info, Account me){
|
||||||
EmojiReaction reaction=new EmojiReaction();
|
EmojiReaction reaction=new EmojiReaction();
|
||||||
reaction.me=true;
|
reaction.me=true;
|
||||||
|
|
File diff suppressed because one or more lines are too long
|
@ -21,6 +21,7 @@ import androidx.recyclerview.widget.LinearSmoothScroller;
|
||||||
import androidx.recyclerview.widget.RecyclerView;
|
import androidx.recyclerview.widget.RecyclerView;
|
||||||
|
|
||||||
import org.joinmastodon.android.E;
|
import org.joinmastodon.android.E;
|
||||||
|
import org.joinmastodon.android.GlobalUserPreferences;
|
||||||
import org.joinmastodon.android.R;
|
import org.joinmastodon.android.R;
|
||||||
import org.joinmastodon.android.api.MastodonAPIRequest;
|
import org.joinmastodon.android.api.MastodonAPIRequest;
|
||||||
import org.joinmastodon.android.api.requests.announcements.AddAnnouncementReaction;
|
import org.joinmastodon.android.api.requests.announcements.AddAnnouncementReaction;
|
||||||
|
@ -59,7 +60,7 @@ import me.grishka.appkit.views.UsableRecyclerView;
|
||||||
public class EmojiReactionsStatusDisplayItem extends StatusDisplayItem {
|
public class EmojiReactionsStatusDisplayItem extends StatusDisplayItem {
|
||||||
public final Status status;
|
public final Status status;
|
||||||
private final Drawable placeholder;
|
private final Drawable placeholder;
|
||||||
private final boolean hideEmpty, forAnnouncement;
|
private final boolean hideEmpty, forAnnouncement, playGifs;
|
||||||
private final String accountID;
|
private final String accountID;
|
||||||
private static final float ALPHA_DISABLED=0.55f;
|
private static final float ALPHA_DISABLED=0.55f;
|
||||||
|
|
||||||
|
@ -71,11 +72,12 @@ public class EmojiReactionsStatusDisplayItem extends StatusDisplayItem {
|
||||||
this.accountID=accountID;
|
this.accountID=accountID;
|
||||||
placeholder=parentFragment.getContext().getDrawable(R.drawable.image_placeholder).mutate();
|
placeholder=parentFragment.getContext().getDrawable(R.drawable.image_placeholder).mutate();
|
||||||
placeholder.setBounds(0, 0, V.sp(24), V.sp(24));
|
placeholder.setBounds(0, 0, V.sp(24), V.sp(24));
|
||||||
|
playGifs=GlobalUserPreferences.playGifs;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int getImageCount(){
|
public int getImageCount(){
|
||||||
return (int) status.reactions.stream().filter(r->r.url != null).count();
|
return (int) status.reactions.stream().filter(r->r.getUrl(playGifs)!=null).count();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -169,8 +171,9 @@ public class EmojiReactionsStatusDisplayItem extends StatusDisplayItem {
|
||||||
public void onBind(EmojiReactionsStatusDisplayItem item) {
|
public void onBind(EmojiReactionsStatusDisplayItem item) {
|
||||||
if(emojiKeyboard != null) root.removeView(emojiKeyboard.getView());
|
if(emojiKeyboard != null) root.removeView(emojiKeyboard.getView());
|
||||||
AccountSession session=item.parentFragment.getSession();
|
AccountSession session=item.parentFragment.getSession();
|
||||||
item.status.reactions.forEach(r->
|
item.status.reactions.forEach(r->r.request=r.getUrl(item.playGifs)!=null
|
||||||
r.request=r.url != null ? new UrlImageLoaderRequest(r.url, V.sp(24), V.sp(24)) : null);
|
? new UrlImageLoaderRequest(r.getUrl(item.playGifs), V.sp(24), V.sp(24))
|
||||||
|
: null);
|
||||||
emojiKeyboard=new CustomEmojiPopupKeyboard(
|
emojiKeyboard=new CustomEmojiPopupKeyboard(
|
||||||
(Activity) item.parentFragment.getContext(),
|
(Activity) item.parentFragment.getContext(),
|
||||||
AccountSessionManager.getInstance().getCustomEmojis(session.domain),
|
AccountSessionManager.getInstance().getCustomEmojis(session.domain),
|
||||||
|
@ -283,7 +286,7 @@ public class EmojiReactionsStatusDisplayItem extends StatusDisplayItem {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void clearImage(int index){
|
public void clearImage(int index){
|
||||||
if(item.status.reactions.get(index).url==null) return;
|
if(item.status.reactions.get(index).getUrl(item.playGifs)==null) return;
|
||||||
setImage(index, item.placeholder);
|
setImage(index, item.placeholder);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -316,7 +319,7 @@ public class EmojiReactionsStatusDisplayItem extends StatusDisplayItem {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int getImageCountForItem(int position){
|
public int getImageCountForItem(int position){
|
||||||
return item.status.reactions.get(position).url == null ? 0 : 1;
|
return item.status.reactions.get(position).getUrl(item.playGifs)==null ? 0 : 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -356,7 +359,7 @@ public class EmojiReactionsStatusDisplayItem extends StatusDisplayItem {
|
||||||
btn.setText(UiUtils.abbreviateNumber(reaction.count));
|
btn.setText(UiUtils.abbreviateNumber(reaction.count));
|
||||||
btn.setContentDescription(reaction.name);
|
btn.setContentDescription(reaction.name);
|
||||||
if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) btn.setTooltipText(reaction.name);
|
if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) btn.setTooltipText(reaction.name);
|
||||||
if(reaction.url==null){
|
if(reaction.getUrl(parent.playGifs)==null){
|
||||||
Paint p=new Paint();
|
Paint p=new Paint();
|
||||||
p.setTextSize(V.sp(18));
|
p.setTextSize(V.sp(18));
|
||||||
TextDrawable drawable=new TextDrawable(p, reaction.name);
|
TextDrawable drawable=new TextDrawable(p, reaction.name);
|
||||||
|
@ -402,7 +405,7 @@ public class EmojiReactionsStatusDisplayItem extends StatusDisplayItem {
|
||||||
args.putString("statusID", parent.status.id);
|
args.putString("statusID", parent.status.id);
|
||||||
int atSymbolIndex = emojiReaction.name.indexOf("@");
|
int atSymbolIndex = emojiReaction.name.indexOf("@");
|
||||||
args.putString("emoji", atSymbolIndex != -1 ? emojiReaction.name.substring(0, atSymbolIndex) : emojiReaction.name);
|
args.putString("emoji", atSymbolIndex != -1 ? emojiReaction.name.substring(0, atSymbolIndex) : emojiReaction.name);
|
||||||
args.putString("url", emojiReaction.url);
|
args.putString("url", emojiReaction.getUrl(parent.playGifs));
|
||||||
args.putInt("count", emojiReaction.count);
|
args.putInt("count", emojiReaction.count);
|
||||||
Nav.go(parent.parentFragment.getActivity(), StatusEmojiReactionsListFragment.class, args);
|
Nav.go(parent.parentFragment.getActivity(), StatusEmojiReactionsListFragment.class, args);
|
||||||
return true;
|
return true;
|
||||||
|
|
Loading…
Add table
Reference in a new issue