From c0d0b45e24ed4fe662f2e2821ddbdb50abc1971c Mon Sep 17 00:00:00 2001 From: Grishka Date: Thu, 16 Nov 2023 11:38:18 +0300 Subject: [PATCH] Replace boost icons --- mastodon/build.gradle | 2 +- .../displayitems/FooterStatusDisplayItem.java | 47 ++++++++++--------- mastodon/src/main/res/drawable/ic_boost.xml | 5 ++ .../src/main/res/drawable/ic_boost_24px.xml | 9 ++++ .../res/drawable/ic_boost_disabled_24px.xml | 15 ++++++ .../res/drawable/ic_boost_fill_alt_24px.xml | 9 ++++ .../main/res/drawable/ic_boost_private.xml | 5 ++ .../res/drawable/ic_private_boost_24px.xml | 15 ++++++ .../ic_private_boost_fill_alt_24px.xml | 15 ++++++ .../main/res/layout/display_item_footer.xml | 3 ++ 10 files changed, 103 insertions(+), 22 deletions(-) create mode 100644 mastodon/src/main/res/drawable/ic_boost.xml create mode 100644 mastodon/src/main/res/drawable/ic_boost_24px.xml create mode 100644 mastodon/src/main/res/drawable/ic_boost_disabled_24px.xml create mode 100644 mastodon/src/main/res/drawable/ic_boost_fill_alt_24px.xml create mode 100644 mastodon/src/main/res/drawable/ic_boost_private.xml create mode 100644 mastodon/src/main/res/drawable/ic_private_boost_24px.xml create mode 100644 mastodon/src/main/res/drawable/ic_private_boost_fill_alt_24px.xml diff --git a/mastodon/build.gradle b/mastodon/build.gradle index b9c3dd47..d7b9ba5e 100644 --- a/mastodon/build.gradle +++ b/mastodon/build.gradle @@ -9,7 +9,7 @@ android { applicationId "org.joinmastodon.android" minSdk 23 targetSdk 33 - versionCode 76 + versionCode 77 versionName "2.2.1" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" resConfigs "ar-rSA", "be-rBY", "bn-rBD", "bs-rBA", "ca-rES", "cs-rCZ", "da-rDK", "de-rDE", "el-rGR", "es-rES", "eu-rES", "fa-rIR", "fi-rFI", "fil-rPH", "fr-rFR", "ga-rIE", "gd-rGB", "gl-rES", "hi-rIN", "hr-rHR", "hu-rHU", "hy-rAM", "ig-rNG", "in-rID", "is-rIS", "it-rIT", "iw-rIL", "ja-rJP", "kab", "ko-rKR", "my-rMM", "nl-rNL", "no-rNO", "oc-rFR", "pl-rPL", "pt-rBR", "pt-rPT", "ro-rRO", "ru-rRU", "si-rLK", "sl-rSI", "sv-rSE", "th-rTH", "tr-rTR", "uk-rUA", "ur-rIN", "vi-rVN", "zh-rCN", "zh-rTW" diff --git a/mastodon/src/main/java/org/joinmastodon/android/ui/displayitems/FooterStatusDisplayItem.java b/mastodon/src/main/java/org/joinmastodon/android/ui/displayitems/FooterStatusDisplayItem.java index 7d4310c7..97bae63e 100644 --- a/mastodon/src/main/java/org/joinmastodon/android/ui/displayitems/FooterStatusDisplayItem.java +++ b/mastodon/src/main/java/org/joinmastodon/android/ui/displayitems/FooterStatusDisplayItem.java @@ -1,12 +1,11 @@ package org.joinmastodon.android.ui.displayitems; import android.app.Activity; -import android.content.Intent; import android.content.res.ColorStateList; import android.graphics.Color; +import android.graphics.drawable.Drawable; import android.os.Build; import android.os.Bundle; -import android.view.MenuItem; import android.view.View; import android.view.ViewGroup; import android.view.accessibility.AccessibilityNodeInfo; @@ -25,10 +24,7 @@ import org.joinmastodon.android.model.StatusPrivacy; import org.joinmastodon.android.ui.utils.UiUtils; import org.parceler.Parcels; -import java.text.DecimalFormat; - import me.grishka.appkit.Nav; -import me.grishka.appkit.utils.BindableViewHolder; import me.grishka.appkit.utils.V; public class FooterStatusDisplayItem extends StatusDisplayItem{ @@ -51,6 +47,7 @@ public class FooterStatusDisplayItem extends StatusDisplayItem{ private final TextView reply, boost, favorite; private final ImageView share; private final ColorStateList buttonColors; + private final View replyBtn, boostBtn, favoriteBtn, shareBtn; private final View.AccessibilityDelegate buttonAccessibilityDelegate=new View.AccessibilityDelegate(){ @Override @@ -93,18 +90,18 @@ public class FooterStatusDisplayItem extends StatusDisplayItem{ UiUtils.fixCompoundDrawableTintOnAndroid6(boost); UiUtils.fixCompoundDrawableTintOnAndroid6(favorite); } - View reply=findViewById(R.id.reply_btn); - View boost=findViewById(R.id.boost_btn); - View favorite=findViewById(R.id.favorite_btn); - View share=findViewById(R.id.share_btn); - reply.setOnClickListener(this::onReplyClick); - reply.setAccessibilityDelegate(buttonAccessibilityDelegate); - boost.setOnClickListener(this::onBoostClick); - boost.setAccessibilityDelegate(buttonAccessibilityDelegate); - favorite.setOnClickListener(this::onFavoriteClick); - favorite.setAccessibilityDelegate(buttonAccessibilityDelegate); - share.setOnClickListener(this::onShareClick); - share.setAccessibilityDelegate(buttonAccessibilityDelegate); + replyBtn=findViewById(R.id.reply_btn); + boostBtn=findViewById(R.id.boost_btn); + favoriteBtn=findViewById(R.id.favorite_btn); + shareBtn=findViewById(R.id.share_btn); + replyBtn.setOnClickListener(this::onReplyClick); + replyBtn.setAccessibilityDelegate(buttonAccessibilityDelegate); + boostBtn.setOnClickListener(this::onBoostClick); + boostBtn.setAccessibilityDelegate(buttonAccessibilityDelegate); + favoriteBtn.setOnClickListener(this::onFavoriteClick); + favoriteBtn.setAccessibilityDelegate(buttonAccessibilityDelegate); + shareBtn.setOnClickListener(this::onShareClick); + shareBtn.setAccessibilityDelegate(buttonAccessibilityDelegate); } @Override @@ -112,10 +109,18 @@ public class FooterStatusDisplayItem extends StatusDisplayItem{ bindButton(reply, item.status.repliesCount); bindButton(boost, item.status.reblogsCount); bindButton(favorite, item.status.favouritesCount); - boost.setSelected(item.status.reblogged); - favorite.setSelected(item.status.favourited); - boost.setEnabled(item.status.visibility==StatusPrivacy.PUBLIC || item.status.visibility==StatusPrivacy.UNLISTED - || (item.status.visibility==StatusPrivacy.PRIVATE && item.status.account.id.equals(AccountSessionManager.getInstance().getAccount(item.accountID).self.id))); + boostBtn.setSelected(item.status.reblogged); + favoriteBtn.setSelected(item.status.favourited); + boolean isOwn=item.status.account.id.equals(AccountSessionManager.getInstance().getAccount(item.accountID).self.id); + boostBtn.setEnabled(item.status.visibility==StatusPrivacy.PUBLIC || item.status.visibility==StatusPrivacy.UNLISTED + || (item.status.visibility==StatusPrivacy.PRIVATE && isOwn)); + Drawable d=itemView.getResources().getDrawable(switch(item.status.visibility){ + case PUBLIC, UNLISTED -> R.drawable.ic_boost; + case PRIVATE -> isOwn ? R.drawable.ic_boost_private : R.drawable.ic_boost_disabled_24px; + case DIRECT -> R.drawable.ic_boost_disabled_24px; + }, itemView.getContext().getTheme()); + d.setBounds(0, 0, V.dp(20), V.dp(20)); + boost.setCompoundDrawablesRelative(d, null, null, null); } private void bindButton(TextView btn, long count){ diff --git a/mastodon/src/main/res/drawable/ic_boost.xml b/mastodon/src/main/res/drawable/ic_boost.xml new file mode 100644 index 00000000..5bdaa60d --- /dev/null +++ b/mastodon/src/main/res/drawable/ic_boost.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/mastodon/src/main/res/drawable/ic_boost_24px.xml b/mastodon/src/main/res/drawable/ic_boost_24px.xml new file mode 100644 index 00000000..40373a17 --- /dev/null +++ b/mastodon/src/main/res/drawable/ic_boost_24px.xml @@ -0,0 +1,9 @@ + + + diff --git a/mastodon/src/main/res/drawable/ic_boost_disabled_24px.xml b/mastodon/src/main/res/drawable/ic_boost_disabled_24px.xml new file mode 100644 index 00000000..859b454e --- /dev/null +++ b/mastodon/src/main/res/drawable/ic_boost_disabled_24px.xml @@ -0,0 +1,15 @@ + + + + + diff --git a/mastodon/src/main/res/drawable/ic_boost_fill_alt_24px.xml b/mastodon/src/main/res/drawable/ic_boost_fill_alt_24px.xml new file mode 100644 index 00000000..25972565 --- /dev/null +++ b/mastodon/src/main/res/drawable/ic_boost_fill_alt_24px.xml @@ -0,0 +1,9 @@ + + + diff --git a/mastodon/src/main/res/drawable/ic_boost_private.xml b/mastodon/src/main/res/drawable/ic_boost_private.xml new file mode 100644 index 00000000..6a2187dc --- /dev/null +++ b/mastodon/src/main/res/drawable/ic_boost_private.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/mastodon/src/main/res/drawable/ic_private_boost_24px.xml b/mastodon/src/main/res/drawable/ic_private_boost_24px.xml new file mode 100644 index 00000000..3c6670a9 --- /dev/null +++ b/mastodon/src/main/res/drawable/ic_private_boost_24px.xml @@ -0,0 +1,15 @@ + + + + + diff --git a/mastodon/src/main/res/drawable/ic_private_boost_fill_alt_24px.xml b/mastodon/src/main/res/drawable/ic_private_boost_fill_alt_24px.xml new file mode 100644 index 00000000..6929d74a --- /dev/null +++ b/mastodon/src/main/res/drawable/ic_private_boost_fill_alt_24px.xml @@ -0,0 +1,15 @@ + + + + + diff --git a/mastodon/src/main/res/layout/display_item_footer.xml b/mastodon/src/main/res/layout/display_item_footer.xml index 7e2f9749..ca9aa16d 100644 --- a/mastodon/src/main/res/layout/display_item_footer.xml +++ b/mastodon/src/main/res/layout/display_item_footer.xml @@ -27,6 +27,7 @@ android:textColor="?colorM3OnSurfaceVariant" android:gravity="center_vertical" android:textAppearance="@style/m3_label_medium" + android:duplicateParentState="true" tools:text="123"/> @@ -54,6 +55,7 @@ android:textColor="?colorM3OnSurfaceVariant" android:gravity="center_vertical" android:textAppearance="@style/m3_label_medium" + android:duplicateParentState="true" tools:text="123"/> @@ -81,6 +83,7 @@ android:textColor="?colorM3OnSurfaceVariant" android:gravity="center_vertical" android:textAppearance="@style/m3_label_medium" + android:duplicateParentState="true" tools:text="123"/>