From 5ac2db645f956b73f37c657994c346e1f3ddeb00 Mon Sep 17 00:00:00 2001 From: Alex Baker Date: Sat, 2 Jul 2016 01:28:35 -0500 Subject: [PATCH] Mutate drawables before tinting --- build.gradle | 4 ++-- .../locale/ui/activity/TaskerSettingsActivity.java | 2 +- .../todoroo/astrid/actfm/FilterSettingsActivity.java | 4 ++-- .../todoroo/astrid/activity/TaskEditFragment.java | 4 ++-- .../java/com/todoroo/astrid/tags/TagsControlSet.java | 1 + .../java/org/tasks/fragments/CommentBarFragment.java | 1 + src/main/java/org/tasks/ui/DeadlineControlSet.java | 1 + src/main/java/org/tasks/ui/MenuColorizer.java | 12 ++++++------ 8 files changed, 16 insertions(+), 13 deletions(-) diff --git a/build.gradle b/build.gradle index 33dc417df..c553f5efa 100644 --- a/build.gradle +++ b/build.gradle @@ -32,8 +32,8 @@ android { defaultConfig { applicationId "org.tasks" - versionCode 413 - versionName "4.8.20" + versionCode 414 + versionName "4.8.21" minSdkVersion 14 targetSdkVersion 24 multiDexEnabled true diff --git a/src/googleplay/java/org/tasks/locale/ui/activity/TaskerSettingsActivity.java b/src/googleplay/java/org/tasks/locale/ui/activity/TaskerSettingsActivity.java index 31a38660c..894f19898 100755 --- a/src/googleplay/java/org/tasks/locale/ui/activity/TaskerSettingsActivity.java +++ b/src/googleplay/java/org/tasks/locale/ui/activity/TaskerSettingsActivity.java @@ -64,7 +64,7 @@ public final class TaskerSettingsActivity extends AbstractFragmentPluginAppCompa } updateView(); - toolbar.setNavigationIcon(DrawableCompat.wrap(getResources().getDrawable(R.drawable.ic_close_24dp))); + toolbar.setNavigationIcon(getResources().getDrawable(R.drawable.ic_close_24dp)); toolbar.setOnMenuItemClickListener(this); toolbar.setNavigationOnClickListener(new View.OnClickListener() { @Override diff --git a/src/main/java/com/todoroo/astrid/actfm/FilterSettingsActivity.java b/src/main/java/com/todoroo/astrid/actfm/FilterSettingsActivity.java index 9299e952c..bd88f1692 100644 --- a/src/main/java/com/todoroo/astrid/actfm/FilterSettingsActivity.java +++ b/src/main/java/com/todoroo/astrid/actfm/FilterSettingsActivity.java @@ -58,8 +58,8 @@ public class FilterSettingsActivity extends ThemedInjectingAppCompatActivity imp filter = getIntent().getParcelableExtra(TOKEN_FILTER); final boolean backButtonSavesTask = preferences.backButtonSavesTask(); - toolbar.setNavigationIcon(DrawableCompat.wrap(getResources().getDrawable( - backButtonSavesTask ? R.drawable.ic_close_24dp : R.drawable.ic_save_24dp))); + toolbar.setNavigationIcon(getResources().getDrawable( + backButtonSavesTask ? R.drawable.ic_close_24dp : R.drawable.ic_save_24dp)); toolbar.setTitle(filter.listingTitle); toolbar.setNavigationOnClickListener(new View.OnClickListener() { @Override diff --git a/src/main/java/com/todoroo/astrid/activity/TaskEditFragment.java b/src/main/java/com/todoroo/astrid/activity/TaskEditFragment.java index 92e76b064..9041ecccd 100755 --- a/src/main/java/com/todoroo/astrid/activity/TaskEditFragment.java +++ b/src/main/java/com/todoroo/astrid/activity/TaskEditFragment.java @@ -131,8 +131,8 @@ public final class TaskEditFragment extends InjectingFragment implements Toolbar } final boolean backButtonSavesTask = preferences.backButtonSavesTask(); - toolbar.setNavigationIcon(DrawableCompat.wrap(getResources().getDrawable( - backButtonSavesTask ? R.drawable.ic_close_24dp : R.drawable.ic_save_24dp))); + toolbar.setNavigationIcon(getResources().getDrawable( + backButtonSavesTask ? R.drawable.ic_close_24dp : R.drawable.ic_save_24dp)); toolbar.setNavigationOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { diff --git a/src/main/java/com/todoroo/astrid/tags/TagsControlSet.java b/src/main/java/com/todoroo/astrid/tags/TagsControlSet.java index 6d82c0632..aa5c0397e 100644 --- a/src/main/java/com/todoroo/astrid/tags/TagsControlSet.java +++ b/src/main/java/com/todoroo/astrid/tags/TagsControlSet.java @@ -171,6 +171,7 @@ public final class TagsControlSet extends TaskEditControlFragment { ThemeColor themeColor = themeCache.getThemeColor(tagData.getColor() >= 0 ? tagData.getColor() : 19); view.setText(tagData.getName()); Drawable drawable = DrawableCompat.wrap(getResources().getDrawable(R.drawable.ic_label_24dp)); + drawable.mutate(); DrawableCompat.setTint(drawable, themeColor.getPrimaryColor()); view.setCompoundDrawablesWithIntrinsicBounds(drawable, null, null, null); return view; diff --git a/src/main/java/org/tasks/fragments/CommentBarFragment.java b/src/main/java/org/tasks/fragments/CommentBarFragment.java index d39d5a63e..782730882 100644 --- a/src/main/java/org/tasks/fragments/CommentBarFragment.java +++ b/src/main/java/org/tasks/fragments/CommentBarFragment.java @@ -243,6 +243,7 @@ public class CommentBarFragment extends TaskEditControlFragment { TypedValue typedValue = new TypedValue(); getActivity().getTheme().resolveAttribute(R.attr.actionBarPrimaryText, typedValue, true); Drawable drawable = DrawableCompat.wrap(getResources().getDrawable(R.drawable.ic_camera_alt_black_24dp)); + drawable.mutate(); DrawableCompat.setTint(drawable, typedValue.data); pictureButton.setImageDrawable(drawable); } diff --git a/src/main/java/org/tasks/ui/DeadlineControlSet.java b/src/main/java/org/tasks/ui/DeadlineControlSet.java index 21ad9d5f1..3d52ac75d 100644 --- a/src/main/java/org/tasks/ui/DeadlineControlSet.java +++ b/src/main/java/org/tasks/ui/DeadlineControlSet.java @@ -383,6 +383,7 @@ public class DeadlineControlSet extends TaskEditControlFragment { private Drawable getUnderline(int color) { Drawable drawable = DrawableCompat.wrap(context.getResources().getDrawable(R.drawable.textfield_underline_black)); + drawable.mutate(); DrawableCompat.setTint(drawable, color); return drawable; } diff --git a/src/main/java/org/tasks/ui/MenuColorizer.java b/src/main/java/org/tasks/ui/MenuColorizer.java index 78960beb2..bd8da6d65 100644 --- a/src/main/java/org/tasks/ui/MenuColorizer.java +++ b/src/main/java/org/tasks/ui/MenuColorizer.java @@ -59,9 +59,7 @@ public class MenuColorizer { } public static void colorToolbar(Toolbar toolbar, int color) { - Drawable wrapped = DrawableCompat.wrap(toolbar.getNavigationIcon()); - DrawableCompat.setTint(wrapped, color); - toolbar.setNavigationIcon(wrapped); + toolbar.setNavigationIcon(colorDrawable(toolbar.getNavigationIcon(), color)); toolbar.setTitleTextColor(color); colorMenu(toolbar.getMenu(), color); } @@ -82,12 +80,14 @@ public class MenuColorizer { /** Sets a color filter on a {@link MenuItem} */ private static void colorMenuItem(final MenuItem menuItem, final int color) { - final Drawable drawable = menuItem.getIcon(); + colorDrawable(menuItem.getIcon(), color); + } + + private static Drawable colorDrawable(Drawable drawable, int color) { if (drawable != null) { - // If we don't mutate the drawable, then all drawable's with this id will have a color - // filter applied to it. drawable.mutate(); drawable.setColorFilter(color, PorterDuff.Mode.SRC_IN); } + return drawable; } }