mirror of
https://github.com/Aviortheking/Neo-Store.git
synced 2025-04-24 03:42:15 +00:00
Update: Migrating Release to a database.entity
This commit is contained in:
parent
67ec9649a8
commit
e95b3aeea3
@ -1,7 +1,7 @@
|
||||
package com.looker.droidify.database
|
||||
|
||||
import androidx.room.TypeConverter
|
||||
import com.looker.droidify.entity.Release
|
||||
import com.looker.droidify.database.entity.Release
|
||||
import com.looker.droidify.utility.jsonGenerate
|
||||
import com.looker.droidify.utility.jsonParse
|
||||
|
||||
|
@ -3,7 +3,6 @@ package com.looker.droidify.database.entity
|
||||
import androidx.room.ColumnInfo
|
||||
import androidx.room.Entity
|
||||
import com.looker.droidify.entity.ProductItem
|
||||
import com.looker.droidify.entity.Release
|
||||
|
||||
@Entity(tableName = "product", primaryKeys = ["repository_id", "package_name"])
|
||||
open class Product {
|
||||
|
@ -1,14 +1,16 @@
|
||||
package com.looker.droidify.entity
|
||||
package com.looker.droidify.database.entity
|
||||
|
||||
import android.net.Uri
|
||||
import androidx.room.Entity
|
||||
import com.fasterxml.jackson.core.JsonGenerator
|
||||
import com.fasterxml.jackson.core.JsonParser
|
||||
import com.fasterxml.jackson.core.JsonToken
|
||||
import com.looker.droidify.database.entity.Repository
|
||||
import com.looker.droidify.utility.extension.json.*
|
||||
|
||||
// TODO make a Room entity
|
||||
@Entity(primaryKeys = ["packageName", "versionCode", "signature"])
|
||||
data class Release(
|
||||
val packageName: String,
|
||||
val selected: Boolean,
|
||||
val version: String,
|
||||
val versionCode: Long,
|
||||
@ -51,6 +53,7 @@ data class Release(
|
||||
get() = "${hash.replace('/', '-')}.apk"
|
||||
|
||||
fun serialize(generator: JsonGenerator) {
|
||||
generator.writeStringField("packageName", packageName)
|
||||
generator.writeNumberField("serialVersion", 1)
|
||||
generator.writeBooleanField("selected", selected)
|
||||
generator.writeStringField("version", version)
|
||||
@ -99,6 +102,7 @@ data class Release(
|
||||
|
||||
companion object {
|
||||
fun deserialize(parser: JsonParser): Release {
|
||||
var packageName = ""
|
||||
var selected = false
|
||||
var version = ""
|
||||
var versionCode = 0L
|
||||
@ -124,6 +128,7 @@ data class Release(
|
||||
var incompatibilities = emptyList<Incompatibility>()
|
||||
parser.forEachKey { it ->
|
||||
when {
|
||||
it.string("packageName") -> packageName = valueAsString
|
||||
it.boolean("selected") -> selected = valueAsBoolean
|
||||
it.string("version") -> version = valueAsString
|
||||
it.number("versionCode") -> versionCode = valueAsLong
|
||||
@ -169,6 +174,7 @@ data class Release(
|
||||
}
|
||||
}
|
||||
return Release(
|
||||
packageName,
|
||||
selected,
|
||||
version,
|
||||
versionCode,
|
@ -4,6 +4,7 @@ import com.fasterxml.jackson.core.JsonGenerator
|
||||
import com.fasterxml.jackson.core.JsonParser
|
||||
import com.fasterxml.jackson.core.JsonToken
|
||||
import com.looker.droidify.database.entity.Installed
|
||||
import com.looker.droidify.database.entity.Release
|
||||
import com.looker.droidify.utility.extension.json.*
|
||||
import com.looker.droidify.utility.extension.text.nullIfEmpty
|
||||
|
||||
|
@ -1,7 +1,7 @@
|
||||
package com.looker.droidify.index
|
||||
|
||||
import com.looker.droidify.database.entity.Release
|
||||
import com.looker.droidify.entity.Product
|
||||
import com.looker.droidify.entity.Release
|
||||
import com.looker.droidify.utility.extension.android.Android
|
||||
import org.xml.sax.Attributes
|
||||
import org.xml.sax.helpers.DefaultHandler
|
||||
@ -116,6 +116,7 @@ class IndexHandler(private val repositoryId: Long, private val callback: Callbac
|
||||
}
|
||||
|
||||
private class ReleaseBuilder {
|
||||
var packageName = ""
|
||||
var version = ""
|
||||
var versionCode = 0L
|
||||
var added = 0L
|
||||
@ -141,6 +142,7 @@ class IndexHandler(private val repositoryId: Long, private val callback: Callbac
|
||||
val obbMainHashType = if (obbMainHash.isNotEmpty()) "sha256" else ""
|
||||
val obbPatchHashType = if (obbPatchHash.isNotEmpty()) "sha256" else ""
|
||||
return Release(
|
||||
packageName,
|
||||
false,
|
||||
version,
|
||||
versionCode,
|
||||
|
@ -3,8 +3,8 @@ package com.looker.droidify.index
|
||||
import android.content.ContentValues
|
||||
import android.database.sqlite.SQLiteDatabase
|
||||
import com.fasterxml.jackson.core.JsonToken
|
||||
import com.looker.droidify.database.entity.Release
|
||||
import com.looker.droidify.entity.Product
|
||||
import com.looker.droidify.entity.Release
|
||||
import com.looker.droidify.utility.extension.android.asSequence
|
||||
import com.looker.droidify.utility.extension.android.execWithResult
|
||||
import com.looker.droidify.utility.extension.json.Json
|
||||
|
@ -2,8 +2,8 @@ package com.looker.droidify.index
|
||||
|
||||
import com.fasterxml.jackson.core.JsonParser
|
||||
import com.fasterxml.jackson.core.JsonToken
|
||||
import com.looker.droidify.database.entity.Release
|
||||
import com.looker.droidify.entity.Product
|
||||
import com.looker.droidify.entity.Release
|
||||
import com.looker.droidify.utility.extension.android.Android
|
||||
import com.looker.droidify.utility.extension.json.*
|
||||
import com.looker.droidify.utility.extension.text.nullIfEmpty
|
||||
@ -91,7 +91,8 @@ object IndexV1Parser {
|
||||
it.dictionary("packages") -> forEachKey {
|
||||
if (it.token == JsonToken.START_ARRAY) {
|
||||
val packageName = it.key
|
||||
val releases = collectNotNull(JsonToken.START_OBJECT) { parseRelease() }
|
||||
val releases =
|
||||
collectNotNull(JsonToken.START_OBJECT) { parseRelease(packageName) }
|
||||
callback.onReleases(packageName, releases)
|
||||
} else {
|
||||
skipChildren()
|
||||
@ -250,7 +251,7 @@ object IndexV1Parser {
|
||||
)
|
||||
}
|
||||
|
||||
private fun JsonParser.parseRelease(): Release {
|
||||
private fun JsonParser.parseRelease(packageName: String): Release {
|
||||
var version = ""
|
||||
var versionCode = 0L
|
||||
var added = 0L
|
||||
@ -300,6 +301,7 @@ object IndexV1Parser {
|
||||
val obbMainHashType = if (obbMainHash.isNotEmpty()) "sha256" else ""
|
||||
val obbPatchHashType = if (obbPatchHash.isNotEmpty()) "sha256" else ""
|
||||
return Release(
|
||||
packageName,
|
||||
false,
|
||||
version,
|
||||
versionCode,
|
||||
|
@ -4,9 +4,9 @@ import android.content.Context
|
||||
import android.net.Uri
|
||||
import com.looker.droidify.content.Cache
|
||||
import com.looker.droidify.database.DatabaseX
|
||||
import com.looker.droidify.database.entity.Release
|
||||
import com.looker.droidify.database.entity.Repository
|
||||
import com.looker.droidify.entity.Product
|
||||
import com.looker.droidify.entity.Release
|
||||
import com.looker.droidify.network.Downloader
|
||||
import com.looker.droidify.utility.ProgressInputStream
|
||||
import com.looker.droidify.utility.RxUtils
|
||||
|
@ -10,7 +10,7 @@ import androidx.fragment.app.DialogFragment
|
||||
import androidx.fragment.app.FragmentManager
|
||||
import com.google.android.material.dialog.MaterialAlertDialogBuilder
|
||||
import com.looker.droidify.R
|
||||
import com.looker.droidify.entity.Release
|
||||
import com.looker.droidify.database.entity.Release
|
||||
import com.looker.droidify.ui.fragments.RepositorySheetX
|
||||
import com.looker.droidify.utility.KParcelable
|
||||
import com.looker.droidify.utility.PackageItemResolver
|
||||
|
@ -9,8 +9,8 @@ import android.view.ContextThemeWrapper
|
||||
import androidx.core.app.NotificationCompat
|
||||
import com.looker.droidify.*
|
||||
import com.looker.droidify.content.Cache
|
||||
import com.looker.droidify.database.entity.Release
|
||||
import com.looker.droidify.database.entity.Repository
|
||||
import com.looker.droidify.entity.Release
|
||||
import com.looker.droidify.installer.AppInstaller
|
||||
import com.looker.droidify.network.Downloader
|
||||
import com.looker.droidify.ui.activities.MainActivityX
|
||||
|
@ -44,10 +44,10 @@ import com.looker.droidify.R
|
||||
import com.looker.droidify.content.Preferences
|
||||
import com.looker.droidify.content.ProductPreferences
|
||||
import com.looker.droidify.database.entity.Installed
|
||||
import com.looker.droidify.database.entity.Release
|
||||
import com.looker.droidify.database.entity.Repository
|
||||
import com.looker.droidify.entity.Product
|
||||
import com.looker.droidify.entity.ProductPreference
|
||||
import com.looker.droidify.entity.Release
|
||||
import com.looker.droidify.network.CoilDownloader
|
||||
import com.looker.droidify.screen.ScreenshotsAdapter
|
||||
import com.looker.droidify.utility.KParcelable
|
||||
@ -1412,13 +1412,6 @@ class AppDetailAdapter(private val callbacks: Callbacks) :
|
||||
holder.packageName.text = item.packageName
|
||||
}
|
||||
}::class
|
||||
}
|
||||
|
||||
private fun formatHtml(text: String): SpannableStringBuilder {
|
||||
val html = HtmlCompat.fromHtml(text, HtmlCompat.FROM_HTML_MODE_LEGACY)
|
||||
val builder = run {
|
||||
val builder = SpannableStringBuilder(html)
|
||||
val last = builder.indexOfLast { it != '\n' }
|
||||
val first = builder.indexOfFirst { it != '\n' }
|
||||
if (last >= 0) {
|
||||
builder.delete(last + 1, builder.length)
|
||||
|
@ -17,10 +17,10 @@ import androidx.recyclerview.widget.RecyclerView
|
||||
import com.google.android.material.dialog.MaterialAlertDialogBuilder
|
||||
import com.looker.droidify.R
|
||||
import com.looker.droidify.content.ProductPreferences
|
||||
import com.looker.droidify.database.entity.Release
|
||||
import com.looker.droidify.database.entity.Repository
|
||||
import com.looker.droidify.entity.Product
|
||||
import com.looker.droidify.entity.ProductPreference
|
||||
import com.looker.droidify.entity.Release
|
||||
import com.looker.droidify.installer.AppInstaller
|
||||
import com.looker.droidify.screen.MessageDialog
|
||||
import com.looker.droidify.screen.ScreenFragment
|
||||
|
Loading…
x
Reference in New Issue
Block a user