121 lines
4.0 KiB
Java
121 lines
4.0 KiB
Java
package org.greenrobot.greendao.database;
|
|
|
|
import android.annotation.SuppressLint;
|
|
import android.content.Context;
|
|
import android.database.DatabaseErrorHandler;
|
|
import android.database.sqlite.SQLiteDatabase;
|
|
import android.database.sqlite.SQLiteOpenHelper;
|
|
import org.greenrobot.greendao.DaoException;
|
|
|
|
/* loaded from: classes2.dex */
|
|
public abstract class DatabaseOpenHelper extends SQLiteOpenHelper {
|
|
private final Context context;
|
|
private EncryptedHelper encryptedHelper;
|
|
private boolean loadSQLCipherNativeLibs;
|
|
private final String name;
|
|
private final int version;
|
|
|
|
interface EncryptedHelper {
|
|
Database a(String str);
|
|
|
|
Database a(char[] cArr);
|
|
|
|
Database b(String str);
|
|
|
|
Database b(char[] cArr);
|
|
}
|
|
|
|
public DatabaseOpenHelper(Context context, String str, int i) {
|
|
this(context, str, null, i);
|
|
}
|
|
|
|
private EncryptedHelper checkEncryptedHelper() {
|
|
if (this.encryptedHelper == null) {
|
|
try {
|
|
Class.forName("net.sqlcipher.database.SQLiteOpenHelper");
|
|
try {
|
|
this.encryptedHelper = (EncryptedHelper) Class.forName("org.greenrobot.greendao.database.SqlCipherEncryptedHelper").getConstructor(DatabaseOpenHelper.class, Context.class, String.class, Integer.TYPE, Boolean.TYPE).newInstance(this, this.context, this.name, Integer.valueOf(this.version), Boolean.valueOf(this.loadSQLCipherNativeLibs));
|
|
} catch (Exception e) {
|
|
throw new DaoException(e);
|
|
}
|
|
} catch (ClassNotFoundException unused) {
|
|
throw new DaoException("Using an encrypted database requires SQLCipher, make sure to add it to dependencies: https://greenrobot.org/greendao/documentation/database-encryption/");
|
|
}
|
|
}
|
|
return this.encryptedHelper;
|
|
}
|
|
|
|
public Database getEncryptedReadableDb(String str) {
|
|
return checkEncryptedHelper().a(str);
|
|
}
|
|
|
|
public Database getEncryptedWritableDb(String str) {
|
|
return checkEncryptedHelper().b(str);
|
|
}
|
|
|
|
public Database getReadableDb() {
|
|
return wrap(getReadableDatabase());
|
|
}
|
|
|
|
public Database getWritableDb() {
|
|
return wrap(getWritableDatabase());
|
|
}
|
|
|
|
@Override // android.database.sqlite.SQLiteOpenHelper
|
|
public void onCreate(SQLiteDatabase sQLiteDatabase) {
|
|
onCreate(wrap(sQLiteDatabase));
|
|
}
|
|
|
|
public void onCreate(Database database) {
|
|
}
|
|
|
|
@Override // android.database.sqlite.SQLiteOpenHelper
|
|
public void onOpen(SQLiteDatabase sQLiteDatabase) {
|
|
onOpen(wrap(sQLiteDatabase));
|
|
}
|
|
|
|
public void onOpen(Database database) {
|
|
}
|
|
|
|
@Override // android.database.sqlite.SQLiteOpenHelper
|
|
public void onUpgrade(SQLiteDatabase sQLiteDatabase, int i, int i2) {
|
|
onUpgrade(wrap(sQLiteDatabase), i, i2);
|
|
}
|
|
|
|
public void onUpgrade(Database database, int i, int i2) {
|
|
}
|
|
|
|
public void setLoadSQLCipherNativeLibs(boolean z) {
|
|
this.loadSQLCipherNativeLibs = z;
|
|
}
|
|
|
|
protected Database wrap(SQLiteDatabase sQLiteDatabase) {
|
|
return new StandardDatabase(sQLiteDatabase);
|
|
}
|
|
|
|
public DatabaseOpenHelper(Context context, String str, SQLiteDatabase.CursorFactory cursorFactory, int i) {
|
|
super(context, str, cursorFactory, i);
|
|
this.loadSQLCipherNativeLibs = true;
|
|
this.context = context;
|
|
this.name = str;
|
|
this.version = i;
|
|
}
|
|
|
|
public Database getEncryptedReadableDb(char[] cArr) {
|
|
return checkEncryptedHelper().a(cArr);
|
|
}
|
|
|
|
public Database getEncryptedWritableDb(char[] cArr) {
|
|
return checkEncryptedHelper().b(cArr);
|
|
}
|
|
|
|
@SuppressLint({"NewApi"})
|
|
public DatabaseOpenHelper(Context context, String str, SQLiteDatabase.CursorFactory cursorFactory, int i, DatabaseErrorHandler databaseErrorHandler) {
|
|
super(context, str, cursorFactory, i, databaseErrorHandler);
|
|
this.loadSQLCipherNativeLibs = true;
|
|
this.context = context;
|
|
this.name = str;
|
|
this.version = i;
|
|
}
|
|
}
|