Observe database updates using InvalidationTracker
parent
9eb5e699e1
commit
dfa413da6f
@ -0,0 +1,9 @@
|
|||||||
|
package org.koitharu.kotatsu.core.db
|
||||||
|
|
||||||
|
|
||||||
|
const val TABLE_FAVOURITES = "favourites"
|
||||||
|
const val TABLE_MANGA = "manga"
|
||||||
|
const val TABLE_TAGS = "tags"
|
||||||
|
const val TABLE_FAVOURITE_CATEGORIES = "favourite_categories"
|
||||||
|
const val TABLE_HISTORY = "history"
|
||||||
|
const val TABLE_MANGA_TAGS = "manga_tags"
|
||||||
@ -0,0 +1,22 @@
|
|||||||
|
package org.koitharu.kotatsu.settings.backup
|
||||||
|
|
||||||
|
import android.app.backup.BackupManager
|
||||||
|
import android.content.Context
|
||||||
|
import android.os.Build
|
||||||
|
import androidx.annotation.RequiresApi
|
||||||
|
import androidx.room.InvalidationTracker
|
||||||
|
import org.koitharu.kotatsu.core.db.TABLE_FAVOURITES
|
||||||
|
import org.koitharu.kotatsu.core.db.TABLE_FAVOURITE_CATEGORIES
|
||||||
|
import org.koitharu.kotatsu.core.db.TABLE_HISTORY
|
||||||
|
|
||||||
|
@RequiresApi(Build.VERSION_CODES.M)
|
||||||
|
class BackupObserver(
|
||||||
|
context: Context,
|
||||||
|
) : InvalidationTracker.Observer(arrayOf(TABLE_HISTORY, TABLE_FAVOURITES, TABLE_FAVOURITE_CATEGORIES)) {
|
||||||
|
|
||||||
|
private val backupManager = BackupManager(context)
|
||||||
|
|
||||||
|
override fun onInvalidated(tables: MutableSet<String>) {
|
||||||
|
backupManager.dataChanged()
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -1,10 +1,15 @@
|
|||||||
package org.koitharu.kotatsu.widget
|
package org.koitharu.kotatsu.widget
|
||||||
|
|
||||||
|
import androidx.room.InvalidationTracker
|
||||||
|
import org.koin.android.ext.koin.androidContext
|
||||||
import org.koin.androidx.viewmodel.dsl.viewModel
|
import org.koin.androidx.viewmodel.dsl.viewModel
|
||||||
import org.koin.dsl.module
|
import org.koin.dsl.module
|
||||||
import org.koitharu.kotatsu.widget.shelf.ShelfConfigViewModel
|
import org.koitharu.kotatsu.widget.shelf.ShelfConfigViewModel
|
||||||
|
|
||||||
val appWidgetModule
|
val appWidgetModule
|
||||||
get() = module {
|
get() = module {
|
||||||
|
|
||||||
|
single<InvalidationTracker.Observer> { WidgetUpdater(androidContext()) }
|
||||||
|
|
||||||
viewModel { ShelfConfigViewModel(get()) }
|
viewModel { ShelfConfigViewModel(get()) }
|
||||||
}
|
}
|
||||||
Loading…
Reference in New Issue