Use TextViewCompat.setCompoundDrawableTintList().

This commit is contained in:
Isira Seneviratne 2022-07-16 06:20:27 +05:30
parent 4b892e2b30
commit 51bdc30ed0
1 changed files with 9 additions and 13 deletions

View File

@ -5,7 +5,7 @@ import static org.schabi.newpipe.player.notification.NotificationConstants.ACTIO
import android.content.Context; import android.content.Context;
import android.content.Intent; import android.content.Intent;
import android.content.SharedPreferences; import android.content.SharedPreferences;
import android.graphics.drawable.Drawable; import android.content.res.ColorStateList;
import android.util.AttributeSet; import android.util.AttributeSet;
import android.view.LayoutInflater; import android.view.LayoutInflater;
import android.view.View; import android.view.View;
@ -21,7 +21,7 @@ import androidx.annotation.NonNull;
import androidx.annotation.Nullable; import androidx.annotation.Nullable;
import androidx.appcompat.app.AlertDialog; import androidx.appcompat.app.AlertDialog;
import androidx.appcompat.content.res.AppCompatResources; import androidx.appcompat.content.res.AppCompatResources;
import androidx.core.graphics.drawable.DrawableCompat; import androidx.core.widget.TextViewCompat;
import androidx.preference.Preference; import androidx.preference.Preference;
import androidx.preference.PreferenceViewHolder; import androidx.preference.PreferenceViewHolder;
@ -214,17 +214,13 @@ public class NotificationActionsPreference extends Preference {
.getRoot(); .getRoot();
// if present set action icon with correct color // if present set action icon with correct color
if (NotificationConstants.ACTION_ICONS[action] != 0) { final int iconId = NotificationConstants.ACTION_ICONS[action];
Drawable drawable = AppCompatResources.getDrawable(getContext(), if (iconId != 0) {
NotificationConstants.ACTION_ICONS[action]); radioButton.setCompoundDrawablesRelativeWithIntrinsicBounds(0, 0, iconId, 0);
if (drawable != null) {
final int color = ThemeHelper.resolveColorFromAttr(getContext(), final var color = ColorStateList.valueOf(ThemeHelper
android.R.attr.textColorPrimary); .resolveColorFromAttr(getContext(), android.R.attr.textColorPrimary));
drawable = DrawableCompat.wrap(drawable).mutate(); TextViewCompat.setCompoundDrawableTintList(radioButton, color);
drawable.setTint(color);
radioButton.setCompoundDrawablesRelativeWithIntrinsicBounds(null,
null, drawable, null);
}
} }
radioButton.setText(NotificationConstants.getActionName(getContext(), action)); radioButton.setText(NotificationConstants.getActionName(getContext(), action));