Merge pull request #11 from gedoor/atbest

Update database
pull/12/head
atbest 6 years ago committed by GitHub
commit 696dd1b67c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 17
      app/build.gradle
  2. 52
      app/src/main/java/io/legado/app/data/AppDatabase.kt
  3. 19
      app/src/main/java/io/legado/app/data/dao/BookDao.kt
  4. 7
      app/src/main/java/io/legado/app/data/entities/Book.kt

@ -3,6 +3,10 @@ apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'
apply plugin: 'kotlin-kapt'
androidExtensions {
experimental = true
}
android {
compileSdkVersion 28
defaultConfig {
@ -19,6 +23,19 @@ android {
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
}
compileOptions {
sourceCompatibility = '1.8'
targetCompatibility = '1.8'
}
}
kapt {
arguments {
arg("room.schemaLocation", "$projectDir/schemas")
}
}
dependencies {

@ -0,0 +1,52 @@
package io.legado.app.data
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.legado.app.data.dao.BookDao
import io.legado.app.data.entities.Book
@Database(entities = [Book::class], version = 1, exportSchema = true)
// @TypeConverters(Converters::class)
abstract class AppDatabase : RoomDatabase() {
companion object {
private const val DATABASE_NAME = "legado.db"
private val MIGRATION_1_2: Migration = object : Migration(1, 2) {
override fun migrate(database: SupportSQLiteDatabase) {
database.run {
// execSQL("ALTER TABLE parsers ADD COLUMN fulltextScript TEXT")
// execSQL("ALTER TABLE feeds ADD COLUMN lastUpdateTime INTEGER NOT NULL DEFAULT 0")
// execSQL("DELETE FROM entries WHERE rowid NOT IN (SELECT MIN(rowid) FROM entries GROUP BY link)")
// execSQL("CREATE UNIQUE INDEX index_entries_link ON entries(link)")
}
}
}
fun createDatabase(context: Context): AppDatabase {
return Room.databaseBuilder(context.applicationContext, AppDatabase::class.java, DATABASE_NAME)
// .addMigrations(MIGRATION_1_2)
// .addMigrations(MIGRATION_2_3)
// .addMigrations(MIGRATION_3_4)
// .addMigrations(MIGRATION_4_5)
// .addMigrations(MIGRATION_5_6)
.addCallback(object : Callback() {
override fun onCreate(db: SupportSQLiteDatabase) {
super.onCreate(db)
}
})
.build()
}
}
abstract fun bookDao(): BookDao
}

@ -0,0 +1,19 @@
package io.legado.app.data.dao
import androidx.lifecycle.LiveData
import androidx.paging.DataSource
import androidx.room.Dao
import androidx.room.Query
import io.legado.app.data.entities.Book
@Dao
interface BookDao {
@Query("SELECT * FROM books WHERE `group` = :group")
fun observeByGroup(group: Int): DataSource.Factory<Int, Book>
@Query("SELECT url FROM books WHERE `group` = :group")
fun observeUrlsByGroup(group: Int): LiveData<List<String>>
}

@ -1,9 +1,9 @@
package io.legado.app.data.entities
import android.annotation.SuppressLint
import android.os.Parcelable
import androidx.room.*
import kotlinx.android.parcel.Parcelize
import java.util.*
@Parcelize
@Entity(tableName = "books",
@ -18,9 +18,10 @@ data class Book(@PrimaryKey
var introduction: String? = null,
var charset: String? = null,
var type: Int = 0, // 0: text, 1: audio
var group: Int = 0, // fenqu
var latestChapterName: String? = null,
var lastUpdateTime: Date? = null,
var latestChapterTime: Date? = null,
var lastUpdateTime: Long? = null,
var latestChapterTime: Long? = null,
var durChapterIndex: Int = 0,
var durChapterPage: Int = 0,
var totalChapterNum: Int = 0,

Loading…
Cancel
Save