Merge "Put the status bar and navigation bar in HW when advisable."
This commit is contained in:
committed by
Android (Google) Code Review
commit
07800a5039
@@ -16,6 +16,7 @@
|
|||||||
|
|
||||||
package com.android.systemui.statusbar;
|
package com.android.systemui.statusbar;
|
||||||
|
|
||||||
|
import android.app.ActivityManager;
|
||||||
import android.app.Service;
|
import android.app.Service;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
@@ -26,6 +27,7 @@ import android.os.RemoteException;
|
|||||||
import android.os.ServiceManager;
|
import android.os.ServiceManager;
|
||||||
import android.util.Slog;
|
import android.util.Slog;
|
||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
|
import android.view.Display;
|
||||||
import android.view.Gravity;
|
import android.view.Gravity;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
import android.view.ViewGroup;
|
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_TOUCHABLE_WHEN_WAKING
|
||||||
| WindowManager.LayoutParams.FLAG_SPLIT_TOUCH,
|
| WindowManager.LayoutParams.FLAG_SPLIT_TOUCH,
|
||||||
PixelFormat.RGBX_8888);
|
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.gravity = getStatusBarGravity();
|
||||||
lp.setTitle("StatusBar");
|
lp.setTitle("StatusBar");
|
||||||
lp.packageName = mContext.getPackageName();
|
lp.packageName = mContext.getPackageName();
|
||||||
|
|||||||
@@ -475,6 +475,10 @@ public class PhoneStatusBar extends StatusBar {
|
|||||||
| WindowManager.LayoutParams.FLAG_SPLIT_TOUCH
|
| WindowManager.LayoutParams.FLAG_SPLIT_TOUCH
|
||||||
| WindowManager.LayoutParams.FLAG_SLIPPERY,
|
| WindowManager.LayoutParams.FLAG_SLIPPERY,
|
||||||
PixelFormat.OPAQUE);
|
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");
|
lp.setTitle("NavigationBar");
|
||||||
switch (rotation) {
|
switch (rotation) {
|
||||||
|
|||||||
@@ -60,6 +60,7 @@ public class KeyButtonView extends ImageView {
|
|||||||
Drawable mGlowBG;
|
Drawable mGlowBG;
|
||||||
float mGlowAlpha = 0f, mGlowScale = 1f, mDrawingAlpha = 1f;
|
float mGlowAlpha = 0f, mGlowScale = 1f, mDrawingAlpha = 1f;
|
||||||
boolean mSupportsLongpress = true;
|
boolean mSupportsLongpress = true;
|
||||||
|
RectF mRect = new RectF(0f,0f,0f,0f);
|
||||||
|
|
||||||
Runnable mCheckLongPress = new Runnable() {
|
Runnable mCheckLongPress = new Runnable() {
|
||||||
public void run() {
|
public void run() {
|
||||||
@@ -120,8 +121,9 @@ public class KeyButtonView extends ImageView {
|
|||||||
mGlowBG.setAlpha((int)(mGlowAlpha * 255));
|
mGlowBG.setAlpha((int)(mGlowAlpha * 255));
|
||||||
mGlowBG.draw(canvas);
|
mGlowBG.draw(canvas);
|
||||||
canvas.restore();
|
canvas.restore();
|
||||||
|
mRect.right = w;
|
||||||
canvas.saveLayerAlpha(null, (int)(mDrawingAlpha * 255), Canvas.ALL_SAVE_FLAG);
|
mRect.bottom = h;
|
||||||
|
canvas.saveLayerAlpha(mRect, (int)(mDrawingAlpha * 255), Canvas.ALL_SAVE_FLAG);
|
||||||
}
|
}
|
||||||
super.onDraw(canvas);
|
super.onDraw(canvas);
|
||||||
if (mGlowBG != null) {
|
if (mGlowBG != null) {
|
||||||
|
|||||||
Reference in New Issue
Block a user