@@ -4,21 +4,8 @@ package com.looker.sync.fdroid.v1.model
4
4
* PackageV1, PermissionV1 are licensed under the GPL 3.0 to FDroid Organization.
5
5
* */
6
6
7
- import kotlinx.serialization.KSerializer
8
7
import kotlinx.serialization.SerialName
9
8
import kotlinx.serialization.Serializable
10
- import kotlinx.serialization.builtins.serializer
11
- import kotlinx.serialization.descriptors.SerialDescriptor
12
- import kotlinx.serialization.descriptors.buildClassSerialDescriptor
13
- import kotlinx.serialization.descriptors.element
14
- import kotlinx.serialization.encoding.Decoder
15
- import kotlinx.serialization.encoding.Encoder
16
- import kotlinx.serialization.encoding.encodeCollection
17
- import kotlinx.serialization.json.JsonArray
18
- import kotlinx.serialization.json.JsonDecoder
19
- import kotlinx.serialization.json.intOrNull
20
- import kotlinx.serialization.json.jsonArray
21
- import kotlinx.serialization.json.jsonPrimitive
22
9
23
10
@Serializable
24
11
data class PackageV1 (
@@ -45,36 +32,9 @@ data class PackageV1(
45
32
val nativeCode : List <String >? = null ,
46
33
val features : List <String >? = null ,
47
34
val antiFeatures : List <String >? = null ,
48
-
49
- )
50
-
51
- @Serializable(PermissionV1Serializer ::class )
52
- data class PermissionV1 (
53
- val name : String ,
54
- val maxSdk : Int? = null ,
55
35
)
56
36
57
- internal class PermissionV1Serializer : KSerializer <PermissionV1 > {
58
-
59
- override val descriptor: SerialDescriptor = buildClassSerialDescriptor(" PermissionV1" ) {
60
- element<String >(" name" )
61
- element<Int ?>(" maxSdk" )
62
- }
63
-
64
- override fun deserialize (decoder : Decoder ): PermissionV1 {
65
- decoder as ? JsonDecoder ? : error(" Not a JSON" )
66
- val array: JsonArray = decoder.decodeJsonElement().jsonArray
67
- require(array.size == 2 ) { " Permission array is invalid: $array " }
68
- require(array[0 ].jsonPrimitive.isString) { " Name is not the first element in permission: $array " }
69
- val name: String = array[0 ].jsonPrimitive.content
70
- val maxSdk: Int? = array[1 ].jsonPrimitive.intOrNull
71
- return PermissionV1 (name, maxSdk)
72
- }
37
+ typealias PermissionV1 = Array <String ?>
73
38
74
- override fun serialize (encoder : Encoder , permission : PermissionV1 ) {
75
- encoder.encodeCollection(JsonArray .serializer().descriptor, 2 ) {
76
- encodeStringElement(descriptor, 0 , permission.name)
77
- encodeNullableSerializableElement(descriptor, 1 , Int .serializer(), permission.maxSdk)
78
- }
79
- }
80
- }
39
+ val PermissionV1 .name: String get() = first()!!
40
+ val PermissionV1 .maxSdk: Int? get() = getOrNull(1 )?.toInt()
0 commit comments