diff options
| author | Steve Kondik <shade@chemlab.org> | 2013-06-12 12:21:15 -0700 |
|---|---|---|
| committer | Steve Kondik <shade@chemlab.org> | 2013-06-18 15:41:32 -0700 |
| commit | c3ad288607c873c90e50ee8ac3d3aa3f5aa0e5e2 (patch) | |
| tree | 9ae99ca63282128990dc103ca4dee2f4bc155363 | |
| parent | cb9ff029385e1a6b368585bfe72208eb2601eea5 (diff) | |
| download | android_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.java | 25 |
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, |
