Replace boost icons

This commit is contained in:
Grishka 2023-11-16 11:38:18 +03:00
parent cbe243fc9e
commit c0d0b45e24
10 changed files with 103 additions and 22 deletions

View File

@ -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"

View File

@ -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){

View File

@ -0,0 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_selected="true" android:drawable="@drawable/ic_boost_fill_alt_24px"/>
<item android:drawable="@drawable/ic_boost_24px"/>
</selector>

View File

@ -0,0 +1,9 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24"
android:viewportHeight="24">
<path
android:pathData="M7,22L3,18L7,14L8.4,15.45L6.85,17H17V13H19V19H6.85L8.4,20.55L7,22ZM5,11V5H17.15L15.6,3.45L17,2L21,6L17,10L15.6,8.55L17.15,7H7V11H5Z"
android:fillColor="#000000"/>
</vector>

View File

@ -0,0 +1,15 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24"
android:viewportHeight="24">
<path
android:pathData="M19,13V17.879L17,15.879V13H19Z"
android:fillColor="#000000"/>
<path
android:pathData="M2.414,2.707L1,4.121L5,8.121V11H7V10.121L13.879,17H6.85L8.4,15.45L7,14L3,18L7,22L8.4,20.55L6.85,19H15.879L19.385,22.506L20.799,21.092L2.414,2.707Z"
android:fillColor="#000000"/>
<path
android:pathData="M17.15,7H8.121L6.121,5H17.15L15.6,3.45L17,2L21,6L17,10L15.6,8.55L17.15,7Z"
android:fillColor="#000000"/>
</vector>

View File

@ -0,0 +1,9 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24"
android:viewportHeight="24">
<path
android:pathData="M6.775,22.875L2.15,18.25L6.775,13.625L8.8,15.7L7.675,16.8H16.95V12.8H19.85V19.7H7.675L8.8,20.8L6.775,22.875ZM4.15,11.45V4.55H16.35L15.225,3.45L17.25,1.375L21.875,6L17.25,10.625L15.225,8.55L16.35,7.45H7.05V11.45H4.15Z"
android:fillColor="#000000"/>
</vector>

View File

@ -0,0 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_selected="true" android:drawable="@drawable/ic_private_boost_fill_alt_24px"/>
<item android:drawable="@drawable/ic_private_boost_24px"/>
</selector>

View File

@ -0,0 +1,15 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24"
android:viewportHeight="24">
<path
android:pathData="M8.4,15.45L7,14L3,18L7,22L8.4,20.55L6.85,19H13.5V18C13.5,17.657 13.564,17.317 13.699,17H6.85L8.4,15.45Z"
android:fillColor="#000000"/>
<path
android:pathData="M5,5V11H7V7H17.15L15.6,8.55L17,10L21,6L17,2L15.6,3.45L17.15,5H5Z"
android:fillColor="#000000"/>
<path
android:pathData="M16,22C15.717,22 15.475,21.908 15.275,21.725C15.092,21.525 15,21.283 15,21V18C15,17.717 15.092,17.483 15.275,17.3C15.475,17.1 15.717,17 16,17V16C16,15.45 16.192,14.983 16.575,14.6C16.975,14.2 17.45,14 18,14C18.55,14 19.017,14.2 19.4,14.6C19.8,14.983 20,15.45 20,16V17C20.283,17 20.517,17.1 20.7,17.3C20.9,17.483 21,17.717 21,18V21C21,21.283 20.9,21.525 20.7,21.725C20.517,21.908 20.283,22 20,22H16ZM17,17H19V16C19,15.717 18.9,15.483 18.7,15.3C18.517,15.1 18.283,15 18,15C17.717,15 17.475,15.1 17.275,15.3C17.092,15.483 17,15.717 17,16V17Z"
android:fillColor="#000000"/>
</vector>

View File

@ -0,0 +1,15 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24"
android:viewportHeight="24">
<path
android:pathData="M2.15,18.25L6.775,22.875L8.8,20.8L7.675,19.7H13.5V18C13.5,17.583 13.594,17.172 13.795,16.8H7.675L8.8,15.7L6.775,13.625L2.15,18.25Z"
android:fillColor="#000000"/>
<path
android:pathData="M4.15,4.55V11.45H7.05V7.45H16.35L15.225,8.55L17.25,10.625L21.875,6L17.25,1.375L15.225,3.45L16.35,4.55H4.15Z"
android:fillColor="#000000"/>
<path
android:pathData="M16,22C15.717,22 15.475,21.908 15.275,21.725C15.092,21.525 15,21.283 15,21V18C15,17.717 15.092,17.483 15.275,17.3C15.475,17.1 15.717,17 16,17V16C16,15.45 16.192,14.983 16.575,14.6C16.975,14.2 17.45,14 18,14C18.55,14 19.017,14.2 19.4,14.6C19.8,14.983 20,15.45 20,16V17C20.283,17 20.517,17.1 20.7,17.3C20.9,17.483 21,17.717 21,18V21C21,21.283 20.9,21.525 20.7,21.725C20.517,21.908 20.283,22 20,22H16ZM17,17H19V16C19,15.717 18.9,15.483 18.7,15.3C18.517,15.1 18.283,15 18,15C17.717,15 17.475,15.1 17.275,15.3C17.092,15.483 17,15.717 17,16V17Z"
android:fillColor="#000000"/>
</vector>

View File

@ -27,6 +27,7 @@
android:textColor="?colorM3OnSurfaceVariant"
android:gravity="center_vertical"
android:textAppearance="@style/m3_label_medium"
android:duplicateParentState="true"
tools:text="123"/>
</FrameLayout>
@ -54,6 +55,7 @@
android:textColor="?colorM3OnSurfaceVariant"
android:gravity="center_vertical"
android:textAppearance="@style/m3_label_medium"
android:duplicateParentState="true"
tools:text="123"/>
</FrameLayout>
@ -81,6 +83,7 @@
android:textColor="?colorM3OnSurfaceVariant"
android:gravity="center_vertical"
android:textAppearance="@style/m3_label_medium"
android:duplicateParentState="true"
tools:text="123"/>
</FrameLayout>