diff options
19 files changed, 101 insertions, 127 deletions
diff --git a/app/src/main/java/app/fedilab/android/BaseMainActivity.java b/app/src/main/java/app/fedilab/android/BaseMainActivity.java index 06f7cbe31..afe0714ba 100644 --- a/app/src/main/java/app/fedilab/android/BaseMainActivity.java +++ b/app/src/main/java/app/fedilab/android/BaseMainActivity.java @@ -1219,7 +1219,7 @@ public abstract class BaseMainActivity extends BaseActivity implements NetworkSt } if (!isFinishing()) { headerMainBinding.accountName.setText( - currentAccount.mastodon_account.getSpanDisplayName(BaseMainActivity.this, + currentAccount.mastodon_account.getSpanDisplayNameEmoji(BaseMainActivity.this, new WeakReference<>(headerMainBinding.accountName)), TextView.BufferType.SPANNABLE); } diff --git a/app/src/main/java/app/fedilab/android/mastodon/activities/DirectMessageActivity.java b/app/src/main/java/app/fedilab/android/mastodon/activities/DirectMessageActivity.java index 92bad7d67..7d63ccb72 100644 --- a/app/src/main/java/app/fedilab/android/mastodon/activities/DirectMessageActivity.java +++ b/app/src/main/java/app/fedilab/android/mastodon/activities/DirectMessageActivity.java @@ -53,7 +53,6 @@ public class DirectMessageActivity extends BaseActivity implements FragmentMasto public static boolean displayCW; FragmentMastodonDirectMessage currentFragment; - private Status firstMessage; private String remote_instance; @Override @@ -149,7 +148,6 @@ public class DirectMessageActivity extends BaseActivity implements FragmentMasto @Override public void get(Status status) { - firstMessage = status; invalidateOptionsMenu(); } }
\ No newline at end of file diff --git a/app/src/main/java/app/fedilab/android/mastodon/activities/MediaActivity.java b/app/src/main/java/app/fedilab/android/mastodon/activities/MediaActivity.java index c5313a297..9476dca8e 100644 --- a/app/src/main/java/app/fedilab/android/mastodon/activities/MediaActivity.java +++ b/app/src/main/java/app/fedilab/android/mastodon/activities/MediaActivity.java @@ -154,7 +154,7 @@ public class MediaActivity extends BaseTransparentActivity implements OnDownload binding.mediaDescription.setMovementMethod(new ScrollingMovementMethod()); binding.mediaDescriptionTranslated.setMovementMethod(new ScrollingMovementMethod()); - + if (description != null && description.trim().length() > 0 && description.trim().compareTo("null") != 0) { binding.mediaDescription.setText(description); binding.translate.setOnClickListener(v -> { diff --git a/app/src/main/java/app/fedilab/android/mastodon/activities/ProfileActivity.java b/app/src/main/java/app/fedilab/android/mastodon/activities/ProfileActivity.java index ef0e4fc07..0c1648248 100644 --- a/app/src/main/java/app/fedilab/android/mastodon/activities/ProfileActivity.java +++ b/app/src/main/java/app/fedilab/android/mastodon/activities/ProfileActivity.java @@ -456,7 +456,7 @@ public class ProfileActivity extends BaseActivity { } binding.accountDn.setText( - account.getSpanDisplayName(ProfileActivity.this, + account.getSpanDisplayNameEmoji(ProfileActivity.this, new WeakReference<>(binding.accountDn)), TextView.BufferType.SPANNABLE); diff --git a/app/src/main/java/app/fedilab/android/mastodon/activities/admin/AdminAccountActivity.java b/app/src/main/java/app/fedilab/android/mastodon/activities/admin/AdminAccountActivity.java index 04074ea42..f78e0af61 100644 --- a/app/src/main/java/app/fedilab/android/mastodon/activities/admin/AdminAccountActivity.java +++ b/app/src/main/java/app/fedilab/android/mastodon/activities/admin/AdminAccountActivity.java @@ -310,7 +310,7 @@ public class AdminAccountActivity extends BaseActivity { binding.accountDn.setText( - adminAccount.account.getSpanDisplayName(AdminAccountActivity.this, + adminAccount.account.getSpanDisplayNameEmoji(AdminAccountActivity.this, new WeakReference<>(binding.accountDn)), TextView.BufferType.SPANNABLE); binding.accountUn.setText(String.format("@%s", adminAccount.account.acct)); diff --git a/app/src/main/java/app/fedilab/android/mastodon/activities/admin/AdminReportActivity.java b/app/src/main/java/app/fedilab/android/mastodon/activities/admin/AdminReportActivity.java index f5d79bb82..1ff4effea 100644 --- a/app/src/main/java/app/fedilab/android/mastodon/activities/admin/AdminReportActivity.java +++ b/app/src/main/java/app/fedilab/android/mastodon/activities/admin/AdminReportActivity.java @@ -328,7 +328,7 @@ public class AdminReportActivity extends BaseBarActivity { } binding.accountDn.setText( - account.getSpanDisplayName(AdminReportActivity.this, + account.getSpanDisplayNameEmoji(AdminReportActivity.this, new WeakReference<>(binding.accountDn)), TextView.BufferType.SPANNABLE); binding.accountUn.setText(String.format("@%s", account.acct)); diff --git a/app/src/main/java/app/fedilab/android/mastodon/client/entities/api/Account.java b/app/src/main/java/app/fedilab/android/mastodon/client/entities/api/Account.java index a29c37496..5fc2e8d76 100644 --- a/app/src/main/java/app/fedilab/android/mastodon/client/entities/api/Account.java +++ b/app/src/main/java/app/fedilab/android/mastodon/client/entities/api/Account.java @@ -89,14 +89,15 @@ public class Account implements Serializable { public Role role; public transient RelationShip relationShip; + public synchronized Spannable getSpanDisplayName(Context context, WeakReference<View> viewWeakReference) { if (display_name == null || display_name.isEmpty()) { display_name = username; } - return SpannableHelper.convert(context, display_name, null, this, null, viewWeakReference); + return SpannableHelper.convert(context, display_name, null, this, null, viewWeakReference, null, true, false); } - public synchronized Spannable getSpanDisplayName(Activity activity, WeakReference<View> viewWeakReference) { + public synchronized Spannable getSpanDisplayNameEmoji(Activity activity, WeakReference<View> viewWeakReference) { if (display_name == null || display_name.isEmpty()) { display_name = username; } @@ -104,11 +105,11 @@ public class Account implements Serializable { } public synchronized Spannable getSpanDisplayNameTitle(Context context, WeakReference<View> viewWeakReference, String title) { - return SpannableHelper.convert(context, title, null, this, null, viewWeakReference); + return SpannableHelper.convert(context, title, null, this, null, viewWeakReference, null, true, false); } public synchronized Spannable getSpanNote(Context context, WeakReference<View> viewWeakReference) { - return SpannableHelper.convert(context, note, null, this, null, viewWeakReference); + return SpannableHelper.convert(context, note, null, this, null, viewWeakReference, null, true, false); } @Override diff --git a/app/src/main/java/app/fedilab/android/mastodon/client/entities/api/Announcement.java b/app/src/main/java/app/fedilab/android/mastodon/client/entities/api/Announcement.java index 682eeb8b4..b429bb7df 100644 --- a/app/src/main/java/app/fedilab/android/mastodon/client/entities/api/Announcement.java +++ b/app/src/main/java/app/fedilab/android/mastodon/client/entities/api/Announcement.java @@ -56,7 +56,7 @@ public class Announcement { public synchronized Spannable getSpanContent(Context context, WeakReference<View> viewWeakReference) { - return SpannableHelper.convert(context, content, null, null, this, viewWeakReference); + return SpannableHelper.convert(context, content, null, null, this, viewWeakReference, null, true, false); } } diff --git a/app/src/main/java/app/fedilab/android/mastodon/client/entities/api/Field.java b/app/src/main/java/app/fedilab/android/mastodon/client/entities/api/Field.java index 6c24c0ea4..9b8551ff9 100644 --- a/app/src/main/java/app/fedilab/android/mastodon/client/entities/api/Field.java +++ b/app/src/main/java/app/fedilab/android/mastodon/client/entities/api/Field.java @@ -47,7 +47,7 @@ public class Field implements Serializable { if (verified_at != null && value != null) { value_span = new ForegroundColorSpan(ContextCompat.getColor(context, R.color.verified_text)); } - Spannable spannable = SpannableHelper.convert(context, value, null, account, null, viewWeakReference); + Spannable spannable = SpannableHelper.convert(context, value, null, account, null, viewWeakReference, null, true, false); if (value_span != null && spannable != null) { spannable.setSpan(value_span, 0, spannable.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); } @@ -57,7 +57,7 @@ public class Field implements Serializable { public synchronized Spannable getLabelSpan(Context context, Account account, WeakReference<View> viewWeakReference) { - Spannable spannable = SpannableHelper.convert(context, name, null, account, null, viewWeakReference); + Spannable spannable = SpannableHelper.convert(context, name, null, account, null, viewWeakReference, null, true, false); if (name_span != null && spannable != null) { spannable.setSpan(name_span, 0, spannable.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); } 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 062ee42c2..70874d13d 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 @@ -133,6 +133,8 @@ public class Status implements Serializable, Cloneable { public transient boolean setCursorToEnd = false; public transient int cursorPosition = 0; public transient boolean submitted = false; + + public transient boolean underlined = false; public boolean spoilerChecked = false; public Filter filteredByApp; public transient Spannable contentSpan; @@ -152,21 +154,21 @@ public class Status implements Serializable, Cloneable { public synchronized Spannable getSpanContent(Context context, WeakReference<View> viewWeakReference, Callback callback) { if (contentSpan == null) { - contentSpan = SpannableHelper.convert(context, content, this, null, null, viewWeakReference, callback, true); + contentSpan = SpannableHelper.convert(context, content, this, null, null, viewWeakReference, callback, true, true); } return contentSpan; } public synchronized Spannable getSpanSpoiler(Context context, WeakReference<View> viewWeakReference, Callback callback) { if (contentSpoilerSpan == null) { - contentSpoilerSpan = SpannableHelper.convert(context, spoiler_text, this, null, null, viewWeakReference, callback, false); + contentSpoilerSpan = SpannableHelper.convert(context, spoiler_text, this, null, null, viewWeakReference, callback, true, false); } return contentSpoilerSpan; } public synchronized Spannable getSpanTranslate(Context context, WeakReference<View> viewWeakReference, Callback callback) { if (contentTranslateSpan == null) { - contentTranslateSpan = SpannableHelper.convert(context, translationContent, this, null, null, viewWeakReference, callback, true); + contentTranslateSpan = SpannableHelper.convert(context, translationContent, this, null, null, viewWeakReference, callback, true, true); } return contentTranslateSpan; } diff --git a/app/src/main/java/app/fedilab/android/mastodon/helper/Helper.java b/app/src/main/java/app/fedilab/android/mastodon/helper/Helper.java index 04a07d1eb..c76ca7e25 100644 --- a/app/src/main/java/app/fedilab/android/mastodon/helper/Helper.java +++ b/app/src/main/java/app/fedilab/android/mastodon/helper/Helper.java @@ -2044,6 +2044,31 @@ public class Helper { } } + public static boolean isNumeric(String str) { + try { + Double.parseDouble(str); + return true; + } catch (NumberFormatException e) { + return false; + } + } + + public static OkHttpClient myOkHttpClient(Context context) { + return new OkHttpClient.Builder() + .addInterceptor(chain -> { + Request originalRequest = chain.request(); + Request requestWithUserAgent = originalRequest.newBuilder() + .header("User-Agent", context.getString(R.string.app_name) + "/" + BuildConfig.VERSION_NAME + "/" + BuildConfig.VERSION_CODE) + .build(); + return chain.proceed(requestWithUserAgent); + }) + .readTimeout(60, TimeUnit.SECONDS) + .connectTimeout(60, TimeUnit.SECONDS) + .callTimeout(60, TimeUnit.SECONDS) + .proxy(Helper.getProxy(context)) + .build(); + } + //Enum that described actions to replace inside a toot content public enum PatternType { MENTION, @@ -2074,29 +2099,4 @@ public class Helper { public interface OnFileCopied { void onFileCopied(File file); } - - public static boolean isNumeric(String str) { - try { - Double.parseDouble(str); - return true; - } catch (NumberFormatException e) { - return false; - } - } - - public static OkHttpClient myOkHttpClient(Context context) { - return new OkHttpClient.Builder() - .addInterceptor(chain -> { - Request originalRequest = chain.request(); - Request requestWithUserAgent = originalRequest.newBuilder() - .header("User-Agent", context.getString(R.string.app_name) + "/" + BuildConfig.VERSION_NAME + "/" + BuildConfig.VERSION_CODE) - .build(); - return chain.proceed(requestWithUserAgent); - }) - .readTimeout(60, TimeUnit.SECONDS) - .connectTimeout(60, TimeUnit.SECONDS) - .callTimeout(60, TimeUnit.SECONDS) - .proxy(Helper.getProxy(context)) - .build(); - } } diff --git a/app/src/main/java/app/fedilab/android/mastodon/helper/NotificationsHelper.java b/app/src/main/java/app/fedilab/android/mastodon/helper/NotificationsHelper.java index a4572df6d..66acbf898 100644 --- a/app/src/main/java/app/fedilab/android/mastodon/helper/NotificationsHelper.java +++ b/app/src/main/java/app/fedilab/android/mastodon/helper/NotificationsHelper.java @@ -62,9 +62,8 @@ import retrofit2.converter.gson.GsonConverterFactory; public class NotificationsHelper { - public static HashMap<String, List<String>> pushed_notifications = new HashMap<>(); - private static final HashMap<String, ReentrantLock> lockMap = new HashMap<>(); + public static HashMap<String, List<String>> pushed_notifications = new HashMap<>(); private static ReentrantLock getLock(String slug) { synchronized (lockMap) { 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 d6c4ee815..6f65eaa69 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 @@ -43,7 +43,6 @@ import android.view.View; import android.webkit.URLUtil; import android.widget.Toast; -import androidx.annotation.ColorInt; import androidx.annotation.NonNull; import androidx.appcompat.app.AlertDialog; import androidx.core.content.ContextCompat; @@ -107,33 +106,6 @@ public class SpannableHelper { private static int linkColor; public static Spannable convert(Context context, String text, - Status status, Account account, Announcement announcement, WeakReference<View> viewWeakReference) { - return convert(context, text, status, account, announcement, viewWeakReference, null, true, false); - } - - public static Spannable convert(Context context, String text, - Status status, Account account, Announcement announcement, - WeakReference<View> viewWeakReference, Status.Callback callback, boolean convertMarkdown) { - return convert(context, text, status, account, announcement, viewWeakReference, callback, true, convertMarkdown); - } - - - public static boolean isRTL(String s) { - for (int i = 0; i < s.length(); i++) { - byte d = Character.getDirectionality(s.charAt(i)); - if (d == Character.DIRECTIONALITY_RIGHT_TO_LEFT || - d == Character.DIRECTIONALITY_RIGHT_TO_LEFT_ARABIC || - d == Character.DIRECTIONALITY_RIGHT_TO_LEFT_EMBEDDING || - d == Character.DIRECTIONALITY_RIGHT_TO_LEFT_OVERRIDE - ) { - return true; - } - } - - return false; - } - - public static Spannable convert(Context context, String text, Status status, Account account, Announcement announcement, WeakReference<View> viewWeakReference, Status.Callback callback, boolean convertHtml, boolean convertMarkdown) { if (text == null) { @@ -160,6 +132,10 @@ public class SpannableHelper { if (linkColor == 0) { linkColor = -1; } + if (status != null && status.underlined) { + linkColor = -1; + } + List<Mention> mentions = new ArrayList<>(); if (status != null && status.mentions != null) { mentions.addAll(status.mentions); @@ -333,7 +309,7 @@ public class SpannableHelper { @Override public void updateDrawState(@NonNull TextPaint ds) { super.updateDrawState(ds); - ds.setUnderlineText(false); + ds.setUnderlineText(status != null && status.underlined); if (linkColor != -1) { ds.setColor(linkColor); } @@ -341,10 +317,10 @@ public class SpannableHelper { }, start, end, Spanned.SPAN_INCLUSIVE_EXCLUSIVE); } else { - makeLinks(context, content, url, start, end); + makeLinks(context, status, content, url, start, end); } replaceQuoteSpans(context, content); - emails(context, content); + emails(context, content, status); } Pattern imgPattern = Pattern.compile("<img [^>]*src=\"([^\"]+)\"[^>]*>"); @@ -390,25 +366,8 @@ public class SpannableHelper { return trimSpannable(new SpannableStringBuilder(content)); } - public interface Prism4jTheme { - - @ColorInt - int background(); - - @ColorInt - int textColor(); - - void apply( - @NonNull String language, - @NonNull Prism4j.Syntax syntax, - @NonNull SpannableStringBuilder builder, - int start, - int end - ); - } - - private static void makeLinks(Context context, SpannableStringBuilder content, String url, int start, int end) { + private static void makeLinks(Context context, Status status, SpannableStringBuilder content, String url, int start, int end) { String newUrl = url; boolean validUrl = URLUtil.isValidUrl(url) && url.length() == (end - start); if (validUrl) { @@ -640,7 +599,7 @@ public class SpannableHelper { @Override public void updateDrawState(@NonNull TextPaint ds) { super.updateDrawState(ds); - ds.setUnderlineText(false); + ds.setUnderlineText(status != null && status.underlined); if (linkColor != -1) { ds.setColor(linkColor); } @@ -756,7 +715,7 @@ public class SpannableHelper { } } - private static void emails(Context context, Spannable content) { + private static void emails(Context context, Spannable content, Status status) { // --- For all patterns defined in Helper class --- Pattern pattern = Helper.emailPattern; Matcher matcher = pattern.matcher(content); @@ -785,7 +744,7 @@ public class SpannableHelper { @Override public void updateDrawState(@NonNull TextPaint ds) { super.updateDrawState(ds); - ds.setUnderlineText(false); + ds.setUnderlineText(status != null && status.underlined); if (linkColor != -1) { ds.setColor(linkColor); } 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 9117e71c5..f176f4498 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 @@ -159,14 +159,13 @@ public class ComposeAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder private final String editMessageId; public ManageDrafts manageDrafts; public promptDraftListener promptDraftListener; + public MediaDescriptionCallBack mediaDescriptionCallBack; private int statusCount; private Context context; private AlertDialog alertDialogEmoji; private List<Emoji> emojisList = new ArrayList<>(); private boolean unlisted_changed = false; - private RecyclerView mRecyclerView; - public MediaDescriptionCallBack mediaDescriptionCallBack; public ComposeAdapter(List<Status> statusList, int statusCount, BaseAccount account, Account mentionedAccount, String visibility, String editMessageId) { @@ -1251,10 +1250,6 @@ public class ComposeAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder } } - public interface MediaDescriptionCallBack { - void click(ComposeViewHolder holder, Attachment attachment, int messagePosition, int mediaPosition); - } - /** * Manage state of media and poll button * @@ -2052,7 +2047,6 @@ public class ComposeAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder alertPollDiaslog.show(); } - /** * Display the emoji picker in the current message * @@ -2086,6 +2080,11 @@ public class ComposeAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder alertDialogEmoji = builder.show(); } + + public interface MediaDescriptionCallBack { + void click(ComposeViewHolder holder, Attachment attachment, int messagePosition, int mediaPosition); + } + public interface promptDraftListener { void promptDraft(); } 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 0868fa18d..83d1f8812 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 @@ -234,6 +234,7 @@ public class StatusDirectMessageAdapter extends RecyclerView.Adapter<RecyclerVie StatusChatViewHolder holder = (StatusChatViewHolder) viewHolder; Status status = statusList.get(position); SharedPreferences sharedpreferences = PreferenceManager.getDefaultSharedPreferences(context); + status.underlined = true; holder.binding.messageContent.setText( status.getSpanContent(context, new WeakReference<>(holder.binding.messageContent), @@ -279,17 +280,19 @@ public class StatusDirectMessageAdapter extends RecyclerView.Adapter<RecyclerVie holder.binding.mainContainer.setBackgroundResource(R.drawable.bubble_right_tail); layoutParams.setMargins((int) Helper.convertDpToPixel(50, context), (int) Helper.convertDpToPixel(12, context), 0, 0); + holder.binding.date.setTextColor(ThemeHelper.getAttColor(context, R.attr.colorOnPrimary)); + holder.binding.messageContent.setTextColor(ThemeHelper.getAttColor(context, R.attr.colorOnPrimary)); + holder.binding.userName.setTextColor(ThemeHelper.getAttColor(context, R.attr.colorOnPrimary)); + holder.binding.messageContent.setLinkTextColor(ThemeHelper.getAttColor(context, R.attr.colorOnPrimary)); + Helper.changeDrawableColor(context, holder.binding.visibility, ThemeHelper.getAttColor(context, R.attr.colorOnPrimary)); + } else { + holder.binding.mainContainer.setBackgroundResource(R.drawable.bubble_left_tail); + layoutParams.setMargins(0, (int) Helper.convertDpToPixel(12, context), (int) Helper.convertDpToPixel(50, context), 0); holder.binding.date.setTextColor(ThemeHelper.getAttColor(context, R.attr.colorOnSecondary)); holder.binding.messageContent.setTextColor(ThemeHelper.getAttColor(context, R.attr.colorOnSecondary)); holder.binding.userName.setTextColor(ThemeHelper.getAttColor(context, R.attr.colorOnSecondary)); + holder.binding.messageContent.setLinkTextColor(ThemeHelper.getAttColor(context, R.attr.colorOnSecondary)); Helper.changeDrawableColor(context, holder.binding.visibility, ThemeHelper.getAttColor(context, R.attr.colorOnSecondary)); - } else { - holder.binding.mainContainer.setBackgroundResource(R.drawable.bubble_left_tail); - layoutParams.setMargins(0, (int) Helper.convertDpToPixel(12, context), (int) Helper.convertDpToPixel(50, context), 0); - holder.binding.date.setTextColor(ContextCompat.getColor(context, R.color.black)); - holder.binding.messageContent.setTextColor(ContextCompat.getColor(context, R.color.black)); - holder.binding.userName.setTextColor(ContextCompat.getColor(context, R.color.black)); - Helper.changeDrawableColor(context, holder.binding.visibility, R.color.black); } holder.binding.mainContainer.setLayoutParams(layoutParams); @@ -333,9 +336,13 @@ public class StatusDirectMessageAdapter extends RecyclerView.Adapter<RecyclerVie final float scale = sharedpreferences.getFloat(context.getString(R.string.SET_FONT_SCALE), 1.1f); if (status.poll != null && status.poll.options != null) { - - holder.binding.poll.pollInfo.setTextColor(ThemeHelper.getAttColor(context, R.attr.colorOnSecondary)); - holder.binding.poll.refresh.setTextColor(ThemeHelper.getAttColor(context, R.attr.colorOnSecondary)); + if (status.account.id.equals(MainActivity.currentUserID)) { + holder.binding.poll.pollInfo.setTextColor(ThemeHelper.getAttColor(context, R.attr.colorOnPrimary)); + holder.binding.poll.refresh.setTextColor(ThemeHelper.getAttColor(context, R.attr.colorOnPrimary)); + } else { + holder.binding.poll.pollInfo.setTextColor(ThemeHelper.getAttColor(context, R.attr.colorOnSecondary)); + holder.binding.poll.refresh.setTextColor(ThemeHelper.getAttColor(context, R.attr.colorOnSecondary)); + } StatusesVM statusesVM = new ViewModelProvider((ViewModelStoreOwner) context).get(StatusesVM.class); if (status.poll.voted || status.poll.expired) { holder.binding.poll.submitVote.setVisibility(View.GONE); @@ -362,8 +369,13 @@ public class StatusDirectMessageAdapter extends RecyclerView.Adapter<RecyclerVie pollItem.getSpanTitle(context, status, new WeakReference<>(pollItemBinding.pollItemText)), TextView.BufferType.SPANNABLE); - pollItemBinding.pollItemPercent.setTextColor(ThemeHelper.getAttColor(context, R.attr.colorOnSecondary)); - pollItemBinding.pollItemText.setTextColor(ThemeHelper.getAttColor(context, R.attr.colorOnSecondary)); + if (status.account.id.equals(MainActivity.currentUserID)) { + pollItemBinding.pollItemPercent.setTextColor(ThemeHelper.getAttColor(context, R.attr.colorOnPrimary)); + pollItemBinding.pollItemText.setTextColor(ThemeHelper.getAttColor(context, R.attr.colorOnPrimary)); + } else { + pollItemBinding.pollItemPercent.setTextColor(ThemeHelper.getAttColor(context, R.attr.colorOnSecondary)); + pollItemBinding.pollItemText.setTextColor(ThemeHelper.getAttColor(context, R.attr.colorOnSecondary)); + } pollItemBinding.pollItemValue.setProgress((int) value); if (pollItem.votes_count == greaterValue) { pollItemBinding.pollItemPercent.setTypeface(null, Typeface.BOLD); @@ -395,7 +407,12 @@ public class StatusDirectMessageAdapter extends RecyclerView.Adapter<RecyclerVie new WeakReference<>(cb)), TextView.BufferType.SPANNABLE); holder.binding.poll.multipleChoice.addView(cb); - cb.setTextColor(ThemeHelper.getAttColor(context, R.attr.colorOnSecondary)); + if (status.account.id.equals(MainActivity.currentUserID)) { + cb.setTextColor(ThemeHelper.getAttColor(context, R.attr.colorOnPrimary)); + } else { + cb.setTextColor(ThemeHelper.getAttColor(context, R.attr.colorOnSecondary)); + } + } holder.binding.poll.multipleChoice.setVisibility(View.VISIBLE); holder.binding.poll.singleChoiceRadioGroup.setVisibility(View.GONE); @@ -408,7 +425,12 @@ public class StatusDirectMessageAdapter extends RecyclerView.Adapter<RecyclerVie pollOption.getSpanTitle(context, status, new WeakReference<>(rb)), TextView.BufferType.SPANNABLE); - rb.setTextColor(ThemeHelper.getAttColor(context, R.attr.colorOnSecondary)); + + if (status.account.id.equals(MainActivity.currentUserID)) { + rb.setTextColor(ThemeHelper.getAttColor(context, R.attr.colorOnPrimary)); + } else { + rb.setTextColor(ThemeHelper.getAttColor(context, R.attr.colorOnSecondary)); + } holder.binding.poll.singleChoiceRadioGroup.addView(rb); } holder.binding.poll.singleChoiceRadioGroup.setVisibility(View.VISIBLE); diff --git a/app/src/main/java/app/fedilab/android/mastodon/ui/fragment/settings/FragmentThemingSettings.java b/app/src/main/java/app/fedilab/android/mastodon/ui/fragment/settings/FragmentThemingSettings.java index a38c15ac7..f9e77b55b 100644 --- a/app/src/main/java/app/fedilab/android/mastodon/ui/fragment/settings/FragmentThemingSettings.java +++ b/ |