Skip to content

Commit

Permalink
Fix json annotations for compat without jackson-module-kotlin
Browse files Browse the repository at this point in the history
  • Loading branch information
valldrac committed Nov 13, 2023
1 parent 95b42db commit f1fba2a
Show file tree
Hide file tree
Showing 18 changed files with 114 additions and 116 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@ package org.thoughtcrime.securesms.emoji

import android.content.Context
import android.net.Uri
import com.fasterxml.jackson.annotation.JsonCreator
import com.fasterxml.jackson.annotation.JsonIgnore
import com.fasterxml.jackson.annotation.JsonProperty
import com.fasterxml.jackson.databind.JsonNode
Expand Down Expand Up @@ -135,7 +134,7 @@ object EmojiFiles {
}
}

class Version @JsonCreator constructor(@JsonProperty("version") val version: Int, @JsonProperty("uuid") val uuid: UUID, @JsonProperty("density") val density: String) {
class Version(@JsonProperty("version") val version: Int, @JsonProperty("uuid") val uuid: UUID, @JsonProperty("density") val density: String) {

fun getFile(context: Context, uuid: UUID): File = File(getDirectory(context), uuid.toString())

Expand Down Expand Up @@ -211,14 +210,14 @@ object EmojiFiles {
}
}

class Name @JsonCreator constructor(@JsonProperty("name") val name: String, @JsonProperty("uuid") val uuid: UUID) {
class Name(@JsonProperty("name") val name: String, @JsonProperty("uuid") val uuid: UUID) {
companion object {
@JvmStatic
fun forEmojiDataJson(): Name = Name(EMOJI_JSON, UUID.randomUUID())
}
}

class NameCollection @JsonCreator constructor(@JsonProperty("versionUuid") val versionUuid: UUID, @JsonProperty("names") val names: List<Name>) {
class NameCollection(@JsonProperty("versionUuid") val versionUuid: UUID, @JsonProperty("names") val names: List<Name>) {
companion object {

private val objectMapper = ObjectMapper()
Expand Down Expand Up @@ -258,7 +257,7 @@ object EmojiFiles {
fun getUUIDForName(name: String): UUID? = names.firstOrNull { it.name == name }?.uuid
}

class JumboCollection @JsonCreator constructor(@JsonProperty("versionUuid") val versionUuid: UUID, @JsonProperty("names") val names: List<Name>) {
class JumboCollection(@JsonProperty("versionUuid") val versionUuid: UUID, @JsonProperty("names") val names: List<Name>) {
companion object {

private val objectMapper = ObjectMapper()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@ package org.thoughtcrime.securesms.fonts

import android.content.Context
import androidx.annotation.WorkerThread
import com.fasterxml.jackson.annotation.JsonCreator
import com.fasterxml.jackson.annotation.JsonProperty
import com.fasterxml.jackson.databind.ObjectMapper
import org.signal.core.util.logging.Log
Expand All @@ -13,7 +12,7 @@ import java.io.File
* FontFileMap links a network font name (e.g. Inter-Bold.ttf) to a UUID used as an on-disk filename.
* These mappings are encoded into JSON and stored on disk in a file called .map
*/
data class FontFileMap @JsonCreator constructor(@JsonProperty("map") val map: Map<String, String>) {
data class FontFileMap(@JsonProperty("map") val map: Map<String, String>) {

companion object {

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@ package org.thoughtcrime.securesms.fonts

import android.content.Context
import androidx.annotation.WorkerThread
import com.fasterxml.jackson.annotation.JsonCreator
import com.fasterxml.jackson.annotation.JsonProperty
import com.fasterxml.jackson.databind.ObjectMapper
import org.signal.core.util.logging.Log
Expand All @@ -14,7 +13,7 @@ import java.io.File
*
* @param scripts A collection of supported scripts
*/
data class FontManifest @JsonCreator constructor(
data class FontManifest(
@JsonProperty("scripts") val scripts: FontScripts
) {
/**
Expand All @@ -27,7 +26,7 @@ data class FontManifest @JsonCreator constructor(
* @param chineseTraditional Hant Script Fonts
* @param chineseSimplified Hans Script Fonts
*/
data class FontScripts @JsonCreator constructor(
data class FontScripts(
@JsonProperty("latin-extended") val latinExtended: FontScript?,
@JsonProperty("cyrillic-extended") val cyrillicExtended: FontScript?,
@JsonProperty("devanagari") val devanagari: FontScript?,
Expand All @@ -41,7 +40,7 @@ data class FontManifest @JsonCreator constructor(
/**
* A collection of fonts for a specific script
*/
data class FontScript @JsonCreator constructor(
data class FontScript(
@JsonProperty("regular") val regular: String?,
@JsonProperty("bold") val bold: String?,
@JsonProperty("serif") val serif: String?,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@ package org.thoughtcrime.securesms.fonts

import android.content.Context
import androidx.annotation.WorkerThread
import com.fasterxml.jackson.annotation.JsonCreator
import com.fasterxml.jackson.annotation.JsonProperty
import com.fasterxml.jackson.databind.ObjectMapper
import org.signal.core.util.logging.Log
Expand All @@ -18,7 +17,7 @@ import java.util.concurrent.TimeUnit
* @param id The numeric ID of this version, retrieved from the server
* @param path The UUID path of this version on disk, where supporting files will be stored.
*/
data class FontVersion @JsonCreator constructor(@JsonProperty("id") val id: Long, @JsonProperty("path") val path: String) {
data class FontVersion(@JsonProperty("id") val id: Long, @JsonProperty("path") val path: String) {

companion object {
val NONE = FontVersion(-1, "")
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
package org.thoughtcrime.securesms.jobs

import androidx.core.os.LocaleListCompat
import com.fasterxml.jackson.annotation.JsonCreator
import com.fasterxml.jackson.annotation.JsonProperty
import com.fasterxml.jackson.databind.JsonNode
import com.fasterxml.jackson.databind.node.ObjectNode
Expand Down Expand Up @@ -392,58 +391,58 @@ class RetrieveRemoteAnnouncementsJob private constructor(private val force: Bool

data class FullRemoteMegaphone(val remoteMegaphone: RemoteMegaphone, val translation: TranslatedRemoteMegaphone)

class ReleaseNotes @JsonCreator constructor(@JsonProperty val announcements: List<ReleaseNote>, @JsonProperty val megaphones: List<RemoteMegaphone>?)
class ReleaseNotes(@JsonProperty("announcements") val announcements: List<ReleaseNote>, @JsonProperty("megaphones") val megaphones: List<RemoteMegaphone>?)

class ReleaseNote @JsonCreator constructor(
@JsonProperty val uuid: String,
@JsonProperty val countries: String?,
@JsonProperty val androidMinVersion: String?,
@JsonProperty val link: String?,
@JsonProperty val ctaId: String?,
@JsonProperty val includeBoostMessage: Boolean?
class ReleaseNote(
@JsonProperty("uuid") val uuid: String,
@JsonProperty("countries") val countries: String?,
@JsonProperty("androidMinVersion") val androidMinVersion: String?,
@JsonProperty("link") val link: String?,
@JsonProperty("ctaId") val ctaId: String?,
@JsonProperty("includeBoostMessage") val includeBoostMessage: Boolean?
)

class RemoteMegaphone @JsonCreator constructor(
@JsonProperty val uuid: String,
@JsonProperty val priority: Long,
@JsonProperty val countries: String?,
@JsonProperty val androidMinVersion: String?,
@JsonProperty val dontShowBeforeEpochSeconds: Long?,
@JsonProperty val dontShowAfterEpochSeconds: Long?,
@JsonProperty val showForNumberOfDays: Long?,
@JsonProperty val conditionalId: String?,
@JsonProperty val primaryCtaId: String?,
@JsonProperty val secondaryCtaId: String?,
@JsonProperty val primaryCtaData: JsonNode?,
@JsonProperty val secondaryCtaData: JsonNode?
class RemoteMegaphone(
@JsonProperty("uuid") val uuid: String,
@JsonProperty("priority") val priority: Long,
@JsonProperty("countries") val countries: String?,
@JsonProperty("androidMinVersion") val androidMinVersion: String?,
@JsonProperty("dontShowBeforeEpochSeconds") val dontShowBeforeEpochSeconds: Long?,
@JsonProperty("dontShowAfterEpochSeconds") val dontShowAfterEpochSeconds: Long?,
@JsonProperty("showForNumberOfDays") val showForNumberOfDays: Long?,
@JsonProperty("conditionalId") val conditionalId: String?,
@JsonProperty("primaryCtaId") val primaryCtaId: String?,
@JsonProperty("secondaryCtaId") val secondaryCtaId: String?,
@JsonProperty("primaryCtaData") val primaryCtaData: JsonNode?,
@JsonProperty("secondaryCtaData") val secondaryCtaData: JsonNode?
)

class TranslatedReleaseNote @JsonCreator constructor(
@JsonProperty val uuid: String,
@JsonProperty val media: String?,
@JsonProperty val mediaWidth: String?,
@JsonProperty val mediaHeight: String?,
@JsonProperty val mediaContentType: String?,
@JsonProperty val linkText: String?,
@JsonProperty val title: String,
@JsonProperty val body: String,
@JsonProperty val callToActionText: String?,
@JsonProperty val bodyRanges: List<ReleaseNoteBodyRange>?
class TranslatedReleaseNote(
@JsonProperty("uuid") val uuid: String,
@JsonProperty("media") val media: String?,
@JsonProperty("mediaWidth") val mediaWidth: String?,
@JsonProperty("mediaHeight") val mediaHeight: String?,
@JsonProperty("mediaContentType") val mediaContentType: String?,
@JsonProperty("linkText") val linkText: String?,
@JsonProperty("title") val title: String,
@JsonProperty("body") val body: String,
@JsonProperty("callToActionText") val callToActionText: String?,
@JsonProperty("bodyRanges") val bodyRanges: List<ReleaseNoteBodyRange>?
)

data class ReleaseNoteBodyRange(
@JsonProperty val style: String?,
@JsonProperty val start: Int?,
@JsonProperty val length: Int?
@JsonProperty("style") val style: String?,
@JsonProperty("start") val start: Int?,
@JsonProperty("length") val length: Int?
)

class TranslatedRemoteMegaphone @JsonCreator constructor(
@JsonProperty val uuid: String,
@JsonProperty val image: String?,
@JsonProperty val title: String,
@JsonProperty val body: String,
@JsonProperty val primaryCtaText: String?,
@JsonProperty val secondaryCtaText: String?
class TranslatedRemoteMegaphone(
@JsonProperty("uuid") val uuid: String,
@JsonProperty("image") val image: String?,
@JsonProperty("title") val title: String,
@JsonProperty("body") val body: String,
@JsonProperty("primaryCtaText") val primaryCtaText: String?,
@JsonProperty("secondaryCtaText") val secondaryCtaText: String?
)

class Factory : Job.Factory<RetrieveRemoteAnnouncementsJob> {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,25 +5,24 @@
*/
package org.whispersystems.signalservice.api.account

import com.fasterxml.jackson.annotation.JsonCreator
import com.fasterxml.jackson.annotation.JsonIgnoreProperties
import com.fasterxml.jackson.annotation.JsonProperty

@JsonIgnoreProperties(ignoreUnknown = true)
class AccountAttributes @JsonCreator constructor(
@JsonProperty val signalingKey: String?,
@JsonProperty val registrationId: Int,
@JsonProperty val voice: Boolean,
@JsonProperty val video: Boolean,
@JsonProperty val fetchesMessages: Boolean,
@JsonProperty val registrationLock: String?,
@JsonProperty val unidentifiedAccessKey: ByteArray?,
@JsonProperty val unrestrictedUnidentifiedAccess: Boolean,
@JsonProperty val discoverableByPhoneNumber: Boolean,
@JsonProperty val capabilities: Capabilities?,
@JsonProperty val name: String?,
@JsonProperty val pniRegistrationId: Int,
@JsonProperty val recoveryPassword: String?
class AccountAttributes(
@JsonProperty("signalingKey") val signalingKey: String?,
@JsonProperty("registrationId") val registrationId: Int,
@JsonProperty("voice") val voice: Boolean,
@JsonProperty("video") val video: Boolean,
@JsonProperty("fetchesMessages") val fetchesMessages: Boolean,
@JsonProperty("registrationLock") val registrationLock: String?,
@JsonProperty("unidentifiedAccessKey") val unidentifiedAccessKey: ByteArray?,
@JsonProperty("unrestrictedUnidentifiedAccess") val unrestrictedUnidentifiedAccess: Boolean,
@JsonProperty("discoverableByPhoneNumber") val discoverableByPhoneNumber: Boolean,
@JsonProperty("capabilities") val capabilities: Capabilities?,
@JsonProperty("name") val name: String?,
@JsonProperty("pniRegistrationId") val pniRegistrationId: Int,
@JsonProperty("recoveryPassword") val recoveryPassword: String?
) {
constructor(
signalingKey: String?,
Expand Down Expand Up @@ -53,14 +52,14 @@ class AccountAttributes @JsonCreator constructor(
recoveryPassword = recoveryPassword
)

data class Capabilities @JsonCreator constructor(
@JsonProperty val storage: Boolean,
@JsonProperty val senderKey: Boolean,
@JsonProperty val announcementGroup: Boolean,
@JsonProperty val changeNumber: Boolean,
@JsonProperty val stories: Boolean,
@JsonProperty val giftBadges: Boolean,
@JsonProperty val pni: Boolean,
@JsonProperty val paymentActivation: Boolean
data class Capabilities(
@JsonProperty("storage") val storage: Boolean,
@JsonProperty("senderKey") val senderKey: Boolean,
@JsonProperty("announcementGroup") val announcementGroup: Boolean,
@JsonProperty("changeNumber") val changeNumber: Boolean,
@JsonProperty("stories") val stories: Boolean,
@JsonProperty("giftBadges") val giftBadges: Boolean,
@JsonProperty("pni") val pni: Boolean,
@JsonProperty("paymentActivation") val paymentActivation: Boolean
)
}
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package org.whispersystems.signalservice.internal.push

import com.fasterxml.jackson.annotation.JsonCreator
import com.fasterxml.jackson.annotation.JsonProperty
import okio.ByteString.Companion.encode
import org.whispersystems.signalservice.internal.ServiceResponse
import org.whispersystems.signalservice.internal.ServiceResponseProcessor
Expand All @@ -12,15 +13,15 @@ import java.nio.charset.StandardCharsets
*/
@Suppress("unused")
class BackupAuthCheckRequest @JsonCreator constructor(
val number: String?,
val passwords: List<String>
@JsonProperty("number") val number: String?,
@JsonProperty("passwords") val passwords: List<String>
)

/**
* Verify KBS auth credentials JSON response.
*/
data class BackupAuthCheckResponse @JsonCreator constructor(
private val matches: Map<String, Map<String, Any>>
@JsonProperty("matches") private val matches: Map<String, Map<String, Any>>
) {
private val actualMatches = matches["matches"] ?: emptyMap()

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,14 +6,15 @@
package org.whispersystems.signalservice.internal.push

import com.fasterxml.jackson.annotation.JsonCreator
import com.fasterxml.jackson.annotation.JsonProperty
import org.signal.core.util.Base64
import org.signal.libsignal.zkgroup.calllinks.CreateCallLinkCredentialRequest

/**
* Request body to create a call link credential response.
*/
data class CreateCallLinkAuthRequest @JsonCreator constructor(
val createCallLinkCredentialRequest: String
@JsonProperty("createCallLinkCredentialRequest") val createCallLinkCredentialRequest: String
) {
companion object {
@JvmStatic
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,6 @@ package org.whispersystems.signalservice.internal.push
import com.fasterxml.jackson.annotation.JsonProperty

data class GcmRegistrationId(
@JsonProperty val gcmRegistrationId: String,
@JsonProperty val webSocketChannel: Boolean
@JsonProperty("gcmRegistrationId") val gcmRegistrationId: String,
@JsonProperty("webSocketChannel") val webSocketChannel: Boolean
)
Original file line number Diff line number Diff line change
Expand Up @@ -3,4 +3,4 @@ package org.whispersystems.signalservice.internal.push
import com.fasterxml.jackson.annotation.JsonProperty

/** Response body for looking up a username by link from the service. */
data class GetUsernameFromLinkResponseBody(@JsonProperty val usernameLinkEncryptedValue: String)
data class GetUsernameFromLinkResponseBody(@JsonProperty("usernameLinkEncryptedValue") val usernameLinkEncryptedValue: String)
Original file line number Diff line number Diff line change
Expand Up @@ -7,16 +7,16 @@ import org.whispersystems.signalservice.api.push.SignedPreKeyEntity

@JsonInclude(JsonInclude.Include.NON_NULL)
data class RegistrationSessionRequestBody(
@JsonProperty val sessionId: String? = null,
@JsonProperty val recoveryPassword: String? = null,
@JsonProperty val accountAttributes: AccountAttributes,
@JsonProperty val aciIdentityKey: String,
@JsonProperty val pniIdentityKey: String,
@JsonProperty val aciSignedPreKey: SignedPreKeyEntity,
@JsonProperty val pniSignedPreKey: SignedPreKeyEntity,
@JsonProperty val aciPqLastResortPreKey: KyberPreKeyEntity,
@JsonProperty val pniPqLastResortPreKey: KyberPreKeyEntity,
@JsonProperty val gcmToken: GcmRegistrationId?,
@JsonProperty val skipDeviceTransfer: Boolean,
@JsonProperty val requireAtomic: Boolean = true
@JsonProperty("sessionId") val sessionId: String? = null,
@JsonProperty("recoveryPassword") val recoveryPassword: String? = null,
@JsonProperty("accountAttributes") val accountAttributes: AccountAttributes,
@JsonProperty("aciIdentityKey") val aciIdentityKey: String,
@JsonProperty("pniIdentityKey") val pniIdentityKey: String,
@JsonProperty("aciSignedPreKey") val aciSignedPreKey: SignedPreKeyEntity,
@JsonProperty("pniSignedPreKey") val pniSignedPreKey: SignedPreKeyEntity,
@JsonProperty("aciPqLastResortPreKey") val aciPqLastResortPreKey: KyberPreKeyEntity,
@JsonProperty("pniPqLastResortPreKey") val pniPqLastResortPreKey: KyberPreKeyEntity,
@JsonProperty("gcmToken") val gcmToken: GcmRegistrationId?,
@JsonProperty("skipDeviceTransfer") val skipDeviceTransfer: Boolean,
@JsonProperty("requireAtomic") val requireAtomic: Boolean = true
)
Original file line number Diff line number Diff line change
Expand Up @@ -3,4 +3,4 @@ package org.whispersystems.signalservice.internal.push
import com.fasterxml.jackson.annotation.JsonProperty

/** Request body for setting a username link on the service. */
data class SetUsernameLinkRequestBody(@JsonProperty val usernameLinkEncryptedValue: String)
data class SetUsernameLinkRequestBody(@JsonProperty("usernameLinkEncryptedValue") val usernameLinkEncryptedValue: String)
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ import java.util.UUID

/** Response body for setting a username link on the service. */
data class SetUsernameLinkResponseBody(
@JsonProperty
@JsonProperty("usernameLinkHandle")
@JsonDeserialize(using = UuidDeserializer::class)
val usernameLinkHandle: UUID
)
Original file line number Diff line number Diff line change
Expand Up @@ -2,4 +2,4 @@ package org.whispersystems.signalservice.internal.push

import com.fasterxml.jackson.annotation.JsonProperty

data class SpamTokenMessage(@JsonProperty val token: String?)
data class SpamTokenMessage(@JsonProperty("token") val token: String?)
Loading

0 comments on commit f1fba2a

Please sign in to comment.