Change value of themedIconTint to be a color resource, instead of a ColorStateList resource which is not supported for the XML tint attribute of an ImageView below v21.

This commit is contained in:
Phillip Hsu
2016-09-01 20:55:29 -07:00
parent d7b3fc6ee1
commit c8ea8cf43a
3 changed files with 16 additions and 9 deletions
@@ -3,7 +3,6 @@ package com.philliphsu.clock2.alarms;
import android.app.Activity;
import android.content.Intent;
import android.content.res.ColorStateList;
import android.content.res.TypedArray;
import android.graphics.drawable.Drawable;
import android.media.RingtoneManager;
import android.net.Uri;
@@ -162,14 +161,11 @@ public class ExpandedAlarmViewHolder extends BaseAlarmViewHolder {
}
private void bindRingtone(String ringtone) {
// TODO: Write a Utils method for this.
TypedArray a = getContext().getTheme().obtainStyledAttributes(new int[] {R.attr.themedIconTint});
ColorStateList iconTint = a.getColorStateList(0);
a.recycle();
int iconTint = Utils.getTextColorFromThemeAttr(getContext(), R.attr.themedIconTint);
Drawable ringtoneIcon = mRingtone.getCompoundDrawablesRelative()[0/*start*/];
ringtoneIcon = DrawableCompat.wrap(ringtoneIcon.mutate());
DrawableCompat.setTintList(ringtoneIcon, iconTint);
DrawableCompat.setTint(ringtoneIcon, iconTint);
mRingtone.setCompoundDrawablesRelativeWithIntrinsicBounds(ringtoneIcon, null, null, null);
// Initializing to Settings.System.DEFAULT_ALARM_ALERT_URI will show