package org.commcare.models.legacy; import android.database.Cursor; import android.database.sqlite.SQLiteCursor; import android.database.sqlite.SQLiteCursorDriver; import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteDatabase.CursorFactory; import android.database.sqlite.SQLiteQuery; import org.commcare.models.encryption.CipherPool; import org.commcare.modern.models.EncryptedModel; import java.util.Hashtable; /** * @author ctsims */ public class LegacyCommCareDBCursorFactory implements CursorFactory { private Hashtable<String, EncryptedModel> models; public LegacyCommCareDBCursorFactory(Hashtable<String, EncryptedModel> models) { this.models = models; } @Override public Cursor newCursor(SQLiteDatabase db, SQLiteCursorDriver masterQuery, String editTable, SQLiteQuery query) { if (models == null || !models.containsKey(editTable)) { return new SQLiteCursor(db, masterQuery, editTable, query); } else { EncryptedModel model = models.get(editTable); return new DecryptingCursor(db, masterQuery, editTable, query, model, getCipherPool()); } } protected CipherPool getCipherPool() { return null; } }