Cleaning up the old implementation

This commit is contained in:
LucasGGamerM
2022-12-20 17:09:34 -03:00
parent 586622e90d
commit c83910c885
5 changed files with 38 additions and 70 deletions

View File

@@ -463,22 +463,6 @@ public abstract class BaseStatusListFragment<T extends DisplayItemsParent> exten
revealSpoiler(status, holder.getItemID());
}
public void onRevealTranslationClick(HeaderStatusDisplayItem.Holder holder, View v){
Status status=holder.getItem().status;
revealTranslation(status, holder.getItemID(), v);
}
protected void revealTranslation(Status status, String itemID, View v){
status.wantsTranslation=!status.wantsTranslation;
TextStatusDisplayItem.Holder text=findHolderOfType(itemID, TextStatusDisplayItem.Holder.class);
if(text!=null)
adapter.notifyItemChanged(text.getAbsoluteAdapterPosition()-getMainAdapterOffset());
HeaderStatusDisplayItem.Holder header=findHolderOfType(itemID, HeaderStatusDisplayItem.Holder.class);
if(header!=null)
header.rebind();
updateImagesSpoilerState(status, itemID);
}
protected void revealSpoiler(Status status, String itemID){
status.spoilerRevealed=true;
TextStatusDisplayItem.Holder text=findHolderOfType(itemID, TextStatusDisplayItem.Holder.class);

View File

@@ -63,7 +63,6 @@ public class HeaderStatusDisplayItem extends StatusDisplayItem{
private SpannableStringBuilder parsedName;
public final Status status;
private boolean hasVisibilityToggle;
private boolean hasTranslateToggle;
boolean needBottomPadding;
private String extraText;
@@ -77,10 +76,7 @@ public class HeaderStatusDisplayItem extends StatusDisplayItem{
this.status=status;
HtmlParser.parseCustomEmoji(parsedName, user.emojis);
emojiHelper.setText(parsedName);
Preferences prefs = AccountSessionManager.getInstance().getAccount(accountID).preferences;
if(status!=null){
hasTranslateToggle = !(Objects.equals(status.language, prefs.postingDefaultLanguage) || (status.visibility == StatusPrivacy.DIRECT || status.visibility == StatusPrivacy.PRIVATE));
// hasTranslateToggle = !status.language.equals(prefs.postingDefaultLanguage) || (status.visibility==StatusPrivacy.PRIVATE);
hasVisibilityToggle=status.sensitive || !TextUtils.isEmpty(status.spoilerText);
if(!hasVisibilityToggle && !status.mediaAttachments.isEmpty()){
for(Attachment att:status.mediaAttachments){
@@ -114,7 +110,7 @@ public class HeaderStatusDisplayItem extends StatusDisplayItem{
public static class Holder extends StatusDisplayItem.Holder<HeaderStatusDisplayItem> implements ImageLoaderViewHolder{
private final TextView name, username, timestamp, extraText;
private final ImageView avatar, more, visibility, translate;
private final ImageView avatar, more, visibility;
private final PopupMenu optionsMenu;
private Relationship relationship;
private APIRequest<?> currentRelationshipRequest;
@@ -128,7 +124,6 @@ public class HeaderStatusDisplayItem extends StatusDisplayItem{
public Holder(Activity activity, ViewGroup parent){
super(activity, R.layout.display_item_header, parent);
translate=findViewById(R.id.translate);
name=findViewById(R.id.name);
username=findViewById(R.id.username);
timestamp=findViewById(R.id.timestamp);
@@ -141,7 +136,6 @@ public class HeaderStatusDisplayItem extends StatusDisplayItem{
avatar.setClipToOutline(true);
more.setOnClickListener(this::onMoreClick);
visibility.setOnClickListener(v->item.parentFragment.onVisibilityIconClick(this));
translate.setOnClickListener(v->item.parentFragment.onRevealTranslationClick(this, v));
optionsMenu=new PopupMenu(activity, more);
optionsMenu.inflate(R.menu.post);
@@ -235,7 +229,6 @@ public class HeaderStatusDisplayItem extends StatusDisplayItem{
else
timestamp.setText(item.parentFragment.getString(R.string.edited_timestamp, UiUtils.formatRelativeTimestamp(itemView.getContext(), item.status.editedAt)));
visibility.setVisibility(item.hasVisibilityToggle && !item.inset ? View.VISIBLE : View.GONE);
translate.setVisibility(item.hasTranslateToggle ? View.VISIBLE : View.GONE);
if(item.hasVisibilityToggle){
visibility.setImageResource(item.status.spoilerRevealed ? R.drawable.ic_visibility_off : R.drawable.ic_visibility);
visibility.setContentDescription(item.parentFragment.getString(item.status.spoilerRevealed ? R.string.hide_content : R.string.reveal_content));
@@ -243,10 +236,6 @@ public class HeaderStatusDisplayItem extends StatusDisplayItem{
visibility.setTooltipText(visibility.getContentDescription());
}
}
if(item.hasTranslateToggle){
translate.setImageResource(R.drawable.ic_translate);
translate.setSelected(item.status.wantsTranslation);
}
itemView.setPadding(itemView.getPaddingLeft(), itemView.getPaddingTop(), itemView.getPaddingRight(), item.needBottomPadding ? V.dp(16) : 0);
if(TextUtils.isEmpty(item.extraText)){
extraText.setVisibility(View.GONE);

View File

@@ -79,7 +79,7 @@ public class TextStatusDisplayItem extends StatusDisplayItem{
private final LinkedTextView text;
private final LinearLayout spoilerHeader;
private final TextView spoilerTitle, spoilerTitleInline, translateInfo;
private final View spoilerOverlay, borderTop, borderBottom, textWrap, translateWrap;
private final View spoilerOverlay, borderTop, borderBottom, textWrap, translateWrap, translateProgress;
private final Drawable backgroundColor, borderColor;
private final Button translateButton;
@@ -96,6 +96,7 @@ public class TextStatusDisplayItem extends StatusDisplayItem{
translateWrap=findViewById(R.id.translate_wrap);
translateButton=findViewById(R.id.translate_btn);
translateInfo=findViewById(R.id.translate_info);
translateProgress=findViewById(R.id.translate_progress);
itemView.setOnClickListener(v->item.parentFragment.onRevealSpoilerClick(this));
TypedValue outValue=new TypedValue();
@@ -151,16 +152,22 @@ public class TextStatusDisplayItem extends StatusDisplayItem{
translateInfo.setText(item.translated ? itemView.getResources().getString(R.string.sk_translated_using, item.translation.provider) : "");
translateButton.setOnClickListener(v->{
if (item.translation == null) {
translateProgress.setVisibility(View.VISIBLE);
translateButton.setClickable(false);
new TranslateStatus(item.status.id).setCallback(new Callback<>() {
@Override
public void onSuccess(TranslatedStatus translatedStatus) {
item.translation = translatedStatus;
item.translated = true;
translateProgress.setVisibility(View.GONE);
translateButton.setClickable(true);
rebind();
}
@Override
public void onError(ErrorResponse error) {
translateProgress.setVisibility(View.GONE);
translateButton.setClickable(true);
error.showToast(itemView.getContext());
}
}).exec(item.parentFragment.getAccountID());