Merge \"Allow stopping user to access AppWidgetService API\" into nyc-dev
am: ab8d4cf645
Change-Id: If1ed361c6f8c7008271cf1da4317c9ac47a5af73
This commit is contained in:
@@ -20,6 +20,7 @@ import static android.content.Context.KEYGUARD_SERVICE;
|
||||
import static android.content.Intent.FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS;
|
||||
import static android.content.Intent.FLAG_ACTIVITY_NEW_TASK;
|
||||
|
||||
import android.annotation.UserIdInt;
|
||||
import android.app.AlarmManager;
|
||||
import android.app.AppGlobals;
|
||||
import android.app.AppOpsManager;
|
||||
@@ -66,6 +67,7 @@ import android.os.RemoteException;
|
||||
import android.os.SystemClock;
|
||||
import android.os.UserHandle;
|
||||
import android.os.UserManager;
|
||||
import android.os.storage.StorageManager;
|
||||
import android.text.TextUtils;
|
||||
import android.util.ArraySet;
|
||||
import android.util.AtomicFile;
|
||||
@@ -647,7 +649,7 @@ class AppWidgetServiceImpl extends IAppWidgetService.Stub implements WidgetBacku
|
||||
}
|
||||
|
||||
private void ensureGroupStateLoadedLocked(int userId, boolean enforceUserUnlockingOrUnlocked) {
|
||||
if (enforceUserUnlockingOrUnlocked && !mUserManager.isUserUnlockingOrUnlocked(userId)) {
|
||||
if (enforceUserUnlockingOrUnlocked && !isUserRunningAndUnlocked(userId)) {
|
||||
throw new IllegalStateException(
|
||||
"User " + userId + " must be unlocked for widgets to be available");
|
||||
}
|
||||
@@ -692,6 +694,10 @@ class AppWidgetServiceImpl extends IAppWidgetService.Stub implements WidgetBacku
|
||||
loadGroupStateLocked(newProfileIds);
|
||||
}
|
||||
|
||||
private boolean isUserRunningAndUnlocked(@UserIdInt int userId) {
|
||||
return mUserManager.isUserRunning(userId) && StorageManager.isUserKeyUnlocked(userId);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void dump(FileDescriptor fd, PrintWriter pw, String[] args) {
|
||||
mContext.enforceCallingOrSelfPermission(android.Manifest.permission.DUMP,
|
||||
@@ -3358,7 +3364,7 @@ class AppWidgetServiceImpl extends IAppWidgetService.Stub implements WidgetBacku
|
||||
if (userInfo != null && userInfo.isManagedProfile()) {
|
||||
UserInfo parentInfo = mUserManager.getProfileParent(userId);
|
||||
if (parentInfo != null
|
||||
&& !mUserManager.isUserUnlockingOrUnlocked(parentInfo.getUserHandle())) {
|
||||
&& !isUserRunningAndUnlocked(parentInfo.getUserHandle().getIdentifier())) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user