mirror of
https://github.com/Aviortheking/Neo-Store.git
synced 2025-06-21 06:39:19 +00:00
Update: Migrate from Database to DatabaseX (4.7/5 in replacing SQLite with Room)
This commit is contained in:
@ -87,9 +87,10 @@ class CursorOwner : Fragment(), LoaderManager.LoaderCallbacks<Cursor> {
|
||||
|
||||
override fun onCreateLoader(id: Int, args: Bundle?): Loader<Cursor> {
|
||||
val request = activeRequests[id]!!.request
|
||||
val db = DatabaseX.getInstance(requireContext())
|
||||
return QueryLoader(requireContext()) {
|
||||
when (request) {
|
||||
is Request.ProductsAvailable -> Database.ProductAdapter
|
||||
is Request.ProductsAvailable -> db.productDao
|
||||
.query(
|
||||
installed = false,
|
||||
updates = false,
|
||||
@ -98,7 +99,7 @@ class CursorOwner : Fragment(), LoaderManager.LoaderCallbacks<Cursor> {
|
||||
order = request.order,
|
||||
signal = it
|
||||
)
|
||||
is Request.ProductsInstalled -> Database.ProductAdapter
|
||||
is Request.ProductsInstalled -> db.productDao
|
||||
.query(
|
||||
installed = true,
|
||||
updates = false,
|
||||
@ -107,7 +108,7 @@ class CursorOwner : Fragment(), LoaderManager.LoaderCallbacks<Cursor> {
|
||||
order = request.order,
|
||||
signal = it
|
||||
)
|
||||
is Request.ProductsUpdates -> Database.ProductAdapter
|
||||
is Request.ProductsUpdates -> db.productDao
|
||||
.query(
|
||||
installed = true,
|
||||
updates = true,
|
||||
@ -116,7 +117,7 @@ class CursorOwner : Fragment(), LoaderManager.LoaderCallbacks<Cursor> {
|
||||
order = request.order,
|
||||
signal = it
|
||||
)
|
||||
is Request.Repositories -> Database.RepositoryAdapter.query(it)
|
||||
is Request.Repositories -> db.repositoryDao.allCursor
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -1,8 +1,10 @@
|
||||
package com.looker.droidify.database
|
||||
|
||||
import android.content.Context
|
||||
import androidx.room.*
|
||||
import androidx.room.Database
|
||||
import androidx.room.Room
|
||||
import androidx.room.RoomDatabase
|
||||
import androidx.room.TypeConverters
|
||||
|
||||
@Database(
|
||||
entities = [
|
||||
@ -47,15 +49,16 @@ abstract class DatabaseX : RoomDatabase() {
|
||||
}
|
||||
}
|
||||
|
||||
@Transaction
|
||||
fun cleanUp(pairs: Set<Pair<Long, Boolean>>) {
|
||||
val result = pairs.windowed(10, 10, true).map {
|
||||
val ids = it.map { it.first }.toLongArray()
|
||||
val productsCount = productDao.deleteById(*ids)
|
||||
val categoriesCount = categoryDao.deleteById(*ids)
|
||||
val deleteIds = it.filter { it.second }.map { it.first }.toLongArray()
|
||||
repositoryDao.deleteById(*deleteIds)
|
||||
productsCount != 0 || categoriesCount != 0
|
||||
runInTransaction {
|
||||
val result = pairs.windowed(10, 10, true).map {
|
||||
val ids = it.map { it.first }.toLongArray()
|
||||
val productsCount = productDao.deleteById(*ids)
|
||||
val categoriesCount = categoryDao.deleteById(*ids)
|
||||
val deleteIds = it.filter { it.second }.map { it.first }.toLongArray()
|
||||
repositoryDao.deleteById(*deleteIds)
|
||||
productsCount != 0 || categoriesCount != 0
|
||||
}
|
||||
}
|
||||
// Use live objects and observers instead
|
||||
/*if (result.any { it }) {
|
||||
@ -63,16 +66,17 @@ abstract class DatabaseX : RoomDatabase() {
|
||||
}*/
|
||||
}
|
||||
|
||||
@Transaction
|
||||
fun finishTemporary(repository: com.looker.droidify.entity.Repository, success: Boolean) {
|
||||
if (success) {
|
||||
productDao.deleteById(repository.id)
|
||||
categoryDao.deleteById(repository.id)
|
||||
productDao.insert(*(productTempDao.all))
|
||||
categoryDao.insert(*(categoryTempDao.all))
|
||||
repositoryDao.put(repository)
|
||||
runInTransaction {
|
||||
if (success) {
|
||||
productDao.deleteById(repository.id)
|
||||
categoryDao.deleteById(repository.id)
|
||||
productDao.insert(*(productTempDao.all))
|
||||
categoryDao.insert(*(categoryTempDao.all))
|
||||
repositoryDao.put(repository)
|
||||
}
|
||||
productTempDao.emptyTable()
|
||||
categoryTempDao.emptyTable()
|
||||
}
|
||||
productTempDao.emptyTable()
|
||||
categoryTempDao.emptyTable()
|
||||
}
|
||||
}
|
@ -16,7 +16,7 @@ class Repository {
|
||||
var id: Long = 0
|
||||
|
||||
var enabled = 0
|
||||
var deleted = 0
|
||||
var deleted = false
|
||||
|
||||
@ColumnInfo(typeAffinity = ColumnInfo.BLOB)
|
||||
var data: Repository? = null
|
||||
@ -25,7 +25,7 @@ class Repository {
|
||||
@ColumnInfo(name = "_id")
|
||||
var id = 0L
|
||||
|
||||
var deleted = 0
|
||||
var deleted = false
|
||||
}
|
||||
}
|
||||
|
||||
@ -64,12 +64,12 @@ open class Category {
|
||||
class CategoryTemp : Category()
|
||||
|
||||
@Entity(tableName = "memory.installed")
|
||||
class Installed {
|
||||
class Installed(pName: String = "") {
|
||||
@PrimaryKey
|
||||
var package_name = ""
|
||||
var package_name = pName
|
||||
|
||||
var version = ""
|
||||
var version_code = 0
|
||||
var version_code = 0L
|
||||
var signature = ""
|
||||
}
|
||||
|
||||
@ -78,7 +78,7 @@ class Lock {
|
||||
@PrimaryKey
|
||||
var package_name = ""
|
||||
|
||||
var version_code = 0
|
||||
var version_code = 0L
|
||||
}
|
||||
|
||||
object Converters {
|
||||
|
Reference in New Issue
Block a user