summaryrefslogtreecommitdiffstats
path: root/src/com/android/providers/contacts/VoicemailContentProvider.java
diff options
context:
space:
mode:
authorfafaisland <fafaisland@google.com>2014-06-17 11:37:42 -0700
committerfafaisland <fafaisland@google.com>2014-06-17 15:49:42 -0700
commit3ccaf5590a7ed2fca780f9b7fc46328d0f78a2ee (patch)
tree5036069617759298f5cd357b0381d905af341a69 /src/com/android/providers/contacts/VoicemailContentProvider.java
parent99339cd35745a3477d7caada51dc028d08507b47 (diff)
downloadpackages_providers_ContactsProvider-3ccaf5590a7ed2fca780f9b7fc46328d0f78a2ee.zip
packages_providers_ContactsProvider-3ccaf5590a7ed2fca780f9b7fc46328d0f78a2ee.tar.gz
packages_providers_ContactsProvider-3ccaf5590a7ed2fca780f9b7fc46328d0f78a2ee.tar.bz2
Add READ_ALL_VOICEMAILS Permision to VoicemailPermissions, VoicemailContentProvider
and CallLogProvider Bug:15695227 Change-Id: I244541c847c07450535a52d0bf38199b55387202
Diffstat (limited to 'src/com/android/providers/contacts/VoicemailContentProvider.java')
-rw-r--r--src/com/android/providers/contacts/VoicemailContentProvider.java20
1 files changed, 14 insertions, 6 deletions
diff --git a/src/com/android/providers/contacts/VoicemailContentProvider.java b/src/com/android/providers/contacts/VoicemailContentProvider.java
index 279ebce..79e549b 100644
--- a/src/com/android/providers/contacts/VoicemailContentProvider.java
+++ b/src/com/android/providers/contacts/VoicemailContentProvider.java
@@ -108,7 +108,7 @@ public class VoicemailContentProvider extends ContentProvider
String sortOrder) {
UriData uriData = checkPermissionsAndCreateUriDataForReadOperation(uri);
SelectionBuilder selectionBuilder = new SelectionBuilder(selection);
- selectionBuilder.addClause(getPackageRestrictionClause());
+ selectionBuilder.addClause(getPackageRestrictionClause(true/*isQuery*/));
return getTableDelegate(uriData).query(uriData, projection, selectionBuilder.build(),
selectionArgs, sortOrder);
}
@@ -117,7 +117,7 @@ public class VoicemailContentProvider extends ContentProvider
public int update(Uri uri, ContentValues values, String selection, String[] selectionArgs) {
UriData uriData = checkPermissionsAndCreateUriData(uri, values);
SelectionBuilder selectionBuilder = new SelectionBuilder(selection);
- selectionBuilder.addClause(getPackageRestrictionClause());
+ selectionBuilder.addClause(getPackageRestrictionClause(false/*isQuery*/));
return getTableDelegate(uriData).update(uriData, values, selectionBuilder.build(),
selectionArgs);
}
@@ -126,7 +126,7 @@ public class VoicemailContentProvider extends ContentProvider
public int delete(Uri uri, String selection, String[] selectionArgs) {
UriData uriData = checkPermissionsAndCreateUriData(uri);
SelectionBuilder selectionBuilder = new SelectionBuilder(selection);
- selectionBuilder.addClause(getPackageRestrictionClause());
+ selectionBuilder.addClause(getPackageRestrictionClause(false/*isQuery*/));
return getTableDelegate(uriData).delete(uriData, selectionBuilder.build(), selectionArgs);
}
@@ -288,6 +288,11 @@ public class VoicemailContentProvider extends ContentProvider
== PackageManager.PERMISSION_GRANTED) {
return UriData.createUriData(uri);
}
+
+ if (mVoicemailPermissions.callerHasFullReadAccess()) {
+ return UriData.createUriData(uri);
+ }
+
return checkPermissionsAndCreateUriData(uri);
}
@@ -330,8 +335,8 @@ public class VoicemailContentProvider extends ContentProvider
}
/**
- * Checks that either the caller has READ_WRITE_ALL_VOICEMAIL permission, or has the
- * ADD_VOICEMAIL permission and is using a URI that matches
+ * Checks that either the caller has READ_WRITE_ALL_VOICEMAIL permission,
+ * or has the ADD_VOICEMAIL permission and is using a URI that matches
* /voicemail/?source_package=[source-package] where [source-package] is the same as the calling
* package.
*
@@ -391,7 +396,10 @@ public class VoicemailContentProvider extends ContentProvider
* Creates a clause to restrict the selection to the calling provider or null if the caller has
* access to all data.
*/
- private String getPackageRestrictionClause() {
+ private String getPackageRestrictionClause(boolean isQuery) {
+ if (isQuery && mVoicemailPermissions.callerHasFullReadAccess()) {
+ return null;
+ }
if (mVoicemailPermissions.callerHasFullAccess()) {
return null;
}