diff --git a/src/main/java/ru/touchin/roboswag/components/navigation/ViewController.java b/src/main/java/ru/touchin/roboswag/components/navigation/ViewController.java index f2c3e4e..462fc11 100644 --- a/src/main/java/ru/touchin/roboswag/components/navigation/ViewController.java +++ b/src/main/java/ru/touchin/roboswag/components/navigation/ViewController.java @@ -19,8 +19,12 @@ package ru.touchin.roboswag.components.navigation; +import android.graphics.drawable.Drawable; import android.os.Bundle; import android.support.annotation.CallSuper; +import android.support.annotation.ColorInt; +import android.support.annotation.ColorRes; +import android.support.annotation.DrawableRes; import android.support.annotation.IdRes; import android.support.annotation.LayoutRes; import android.support.annotation.NonNull; @@ -189,6 +193,32 @@ public class ViewController, return viewById; } + /** + * Return the color value associated with a particular resource ID. + * Starting in {@link android.os.Build.VERSION_CODES#M}, the returned + * color will be styled for the specified Context's theme. + * + * @param resId The resource id to search for data; + * @return int A single color value in the form 0xAARRGGBB. + */ + @ColorInt + public int getColor(@ColorRes final int resId) { + return getActivity().getColorCompat(resId); + } + + /** + * Returns a drawable object associated with a particular resource ID. + * Starting in {@link android.os.Build.VERSION_CODES#LOLLIPOP}, the + * returned drawable will be styled for the specified Context's theme. + * + * @param resId The resource id to search for data; + * @return Drawable An object that can be used to draw this resource. + */ + @NonNull + public Drawable getDrawable(@DrawableRes final int resId) { + return getActivity().getDrawableCompat(resId); + } + /** * Calls when activity configuring ActionBar, Toolbar, Sidebar etc. * If it will be called or not depends on {@link Fragment#hasOptionsMenu()} and {@link Fragment#isMenuVisible()}. diff --git a/src/main/java/ru/touchin/roboswag/components/navigation/activities/BaseActivity.java b/src/main/java/ru/touchin/roboswag/components/navigation/activities/BaseActivity.java index c3b5bf5..4ebe54f 100644 --- a/src/main/java/ru/touchin/roboswag/components/navigation/activities/BaseActivity.java +++ b/src/main/java/ru/touchin/roboswag/components/navigation/activities/BaseActivity.java @@ -20,9 +20,14 @@ package ru.touchin.roboswag.components.navigation.activities; import android.app.Activity; +import android.graphics.drawable.Drawable; import android.os.Bundle; +import android.support.annotation.ColorInt; +import android.support.annotation.ColorRes; +import android.support.annotation.DrawableRes; import android.support.annotation.NonNull; import android.support.annotation.Nullable; +import android.support.v4.content.ContextCompat; import android.support.v7.app.AppCompatActivity; import android.view.View; import android.view.inputmethod.InputMethodManager; @@ -122,6 +127,32 @@ public abstract class BaseActivity extends AppCompatActivity inputManager.showSoftInput(view, InputMethodManager.SHOW_IMPLICIT); } + /** + * Return the color value associated with a particular resource ID. + * Starting in {@link android.os.Build.VERSION_CODES#M}, the returned + * color will be styled for the specified Context's theme. + * + * @param resId The resource id to search for data; + * @return int A single color value in the form 0xAARRGGBB. + */ + @ColorInt + public int getColorCompat(@ColorRes final int resId) { + return ContextCompat.getColor(this, resId); + } + + /** + * Returns a drawable object associated with a particular resource ID. + * Starting in {@link android.os.Build.VERSION_CODES#LOLLIPOP}, the + * returned drawable will be styled for the specified Context's theme. + * + * @param resId The resource id to search for data; + * @return Drawable An object that can be used to draw this resource. + */ + @NonNull + public Drawable getDrawableCompat(@DrawableRes final int resId) { + return ContextCompat.getDrawable(this, resId); + } + public void addOnBackPressedListener(@NonNull final OnBackPressedListener onBackPressedListener) { onBackPressedListeners.add(onBackPressedListener); }