MockContentProvider.java revision e70f61b1160e953e5e4d18d30a463fa9ba821779
19066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* 29066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Copyright (C) 2009 The Android Open Source Project 39066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 49066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Licensed under the Apache License, Version 2.0 (the "License"); 59066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * you may not use this file except in compliance with the License. 69066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * You may obtain a copy of the License at 79066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 89066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * http://www.apache.org/licenses/LICENSE-2.0 99066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Unless required by applicable law or agreed to in writing, software 119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * distributed under the License is distributed on an "AS IS" BASIS, 129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * See the License for the specific language governing permissions and 149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * limitations under the License. 159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectpackage android.test.mock; 189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.content.ContentProvider; 209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.content.ContentProviderOperation; 219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.content.ContentProviderResult; 229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.content.ContentValues; 239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.content.Context; 249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.content.EntityIterator; 259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.content.IContentProvider; 269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.content.OperationApplicationException; 279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.content.pm.PathPermission; 289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.content.pm.ProviderInfo; 299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.content.res.AssetFileDescriptor; 309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.database.Cursor; 319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.database.CursorWindow; 329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.database.IBulkCursor; 339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.database.IContentObserver; 349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.net.Uri; 359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.os.IBinder; 36f54a8d7c479485174941c38f151ea7083c658da3Chet Haaseimport android.os.ParcelFileDescriptor; 37f54a8d7c479485174941c38f151ea7083c658da3Chet Haaseimport android.os.RemoteException; 38a18a86b43e40e3c15dcca0ae0148d641be9b25feChet Haase 39f54a8d7c479485174941c38f151ea7083c658da3Chet Haaseimport java.io.FileNotFoundException; 40f54a8d7c479485174941c38f151ea7083c658da3Chet Haaseimport java.util.ArrayList; 41f54a8d7c479485174941c38f151ea7083c658da3Chet Haase 42f54a8d7c479485174941c38f151ea7083c658da3Chet Haase/** 43f54a8d7c479485174941c38f151ea7083c658da3Chet Haase * Mock implementation of ContentProvider. All methods are non-functional and throw 449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * {@link java.lang.UnsupportedOperationException}. Tests can extend this class to 459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * implement behavior needed for tests. 469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectpublic class MockContentProvider extends ContentProvider { 489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /* 499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Note: if you add methods to ContentProvider, you must add similar methods to 509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * MockContentProvider. 519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * IContentProvider that directs all calls to this MockContentProvider. 559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project private class InversionIContentProvider implements IContentProvider { 579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project @SuppressWarnings("unused") 589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public ContentProviderResult[] applyBatch(ArrayList<ContentProviderOperation> operations) 599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project throws RemoteException, OperationApplicationException { 60f54a8d7c479485174941c38f151ea7083c658da3Chet Haase return MockContentProvider.this.applyBatch(operations); 619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project @SuppressWarnings("unused") 649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public int bulkInsert(Uri url, ContentValues[] initialValues) throws RemoteException { 659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return MockContentProvider.this.bulkInsert(url, initialValues); 669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project @SuppressWarnings("unused") 699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public IBulkCursor bulkQuery(Uri url, String[] projection, String selection, 709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project String[] selectionArgs, String sortOrder, IContentObserver observer, 719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project CursorWindow window) throws RemoteException { 729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project throw new UnsupportedOperationException("Must not come here"); 739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 748b0662878eae69ab62e859b07165f086ea65cad5Jean-Baptiste Queru 758b0662878eae69ab62e859b07165f086ea65cad5Jean-Baptiste Queru @SuppressWarnings("unused") 769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public int delete(Uri url, String selection, String[] selectionArgs) 779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project throws RemoteException { 789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return MockContentProvider.this.delete(url, selection, selectionArgs); 798b0662878eae69ab62e859b07165f086ea65cad5Jean-Baptiste Queru } 808b0662878eae69ab62e859b07165f086ea65cad5Jean-Baptiste Queru 819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project @SuppressWarnings("unused") 829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public String getType(Uri url) throws RemoteException { 839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return MockContentProvider.this.getType(url); 849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project @SuppressWarnings("unused") 879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public Uri insert(Uri url, ContentValues initialValues) throws RemoteException { 889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return MockContentProvider.this.insert(url, initialValues); 899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 908b0662878eae69ab62e859b07165f086ea65cad5Jean-Baptiste Queru 919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project @SuppressWarnings("unused") 929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public AssetFileDescriptor openAssetFile(Uri url, String mode) throws RemoteException, 93f54a8d7c479485174941c38f151ea7083c658da3Chet Haase FileNotFoundException { 948b0662878eae69ab62e859b07165f086ea65cad5Jean-Baptiste Queru return MockContentProvider.this.openAssetFile(url, mode); 958b0662878eae69ab62e859b07165f086ea65cad5Jean-Baptiste Queru } 96f54a8d7c479485174941c38f151ea7083c658da3Chet Haase 979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project @SuppressWarnings("unused") 98f54a8d7c479485174941c38f151ea7083c658da3Chet Haase public ParcelFileDescriptor openFile(Uri url, String mode) throws RemoteException, 999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project FileNotFoundException { 1008b0662878eae69ab62e859b07165f086ea65cad5Jean-Baptiste Queru return MockContentProvider.this.openFile(url, mode); 1019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 1029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project @SuppressWarnings("unused") 1049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public Cursor query(Uri url, String[] projection, String selection, String[] selectionArgs, 1059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project String sortOrder) throws RemoteException { 1069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return MockContentProvider.this.query(url, projection, selection, 1079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project selectionArgs, sortOrder); 1089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 1099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project @SuppressWarnings("unused") 111f54a8d7c479485174941c38f151ea7083c658da3Chet Haase public int update(Uri url, ContentValues values, String selection, String[] selectionArgs) 1129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project throws RemoteException { 1139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return MockContentProvider.this.update(url, values, selection, selectionArgs); 1149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 1159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public IBinder asBinder() { 1179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project throw new UnsupportedOperationException(); 1189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 1199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 1219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project private final InversionIContentProvider mIContentProvider = new InversionIContentProvider(); 1229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 1249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * A constructor using {@link MockContext} instance as a Context in it. 1259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 1269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project protected MockContentProvider() { 1279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project super(new MockContext(), "", "", null); 1289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 1299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 131f54a8d7c479485174941c38f151ea7083c658da3Chet Haase * A constructor accepting a Context instance, which is supposed to be the subclasss of 132f54a8d7c479485174941c38f151ea7083c658da3Chet Haase * {@link MockContext}. 133f54a8d7c479485174941c38f151ea7083c658da3Chet Haase */ 134f54a8d7c479485174941c38f151ea7083c658da3Chet Haase public MockContentProvider(Context context) { 135f54a8d7c479485174941c38f151ea7083c658da3Chet Haase super(context, "", "", null); 1362d46fcc669ff5efe365e9be435ab9e5c5a304939Chet Haase } 1372d46fcc669ff5efe365e9be435ab9e5c5a304939Chet Haase 1382d46fcc669ff5efe365e9be435ab9e5c5a304939Chet Haase /** 1392d46fcc669ff5efe365e9be435ab9e5c5a304939Chet Haase * A constructor which initialize four member variables which 1402d46fcc669ff5efe365e9be435ab9e5c5a304939Chet Haase * {@link android.content.ContentProvider} have internally. 1412d46fcc669ff5efe365e9be435ab9e5c5a304939Chet Haase * 1422d46fcc669ff5efe365e9be435ab9e5c5a304939Chet Haase * @param context A Context object which should be some mock instance (like the 1432d46fcc669ff5efe365e9be435ab9e5c5a304939Chet Haase * instance of {@link android.test.mock.MockContext}). 1448b0662878eae69ab62e859b07165f086ea65cad5Jean-Baptiste Queru * @param readPermission The read permision you want this instance should have in the 1458b0662878eae69ab62e859b07165f086ea65cad5Jean-Baptiste Queru * test, which is available via {@link #getReadPermission()}. 1469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param writePermission The write permission you want this instance should have 1479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * in the test, which is available via {@link #getWritePermission()}. 1489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param pathPermissions The PathPermissions you want this instance should have 1499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * in the test, which is available via {@link #getPathPermissions()}. 1509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 1519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public MockContentProvider(Context context, 1528b0662878eae69ab62e859b07165f086ea65cad5Jean-Baptiste Queru String readPermission, 1538b0662878eae69ab62e859b07165f086ea65cad5Jean-Baptiste Queru String writePermission, 1549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project PathPermission[] pathPermissions) { 1559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project super(context, readPermission, writePermission, pathPermissions); 1569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 1578b0662878eae69ab62e859b07165f086ea65cad5Jean-Baptiste Queru 1588b0662878eae69ab62e859b07165f086ea65cad5Jean-Baptiste Queru @Override 1599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public int delete(Uri uri, String selection, String[] selectionArgs) { 1609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project throw new UnsupportedOperationException("unimplemented mock method"); 1619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 1629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project @Override 1649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public String getType(Uri uri) { 1659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project throw new UnsupportedOperationException("unimplemented mock method"); 1668b0662878eae69ab62e859b07165f086ea65cad5Jean-Baptiste Queru } 1678b0662878eae69ab62e859b07165f086ea65cad5Jean-Baptiste Queru 1688b0662878eae69ab62e859b07165f086ea65cad5Jean-Baptiste Queru @Override 1698b0662878eae69ab62e859b07165f086ea65cad5Jean-Baptiste Queru public Uri insert(Uri uri, ContentValues values) { 1709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project throw new UnsupportedOperationException("unimplemented mock method"); 1719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 1728b0662878eae69ab62e859b07165f086ea65cad5Jean-Baptiste Queru 1738b0662878eae69ab62e859b07165f086ea65cad5Jean-Baptiste Queru @Override 1749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public boolean onCreate() { 1759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project throw new UnsupportedOperationException("unimplemented mock method"); 1769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 1779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project @Override 1799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public Cursor query(Uri uri, String[] projection, String selection, String[] selectionArgs, 1808b0662878eae69ab62e859b07165f086ea65cad5Jean-Baptiste Queru String sortOrder) { 1819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project throw new UnsupportedOperationException("unimplemented mock method"); 1829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 1839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project @Override 1859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public int update(Uri uri, ContentValues values, String selection, String[] selectionArgs) { 1869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project throw new UnsupportedOperationException("unimplemented mock method"); 1879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 1889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 1909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * If you're reluctant to implement this manually, please just call super.bulkInsert(). 1919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 1929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project @Override 1939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public int bulkInsert(Uri uri, ContentValues[] values) { 1948b0662878eae69ab62e859b07165f086ea65cad5Jean-Baptiste Queru throw new UnsupportedOperationException("unimplemented mock method"); 1959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 1969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project @Override 1989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void attachInfo(Context context, ProviderInfo info) { 1999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project throw new UnsupportedOperationException("unimplemented mock method"); 2009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 2019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 2029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project @Override 2039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public ContentProviderResult[] applyBatch(ArrayList<ContentProviderOperation> operations) { 2049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project throw new UnsupportedOperationException("unimplemented mock method"); 2059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 2069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 2079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 2089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Returns IContentProvider which calls back same methods in this class. 2098b0662878eae69ab62e859b07165f086ea65cad5Jean-Baptiste Queru * By overriding this class, we avoid the mechanism hidden behind ContentProvider 2109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * (IPC, etc.) 2119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 2129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @hide 2139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 2149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project @Override 2159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public final IContentProvider getIContentProvider() { 2169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return mIContentProvider; 2179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 2189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project} 2199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project