From c463a3fc3927b24a7d217ce06cc942aae091f602 Mon Sep 17 00:00:00 2001 From: LucasGGamerM Date: Fri, 9 Dec 2022 13:42:29 -0300 Subject: [PATCH] The front end if finally ready! --- .../fragments/BaseStatusListFragment.java | 2 +- .../displayitems/HeaderStatusDisplayItem.java | 24 +++++-------------- .../main/res/drawable/ic_translate_off.xml | 5 ++++ .../src/main/res/drawable/ic_translate_on.xml | 5 ++++ .../main/res/layout/display_item_header.xml | 12 +++++----- 5 files changed, 23 insertions(+), 25 deletions(-) create mode 100644 mastodon/src/main/res/drawable/ic_translate_off.xml create mode 100644 mastodon/src/main/res/drawable/ic_translate_on.xml 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 d4416c54a..8e70d4cbf 100644 --- a/mastodon/src/main/java/org/joinmastodon/android/fragments/BaseStatusListFragment.java +++ b/mastodon/src/main/java/org/joinmastodon/android/fragments/BaseStatusListFragment.java @@ -463,7 +463,7 @@ public abstract class BaseStatusListFragment exten } protected void revealTranslation(Status status, String itemID){ - status.wantsTranslation=true; + status.wantsTranslation=!status.wantsTranslation; TextStatusDisplayItem.Holder text=findHolderOfType(itemID, TextStatusDisplayItem.Holder.class); if(text!=null) adapter.notifyItemChanged(text.getAbsoluteAdapterPosition()-getMainAdapterOffset()); 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 5007e25dc..a35cff993 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 @@ -62,6 +62,7 @@ public class HeaderStatusDisplayItem extends StatusDisplayItem{ private SpannableStringBuilder parsedName; public final Status status; private boolean hasVisibilityToggle; + private boolean hasTranslateToggle; boolean needBottomPadding; private String extraText; @@ -76,6 +77,7 @@ public class HeaderStatusDisplayItem extends StatusDisplayItem{ HtmlParser.parseCustomEmoji(parsedName, user.emojis); emojiHelper.setText(parsedName); if(status!=null){ + hasTranslateToggle=true; hasVisibilityToggle=status.sensitive || !TextUtils.isEmpty(status.spoilerText); if(!hasVisibilityToggle && !status.mediaAttachments.isEmpty()){ for(Attachment att:status.mediaAttachments){ @@ -217,24 +219,6 @@ public class HeaderStatusDisplayItem extends StatusDisplayItem{ }else if(id==R.id.bookmark){ AccountSessionManager.getInstance().getAccount(item.accountID).getStatusInteractionController().setBookmarked(item.status, !item.status.bookmarked); } -// else if(id==R.id.translate){ -// item.status.wantsTranslation = !item.status.wantsTranslation; - -// new GetStatusTranslation(item.status.id) -// .setCallback(new Callback(){ -// @Override -// public void onSuccess(StatusTranslation status){ -// System.out.println(status.getStrippedText()); -// } -// @Override -// public void onError(ErrorResponse error){ -// error.showToast(item.parentFragment.getActivity()); -// } -// -// }) -// .wrapProgress(item.parentFragment.getActivity(), R.string.loading, true) -// .exec(item.parentFragment.getAccountID()); -// } return true; }); } @@ -248,6 +232,7 @@ 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)); @@ -255,6 +240,9 @@ public class HeaderStatusDisplayItem extends StatusDisplayItem{ visibility.setTooltipText(visibility.getContentDescription()); } } + if(item.hasTranslateToggle){ + translate.setImageResource(item.status.wantsTranslation ? R.drawable.ic_translate_on : R.drawable.ic_translate_off); + } 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/res/drawable/ic_translate_off.xml b/mastodon/src/main/res/drawable/ic_translate_off.xml new file mode 100644 index 000000000..cbbe870e4 --- /dev/null +++ b/mastodon/src/main/res/drawable/ic_translate_off.xml @@ -0,0 +1,5 @@ + + + diff --git a/mastodon/src/main/res/drawable/ic_translate_on.xml b/mastodon/src/main/res/drawable/ic_translate_on.xml new file mode 100644 index 000000000..6104a72b3 --- /dev/null +++ b/mastodon/src/main/res/drawable/ic_translate_on.xml @@ -0,0 +1,5 @@ + + + diff --git a/mastodon/src/main/res/layout/display_item_header.xml b/mastodon/src/main/res/layout/display_item_header.xml index ddc6f8cbd..22d44d874 100644 --- a/mastodon/src/main/res/layout/display_item_header.xml +++ b/mastodon/src/main/res/layout/display_item_header.xml @@ -26,8 +26,8 @@ android:layout_width="36dp" android:layout_height="36dp" android:layout_marginTop="-6dp" - android:layout_marginRight="6dp" - android:layout_toLeftOf="@id/more" + android:layout_marginEnd="6dp" + android:layout_toStartOf="@id/more" android:background="?android:selectableItemBackgroundBorderless" android:scaleType="center" android:src="@drawable/ic_visibility" @@ -38,8 +38,8 @@ android:layout_width="36dp" android:layout_height="36dp" android:layout_marginTop="-6dp" - android:layout_marginRight="6dp" - android:layout_toLeftOf="@id/visibility" + android:layout_marginEnd="6dp" + android:layout_toStartOf="@id/visibility" android:background="?android:selectableItemBackgroundBorderless" android:scaleType="center" android:src="@drawable/ic_visibility" @@ -58,7 +58,7 @@ android:layout_width="match_parent" android:layout_height="24dp" android:layout_marginEnd="8dp" - android:layout_toStartOf="@id/visibility" + android:layout_toStartOf="@id/translate" android:layout_toEndOf="@id/avatar">