Move CookiesDao to dao package
This commit is contained in:
1 parent
3734d0c585
commit
6246d01247
8 files changed
+78
-71
No files matched your search
File renamed without changes.
File renamed without changes.
@@ -27,7 +27,7 @@ import java.util.Collections
|
||||
import java.util.regex.Pattern
|
||||
|
||||
object EhCookieStore : CookieJar {
|
||||
private val db: CookieDatabase = CookieDatabase(EhApplication.application, "okhttp3-cookie.db")
|
||||
private val db: CookieDatabase = CookieDatabase(EhApplication.application)
|
||||
private val map: MutableMap<String, CookieSet> = db.allCookies
|
||||
|
||||
fun signOut() {
|
||||
|
||||
@@ -0,0 +1,30 @@
|
||||
package com.hippo.ehviewer.dao
|
||||
|
||||
import androidx.room.ColumnInfo
|
||||
import androidx.room.Entity
|
||||
import androidx.room.PrimaryKey
|
||||
|
||||
@Entity(tableName = "OK_HTTP_3_COOKIE")
|
||||
data class Cookie(
|
||||
@ColumnInfo(name = "NAME")
|
||||
var name: String,
|
||||
@ColumnInfo(name = "VALUE")
|
||||
var value: String,
|
||||
@ColumnInfo(name = "EXPIRES_AT")
|
||||
var expiresAt: Long,
|
||||
@ColumnInfo(name = "DOMAIN")
|
||||
var domain: String,
|
||||
@ColumnInfo(name = "PATH")
|
||||
var path: String,
|
||||
@ColumnInfo(name = "SECURE")
|
||||
var secure: Boolean,
|
||||
@ColumnInfo(name = "HTTP_ONLY")
|
||||
var httpOnly: Boolean,
|
||||
@ColumnInfo(name = "PERSISTENT")
|
||||
var persistent: Boolean,
|
||||
@ColumnInfo(name = "HOST_ONLY")
|
||||
var hostOnly: Boolean,
|
||||
@PrimaryKey
|
||||
@ColumnInfo(name = "_id")
|
||||
var id: Long?,
|
||||
)
|
||||
@@ -0,0 +1,22 @@
|
||||
package com.hippo.ehviewer.dao
|
||||
|
||||
import androidx.room.Dao
|
||||
import androidx.room.Delete
|
||||
import androidx.room.Insert
|
||||
import androidx.room.Query
|
||||
import androidx.room.Update
|
||||
|
||||
@Dao
|
||||
interface CookiesDao {
|
||||
@Query("SELECT * FROM OK_HTTP_3_COOKIE")
|
||||
fun list(): List<Cookie>
|
||||
|
||||
@Delete
|
||||
fun delete(cookie: Cookie)
|
||||
|
||||
@Insert
|
||||
fun insert(cookie: Cookie): Long
|
||||
|
||||
@Update
|
||||
fun update(cookie: Cookie)
|
||||
}
|
||||
@@ -1,6 +1,7 @@
|
||||
package com.hippo.ehviewer.dao
|
||||
|
||||
import android.content.Context
|
||||
import androidx.room.AutoMigration
|
||||
import androidx.room.Database
|
||||
import androidx.room.Room
|
||||
import androidx.room.RoomDatabase
|
||||
@@ -21,8 +22,27 @@ abstract class EhDatabase : RoomDatabase() {
|
||||
abstract fun quickSearchDao(): QuickSearchDao
|
||||
}
|
||||
|
||||
// 1 -> 2 some nullability changes
|
||||
@Database(
|
||||
entities = [Cookie::class],
|
||||
version = 2,
|
||||
autoMigrations = [
|
||||
AutoMigration(
|
||||
from = 1,
|
||||
to = 2,
|
||||
),
|
||||
],
|
||||
)
|
||||
abstract class CookiesDatabase : RoomDatabase() {
|
||||
abstract fun cookiesDao(): CookiesDao
|
||||
}
|
||||
|
||||
fun buildMainDB(context: Context): EhDatabase {
|
||||
// TODO: Remove allowMainThreadQueries
|
||||
return Room.databaseBuilder(context, EhDatabase::class.java, "eh.db").allowMainThreadQueries()
|
||||
.build()
|
||||
}
|
||||
|
||||
fun buildCookiesDB(context: Context): CookiesDatabase {
|
||||
return Room.databaseBuilder(context, CookiesDatabase::class.java, "okhttp3-cookie.db").build()
|
||||
}
|
||||
@@ -16,76 +16,11 @@
|
||||
package com.hippo.ehviewer.network
|
||||
|
||||
import android.content.Context
|
||||
import androidx.room.AutoMigration
|
||||
import androidx.room.ColumnInfo
|
||||
import androidx.room.Dao
|
||||
import androidx.room.Database
|
||||
import androidx.room.Delete
|
||||
import androidx.room.Entity
|
||||
import androidx.room.Insert
|
||||
import androidx.room.PrimaryKey
|
||||
import androidx.room.Query
|
||||
import androidx.room.Room
|
||||
import androidx.room.RoomDatabase
|
||||
import androidx.room.Update
|
||||
import com.hippo.ehviewer.dao.Cookie
|
||||
import com.hippo.ehviewer.dao.buildCookiesDB
|
||||
import okhttp3.Cookie as OkHttpCookie
|
||||
|
||||
@Entity(tableName = "OK_HTTP_3_COOKIE")
|
||||
class Cookie(
|
||||
@ColumnInfo(name = "NAME")
|
||||
var name: String,
|
||||
@ColumnInfo(name = "VALUE")
|
||||
var value: String,
|
||||
@ColumnInfo(name = "EXPIRES_AT")
|
||||
var expiresAt: Long,
|
||||
@ColumnInfo(name = "DOMAIN")
|
||||
var domain: String,
|
||||
@ColumnInfo(name = "PATH")
|
||||
var path: String,
|
||||
@ColumnInfo(name = "SECURE")
|
||||
var secure: Boolean,
|
||||
@ColumnInfo(name = "HTTP_ONLY")
|
||||
var httpOnly: Boolean,
|
||||
@ColumnInfo(name = "PERSISTENT")
|
||||
var persistent: Boolean,
|
||||
@ColumnInfo(name = "HOST_ONLY")
|
||||
var hostOnly: Boolean,
|
||||
@PrimaryKey
|
||||
@ColumnInfo(name = "_id")
|
||||
var id: Long?,
|
||||
)
|
||||
|
||||
@Dao
|
||||
interface CookiesDao {
|
||||
@Query("SELECT * FROM OK_HTTP_3_COOKIE")
|
||||
fun list(): List<Cookie>
|
||||
|
||||
@Delete
|
||||
fun delete(cookie: Cookie)
|
||||
|
||||
@Insert
|
||||
fun insert(cookie: Cookie): Long
|
||||
|
||||
@Update
|
||||
fun update(cookie: Cookie)
|
||||
}
|
||||
|
||||
// 1 -> 2 some nullability changes
|
||||
@Database(
|
||||
entities = [Cookie::class],
|
||||
version = 2,
|
||||
autoMigrations = [
|
||||
AutoMigration(
|
||||
from = 1,
|
||||
to = 2,
|
||||
),
|
||||
],
|
||||
)
|
||||
abstract class CookiesDatabase : RoomDatabase() {
|
||||
abstract fun cookiesDao(): CookiesDao
|
||||
}
|
||||
|
||||
internal class CookieDatabase(context: Context, name: String) {
|
||||
class CookieDatabase(context: Context) {
|
||||
private val cookiesList by lazy {
|
||||
val now = System.currentTimeMillis()
|
||||
db.cookiesDao().list().mapNotNull {
|
||||
@@ -95,7 +30,7 @@ internal class CookieDatabase(context: Context, name: String) {
|
||||
}
|
||||
}.toMutableList()
|
||||
}
|
||||
private val db = Room.databaseBuilder(context, CookiesDatabase::class.java, name).build()
|
||||
private val db = buildCookiesDB(context)
|
||||
|
||||
val allCookies by lazy {
|
||||
hashMapOf<String, CookieSet>().also { map ->
|
||||
|
||||
@@ -18,7 +18,7 @@ package com.hippo.ehviewer.network
|
||||
import okhttp3.Cookie
|
||||
import okhttp3.HttpUrl
|
||||
|
||||
internal class CookieSet {
|
||||
class CookieSet {
|
||||
private val map: MutableMap<Key, Cookie> = HashMap()
|
||||
|
||||
/**
|
||||
|
||||
Reference in new issue
Block a user