am 5871b258: Merge "Change wm commands to return size and density info." into jb-mr2-dev

* commit '5871b258afd0bf3a2d58dea437b340a4f5b382cf':
  Change wm commands to return size and density info.
This commit is contained in:
Dianne Hackborn
2013-03-26 17:26:50 -07:00
committed by Android Git Automerger
3 changed files with 74 additions and 5 deletions

View File

@@ -19,6 +19,7 @@
package com.android.commands.wm;
import android.content.Context;
import android.graphics.Point;
import android.graphics.Rect;
import android.os.RemoteException;
import android.os.ServiceManager;
@@ -87,9 +88,22 @@ public class Wm {
}
private void runDisplaySize() throws Exception {
String size = nextArgRequired();
String size = nextArg();
int w, h;
if ("reset".equals(size)) {
if (size == null) {
Point initialSize = new Point();
Point baseSize = new Point();
try {
mWm.getInitialDisplaySize(Display.DEFAULT_DISPLAY, initialSize);
mWm.getBaseDisplaySize(Display.DEFAULT_DISPLAY, baseSize);
System.out.println("Physical size: " + initialSize.x + "x" + initialSize.y);
if (!initialSize.equals(baseSize)) {
System.out.println("Override size: " + baseSize.x + "x" + baseSize.y);
}
} catch (RemoteException e) {
}
return;
} else if ("reset".equals(size)) {
w = h = -1;
} else {
int div = size.indexOf('x');
@@ -120,9 +134,20 @@ public class Wm {
}
private void runDisplayDensity() throws Exception {
String densityStr = nextArgRequired();
String densityStr = nextArg();
int density;
if ("reset".equals(densityStr)) {
if (densityStr == null) {
try {
int initialDensity = mWm.getInitialDisplayDensity(Display.DEFAULT_DISPLAY);
int baseDensity = mWm.getBaseDisplayDensity(Display.DEFAULT_DISPLAY);
System.out.println("Physical density: " + initialDensity);
if (initialDensity != baseDensity) {
System.out.println("Override density: " + baseDensity);
}
} catch (RemoteException e) {
}
return;
} else if ("reset".equals(densityStr)) {
density = -1;
} else {
try {
@@ -231,7 +256,7 @@ public class Wm {
" wm density [reset|DENSITY]\n" +
" wm overscan [reset|LEFT,TOP,RIGHT,BOTTOM]\n" +
"\n" +
"wm size: override display size.\n" +
"wm size: return or override display size.\n" +
"\n" +
"wm density: override display density.\n" +
"\n" +

View File

@@ -60,8 +60,12 @@ interface IWindowManager
in IInputContext inputContext);
boolean inputMethodClientHasFocus(IInputMethodClient client);
void getInitialDisplaySize(int displayId, out Point size);
void getBaseDisplaySize(int displayId, out Point size);
void setForcedDisplaySize(int displayId, int width, int height);
void clearForcedDisplaySize(int displayId);
int getInitialDisplayDensity(int displayId);
int getBaseDisplayDensity(int displayId);
void setForcedDisplayDensity(int displayId, int density);
void clearForcedDisplayDensity(int displayId);

View File

@@ -7291,6 +7291,7 @@ public class WindowManagerService extends IWindowManager.Stub
return false;
}
@Override
public void getInitialDisplaySize(int displayId, Point size) {
synchronized (mWindowMap) {
final DisplayContent displayContent = getDisplayContentLocked(displayId);
@@ -7303,6 +7304,19 @@ public class WindowManagerService extends IWindowManager.Stub
}
}
@Override
public void getBaseDisplaySize(int displayId, Point size) {
synchronized (mWindowMap) {
final DisplayContent displayContent = getDisplayContentLocked(displayId);
if (displayContent != null) {
synchronized(displayContent.mDisplaySizeLock) {
size.x = displayContent.mBaseDisplayWidth;
size.y = displayContent.mBaseDisplayHeight;
}
}
}
}
@Override
public void setForcedDisplaySize(int displayId, int width, int height) {
if (mContext.checkCallingOrSelfPermission(
@@ -7405,6 +7419,32 @@ public class WindowManagerService extends IWindowManager.Stub
}
}
@Override
public int getInitialDisplayDensity(int displayId) {
synchronized (mWindowMap) {
final DisplayContent displayContent = getDisplayContentLocked(displayId);
if (displayContent != null) {
synchronized(displayContent.mDisplaySizeLock) {
return displayContent.mInitialDisplayDensity;
}
}
}
return -1;
}
@Override
public int getBaseDisplayDensity(int displayId) {
synchronized (mWindowMap) {
final DisplayContent displayContent = getDisplayContentLocked(displayId);
if (displayContent != null) {
synchronized(displayContent.mDisplaySizeLock) {
return displayContent.mBaseDisplayDensity;
}
}
}
return -1;
}
@Override
public void setForcedDisplayDensity(int displayId, int density) {
if (mContext.checkCallingOrSelfPermission(