summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSteve Kondik <shade@chemlab.org>2013-06-12 12:21:15 -0700
committerSteve Kondik <shade@chemlab.org>2013-06-18 15:41:32 -0700
commitc3ad288607c873c90e50ee8ac3d3aa3f5aa0e5e2 (patch)
tree9ae99ca63282128990dc103ca4dee2f4bc155363
parentcb9ff029385e1a6b368585bfe72208eb2601eea5 (diff)
downloadandroid_packages_providers_CalendarProvider-cm-10.1.tar.gz
android_packages_providers_CalendarProvider-cm-10.1.tar.bz2
android_packages_providers_CalendarProvider-cm-10.1.zip
calendar: Privacy Guard supportcm-10.1.3-RC2cm-10.1.3-RC1cm-10.1.3cm-10.1
* Return an empty MemoryCursor for queries on this provider if the calling process has privacy guard enabled. Change-Id: I9f847924ad147a25d877f5f5e3b43eb5146f6804
-rw-r--r--src/com/android/providers/calendar/CalendarProvider2.java25
1 files changed, 25 insertions, 0 deletions
diff --git a/src/com/android/providers/calendar/CalendarProvider2.java b/src/com/android/providers/calendar/CalendarProvider2.java
index d2027ee..810c340 100644
--- a/src/com/android/providers/calendar/CalendarProvider2.java
+++ b/src/com/android/providers/calendar/CalendarProvider2.java
@@ -30,10 +30,12 @@ import android.content.IntentFilter;
import android.content.UriMatcher;
import android.database.Cursor;
import android.database.DatabaseUtils;
+import android.database.MemoryCursor;
import android.database.SQLException;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteQueryBuilder;
import android.net.Uri;
+import android.os.Binder;
import android.os.Handler;
import android.os.Message;
import android.os.Process;
@@ -814,6 +816,20 @@ public class CalendarProvider2 extends SQLiteContentProvider implements OnAccoun
@Override
public Cursor query(Uri uri, String[] projection, String selection, String[] selectionArgs,
String sortOrder) {
+ Cursor c = queryInternal(uri, projection, selection, selectionArgs, sortOrder);
+
+ if (getContext().isPrivacyGuardEnabled()) {
+ Log.d(TAG, "Calendar query from application using privacy guard! pid=" + Binder.getCallingPid());
+ MemoryCursor mc = new MemoryCursor(null, c.getColumnNames());
+ c.close();
+ return mc;
+ }
+
+ return c;
+ }
+
+ private Cursor queryInternal(Uri uri, String[] projection, String selection, String[] selectionArgs,
+ String sortOrder) {
if (Log.isLoggable(TAG, Log.VERBOSE)) {
Log.v(TAG, "query uri - " + uri);
}
@@ -2074,6 +2090,9 @@ public class CalendarProvider2 extends SQLiteContentProvider implements OnAccoun
if (Log.isLoggable(TAG, Log.VERBOSE)) {
Log.v(TAG, "insertInTransaction: " + uri);
}
+ if (getContext().isPrivacyGuardEnabled()) {
+ return null;
+ }
validateUriParameters(uri.getQueryParameterNames());
final int match = sUriMatcher.match(uri);
verifyTransactionAllowed(TRANSACTION_INSERT, uri, values, callerIsSyncAdapter, match,
@@ -2998,6 +3017,9 @@ public class CalendarProvider2 extends SQLiteContentProvider implements OnAccoun
if (Log.isLoggable(TAG, Log.VERBOSE)) {
Log.v(TAG, "deleteInTransaction: " + uri);
}
+ if (getContext().isPrivacyGuardEnabled()) {
+ return 0;
+ }
validateUriParameters(uri.getQueryParameterNames());
final int match = sUriMatcher.match(uri);
verifyTransactionAllowed(TRANSACTION_DELETE, uri, null, callerIsSyncAdapter, match,
@@ -3856,6 +3878,9 @@ public class CalendarProvider2 extends SQLiteContentProvider implements OnAccoun
if (Log.isLoggable(TAG, Log.VERBOSE)) {
Log.v(TAG, "updateInTransaction: " + uri);
}
+ if (getContext().isPrivacyGuardEnabled()) {
+ return 0;
+ }
validateUriParameters(uri.getQueryParameterNames());
final int match = sUriMatcher.match(uri);
verifyTransactionAllowed(TRANSACTION_UPDATE, uri, values, callerIsSyncAdapter, match,