summaryrefslogtreecommitdiff
path: root/core/java/android/widget/RemoteViews.java
diff options
context:
space:
mode:
authorJeff Sharkey <jsharkey@android.com>2012-09-23 13:22:26 -0700
committerAndroid (Google) Code Review <android-gerrit@google.com>2012-09-23 13:22:27 -0700
commit11820f7386ce86fd89e9e6b49d9231dce6e1ed07 (patch)
tree9437ce9ba5b311f4b95c05121a9df6ec7f062379 /core/java/android/widget/RemoteViews.java
parentb939e35274334d1f5e71a526efe8d235eb6d7387 (diff)
parent6d51571835737c7502a2e111ee9dc2527ebad984 (diff)
Merge "Allow acquiring ContentProviders across users." into jb-mr1-dev
Diffstat (limited to 'core/java/android/widget/RemoteViews.java')
-rw-r--r--core/java/android/widget/RemoteViews.java20
1 files changed, 16 insertions, 4 deletions
diff --git a/core/java/android/widget/RemoteViews.java b/core/java/android/widget/RemoteViews.java
index 1a47ce2fa24b..90f55bf78797 100644
--- a/core/java/android/widget/RemoteViews.java
+++ b/core/java/android/widget/RemoteViews.java
@@ -23,7 +23,6 @@ import android.content.Context;
import android.content.Intent;
import android.content.IntentSender;
import android.content.pm.ApplicationInfo;
-import android.content.pm.PackageManager;
import android.content.pm.PackageManager.NameNotFoundException;
import android.content.res.Configuration;
import android.graphics.Bitmap;
@@ -35,9 +34,9 @@ import android.os.Build;
import android.os.Bundle;
import android.os.Parcel;
import android.os.Parcelable;
+import android.os.UserHandle;
import android.text.TextUtils;
import android.util.Log;
-import android.util.TypedValue;
import android.view.LayoutInflater;
import android.view.LayoutInflater.Filter;
import android.view.RemotableViewMethod;
@@ -72,6 +71,13 @@ public class RemoteViews implements Parcelable, Filter {
static final String EXTRA_REMOTEADAPTER_APPWIDGET_ID = "remoteAdapterAppWidgetId";
/**
+ * User that these views should be applied as. Requires
+ * {@link android.Manifest.permission#INTERACT_ACROSS_USERS_FULL} when
+ * crossing user boundaries.
+ */
+ private UserHandle mUser = android.os.Process.myUserHandle();
+
+ /**
* The package name of the package containing the layout
* resource. (Added to the parcel)
*/
@@ -1446,11 +1452,16 @@ public class RemoteViews implements Parcelable, Filter {
recalculateMemoryUsage();
}
+ /** {@hide} */
+ public void setUser(UserHandle user) {
+ mUser = user;
+ }
+
private boolean hasLandscapeAndPortraitLayouts() {
return (mLandscape != null) && (mPortrait != null);
}
- /**
+ /**
* Create a new RemoteViews object that will inflate as the specified
* landspace or portrait RemoteViews, depending on the current configuration.
*
@@ -2309,7 +2320,8 @@ public class RemoteViews implements Parcelable, Filter {
if (packageName != null) {
try {
- c = context.createPackageContext(packageName, Context.CONTEXT_RESTRICTED);
+ c = context.createPackageContextAsUser(
+ packageName, Context.CONTEXT_RESTRICTED, mUser);
} catch (NameNotFoundException e) {
Log.e(LOG_TAG, "Package name " + packageName + " not found");
c = context;