Skip to content

Commit aec6435

Browse files
Update to use SQLCipher for Android 4.4.1
1 parent d0d6175 commit aec6435

18 files changed

+295
-27
lines changed

app/build.gradle

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -22,13 +22,12 @@ dependencies {
2222
// For testing JAR-based distribution:
2323
// implementation files('libs/sqlcipher.jar')
2424

25-
// For testing local AAR package:
26-
// implementation (name: 'android-database-sqlcipher-4.4.0-release', ext: 'aar')
25+
// For testing local AAR packages:
26+
//implementation (name: 'android-database-sqlcipher-4.4.1-release', ext: 'aar')
2727

28-
// For testing on remote AAR reference:
29-
implementation 'net.zetetic:android-database-sqlcipher:4.4.0@aar'
28+
// For testing on remote AAR references:
29+
implementation 'net.zetetic:android-database-sqlcipher:4.4.1@aar'
3030

31-
// Mandatory dependency:
3231
implementation "androidx.sqlite:sqlite:2.0.1"
3332

3433
// For Room tests:
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
package net.zetetic;
2+
import android.util.Log;
3+
4+
import net.sqlcipher.database.SQLiteDatabase;
5+
6+
public class NativeInitializer {
7+
8+
static {
9+
Log.i("NativeInitializer", "Before loadLibs");
10+
SQLiteDatabase.loadLibs(ZeteticApplication.getInstance());
11+
Log.i("NativeInitializer", "After loadLibs");
12+
}
13+
14+
public static void initialize(){}
15+
16+
}

app/src/main/java/net/zetetic/ZeteticApplication.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,12 @@ public static ZeteticApplication getInstance() {
2828
return instance;
2929
}
3030

31+
@Override
32+
public void onCreate() {
33+
super.onCreate();
34+
NativeInitializer.initialize();
35+
}
36+
3137
public void setCurrentActivity(Activity activity) {
3238
this.activity = activity;
3339
}

app/src/main/java/net/zetetic/ZeteticContentProvider.java

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -28,11 +28,8 @@ public boolean onCreate() {
2828

2929
@Override
3030
public Cursor query(Uri uri, String[] projection, String selection, String[] selectionArgs, String sortOrder) {
31-
32-
SQLiteDatabase.loadLibs(ZeteticApplication.getInstance());
3331
File databasePath = ZeteticApplication.getInstance().getDatabasePath(ZeteticApplication.DATABASE_NAME);
3432
database = ZeteticApplication.getInstance().createDatabase(databasePath, null);
35-
3633
createDatabaseWithData(database);
3734
SQLiteQueryBuilder builder = new SQLiteQueryBuilder();
3835
builder.setTables("t1");

app/src/main/java/net/zetetic/ZeteticContentProvider2.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,6 @@ public boolean onCreate() {
2929

3030
@Override
3131
public Cursor query(Uri uri, String[] projection, String selection, String[] selectionArgs, String sortOrder) {
32-
SQLiteDatabase.loadLibs(ZeteticApplication.getInstance());
3332
File databasePath = ZeteticApplication.getInstance().getDatabasePath(DATABASE_NAME);
3433
database = ZeteticApplication.getInstance().createDatabase(databasePath);
3534

app/src/main/java/net/zetetic/activities/TestScrollingCursorActivity.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -93,7 +93,6 @@ public void run() {
9393

9494
void initializeEnvironment(){
9595
try{
96-
SQLiteDatabase.loadLibs(this);
9796
File databasePath = getDatabasePath(databaseFilename);
9897
ZeteticApplication.getInstance().extractAssetToDatabaseDirectory(databaseFilename);
9998
database = SQLiteDatabase.openDatabase(databasePath.getAbsolutePath(),

app/src/main/java/net/zetetic/tests/JavaClientLibraryVersionTest.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,10 @@
22

33
import net.sqlcipher.database.SQLiteDatabase;
44

5-
public class JavaClientLibraryVersionTest extends SQLCipherTest {
5+
public class
6+
JavaClientLibraryVersionTest extends SQLCipherTest {
67

7-
private final String EXPECTED_SQLCIPHER_ANDROID_VERSION = "4.4.0";
8+
private final String EXPECTED_SQLCIPHER_ANDROID_VERSION = "4.4.1";
89

910
@Override
1011
public boolean execute(SQLiteDatabase database) {
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
package net.zetetic.tests;
2+
3+
import net.sqlcipher.Cursor;
4+
import net.sqlcipher.database.SQLiteDatabase;
5+
6+
public class JsonCastTest extends SQLCipherTest {
7+
@Override
8+
public boolean execute(SQLiteDatabase database) {
9+
String name = "Bob Smith", queryName = "";
10+
String query = String.format("select cast(json_extract('{\"user\":\"%s\"}','$.user') as TEXT);", name);
11+
Cursor cursor = database.rawQuery(query, new Object[]{});
12+
if(cursor != null && cursor.moveToFirst()){
13+
queryName = cursor.getString(0);
14+
cursor.close();
15+
}
16+
return name.equals(queryName);
17+
}
18+
19+
@Override
20+
public String getName() {
21+
return "JSON cast test";
22+
}
23+
}

app/src/main/java/net/zetetic/tests/PragmaCipherVersionTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66

77
public class PragmaCipherVersionTest extends SQLCipherTest {
88

9-
private final String CURRENT_CIPHER_VERSION = "4.4.0";
9+
private final String CURRENT_CIPHER_VERSION = "4.4.1";
1010

1111
@Override
1212
public boolean execute(SQLiteDatabase database) {

app/src/main/java/net/zetetic/tests/TestSuiteRunner.java

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -49,8 +49,6 @@ protected void onPostExecute(Void aVoid) {
4949
}
5050

5151
private void runSuite() {
52-
53-
SQLiteDatabase.loadLibs(ZeteticApplication.getInstance());
5452
CursorWindowAllocation defaultAllocation = CursorWindow.getCursorWindowAllocation();
5553
for (SQLCipherTest test : getTestsToRun()) {
5654
try {
@@ -71,10 +69,11 @@ private void runSuite() {
7169

7270
private List<SQLCipherTest> getTestsToRun() {
7371
List<SQLCipherTest> tests = new ArrayList<>();
72+
tests.add(new JsonCastTest());
7473
tests.add(new SimpleQueryTest());
75-
//tests.add(new DefaultCursorWindowAllocationTest());
74+
tests.add(new DefaultCursorWindowAllocationTest());
7675

77-
//tests.add(new DeleteTableWithNullWhereArgsTest());
76+
tests.add(new DeleteTableWithNullWhereArgsTest());
7877
tests.add(new LoopingInsertTest());
7978
tests.add(new FIPSTest());
8079
tests.add(new PragmaCipherVersionTest());
@@ -106,7 +105,7 @@ private List<SQLCipherTest> getTestsToRun() {
106105
tests.add(new TransactionNonExclusiveTest());
107106
tests.add(new TransactionWithListenerTest());
108107
tests.add(new LargeDatabaseCursorAccessTest());
109-
108+
110109
//// tests.add(new TimeLargeByteArrayQueryTest());
111110

112111
tests.add(new QueryLimitTest());

0 commit comments

Comments
 (0)