diff options
| author | Romain Guy <romainguy@android.com> | 2009-07-06 16:35:25 -0700 |
|---|---|---|
| committer | Romain Guy <romainguy@android.com> | 2009-07-06 16:45:17 -0700 |
| commit | 870e09fcd2dfdc12ac318962efd28b0420c562bb (patch) | |
| tree | e96f3395c7176695e7007b21ec054c1e3d5a5e71 /core/java/android/content | |
| parent | 453dd50e707aa3a4d24240935f3ff7ea0a08dc7a (diff) | |
| download | frameworks_base-870e09fcd2dfdc12ac318962efd28b0420c562bb.zip frameworks_base-870e09fcd2dfdc12ac318962efd28b0420c562bb.tar.gz frameworks_base-870e09fcd2dfdc12ac318962efd28b0420c562bb.tar.bz2 | |
Fixes #1963229. Introduces Context#isRestricted().
A restricted Context is a special type of Context that prevents specific features
from being used. For instance, android:onClick, used by View, can be dangerous when
used from within apps widgets. By using a restricted Context to inflate apps widgets,
widgets providers are prevented from using android:onClick.
Diffstat (limited to 'core/java/android/content')
| -rw-r--r-- | core/java/android/content/Context.java | 18 | ||||
| -rw-r--r-- | core/java/android/content/ContextWrapper.java | 5 |
2 files changed, 23 insertions, 0 deletions
diff --git a/core/java/android/content/Context.java b/core/java/android/content/Context.java index b0396f6..9e37ae4 100644 --- a/core/java/android/content/Context.java +++ b/core/java/android/content/Context.java @@ -1654,6 +1654,13 @@ public abstract class Context { * with extreme care! */ public static final int CONTEXT_IGNORE_SECURITY = 0x00000002; + + /** + * Flag for use with {@link #createPackageContext}: a restricted context may + * disable specific features. For instance, a View associated with a restricted + * context would ignore particular XML attributes. + */ + public static final int CONTEXT_RESTRICTED = 0x00000004; /** * Return a new Context object for the given application name. This @@ -1682,4 +1689,15 @@ public abstract class Context { */ public abstract Context createPackageContext(String packageName, int flags) throws PackageManager.NameNotFoundException; + + /** + * Indicates whether this Context is restricted. + * + * @return True if this Context is restricted, false otherwise. + * + * @see #CONTEXT_RESTRICTED + */ + public boolean isRestricted() { + return false; + } } diff --git a/core/java/android/content/ContextWrapper.java b/core/java/android/content/ContextWrapper.java index 7513b3b..45a082a 100644 --- a/core/java/android/content/ContextWrapper.java +++ b/core/java/android/content/ContextWrapper.java @@ -430,4 +430,9 @@ public class ContextWrapper extends Context { throws PackageManager.NameNotFoundException { return mBase.createPackageContext(packageName, flags); } + + @Override + public boolean isRestricted() { + return mBase.isRestricted(); + } } |
