package android.support.v17.leanback.widget; import android.graphics.drawable.Drawable; import android.os.Build; import android.view.View; import android.view.ViewGroup; final class ForegroundHelper { final static ForegroundHelper sInstance = new ForegroundHelper(); ForegroundHelperVersionImpl mImpl; /** * Interface implemented by classes that support Shadow. */ static interface ForegroundHelperVersionImpl { public void setForeground(View view, Drawable drawable); public Drawable getForeground(View view); } /** * Implementation used on api 23 (and above). */ private static final class ForegroundHelperApi23Impl implements ForegroundHelperVersionImpl { @Override public void setForeground(View view, Drawable drawable) { ForegroundHelperApi23.setForeground(view, drawable); } @Override public Drawable getForeground(View view) { return ForegroundHelperApi23.getForeground(view); } } /** * Stub implementation */ private static final class ForegroundHelperStubImpl implements ForegroundHelperVersionImpl { @Override public void setForeground(View view, Drawable drawable) { } @Override public Drawable getForeground(View view) { return null; } } private ForegroundHelper() { if (supportsForeground()) { mImpl = new ForegroundHelperApi23Impl(); } else { mImpl = new ForegroundHelperStubImpl(); } } public static ForegroundHelper getInstance() { return sInstance; } /** * Returns true if view.setForeground() is supported. */ public static boolean supportsForeground() { return Build.VERSION.SDK_INT >= 23; } public Drawable getForeground(View view) { return mImpl.getForeground(view); } public void setForeground(View view, Drawable drawable) { mImpl.setForeground(view, drawable); } }