diff options
Diffstat (limited to 'packages/SystemUI/src/com')
-rw-r--r-- | packages/SystemUI/src/com/android/systemui/statusbar/phone/BarTransitions.java | 17 |
1 files changed, 11 insertions, 6 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/BarTransitions.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/BarTransitions.java index cb17ac6..eb63a54 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/BarTransitions.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/BarTransitions.java @@ -37,6 +37,8 @@ public class BarTransitions { private static final boolean DEBUG = false; private static final boolean DEBUG_COLORS = false; + public static final boolean HIGH_END = ActivityManager.isHighEndGfx(); + public static final int MODE_OPAQUE = 0; public static final int MODE_SEMI_TRANSPARENT = 1; public static final int MODE_TRANSLUCENT = 2; @@ -48,7 +50,6 @@ public class BarTransitions { private final String mTag; private final View mView; - private final boolean mSupportsTransitions = ActivityManager.isHighEndGfx(); private final BarBackgroundDrawable mBarBackground; private int mMode; @@ -57,7 +58,7 @@ public class BarTransitions { mTag = "BarTransitions." + view.getClass().getSimpleName(); mView = view; mBarBackground = new BarBackgroundDrawable(mView.getContext(), gradientResourceId); - if (mSupportsTransitions) { + if (HIGH_END) { mView.setBackground(mBarBackground); } } @@ -67,18 +68,22 @@ public class BarTransitions { } public void transitionTo(int mode, boolean animate) { + // low-end devices do not support translucent modes, fallback to opaque + if (!HIGH_END && (mode == MODE_SEMI_TRANSPARENT || mode == MODE_TRANSLUCENT)) { + mode = MODE_OPAQUE; + } if (mMode == mode) return; int oldMode = mMode; mMode = mode; if (DEBUG) Log.d(mTag, String.format("%s -> %s animate=%s", modeToString(oldMode), modeToString(mode), animate)); - if (mSupportsTransitions) { - onTransition(oldMode, mMode, animate); - } + onTransition(oldMode, mMode, animate); } protected void onTransition(int oldMode, int newMode, boolean animate) { - applyModeBackground(oldMode, newMode, animate); + if (HIGH_END) { + applyModeBackground(oldMode, newMode, animate); + } } protected void applyModeBackground(int oldMode, int newMode, boolean animate) { |