Loading services/autofill/java/com/android/server/autofill/ui/OverlayControl.java +5 −4 Original line number Original line Diff line number Diff line Loading @@ -21,6 +21,7 @@ import android.app.AppOpsManager; import android.content.Context; import android.content.Context; import android.os.Binder; import android.os.Binder; import android.os.IBinder; import android.os.IBinder; import android.os.UserHandle; /** /** * This class controls showing/hiding overlays. We don't * This class controls showing/hiding overlays. We don't Loading @@ -47,10 +48,10 @@ class OverlayControl { private void setOverlayAllowed(boolean allowed) { private void setOverlayAllowed(boolean allowed) { if (mAppOpsManager != null) { if (mAppOpsManager != null) { mAppOpsManager.setUserRestriction( mAppOpsManager.setUserRestrictionForUser(AppOpsManager.OP_SYSTEM_ALERT_WINDOW, !allowed, AppOpsManager.OP_SYSTEM_ALERT_WINDOW, !allowed, mToken); mToken, null, UserHandle.USER_ALL); mAppOpsManager.setUserRestriction( mAppOpsManager.setUserRestrictionForUser(AppOpsManager.OP_TOAST_WINDOW, !allowed, AppOpsManager.OP_TOAST_WINDOW, !allowed, mToken); mToken, null, UserHandle.USER_ALL); } } } } } } services/core/java/com/android/server/AppOpsService.java +64 −43 Original line number Original line Diff line number Diff line Loading @@ -16,22 +16,6 @@ package com.android.server; package com.android.server; import java.io.File; import java.io.FileDescriptor; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.io.PrintWriter; import java.nio.charset.StandardCharsets; import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; import java.util.HashMap; import java.util.Iterator; import java.util.List; import java.util.Map; import android.Manifest; import android.Manifest; import android.app.ActivityManager; import android.app.ActivityManager; import android.app.ActivityThread; import android.app.ActivityThread; Loading @@ -42,6 +26,7 @@ import android.content.pm.ApplicationInfo; import android.content.pm.IPackageManager; import android.content.pm.IPackageManager; import android.content.pm.PackageManager; import android.content.pm.PackageManager; import android.content.pm.PackageManagerInternal; import android.content.pm.PackageManagerInternal; import android.content.pm.UserInfo; import android.media.AudioAttributes; import android.media.AudioAttributes; import android.os.AsyncTask; import android.os.AsyncTask; import android.os.Binder; import android.os.Binder; Loading @@ -55,6 +40,7 @@ import android.os.ServiceManager; import android.os.ShellCallback; import android.os.ShellCallback; import android.os.ShellCommand; import android.os.ShellCommand; import android.os.UserHandle; import android.os.UserHandle; import android.os.UserManager; import android.os.storage.StorageManagerInternal; import android.os.storage.StorageManagerInternal; import android.util.ArrayMap; import android.util.ArrayMap; import android.util.ArraySet; import android.util.ArraySet; Loading @@ -66,8 +52,8 @@ import android.util.SparseIntArray; import android.util.TimeUtils; import android.util.TimeUtils; import android.util.Xml; import android.util.Xml; import com.android.internal.app.IAppOpsService; import com.android.internal.app.IAppOpsCallback; import com.android.internal.app.IAppOpsCallback; import com.android.internal.app.IAppOpsService; import com.android.internal.os.Zygote; import com.android.internal.os.Zygote; import com.android.internal.util.ArrayUtils; import com.android.internal.util.ArrayUtils; import com.android.internal.util.DumpUtils; import com.android.internal.util.DumpUtils; Loading @@ -76,10 +62,27 @@ import com.android.internal.util.Preconditions; import com.android.internal.util.XmlUtils; import com.android.internal.util.XmlUtils; import libcore.util.EmptyArray; import libcore.util.EmptyArray; import org.xmlpull.v1.XmlPullParser; import org.xmlpull.v1.XmlPullParser; import org.xmlpull.v1.XmlPullParserException; import org.xmlpull.v1.XmlPullParserException; import org.xmlpull.v1.XmlSerializer; import org.xmlpull.v1.XmlSerializer; import java.io.File; import java.io.FileDescriptor; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.io.PrintWriter; import java.nio.charset.StandardCharsets; import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; import java.util.HashMap; import java.util.Iterator; import java.util.List; import java.util.Map; public class AppOpsService extends IAppOpsService.Stub { public class AppOpsService extends IAppOpsService.Stub { static final String TAG = "AppOps"; static final String TAG = "AppOps"; static final boolean DEBUG = false; static final boolean DEBUG = false; Loading Loading @@ -2526,16 +2529,33 @@ public class AppOpsService extends IAppOpsService.Stub { perUserRestrictions = new SparseArray<>(); perUserRestrictions = new SparseArray<>(); } } int[] users; if (userId == UserHandle.USER_ALL) { List<UserInfo> liveUsers = UserManager.get(mContext).getUsers(false); users = new int[liveUsers.size()]; for (int i = 0; i < liveUsers.size(); i++) { users[i] = liveUsers.get(i).id; } } else { users = new int[]{userId}; } if (perUserRestrictions != null) { if (perUserRestrictions != null) { boolean[] userRestrictions = perUserRestrictions.get(userId); int numUsers = users.length; for (int i = 0; i < numUsers; i++) { int thisUserId = users[i]; boolean[] userRestrictions = perUserRestrictions.get(thisUserId); if (userRestrictions == null && restricted) { if (userRestrictions == null && restricted) { userRestrictions = new boolean[AppOpsManager._NUM_OP]; userRestrictions = new boolean[AppOpsManager._NUM_OP]; perUserRestrictions.put(userId, userRestrictions); perUserRestrictions.put(thisUserId, userRestrictions); } } if (userRestrictions != null && userRestrictions[code] != restricted) { if (userRestrictions != null && userRestrictions[code] != restricted) { userRestrictions[code] = restricted; userRestrictions[code] = restricted; if (!restricted && isDefault(userRestrictions)) { if (!restricted && isDefault(userRestrictions)) { perUserRestrictions.remove(userId); perUserRestrictions.remove(thisUserId); userRestrictions = null; userRestrictions = null; } } changed = true; changed = true; Loading @@ -2547,19 +2567,20 @@ public class AppOpsService extends IAppOpsService.Stub { perUserExcludedPackages = new SparseArray<>(); perUserExcludedPackages = new SparseArray<>(); } } if (perUserExcludedPackages != null && !Arrays.equals(excludedPackages, if (perUserExcludedPackages != null && !Arrays.equals(excludedPackages, perUserExcludedPackages.get(userId))) { perUserExcludedPackages.get(thisUserId))) { if (noExcludedPackages) { if (noExcludedPackages) { perUserExcludedPackages.remove(userId); perUserExcludedPackages.remove(thisUserId); if (perUserExcludedPackages.size() <= 0) { if (perUserExcludedPackages.size() <= 0) { perUserExcludedPackages = null; perUserExcludedPackages = null; } } } else { } else { perUserExcludedPackages.put(userId, excludedPackages); perUserExcludedPackages.put(thisUserId, excludedPackages); } } changed = true; changed = true; } } } } } } } return changed; return changed; } } Loading Loading
services/autofill/java/com/android/server/autofill/ui/OverlayControl.java +5 −4 Original line number Original line Diff line number Diff line Loading @@ -21,6 +21,7 @@ import android.app.AppOpsManager; import android.content.Context; import android.content.Context; import android.os.Binder; import android.os.Binder; import android.os.IBinder; import android.os.IBinder; import android.os.UserHandle; /** /** * This class controls showing/hiding overlays. We don't * This class controls showing/hiding overlays. We don't Loading @@ -47,10 +48,10 @@ class OverlayControl { private void setOverlayAllowed(boolean allowed) { private void setOverlayAllowed(boolean allowed) { if (mAppOpsManager != null) { if (mAppOpsManager != null) { mAppOpsManager.setUserRestriction( mAppOpsManager.setUserRestrictionForUser(AppOpsManager.OP_SYSTEM_ALERT_WINDOW, !allowed, AppOpsManager.OP_SYSTEM_ALERT_WINDOW, !allowed, mToken); mToken, null, UserHandle.USER_ALL); mAppOpsManager.setUserRestriction( mAppOpsManager.setUserRestrictionForUser(AppOpsManager.OP_TOAST_WINDOW, !allowed, AppOpsManager.OP_TOAST_WINDOW, !allowed, mToken); mToken, null, UserHandle.USER_ALL); } } } } } }
services/core/java/com/android/server/AppOpsService.java +64 −43 Original line number Original line Diff line number Diff line Loading @@ -16,22 +16,6 @@ package com.android.server; package com.android.server; import java.io.File; import java.io.FileDescriptor; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.io.PrintWriter; import java.nio.charset.StandardCharsets; import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; import java.util.HashMap; import java.util.Iterator; import java.util.List; import java.util.Map; import android.Manifest; import android.Manifest; import android.app.ActivityManager; import android.app.ActivityManager; import android.app.ActivityThread; import android.app.ActivityThread; Loading @@ -42,6 +26,7 @@ import android.content.pm.ApplicationInfo; import android.content.pm.IPackageManager; import android.content.pm.IPackageManager; import android.content.pm.PackageManager; import android.content.pm.PackageManager; import android.content.pm.PackageManagerInternal; import android.content.pm.PackageManagerInternal; import android.content.pm.UserInfo; import android.media.AudioAttributes; import android.media.AudioAttributes; import android.os.AsyncTask; import android.os.AsyncTask; import android.os.Binder; import android.os.Binder; Loading @@ -55,6 +40,7 @@ import android.os.ServiceManager; import android.os.ShellCallback; import android.os.ShellCallback; import android.os.ShellCommand; import android.os.ShellCommand; import android.os.UserHandle; import android.os.UserHandle; import android.os.UserManager; import android.os.storage.StorageManagerInternal; import android.os.storage.StorageManagerInternal; import android.util.ArrayMap; import android.util.ArrayMap; import android.util.ArraySet; import android.util.ArraySet; Loading @@ -66,8 +52,8 @@ import android.util.SparseIntArray; import android.util.TimeUtils; import android.util.TimeUtils; import android.util.Xml; import android.util.Xml; import com.android.internal.app.IAppOpsService; import com.android.internal.app.IAppOpsCallback; import com.android.internal.app.IAppOpsCallback; import com.android.internal.app.IAppOpsService; import com.android.internal.os.Zygote; import com.android.internal.os.Zygote; import com.android.internal.util.ArrayUtils; import com.android.internal.util.ArrayUtils; import com.android.internal.util.DumpUtils; import com.android.internal.util.DumpUtils; Loading @@ -76,10 +62,27 @@ import com.android.internal.util.Preconditions; import com.android.internal.util.XmlUtils; import com.android.internal.util.XmlUtils; import libcore.util.EmptyArray; import libcore.util.EmptyArray; import org.xmlpull.v1.XmlPullParser; import org.xmlpull.v1.XmlPullParser; import org.xmlpull.v1.XmlPullParserException; import org.xmlpull.v1.XmlPullParserException; import org.xmlpull.v1.XmlSerializer; import org.xmlpull.v1.XmlSerializer; import java.io.File; import java.io.FileDescriptor; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.io.PrintWriter; import java.nio.charset.StandardCharsets; import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; import java.util.HashMap; import java.util.Iterator; import java.util.List; import java.util.Map; public class AppOpsService extends IAppOpsService.Stub { public class AppOpsService extends IAppOpsService.Stub { static final String TAG = "AppOps"; static final String TAG = "AppOps"; static final boolean DEBUG = false; static final boolean DEBUG = false; Loading Loading @@ -2526,16 +2529,33 @@ public class AppOpsService extends IAppOpsService.Stub { perUserRestrictions = new SparseArray<>(); perUserRestrictions = new SparseArray<>(); } } int[] users; if (userId == UserHandle.USER_ALL) { List<UserInfo> liveUsers = UserManager.get(mContext).getUsers(false); users = new int[liveUsers.size()]; for (int i = 0; i < liveUsers.size(); i++) { users[i] = liveUsers.get(i).id; } } else { users = new int[]{userId}; } if (perUserRestrictions != null) { if (perUserRestrictions != null) { boolean[] userRestrictions = perUserRestrictions.get(userId); int numUsers = users.length; for (int i = 0; i < numUsers; i++) { int thisUserId = users[i]; boolean[] userRestrictions = perUserRestrictions.get(thisUserId); if (userRestrictions == null && restricted) { if (userRestrictions == null && restricted) { userRestrictions = new boolean[AppOpsManager._NUM_OP]; userRestrictions = new boolean[AppOpsManager._NUM_OP]; perUserRestrictions.put(userId, userRestrictions); perUserRestrictions.put(thisUserId, userRestrictions); } } if (userRestrictions != null && userRestrictions[code] != restricted) { if (userRestrictions != null && userRestrictions[code] != restricted) { userRestrictions[code] = restricted; userRestrictions[code] = restricted; if (!restricted && isDefault(userRestrictions)) { if (!restricted && isDefault(userRestrictions)) { perUserRestrictions.remove(userId); perUserRestrictions.remove(thisUserId); userRestrictions = null; userRestrictions = null; } } changed = true; changed = true; Loading @@ -2547,19 +2567,20 @@ public class AppOpsService extends IAppOpsService.Stub { perUserExcludedPackages = new SparseArray<>(); perUserExcludedPackages = new SparseArray<>(); } } if (perUserExcludedPackages != null && !Arrays.equals(excludedPackages, if (perUserExcludedPackages != null && !Arrays.equals(excludedPackages, perUserExcludedPackages.get(userId))) { perUserExcludedPackages.get(thisUserId))) { if (noExcludedPackages) { if (noExcludedPackages) { perUserExcludedPackages.remove(userId); perUserExcludedPackages.remove(thisUserId); if (perUserExcludedPackages.size() <= 0) { if (perUserExcludedPackages.size() <= 0) { perUserExcludedPackages = null; perUserExcludedPackages = null; } } } else { } else { perUserExcludedPackages.put(userId, excludedPackages); perUserExcludedPackages.put(thisUserId, excludedPackages); } } changed = true; changed = true; } } } } } } } return changed; return changed; } } Loading