am 9ba2a188: Merge changes I4ad08873,If0562677,I5fe6ba32 into jb-mr1-dev
* commit '9ba2a188919e6e5bf8c042b26527fc090de677ef': Don't auto-discover peers until scan requested. Use wfdInfo to filter available sinks. Allow adb shell am display-size to use bigger sizes.
This commit is contained in:
@@ -1187,32 +1187,26 @@ public class Am {
|
|||||||
|
|
||||||
private void runDisplaySize() throws Exception {
|
private void runDisplaySize() throws Exception {
|
||||||
String size = nextArgRequired();
|
String size = nextArgRequired();
|
||||||
int m, n;
|
int w, h;
|
||||||
if ("reset".equals(size)) {
|
if ("reset".equals(size)) {
|
||||||
m = n = -1;
|
w = h = -1;
|
||||||
} else {
|
} else {
|
||||||
int div = size.indexOf('x');
|
int div = size.indexOf('x');
|
||||||
if (div <= 0 || div >= (size.length()-1)) {
|
if (div <= 0 || div >= (size.length()-1)) {
|
||||||
System.err.println("Error: bad size " + size);
|
System.err.println("Error: bad size " + size);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
String mstr = size.substring(0, div);
|
String wstr = size.substring(0, div);
|
||||||
String nstr = size.substring(div+1);
|
String hstr = size.substring(div+1);
|
||||||
try {
|
try {
|
||||||
m = Integer.parseInt(mstr);
|
w = Integer.parseInt(wstr);
|
||||||
n = Integer.parseInt(nstr);
|
h = Integer.parseInt(hstr);
|
||||||
} catch (NumberFormatException e) {
|
} catch (NumberFormatException e) {
|
||||||
System.err.println("Error: bad number " + e);
|
System.err.println("Error: bad number " + e);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (m < n) {
|
|
||||||
int tmp = m;
|
|
||||||
m = n;
|
|
||||||
n = tmp;
|
|
||||||
}
|
|
||||||
|
|
||||||
IWindowManager wm = IWindowManager.Stub.asInterface(ServiceManager.checkService(
|
IWindowManager wm = IWindowManager.Stub.asInterface(ServiceManager.checkService(
|
||||||
Context.WINDOW_SERVICE));
|
Context.WINDOW_SERVICE));
|
||||||
if (wm == null) {
|
if (wm == null) {
|
||||||
@@ -1221,9 +1215,9 @@ public class Am {
|
|||||||
}
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
if (m >= 0 && n >= 0) {
|
if (w >= 0 && h >= 0) {
|
||||||
// TODO(multidisplay): For now Configuration only applies to main screen.
|
// TODO(multidisplay): For now Configuration only applies to main screen.
|
||||||
wm.setForcedDisplaySize(Display.DEFAULT_DISPLAY, m, n);
|
wm.setForcedDisplaySize(Display.DEFAULT_DISPLAY, w, h);
|
||||||
} else {
|
} else {
|
||||||
wm.clearForcedDisplaySize(Display.DEFAULT_DISPLAY);
|
wm.clearForcedDisplaySize(Display.DEFAULT_DISPLAY);
|
||||||
}
|
}
|
||||||
@@ -1444,7 +1438,7 @@ public class Am {
|
|||||||
" am clear-debug-app\n" +
|
" am clear-debug-app\n" +
|
||||||
" am monitor [--gdb <port>]\n" +
|
" am monitor [--gdb <port>]\n" +
|
||||||
" am screen-compat [on|off] <PACKAGE>\n" +
|
" am screen-compat [on|off] <PACKAGE>\n" +
|
||||||
" am display-size [reset|MxN]\n" +
|
" am display-size [reset|WxH]\n" +
|
||||||
" am display-density [reset|DENSITY]\n" +
|
" am display-density [reset|DENSITY]\n" +
|
||||||
" am to-uri [INTENT]\n" +
|
" am to-uri [INTENT]\n" +
|
||||||
" am to-intent-uri [INTENT]\n" +
|
" am to-intent-uri [INTENT]\n" +
|
||||||
|
|||||||
@@ -59,7 +59,7 @@ interface IWindowManager
|
|||||||
in IInputContext inputContext);
|
in IInputContext inputContext);
|
||||||
boolean inputMethodClientHasFocus(IInputMethodClient client);
|
boolean inputMethodClientHasFocus(IInputMethodClient client);
|
||||||
|
|
||||||
void setForcedDisplaySize(int displayId, int longDimen, int shortDimen);
|
void setForcedDisplaySize(int displayId, int width, int height);
|
||||||
void clearForcedDisplaySize(int displayId);
|
void clearForcedDisplaySize(int displayId);
|
||||||
void setForcedDisplayDensity(int displayId, int density);
|
void setForcedDisplayDensity(int displayId, int density);
|
||||||
void clearForcedDisplayDensity(int displayId);
|
void clearForcedDisplayDensity(int displayId);
|
||||||
|
|||||||
@@ -179,7 +179,6 @@ final class WifiDisplayController implements DumpUtils.Dump {
|
|||||||
if (mWfdEnabling) {
|
if (mWfdEnabling) {
|
||||||
mWfdEnabling = false;
|
mWfdEnabling = false;
|
||||||
setWfdEnabled(true);
|
setWfdEnabled(true);
|
||||||
discoverPeers();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -493,14 +492,8 @@ final class WifiDisplayController implements DumpUtils.Dump {
|
|||||||
return; // done
|
return; // done
|
||||||
}
|
}
|
||||||
|
|
||||||
int port = DEFAULT_CONTROL_PORT;
|
|
||||||
if (mConnectedDevice.deviceName.startsWith("DIRECT-")
|
|
||||||
&& mConnectedDevice.deviceName.endsWith("Broadcom")) {
|
|
||||||
// These dongles ignore the port we broadcast in our WFD IE.
|
|
||||||
port = 8554;
|
|
||||||
}
|
|
||||||
|
|
||||||
final WifiDisplay display = createWifiDisplay(mConnectedDevice);
|
final WifiDisplay display = createWifiDisplay(mConnectedDevice);
|
||||||
|
final int port = getPortNumber(mConnectedDevice);
|
||||||
final String iface = addr.getHostAddress() + ":" + port;
|
final String iface = addr.getHostAddress() + ":" + port;
|
||||||
|
|
||||||
mPublishedDevice = mConnectedDevice;
|
mPublishedDevice = mConnectedDevice;
|
||||||
@@ -517,9 +510,7 @@ final class WifiDisplayController implements DumpUtils.Dump {
|
|||||||
if (mWifiP2pEnabled != enabled) {
|
if (mWifiP2pEnabled != enabled) {
|
||||||
mWifiP2pEnabled = enabled;
|
mWifiP2pEnabled = enabled;
|
||||||
if (enabled) {
|
if (enabled) {
|
||||||
if (mWfdEnabled) {
|
if (!mWfdEnabled) {
|
||||||
discoverPeers();
|
|
||||||
} else {
|
|
||||||
enableWfd();
|
enableWfd();
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
@@ -647,12 +638,24 @@ final class WifiDisplayController implements DumpUtils.Dump {
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private static int getPortNumber(WifiP2pDevice device) {
|
||||||
|
if (device.deviceName.startsWith("DIRECT-")
|
||||||
|
&& device.deviceName.endsWith("Broadcom")) {
|
||||||
|
// These dongles ignore the port we broadcast in our WFD IE.
|
||||||
|
return 8554;
|
||||||
|
}
|
||||||
|
return DEFAULT_CONTROL_PORT;
|
||||||
|
}
|
||||||
|
|
||||||
private static boolean isWifiDisplay(WifiP2pDevice device) {
|
private static boolean isWifiDisplay(WifiP2pDevice device) {
|
||||||
// FIXME: the wfdInfo API doesn't work yet
|
return device.wfdInfo != null
|
||||||
return device.deviceName.startsWith("DWD-")
|
&& device.wfdInfo.isWfdEnabled()
|
||||||
|| device.deviceName.startsWith("DIRECT-")
|
&& isPrimarySinkDeviceType(device.wfdInfo.getDeviceType());
|
||||||
|| device.deviceName.startsWith("CAVM-");
|
}
|
||||||
//device.wfdInfo != null && device.wfdInfo.isWfdEnabled();
|
|
||||||
|
private static boolean isPrimarySinkDeviceType(int deviceType) {
|
||||||
|
return deviceType == WifiP2pWfdInfo.PRIMARY_SINK
|
||||||
|
|| deviceType == WifiP2pWfdInfo.SOURCE_OR_PRIMARY_SINK;
|
||||||
}
|
}
|
||||||
|
|
||||||
private static String describeWifiP2pDevice(WifiP2pDevice device) {
|
private static String describeWifiP2pDevice(WifiP2pDevice device) {
|
||||||
|
|||||||
@@ -7831,24 +7831,22 @@ public class WindowManagerService extends IWindowManager.Stub
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setForcedDisplaySize(int displayId, int longDimen, int shortDimen) {
|
public void setForcedDisplaySize(int displayId, int width, int height) {
|
||||||
synchronized(mWindowMap) {
|
synchronized(mWindowMap) {
|
||||||
|
// Set some sort of reasonable bounds on the size of the display that we
|
||||||
|
// will try to emulate.
|
||||||
|
final int MIN_WIDTH = 200;
|
||||||
|
final int MIN_HEIGHT = 200;
|
||||||
|
final int MAX_SCALE = 2;
|
||||||
final DisplayContent displayContent = getDisplayContent(displayId);
|
final DisplayContent displayContent = getDisplayContent(displayId);
|
||||||
int width, height;
|
|
||||||
if (displayContent.mInitialDisplayWidth < displayContent.mInitialDisplayHeight) {
|
width = Math.min(Math.max(width, MIN_WIDTH),
|
||||||
width = shortDimen < displayContent.mInitialDisplayWidth
|
displayContent.mInitialDisplayWidth * MAX_SCALE);
|
||||||
? shortDimen : displayContent.mInitialDisplayWidth;
|
height = Math.min(Math.max(height, MIN_HEIGHT),
|
||||||
height = longDimen < displayContent.mInitialDisplayHeight
|
displayContent.mInitialDisplayHeight * MAX_SCALE);
|
||||||
? longDimen : displayContent.mInitialDisplayHeight;
|
|
||||||
} else {
|
|
||||||
width = longDimen < displayContent.mInitialDisplayWidth
|
|
||||||
? longDimen : displayContent.mInitialDisplayWidth;
|
|
||||||
height = shortDimen < displayContent.mInitialDisplayHeight
|
|
||||||
? shortDimen : displayContent.mInitialDisplayHeight;
|
|
||||||
}
|
|
||||||
setForcedDisplaySizeLocked(displayContent, width, height);
|
setForcedDisplaySizeLocked(displayContent, width, height);
|
||||||
Settings.Secure.putString(mContext.getContentResolver(),
|
Settings.Global.putString(mContext.getContentResolver(),
|
||||||
Settings.Secure.DISPLAY_SIZE_FORCED, width + "," + height);
|
Settings.Global.DISPLAY_SIZE_FORCED, width + "," + height);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -7895,8 +7893,8 @@ public class WindowManagerService extends IWindowManager.Stub
|
|||||||
|
|
||||||
private void readForcedDisplaySizeAndDensityLocked(final DisplayContent displayContent) {
|
private void readForcedDisplaySizeAndDensityLocked(final DisplayContent displayContent) {
|
||||||
boolean changed = false;
|
boolean changed = false;
|
||||||
final String sizeStr = Settings.Secure.getString(mContext.getContentResolver(),
|
final String sizeStr = Settings.Global.getString(mContext.getContentResolver(),
|
||||||
Settings.Secure.DISPLAY_SIZE_FORCED);
|
Settings.Global.DISPLAY_SIZE_FORCED);
|
||||||
if (sizeStr != null && sizeStr.length() > 0) {
|
if (sizeStr != null && sizeStr.length() > 0) {
|
||||||
final int pos = sizeStr.indexOf(',');
|
final int pos = sizeStr.indexOf(',');
|
||||||
if (pos > 0 && sizeStr.lastIndexOf(',') == pos) {
|
if (pos > 0 && sizeStr.lastIndexOf(',') == pos) {
|
||||||
@@ -7917,8 +7915,8 @@ public class WindowManagerService extends IWindowManager.Stub
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
final String densityStr = Settings.Secure.getString(mContext.getContentResolver(),
|
final String densityStr = Settings.Global.getString(mContext.getContentResolver(),
|
||||||
Settings.Secure.DISPLAY_DENSITY_FORCED);
|
Settings.Global.DISPLAY_DENSITY_FORCED);
|
||||||
if (densityStr != null && densityStr.length() > 0) {
|
if (densityStr != null && densityStr.length() > 0) {
|
||||||
int density;
|
int density;
|
||||||
try {
|
try {
|
||||||
@@ -7953,8 +7951,8 @@ public class WindowManagerService extends IWindowManager.Stub
|
|||||||
final DisplayContent displayContent = getDisplayContent(displayId);
|
final DisplayContent displayContent = getDisplayContent(displayId);
|
||||||
setForcedDisplaySizeLocked(displayContent, displayContent.mInitialDisplayWidth,
|
setForcedDisplaySizeLocked(displayContent, displayContent.mInitialDisplayWidth,
|
||||||
displayContent.mInitialDisplayHeight);
|
displayContent.mInitialDisplayHeight);
|
||||||
Settings.Secure.putString(mContext.getContentResolver(),
|
Settings.Global.putString(mContext.getContentResolver(),
|
||||||
Settings.Secure.DISPLAY_SIZE_FORCED, "");
|
Settings.Global.DISPLAY_SIZE_FORCED, "");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -7962,8 +7960,8 @@ public class WindowManagerService extends IWindowManager.Stub
|
|||||||
synchronized(mWindowMap) {
|
synchronized(mWindowMap) {
|
||||||
final DisplayContent displayContent = getDisplayContent(displayId);
|
final DisplayContent displayContent = getDisplayContent(displayId);
|
||||||
setForcedDisplayDensityLocked(displayContent, density);
|
setForcedDisplayDensityLocked(displayContent, density);
|
||||||
Settings.Secure.putString(mContext.getContentResolver(),
|
Settings.Global.putString(mContext.getContentResolver(),
|
||||||
Settings.Secure.DISPLAY_DENSITY_FORCED, Integer.toString(density));
|
Settings.Global.DISPLAY_DENSITY_FORCED, Integer.toString(density));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user