From c83910c88569da9a39513ad9ebc6f8a84b48223d Mon Sep 17 00:00:00 2001 From: LucasGGamerM Date: Tue, 20 Dec 2022 17:09:34 -0300 Subject: [PATCH] Cleaning up the old implementation --- .../fragments/BaseStatusListFragment.java | 16 ------ .../displayitems/HeaderStatusDisplayItem.java | 13 +---- .../displayitems/TextStatusDisplayItem.java | 9 +++- .../main/res/layout/display_item_header.xml | 20 ++------ .../src/main/res/layout/display_item_text.xml | 50 +++++++++---------- 5 files changed, 38 insertions(+), 70 deletions(-) diff --git a/mastodon/src/main/java/org/joinmastodon/android/fragments/BaseStatusListFragment.java b/mastodon/src/main/java/org/joinmastodon/android/fragments/BaseStatusListFragment.java index ebecd34cd..c44e371df 100644 --- a/mastodon/src/main/java/org/joinmastodon/android/fragments/BaseStatusListFragment.java +++ b/mastodon/src/main/java/org/joinmastodon/android/fragments/BaseStatusListFragment.java @@ -463,22 +463,6 @@ public abstract class BaseStatusListFragment 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); diff --git a/mastodon/src/main/java/org/joinmastodon/android/ui/displayitems/HeaderStatusDisplayItem.java b/mastodon/src/main/java/org/joinmastodon/android/ui/displayitems/HeaderStatusDisplayItem.java index 9774729f5..07744eaa3 100644 --- a/mastodon/src/main/java/org/joinmastodon/android/ui/displayitems/HeaderStatusDisplayItem.java +++ b/mastodon/src/main/java/org/joinmastodon/android/ui/displayitems/HeaderStatusDisplayItem.java @@ -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 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); diff --git a/mastodon/src/main/java/org/joinmastodon/android/ui/displayitems/TextStatusDisplayItem.java b/mastodon/src/main/java/org/joinmastodon/android/ui/displayitems/TextStatusDisplayItem.java index aae62d3bd..fd2f9863d 100644 --- a/mastodon/src/main/java/org/joinmastodon/android/ui/displayitems/TextStatusDisplayItem.java +++ b/mastodon/src/main/java/org/joinmastodon/android/ui/displayitems/TextStatusDisplayItem.java @@ -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()); diff --git a/mastodon/src/main/res/layout/display_item_header.xml b/mastodon/src/main/res/layout/display_item_header.xml index f526bd85e..9529d4c7b 100644 --- a/mastodon/src/main/res/layout/display_item_header.xml +++ b/mastodon/src/main/res/layout/display_item_header.xml @@ -26,25 +26,13 @@ android:layout_width="36dp" android:layout_height="36dp" android:layout_marginTop="-6dp" - android:layout_marginEnd="6dp" - android:layout_toStartOf="@id/more" + android:layout_marginRight="6dp" + android:layout_toLeftOf="@id/more" android:background="?android:selectableItemBackgroundBorderless" android:scaleType="center" android:src="@drawable/ic_visibility" android:tint="?android:textColorSecondary" /> - - diff --git a/mastodon/src/main/res/layout/display_item_text.xml b/mastodon/src/main/res/layout/display_item_text.xml index ec33f1f56..812c78b6d 100644 --- a/mastodon/src/main/res/layout/display_item_text.xml +++ b/mastodon/src/main/res/layout/display_item_text.xml @@ -33,10 +33,9 @@ android:layout_width="match_parent" android:layout_height="wrap_content" android:textAppearance="@style/m3_title_medium" - android:background="@color/error_900" + android:background="?colorBackgroundLight" tools:text="CW title"/> - -