summaryrefslogtreecommitdiff
path: root/test-mock
diff options
context:
space:
mode:
author Ashish Kumar <akgaurav@google.com> 2023-02-13 14:44:16 +0000
committer Ashish Kumar Gaurav <akgaurav@google.com> 2023-02-17 18:20:24 +0000
commit0ec406570d05cfe01db6da72b15b1282cfb794e6 (patch)
treed199a9896936488ebf46cdb97567c0ad15603891 /test-mock
parent4526d3fb6fc9672e0d1cbbd620292a7af421cb02 (diff)
Added a new api ContentProvider#getTypeAnonymous
- When an app is unable to acquire IContentProvider in contentResolver#getType, they can only call getTypeAnonymous via activityManagerService. - default getTypeUnchecked returns getType (to ensure less breaking) - getType calls are protected by readPermission. - updated logging of getType calls without readPermisison. Bug: b/161370118 Test: Build, manual test and logging Change-Id: Ia5fe69061de36ed70d93b30754d68b63ad791c83
Diffstat (limited to 'test-mock')
-rw-r--r--test-mock/src/android/test/mock/MockContentProvider.java27
-rw-r--r--test-mock/src/android/test/mock/MockIContentProvider.java20
2 files changed, 42 insertions, 5 deletions
diff --git a/test-mock/src/android/test/mock/MockContentProvider.java b/test-mock/src/android/test/mock/MockContentProvider.java
index 7be42f4f36f5..7f084f896e3f 100644
--- a/test-mock/src/android/test/mock/MockContentProvider.java
+++ b/test-mock/src/android/test/mock/MockContentProvider.java
@@ -80,16 +80,22 @@ public class MockContentProvider extends ContentProvider {
}
@Override
- public String getType(Uri url) throws RemoteException {
+ public String getType(@NonNull AttributionSource attributionSource,
+ Uri url) throws RemoteException {
return MockContentProvider.this.getType(url);
}
@Override
- public void getTypeAsync(Uri uri, RemoteCallback callback) throws RemoteException {
+ public void getTypeAsync(@NonNull AttributionSource attributionSource,
+ Uri uri, RemoteCallback callback) throws RemoteException {
MockContentProvider.this.getTypeAsync(uri, callback);
}
@Override
+ public void getTypeAnonymousAsync(Uri uri, RemoteCallback callback) throws RemoteException {
+ MockContentProvider.this.getTypeAnonymousAsync(uri, callback);
+ }
+ @Override
public Uri insert(@NonNull AttributionSource attributionSource, Uri url,
ContentValues initialValues, Bundle extras) throws RemoteException {
return MockContentProvider.this.insert(url, initialValues, extras);
@@ -247,6 +253,23 @@ public class MockContentProvider extends ContentProvider {
}
@Override
+ public String getTypeAnonymous(Uri uri) {
+ throw new UnsupportedOperationException("unimplemented mock method");
+ }
+
+ /**
+ * @hide
+ */
+ @SuppressWarnings("deprecation")
+ public void getTypeAnonymousAsync(Uri uri, RemoteCallback remoteCallback) {
+ AsyncTask.SERIAL_EXECUTOR.execute(() -> {
+ final Bundle bundle = new Bundle();
+ bundle.putString(ContentResolver.REMOTE_CALLBACK_RESULT, getTypeAnonymous(uri));
+ remoteCallback.sendResult(bundle);
+ });
+ }
+
+ @Override
public Uri insert(Uri uri, ContentValues values) {
throw new UnsupportedOperationException("unimplemented mock method");
}
diff --git a/test-mock/src/android/test/mock/MockIContentProvider.java b/test-mock/src/android/test/mock/MockIContentProvider.java
index b81c70704d79..bb2996a2cb40 100644
--- a/test-mock/src/android/test/mock/MockIContentProvider.java
+++ b/test-mock/src/android/test/mock/MockIContentProvider.java
@@ -61,16 +61,30 @@ public class MockIContentProvider implements IContentProvider {
}
@Override
- public String getType(Uri url) {
+ public String getType(@NonNull AttributionSource attributionSource, Uri url) {
throw new UnsupportedOperationException("unimplemented mock method");
}
@Override
@SuppressWarnings("deprecation")
- public void getTypeAsync(Uri uri, RemoteCallback remoteCallback) {
+ public void getTypeAsync(@NonNull AttributionSource attributionSource,
+ Uri uri, RemoteCallback remoteCallback) {
AsyncTask.SERIAL_EXECUTOR.execute(() -> {
final Bundle bundle = new Bundle();
- bundle.putString(ContentResolver.REMOTE_CALLBACK_RESULT, getType(uri));
+ bundle.putString(ContentResolver.REMOTE_CALLBACK_RESULT, getType(attributionSource,
+ uri));
+ remoteCallback.sendResult(bundle);
+ });
+ }
+ public String getTypeAnonymous(Uri url) {
+ throw new UnsupportedOperationException("unimplemented mock method");
+ }
+ @Override
+ @SuppressWarnings("deprecation")
+ public void getTypeAnonymousAsync(Uri uri, RemoteCallback remoteCallback) {
+ AsyncTask.SERIAL_EXECUTOR.execute(() -> {
+ final Bundle bundle = new Bundle();
+ bundle.putString(ContentResolver.REMOTE_CALLBACK_RESULT, getTypeAnonymous(uri));
remoteCallback.sendResult(bundle);
});
}