summaryrefslogtreecommitdiffstats
path: root/core/java/android/widget/AdapterViewFlipper.java
diff options
context:
space:
mode:
Diffstat (limited to 'core/java/android/widget/AdapterViewFlipper.java')
-rw-r--r--core/java/android/widget/AdapterViewFlipper.java12
1 files changed, 11 insertions, 1 deletions
diff --git a/core/java/android/widget/AdapterViewFlipper.java b/core/java/android/widget/AdapterViewFlipper.java
index 3b026bd..285dee8 100644
--- a/core/java/android/widget/AdapterViewFlipper.java
+++ b/core/java/android/widget/AdapterViewFlipper.java
@@ -105,7 +105,17 @@ public class AdapterViewFlipper extends AdapterViewAnimator {
final IntentFilter filter = new IntentFilter();
filter.addAction(Intent.ACTION_SCREEN_OFF);
filter.addAction(Intent.ACTION_USER_PRESENT);
- getContext().registerReceiver(mReceiver, filter);
+
+ // OK, this is gross but needed. This class is supported by the
+ // remote views machanism and as a part of that the remote views
+ // can be inflated by a context for another user without the app
+ // having interact users permission - just for loading resources.
+ // For exmaple, when adding widgets from a user profile to the
+ // home screen. Therefore, we register the receiver as the current
+ // user not the one the context is for.
+ getContext().registerReceiverAsUser(mReceiver, android.os.Process.myUserHandle(),
+ filter, null, mHandler);
+
if (mAutoStart) {
// Automatically start when requested