summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorThomas <tschneider.ac@gmail.com>2024-01-19 17:44:16 +0100
committerThomas <tschneider.ac@gmail.com>2024-01-19 17:44:16 +0100
commit4204f658d7e99fca410d2ecddb044e7aabd60ceb (patch)
treea7980350c2f5e3a83bc0e0496f3b5266c16a682f
parentdd119449f323d859685a0c1034be2aa261817387 (diff)
Fix issue #1014 - Wrong profiles when enabling remote conversations
-rw-r--r--app/src/main/java/app/fedilab/android/mastodon/client/entities/api/Status.java5
-rw-r--r--app/src/main/java/app/fedilab/android/mastodon/helper/SpannableHelper.java17
-rw-r--r--app/src/main/java/app/fedilab/android/mastodon/ui/drawer/ComposeAdapter.java2
-rw-r--r--app/src/main/java/app/fedilab/android/mastodon/ui/drawer/ConversationAdapter.java2
-rw-r--r--app/src/main/java/app/fedilab/android/mastodon/ui/drawer/StatusAdapter.java5
-rw-r--r--app/src/main/java/app/fedilab/android/mastodon/ui/drawer/StatusDirectMessageAdapter.java2
-rw-r--r--app/src/main/java/app/fedilab/android/mastodon/ui/drawer/StatusHistoryAdapter.java2
-rw-r--r--app/src/main/java/app/fedilab/android/peertube/client/RetrofitPeertubeAPI.java1
8 files changed, 25 insertions, 11 deletions
diff --git a/app/src/main/java/app/fedilab/android/mastodon/client/entities/api/Status.java b/app/src/main/java/app/fedilab/android/mastodon/client/entities/api/Status.java
index 70874d13d..3c6598ecc 100644
--- a/app/src/main/java/app/fedilab/android/mastodon/client/entities/api/Status.java
+++ b/app/src/main/java/app/fedilab/android/mastodon/client/entities/api/Status.java
@@ -28,6 +28,7 @@ import java.lang.ref.WeakReference;
import java.util.Date;
import java.util.List;
+import app.fedilab.android.mastodon.helper.Helper;
import app.fedilab.android.mastodon.helper.SpannableHelper;
import de.timfreiheit.mathjax.android.MathJaxView;
@@ -152,9 +153,9 @@ public class Status implements Serializable, Cloneable {
return same;
}
- public synchronized Spannable getSpanContent(Context context, WeakReference<View> viewWeakReference, Callback callback) {
+ public synchronized Spannable getSpanContent(Context context, boolean checkRemotely, WeakReference<View> viewWeakReference, Callback callback) {
if (contentSpan == null) {
- contentSpan = SpannableHelper.convert(context, content, this, null, null, viewWeakReference, callback, true, true);
+ contentSpan = SpannableHelper.convert(context, content, this, null, null, checkRemotely, viewWeakReference, callback, true, true);
}
return contentSpan;
}
diff --git a/app/src/main/java/app/fedilab/android/mastodon/helper/SpannableHelper.java b/app/src/main/java/app/fedilab/android/mastodon/helper/SpannableHelper.java
index 87cb773fb..f62284849 100644
--- a/app/src/main/java/app/fedilab/android/mastodon/helper/SpannableHelper.java
+++ b/app/src/main/java/app/fedilab/android/mastodon/helper/SpannableHelper.java
@@ -111,6 +111,12 @@ public class SpannableHelper {
public static Spannable convert(Context context, String text,
Status status, Account account, Announcement announcement,
WeakReference<View> viewWeakReference, Status.Callback callback, boolean convertHtml, boolean convertMarkdown) {
+ return convert(context, text, status, account, announcement, false, viewWeakReference, callback, convertHtml, convertMarkdown);
+ }
+
+ public static Spannable convert(Context context, String text,
+ Status status, Account account, Announcement announcement, boolean checkRemotely,
+ WeakReference<View> viewWeakReference, Status.Callback callback, boolean convertHtml, boolean convertMarkdown) {
if (text == null) {
return null;
}
@@ -296,14 +302,23 @@ public class SpannableHelper {
intent = new Intent(context, ProfileActivity.class);
args = new Bundle();
Mention targetedMention = null;
+ String acct = null;
+
for (Mention mention : mentions) {
if (word.compareToIgnoreCase("@" + mention.username) == 0) {
- targetedMention = mention;
+ if(!checkRemotely) {
+ targetedMention = mention;
+ } else {
+ acct = mention.acct;
+ }
break;
}
}
+
if (targetedMention != null) {
args.putString(Helper.ARG_USER_ID, targetedMention.id);
+ } else if( acct != null){
+ args.putString(Helper.ARG_MENTION, acct);
} else {
args.putString(Helper.ARG_MENTION, word);
}
diff --git a/app/src/main/java/app/fedilab/android/mastodon/ui/drawer/ComposeAdapter.java b/app/src/main/java/app/fedilab/android/mastodon/ui/drawer/ComposeAdapter.java
index 38fd8a43f..08541ce9a 100644
--- a/app/src/main/java/app/fedilab/android/mastodon/ui/drawer/ComposeAdapter.java
+++ b/app/src/main/java/app/fedilab/android/mastodon/ui/drawer/ComposeAdapter.java
@@ -1395,7 +1395,7 @@ public class ComposeAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder
holder.binding.simpleMediaContainer.setVisibility(View.GONE);
}
holder.binding.statusContent.setText(
- status.getSpanContent(context,
+ status.getSpanContent(context, false,
new WeakReference<>(holder.binding.statusContent), () -> mRecyclerView.post(() -> notifyItemChanged(position))),
TextView.BufferType.SPANNABLE);
holder.binding.statusContent.setMovementMethod(LongClickLinkMovementMethod.getInstance());
diff --git a/app/src/main/java/app/fedilab/android/mastodon/ui/drawer/ConversationAdapter.java b/app/src/main/java/app/fedilab/android/mastodon/ui/drawer/ConversationAdapter.java
index fb35d988a..f817f6ff6 100644
--- a/app/src/main/java/app/fedilab/android/mastodon/ui/drawer/ConversationAdapter.java
+++ b/app/src/main/java/app/fedilab/android/mastodon/ui/drawer/ConversationAdapter.java
@@ -209,7 +209,7 @@ public class ConversationAdapter extends RecyclerView.Adapter<RecyclerView.ViewH
}
//--- MAIN CONTENT ---
holder.binding.statusContent.setText(
- conversation.last_status.getSpanContent(context,
+ conversation.last_status.getSpanContent(context, false,
new WeakReference<>(holder.binding.statusContent), () -> mRecyclerView.post(() -> notifyItemChanged(holder.getBindingAdapterPosition()))),
TextView.BufferType.SPANNABLE);
//--- DATE ---
diff --git a/app/src/main/java/app/fedilab/android/mastodon/ui/drawer/StatusAdapter.java b/app/src/main/java/app/fedilab/android/mastodon/ui/drawer/StatusAdapter.java
index 2efefba82..465ebae8f 100644
--- a/app/src/main/java/app/fedilab/android/mastodon/ui/drawer/StatusAdapter.java
+++ b/app/src/main/java/app/fedilab/android/mastodon/ui/drawer/StatusAdapter.java
@@ -514,7 +514,7 @@ public class StatusAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder>
});
holder.binding.quotedMessage.cardviewContainer.setStrokeColor(ThemeHelper.getAttColor(context, R.attr.colorPrimary));
holder.binding.quotedMessage.statusContent.setText(
- statusToDeal.quote.getSpanContent(context,
+ statusToDeal.quote.getSpanContent(context, remote,
new WeakReference<>(holder.binding.quotedMessage.statusContent), null),
TextView.BufferType.SPANNABLE);
MastodonHelper.loadPPMastodon(holder.binding.quotedMessage.avatar, statusToDeal.quote.account);
@@ -1413,10 +1413,9 @@ public class StatusAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder>
}
case "direct" -> holder.binding.actionButtonBoost.setVisibility(View.GONE);
}
-
//--- MAIN CONTENT ---
holder.binding.statusContent.setText(
- statusToDeal.getSpanContent(context,
+ statusToDeal.getSpanContent(context, remote,
new WeakReference<>(holder.binding.statusContent), () -> {
recyclerView.post(() -> adapter.notifyItemChanged(holder.getBindingAdapterPosition()));
}),
diff --git a/app/src/main/java/app/fedilab/android/mastodon/ui/drawer/StatusDirectMessageAdapter.java b/app/src/main/java/app/fedilab/android/mastodon/ui/drawer/StatusDirectMessageAdapter.java
index 4523cae70..7407e84ab 100644
--- a/app/src/main/java/app/fedilab/android/mastodon/ui/drawer/StatusDirectMessageAdapter.java
+++ b/app/src/main/java/app/fedilab/android/mastodon/ui/drawer/StatusDirectMessageAdapter.java
@@ -241,7 +241,7 @@ public class StatusDirectMessageAdapter extends RecyclerView.Adapter<RecyclerVie
SharedPreferences sharedpreferences = PreferenceManager.getDefaultSharedPreferences(context);
status.underlined = true;
holder.binding.messageContent.setText(
- status.getSpanContent(context,
+ status.getSpanContent(context, false,
new WeakReference<>(holder.binding.messageContent),
() -> mRecyclerView.post(() -> notifyItemChanged(holder.getBindingAdapterPosition()))),
TextView.BufferType.SPANNABLE);
diff --git a/app/src/main/java/app/fedilab/android/mastodon/ui/drawer/StatusHistoryAdapter.java b/app/src/main/java/app/fedilab/android/mastodon/ui/drawer/StatusHistoryAdapter.java
index 96628a86a..9eb5f25dc 100644
--- a/app/src/main/java/app/fedilab/android/mastodon/ui/drawer/StatusHistoryAdapter.java
+++ b/app/src/main/java/app/fedilab/android/mastodon/ui/drawer/StatusHistoryAdapter.java
@@ -55,7 +55,7 @@ public class StatusHistoryAdapter extends RecyclerView.Adapter<RecyclerView.View
StatusHistoryViewHolder holder = (StatusHistoryViewHolder) viewHolder;
Status status = statuses.get(position);
holder.binding.statusContent.setText(
- status.getSpanContent(context,
+ status.getSpanContent(context, false,
new WeakReference<>(holder.binding.statusContent), null),
TextView.BufferType.SPANNABLE);
if (status.spoiler_text != null && !status.spoiler_text.trim().isEmpty()) {
diff --git a/app/src/main/java/app/fedilab/android/peertube/client/RetrofitPeertubeAPI.java b/app/src/main/java/app/fedilab/android/peertube/client/RetrofitPeertubeAPI.java
index ae3ed7377..cef50847c 100644
--- a/app/src/main/java/app/fedilab/android/peertube/client/RetrofitPeertubeAPI.java
+++ b/app/src/main/java/app/fedilab/android/peertube/client/RetrofitPeertubeAPI.java
@@ -28,7 +28,6 @@ import android.database.sqlite.SQLiteDatabase;
import android.net.Uri;
import android.os.Handler;
import android.os.Looper;
-import android.util.Log;
import android.webkit.MimeTypeMap;
import android.webkit.URLUtil;