Merge "Stop using raw display size except in window manager."
This commit is contained in:
@@ -416,14 +416,8 @@ public class Display {
|
|||||||
outMetrics.ydpi = outMetrics.noncompatYdpi = mDpiY;
|
outMetrics.ydpi = outMetrics.noncompatYdpi = mDpiY;
|
||||||
}
|
}
|
||||||
|
|
||||||
static IWindowManager getWindowManager() {
|
private static IWindowManager getWindowManager() {
|
||||||
synchronized (sStaticInit) {
|
return WindowManagerImpl.getWindowManagerService();
|
||||||
if (sWindowManager == null) {
|
|
||||||
sWindowManager = IWindowManager.Stub.asInterface(
|
|
||||||
ServiceManager.getService("window"));
|
|
||||||
}
|
|
||||||
return sWindowManager;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@@ -449,6 +443,5 @@ public class Display {
|
|||||||
|
|
||||||
private static final Object sStaticInit = new Object();
|
private static final Object sStaticInit = new Object();
|
||||||
private static boolean sInitialized = false;
|
private static boolean sInitialized = false;
|
||||||
private static IWindowManager sWindowManager;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -20,6 +20,7 @@ import android.app.AppGlobals;
|
|||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.content.res.Configuration;
|
import android.content.res.Configuration;
|
||||||
import android.content.res.Resources;
|
import android.content.res.Resources;
|
||||||
|
import android.graphics.Point;
|
||||||
import android.os.RemoteException;
|
import android.os.RemoteException;
|
||||||
import android.provider.Settings;
|
import android.provider.Settings;
|
||||||
import android.util.DisplayMetrics;
|
import android.util.DisplayMetrics;
|
||||||
@@ -277,15 +278,17 @@ public class ViewConfiguration {
|
|||||||
mDoubleTapSlop = (int) (sizeAndDensity * DOUBLE_TAP_SLOP + 0.5f);
|
mDoubleTapSlop = (int) (sizeAndDensity * DOUBLE_TAP_SLOP + 0.5f);
|
||||||
mWindowTouchSlop = (int) (sizeAndDensity * WINDOW_TOUCH_SLOP + 0.5f);
|
mWindowTouchSlop = (int) (sizeAndDensity * WINDOW_TOUCH_SLOP + 0.5f);
|
||||||
|
|
||||||
final Display display = WindowManagerImpl.getDefault().getDefaultDisplay();
|
|
||||||
// Size of the screen in bytes, in ARGB_8888 format
|
// Size of the screen in bytes, in ARGB_8888 format
|
||||||
mMaximumDrawingCacheSize = 4 * display.getRawWidth() * display.getRawHeight();
|
final Display display = WindowManagerImpl.getDefault().getDefaultDisplay();
|
||||||
|
final Point size = new Point();
|
||||||
|
display.getRealSize(size);
|
||||||
|
mMaximumDrawingCacheSize = 4 * size.x * size.y;
|
||||||
|
|
||||||
mOverscrollDistance = (int) (sizeAndDensity * OVERSCROLL_DISTANCE + 0.5f);
|
mOverscrollDistance = (int) (sizeAndDensity * OVERSCROLL_DISTANCE + 0.5f);
|
||||||
mOverflingDistance = (int) (sizeAndDensity * OVERFLING_DISTANCE + 0.5f);
|
mOverflingDistance = (int) (sizeAndDensity * OVERFLING_DISTANCE + 0.5f);
|
||||||
|
|
||||||
if (!sHasPermanentMenuKeySet) {
|
if (!sHasPermanentMenuKeySet) {
|
||||||
IWindowManager wm = Display.getWindowManager();
|
IWindowManager wm = WindowManagerImpl.getWindowManagerService();
|
||||||
try {
|
try {
|
||||||
sHasPermanentMenuKey = !wm.hasSystemNavBar() && !wm.hasNavigationBar();
|
sHasPermanentMenuKey = !wm.hasSystemNavBar() && !wm.hasNavigationBar();
|
||||||
sHasPermanentMenuKeySet = true;
|
sHasPermanentMenuKeySet = true;
|
||||||
|
|||||||
@@ -331,7 +331,7 @@ public final class ViewRootImpl implements ViewParent,
|
|||||||
if (!mInitialized) {
|
if (!mInitialized) {
|
||||||
try {
|
try {
|
||||||
InputMethodManager imm = InputMethodManager.getInstance(mainLooper);
|
InputMethodManager imm = InputMethodManager.getInstance(mainLooper);
|
||||||
IWindowManager windowManager = Display.getWindowManager();
|
IWindowManager windowManager = WindowManagerImpl.getWindowManagerService();
|
||||||
sWindowSession = windowManager.openSession(
|
sWindowSession = windowManager.openSession(
|
||||||
imm.getClient(), imm.getInputContext());
|
imm.getClient(), imm.getInputContext());
|
||||||
float animatorScale = windowManager.getAnimationScale(2);
|
float animatorScale = windowManager.getAnimationScale(2);
|
||||||
|
|||||||
@@ -21,6 +21,7 @@ import android.content.ComponentCallbacks2;
|
|||||||
import android.content.res.Configuration;
|
import android.content.res.Configuration;
|
||||||
import android.opengl.ManagedEGLContext;
|
import android.opengl.ManagedEGLContext;
|
||||||
import android.os.IBinder;
|
import android.os.IBinder;
|
||||||
|
import android.os.ServiceManager;
|
||||||
import android.os.SystemProperties;
|
import android.os.SystemProperties;
|
||||||
import android.util.AndroidRuntimeException;
|
import android.util.AndroidRuntimeException;
|
||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
@@ -111,6 +112,7 @@ public class WindowManagerImpl implements WindowManager {
|
|||||||
public static final int ADD_PERMISSION_DENIED = -8;
|
public static final int ADD_PERMISSION_DENIED = -8;
|
||||||
|
|
||||||
private static WindowManagerImpl sDefaultWindowManager;
|
private static WindowManagerImpl sDefaultWindowManager;
|
||||||
|
private static IWindowManager sWindowManagerService;
|
||||||
|
|
||||||
private final WindowManagerState mState;
|
private final WindowManagerState mState;
|
||||||
private final Window mParentWindow;
|
private final Window mParentWindow;
|
||||||
@@ -135,6 +137,16 @@ public class WindowManagerImpl implements WindowManager {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static IWindowManager getWindowManagerService() {
|
||||||
|
synchronized (WindowManagerImpl.class) {
|
||||||
|
if (sWindowManagerService == null) {
|
||||||
|
sWindowManagerService = IWindowManager.Stub.asInterface(
|
||||||
|
ServiceManager.getService("window"));
|
||||||
|
}
|
||||||
|
return sWindowManagerService;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public WindowManagerImpl makeLocal(Window parentWindow) {
|
public WindowManagerImpl makeLocal(Window parentWindow) {
|
||||||
return new WindowManagerImpl(mState, parentWindow, parentWindow.getCompatibilityInfo());
|
return new WindowManagerImpl(mState, parentWindow, parentWindow.getCompatibilityInfo());
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -22,6 +22,7 @@ import android.animation.ObjectAnimator;
|
|||||||
import android.app.StatusBarManager;
|
import android.app.StatusBarManager;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.content.res.Resources;
|
import android.content.res.Resources;
|
||||||
|
import android.graphics.Point;
|
||||||
import android.graphics.Rect;
|
import android.graphics.Rect;
|
||||||
import android.graphics.RectF;
|
import android.graphics.RectF;
|
||||||
import android.graphics.drawable.Drawable;
|
import android.graphics.drawable.Drawable;
|
||||||
@@ -431,13 +432,14 @@ public class NavigationBarView extends LinearLayout {
|
|||||||
public void dump(FileDescriptor fd, PrintWriter pw, String[] args) {
|
public void dump(FileDescriptor fd, PrintWriter pw, String[] args) {
|
||||||
pw.println("NavigationBarView {");
|
pw.println("NavigationBarView {");
|
||||||
final Rect r = new Rect();
|
final Rect r = new Rect();
|
||||||
|
final Point size = new Point();
|
||||||
|
mDisplay.getRealSize(size);
|
||||||
|
|
||||||
pw.println(String.format(" this: " + PhoneStatusBar.viewInfo(this)
|
pw.println(String.format(" this: " + PhoneStatusBar.viewInfo(this)
|
||||||
+ " " + visibilityToString(getVisibility())));
|
+ " " + visibilityToString(getVisibility())));
|
||||||
|
|
||||||
getWindowVisibleDisplayFrame(r);
|
getWindowVisibleDisplayFrame(r);
|
||||||
final boolean offscreen = r.right > mDisplay.getRawWidth()
|
final boolean offscreen = r.right > size.x || r.bottom > size.y;
|
||||||
|| r.bottom > mDisplay.getRawHeight();
|
|
||||||
pw.println(" window: "
|
pw.println(" window: "
|
||||||
+ r.toShortString()
|
+ r.toShortString()
|
||||||
+ " " + visibilityToString(getWindowVisibility())
|
+ " " + visibilityToString(getWindowVisibility())
|
||||||
|
|||||||
@@ -36,6 +36,7 @@ import android.content.pm.ServiceInfo;
|
|||||||
import android.content.res.Resources;
|
import android.content.res.Resources;
|
||||||
import android.content.res.TypedArray;
|
import android.content.res.TypedArray;
|
||||||
import android.content.res.XmlResourceParser;
|
import android.content.res.XmlResourceParser;
|
||||||
|
import android.graphics.Point;
|
||||||
import android.net.Uri;
|
import android.net.Uri;
|
||||||
import android.os.Binder;
|
import android.os.Binder;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
@@ -49,6 +50,7 @@ import android.util.Pair;
|
|||||||
import android.util.Slog;
|
import android.util.Slog;
|
||||||
import android.util.TypedValue;
|
import android.util.TypedValue;
|
||||||
import android.util.Xml;
|
import android.util.Xml;
|
||||||
|
import android.view.Display;
|
||||||
import android.view.WindowManager;
|
import android.view.WindowManager;
|
||||||
import android.widget.RemoteViews;
|
import android.widget.RemoteViews;
|
||||||
|
|
||||||
@@ -188,11 +190,12 @@ class AppWidgetServiceImpl {
|
|||||||
|
|
||||||
void computeMaximumWidgetBitmapMemory() {
|
void computeMaximumWidgetBitmapMemory() {
|
||||||
WindowManager wm = (WindowManager) mContext.getSystemService(Context.WINDOW_SERVICE);
|
WindowManager wm = (WindowManager) mContext.getSystemService(Context.WINDOW_SERVICE);
|
||||||
int height = wm.getDefaultDisplay().getRawHeight();
|
Display display = wm.getDefaultDisplay();
|
||||||
int width = wm.getDefaultDisplay().getRawWidth();
|
Point size = new Point();
|
||||||
|
display.getRealSize(size);
|
||||||
// Cap memory usage at 1.5 times the size of the display
|
// Cap memory usage at 1.5 times the size of the display
|
||||||
// 1.5 * 4 bytes/pixel * w * h ==> 6 * w * h
|
// 1.5 * 4 bytes/pixel * w * h ==> 6 * w * h
|
||||||
mMaxWidgetBitmapMemory = 6 * width * height;
|
mMaxWidgetBitmapMemory = 6 * size.x * size.y;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void systemReady(boolean safeMode) {
|
public void systemReady(boolean safeMode) {
|
||||||
|
|||||||
Reference in New Issue
Block a user