Skip to content

Commit

Permalink
fix android Database class
Browse files Browse the repository at this point in the history
  • Loading branch information
muhamad-rizki committed Apr 19, 2020
1 parent 1ff290e commit 5af04e7
Showing 1 changed file with 11 additions and 7 deletions.
18 changes: 11 additions & 7 deletions native/android/src/main/java/com/nozbe/watermelondb/Database.kt
Expand Up @@ -5,9 +5,10 @@ import android.database.Cursor
import net.sqlcipher.database.SQLiteDatabase
import java.io.File

class Database(private val name: String, private val password: String, private val context: Context) {
class Database(private val name: String, private val password: String?, private val context: Context) {

private val db: SQLiteDatabase by lazy {
SQLiteDatabase.loadLibs(context)
SQLiteDatabase.openOrCreateDatabase(
// TODO: This SUCKS. Seems like Android doesn't like sqlite `?mode=memory&cache=shared` mode. To avoid random breakages, save the file to /tmp, but this is slow.
if (name == ":memory:" || name.contains("mode=memory")) {
Expand All @@ -16,6 +17,7 @@ class Database(private val name: String, private val password: String, private v
} else
// On some systems there is some kind of lock on `/databases` folder ¯\_(ツ)_/¯
context.getDatabasePath("$name.db").path.replace("/databases", ""),
password,
null)
}

Expand Down Expand Up @@ -75,12 +77,14 @@ class Database(private val name: String, private val password: String, private v
private fun getAllTables(): ArrayList<String> {
val allTables: ArrayList<String> = arrayListOf()
rawQuery(Queries.select_tables).use {
it.moveToFirst()
val index = it.getColumnIndex("name")
if (index > -1) {
do {
allTables.add(it.getString(index))
} while (it.moveToNext())
if (it.count > 0) {
it.moveToFirst()
val index = it.getColumnIndex("name")
if (index > -1) {
do {
allTables.add(it.getString(index))
} while (it.moveToNext())
}
}
}
return allTables
Expand Down

0 comments on commit 5af04e7

Please sign in to comment.