From: Michael Kwan Date: Thu, 3 Nov 2016 08:04:24 +0000 (-0700) Subject: DO NOT MERGE ANYWHERE Add supports-multiwindow command to am. X-Git-Tag: android-x86-7.1-r1~599^2 X-Git-Url: http://git.osdn.net/view?a=commitdiff_plain;h=ef945b670617e3913661f3da83e5fbaa01721eb4;p=android-x86%2Fframeworks-base.git DO NOT MERGE ANYWHERE Add supports-multiwindow command to am. The supports-multiwindow command allows the ability to check if the device has multiwindow support in the shell. Bug: 30120559 Change-Id: I466e28d8a794fa457826a6526ef9ef660cd3856c --- diff --git a/cmds/am/src/com/android/commands/am/Am.java b/cmds/am/src/com/android/commands/am/Am.java index d6c00589e7c2..c460b048a3b7 100644 --- a/cmds/am/src/com/android/commands/am/Am.java +++ b/cmds/am/src/com/android/commands/am/Am.java @@ -48,7 +48,9 @@ import android.content.pm.InstrumentationInfo; import android.content.pm.ParceledListSlice; import android.content.pm.ResolveInfo; import android.content.pm.UserInfo; +import android.content.res.AssetManager; import android.content.res.Configuration; +import android.content.res.Resources; import android.graphics.Rect; import android.os.Binder; import android.os.Build; @@ -64,6 +66,7 @@ import android.os.UserHandle; import android.text.TextUtils; import android.util.AndroidException; import android.util.ArrayMap; +import android.util.DisplayMetrics; import android.view.IWindowManager; import com.android.internal.os.BaseCommand; @@ -361,6 +364,8 @@ public class Am extends BaseCommand { "am send-trim-memory: send a memory trim event to a .\n" + "\n" + "am get-current-user: returns id of the current foreground user.\n" + + "\n" + + "am supports-multiwindow: returns true if the device supports multiwindow.\n" + "\n" ); Intent.printIntentArgsHelp(pw, ""); @@ -458,6 +463,8 @@ public class Am extends BaseCommand { runSendTrimMemory(); } else if (op.equals("get-current-user")) { runGetCurrentUser(); + } else if (op.equals("supports-multiwindow")) { + runSupportsMultiwindow(); } else { showError("Error: unknown command '" + op + "'"); } @@ -2534,6 +2541,21 @@ public class Am extends BaseCommand { System.out.println(currentUser.id); } + private void runSupportsMultiwindow() throws Exception { + // system resources does not contain all the device configuration, construct it manually. + Configuration config = mAm.getConfiguration(); + if (config == null) { + throw new AndroidException("Activity manager has no configuration"); + } + + final DisplayMetrics metrics = new DisplayMetrics(); + metrics.setToDefaults(); + + Resources res = new Resources(AssetManager.getSystem(), metrics, config); + + System.out.println(res.getBoolean(com.android.internal.R.bool.config_supportsMultiWindow)); + } + /** * Open the given file for sending into the system process. This verifies * with SELinux that the system will have access to the file.