diff options
| author | 2015-07-24 19:47:39 +0000 | |
|---|---|---|
| committer | 2015-07-24 19:47:39 +0000 | |
| commit | 8582f9f7591382e360ff9c2e93ea29c3fe65efde (patch) | |
| tree | 5bc3373072c3567a8627c1f075ac6a32579b455b | |
| parent | 71b4c04944b3fc7baa5e607cfd31ebc8cfef1abc (diff) | |
| parent | 21b0b3ac436262a01d7e7c42fb48a758a2a0bbe8 (diff) | |
am 21b0b3ac: am 2c5aeeaa: Merge "Require permission for internal broadcast" into mnc-dev
* commit '21b0b3ac436262a01d7e7c42fb48a758a2a0bbe8':
Require permission for internal broadcast
| -rw-r--r-- | packages/SystemUI/AndroidManifest.xml | 5 | ||||
| -rw-r--r-- | packages/SystemUI/src/com/android/systemui/statusbar/policy/UserSwitcherController.java | 13 |
2 files changed, 15 insertions, 3 deletions
diff --git a/packages/SystemUI/AndroidManifest.xml b/packages/SystemUI/AndroidManifest.xml index 659a9069774f..ea2cc51f28da 100644 --- a/packages/SystemUI/AndroidManifest.xml +++ b/packages/SystemUI/AndroidManifest.xml @@ -126,6 +126,11 @@ <!-- Assist --> <uses-permission android:name="android.permission.ACCESS_VOICE_INTERACTION_SERVICE" /> + <!-- Self permission for internal broadcasts. --> + <permission android:name="com.android.systemui.permission.SELF" + android:protectionLevel="signature" /> + <uses-permission android:name="com.android.systemui.permission.SELF" /> + <application android:name=".SystemUIApplication" android:persistent="true" diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/policy/UserSwitcherController.java b/packages/SystemUI/src/com/android/systemui/statusbar/policy/UserSwitcherController.java index 6fabe9b62777..acf141546939 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/policy/UserSwitcherController.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/policy/UserSwitcherController.java @@ -69,6 +69,10 @@ public class UserSwitcherController { "lockscreenSimpleUserSwitcher"; private static final String ACTION_REMOVE_GUEST = "com.android.systemui.REMOVE_GUEST"; + private static final int ID_REMOVE_GUEST = 1010; + private static final String TAG_REMOVE_GUEST = "remove_guest"; + private static final String PERMISSION_SELF = "com.android.systemui.permission.SELF"; + private final Context mContext; private final UserManager mUserManager; private final ArrayList<WeakReference<BaseUserAdapter>> mAdapters = new ArrayList<>(); @@ -94,10 +98,13 @@ public class UserSwitcherController { filter.addAction(Intent.ACTION_USER_INFO_CHANGED); filter.addAction(Intent.ACTION_USER_SWITCHED); filter.addAction(Intent.ACTION_USER_STOPPING); - filter.addAction(ACTION_REMOVE_GUEST); mContext.registerReceiverAsUser(mReceiver, UserHandle.OWNER, filter, null /* permission */, null /* scheduler */); + filter = new IntentFilter(); + filter.addAction(ACTION_REMOVE_GUEST); + mContext.registerReceiverAsUser(mReceiver, UserHandle.OWNER, filter, + PERMISSION_SELF, null /* scheduler */); mContext.getContentResolver().registerContentObserver( Settings.Global.getUriFor(SIMPLE_USER_SWITCHER_GLOBAL_SETTING), true, @@ -366,8 +373,8 @@ public class UserSwitcherController { mContext.getString(R.string.guest_notification_remove_action), removeGuestPI) .build(); - NotificationManager.from(mContext).notifyAsUser(null, 0, notification, - new UserHandle(guestUserId)); + NotificationManager.from(mContext).notifyAsUser(TAG_REMOVE_GUEST, ID_REMOVE_GUEST, + notification, new UserHandle(guestUserId)); } }; |