12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091 |
- package io.nexilis.service.data.rooms
- import android.content.Context
- import androidx.room.Database
- import androidx.room.Room
- import androidx.room.RoomDatabase
- import androidx.room.migration.Migration
- import androidx.sqlite.db.SupportSQLiteDatabase
- import io.nexilis.service.data.daos.*
- import io.nexilis.service.data.entities.*
- @Database(
- // Declare all Entity here..
- entities = [
- Buddy::class,
- CallCenterHistory::class,
- DiscussionForum::class,
- Follow::class,
- Form::class,
- FormItem::class,
- Group::class,
- GroupMember::class,
- Inquiry::class,
- LinkPreview::class,
- Message::class,
- MessageFavorite::class,
- MessageStatus::class,
- MessageSummary::class,
- Prefs::class,
- Pull::class,
- RemoteKey::class,
- WorkingArea::class
- ], version = 1, exportSchema = false
- )
- abstract class ApiRoomDatabase : RoomDatabase() {
- // Declare all Dao here..
- abstract fun buddyDao(): BuddyDao
- abstract fun callCenterHistoryDao(): CallCenterHistoryDao
- abstract fun discussionForumDao(): DiscussionForumDao
- abstract fun followDao(): FollowDao
- abstract fun formDao(): FormDao
- abstract fun formItemDao(): FormItemDao
- abstract fun groupDao(): GroupDao
- abstract fun groupMemberDao(): GroupMemberDao
- abstract fun inquiryDao(): InquiryDao
- abstract fun linkPreviewDao(): LinkPreviewDao
- abstract fun messageDao(): MessageDao
- abstract fun messageStatusDao(): MessageStatusDao
- abstract fun messageSummaryDao(): MessageSummaryDao
- abstract fun prefsDao(): PrefsDao
- abstract fun pullDao(): PullDao
- abstract fun remoteKeyDao(): RemoteKeyDao
- abstract fun workingAreaDao(): WorkingAreaDao
- class ApiDatabaseCallback : Callback() {
- override fun onCreate(db: SupportSQLiteDatabase) {
- super.onCreate(db)
- }
- }
- companion object {
- @Volatile
- private var INSTANCE: ApiRoomDatabase? = null
- fun getDatabase(context: Context): ApiRoomDatabase {
- return INSTANCE ?: synchronized(this) {
- val instance = Room.databaseBuilder(
- context.applicationContext,
- ApiRoomDatabase::class.java,
- "main"
- )
- .addCallback(ApiDatabaseCallback())
- .addMigrations(migration_1_to_2)
- .build()
- INSTANCE = instance
- instance
- }
- }
- private val migration_1_to_2 = object : Migration(1, 2) {
- override fun migrate(db: SupportSQLiteDatabase) {
- db.execSQL("ALTER TABLE `Group` ADD COLUMN `be` TEXT NOT NULL")
- }
- }
- }
- }
|