From d1479f142b188adac61aaf0b8645f14e140d05ec Mon Sep 17 00:00:00 2001 From: sk Date: Fri, 9 Dec 2022 03:05:17 +0100 Subject: [PATCH] add progress spinner --- .../displayitems/TextStatusDisplayItem.java | 9 +++++- .../src/main/res/layout/display_item_text.xml | 31 ++++++++++++++----- 2 files changed, 32 insertions(+), 8 deletions(-) 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 06bbb1f70..9162ae1a8 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 @@ -78,7 +78,7 @@ public class TextStatusDisplayItem extends StatusDisplayItem{ public static class Holder extends StatusDisplayItem.Holder implements ImageLoaderViewHolder{ private final LinkedTextView text; private final TextView spoilerTitle, translateInfo; - private final View spoilerOverlay, textWrap, translateWrap; + private final View spoilerOverlay, textWrap, translateWrap, translateProgress; private final Button translateButton; public Holder(Activity activity, ViewGroup parent){ @@ -90,6 +90,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)); } @@ -126,16 +127,22 @@ public class TextStatusDisplayItem extends StatusDisplayItem{ translateInfo.setText(item.translated ? itemView.getResources().getString(R.string.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_text.xml b/mastodon/src/main/res/layout/display_item_text.xml index baf06cff7..cf77af104 100644 --- a/mastodon/src/main/res/layout/display_item_text.xml +++ b/mastodon/src/main/res/layout/display_item_text.xml @@ -27,16 +27,33 @@ android:layout_marginTop="8dp" android:gravity="center_vertical"> -