mirror of
https://github.com/Aviortheking/Neo-Store.git
synced 2025-08-14 13:51:57 +00:00
Clean up
This commit is contained in:
@@ -8,8 +8,6 @@ import android.content.pm.PackageInfo
|
||||
import android.content.pm.Signature
|
||||
import android.content.res.Configuration
|
||||
import android.graphics.drawable.Drawable
|
||||
import com.fasterxml.jackson.core.JsonGenerator
|
||||
import com.fasterxml.jackson.core.JsonParser
|
||||
import com.looker.droidify.BuildConfig
|
||||
import com.looker.droidify.PREFS_LANGUAGE_DEFAULT
|
||||
import com.looker.droidify.R
|
||||
@@ -22,14 +20,10 @@ import com.looker.droidify.service.DownloadService
|
||||
import com.looker.droidify.utility.extension.android.Android
|
||||
import com.looker.droidify.utility.extension.android.singleSignature
|
||||
import com.looker.droidify.utility.extension.android.versionCodeCompat
|
||||
import com.looker.droidify.utility.extension.json.Json
|
||||
import com.looker.droidify.utility.extension.json.parseDictionary
|
||||
import com.looker.droidify.utility.extension.json.writeDictionary
|
||||
import com.looker.droidify.utility.extension.resources.getDrawableCompat
|
||||
import com.looker.droidify.utility.extension.text.hex
|
||||
import com.topjohnwu.superuser.Shell
|
||||
import kotlinx.coroutines.flow.MutableStateFlow
|
||||
import java.io.ByteArrayOutputStream
|
||||
import java.security.MessageDigest
|
||||
import java.security.cert.Certificate
|
||||
import java.security.cert.CertificateEncodingException
|
||||
@@ -175,16 +169,6 @@ object Utils {
|
||||
|
||||
}
|
||||
|
||||
fun <T> ByteArray.jsonParse(callback: (JsonParser) -> T): T {
|
||||
return Json.factory.createParser(this).use { it.parseDictionary(callback) }
|
||||
}
|
||||
|
||||
fun jsonGenerate(callback: (JsonGenerator) -> Unit): ByteArray {
|
||||
val outputStream = ByteArrayOutputStream()
|
||||
Json.factory.createGenerator(outputStream).use { it.writeDictionary(callback) }
|
||||
return outputStream.toByteArray()
|
||||
}
|
||||
|
||||
val isDarkTheme: Boolean
|
||||
get() = when (Preferences[Preferences.Key.Theme]) {
|
||||
is Preferences.Theme.Light -> false
|
||||
|
@@ -2,7 +2,10 @@
|
||||
|
||||
package com.looker.droidify.utility.extension.json
|
||||
|
||||
import com.fasterxml.jackson.core.*
|
||||
import com.fasterxml.jackson.core.JsonFactory
|
||||
import com.fasterxml.jackson.core.JsonParseException
|
||||
import com.fasterxml.jackson.core.JsonParser
|
||||
import com.fasterxml.jackson.core.JsonToken
|
||||
|
||||
object Json {
|
||||
val factory = JsonFactory()
|
||||
@@ -79,50 +82,4 @@ fun JsonParser.collectNotNullStrings(): List<String> {
|
||||
|
||||
fun JsonParser.collectDistinctNotEmptyStrings(): List<String> {
|
||||
return collectNotNullStrings().asSequence().filter { it.isNotEmpty() }.distinct().toList()
|
||||
}
|
||||
|
||||
fun <T> JsonParser.collectList(arrayName: String, callback: JsonParser.() -> T?): MutableList<T> {
|
||||
val list = mutableListOf<T>()
|
||||
forEachKey {
|
||||
when {
|
||||
it.array(arrayName) ->
|
||||
list.addAll(
|
||||
collectNotNull(JsonToken.START_OBJECT) {
|
||||
callback()
|
||||
}
|
||||
)
|
||||
else -> skipChildren()
|
||||
}
|
||||
}
|
||||
return list
|
||||
}
|
||||
|
||||
inline fun <T> JsonParser.parseDictionary(callback: JsonParser.() -> T): T {
|
||||
if (nextToken() == JsonToken.START_OBJECT) {
|
||||
val result = callback()
|
||||
if (nextToken() != null) {
|
||||
illegal()
|
||||
}
|
||||
return result
|
||||
} else {
|
||||
illegal()
|
||||
}
|
||||
}
|
||||
|
||||
inline fun JsonGenerator.writeDictionary(callback: JsonGenerator.() -> Unit) {
|
||||
writeStartObject()
|
||||
callback()
|
||||
writeEndObject()
|
||||
}
|
||||
|
||||
inline fun JsonGenerator.writeArray(fieldName: String, callback: JsonGenerator.() -> Unit) {
|
||||
writeArrayFieldStart(fieldName)
|
||||
callback()
|
||||
writeEndArray()
|
||||
}
|
||||
|
||||
inline fun <T> JsonGenerator.writeList(listName: String, list: List<T>, callback: T.() -> Unit) {
|
||||
writeArray(listName) {
|
||||
list.forEach { writeDictionary { it.callback() } }
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user