ContentSuggestionsService - add shell commands to disable default.

Bug: 126227834
Test: manual
Change-Id: If5ecd2d45c3b9d056d48f2254318aa515b9bceff
diff --git a/services/contentsuggestions/java/com/android/server/contentsuggestions/ContentSuggestionsManagerServiceShellCommand.java b/services/contentsuggestions/java/com/android/server/contentsuggestions/ContentSuggestionsManagerServiceShellCommand.java
index e34f1ea..08cc69d 100644
--- a/services/contentsuggestions/java/com/android/server/contentsuggestions/ContentSuggestionsManagerServiceShellCommand.java
+++ b/services/contentsuggestions/java/com/android/server/contentsuggestions/ContentSuggestionsManagerServiceShellCommand.java
@@ -43,29 +43,13 @@
         }
         final PrintWriter pw = getOutPrintWriter();
         switch (cmd) {
-            case "set": {
-                final String what = getNextArgRequired();
-                switch (what) {
-                    case "temporary-service": {
-                        final int userId = Integer.parseInt(getNextArgRequired());
-                        String serviceName = getNextArg();
-                        if (serviceName == null) {
-                            mService.resetTemporaryService(userId);
-                            return 0;
-                        }
-                        final int duration = Integer.parseInt(getNextArgRequired());
-                        mService.setTemporaryService(userId, serviceName, duration);
-                        pw.println("ContentSuggestionsService temporarily set to " + serviceName
-                                + " for " + duration + "ms");
-                        break;
-                    }
-                }
-            }
-            break;
+            case "set":
+                return requestSet(pw);
+            case "get":
+                return requestGet(pw);
             default:
                 return handleDefaultCommands(cmd);
         }
-        return 0;
     }
 
     @Override
@@ -76,9 +60,72 @@
             pw.println("    Prints this help text.");
             pw.println("");
             pw.println("  set temporary-service USER_ID [COMPONENT_NAME DURATION]");
-            pw.println("    Temporarily (for DURATION ms) changes the service implemtation.");
+            pw.println("    Temporarily (for DURATION ms) changes the service implementation.");
             pw.println("    To reset, call with just the USER_ID argument.");
             pw.println("");
+            pw.println("  set default-service-enabled USER_ID [true|false]");
+            pw.println("    Enable / disable the default service for the user.");
+            pw.println("");
+            pw.println("  get default-service-enabled USER_ID");
+            pw.println("    Checks whether the default service is enabled for the user.");
+            pw.println("");
         }
     }
+
+    private int requestSet(PrintWriter pw) {
+        final String what = getNextArgRequired();
+
+        switch(what) {
+            case "temporary-service":
+                return setTemporaryService(pw);
+            case "default-service-enabled":
+                return setDefaultServiceEnabled();
+            default:
+                pw.println("Invalid set: " + what);
+                return -1;
+        }
+    }
+
+    private int requestGet(PrintWriter pw) {
+        final String what = getNextArgRequired();
+        switch(what) {
+            case "default-service-enabled":
+                return getDefaultServiceEnabled(pw);
+            default:
+                pw.println("Invalid get: " + what);
+                return -1;
+        }
+    }
+
+    private int setTemporaryService(PrintWriter pw) {
+        final int userId = Integer.parseInt(getNextArgRequired());
+        String serviceName = getNextArg();
+        if (serviceName == null) {
+            mService.resetTemporaryService(userId);
+            return 0;
+        }
+        final int duration = Integer.parseInt(getNextArgRequired());
+        mService.setTemporaryService(userId, serviceName, duration);
+        pw.println("ContentSuggestionsService temporarily set to " + serviceName
+                + " for " + duration + "ms");
+        return 0;
+    }
+
+    private int setDefaultServiceEnabled() {
+        final int userId = getNextIntArgRequired();
+        final boolean enabled = Boolean.parseBoolean(getNextArg());
+        mService.setDefaultServiceEnabled(userId, enabled);
+        return 0;
+    }
+
+    private int getDefaultServiceEnabled(PrintWriter pw) {
+        final int userId = getNextIntArgRequired();
+        final boolean enabled = mService.isDefaultServiceEnabled(userId);
+        pw.println(enabled);
+        return 0;
+    }
+
+    private int getNextIntArgRequired() {
+        return Integer.parseInt(getNextArgRequired());
+    }
 }