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());

View File

@@ -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" />
<ImageView
android:id="@+id/translate"
android:layout_width="36dp"
android:layout_height="36dp"
android:layout_marginTop="-6dp"
android:layout_marginEnd="6dp"
android:layout_toStartOf="@id/visibility"
android:background="?android:selectableItemBackgroundBorderless"
android:scaleType="center"
android:src="@drawable/ic_translate"
android:tint="@color/translate_icon" />
<ImageView
android:id="@+id/avatar"
android:layout_width="46dp"
@@ -58,7 +46,7 @@
android:layout_width="match_parent"
android:layout_height="24dp"
android:layout_marginEnd="8dp"
android:layout_toStartOf="@id/translate"
android:layout_toStartOf="@id/visibility"
android:layout_toEndOf="@id/avatar">
<TextView
@@ -90,7 +78,7 @@
android:layout_height="20dp"
android:layout_below="@id/name_wrap"
android:layout_marginEnd="8dp"
android:layout_toStartOf="@id/translate"
android:layout_toStartOf="@id/visibility"
android:layout_toEndOf="@id/avatar"
android:layoutDirection="locale"
android:orientation="horizontal">

View File

@@ -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"/>
<View
android:id="@+id/border_bottom"
android:layout_width="match_parent"
@@ -59,16 +58,33 @@
android:layout_marginTop="8dp"
android:gravity="center_vertical">
<Button
style="?secondaryButtonStyle"
android:background="?android:selectableItemBackground"
android:textColor="?android:textColorSecondary"
android:id="@+id/translate_btn"
<FrameLayout
android:id="@+id/action_btn_wrap"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginHorizontal="8dp"
android:paddingHorizontal="8dp"
android:text="Translate"/>
android:clipToPadding="false">
<org.joinmastodon.android.ui.views.ProgressBarButton
android:id="@+id/translate_btn"
style="?secondaryButtonStyle"
android:background="?android:selectableItemBackground"
android:textColor="?android:textColorSecondary"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:paddingHorizontal="8dp"
tools:text="@string/translate_post"/>
<ProgressBar
android:id="@+id/translate_progress"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:indeterminate="true"
style="?android:progressBarStyleSmall"
android:elevation="10dp"
android:outlineProvider="none"
android:indeterminateTint="?android:textColorPrimary"
android:visibility="gone"/>
</FrameLayout>
<TextView
android:id="@+id/translate_info"
@@ -83,22 +99,6 @@
</org.joinmastodon.android.ui.views.AutoOrientationLinearLayout>
<!-- <Button-->
<!-- android:id="@+id/translate"-->
<!-- android:layout_width="wrap_content"-->
<!-- android:layout_height="32dp"-->
<!-- android:background="@drawable/bg_inline_button"-->
<!-- android:elevation="0dp"-->
<!-- android:ellipsize="middle"-->
<!-- android:fontFamily="sans-serif-medium"-->
<!-- android:singleLine="true"-->
<!-- android:stateListAnimator="@null"-->
<!-- android:textColor="?android:textColorPrimary"-->
<!-- android:textSize="16sp"-->
<!-- tools:text="@string/pink_color" />-->
</LinearLayout>
<LinearLayout