im trying to change my exiting code of an app that uses a ContentProvider to store data to use a cipher database with SQLCipher.
This is my ContentProvider code:
import net.sqlcipher.database.SQLiteDatabase;
import net.sqlcipher.database.SQLiteOpenHelper;
import net.sqlcipher.database.SQLiteQueryBuilder;
import android.content.ContentProvider;
import android.content.ContentUris;
import android.content.ContentValues;
import android.content.Context;
import android.content.UriMatcher;
import android.database.Cursor;
import android.database.SQLException;
import android.net.Uri;
import android.text.TextUtils;
import android.util.Log;
public class DBAdapter extends ContentProvider {
static final String PROVIDER_NAME =
"com.example.despensa.provider";
static final Uri CONTENT_URI =
Uri.parse("content://"+ PROVIDER_NAME + "/items");
static final int ITEMS = 1;
static final int ITEMS_ID = 2;
private static final UriMatcher uriMatcher;
static{
uriMatcher = new UriMatcher(UriMatcher.NO_MATCH);
uriMatcher.addURI(PROVIDER_NAME, "items", ITEMS);
uriMatcher.addURI(PROVIDER_NAME, "items/#", ITEMS_ID);
}
static final String KEY_ROWID = "_id";
static final String KEY_NAME = "name";
static final String KEY_UNITS = "units";
static final String KEY_WEIGHT = "weight";
static final String TAG = "DBAdapter";
static final String DATABASE_NAME = "Pantry";
static final String DATABASE_TABLE = "items";
static final int DATABASE_VERSION =1;
static final String DATABASE_CREATE =
"create table items (_id integer primary key autoincrement, "
+ "name text not null, units integer not null, weight integer);";
DatabaseHelper DBHelper;
SQLiteDatabase db;
@Override
public boolean onCreate() {
Context context = getContext();
SQLiteDatabase.loadLibs(context);
DBHelper = new DatabaseHelper(context);
db = DBHelper.getWritableDatabase("test123");
return (db == null)? false:true;
}
private static class DatabaseHelper extends SQLiteOpenHelper
{
DatabaseHelper(Context context)
{
super(context, DATABASE_NAME, null, DATABASE_VERSION);
}
@Override
public void onCreate(SQLiteDatabase db)
{
try {
db.execSQL(DATABASE_CREATE);
} catch (SQLException e) {
e.printStackTrace();
}
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion)
{
Log.w(TAG, "Upgrading ....");
db.execSQL("DROP TABLE IF EXISTS items");
onCreate(db);
}
}
.....
But when i run the code, i get following exception.
Could not find class 'net.sqlcipher.database.SQLiteQueryBuilder', referenced from method com.example.despensa.DBAdapter.query
Any advice ? thanks a lot for your help. toni