OSDN Git Service

Allow current user in settings command
authorFyodor Kupolov <fkupolov@google.com>
Tue, 1 Dec 2015 23:19:40 +0000 (15:19 -0800)
committerFyodor Kupolov <fkupolov@google.com>
Thu, 3 Dec 2015 00:29:05 +0000 (16:29 -0800)
settings command now accepts current user as an argument.

Bug: 25950700
Change-Id: Ia0cee8e956efe7bc341d87e5a7c7ec57678313bc

cmds/settings/src/com/android/commands/settings/SettingsCmd.java

index 726167e..e63a1f5 100644 (file)
@@ -76,7 +76,12 @@ public final class SettingsCmd {
                         // --user specified more than once; invalid
                         break;
                     }
-                    mUser = Integer.parseInt(nextArg());
+                    arg = nextArg();
+                    if ("current".equals(arg) || "cur".equals(arg)) {
+                        mUser = UserHandle.USER_CURRENT;
+                    } else {
+                        mUser = Integer.parseInt(arg);
+                    }
                 } else if (mVerb == CommandVerb.UNSPECIFIED) {
                     if ("get".equalsIgnoreCase(arg)) {
                         mVerb = CommandVerb.GET;
@@ -129,12 +134,14 @@ public final class SettingsCmd {
         }
 
         if (valid) {
-            if (mUser < 0) {
-                mUser = UserHandle.USER_SYSTEM;
-            }
-
             try {
                 IActivityManager activityManager = ActivityManagerNative.getDefault();
+                if (mUser == UserHandle.USER_CURRENT) {
+                    mUser = activityManager.getCurrentUser().id;
+                }
+                if (mUser < 0) {
+                    mUser = UserHandle.USER_SYSTEM;
+                }
                 IContentProvider provider = null;
                 IBinder token = new Binder();
                 try {
@@ -286,13 +293,13 @@ public final class SettingsCmd {
     }
 
     private static void printUsage() {
-        System.err.println("usage:  settings [--user NUM] get namespace key");
-        System.err.println("        settings [--user NUM] put namespace key value");
-        System.err.println("        settings [--user NUM] delete namespace key");
-        System.err.println("        settings [--user NUM] list namespace");
+        System.err.println("usage:  settings [--user <USER_ID> | current] get namespace key");
+        System.err.println("        settings [--user <USER_ID> | current] put namespace key value");
+        System.err.println("        settings [--user <USER_ID> | current] delete namespace key");
+        System.err.println("        settings [--user <USER_ID> | current] list namespace");
         System.err.println("\n'namespace' is one of {system, secure, global}, case-insensitive");
-        System.err.println("If '--user NUM' is not given, the operations are performed on the "
-                + "system user.");
+        System.err.println("If '--user <USER_ID> | current' is not given, the operations are "
+                + "performed on the system user.");
     }
 
     public static String resolveCallingPackage() {