WIP. migrate from logansquare to kotlinx

This commit is breaking the build for now!

There are added some TODOS that need to be resolved if migration is continued!!!!

This migration was initiated because of federation: it seemed to be necessary that RoomLastMessage(json) must be able to be of type ChatMessage and RoomProxyMessage, which is problematic with logansquare. Because of this (and because logansquare is outdated anyway), migration to kotlinx was started.
However it turned out that parsing to RoomProxyMessage is not necessary (for now?!).

So for now, work is paused (and might not be continued as there might be a migration to OpenAPI instead in the future).

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
This commit is contained in:
Marcel Hibbe 2024-03-07 15:41:04 +01:00
parent 3d7a72f189
commit 50e5c17ad4
No known key found for this signature in database
GPG key ID: C793F8B59F43CE7B
152 changed files with 844 additions and 938 deletions

View file

@ -288,6 +288,8 @@ dependencies {
implementation 'androidx.core:core-ktx:1.12.0'
implementation("com.jakewharton.retrofit:retrofit2-kotlinx-serialization-converter:1.0.0")
testImplementation 'junit:junit:4.13.2'
testImplementation 'org.mockito:mockito-core:5.10.0'
androidTestImplementation 'org.mockito:mockito-android:5.10.0'

View file

@ -4629,7 +4629,7 @@ class ChatActivity :
when (recent.systemMessageType) {
ChatMessage.SystemMessageType.CALL_STARTED -> { // add CallStartedMessage with id -2
if (!callStarted) {
val callStartedChatMessage = ChatMessage()
val callStartedChatMessage = ChatMessage(token = "0")
callStartedChatMessage.jsonMessageId = CALL_STARTED_ID
callStartedChatMessage.actorId = "-2"
val name = if (recent.actorDisplayName.isNullOrEmpty()) "Guest" else recent.actorDisplayName

View file

@ -29,7 +29,7 @@ import at.bitfire.dav4jvm.property.GetContentType
import at.bitfire.dav4jvm.property.GetLastModified
import at.bitfire.dav4jvm.property.ResourceType
import at.bitfire.dav4jvm.property.ResourceType.Companion.COLLECTION
import com.bluelinelabs.logansquare.annotation.JsonObject
import kotlinx.serialization.Serializable
import com.nextcloud.talk.components.filebrowser.models.properties.NCEncrypted
import com.nextcloud.talk.components.filebrowser.models.properties.NCPermission
import com.nextcloud.talk.components.filebrowser.models.properties.NCPreview
@ -41,7 +41,7 @@ import kotlinx.parcelize.Parcelize
import java.io.File
@Parcelize
@JsonObject
@Serializable
data class BrowserFile(
var path: String? = null,
var displayName: String? = null,

View file

@ -23,6 +23,7 @@ import android.content.Context
import android.text.TextUtils
import android.util.Log
import com.github.aurae.retrofit2.LoganSquareConverterFactory
import com.jakewharton.retrofit2.converter.kotlinx.serialization.asConverterFactory
import com.nextcloud.talk.BuildConfig
import com.nextcloud.talk.R
import com.nextcloud.talk.api.NcApi
@ -37,6 +38,7 @@ import com.nextcloud.talk.utils.ssl.TrustManager
import dagger.Module
import dagger.Provides
import io.reactivex.schedulers.Schedulers
import kotlinx.serialization.json.Json
import okhttp3.Authenticator
import okhttp3.Cache
import okhttp3.Credentials.basic
@ -44,6 +46,7 @@ import okhttp3.Dispatcher
import okhttp3.Interceptor
import okhttp3.Interceptor.Chain
import okhttp3.JavaNetCookieJar
import okhttp3.MediaType.Companion.toMediaType
import okhttp3.OkHttpClient
import okhttp3.Request
import okhttp3.Response
@ -100,11 +103,14 @@ class RestModule(private val context: Context) {
@Singleton
@Provides
fun provideRetrofit(httpClient: OkHttpClient?): Retrofit {
val contentType = "application/json".toMediaType()
val retrofitBuilder = Retrofit.Builder()
.client(httpClient!!)
.baseUrl("https://nextcloud.com")
.addCallAdapterFactory(RxJava2CallAdapterFactory.createWithScheduler(Schedulers.io()))
.addConverterFactory(LoganSquareConverterFactory.create())
// .addConverterFactory(LoganSquareConverterFactory.create())
.addConverterFactory(Json.asConverterFactory(contentType));
return retrofitBuilder.build()
}

View file

@ -26,9 +26,11 @@ import com.nextcloud.talk.models.json.capabilities.ServerVersion
import com.nextcloud.talk.models.json.push.PushConfigurationState
import com.nextcloud.talk.utils.ApiUtils
import kotlinx.parcelize.Parcelize
import kotlinx.serialization.Serializable
import java.lang.Boolean.FALSE
@Parcelize
@Serializable
data class User(
var id: Long? = null,
var userId: String? = null,

View file

@ -22,16 +22,16 @@
package com.nextcloud.talk.models
import android.os.Parcelable
import com.bluelinelabs.logansquare.annotation.JsonField
import com.bluelinelabs.logansquare.annotation.JsonObject
import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable
import kotlinx.parcelize.Parcelize
@Parcelize
@JsonObject
@Serializable
data class ExternalSignalingServer(
@JsonField(name = ["externalSignalingServer"])
@SerialName("externalSignalingServer")
var externalSignalingServer: String? = null,
@JsonField(name = ["externalSignalingTicket"])
@SerialName("externalSignalingTicket")
var externalSignalingTicket: String? = null
) : Parcelable {
// This constructor is added to work with the 'com.bluelinelabs.logansquare.annotation.JsonObject'

View file

@ -23,19 +23,19 @@ package com.nextcloud.talk.models
import android.net.Uri
import android.os.Parcelable
import com.bluelinelabs.logansquare.annotation.JsonField
import com.bluelinelabs.logansquare.annotation.JsonObject
import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable
import com.nextcloud.talk.models.json.converters.UriTypeConverter
import kotlinx.parcelize.Parcelize
@Parcelize
@JsonObject
@Serializable
data class RingtoneSettings(
@JsonField(name = ["ringtoneUri"], typeConverter = UriTypeConverter::class)
var ringtoneUri: Uri? = null,
@JsonField(name = ["ringtoneName"])
@SerialName("ringtoneUri", typeConverter = UriTypeConverter::class)
// var ringtoneUri: Uri? = null,
@SerialName("ringtoneName")
var ringtoneName: String? = null
) : Parcelable {
// This constructor is added to work with the 'com.bluelinelabs.logansquare.annotation.JsonObject'
constructor() : this(null, null)
constructor() : this(null)
}

View file

@ -24,17 +24,15 @@
package com.nextcloud.talk.models.json.autocomplete
import android.os.Parcelable
import com.bluelinelabs.logansquare.annotation.JsonField
import com.bluelinelabs.logansquare.annotation.JsonObject
import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable
import com.nextcloud.talk.models.json.generic.GenericMeta
import kotlinx.parcelize.Parcelize
@Parcelize
@JsonObject
@Serializable
data class AutocompleteOCS(
@JsonField(name = ["meta"])
var meta: GenericMeta?,
@JsonField(name = ["data"])
var data: List<AutocompleteUser>?
) : Parcelable {
// This constructor is added to work with the 'com.bluelinelabs.logansquare.annotation.JsonObject'

View file

@ -22,14 +22,13 @@
package com.nextcloud.talk.models.json.autocomplete
import android.os.Parcelable
import com.bluelinelabs.logansquare.annotation.JsonField
import com.bluelinelabs.logansquare.annotation.JsonObject
import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable
import kotlinx.parcelize.Parcelize
@Parcelize
@JsonObject
@Serializable
data class AutocompleteOverall(
@JsonField(name = ["ocs"])
var ocs: AutocompleteOCS?
) : Parcelable {
// This constructor is added to work with the 'com.bluelinelabs.logansquare.annotation.JsonObject'

View file

@ -22,18 +22,15 @@
package com.nextcloud.talk.models.json.autocomplete
import android.os.Parcelable
import com.bluelinelabs.logansquare.annotation.JsonField
import com.bluelinelabs.logansquare.annotation.JsonObject
import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable
import kotlinx.parcelize.Parcelize
@Parcelize
@JsonObject
@Serializable
data class AutocompleteUser(
@JsonField(name = ["id"])
var id: String?,
@JsonField(name = ["label"])
var label: String?,
@JsonField(name = ["source"])
var source: String?
) : Parcelable {
// This constructor is added to work with the 'com.bluelinelabs.logansquare.annotation.JsonObject'

View file

@ -24,26 +24,26 @@
package com.nextcloud.talk.models.json.capabilities
import android.os.Parcelable
import com.bluelinelabs.logansquare.annotation.JsonField
import com.bluelinelabs.logansquare.annotation.JsonObject
import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable
import kotlinx.parcelize.Parcelize
@Parcelize
@JsonObject
@Serializable
data class Capabilities(
@JsonField(name = ["core"])
@SerialName("core")
var coreCapability: CoreCapability?,
@JsonField(name = ["spreed"])
@SerialName("spreed")
var spreedCapability: SpreedCapability?,
@JsonField(name = ["notifications"])
@SerialName("notifications")
var notificationsCapability: NotificationsCapability?,
@JsonField(name = ["theming"])
@SerialName("theming")
var themingCapability: ThemingCapability?,
@JsonField(name = ["external"])
@SerialName("external")
var externalCapability: HashMap<String, List<String>>?,
@JsonField(name = ["provisioning_api"])
@SerialName("provisioning_api")
var provisioningCapability: ProvisioningCapability?,
@JsonField(name = ["user_status"])
@SerialName("user_status")
var userStatusCapability: UserStatusCapability?
) : Parcelable {
// This constructor is added to work with the 'com.bluelinelabs.logansquare.annotation.JsonObject'

View file

@ -22,16 +22,16 @@
package com.nextcloud.talk.models.json.capabilities
import android.os.Parcelable
import com.bluelinelabs.logansquare.annotation.JsonField
import com.bluelinelabs.logansquare.annotation.JsonObject
import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable
import kotlinx.parcelize.Parcelize
@Parcelize
@JsonObject
@Serializable
data class CapabilitiesList(
@JsonField(name = ["version"])
@SerialName("version")
var serverVersion: ServerVersion?,
@JsonField(name = ["capabilities"])
@SerialName("capabilities")
var capabilities: Capabilities?
) : Parcelable {
// This constructor is added to work with the 'com.bluelinelabs.logansquare.annotation.JsonObject'

View file

@ -24,17 +24,17 @@
package com.nextcloud.talk.models.json.capabilities
import android.os.Parcelable
import com.bluelinelabs.logansquare.annotation.JsonField
import com.bluelinelabs.logansquare.annotation.JsonObject
import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable
import com.nextcloud.talk.models.json.generic.GenericMeta
import kotlinx.parcelize.Parcelize
@Parcelize
@JsonObject
@Serializable
data class CapabilitiesOCS(
@JsonField(name = ["meta"])
@SerialName("meta")
var meta: GenericMeta?,
@JsonField(name = ["data"])
@SerialName("data")
var data: CapabilitiesList?
) : Parcelable {
// This constructor is added to work with the 'com.bluelinelabs.logansquare.annotation.JsonObject'

View file

@ -22,14 +22,14 @@
package com.nextcloud.talk.models.json.capabilities
import android.os.Parcelable
import com.bluelinelabs.logansquare.annotation.JsonField
import com.bluelinelabs.logansquare.annotation.JsonObject
import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable
import kotlinx.parcelize.Parcelize
@Parcelize
@JsonObject
@Serializable
data class CapabilitiesOverall(
@JsonField(name = ["ocs"])
@SerialName("ocs")
var ocs: CapabilitiesOCS? = null
) : Parcelable {
// This constructor is added to work with the 'com.bluelinelabs.logansquare.annotation.JsonObject'

View file

@ -20,22 +20,20 @@
package com.nextcloud.talk.models.json.capabilities
import android.os.Parcelable
import com.bluelinelabs.logansquare.annotation.JsonField
import com.bluelinelabs.logansquare.annotation.JsonObject
import kotlinx.parcelize.Parcelize
import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable
import kotlinx.parcelize.Parcelize
@Parcelize
@JsonObject
@Serializable
data class CoreCapability(
@JsonField(name = ["pollinterval"])
@SerialName("pollinterval")
var pollInterval: Int?,
@JsonField(name = ["webdav-root"])
@SerialName("webdav-root")
var webdavRoot: String?,
@JsonField(name = ["reference-api"])
@SerialName("reference-api")
var referenceApi: String?,
@JsonField(name = ["reference-regex"])
@SerialName("reference-regex")
var referenceRegex: String?
) : Parcelable {
// This constructor is added to work with the 'com.bluelinelabs.logansquare.annotation.JsonObject'

View file

@ -22,16 +22,14 @@
package com.nextcloud.talk.models.json.capabilities
import android.os.Parcelable
import com.bluelinelabs.logansquare.annotation.JsonField
import com.bluelinelabs.logansquare.annotation.JsonObject
import kotlinx.parcelize.Parcelize
import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable
import kotlinx.parcelize.Parcelize
@Parcelize
@JsonObject
@Serializable
data class NotificationsCapability(
@JsonField(name = ["ocs-endpoints"])
@SerialName("ocs-endpoints")
var features: List<String>?
) : Parcelable {
// This constructor is added to work with the 'com.bluelinelabs.logansquare.annotation.JsonObject'

View file

@ -22,16 +22,14 @@
package com.nextcloud.talk.models.json.capabilities
import android.os.Parcelable
import com.bluelinelabs.logansquare.annotation.JsonField
import com.bluelinelabs.logansquare.annotation.JsonObject
import kotlinx.parcelize.Parcelize
import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable
import kotlinx.parcelize.Parcelize
@Parcelize
@JsonObject
@Serializable
data class ProvisioningCapability(
@JsonField(name = ["AccountPropertyScopesVersion"])
@SerialName("AccountPropertyScopesVersion")
var accountPropertyScopesVersion: Int?
) : Parcelable {
// This constructor is added to work with the 'com.bluelinelabs.logansquare.annotation.JsonObject'

View file

@ -24,17 +24,15 @@
package com.nextcloud.talk.models.json.capabilities
import android.os.Parcelable
import com.bluelinelabs.logansquare.annotation.JsonField
import com.bluelinelabs.logansquare.annotation.JsonObject
import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable
import com.nextcloud.talk.models.json.generic.GenericMeta
import kotlinx.parcelize.Parcelize
@Parcelize
@JsonObject
@Serializable
data class RoomCapabilitiesOCS(
@JsonField(name = ["meta"])
var meta: GenericMeta?,
@JsonField(name = ["data"])
var data: SpreedCapability?
) : Parcelable {
// This constructor is added to work with the 'com.bluelinelabs.logansquare.annotation.JsonObject'

View file

@ -22,14 +22,13 @@
package com.nextcloud.talk.models.json.capabilities
import android.os.Parcelable
import com.bluelinelabs.logansquare.annotation.JsonField
import com.bluelinelabs.logansquare.annotation.JsonObject
import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable
import kotlinx.parcelize.Parcelize
@Parcelize
@JsonObject
@Serializable
data class RoomCapabilitiesOverall(
@JsonField(name = ["ocs"])
var ocs: RoomCapabilitiesOCS? = null
) : Parcelable {
// This constructor is added to work with the 'com.bluelinelabs.logansquare.annotation.JsonObject'

View file

@ -20,20 +20,17 @@
package com.nextcloud.talk.models.json.capabilities
import android.os.Parcelable
import com.bluelinelabs.logansquare.annotation.JsonField
import com.bluelinelabs.logansquare.annotation.JsonObject
import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable
import kotlinx.parcelize.Parcelize
@Parcelize
@JsonObject
@Serializable
data class ServerVersion(
@JsonField(name = ["major"])
var major: Int = 0,
@JsonField(name = ["minor"])
var minor: Int = 0,
@JsonField(name = ["micro"])
var micro: Int = 0,
@JsonField(name = ["string"])
@SerialName("string")
var versionString: String? = null
) : Parcelable {
// This constructor is added to work with the 'com.bluelinelabs.logansquare.annotation.JsonObject'

View file

@ -22,21 +22,19 @@
package com.nextcloud.talk.models.json.capabilities
import android.os.Parcelable
import com.bluelinelabs.logansquare.annotation.JsonField
import com.bluelinelabs.logansquare.annotation.JsonObject
import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable
import kotlinx.parcelize.Parcelize
import kotlinx.parcelize.RawValue
import kotlinx.serialization.Contextual
import kotlinx.serialization.Serializable
@Parcelize
@JsonObject
@Serializable
data class SpreedCapability(
@JsonField(name = ["features"])
@SerialName("features")
var features: List<String>?,
@JsonField(name = ["config"])
@SerialName("config")
var config: HashMap<
String,
HashMap<
@ -46,7 +44,7 @@ data class SpreedCapability(
Any
>
>?,
@JsonField(name = ["version"])
@SerialName("version")
var version: String
) : Parcelable {
// This constructor is added to work with the 'com.bluelinelabs.logansquare.annotation.JsonObject'

View file

@ -22,38 +22,31 @@
package com.nextcloud.talk.models.json.capabilities
import android.os.Parcelable
import com.bluelinelabs.logansquare.annotation.JsonField
import com.bluelinelabs.logansquare.annotation.JsonObject
import kotlinx.parcelize.Parcelize
import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable
import kotlinx.parcelize.Parcelize
@Parcelize
@JsonObject
@Serializable
data class ThemingCapability(
@JsonField(name = ["name"])
var name: String?,
@JsonField(name = ["url"])
var url: String?,
@JsonField(name = ["slogan"])
var slogan: String?,
@JsonField(name = ["color"])
var color: String?,
@JsonField(name = ["color-text"])
@SerialName("color-text")
var colorText: String?,
@JsonField(name = ["color-element"])
@SerialName("color-element")
var colorElement: String?,
@JsonField(name = ["color-element-bright"])
@SerialName("color-element-bright")
var colorElementBright: String?,
@JsonField(name = ["color-element-dark"])
@SerialName("color-element-dark")
var colorElementDark: String?,
@JsonField(name = ["logo"])
var logo: String?,
@JsonField(name = ["background"])
@SerialName("background")
var background: String?,
@JsonField(name = ["background-plain"])
@SerialName("background-plain")
var backgroundPlain: Boolean?,
@JsonField(name = ["background-default"])
@SerialName("background-default")
var backgroundDefault: Boolean?
) : Parcelable {
// This constructor is added to work with the 'com.bluelinelabs.logansquare.annotation.JsonObject'

View file

@ -22,18 +22,15 @@
package com.nextcloud.talk.models.json.capabilities
import android.os.Parcelable
import com.bluelinelabs.logansquare.annotation.JsonField
import com.bluelinelabs.logansquare.annotation.JsonObject
import kotlinx.parcelize.Parcelize
import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable
import kotlinx.parcelize.Parcelize
@Parcelize
@JsonObject
@Serializable
data class UserStatusCapability(
@JsonField(name = ["enabled"])
var enabled: Boolean,
@JsonField(name = ["supports_emoji"])
@SerialName("supports_emoji")
var supportsEmoji: Boolean
) : Parcelable {
// This constructor is added to work with the 'com.bluelinelabs.logansquare.annotation.JsonObject'

View file

@ -28,24 +28,26 @@ package com.nextcloud.talk.models.json.chat
import android.os.Parcelable
import android.text.TextUtils
import android.util.Log
import com.bluelinelabs.logansquare.annotation.JsonField
import kotlinx.serialization.SerialName
import com.bluelinelabs.logansquare.annotation.JsonIgnore
import com.bluelinelabs.logansquare.annotation.JsonObject
import kotlinx.serialization.Serializable
import com.nextcloud.talk.R
import com.nextcloud.talk.application.NextcloudTalkApplication.Companion.sharedApplication
import com.nextcloud.talk.data.user.model.User
import com.nextcloud.talk.models.json.chat.ChatUtils.Companion.getParsedMessage
import com.nextcloud.talk.models.json.converters.EnumSystemMessageTypeConverter
import com.nextcloud.talk.models.json.converters.KotlinxJodaTimeConverter
import com.nextcloud.talk.utils.ApiUtils
import com.nextcloud.talk.utils.CapabilitiesUtil
import com.stfalcon.chatkit.commons.models.IUser
import com.stfalcon.chatkit.commons.models.MessageContentType
import kotlinx.parcelize.Parcelize
import kotlinx.serialization.Transient
import java.security.MessageDigest
import java.util.Date
@Parcelize
@JsonObject
@Serializable
data class ChatMessage(
@JsonIgnore
var isGrouped: Boolean = false,
@ -65,72 +67,74 @@ data class ChatMessage(
@JsonIgnore
var isDeleted: Boolean = false,
@JsonField(name = ["id"])
@SerialName("id")
var jsonMessageId: Int = 0,
@JsonIgnore
var previousMessageId: Int = -1,
@JsonField(name = ["token"])
var token: String? = null,
@SerialName("token")
var token: String = "",
// guests or users
@JsonField(name = ["actorType"])
@SerialName("actorType")
var actorType: String? = null,
@JsonField(name = ["actorId"])
@SerialName("actorId")
var actorId: String? = null,
// send when crafting a message
@JsonField(name = ["actorDisplayName"])
@SerialName("actorDisplayName")
var actorDisplayName: String? = null,
@JsonField(name = ["timestamp"])
@SerialName("timestamp")
var timestamp: Long = 0,
// send when crafting a message, max 1000 lines
@JsonField(name = ["message"])
@SerialName("message")
var message: String? = null,
@JsonField(name = ["messageParameters"])
@SerialName("messageParameters")
var messageParameters: HashMap<String?, HashMap<String?, String?>>? = null,
@JsonField(name = ["systemMessage"], typeConverter = EnumSystemMessageTypeConverter::class)
@SerialName("systemMessage")
// @Serializable(with = EnumSystemMessageTypeConverter::class)
var systemMessageType: SystemMessageType? = null,
@JsonField(name = ["isReplyable"])
@SerialName("isReplyable")
var replyable: Boolean = false,
@JsonField(name = ["parent"])
@SerialName("parent")
var parentMessage: ChatMessage? = null,
@Transient
var readStatus: Enum<ReadStatus> = ReadStatus.NONE,
@JsonField(name = ["messageType"])
@SerialName("messageType")
var messageType: String? = null,
@JsonField(name = ["reactions"])
@SerialName("reactions")
var reactions: LinkedHashMap<String, Int>? = null,
@JsonField(name = ["reactionsSelf"])
@SerialName("reactionsSelf")
var reactionsSelf: ArrayList<String>? = null,
@JsonField(name = ["expirationTimestamp"])
@SerialName("expirationTimestamp")
var expirationTimestamp: Int = 0,
@JsonField(name = ["markdown"])
@SerialName("markdown")
var renderMarkdown: Boolean? = null,
@JsonField(name = ["lastEditActorDisplayName"])
@SerialName("lastEditActorDisplayName")
var lastEditActorDisplayName: String? = null,
@JsonField(name = ["lastEditActorId"])
@SerialName("lastEditActorId")
var lastEditActorId: String? = null,
@JsonField(name = ["lastEditActorType"])
@SerialName("lastEditActorType")
var lastEditActorType: String? = null,
@JsonField(name = ["lastEditTimestamp"])
@SerialName("lastEditTimestamp")
var lastEditTimestamp: Long = 0,
var isDownloadingVoiceMessage: Boolean = false,

View file

@ -22,17 +22,17 @@
package com.nextcloud.talk.models.json.chat
import android.os.Parcelable
import com.bluelinelabs.logansquare.annotation.JsonField
import com.bluelinelabs.logansquare.annotation.JsonObject
import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable
import com.nextcloud.talk.models.json.generic.GenericMeta
import kotlinx.parcelize.Parcelize
@Parcelize
@JsonObject
@Serializable
data class ChatOCS(
@JsonField(name = ["meta"])
@SerialName("meta")
var meta: GenericMeta?,
@JsonField(name = ["data"])
@SerialName("data")
var data: List<ChatMessage>? = null
) : Parcelable {
// This constructor is added to work with the 'com.bluelinelabs.logansquare.annotation.JsonObject'

View file

@ -22,17 +22,17 @@
package com.nextcloud.talk.models.json.chat
import android.os.Parcelable
import com.bluelinelabs.logansquare.annotation.JsonField
import com.bluelinelabs.logansquare.annotation.JsonObject
import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable
import com.nextcloud.talk.models.json.generic.GenericMeta
import kotlinx.parcelize.Parcelize
@Parcelize
@JsonObject
@Serializable
data class ChatOCSSingleMessage(
@JsonField(name = ["meta"])
@SerialName("meta")
var meta: GenericMeta?,
@JsonField(name = ["data"])
@SerialName("data")
var data: ChatMessage? = null
) : Parcelable {
// This constructor is added to work with the 'com.bluelinelabs.logansquare.annotation.JsonObject'

View file

@ -22,14 +22,14 @@
package com.nextcloud.talk.models.json.chat
import android.os.Parcelable
import com.bluelinelabs.logansquare.annotation.JsonField
import com.bluelinelabs.logansquare.annotation.JsonObject
import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable
import kotlinx.parcelize.Parcelize
@Parcelize
@JsonObject
@Serializable
data class ChatOverall(
@JsonField(name = ["ocs"])
@SerialName("ocs")
var ocs: ChatOCS? = null
) : Parcelable {
// This constructor is added to work with the 'com.bluelinelabs.logansquare.annotation.JsonObject'

View file

@ -22,14 +22,14 @@
package com.nextcloud.talk.models.json.chat
import android.os.Parcelable
import com.bluelinelabs.logansquare.annotation.JsonField
import com.bluelinelabs.logansquare.annotation.JsonObject
import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable
import kotlinx.parcelize.Parcelize
@Parcelize
@JsonObject
@Serializable
data class ChatOverallSingleMessage(
@JsonField(name = ["ocs"])
@SerialName("ocs")
var ocs: ChatOCSSingleMessage? = null
) : Parcelable {
// This constructor is added to work with the 'com.bluelinelabs.logansquare.annotation.JsonObject'

View file

@ -22,15 +22,15 @@
package com.nextcloud.talk.models.json.chat
import android.os.Parcelable
import com.bluelinelabs.logansquare.annotation.JsonField
import com.bluelinelabs.logansquare.annotation.JsonObject
import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable
import java.util.HashMap
import kotlinx.parcelize.Parcelize
@Parcelize
@JsonObject
@Serializable
data class ChatShareOCS(
@JsonField(name = ["data"])
@SerialName("data")
var data: HashMap<String, ChatMessage>? = null
) : Parcelable {
// This constructor is added to work with the 'com.bluelinelabs.logansquare.annotation.JsonObject'

View file

@ -22,14 +22,14 @@
package com.nextcloud.talk.models.json.chat
import android.os.Parcelable
import com.bluelinelabs.logansquare.annotation.JsonField
import com.bluelinelabs.logansquare.annotation.JsonObject
import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable
import kotlinx.parcelize.Parcelize
@Parcelize
@JsonObject
@Serializable
data class ChatShareOverall(
@JsonField(name = ["ocs"])
@SerialName("ocs")
var ocs: ChatShareOCS? = null
) : Parcelable {
// This constructor is added to work with the 'com.bluelinelabs.logansquare.annotation.JsonObject'

View file

@ -22,19 +22,19 @@
package com.nextcloud.talk.models.json.chat
import android.os.Parcelable
import com.bluelinelabs.logansquare.annotation.JsonField
import com.bluelinelabs.logansquare.annotation.JsonObject
import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable
import com.nextcloud.talk.models.json.AnyParceler
import kotlinx.parcelize.Parcelize
import kotlinx.parcelize.TypeParceler
import java.util.HashMap
@Parcelize
@JsonObject
@Serializable
@TypeParceler<Any, AnyParceler>
data class ChatShareOverviewOCS(
@JsonField(name = ["data"])
var data: HashMap<String, List<Any>>? = null
@SerialName("data")
var data: HashMap<String, List<ChatMessage>>? = null
) : Parcelable {
// This constructor is added to work with the 'com.bluelinelabs.logansquare.annotation.JsonObject'
constructor() : this(null)

View file

@ -22,14 +22,14 @@
package com.nextcloud.talk.models.json.chat
import android.os.Parcelable
import com.bluelinelabs.logansquare.annotation.JsonField
import com.bluelinelabs.logansquare.annotation.JsonObject
import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable
import kotlinx.parcelize.Parcelize
@Parcelize
@JsonObject
@Serializable
data class ChatShareOverviewOverall(
@JsonField(name = ["ocs"])
@SerialName("ocs")
var ocs: ChatShareOverviewOCS? = null
) : Parcelable {
// This constructor is added to work with the 'com.bluelinelabs.logansquare.annotation.JsonObject'

View file

@ -26,8 +26,8 @@
package com.nextcloud.talk.models.json.conversations
import android.os.Parcelable
import com.bluelinelabs.logansquare.annotation.JsonField
import com.bluelinelabs.logansquare.annotation.JsonObject
import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable
import com.nextcloud.talk.data.user.model.User
import com.nextcloud.talk.models.domain.ConversationModel
import com.nextcloud.talk.models.json.chat.ChatMessage
@ -44,129 +44,126 @@ import com.nextcloud.talk.utils.CapabilitiesUtil
import kotlinx.parcelize.Parcelize
@Parcelize
@JsonObject
@Serializable
data class Conversation(
@JsonField(name = ["id"])
@SerialName("id")
var roomId: String? = null,
@JsonField(name = ["token"])
@SerialName("token")
var token: String? = null,
@JsonField(name = ["name"])
@SerialName("name")
var name: String? = null,
@JsonField(name = ["displayName"])
@SerialName("displayName")
var displayName: String? = null,
@JsonField(name = ["description"])
@SerialName("description")
var description: String? = null,
@JsonField(name = ["type"], typeConverter = EnumRoomTypeConverter::class)
@SerialName("type", typeConverter = EnumRoomTypeConverter::class)
var type: ConversationType? = null,
@JsonField(name = ["lastPing"])
@SerialName("lastPing")
var lastPing: Long = 0,
@JsonField(name = ["participantType"], typeConverter = EnumParticipantTypeConverter::class)
@SerialName("participantType", typeConverter = EnumParticipantTypeConverter::class)
var participantType: ParticipantType? = null,
@JsonField(name = ["hasPassword"])
@SerialName("hasPassword")
var hasPassword: Boolean = false,
@JsonField(name = ["sessionId"])
@SerialName("sessionId")
var sessionId: String? = null,
@JsonField(name = ["actorId"])
@SerialName("actorId")
var actorId: String? = null,
@JsonField(name = ["actorType"])
@SerialName("actorType")
var actorType: String? = null,
var password: String? = null,
@JsonField(name = ["isFavorite"])
@SerialName("isFavorite")
var favorite: Boolean = false,
@JsonField(name = ["lastActivity"])
@SerialName("lastActivity")
var lastActivity: Long = 0,
@JsonField(name = ["unreadMessages"])
@SerialName("unreadMessages")
var unreadMessages: Int = 0,
@JsonField(name = ["unreadMention"])
@SerialName("unreadMention")
var unreadMention: Boolean = false,
@JsonField(name = ["lastMessage"])
@SerialName("lastMessage")
var lastMessage: ChatMessage? = null,
@JsonField(name = ["objectType"], typeConverter = ConversationObjectTypeConverter::class)
@SerialName("objectType", typeConverter = ConversationObjectTypeConverter::class)
var objectType: ObjectType? = null,
@JsonField(name = ["notificationLevel"], typeConverter = EnumNotificationLevelConverter::class)
@SerialName("notificationLevel", typeConverter = EnumNotificationLevelConverter::class)
var notificationLevel: NotificationLevel? = null,
@JsonField(name = ["readOnly"], typeConverter = EnumReadOnlyConversationConverter::class)
@SerialName("readOnly", typeConverter = EnumReadOnlyConversationConverter::class)
var conversationReadOnlyState: ConversationReadOnlyState? = null,
@JsonField(name = ["lobbyState"], typeConverter = EnumLobbyStateConverter::class)
@SerialName("lobbyState", typeConverter = EnumLobbyStateConverter::class)
var lobbyState: LobbyState? = null,
@JsonField(name = ["lobbyTimer"])
@SerialName("lobbyTimer")
var lobbyTimer: Long? = null,
@JsonField(name = ["lastReadMessage"])
@SerialName("lastReadMessage")
var lastReadMessage: Int = 0,
@JsonField(name = ["hasCall"])
@SerialName("hasCall")
var hasCall: Boolean = false,
@JsonField(name = ["callFlag"])
@SerialName("callFlag")
var callFlag: Int = 0,
@JsonField(name = ["canStartCall"])
@SerialName("canStartCall")
var canStartCall: Boolean = false,
@JsonField(name = ["canLeaveConversation"])
@SerialName("canLeaveConversation")
var canLeaveConversation: Boolean? = null,
@JsonField(name = ["canDeleteConversation"])
@SerialName("canDeleteConversation")
var canDeleteConversation: Boolean? = null,
@JsonField(name = ["unreadMentionDirect"])
@SerialName("unreadMentionDirect")
var unreadMentionDirect: Boolean? = null,
@JsonField(name = ["notificationCalls"])
@SerialName("notificationCalls")
var notificationCalls: Int? = null,
@JsonField(name = ["permissions"])
@SerialName("permissions")
var permissions: Int = 0,
@JsonField(name = ["messageExpiration"])
@SerialName("messageExpiration")
var messageExpiration: Int = 0,
@JsonField(name = ["status"])
@SerialName("status")
var status: String? = null,
@JsonField(name = ["statusIcon"])
@SerialName("statusIcon")
var statusIcon: String? = null,
@JsonField(name = ["statusMessage"])
@SerialName("statusMessage")
var statusMessage: String? = null,
@JsonField(name = ["statusClearAt"])
@SerialName("statusClearAt")
var statusClearAt: Long? = 0,
@JsonField(name = ["callRecording"])
@SerialName("callRecording")
var callRecording: Int = 0,
@JsonField(name = ["avatarVersion"])
@SerialName("avatarVersion")
var avatarVersion: String? = null,
// Be aware that variables with "is" at the beginning will lead to the error:
// "@JsonField annotation can only be used on private fields if both getter and setter are present."
// "//@JsonField annotation can only be used on private fields if both getter and setter are present."
// Instead, name it with "has" at the beginning: isCustomAvatar -> hasCustomAvatar
@JsonField(name = ["isCustomAvatar"])
@SerialName("isCustomAvatar")
var hasCustomAvatar: Boolean? = null,
@JsonField(name = ["callStartTime"])
var callStartTime: Long? = null,
@JsonField(name = ["recordingConsent"])
@SerialName("recordingConsent")
var recordingConsentRequired: Int = 0,
@JsonField(name = ["remoteServer"])
var remoteServer: String? = null,
@JsonField(name = ["remoteToken"])
var remoteToken: String? = null
) : Parcelable {

View file

@ -22,17 +22,15 @@
package com.nextcloud.talk.models.json.conversations
import android.os.Parcelable
import com.bluelinelabs.logansquare.annotation.JsonField
import com.bluelinelabs.logansquare.annotation.JsonObject
import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable
import com.nextcloud.talk.models.json.generic.GenericMeta
import kotlinx.parcelize.Parcelize
@Parcelize
@JsonObject
@Serializable
data class RoomOCS(
@JsonField(name = ["meta"])
var meta: GenericMeta?,
@JsonField(name = ["data"])
var data: Conversation? = null
) : Parcelable {
// This constructor is added to work with the 'com.bluelinelabs.logansquare.annotation.JsonObject'

View file

@ -22,14 +22,13 @@
package com.nextcloud.talk.models.json.conversations
import android.os.Parcelable
import com.bluelinelabs.logansquare.annotation.JsonField
import com.bluelinelabs.logansquare.annotation.JsonObject
import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable
import kotlinx.parcelize.Parcelize
@Parcelize
@JsonObject
@Serializable
data class RoomOverall(
@JsonField(name = ["ocs"])
var ocs: RoomOCS? = null
) : Parcelable {
// This constructor is added to work with the 'com.bluelinelabs.logansquare.annotation.JsonObject'

View file

@ -22,17 +22,15 @@
package com.nextcloud.talk.models.json.conversations
import android.os.Parcelable
import com.bluelinelabs.logansquare.annotation.JsonField
import com.bluelinelabs.logansquare.annotation.JsonObject
import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable
import com.nextcloud.talk.models.json.generic.GenericMeta
import kotlinx.parcelize.Parcelize
@Parcelize
@JsonObject
@Serializable
data class RoomsOCS(
@JsonField(name = ["meta"])
var meta: GenericMeta?,
@JsonField(name = ["data"])
var data: List<Conversation>? = null
) : Parcelable {
// This constructor is added to work with the 'com.bluelinelabs.logansquare.annotation.JsonObject'

View file

@ -22,14 +22,14 @@
package com.nextcloud.talk.models.json.conversations
import android.os.Parcelable
import com.bluelinelabs.logansquare.annotation.JsonField
import com.bluelinelabs.logansquare.annotation.JsonObject
import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable
import kotlinx.parcelize.Parcelize
@Parcelize
@JsonObject
@Serializable
data class RoomsOverall(
@JsonField(name = ["ocs"])
@SerialName("ocs")
var ocs: RoomsOCS? = null
) : Parcelable {
// This constructor is added to work with the 'com.bluelinelabs.logansquare.annotation.JsonObject'

View file

@ -21,14 +21,13 @@
package com.nextcloud.talk.models.json.conversations.password
import android.os.Parcelable
import com.bluelinelabs.logansquare.annotation.JsonField
import com.bluelinelabs.logansquare.annotation.JsonObject
import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable
import kotlinx.parcelize.Parcelize
@JsonObject
@Serializable
@Parcelize
data class PasswordData(
@JsonField(name = ["message"])
var message: String? = null
) : Parcelable {
// This constructor is added to work with the 'com.bluelinelabs.logansquare.annotation.JsonObject'

View file

@ -21,18 +21,15 @@
package com.nextcloud.talk.models.json.conversations.password
import android.os.Parcelable
import com.bluelinelabs.logansquare.annotation.JsonField
import com.bluelinelabs.logansquare.annotation.JsonObject
import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable
import com.nextcloud.talk.models.json.generic.GenericMeta
import kotlinx.parcelize.Parcelize
@Parcelize
@JsonObject
@Serializable
data class PasswordOCS(
@JsonField(name = ["meta"])
var meta: GenericMeta? = null,
@JsonField(name = ["data"])
var data: PasswordData? = null
) : Parcelable {
// This constructor is added to work with the 'com.bluelinelabs.logansquare.annotation.JsonObject'

View file

@ -21,14 +21,13 @@
package com.nextcloud.talk.models.json.conversations.password
import android.os.Parcelable
import com.bluelinelabs.logansquare.annotation.JsonField
import com.bluelinelabs.logansquare.annotation.JsonObject
import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable
import kotlinx.parcelize.Parcelize
@Parcelize
@JsonObject
@Serializable
data class PasswordOverall(
@JsonField(name = ["ocs"])
var ocs: PasswordOCS? = null
) : Parcelable {
// This constructor is added to work with the 'com.bluelinelabs.logansquare.annotation.JsonObject'

View file

@ -22,18 +22,20 @@
package com.nextcloud.talk.models.json.generic
import android.os.Parcelable
import com.bluelinelabs.logansquare.annotation.JsonField
import com.bluelinelabs.logansquare.annotation.JsonObject
import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable
import kotlinx.parcelize.Parcelize
import kotlinx.serialization.SerialName
@Parcelize
@JsonObject(serializeNullObjects = true)
// @Serializable(serializeNullObjects = true)
@Serializable
data class GenericMeta(
@JsonField(name = ["status"])
@SerialName("status")
var status: String? = null,
@JsonField(name = ["statuscode"])
@SerialName("statuscode")
var statusCode: Int = 0,
@JsonField(name = ["message"])
@SerialName("message")
var message: String? = null
) : Parcelable {
// This constructor is added to work with the 'com.bluelinelabs.logansquare.annotation.JsonObject'

View file

@ -22,14 +22,14 @@
package com.nextcloud.talk.models.json.generic
import android.os.Parcelable
import com.bluelinelabs.logansquare.annotation.JsonField
import com.bluelinelabs.logansquare.annotation.JsonObject
import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable
import kotlinx.parcelize.Parcelize
@Parcelize
@JsonObject
@Serializable
data class GenericOCS(
@JsonField(name = ["meta"])
@SerialName("meta")
var meta: GenericMeta? = null
) : Parcelable {
// This constructor is added to work with the 'com.bluelinelabs.logansquare.annotation.JsonObject'

View file

@ -22,14 +22,14 @@
package com.nextcloud.talk.models.json.generic
import android.os.Parcelable
import com.bluelinelabs.logansquare.annotation.JsonField
import com.bluelinelabs.logansquare.annotation.JsonObject
import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable
import kotlinx.parcelize.Parcelize
@Parcelize
@JsonObject
@Serializable
data class GenericOverall(
@JsonField(name = ["ocs"])
@SerialName("ocs")
var ocs: GenericOCS? = null
) : Parcelable {
// This constructor is added to work with the 'com.bluelinelabs.logansquare.annotation.JsonObject'

View file

@ -22,32 +22,32 @@
package com.nextcloud.talk.models.json.generic
import android.os.Parcelable
import com.bluelinelabs.logansquare.annotation.JsonField
import com.bluelinelabs.logansquare.annotation.JsonObject
import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable
import kotlinx.parcelize.Parcelize
@Parcelize
@JsonObject
@Serializable
data class Status(
@JsonField(name = ["installed"])
@SerialName("installed")
var installed: Boolean = false,
@JsonField(name = ["maintenance"])
@SerialName("maintenance")
var maintenance: Boolean = false,
@JsonField(name = ["upgrade"])
@SerialName("upgrade")
var needsUpgrade: Boolean = false,
@JsonField(name = ["version"])
@SerialName("version")
var version: String? = null,
@JsonField(name = ["versionstring"])
@SerialName("versionstring")
var versionString: String? = null,
@JsonField(name = ["edition"])
@SerialName("edition")
var edition: String? = null,
@JsonField(name = ["productname"])
@SerialName("productname")
var productName: String? = null
) : Parcelable {
// This constructor is added to work with the 'com.bluelinelabs.logansquare.annotation.JsonObject'

View file

@ -20,18 +20,18 @@
package com.nextcloud.talk.models.json.hovercard
import android.os.Parcelable
import com.bluelinelabs.logansquare.annotation.JsonField
import com.bluelinelabs.logansquare.annotation.JsonObject
import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable
import kotlinx.parcelize.Parcelize
@Parcelize
@JsonObject
@Serializable
data class HoverCard(
@JsonField(name = ["userId"])
@SerialName("userId")
var userId: String?,
@JsonField(name = ["displayName"])
@SerialName("displayName")
var displayName: String?,
@JsonField(name = ["actions"])
@SerialName("actions")
var actions: List<HoverCardAction>?
) : Parcelable {
// This constructor is added to work with the 'com.bluelinelabs.logansquare.annotation.JsonObject'

View file

@ -20,20 +20,20 @@
package com.nextcloud.talk.models.json.hovercard
import android.os.Parcelable
import com.bluelinelabs.logansquare.annotation.JsonField
import com.bluelinelabs.logansquare.annotation.JsonObject
import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable
import kotlinx.parcelize.Parcelize
@Parcelize
@JsonObject
@Serializable
data class HoverCardAction(
@JsonField(name = ["title"])
@SerialName("title")
var title: String?,
@JsonField(name = ["icon"])
@SerialName("icon")
var icon: String?,
@JsonField(name = ["hyperlink"])
@SerialName("hyperlink")
var hyperlink: String?,
@JsonField(name = ["appId"])
@SerialName("appId")
var appId: String?
) : Parcelable {
// This constructor is added to work with the 'com.bluelinelabs.logansquare.annotation.JsonObject'

View file

@ -23,17 +23,17 @@
package com.nextcloud.talk.models.json.hovercard
import android.os.Parcelable
import com.bluelinelabs.logansquare.annotation.JsonField
import com.bluelinelabs.logansquare.annotation.JsonObject
import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable
import com.nextcloud.talk.models.json.generic.GenericMeta
import kotlinx.parcelize.Parcelize
@Parcelize
@JsonObject
@Serializable
data class HoverCardOCS(
@JsonField(name = ["meta"])
@SerialName("meta")
var meta: GenericMeta?,
@JsonField(name = ["data"])
@SerialName("data")
var data: HoverCard?
) : Parcelable {
// This constructor is added to work with the 'com.bluelinelabs.logansquare.annotation.JsonObject'

View file

@ -19,12 +19,11 @@
*/
package com.nextcloud.talk.models.json.hovercard
import com.bluelinelabs.logansquare.annotation.JsonField
import com.bluelinelabs.logansquare.annotation.JsonObject
import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable
@JsonObject
@Serializable
data class HoverCardOverall(
@JsonField(name = ["ocs"])
var ocs: HoverCardOCS?
) {
// This constructor is added to work with the 'com.bluelinelabs.logansquare.annotation.JsonObject'

View file

@ -20,34 +20,23 @@
package com.nextcloud.talk.models.json.invitation
import android.os.Parcelable
import com.bluelinelabs.logansquare.annotation.JsonField
import com.bluelinelabs.logansquare.annotation.JsonObject
import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable
import kotlinx.parcelize.Parcelize
@Parcelize
@JsonObject
@Serializable
data class Invitation(
@JsonField(name = ["id"])
var id: Int = 0,
@JsonField(name = ["userId"])
var userId: String? = null,
@JsonField(name = ["state"])
var state: Int = 0,
@JsonField(name = ["localRoomId"])
var localRoomId: Int = 0,
@JsonField(name = ["accessToken"])
var accessToken: String? = null,
@JsonField(name = ["remoteServerUrl"])
var remoteServerUrl: String? = null,
@JsonField(name = ["remoteToken"])
var remoteToken: String? = null,
@JsonField(name = ["remoteAttendeeId"])
var remoteAttendeeId: Int = 0,
@JsonField(name = ["inviterCloudId"])
var inviterCloudId: String? = null,
@JsonField(name = ["inviterDisplayName"])
var inviterDisplayName: String? = null,
@JsonField(name = ["roomName"])
var roomName: String? = null
) : Parcelable {
// This constructor is added to work with the 'com.bluelinelabs.logansquare.annotation.JsonObject'

View file

@ -20,17 +20,15 @@
package com.nextcloud.talk.models.json.invitation
import android.os.Parcelable
import com.bluelinelabs.logansquare.annotation.JsonField
import com.bluelinelabs.logansquare.annotation.JsonObject
import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable
import com.nextcloud.talk.models.json.generic.GenericMeta
import kotlinx.parcelize.Parcelize
@Parcelize
@JsonObject
@Serializable
data class InvitationOCS(
@JsonField(name = ["meta"])
var meta: GenericMeta?,
@JsonField(name = ["data"])
var data: List<Invitation>?
) : Parcelable {
// This constructor is added to work with the 'com.bluelinelabs.logansquare.annotation.JsonObject'

View file

@ -20,14 +20,13 @@
package com.nextcloud.talk.models.json.invitation
import android.os.Parcelable
import com.bluelinelabs.logansquare.annotation.JsonField
import com.bluelinelabs.logansquare.annotation.JsonObject
import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable
import kotlinx.parcelize.Parcelize
@Parcelize
@JsonObject
@Serializable
data class InvitationOverall(
@JsonField(name = ["ocs"])
var ocs: InvitationOCS?
) : Parcelable {
// This constructor is added to work with the 'com.bluelinelabs.logansquare.annotation.JsonObject'

View file

@ -22,25 +22,25 @@
package com.nextcloud.talk.models.json.mention
import android.os.Parcelable
import com.bluelinelabs.logansquare.annotation.JsonField
import com.bluelinelabs.logansquare.annotation.JsonObject
import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable
import kotlinx.parcelize.Parcelize
@Parcelize
@JsonObject
@Serializable
data class Mention(
@JsonField(name = ["id"])
@SerialName("id")
var id: String?,
@JsonField(name = ["label"])
@SerialName("label")
var label: String?,
// type of user (guests or users or calls)
@JsonField(name = ["source"])
@SerialName("source")
var source: String?,
@JsonField(name = ["status"])
@SerialName("status")
var status: String?,
@JsonField(name = ["statusIcon"])
@SerialName("statusIcon")
var statusIcon: String?,
@JsonField(name = ["statusMessage"])
@SerialName("statusMessage")
var statusMessage: String?
) : Parcelable {
// This constructor is added to work with the 'com.bluelinelabs.logansquare.annotation.JsonObject'

View file

@ -24,17 +24,17 @@
package com.nextcloud.talk.models.json.mention
import android.os.Parcelable
import com.bluelinelabs.logansquare.annotation.JsonField
import com.bluelinelabs.logansquare.annotation.JsonObject
import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable
import com.nextcloud.talk.models.json.generic.GenericMeta
import kotlinx.parcelize.Parcelize
@Parcelize
@JsonObject
@Serializable
data class MentionOCS(
@JsonField(name = ["meta"])
@SerialName("meta")
var meta: GenericMeta?,
@JsonField(name = ["data"])
@SerialName("data")
var data: List<Mention>?
) : Parcelable {
// This constructor is added to work with the 'com.bluelinelabs.logansquare.annotation.JsonObject'

View file

@ -22,14 +22,13 @@
package com.nextcloud.talk.models.json.mention
import android.os.Parcelable
import com.bluelinelabs.logansquare.annotation.JsonField
import com.bluelinelabs.logansquare.annotation.JsonObject
import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable
import kotlinx.parcelize.Parcelize
@Parcelize
@JsonObject
@Serializable
data class MentionOverall(
@JsonField(name = ["ocs"])
var ocs: MentionOCS?
) : Parcelable {
// This constructor is added to work with the 'com.bluelinelabs.logansquare.annotation.JsonObject'

View file

@ -22,44 +22,34 @@
package com.nextcloud.talk.models.json.notifications
import android.os.Parcelable
import com.bluelinelabs.logansquare.annotation.JsonField
import com.bluelinelabs.logansquare.annotation.JsonObject
import kotlinx.serialization.SerialName
import com.nextcloud.talk.models.json.converters.KotlinxJodaTimeConverter
import kotlinx.serialization.Serializable
import com.nextcloud.talk.models.json.converters.LoganSquareJodaTimeConverter
import kotlinx.parcelize.Parcelize
import org.joda.time.DateTime
@Parcelize
@JsonObject
@Serializable
data class Notification(
@JsonField(name = ["icon"])
var icon: String?,
@JsonField(name = ["notification_id"])
@SerialName("notification_id")
var notificationId: Int?,
@JsonField(name = ["app"])
var app: String?,
@JsonField(name = ["user"])
var user: String?,
@JsonField(name = ["datetime"], typeConverter = LoganSquareJodaTimeConverter::class)
@Serializable(with = KotlinxJodaTimeConverter::class)
var datetime: DateTime?,
@JsonField(name = ["object_type"])
@SerialName("object_type")
var objectType: String?,
@JsonField(name = ["object_id"])
@SerialName("object_id")
var objectId: String?,
@JsonField(name = ["subject"])
var subject: String?,
@JsonField(name = ["subjectRich"])
var subjectRich: String?,
@JsonField(name = ["subjectRichParameters"])
var subjectRichParameters: HashMap<String, HashMap<String, String>>?,
@JsonField(name = ["message"])
var message: String?,
@JsonField(name = ["messageRich"])
var messageRich: String?,
@JsonField(name = ["messageRichParameters"])
var messageRichParameters: HashMap<String?, HashMap<String?, String?>>?,
@JsonField(name = ["link"])
var link: String?,
@JsonField(name = ["actions"])
var actions: List<NotificationAction>?
) : Parcelable {
// This constructor is added to work with the 'com.bluelinelabs.logansquare.annotation.JsonObject'

View file

@ -22,20 +22,16 @@
package com.nextcloud.talk.models.json.notifications
import android.os.Parcelable
import com.bluelinelabs.logansquare.annotation.JsonField
import com.bluelinelabs.logansquare.annotation.JsonObject
import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable
import kotlinx.parcelize.Parcelize
@Parcelize
@JsonObject
@Serializable
data class NotificationAction(
@JsonField(name = ["label"])
var label: String?,
@JsonField(name = ["link"])
var link: String?,
@JsonField(name = ["type"])
var type: String?,
@JsonField(name = ["primary"])
var primary: Boolean
) : Parcelable {
// This constructor is added to work with the 'com.bluelinelabs.logansquare.annotation.JsonObject'

View file

@ -22,17 +22,16 @@
package com.nextcloud.talk.models.json.notifications
import android.os.Parcelable
import com.bluelinelabs.logansquare.annotation.JsonField
import com.bluelinelabs.logansquare.annotation.JsonObject
import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable
import com.nextcloud.talk.models.json.generic.GenericMeta
import kotlinx.parcelize.Parcelize
@Parcelize
@JsonObject
@Serializable
data class NotificationOCS(
@JsonField(name = ["meta"])
var meta: GenericMeta?,
@JsonField(name = ["data"])
@SerialName("data")
var notification: Notification?
) : Parcelable {
// This constructor is added to work with the 'com.bluelinelabs.logansquare.annotation.JsonObject'

View file

@ -21,14 +21,13 @@
*/
package com.nextcloud.talk.models.json.notifications
import com.bluelinelabs.logansquare.annotation.JsonField
import com.bluelinelabs.logansquare.annotation.JsonObject
import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable
// see https://github.com/nextcloud/notifications/blob/master/docs/ocs-endpoint-v2.md
@JsonObject
@Serializable
data class NotificationOverall(
@JsonField(name = ["ocs"])
var ocs: NotificationOCS?
) {
// This constructor is added to work with the 'com.bluelinelabs.logansquare.annotation.JsonObject'

View file

@ -22,18 +22,16 @@
package com.nextcloud.talk.models.json.notifications
import android.os.Parcelable
import com.bluelinelabs.logansquare.annotation.JsonField
import com.bluelinelabs.logansquare.annotation.JsonObject
import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable
import kotlinx.parcelize.Parcelize
@Parcelize
@JsonObject
@Serializable
class NotificationRichObject(
@JsonField(name = ["id"])
@SerialName("id")
var label: String?,
@JsonField(name = ["type"])
var type: String?,
@JsonField(name = ["name"])
var name: String?
) : Parcelable {
// This constructor is added to work with the 'com.bluelinelabs.logansquare.annotation.JsonObject'

View file

@ -24,17 +24,16 @@
package com.nextcloud.talk.models.json.notifications
import android.os.Parcelable
import com.bluelinelabs.logansquare.annotation.JsonField
import com.bluelinelabs.logansquare.annotation.JsonObject
import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable
import com.nextcloud.talk.models.json.generic.GenericMeta
import kotlinx.parcelize.Parcelize
@Parcelize
@JsonObject
@Serializable
class NotificationsOCS(
@JsonField(name = ["meta"])
var meta: GenericMeta?,
@JsonField(name = ["data"])
@SerialName("data")
var notificationsList: List<Notification>?
) : Parcelable {
// This constructor is added to work with the 'com.bluelinelabs.logansquare.annotation.JsonObject'

View file

@ -21,12 +21,11 @@
*/
package com.nextcloud.talk.models.json.notifications
import com.bluelinelabs.logansquare.annotation.JsonField
import com.bluelinelabs.logansquare.annotation.JsonObject
import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable
@JsonObject
@Serializable
class NotificationsOverall(
@JsonField(name = ["ocs"])
var ocs: NotificationsOCS?
) {
// This constructor is added to work with the 'com.bluelinelabs.logansquare.annotation.JsonObject'

View file

@ -20,17 +20,15 @@
package com.nextcloud.talk.models.json.opengraph
import android.os.Parcelable
import com.bluelinelabs.logansquare.annotation.JsonField
import com.bluelinelabs.logansquare.annotation.JsonObject
import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable
import com.nextcloud.talk.models.json.generic.GenericMeta
import kotlinx.parcelize.Parcelize
@Parcelize
@JsonObject
@Serializable
data class OpenGraphOCS(
@JsonField(name = ["meta"])
var meta: GenericMeta?,
@JsonField(name = ["data"])
var data: OpenGraphResponse?
) : Parcelable {
// This constructor is added to work with the 'com.bluelinelabs.logansquare.annotation.JsonObject'

View file

@ -20,22 +20,17 @@
package com.nextcloud.talk.models.json.opengraph
import android.os.Parcelable
import com.bluelinelabs.logansquare.annotation.JsonField
import com.bluelinelabs.logansquare.annotation.JsonObject
import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable
import kotlinx.parcelize.Parcelize
@Parcelize
@JsonObject
@Serializable
data class OpenGraphObject(
@JsonField(name = ["id"])
var id: String,
@JsonField(name = ["name"])
var name: String,
@JsonField(name = ["description"])
var description: String? = null,
@JsonField(name = ["thumb"])
var thumb: String? = null,
@JsonField(name = ["link"])
var link: String? = null
) : Parcelable {
// This constructor is added to work with the 'com.bluelinelabs.logansquare.annotation.JsonObject'

View file

@ -20,14 +20,13 @@
package com.nextcloud.talk.models.json.opengraph
import android.os.Parcelable
import com.bluelinelabs.logansquare.annotation.JsonField
import com.bluelinelabs.logansquare.annotation.JsonObject
import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable
import kotlinx.parcelize.Parcelize
@Parcelize
@JsonObject
@Serializable
data class OpenGraphOverall(
@JsonField(name = ["ocs"])
var ocs: OpenGraphOCS? = null
) : Parcelable {
// This constructor is added to work with the 'com.bluelinelabs.logansquare.annotation.JsonObject'

View file

@ -20,14 +20,13 @@
package com.nextcloud.talk.models.json.opengraph
import android.os.Parcelable
import com.bluelinelabs.logansquare.annotation.JsonField
import com.bluelinelabs.logansquare.annotation.JsonObject
import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable
import kotlinx.parcelize.Parcelize
@Parcelize
@JsonObject
@Serializable
data class OpenGraphResponse(
@JsonField(name = ["references"])
var references: HashMap<String, Reference>?
) : Parcelable {
// This constructor is added to work with the 'com.bluelinelabs.logansquare.annotation.JsonObject'

View file

@ -20,20 +20,16 @@
package com.nextcloud.talk.models.json.opengraph
import android.os.Parcelable
import com.bluelinelabs.logansquare.annotation.JsonField
import com.bluelinelabs.logansquare.annotation.JsonObject
import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable
import kotlinx.parcelize.Parcelize
@Parcelize
@JsonObject
@Serializable
data class Reference(
@JsonField(name = ["richObjectType"])
var richObjectType: String? = null,
@JsonField(name = ["richObject"])
var richObject: RichObject? = null,
@JsonField(name = ["openGraphObject"])
var openGraphObject: OpenGraphObject? = null,
@JsonField(name = ["accessible"])
var accessible: Boolean
) : Parcelable {
// This constructor is added to work with the 'com.bluelinelabs.logansquare.annotation.JsonObject'

View file

@ -20,22 +20,17 @@
package com.nextcloud.talk.models.json.opengraph
import android.os.Parcelable
import com.bluelinelabs.logansquare.annotation.JsonField
import com.bluelinelabs.logansquare.annotation.JsonObject
import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable
import kotlinx.parcelize.Parcelize
@Parcelize
@JsonObject
@Serializable
data class RichObject(
@JsonField(name = ["id"])
var id: String,
@JsonField(name = ["name"])
var name: String,
@JsonField(name = ["description"])
var description: String? = null,
@JsonField(name = ["thumb"])
var thumb: String? = null,
@JsonField(name = ["link"])
var link: String? = null
) : Parcelable {
// This constructor is added to work with the 'com.bluelinelabs.logansquare.annotation.JsonObject'

View file

@ -22,19 +22,17 @@
package com.nextcloud.talk.models.json.participants
import android.os.Parcelable
import com.bluelinelabs.logansquare.annotation.JsonField
import com.bluelinelabs.logansquare.annotation.JsonObject
import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable
import com.nextcloud.talk.models.json.conversations.Conversation
import com.nextcloud.talk.models.json.generic.GenericMeta
import kotlinx.parcelize.Parcelize
@Parcelize
@JsonObject
@Serializable
data class AddParticipantOCS(
@JsonField(name = ["meta"])
var meta: GenericMeta?,
/* Returned room will have only type set, and sometimes even that will be null */
@JsonField(name = ["data"])
var data: Conversation? = null
) : Parcelable {
// This constructor is added to work with the 'com.bluelinelabs.logansquare.annotation.JsonObject'

View file

@ -22,15 +22,14 @@
package com.nextcloud.talk.models.json.participants
import android.os.Parcelable
import com.bluelinelabs.logansquare.annotation.JsonField
import com.bluelinelabs.logansquare.annotation.JsonObject
import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable
import com.nextcloud.talk.models.json.conversations.RoomsOCS
import kotlinx.parcelize.Parcelize
@Parcelize
@JsonObject
@Serializable
data class AddParticipantOverall(
@JsonField(name = ["ocs"])
var ocs: RoomsOCS? = null
) : Parcelable {
// This constructor is added to work with the 'com.bluelinelabs.logansquare.annotation.JsonObject'

View file

@ -22,72 +22,51 @@
package com.nextcloud.talk.models.json.participants
import android.os.Parcelable
import com.bluelinelabs.logansquare.annotation.JsonField
import com.bluelinelabs.logansquare.annotation.JsonObject
import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable
import com.nextcloud.talk.models.json.converters.EnumActorTypeConverter
import com.nextcloud.talk.models.json.converters.EnumParticipantTypeConverter
import kotlinx.parcelize.Parcelize
@Parcelize
@JsonObject
@Serializable
data class Participant(
@JsonField(name = ["attendeeId"])
var attendeeId: Long? = null,
@JsonField(name = ["actorType"], typeConverter = EnumActorTypeConverter::class)
@SerialName("actorType"], typeConverter = EnumActorTypeConverter::class)
var actorType: ActorType? = null,
@JsonField(name = ["actorId"])
var actorId: String? = null,
@JsonField(name = ["attendeePin"])
var attendeePin: String? = null,
@Deprecated("")
@JsonField(name = ["userId"])
var userId: String? = null,
@JsonField(name = ["internal"])
var internal: Boolean? = null,
@JsonField(name = ["type", "participantType"], typeConverter = EnumParticipantTypeConverter::class)
@SerialName("type", "participantType"], typeConverter = EnumParticipantTypeConverter::class)
var type: ParticipantType? = null,
@Deprecated("")
@JsonField(name = ["name"])
var name: String? = null,
@JsonField(name = ["displayName"])
var displayName: String? = null,
@JsonField(name = ["lastPing"])
var lastPing: Long = 0,
@Deprecated("")
@JsonField(name = ["sessionId"])
var sessionId: String? = null,
@JsonField(name = ["sessionIds"])
var sessionIds: ArrayList<String> = ArrayList(0),
@Deprecated("")
@JsonField(name = ["roomId"])
var roomId: Long = 0,
@JsonField(name = ["inCall"])
var inCall: Long = 0,
@JsonField(name = ["status"])
var status: String? = null,
@JsonField(name = ["statusIcon"])
var statusIcon: String? = null,
@JsonField(name = ["statusMessage"])
var statusMessage: String? = null,
var source: String? = null,
var selected: Boolean = false
) : Parcelable {
// This constructor is added to work with the 'com.bluelinelabs.logansquare.annotation.JsonObject'

View file

@ -22,17 +22,15 @@
package com.nextcloud.talk.models.json.participants
import android.os.Parcelable
import com.bluelinelabs.logansquare.annotation.JsonField
import com.bluelinelabs.logansquare.annotation.JsonObject
import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable
import com.nextcloud.talk.models.json.generic.GenericMeta
import kotlinx.parcelize.Parcelize
@Parcelize
@JsonObject
@Serializable
data class ParticipantsOCS(
@JsonField(name = ["meta"])
var meta: GenericMeta?,
@JsonField(name = ["data"])
var data: List<Participant>? = null
) : Parcelable {
// This constructor is added to work with the 'com.bluelinelabs.logansquare.annotation.JsonObject'

View file

@ -22,14 +22,13 @@
package com.nextcloud.talk.models.json.participants
import android.os.Parcelable
import com.bluelinelabs.logansquare.annotation.JsonField
import com.bluelinelabs.logansquare.annotation.JsonObject
import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable
import kotlinx.parcelize.Parcelize
@Parcelize
@JsonObject
@Serializable
data class ParticipantsOverall(
@JsonField(name = ["ocs"])
var ocs: ParticipantsOCS? = null
) : Parcelable {
// This constructor is added to work with the 'com.bluelinelabs.logansquare.annotation.JsonObject'

View file

@ -20,39 +20,39 @@
package com.nextcloud.talk.models.json.push
import android.os.Parcelable
import com.bluelinelabs.logansquare.annotation.JsonField
import kotlinx.serialization.SerialName
import com.bluelinelabs.logansquare.annotation.JsonIgnore
import com.bluelinelabs.logansquare.annotation.JsonObject
import kotlinx.serialization.Serializable
import kotlinx.parcelize.Parcelize
@Parcelize
@JsonObject
@Serializable
data class DecryptedPushMessage(
@JsonField(name = ["app"])
@SerialName("app")
var app: String?,
@JsonField(name = ["type"])
@SerialName("type")
var type: String?,
@JsonField(name = ["subject"])
@SerialName("subject")
var subject: String,
@JsonField(name = ["id"])
@SerialName("id")
var id: String?,
@JsonField(name = ["nid"])
@SerialName("nid")
var notificationId: Long?,
@JsonField(name = ["nids"])
@SerialName("nids")
var notificationIds: LongArray?,
@JsonField(name = ["delete"])
@SerialName("delete")
var delete: Boolean,
@JsonField(name = ["delete-all"])
@SerialName("delete-all")
var deleteAll: Boolean,
@JsonField(name = ["delete-multiple"])
@SerialName("delete-multiple")
var deleteMultiple: Boolean,
@JsonIgnore

View file

@ -22,20 +22,20 @@
package com.nextcloud.talk.models.json.push
import android.os.Parcelable
import com.bluelinelabs.logansquare.annotation.JsonField
import com.bluelinelabs.logansquare.annotation.JsonObject
import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable
import kotlinx.parcelize.Parcelize
@Parcelize
@JsonObject
@Serializable
data class NotificationUser(
@JsonField(name = ["type"])
@SerialName("type")
var type: String?,
@JsonField(name = ["id"])
@SerialName("id")
var id: String?,
@JsonField(name = ["name"])
@SerialName("name")
var name: String?
) : Parcelable {
// This constructor is added to work with the 'com.bluelinelabs.logansquare.annotation.JsonObject'

View file

@ -22,26 +22,26 @@
package com.nextcloud.talk.models.json.push
import android.os.Parcelable
import com.bluelinelabs.logansquare.annotation.JsonField
import com.bluelinelabs.logansquare.annotation.JsonObject
import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable
import kotlinx.parcelize.Parcelize
@Parcelize
@JsonObject
@Serializable
data class PushConfigurationState(
@JsonField(name = ["pushToken"])
@SerialName("pushToken")
var pushToken: String?,
@JsonField(name = ["deviceIdentifier"])
@SerialName("deviceIdentifier")
var deviceIdentifier: String?,
@JsonField(name = ["deviceIdentifierSignature"])
@SerialName("deviceIdentifierSignature")
var deviceIdentifierSignature: String?,
@JsonField(name = ["userPublicKey"])
@SerialName("userPublicKey")
var userPublicKey: String?,
@JsonField(name = ["usesRegularPass"])
@SerialName("usesRegularPass")
var usesRegularPass: Boolean?
) : Parcelable {
// This constructor is added to work with the 'com.bluelinelabs.logansquare.annotation.JsonObject'

View file

@ -22,20 +22,20 @@
package com.nextcloud.talk.models.json.push
import android.os.Parcelable
import com.bluelinelabs.logansquare.annotation.JsonField
import com.bluelinelabs.logansquare.annotation.JsonObject
import kotlinx.serialization.Serializable
import kotlinx.parcelize.Parcelize
import kotlinx.serialization.SerialName
@Parcelize
@JsonObject
@Serializable
data class PushRegistration(
@JsonField(name = ["publicKey"])
@SerialName("publicKey")
var publicKey: String?,
@JsonField(name = ["deviceIdentifier"])
@SerialName("deviceIdentifier")
var deviceIdentifier: String?,
@JsonField(name = ["signature"])
@SerialName("signature")
var signature: String?
) : Parcelable {
// This constructor is added to work with the 'com.bluelinelabs.logansquare.annotation.JsonObject'

View file

@ -22,17 +22,17 @@
package com.nextcloud.talk.models.json.push
import android.os.Parcelable
import com.bluelinelabs.logansquare.annotation.JsonField
import com.bluelinelabs.logansquare.annotation.JsonObject
import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable
import com.nextcloud.talk.models.json.generic.GenericMeta
import kotlinx.parcelize.Parcelize
@Parcelize
@JsonObject
@Serializable
data class PushRegistrationOCS(
@JsonField(name = ["meta"])
@SerialName("meta")
var meta: GenericMeta?,
@JsonField(name = ["data"])
@SerialName("data")
var data: PushRegistration?
) : Parcelable {
// This constructor is added to work with the 'com.bluelinelabs.logansquare.annotation.JsonObject'

View file

@ -22,14 +22,14 @@
package com.nextcloud.talk.models.json.push
import android.os.Parcelable
import com.bluelinelabs.logansquare.annotation.JsonField
import com.bluelinelabs.logansquare.annotation.JsonObject
import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable
import kotlinx.parcelize.Parcelize
@Parcelize
@JsonObject
@Serializable
data class PushRegistrationOverall(
@JsonField(name = ["ocs"])
@SerialName("ocs")
var ocs: PushRegistrationOCS?
) : Parcelable {
// This constructor is added to work with the 'com.bluelinelabs.logansquare.annotation.JsonObject'

View file

@ -20,21 +20,18 @@
package com.nextcloud.talk.models.json.reactions
import android.os.Parcelable
import com.bluelinelabs.logansquare.annotation.JsonField
import com.bluelinelabs.logansquare.annotation.JsonObject
import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable
import com.nextcloud.talk.models.json.converters.EnumReactionActorTypeConverter
import kotlinx.parcelize.Parcelize
@Parcelize
@JsonObject
@Serializable
data class ReactionVoter(
@JsonField(name = ["actorType"], typeConverter = EnumReactionActorTypeConverter::class)
@SerialName("actorType", typeConverter = EnumReactionActorTypeConverter::class)
var actorType: ReactionActorType?,
@JsonField(name = ["actorId"])
var actorId: String?,
@JsonField(name = ["actorDisplayName"])
var actorDisplayName: String?,
@JsonField(name = ["timestamp"])
var timestamp: Long = 0
) : Parcelable {
// This constructor is added to work with the 'com.bluelinelabs.logansquare.annotation.JsonObject'

View file

@ -22,18 +22,16 @@
package com.nextcloud.talk.models.json.reactions
import android.os.Parcelable
import com.bluelinelabs.logansquare.annotation.JsonField
import com.bluelinelabs.logansquare.annotation.JsonObject
import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable
import com.nextcloud.talk.models.json.generic.GenericMeta
import kotlinx.parcelize.Parcelize
import java.util.HashMap
@Parcelize
@JsonObject
@Serializable
data class ReactionsOCS(
@JsonField(name = ["meta"])
var meta: GenericMeta?,
@JsonField(name = ["data"])
var data: HashMap<String, List<ReactionVoter>>?
) : Parcelable {
// This constructor is added to work with the 'com.bluelinelabs.logansquare.annotation.JsonObject'

View file

@ -20,14 +20,13 @@
package com.nextcloud.talk.models.json.reactions
import android.os.Parcelable
import com.bluelinelabs.logansquare.annotation.JsonField
import com.bluelinelabs.logansquare.annotation.JsonObject
import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable
import kotlinx.parcelize.Parcelize
@Parcelize
@JsonObject
@Serializable
data class ReactionsOverall(
@JsonField(name = ["ocs"])
var ocs: ReactionsOCS?
) : Parcelable {
// This constructor is added to work with the 'com.bluelinelabs.logansquare.annotation.JsonObject'

View file

@ -20,20 +20,16 @@
package com.nextcloud.talk.models.json.reminder
import android.os.Parcelable
import com.bluelinelabs.logansquare.annotation.JsonField
import com.bluelinelabs.logansquare.annotation.JsonObject
import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable
import kotlinx.parcelize.Parcelize
@Parcelize
@JsonObject
@Serializable
data class Reminder(
@JsonField(name = ["userid"])
var userid: String? = null,
@JsonField(name = ["token"])
var token: String? = null,
@JsonField(name = ["messageId"])
var messageId: Int? = null,
@JsonField(name = ["timestamp"])
var timestamp: Int? = null
) : Parcelable {
// This constructor is added to work with the 'com.bluelinelabs.logansquare.annotation.JsonObject'

View file

@ -20,17 +20,15 @@
package com.nextcloud.talk.models.json.reminder
import android.os.Parcelable
import com.bluelinelabs.logansquare.annotation.JsonField
import com.bluelinelabs.logansquare.annotation.JsonObject
import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable
import com.nextcloud.talk.models.json.generic.GenericMeta
import kotlinx.parcelize.Parcelize
@Parcelize
@JsonObject
@Serializable
data class ReminderOCS(
@JsonField(name = ["meta"])
var meta: GenericMeta? = null,
@JsonField(name = ["data"])
var data: Reminder? = null
) : Parcelable {
// This constructor is added to work with the 'com.bluelinelabs.logansquare.annotation.JsonObject'

View file

@ -20,14 +20,13 @@
package com.nextcloud.talk.models.json.reminder
import android.os.Parcelable
import com.bluelinelabs.logansquare.annotation.JsonField
import com.bluelinelabs.logansquare.annotation.JsonObject
import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable
import kotlinx.parcelize.Parcelize
@Parcelize
@JsonObject
@Serializable
data class ReminderOverall(
@JsonField(name = ["ocs"])
var ocs: ReminderOCS? = null
) : Parcelable {
// This constructor is added to work with the 'com.bluelinelabs.logansquare.annotation.JsonObject'

View file

@ -22,17 +22,16 @@
package com.nextcloud.talk.models.json.search
import android.os.Parcelable
import com.bluelinelabs.logansquare.annotation.JsonField
import com.bluelinelabs.logansquare.annotation.JsonObject
import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable
import com.nextcloud.talk.models.json.generic.GenericMeta
import kotlinx.parcelize.Parcelize
@Parcelize
@JsonObject
@Serializable
data class ContactsByNumberOCS(
@JsonField(name = ["meta"])
var meta: GenericMeta?,
@JsonField(name = ["data"])
@SerialName("data")
var map: Map<String, String>? = HashMap()
) : Parcelable {
// This constructor is added to work with the 'com.bluelinelabs.logansquare.annotation.JsonObject'

View file

@ -22,14 +22,14 @@
package com.nextcloud.talk.models.json.search
import android.os.Parcelable
import com.bluelinelabs.logansquare.annotation.JsonField
import com.bluelinelabs.logansquare.annotation.JsonObject
import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable
import kotlinx.parcelize.Parcelize
@Parcelize
@JsonObject
@Serializable
data class ContactsByNumberOverall(
@JsonField(name = ["ocs"])
@SerialName("ocs")
var ocs: ContactsByNumberOCS?
) : Parcelable {
// This constructor is added to work with the 'com.bluelinelabs.logansquare.annotation.JsonObject'

View file

@ -22,14 +22,14 @@
package com.nextcloud.talk.models.json.sharees
import android.os.Parcelable
import com.bluelinelabs.logansquare.annotation.JsonField
import com.bluelinelabs.logansquare.annotation.JsonObject
import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable
import kotlinx.parcelize.Parcelize
@Parcelize
@JsonObject
@Serializable
data class ExactSharees(
@JsonField(name = ["users"])
@SerialName("users")
var exactSharees: List<Sharee>? = null
) : Parcelable {
// This constructor is added to work with the 'com.bluelinelabs.logansquare.annotation.JsonObject'

View file

@ -22,18 +22,18 @@
package com.nextcloud.talk.models.json.sharees
import android.os.Parcelable
import com.bluelinelabs.logansquare.annotation.JsonField
import com.bluelinelabs.logansquare.annotation.JsonObject
import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable
import kotlinx.parcelize.Parcelize
@Parcelize
@JsonObject
@Serializable
data class Sharee(
@JsonField(name = ["id"])
@SerialName("id")
var id: String? = null,
@JsonField(name = ["value"])
@SerialName("value")
var value: Value? = null,
@JsonField(name = ["label"])
@SerialName("label")
var label: String? = null
) : Parcelable {
// This constructor is added to work with the 'com.bluelinelabs.logansquare.annotation.JsonObject'

View file

@ -22,17 +22,15 @@
package com.nextcloud.talk.models.json.sharees
import android.os.Parcelable
import com.bluelinelabs.logansquare.annotation.JsonField
import com.bluelinelabs.logansquare.annotation.JsonObject
import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable
import com.nextcloud.talk.models.json.generic.GenericMeta
import kotlinx.parcelize.Parcelize
@Parcelize
@JsonObject
@Serializable
data class ShareesOCS(
@JsonField(name = ["meta"])
var meta: GenericMeta?,
@JsonField(name = ["data"])
var data: SharesData? = null
) : Parcelable {
// This constructor is added to work with the 'com.bluelinelabs.logansquare.annotation.JsonObject'

View file

@ -22,14 +22,13 @@
package com.nextcloud.talk.models.json.sharees
import android.os.Parcelable
import com.bluelinelabs.logansquare.annotation.JsonField
import com.bluelinelabs.logansquare.annotation.JsonObject
import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable
import kotlinx.parcelize.Parcelize
@Parcelize
@JsonObject
@Serializable
data class ShareesOverall(
@JsonField(name = ["ocs"])
var ocs: ShareesOCS? = null
) : Parcelable {
// This constructor is added to work with the 'com.bluelinelabs.logansquare.annotation.JsonObject'

View file

@ -22,16 +22,15 @@
package com.nextcloud.talk.models.json.sharees
import android.os.Parcelable
import com.bluelinelabs.logansquare.annotation.JsonField
import com.bluelinelabs.logansquare.annotation.JsonObject
import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable
import kotlinx.parcelize.Parcelize
@Parcelize
@JsonObject
@Serializable
data class SharesData(
@JsonField(name = ["users"])
var users: List<Sharee>? = null,
@JsonField(name = ["exact"])
@SerialName("exact")
var exactUsers: ExactSharees? = null
) : Parcelable {
// This constructor is added to work with the 'com.bluelinelabs.logansquare.annotation.JsonObject'

View file

@ -22,14 +22,14 @@
package com.nextcloud.talk.models.json.sharees
import android.os.Parcelable
import com.bluelinelabs.logansquare.annotation.JsonField
import com.bluelinelabs.logansquare.annotation.JsonObject
import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable
import kotlinx.parcelize.Parcelize
@Parcelize
@JsonObject
@Serializable
data class Value(
@JsonField(name = ["shareWith"])
@SerialName("shareWith")
var shareWith: String? = null
) : Parcelable {
// This constructor is added to work with the 'com.bluelinelabs.logansquare.annotation.JsonObject'

View file

@ -22,24 +22,24 @@
package com.nextcloud.talk.models.json.signaling
import android.os.Parcelable
import com.bluelinelabs.logansquare.annotation.JsonField
import com.bluelinelabs.logansquare.annotation.JsonObject
import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable
import com.nextcloud.talk.models.json.AnyParceler
import kotlinx.parcelize.Parcelize
import kotlinx.parcelize.TypeParceler
@Parcelize
@JsonObject
@Serializable
@TypeParceler<Any?, AnyParceler>
data class DataChannelMessage(
@JsonField(name = ["type"])
var type: String? = null,
/** Can be String or Map<String, String>
* Use only for received messages */
@JsonField(name = ["payload"])
var payload: Any? = null,
@SerialName("payload")
// TODO: Can be String or Map<String, String>
var payload: String? = null,
/** Use only to send messages */
@JsonField(name = ["payload"])
// @SerialName("payload") // TODO: duplicated payload was intentional, see commit 68cf4ee0
var payloadMap: Map<String, String>? = null
) : Parcelable {
// This constructor is added to work with the 'com.bluelinelabs.logansquare.annotation.JsonObject'

View file

@ -22,18 +22,15 @@
package com.nextcloud.talk.models.json.signaling
import android.os.Parcelable
import com.bluelinelabs.logansquare.annotation.JsonField
import com.bluelinelabs.logansquare.annotation.JsonObject
import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable
import kotlinx.parcelize.Parcelize
@Parcelize
@JsonObject
@Serializable
data class NCIceCandidate(
@JsonField(name = ["sdpMLineIndex"])
var sdpMLineIndex: Int = 0,
@JsonField(name = ["sdpMid"])
var sdpMid: String? = null,
@JsonField(name = ["candidate"])
var candidate: String? = null
) : Parcelable {
// This constructor is added to work with the 'com.bluelinelabs.logansquare.annotation.JsonObject'

View file

@ -22,28 +22,21 @@
package com.nextcloud.talk.models.json.signaling
import android.os.Parcelable
import com.bluelinelabs.logansquare.annotation.JsonField
import com.bluelinelabs.logansquare.annotation.JsonObject
import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable
import kotlinx.parcelize.Parcelize
@Parcelize
@JsonObject
@Serializable
data class NCMessagePayload(
@JsonField(name = ["type"])
var type: String? = null,
@JsonField(name = ["sdp"])
var sdp: String? = null,
@JsonField(name = ["nick"])
var nick: String? = null,
@JsonField(name = ["candidate"])
@SerialName("candidate")
var iceCandidate: NCIceCandidate? = null,
@JsonField(name = ["name"])
var name: String? = null,
@JsonField(name = ["state"])
var state: Boolean? = null,
@JsonField(name = ["timestamp"])
var timestamp: Long? = null,
@JsonField(name = ["reaction"])
var reaction: String? = null
) : Parcelable {
// This constructor is added to work with the 'com.bluelinelabs.logansquare.annotation.JsonObject'

View file

@ -22,26 +22,19 @@
package com.nextcloud.talk.models.json.signaling
import android.os.Parcelable
import com.bluelinelabs.logansquare.annotation.JsonField
import com.bluelinelabs.logansquare.annotation.JsonObject
import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable
import kotlinx.parcelize.Parcelize
@Parcelize
@JsonObject
@Serializable
data class NCSignalingMessage(
@JsonField(name = ["from"])
var from: String? = null,
@JsonField(name = ["to"])
var to: String? = null,
@JsonField(name = ["type"])
var type: String? = null,
@JsonField(name = ["payload"])
var payload: NCMessagePayload? = null,
@JsonField(name = ["roomType"])
var roomType: String? = null,
@JsonField(name = ["sid"])
var sid: String? = null,
@JsonField(name = ["prefix"])
var prefix: String? = null
) : Parcelable {
// This constructor is added to work with the 'com.bluelinelabs.logansquare.annotation.JsonObject'

View file

@ -22,21 +22,21 @@
package com.nextcloud.talk.models.json.signaling
import android.os.Parcelable
import com.bluelinelabs.logansquare.annotation.JsonField
import com.bluelinelabs.logansquare.annotation.JsonObject
import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable
import com.nextcloud.talk.models.json.AnyParceler
import kotlinx.parcelize.Parcelize
import kotlinx.parcelize.TypeParceler
@Parcelize
@JsonObject
@Serializable
@TypeParceler<Any?, AnyParceler>
data class Signaling(
@JsonField(name = ["type"])
var type: String? = null,
/** can be NCSignalingMessage (encoded as a String) or List<Map<String, Object>> */
@JsonField(name = ["data"])
var messageWrapper: Any? = null
@SerialName("data")
// TODO: can be NCSignalingMessage (encoded as a String) or List<Map<String, Object>>
var messageWrapper: NCSignalingMessage? = null
) : Parcelable {
// This constructor is added to work with the 'com.bluelinelabs.logansquare.annotation.JsonObject'
constructor() : this(null, null)

View file

@ -22,17 +22,16 @@
package com.nextcloud.talk.models.json.signaling
import android.os.Parcelable
import com.bluelinelabs.logansquare.annotation.JsonField
import com.bluelinelabs.logansquare.annotation.JsonObject
import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable
import com.nextcloud.talk.models.json.generic.GenericMeta
import kotlinx.parcelize.Parcelize
@Parcelize
@JsonObject
@Serializable
class SignalingOCS(
@JsonField(name = ["meta"])
var meta: GenericMeta?,
@JsonField(name = ["data"])
@SerialName("data")
var signalings: List<Signaling>? = null
) : Parcelable {
// This constructor is added to work with the 'com.bluelinelabs.logansquare.annotation.JsonObject'

View file

@ -22,14 +22,13 @@
package com.nextcloud.talk.models.json.signaling
import android.os.Parcelable
import com.bluelinelabs.logansquare.annotation.JsonField
import com.bluelinelabs.logansquare.annotation.JsonObject
import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable
import kotlinx.parcelize.Parcelize
@Parcelize
@JsonObject
@Serializable
class SignalingOverall(
@JsonField(name = ["ocs"])
var ocs: SignalingOCS? = null
) : Parcelable {
// This constructor is added to work with the 'com.bluelinelabs.logansquare.annotation.JsonObject'

View file

@ -22,23 +22,17 @@
package com.nextcloud.talk.models.json.signaling.settings
import android.os.Parcelable
import com.bluelinelabs.logansquare.annotation.JsonField
import com.bluelinelabs.logansquare.annotation.JsonObject
import kotlinx.parcelize.Parcelize
import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable
import kotlinx.parcelize.Parcelize
@Parcelize
@JsonObject
@Serializable
data class IceServer(
@Deprecated("")
@JsonField(name = ["url"])
var url: String? = null,
@JsonField(name = ["urls"])
var urls: List<String>? = null,
@JsonField(name = ["username"])
var username: String? = null,
@JsonField(name = ["credential"])
var credential: String? = null
) : Parcelable {
// This constructor is added to work with the 'com.bluelinelabs.logansquare.annotation.JsonObject'

Some files were not shown because too many files have changed in this diff Show more