Last active
June 26, 2018 14:34
-
-
Save nesk/47cf42dd1a319139dd2347e2b99686e4 to your computer and use it in GitHub Desktop.
Android pre-populated database (installing on read)
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package com.example.example | |
// ... | |
class ActsDbHelper(val context: Context) : SQLiteOpenHelper(context, DATABASE_NAME, null, DATABASE_VERSION) { | |
// private val preferences: SharedPreferences = ... | |
private fun installedDatabaseIsOutdated(): Boolean { | |
// ... | |
} | |
private fun writeDatabaseVersionInPreferences() { | |
// ... | |
} | |
private fun installDatabaseFromAssets() { | |
// ... | |
} | |
@Synchronized | |
private fun installOrUpdateIfNecessary() { | |
if (installedDatabaseIsOutdated()) { | |
context.deleteDatabase(DATABASE_NAME) | |
installDatabaseFromAssets() | |
writeDatabaseVersionInPreferences() | |
} | |
} | |
override fun getWritableDatabase(): SQLiteDatabase { | |
throw RuntimeException("The $DATABASE_NAME database is not writable.") | |
} | |
override fun getReadableDatabase(): SQLiteDatabase { | |
installOrUpdateIfNecessary() | |
return super.getReadableDatabase() | |
} | |
override fun onCreate(db: SQLiteDatabase?) { | |
// Nothing to do | |
} | |
override fun onUpgrade(db: SQLiteDatabase?, oldVersion: Int, newVersion: Int) { | |
// Nothing to do | |
} | |
companion object { | |
// ... | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment