@@ -78,7 +78,9 @@ final class ShellCommand {
78
78
private static final String CMD_GET_PASSWORD_QUALITY = "get-password-quality" ;
79
79
private static final String CMD_TRANSFER_OWNERSHIP = "transfer-ownership" ;
80
80
private static final String CMD_SET_SUSPENDED_PACKAGES = "set-suspended-packages" ;
81
- private static final String CMD_IS_PACKAGE_SUSPENDED = "is-package-suspended" ;
81
+ private static final String CMD_LIST_PACKAGE_SUSPENDED = "list-suspended-packages" ;
82
+ private static final String CMD_SET_HIDDEN_PACKAGE = "set-hidden-package" ;
83
+ private static final String CMD_IS_HIDDEN_PACKAGE = "is-hidden-package" ;
82
84
private static final String CMD_SET_LOCK_TASK_PACKAGES = "set-lock-task-packages" ;
83
85
private static final String CMD_GET_LOCK_TASK_PACKAGES = "get-lock-task-packages" ;
84
86
private static final String CMD_IS_LOCK_TASK_PERMITTED = "is-lock-task-permitted" ;
@@ -194,10 +196,16 @@ public void run() {
194
196
execute (() -> transferOwnership ());
195
197
break ;
196
198
case CMD_SET_SUSPENDED_PACKAGES :
197
- execute (() -> setPackagesSuspended ());
199
+ execute (() -> setSuspendedPackages ());
198
200
break ;
199
- case CMD_IS_PACKAGE_SUSPENDED :
200
- execute (() -> isPackageSuspended ());
201
+ case CMD_LIST_PACKAGE_SUSPENDED :
202
+ execute (() -> listSuspendedPackages ());
203
+ break ;
204
+ case CMD_SET_HIDDEN_PACKAGE :
205
+ execute (() -> setHiddenPackage ());
206
+ break ;
207
+ case CMD_IS_HIDDEN_PACKAGE :
208
+ execute (() -> isHiddenPackage ());
201
209
break ;
202
210
case CMD_SET_LOCK_TASK_PACKAGES :
203
211
execute (() -> setLockTaskPackages ());
@@ -281,7 +289,11 @@ private void showUsage() {
281
289
mWriter .printf ("\t %s <SUSPENDED> <PKG1> [PKG2] [PGKN] - suspend / unsuspend the given "
282
290
+ "packages\n " , CMD_SET_SUSPENDED_PACKAGES );
283
291
mWriter .printf ("\t %s <PKG1> [PKG2] [PKGN] - checks if the given packages are suspended\n " ,
284
- CMD_IS_PACKAGE_SUSPENDED );
292
+ CMD_LIST_PACKAGE_SUSPENDED );
293
+ mWriter .printf ("\t %s <PKG> <HIDDEN> - hide / unhide the given package\n " ,
294
+ CMD_SET_HIDDEN_PACKAGE );
295
+ mWriter .printf ("\t %s <PKG> - checks if the given package is hidden\n " ,
296
+ CMD_IS_HIDDEN_PACKAGE );
285
297
mWriter .printf ("\t %s <PKG1> [PKG2] [PGKN] - set the packages allowed to have tasks locked"
286
298
+ "\n " , CMD_SET_LOCK_TASK_PACKAGES );
287
299
mWriter .printf ("\t %s - get the packages allowed to have tasks locked\n " ,
@@ -560,7 +572,7 @@ private static String suspendedToString(boolean suspended) {
560
572
return suspended ? "SUSPENDED" : "NOT SUSPENDED" ;
561
573
}
562
574
563
- private void setPackagesSuspended () {
575
+ private void setSuspendedPackages () {
564
576
boolean suspended = Boolean .parseBoolean (mArgs [1 ]);
565
577
String [] packageNames = getArrayFromArgs (/* index= */ 2 );
566
578
@@ -575,7 +587,7 @@ private void setPackagesSuspended() {
575
587
(e ) -> onError (e , "Error settings %s to %s" , printableNames , printableStatus ));
576
588
}
577
589
578
- private void isPackageSuspended () {
590
+ private void listSuspendedPackages () {
579
591
getListFromAllArgs ().forEach ((packageName ) -> {
580
592
try {
581
593
boolean suspended = mDevicePolicyManagerGateway .isPackageSuspended (packageName );
@@ -586,6 +598,33 @@ private void isPackageSuspended() {
586
598
});
587
599
}
588
600
601
+ private static String hiddenToString (boolean hidden ) {
602
+ return hidden ? "HIDDEN" : "VISIBLE" ;
603
+ }
604
+
605
+ private void setHiddenPackage () {
606
+ // TODO(b/171350084): check args
607
+ String packageName = mArgs [1 ];
608
+ boolean hidden = Boolean .parseBoolean (mArgs [2 ]);
609
+ String printableStatus = hiddenToString (hidden );
610
+
611
+ Log .i (TAG , "setHiddenPackages(" + packageName + "): " + printableStatus );
612
+ mDevicePolicyManagerGateway .setApplicationHidden (packageName , hidden ,
613
+ (v ) -> onSuccess ("Set %s as %s" , packageName , printableStatus ),
614
+ (e ) -> onError (e , "Error settings %s as %s" , packageName , printableStatus ));
615
+ }
616
+
617
+ private void isHiddenPackage () {
618
+ // TODO(b/171350084): check args
619
+ String packageName = mArgs [1 ];
620
+ try {
621
+ boolean hidden = mDevicePolicyManagerGateway .isApplicationHidden (packageName );
622
+ mWriter .printf ("%s: %s\n " , packageName , hiddenToString (hidden ));
623
+ } catch (NameNotFoundException e ) {
624
+ mWriter .printf ("Invalid package name: %s\n " , packageName );
625
+ }
626
+ }
627
+
589
628
private void setLockTaskPackages () {
590
629
String [] packages = getArrayFromArgs (/* index= */ 1 );
591
630
0 commit comments