summaryrefslogtreecommitdiffstats
path: root/core/java/android/content
diff options
context:
space:
mode:
Diffstat (limited to 'core/java/android/content')
-rw-r--r--core/java/android/content/IntentFilter.java11
-rw-r--r--core/java/android/content/SyncInfo.java18
-rw-r--r--core/java/android/content/pm/IPackageManager.aidl7
-rw-r--r--core/java/android/content/pm/PackageManager.java2
-rw-r--r--core/java/android/content/pm/PackageParser.java15
-rw-r--r--core/java/android/content/res/Resources.java2
6 files changed, 47 insertions, 8 deletions
diff --git a/core/java/android/content/IntentFilter.java b/core/java/android/content/IntentFilter.java
index 3a17e23..ed5dfa5 100644
--- a/core/java/android/content/IntentFilter.java
+++ b/core/java/android/content/IntentFilter.java
@@ -883,6 +883,15 @@ public class IntentFilter implements Parcelable {
return true;
}
+ @Override
+ public boolean equals(Object obj) {
+ if (obj instanceof AuthorityEntry) {
+ final AuthorityEntry other = (AuthorityEntry)obj;
+ return match(other);
+ }
+ return false;
+ }
+
/**
* Determine whether this AuthorityEntry matches the given data Uri.
* <em>Note that this comparison is case-sensitive, unlike formal
@@ -917,7 +926,7 @@ public class IntentFilter implements Parcelable {
}
return MATCH_CATEGORY_HOST;
}
- };
+ }
/**
* Add a new Intent data "scheme specific part" to match against. The filter must
diff --git a/core/java/android/content/SyncInfo.java b/core/java/android/content/SyncInfo.java
index a586d6f..ab3c30b 100644
--- a/core/java/android/content/SyncInfo.java
+++ b/core/java/android/content/SyncInfo.java
@@ -24,6 +24,13 @@ import android.os.Parcelable;
* Information about the sync operation that is currently underway.
*/
public class SyncInfo implements Parcelable {
+ /**
+ * Used when the caller receiving this object doesn't have permission to access the accounts
+ * on device.
+ * @See Manifest.permission.GET_ACCOUNTS
+ */
+ private static final Account REDACTED_ACCOUNT = new Account("*****", "*****");
+
/** @hide */
public final int authorityId;
@@ -44,6 +51,17 @@ public class SyncInfo implements Parcelable {
*/
public final long startTime;
+ /**
+ * Creates a SyncInfo object with an unusable Account. Used when the caller receiving this
+ * object doesn't have access to the accounts on the device.
+ * @See Manifest.permission.GET_ACCOUNTS
+ * @hide
+ */
+ public static SyncInfo createAccountRedacted(
+ int authorityId, String authority, long startTime) {
+ return new SyncInfo(authorityId, REDACTED_ACCOUNT, authority, startTime);
+ }
+
/** @hide */
public SyncInfo(int authorityId, Account account, String authority, long startTime) {
this.authorityId = authorityId;
diff --git a/core/java/android/content/pm/IPackageManager.aidl b/core/java/android/content/pm/IPackageManager.aidl
index 6d8b5cb..51f13af 100644
--- a/core/java/android/content/pm/IPackageManager.aidl
+++ b/core/java/android/content/pm/IPackageManager.aidl
@@ -521,6 +521,9 @@ interface IPackageManager {
int processThemeResources(String themePkgName);
/** Protected Apps */
- boolean isComponentProtected(in String callingPackage, in ComponentName componentName,
- int userId);
+ boolean isComponentProtected(in String callingPackage, in int callingUid,
+ in ComponentName componentName, int userId);
+
+ /** protected broadcast ext */
+ boolean isProtectedBroadcastAllowed(in String actionName, in int callingUid);
}
diff --git a/core/java/android/content/pm/PackageManager.java b/core/java/android/content/pm/PackageManager.java
index 529d641..8f0500e 100644
--- a/core/java/android/content/pm/PackageManager.java
+++ b/core/java/android/content/pm/PackageManager.java
@@ -4564,7 +4564,7 @@ public abstract class PackageManager {
* Return whether or not a specific component is protected
* @hide
*/
- public abstract boolean isComponentProtected(String callingPackage,
+ public abstract boolean isComponentProtected(String callingPackage, int callingUid,
ComponentName componentName);
/**
diff --git a/core/java/android/content/pm/PackageParser.java b/core/java/android/content/pm/PackageParser.java
index 6a07b31..bb46ef0 100644
--- a/core/java/android/content/pm/PackageParser.java
+++ b/core/java/android/content/pm/PackageParser.java
@@ -1877,14 +1877,18 @@ public class PackageParser {
String name = sa.getNonResourceString(
com.android.internal.R.styleable.AndroidManifestProtectedBroadcast_name);
+ String permission = sa.getNonResourceString(
+ com.android.internal.R.styleable.AndroidManifestProtectedBroadcast_permission);
+
sa.recycle();
if (name != null && (flags&PARSE_IS_SYSTEM) != 0) {
if (pkg.protectedBroadcasts == null) {
- pkg.protectedBroadcasts = new ArrayList<String>();
+ pkg.protectedBroadcasts = new ArrayMap<>();
}
- if (!pkg.protectedBroadcasts.contains(name)) {
- pkg.protectedBroadcasts.add(name.intern());
+ if (!pkg.protectedBroadcasts.containsKey(name)) {
+ pkg.protectedBroadcasts.put(name.intern(),
+ permission != null ? permission.intern() : null);
}
}
@@ -4519,7 +4523,10 @@ public class PackageParser {
public final ArrayList<String> requestedPermissions = new ArrayList<String>();
- public ArrayList<String> protectedBroadcasts;
+ /**
+ * Maps from package -> permission, null for system (default behavior)
+ */
+ public ArrayMap<String,String> protectedBroadcasts;
public ArrayList<String> libraryNames = null;
public ArrayList<String> usesLibraries = null;
diff --git a/core/java/android/content/res/Resources.java b/core/java/android/content/res/Resources.java
index 6a404e2..7fa04f9 100644
--- a/core/java/android/content/res/Resources.java
+++ b/core/java/android/content/res/Resources.java
@@ -120,6 +120,8 @@ public class Resources {
public static final int THEME_APP_PKG_ID = 0x61;
/** @hide */
public static final int THEME_ICON_PKG_ID = 0x62;
+ /** @hide */
+ public static final int THEME_CM_PKG_ID = 0x63;
/**
* The common resource pkg id needs to be less than the THEME_FRAMEWORK_PKG_ID
* otherwise aapt will complain and fail