diff options
author | Daniel Sandler <dsandler@android.com> | 2011-08-25 07:56:26 -0700 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2011-08-25 07:56:26 -0700 |
commit | 07800a50399d73df322b823a079de29378b3c112 (patch) | |
tree | 8fc1378980a622668753491d7baab5fe2e7735a4 /packages/SystemUI | |
parent | f9f046147f114d360a14d1887f616acdc4b3045e (diff) | |
parent | c638c1eb1bbed67d7d8f0d43f39137d766366f54 (diff) | |
download | frameworks_base-07800a50399d73df322b823a079de29378b3c112.zip frameworks_base-07800a50399d73df322b823a079de29378b3c112.tar.gz frameworks_base-07800a50399d73df322b823a079de29378b3c112.tar.bz2 |
Merge "Put the status bar and navigation bar in HW when advisable."
Diffstat (limited to 'packages/SystemUI')
3 files changed, 19 insertions, 2 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/StatusBar.java b/packages/SystemUI/src/com/android/systemui/statusbar/StatusBar.java index 61da1f5..37c77f6 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/StatusBar.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/StatusBar.java @@ -16,6 +16,7 @@ package com.android.systemui.statusbar; +import android.app.ActivityManager; import android.app.Service; import android.content.Context; import android.content.Intent; @@ -26,6 +27,7 @@ import android.os.RemoteException; import android.os.ServiceManager; import android.util.Slog; import android.util.Log; +import android.view.Display; import android.view.Gravity; import android.view.View; import android.view.ViewGroup; @@ -117,6 +119,15 @@ public abstract class StatusBar extends SystemUI implements CommandQueue.Callbac | WindowManager.LayoutParams.FLAG_TOUCHABLE_WHEN_WAKING | WindowManager.LayoutParams.FLAG_SPLIT_TOUCH, PixelFormat.RGBX_8888); + + // the status bar should be in an overlay if possible + final Display defaultDisplay + = ((WindowManager)mContext.getSystemService(Context.WINDOW_SERVICE)) + .getDefaultDisplay(); + if (ActivityManager.isHighEndGfx(defaultDisplay)) { + lp.flags |= WindowManager.LayoutParams.FLAG_HARDWARE_ACCELERATED; + } + lp.gravity = getStatusBarGravity(); lp.setTitle("StatusBar"); lp.packageName = mContext.getPackageName(); diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java index fe9eceb..dd8e3e8 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java @@ -475,6 +475,10 @@ public class PhoneStatusBar extends StatusBar { | WindowManager.LayoutParams.FLAG_SPLIT_TOUCH | WindowManager.LayoutParams.FLAG_SLIPPERY, PixelFormat.OPAQUE); + // this will allow the navbar to run in an overlay on devices that support this + if (ActivityManager.isHighEndGfx(mDisplay)) { + lp.flags |= WindowManager.LayoutParams.FLAG_HARDWARE_ACCELERATED; + } lp.setTitle("NavigationBar"); switch (rotation) { diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/policy/KeyButtonView.java b/packages/SystemUI/src/com/android/systemui/statusbar/policy/KeyButtonView.java index 6368d1d..840087c 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/policy/KeyButtonView.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/policy/KeyButtonView.java @@ -60,6 +60,7 @@ public class KeyButtonView extends ImageView { Drawable mGlowBG; float mGlowAlpha = 0f, mGlowScale = 1f, mDrawingAlpha = 1f; boolean mSupportsLongpress = true; + RectF mRect = new RectF(0f,0f,0f,0f); Runnable mCheckLongPress = new Runnable() { public void run() { @@ -120,8 +121,9 @@ public class KeyButtonView extends ImageView { mGlowBG.setAlpha((int)(mGlowAlpha * 255)); mGlowBG.draw(canvas); canvas.restore(); - - canvas.saveLayerAlpha(null, (int)(mDrawingAlpha * 255), Canvas.ALL_SAVE_FLAG); + mRect.right = w; + mRect.bottom = h; + canvas.saveLayerAlpha(mRect, (int)(mDrawingAlpha * 255), Canvas.ALL_SAVE_FLAG); } super.onDraw(canvas); if (mGlowBG != null) { |