package org.ohmage.db.test;
import org.ohmage.db.DbContract;
import android.app.Application;
import android.content.ContentProviderClient;
import android.content.ContentProviderOperation;
import android.content.ContentProviderResult;
import android.content.ContentValues;
import android.content.OperationApplicationException;
import android.database.Cursor;
import android.net.Uri;
import android.os.RemoteException;
import android.test.mock.MockContentProvider;
import android.test.mock.MockContentResolver;
import java.util.ArrayList;
public class DelegatingMockContentProvider extends MockContentProvider {
private final ContentProviderClient mProvider;
public DelegatingMockContentProvider(Application application, String name) {
mProvider = application.getContentResolver().acquireContentProviderClient(name);
}
@Override
public int delete(Uri uri, String selection, String[] selectionArgs) {
try {
return mProvider.delete(uri, selection, selectionArgs);
} catch (RemoteException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return 0;
}
@Override
public String getType(Uri uri) {
try {
return mProvider.getType(uri);
} catch (RemoteException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return null;
}
@Override
public Uri insert(Uri uri, ContentValues values) {
try {
return mProvider.insert(uri, values);
} catch (RemoteException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return uri;
}
@Override
public Cursor query(Uri uri, String[] projection, String selection, String[] selectionArgs, String sortOrder) {
try {
return mProvider.query(uri, projection, selection, selectionArgs, sortOrder);
} catch (RemoteException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return null;
}
@Override
public int update(Uri uri, ContentValues values, String selection, String[] selectionArgs) {
try {
return mProvider.update(uri, values, selection, selectionArgs);
} catch (RemoteException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return 0;
}
/**
* If you're reluctant to implement this manually, please just call
* super.bulkInsert().
*/
@Override
public int bulkInsert(Uri uri, ContentValues[] values) {
try {
mProvider.bulkInsert(uri, values);
} catch (RemoteException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return 0;
}
@Override
public ContentProviderResult[] applyBatch(ArrayList<ContentProviderOperation> operations) {
try {
return mProvider.applyBatch(operations);
} catch (RemoteException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (OperationApplicationException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return null;
}
public void addToContentResolver(MockContentResolver resolver) {
resolver.addProvider(DbContract.CONTENT_AUTHORITY, this);
}
}