From 42025035ad718c0df742f1881af57081f636bd68 Mon Sep 17 00:00:00 2001 From: LucasGGamerM Date: Sun, 18 Dec 2022 17:57:09 -0300 Subject: [PATCH] Caching the status translation for easier use --- .../org/joinmastodon/android/model/Status.java | 1 + .../ui/displayitems/TextStatusDisplayItem.java | 15 ++++++++++----- 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/mastodon/src/main/java/org/joinmastodon/android/model/Status.java b/mastodon/src/main/java/org/joinmastodon/android/model/Status.java index acf10e8c1..6560d2fbe 100644 --- a/mastodon/src/main/java/org/joinmastodon/android/model/Status.java +++ b/mastodon/src/main/java/org/joinmastodon/android/model/Status.java @@ -50,6 +50,7 @@ public class Status extends BaseModel implements DisplayItemsParent{ public Card card; public String language; public String text; + public String translation; public boolean favourited; public boolean reblogged; 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 4b332f39f..9b70913cb 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 @@ -97,23 +97,28 @@ public class TextStatusDisplayItem extends StatusDisplayItem{ @Override public void onBind(TextStatusDisplayItem item){ - if(item.status.wantsTranslation){ + if(item.status.wantsTranslation && item.status.translation == null){ new GetStatusTranslation(item.status.id) .setCallback(new Callback(){ @Override - public void onSuccess(StatusTranslation status){ - text.setText(status.getStrippedText()); + public void onSuccess(StatusTranslation statusTranslation){ + item.status.translation = statusTranslation.getStrippedText(); + text.setText(item.status.translation); } @Override public void onError(ErrorResponse error){ item.status.wantsTranslation=false; - text.setText(item.text); error.showToast(item.parentFragment.getActivity()); } - }) .wrapProgress(item.parentFragment.getActivity(), R.string.loading, true) .exec(item.parentFragment.getAccountID()); + } + if(item.status.wantsTranslation){ + if(item.status.translation != null) + { + text.setText(item.status.translation); + } }else{ text.setText(item.text); }