feat(status/translation): support translating spoiler

This commit is contained in:
FineFindus
2023-11-01 20:44:24 +01:00
parent be2b290300
commit 47549fa88c
3 changed files with 15 additions and 1 deletions

View File

@@ -890,6 +890,11 @@ public abstract class BaseStatusListFragment<T extends DisplayItemsParent> exten
notifyItemChanged(itemID, TextStatusDisplayItem.class); notifyItemChanged(itemID, TextStatusDisplayItem.class);
} }
SpoilerStatusDisplayItem.Holder spoiler=findHolderOfType(itemID, SpoilerStatusDisplayItem.Holder.class);
if(spoiler!=null){
spoiler.rebind();
}
MediaGridStatusDisplayItem.Holder media=findHolderOfType(itemID, MediaGridStatusDisplayItem.Holder.class); MediaGridStatusDisplayItem.Holder media=findHolderOfType(itemID, MediaGridStatusDisplayItem.Holder.class);
if (media!=null) { if (media!=null) {
media.rebind(); media.rebind();

View File

@@ -10,6 +10,7 @@ public class Translation extends BaseModel{
public String detectedSourceLanguage; public String detectedSourceLanguage;
@RequiredField @RequiredField
public String provider; public String provider;
public String spoilerText;
public MediaAttachment[] mediaAttachments; public MediaAttachment[] mediaAttachments;
public PollTranslation poll; public PollTranslation poll;

View File

@@ -27,6 +27,7 @@ public class SpoilerStatusDisplayItem extends StatusDisplayItem{
public final Status status; public final Status status;
public final ArrayList<StatusDisplayItem> contentItems=new ArrayList<>(); public final ArrayList<StatusDisplayItem> contentItems=new ArrayList<>();
private final CharSequence parsedTitle; private final CharSequence parsedTitle;
private CharSequence translatedTitle;
private final CustomEmojiHelper emojiHelper; private final CustomEmojiHelper emojiHelper;
private final Type type; private final Type type;
private final int attachmentCount; private final int attachmentCount;
@@ -90,7 +91,14 @@ public class SpoilerStatusDisplayItem extends StatusDisplayItem{
@Override @Override
public void onBind(SpoilerStatusDisplayItem item){ public void onBind(SpoilerStatusDisplayItem item){
title.setText(item.parsedTitle); if(item.status.translationState==Status.TranslationState.SHOWN){
if(item.translatedTitle==null){
item.translatedTitle=item.status.translation.spoilerText;
}
title.setText(item.translatedTitle);
}else{
title.setText(item.parsedTitle);
}
action.setText(item.status.spoilerRevealed ? R.string.spoiler_hide : R.string.sk_spoiler_show); action.setText(item.status.spoilerRevealed ? R.string.spoiler_hide : R.string.sk_spoiler_show);
itemView.setPadding( itemView.setPadding(
itemView.getPaddingLeft(), itemView.getPaddingLeft(),