From c0e345fcefdbe742c44dbad071d694e2929f09c8 Mon Sep 17 00:00:00 2001 From: Karim Abou Zeid Date: Wed, 19 Aug 2015 13:43:38 +0200 Subject: [PATCH] Clean ups. Replaced deprecated getResources.getColor() with ContextCompat.getColor(this, int color) --- app/build.gradle | 2 ++ .../dialogs/ColorChooserDialog.java | 6 ++-- .../helper/PlayingNotificationHelper.java | 9 +++--- .../ui/activities/MainActivity.java | 5 +-- .../base/AbsSlidingMusicPanelActivity.java | 3 +- .../tageditor/AbsTagEditorActivity.java | 2 +- .../kabouzeid/gramophone/util/ColorUtil.java | 31 ++++++++++++------- .../gramophone/util/PreferenceUtil.java | 5 +-- .../kabouzeid/gramophone/views/ColorView.java | 2 +- 9 files changed, 40 insertions(+), 25 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index 4b84eaec..8ae9f37a 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -67,6 +67,8 @@ android { lintOptions { disable 'MissingTranslation' disable 'InvalidPackage' + // remove after it has been fixed (probably 1.4 preview 3 + gradle 1.4 alpha2) + disable 'PrivateResource' } } diff --git a/app/src/main/java/com/kabouzeid/gramophone/dialogs/ColorChooserDialog.java b/app/src/main/java/com/kabouzeid/gramophone/dialogs/ColorChooserDialog.java index c7ee089d..db60fdc3 100644 --- a/app/src/main/java/com/kabouzeid/gramophone/dialogs/ColorChooserDialog.java +++ b/app/src/main/java/com/kabouzeid/gramophone/dialogs/ColorChooserDialog.java @@ -14,6 +14,7 @@ import android.os.Build; import android.os.Bundle; import android.support.annotation.NonNull; import android.support.annotation.Nullable; +import android.support.v4.content.ContextCompat; import android.support.v4.content.res.ResourcesCompat; import android.support.v7.app.AppCompatActivity; import android.view.LayoutInflater; @@ -72,6 +73,7 @@ public class ColorChooserDialog extends LeakDetectDialogFragment implements View } } + @NonNull @Override public Dialog onCreateDialog(Bundle savedInstanceState) { MaterialDialog dialog = new MaterialDialog.Builder(getActivity()) @@ -94,9 +96,9 @@ public class ColorChooserDialog extends LeakDetectDialogFragment implements View public void onNeutral(MaterialDialog dialog) { super.onNeutral(dialog); if (getArguments().getInt("title", 0) == R.string.primary_color) { - getArguments().putInt("preselect", getResources().getColor(R.color.indigo_500)); + getArguments().putInt("preselect", ContextCompat.getColor(getContext(), R.color.indigo_500)); } else if (getArguments().getInt("title", 0) == R.string.accent_color) { - getArguments().putInt("preselect", getResources().getColor(R.color.pink_A200)); + getArguments().putInt("preselect", ContextCompat.getColor(getContext(), R.color.pink_A200)); } invalidateGrid(); } diff --git a/app/src/main/java/com/kabouzeid/gramophone/helper/PlayingNotificationHelper.java b/app/src/main/java/com/kabouzeid/gramophone/helper/PlayingNotificationHelper.java index b980c166..ff2ea1a2 100644 --- a/app/src/main/java/com/kabouzeid/gramophone/helper/PlayingNotificationHelper.java +++ b/app/src/main/java/com/kabouzeid/gramophone/helper/PlayingNotificationHelper.java @@ -16,6 +16,7 @@ import android.os.Build; import android.support.annotation.NonNull; import android.support.annotation.Nullable; import android.support.v4.app.NotificationCompat; +import android.support.v4.content.ContextCompat; import android.view.View; import android.widget.RemoteViews; @@ -268,10 +269,10 @@ public class PlayingNotificationHelper { isDark = setDark; if (notificationLayout != null && notificationLayoutBig != null) { - int darkContentColor = service.getResources().getColor(R.color.primary_text_default_material_light); - int darkContentSecondaryColor = service.getResources().getColor(R.color.secondary_text_default_material_light); - int contentColor = service.getResources().getColor(R.color.primary_text_default_material_dark); - int contentSecondaryColor = service.getResources().getColor(R.color.secondary_text_default_material_dark); + int darkContentColor = ContextCompat.getColor(service, R.color.primary_text_default_material_light); + int darkContentSecondaryColor = ContextCompat.getColor(service, R.color.secondary_text_default_material_light); + int contentColor = ContextCompat.getColor(service, R.color.primary_text_default_material_dark); + int contentSecondaryColor = ContextCompat.getColor(service, R.color.secondary_text_default_material_dark); notificationLayout.setTextColor(R.id.title, setDark ? darkContentColor : contentColor); notificationLayout.setTextColor(R.id.text, setDark ? darkContentSecondaryColor : contentSecondaryColor); diff --git a/app/src/main/java/com/kabouzeid/gramophone/ui/activities/MainActivity.java b/app/src/main/java/com/kabouzeid/gramophone/ui/activities/MainActivity.java index 1bbe8588..ae459134 100644 --- a/app/src/main/java/com/kabouzeid/gramophone/ui/activities/MainActivity.java +++ b/app/src/main/java/com/kabouzeid/gramophone/ui/activities/MainActivity.java @@ -21,6 +21,7 @@ import android.support.design.widget.AppBarLayout.OnOffsetChangedListener; import android.support.design.widget.NavigationView; import android.support.design.widget.TabLayout; import android.support.v4.app.Fragment; +import android.support.v4.content.ContextCompat; import android.support.v4.view.ViewPager; import android.support.v4.widget.DrawerLayout; import android.support.v7.widget.Toolbar; @@ -195,7 +196,7 @@ public class MainActivity extends AbsSlidingMusicPanelActivity new int[]{ // 0, colorAccent, - ThemeSingleton.get().darkTheme ? getResources().getColor(R.color.primary_text_default_material_dark) : getResources().getColor(R.color.primary_text_default_material_light) + ThemeSingleton.get().darkTheme ? ContextCompat.getColor(this, R.color.primary_text_default_material_dark) : ContextCompat.getColor(this, R.color.primary_text_default_material_light) } )); navigationView.setItemIconTintList(new ColorStateList( @@ -207,7 +208,7 @@ public class MainActivity extends AbsSlidingMusicPanelActivity new int[]{ // 0, colorAccent, - ThemeSingleton.get().darkTheme ? getResources().getColor(R.color.secondary_text_default_material_dark) : getResources().getColor(R.color.secondary_text_default_material_light) + ThemeSingleton.get().darkTheme ? ContextCompat.getColor(this, R.color.secondary_text_default_material_dark) : ContextCompat.getColor(this, R.color.secondary_text_default_material_light) } )); navigationView.setNavigationItemSelectedListener(new NavigationView.OnNavigationItemSelectedListener() { diff --git a/app/src/main/java/com/kabouzeid/gramophone/ui/activities/base/AbsSlidingMusicPanelActivity.java b/app/src/main/java/com/kabouzeid/gramophone/ui/activities/base/AbsSlidingMusicPanelActivity.java index a410aaae..a67add18 100644 --- a/app/src/main/java/com/kabouzeid/gramophone/ui/activities/base/AbsSlidingMusicPanelActivity.java +++ b/app/src/main/java/com/kabouzeid/gramophone/ui/activities/base/AbsSlidingMusicPanelActivity.java @@ -1156,8 +1156,7 @@ public abstract class AbsSlidingMusicPanelActivity extends AbsMusicServiceActivi @Override public void set(FloatingActionButton object, Integer value) { object.setBackgroundTintList(ColorStateList.valueOf(value)); - object.setRippleColor(shiftColorDown(value)); - object.getDrawable().setColorFilter(ColorUtil.getDrawableColorForBackground(object.getContext(), value), PorterDuff.Mode.SRC_IN); + object.getDrawable().setColorFilter(ColorUtil.getFabDrawableColorForBackground(object.getContext(), value), PorterDuff.Mode.SRC_IN); } @Override diff --git a/app/src/main/java/com/kabouzeid/gramophone/ui/activities/tageditor/AbsTagEditorActivity.java b/app/src/main/java/com/kabouzeid/gramophone/ui/activities/tageditor/AbsTagEditorActivity.java index e8e286dc..f738d838 100644 --- a/app/src/main/java/com/kabouzeid/gramophone/ui/activities/tageditor/AbsTagEditorActivity.java +++ b/app/src/main/java/com/kabouzeid/gramophone/ui/activities/tageditor/AbsTagEditorActivity.java @@ -196,7 +196,7 @@ public abstract class AbsTagEditorActivity extends AbsBaseActivity { }); int fabColor = getThemeColorAccent(); - int fabDrawableColor = ColorUtil.getDrawableColorForBackground(this, fabColor); + int fabDrawableColor = ColorUtil.getFabDrawableColorForBackground(this, fabColor); fab.setBackgroundTintList(ColorStateList.valueOf(fabColor)); fab.getDrawable().setColorFilter(fabDrawableColor, PorterDuff.Mode.SRC_IN); } diff --git a/app/src/main/java/com/kabouzeid/gramophone/util/ColorUtil.java b/app/src/main/java/com/kabouzeid/gramophone/util/ColorUtil.java index 87535699..61feaf5c 100644 --- a/app/src/main/java/com/kabouzeid/gramophone/util/ColorUtil.java +++ b/app/src/main/java/com/kabouzeid/gramophone/util/ColorUtil.java @@ -8,6 +8,7 @@ import android.support.annotation.AttrRes; import android.support.annotation.ColorInt; import android.support.annotation.NonNull; import android.support.annotation.Nullable; +import android.support.v4.content.ContextCompat; import android.support.v7.graphics.Palette; import com.kabouzeid.gramophone.R; @@ -82,6 +83,14 @@ public class ColorUtil { return (alpha << 24) + (0x00ffffff & Color.HSVToColor(hsv)); } + public static int getPrimaryTextColor(final Context context, boolean dark) { + return dark ? ContextCompat.getColor(context, R.color.primary_text_default_material_light) : ContextCompat.getColor(context, R.color.primary_text_default_material_dark); + } + + public static int getSecondaryTextColor(final Context context, boolean dark) { + return dark ? ContextCompat.getColor(context, R.color.secondary_text_default_material_light) : ContextCompat.getColor(context, R.color.secondary_text_default_material_dark); + } + public static float getLuminance(@ColorInt int color) { return (Color.red(color) * 0.299f + Color.green(color) * 0.587f + Color.blue(color) * 0.114f); } @@ -90,19 +99,19 @@ public class ColorUtil { return getLuminance(backgroundColor) > (255f / 2f); } - public static int getPrimaryTextColorForBackground(final Context context, @ColorInt int backgroundColor) { - return useDarkTextColorOnBackground(backgroundColor) ? context.getResources().getColor(R.color.primary_text_default_material_light) : context.getResources().getColor(R.color.primary_text_default_material_dark); - } - - public static int getSecondaryTextColorForBackground(final Context context, @ColorInt int backgroundColor) { - return useDarkTextColorOnBackground(backgroundColor) ? context.getResources().getColor(R.color.secondary_text_default_material_light) : context.getResources().getColor(R.color.secondary_text_default_material_dark); - } - - public static boolean useDarkDrawableColorOnBackground(@ColorInt int backgroundColor) { + public static boolean useDarkFabDrawableOnBackground(@ColorInt int backgroundColor) { return getLuminance(backgroundColor) > (255f / 1.3f); } - public static int getDrawableColorForBackground(final Context context, @ColorInt int backgroundColor) { - return useDarkDrawableColorOnBackground(backgroundColor) ? context.getResources().getColor(R.color.primary_text_default_material_light) : context.getResources().getColor(R.color.primary_text_default_material_dark); + public static int getPrimaryTextColorForBackground(final Context context, @ColorInt int backgroundColor) { + return getPrimaryTextColor(context, useDarkTextColorOnBackground(backgroundColor)); + } + + public static int getSecondaryTextColorForBackground(final Context context, @ColorInt int backgroundColor) { + return getSecondaryTextColor(context, useDarkTextColorOnBackground(backgroundColor)); + } + + public static int getFabDrawableColorForBackground(final Context context, @ColorInt int backgroundColor) { + return getPrimaryTextColor(context, useDarkFabDrawableOnBackground(backgroundColor)); } } diff --git a/app/src/main/java/com/kabouzeid/gramophone/util/PreferenceUtil.java b/app/src/main/java/com/kabouzeid/gramophone/util/PreferenceUtil.java index 808622fb..669cc285 100644 --- a/app/src/main/java/com/kabouzeid/gramophone/util/PreferenceUtil.java +++ b/app/src/main/java/com/kabouzeid/gramophone/util/PreferenceUtil.java @@ -5,6 +5,7 @@ import android.content.Context; import android.content.SharedPreferences; import android.preference.PreferenceManager; import android.support.annotation.NonNull; +import android.support.v4.content.ContextCompat; import com.kabouzeid.gramophone.R; import com.kabouzeid.gramophone.helper.SortOrder; @@ -106,7 +107,7 @@ public final class PreferenceUtil { } public int getThemeColorPrimary(Context context) { - return mPreferences.getInt("primary_color", context.getResources().getColor(R.color.indigo_500)); + return mPreferences.getInt("primary_color", ContextCompat.getColor(context, R.color.indigo_500)); } @SuppressLint("CommitPrefEdits") @@ -115,7 +116,7 @@ public final class PreferenceUtil { } public int getThemeColorAccent(Context context) { - return mPreferences.getInt("accent_color", context.getResources().getColor(R.color.pink_A200)); + return mPreferences.getInt("accent_color", ContextCompat.getColor(context, R.color.pink_A200)); } @SuppressLint("CommitPrefEdits") diff --git a/app/src/main/java/com/kabouzeid/gramophone/views/ColorView.java b/app/src/main/java/com/kabouzeid/gramophone/views/ColorView.java index e11676c4..e4f25878 100644 --- a/app/src/main/java/com/kabouzeid/gramophone/views/ColorView.java +++ b/app/src/main/java/com/kabouzeid/gramophone/views/ColorView.java @@ -68,7 +68,7 @@ public class ColorView extends FrameLayout { public void setBackgroundColor(int color) { paint.setColor(color); paintBorder.setColor(ColorUtil.shiftColorDown(color)); - paintCheck.setColorFilter(new PorterDuffColorFilter(ColorUtil.getDrawableColorForBackground(getContext(), color), PorterDuff.Mode.SRC_IN)); + paintCheck.setColorFilter(new PorterDuffColorFilter(ColorUtil.getFabDrawableColorForBackground(getContext(), color), PorterDuff.Mode.SRC_IN)); requestLayout(); invalidate(); }