Merge "Lock profiles when lockdown is invoked." into pi-dev
am: e4ea18c1ff
Change-Id: Iae83cc6911edbffd949c44c481b8962bd12404bc
This commit is contained in:
@@ -26,6 +26,7 @@ import android.app.Dialog;
|
||||
import android.app.KeyguardManager;
|
||||
import android.app.WallpaperManager;
|
||||
import android.app.admin.DevicePolicyManager;
|
||||
import android.app.trust.TrustManager;
|
||||
import android.content.BroadcastReceiver;
|
||||
import android.content.ComponentName;
|
||||
import android.content.Context;
|
||||
@@ -699,6 +700,9 @@ class GlobalActionsDialog implements DialogInterface.OnDismissListener,
|
||||
UserHandle.USER_ALL);
|
||||
try {
|
||||
WindowManagerGlobal.getWindowManagerService().lockNow(null);
|
||||
// Lock profiles (if any) on the background thread.
|
||||
final Handler bgHandler = new Handler(Dependency.get(Dependency.BG_LOOPER));
|
||||
bgHandler.post(() -> lockProfiles());
|
||||
} catch (RemoteException e) {
|
||||
Log.e(TAG, "Error while trying to lock device.", e);
|
||||
}
|
||||
@@ -716,6 +720,18 @@ class GlobalActionsDialog implements DialogInterface.OnDismissListener,
|
||||
};
|
||||
}
|
||||
|
||||
private void lockProfiles() {
|
||||
final UserManager um = (UserManager) mContext.getSystemService(Context.USER_SERVICE);
|
||||
final TrustManager tm = (TrustManager) mContext.getSystemService(Context.TRUST_SERVICE);
|
||||
final int currentUserId = getCurrentUser().id;
|
||||
final int[] profileIds = um.getEnabledProfileIds(currentUserId);
|
||||
for (final int id : profileIds) {
|
||||
if (id != currentUserId) {
|
||||
tm.setDeviceLockedForUser(id, true);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private UserInfo getCurrentUser() {
|
||||
try {
|
||||
return ActivityManager.getService().getCurrentUser();
|
||||
|
||||
Reference in New Issue
Block a user