diff --git a/app/build.gradle b/app/build.gradle index 98b3ade9b3..377ac445dd 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -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' diff --git a/app/src/main/java/com/nextcloud/talk/chat/ChatActivity.kt b/app/src/main/java/com/nextcloud/talk/chat/ChatActivity.kt index ae9e06c6db..cab4d36479 100644 --- a/app/src/main/java/com/nextcloud/talk/chat/ChatActivity.kt +++ b/app/src/main/java/com/nextcloud/talk/chat/ChatActivity.kt @@ -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 diff --git a/app/src/main/java/com/nextcloud/talk/components/filebrowser/models/BrowserFile.kt b/app/src/main/java/com/nextcloud/talk/components/filebrowser/models/BrowserFile.kt index 789987df73..8919c4f813 100644 --- a/app/src/main/java/com/nextcloud/talk/components/filebrowser/models/BrowserFile.kt +++ b/app/src/main/java/com/nextcloud/talk/components/filebrowser/models/BrowserFile.kt @@ -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, diff --git a/app/src/main/java/com/nextcloud/talk/dagger/modules/RestModule.java b/app/src/main/java/com/nextcloud/talk/dagger/modules/RestModule.java deleted file mode 100644 index 6da4de8c39..0000000000 --- a/app/src/main/java/com/nextcloud/talk/dagger/modules/RestModule.java +++ /dev/null @@ -1,320 +0,0 @@ -/* - * Nextcloud Talk application - * - * @author Mario Danic - * Copyright (C) 2017 Mario Danic (mario@lovelyhq.com) - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ -package com.nextcloud.talk.dagger.modules; - -import android.content.Context; -import android.text.TextUtils; -import android.util.Log; - -import com.github.aurae.retrofit2.LoganSquareConverterFactory; -import com.nextcloud.talk.BuildConfig; -import com.nextcloud.talk.R; -import com.nextcloud.talk.api.NcApi; -import com.nextcloud.talk.application.NextcloudTalkApplication; -import com.nextcloud.talk.users.UserManager; -import com.nextcloud.talk.utils.ApiUtils; -import com.nextcloud.talk.utils.LoggingUtils; -import com.nextcloud.talk.utils.preferences.AppPreferences; -import com.nextcloud.talk.utils.ssl.KeyManager; -import com.nextcloud.talk.utils.ssl.SSLSocketFactoryCompat; -import com.nextcloud.talk.utils.ssl.TrustManager; - -import java.io.IOException; -import java.net.CookieManager; -import java.net.InetSocketAddress; -import java.net.Proxy; -import java.nio.charset.StandardCharsets; -import java.security.KeyStore; -import java.security.KeyStoreException; -import java.security.NoSuchAlgorithmException; -import java.security.UnrecoverableKeyException; -import java.security.cert.CertificateException; -import java.util.concurrent.TimeUnit; - -import javax.inject.Singleton; -import javax.net.ssl.KeyManagerFactory; -import javax.net.ssl.X509KeyManager; - -import androidx.annotation.NonNull; -import androidx.annotation.Nullable; -import dagger.Module; -import dagger.Provides; -import io.reactivex.schedulers.Schedulers; -import okhttp3.Authenticator; -import okhttp3.Cache; -import okhttp3.Credentials; -import okhttp3.Dispatcher; -import okhttp3.Interceptor; -import okhttp3.JavaNetCookieJar; -import okhttp3.OkHttpClient; -import okhttp3.Request; -import okhttp3.Response; -import okhttp3.Route; -import okhttp3.internal.tls.OkHostnameVerifier; -import okhttp3.logging.HttpLoggingInterceptor; -import retrofit2.Retrofit; -import retrofit2.adapter.rxjava2.RxJava2CallAdapterFactory; - -@Module(includes = DatabaseModule.class) -public class RestModule { - - private static final String TAG = "RestModule"; - private final Context context; - - public RestModule(Context context) { - this.context = context; - } - - @Singleton - @Provides - NcApi provideNcApi(Retrofit retrofit) { - return retrofit.create(NcApi.class); - } - - @Singleton - @Provides - Proxy provideProxy(AppPreferences appPreferences) { - if (!TextUtils.isEmpty(appPreferences.getProxyType()) && !"No proxy".equals(appPreferences.getProxyType()) - && !TextUtils.isEmpty(appPreferences.getProxyHost())) { - GetProxyRunnable getProxyRunnable = new GetProxyRunnable(appPreferences); - Thread getProxyThread = new Thread(getProxyRunnable); - getProxyThread.start(); - try { - getProxyThread.join(); - return getProxyRunnable.getProxyValue(); - } catch (InterruptedException e) { - Log.e(TAG, "Failed to join the thread while getting proxy: " + e.getLocalizedMessage()); - return Proxy.NO_PROXY; - } - } else { - return Proxy.NO_PROXY; - } - } - - @Singleton - @Provides - Retrofit provideRetrofit(OkHttpClient httpClient) { - Retrofit.Builder retrofitBuilder = new Retrofit.Builder() - .client(httpClient) - .baseUrl("https://nextcloud.com") - .addCallAdapterFactory(RxJava2CallAdapterFactory.createWithScheduler(Schedulers.io())) - .addConverterFactory(LoganSquareConverterFactory.create()); - - return retrofitBuilder.build(); - } - - @Singleton - @Provides - TrustManager provideTrustManager() { - return new TrustManager(); - } - - @Singleton - @Provides - KeyManager provideKeyManager(AppPreferences appPreferences, UserManager userManager) { - KeyStore keyStore = null; - try { - keyStore = KeyStore.getInstance("AndroidKeyStore"); - keyStore.load(null); - KeyManagerFactory kmf = KeyManagerFactory.getInstance(KeyManagerFactory.getDefaultAlgorithm()); - kmf.init(keyStore, null); - X509KeyManager origKm = (X509KeyManager) kmf.getKeyManagers()[0]; - return new KeyManager(origKm, userManager, appPreferences); - } catch (KeyStoreException e) { - Log.e(TAG, "KeyStoreException " + e.getLocalizedMessage()); - } catch (CertificateException e) { - Log.e(TAG, "CertificateException " + e.getLocalizedMessage()); - } catch (NoSuchAlgorithmException e) { - Log.e(TAG, "NoSuchAlgorithmException " + e.getLocalizedMessage()); - } catch (IOException e) { - Log.e(TAG, "IOException " + e.getLocalizedMessage()); - } catch (UnrecoverableKeyException e) { - Log.e(TAG, "UnrecoverableKeyException " + e.getLocalizedMessage()); - } - - return null; - } - - @Singleton - @Provides - SSLSocketFactoryCompat provideSslSocketFactoryCompat(KeyManager keyManager, TrustManager - trustManager) { - return new SSLSocketFactoryCompat(keyManager, trustManager); - } - - @Singleton - @Provides - CookieManager provideCookieManager() { - return new CookieManager(); - } - - @Singleton - @Provides - Cache provideCache() { - int cacheSize = 128 * 1024 * 1024; // 128 MB - - return new Cache(NextcloudTalkApplication.Companion.getSharedApplication().getCacheDir(), cacheSize); - } - - @Singleton - @Provides - Dispatcher provideDispatcher() { - Dispatcher dispatcher = new Dispatcher(); - dispatcher.setMaxRequestsPerHost(100); - dispatcher.setMaxRequests(100); - return dispatcher; - } - - @Singleton - @Provides - OkHttpClient provideHttpClient(Proxy proxy, AppPreferences appPreferences, - TrustManager trustManager, - SSLSocketFactoryCompat sslSocketFactoryCompat, Cache cache, - CookieManager cookieManager, Dispatcher dispatcher) { - OkHttpClient.Builder httpClient = new OkHttpClient.Builder(); - - httpClient.retryOnConnectionFailure(true); - httpClient.connectTimeout(45, TimeUnit.SECONDS); - httpClient.readTimeout(45, TimeUnit.SECONDS); - httpClient.writeTimeout(45, TimeUnit.SECONDS); - - httpClient.cookieJar(new JavaNetCookieJar(cookieManager)); - httpClient.cache(cache); - - // Trust own CA and all self-signed certs - httpClient.sslSocketFactory(sslSocketFactoryCompat, trustManager); - httpClient.retryOnConnectionFailure(true); - httpClient.hostnameVerifier(trustManager.getHostnameVerifier(OkHostnameVerifier.INSTANCE)); - - httpClient.dispatcher(dispatcher); - if (!Proxy.NO_PROXY.equals(proxy)) { - httpClient.proxy(proxy); - - if (appPreferences.getProxyCredentials() && - !TextUtils.isEmpty(appPreferences.getProxyUsername()) && - !TextUtils.isEmpty(appPreferences.getProxyPassword())) { - httpClient.proxyAuthenticator(new HttpAuthenticator( - Credentials.basic( - appPreferences.getProxyUsername(), - appPreferences.getProxyPassword(), - StandardCharsets.UTF_8), - "Proxy-Authorization")); - } - } - - httpClient.addInterceptor(new HeadersInterceptor()); - - if (BuildConfig.DEBUG && !context.getResources().getBoolean(R.bool.nc_is_debug)) { - HttpLoggingInterceptor loggingInterceptor = new HttpLoggingInterceptor(); - loggingInterceptor.setLevel(HttpLoggingInterceptor.Level.BODY); - loggingInterceptor.redactHeader("Authorization"); - loggingInterceptor.redactHeader("Proxy-Authorization"); - httpClient.addInterceptor(loggingInterceptor); - } else if (context.getResources().getBoolean(R.bool.nc_is_debug)) { - HttpLoggingInterceptor.Logger fileLogger = - s -> LoggingUtils.INSTANCE.writeLogEntryToFile(context, s); - HttpLoggingInterceptor loggingInterceptor = new HttpLoggingInterceptor(fileLogger); - loggingInterceptor.setLevel(HttpLoggingInterceptor.Level.BODY); - loggingInterceptor.redactHeader("Authorization"); - loggingInterceptor.redactHeader("Proxy-Authorization"); - httpClient.addInterceptor(loggingInterceptor); - } - - return httpClient.build(); - } - - public static class HeadersInterceptor implements Interceptor { - - @NonNull - @Override - public Response intercept(@NonNull Chain chain) throws IOException { - Request original = chain.request(); - Request request = original.newBuilder() - .header("User-Agent", ApiUtils.getUserAgent()) - .header("Accept", "application/json") - .header("OCS-APIRequest", "true") - .header("ngrok-skip-browser-warning", "true") - .method(original.method(), original.body()) - .build(); - - return chain.proceed(request); - } - } - - public static class HttpAuthenticator implements Authenticator { - - private String credentials; - private String authenticatorType; - - public HttpAuthenticator(@NonNull String credentials, @NonNull String authenticatorType) { - this.credentials = credentials; - this.authenticatorType = authenticatorType; - } - - @Nullable - @Override - public Request authenticate(@Nullable Route route, @NonNull Response response) { - if (response.request().header(authenticatorType) != null) { - return null; - } - - Response countedResponse = response; - - int attemptsCount = 0; - - while ((countedResponse = countedResponse.priorResponse()) != null) { - attemptsCount++; - if (attemptsCount == 3) { - return null; - } - } - - return response.request().newBuilder() - .header(authenticatorType, credentials) - .build(); - } - } - - private class GetProxyRunnable implements Runnable { - private volatile Proxy proxy; - private AppPreferences appPreferences; - - GetProxyRunnable(AppPreferences appPreferences) { - this.appPreferences = appPreferences; - } - - @Override - public void run() { - if (Proxy.Type.valueOf(appPreferences.getProxyType()) == Proxy.Type.SOCKS) { - proxy = new Proxy(Proxy.Type.valueOf(appPreferences.getProxyType()), - InetSocketAddress.createUnresolved(appPreferences.getProxyHost(), Integer.parseInt( - appPreferences.getProxyPort()))); - } else { - proxy = new Proxy(Proxy.Type.valueOf(appPreferences.getProxyType()), - new InetSocketAddress(appPreferences.getProxyHost(), - Integer.parseInt(appPreferences.getProxyPort()))); - } - } - - Proxy getProxyValue() { - return proxy; - } - } -} diff --git a/app/src/main/java/com/nextcloud/talk/dagger/modules/RestModule.kt b/app/src/main/java/com/nextcloud/talk/dagger/modules/RestModule.kt new file mode 100644 index 0000000000..ce023c7452 --- /dev/null +++ b/app/src/main/java/com/nextcloud/talk/dagger/modules/RestModule.kt @@ -0,0 +1,296 @@ +/* + * Nextcloud Talk application + * + * @author Mario Danic + * Copyright (C) 2017 Mario Danic (mario@lovelyhq.com) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +package com.nextcloud.talk.dagger.modules + +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 +import com.nextcloud.talk.application.NextcloudTalkApplication.Companion.sharedApplication +import com.nextcloud.talk.users.UserManager +import com.nextcloud.talk.utils.ApiUtils.userAgent +import com.nextcloud.talk.utils.LoggingUtils.writeLogEntryToFile +import com.nextcloud.talk.utils.preferences.AppPreferences +import com.nextcloud.talk.utils.ssl.KeyManager +import com.nextcloud.talk.utils.ssl.SSLSocketFactoryCompat +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 +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 +import okhttp3.Route +import okhttp3.internal.tls.OkHostnameVerifier +import okhttp3.logging.HttpLoggingInterceptor +import retrofit2.Retrofit +import retrofit2.adapter.rxjava2.RxJava2CallAdapterFactory +import java.io.IOException +import java.net.CookieManager +import java.net.InetSocketAddress +import java.net.Proxy +import java.nio.charset.StandardCharsets +import java.security.KeyStore +import java.security.KeyStoreException +import java.security.NoSuchAlgorithmException +import java.security.UnrecoverableKeyException +import java.security.cert.CertificateException +import java.util.concurrent.TimeUnit +import javax.inject.Singleton +import javax.net.ssl.KeyManagerFactory +import javax.net.ssl.X509KeyManager +import kotlin.concurrent.Volatile + +@Module(includes = [DatabaseModule::class]) +class RestModule(private val context: Context) { + @Singleton + @Provides + fun provideNcApi(retrofit: Retrofit): NcApi { + return retrofit.create(NcApi::class.java) + } + + @Singleton + @Provides + fun provideProxy(appPreferences: AppPreferences): Proxy? { + return if (!TextUtils.isEmpty(appPreferences.getProxyType()) && "No proxy" != appPreferences.getProxyType() && + !TextUtils.isEmpty(appPreferences.getProxyHost()) + ) { + val getProxyRunnable = GetProxyRunnable(appPreferences) + val getProxyThread = Thread(getProxyRunnable) + getProxyThread.start() + try { + getProxyThread.join() + getProxyRunnable.proxyValue + } catch (e: InterruptedException) { + Log.e(TAG, "Failed to join the thread while getting proxy: " + e.localizedMessage) + Proxy.NO_PROXY + } + } else { + Proxy.NO_PROXY + } + } + + @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(Json.asConverterFactory(contentType)); + return retrofitBuilder.build() + } + + @Singleton + @Provides + fun provideTrustManager(): TrustManager { + return TrustManager() + } + + @Singleton + @Provides + fun provideKeyManager(appPreferences: AppPreferences?, userManager: UserManager?): KeyManager? { + val keyStore: KeyStore? + try { + keyStore = KeyStore.getInstance("AndroidKeyStore") + keyStore.load(null) + val kmf = KeyManagerFactory.getInstance(KeyManagerFactory.getDefaultAlgorithm()) + kmf.init(keyStore, null) + val origKm = kmf.keyManagers[0] as X509KeyManager + return KeyManager(origKm, userManager, appPreferences) + } catch (e: KeyStoreException) { + Log.e(TAG, "KeyStoreException " + e.localizedMessage) + } catch (e: CertificateException) { + Log.e(TAG, "CertificateException " + e.localizedMessage) + } catch (e: NoSuchAlgorithmException) { + Log.e(TAG, "NoSuchAlgorithmException " + e.localizedMessage) + } catch (e: IOException) { + Log.e(TAG, "IOException " + e.localizedMessage) + } catch (e: UnrecoverableKeyException) { + Log.e(TAG, "UnrecoverableKeyException " + e.localizedMessage) + } + return null + } + + @Singleton + @Provides + fun provideSslSocketFactoryCompat(keyManager: KeyManager?, trustManager: TrustManager?): SSLSocketFactoryCompat { + return SSLSocketFactoryCompat(keyManager, trustManager!!) + } + + @Singleton + @Provides + fun provideCookieManager(): CookieManager { + return CookieManager() + } + + @Singleton + @Provides + fun provideCache(): Cache { + val cacheSize = 128 * 1024 * 1024 // 128 MB + return Cache(sharedApplication!!.cacheDir, cacheSize.toLong()) + } + + @Singleton + @Provides + fun provideDispatcher(): Dispatcher { + val dispatcher = Dispatcher() + dispatcher.maxRequestsPerHost = 100 + dispatcher.maxRequests = 100 + return dispatcher + } + + @Singleton + @Provides + fun provideHttpClient( + proxy: Proxy?, + appPreferences: AppPreferences, + trustManager: TrustManager, + sslSocketFactoryCompat: SSLSocketFactoryCompat?, + cache: Cache?, + cookieManager: CookieManager?, + dispatcher: Dispatcher? + ): OkHttpClient { + val httpClient = OkHttpClient.Builder() + httpClient.retryOnConnectionFailure(true) + httpClient.connectTimeout(45, TimeUnit.SECONDS) + httpClient.readTimeout(45, TimeUnit.SECONDS) + httpClient.writeTimeout(45, TimeUnit.SECONDS) + httpClient.cookieJar(JavaNetCookieJar(cookieManager!!)) + httpClient.cache(cache) + + // Trust own CA and all self-signed certs + httpClient.sslSocketFactory(sslSocketFactoryCompat!!, trustManager) + httpClient.retryOnConnectionFailure(true) + httpClient.hostnameVerifier(trustManager.getHostnameVerifier(OkHostnameVerifier)) + httpClient.dispatcher(dispatcher!!) + if (Proxy.NO_PROXY != proxy) { + httpClient.proxy(proxy) + if (appPreferences.getProxyCredentials() && + !TextUtils.isEmpty(appPreferences.getProxyUsername()) && + !TextUtils.isEmpty(appPreferences.getProxyPassword()) + ) { + httpClient.proxyAuthenticator( + HttpAuthenticator( + basic( + appPreferences.getProxyUsername(), + appPreferences.getProxyPassword(), + StandardCharsets.UTF_8 + ), + "Proxy-Authorization" + ) + ) + } + } + httpClient.addInterceptor(HeadersInterceptor()) + if (BuildConfig.DEBUG && !context.resources.getBoolean(R.bool.nc_is_debug)) { + val loggingInterceptor = HttpLoggingInterceptor() + loggingInterceptor.setLevel(HttpLoggingInterceptor.Level.BODY) + loggingInterceptor.redactHeader("Authorization") + loggingInterceptor.redactHeader("Proxy-Authorization") + httpClient.addInterceptor(loggingInterceptor) + } else if (context.resources.getBoolean(R.bool.nc_is_debug)) { + val fileLogger = HttpLoggingInterceptor.Logger { s: String? -> writeLogEntryToFile(context, s!!) } + val loggingInterceptor = HttpLoggingInterceptor(fileLogger) + loggingInterceptor.setLevel(HttpLoggingInterceptor.Level.BODY) + loggingInterceptor.redactHeader("Authorization") + loggingInterceptor.redactHeader("Proxy-Authorization") + httpClient.addInterceptor(loggingInterceptor) + } + return httpClient.build() + } + + class HeadersInterceptor : Interceptor { + @Throws(IOException::class) + override fun intercept(chain: Chain): Response { + val original: Request = chain.request() + val request = original.newBuilder() + .header("User-Agent", userAgent) + .header("Accept", "application/json") + .header("OCS-APIRequest", "true") + .header("ngrok-skip-browser-warning", "true") + .method(original.method, original.body) + .build() + return chain.proceed(request) + } + } + + class HttpAuthenticator(private val credentials: String, private val authenticatorType: String) : Authenticator { + override fun authenticate(route: Route?, response: Response): Request? { + if (response.request.header(authenticatorType) != null) { + return null + } + var countedResponse = response + var attemptsCount = 0 + while (countedResponse.priorResponse.also { countedResponse = it!! } != null) { + attemptsCount++ + if (attemptsCount == 3) { + return null + } + } + return response.request.newBuilder() + .header(authenticatorType, credentials) + .build() + } + } + + private inner class GetProxyRunnable(private val appPreferences: AppPreferences) : Runnable { + @Volatile + var proxyValue: Proxy? = null + private set + + override fun run() { + proxyValue = if (Proxy.Type.valueOf(appPreferences.getProxyType()) == Proxy.Type.SOCKS) { + Proxy( + Proxy.Type.valueOf(appPreferences.getProxyType()), + InetSocketAddress.createUnresolved( + appPreferences.getProxyHost(), + appPreferences.getProxyPort().toInt() + ) + ) + } else { + Proxy( + Proxy.Type.valueOf(appPreferences.getProxyType()), + InetSocketAddress(appPreferences.getProxyHost(), appPreferences.getProxyPort().toInt()) + ) + } + } + } + + companion object { + private const val TAG = "RestModule" + } +} diff --git a/app/src/main/java/com/nextcloud/talk/data/user/model/User.kt b/app/src/main/java/com/nextcloud/talk/data/user/model/User.kt index 4ce808e3e7..d529923f14 100644 --- a/app/src/main/java/com/nextcloud/talk/data/user/model/User.kt +++ b/app/src/main/java/com/nextcloud/talk/data/user/model/User.kt @@ -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, diff --git a/app/src/main/java/com/nextcloud/talk/models/ExternalSignalingServer.kt b/app/src/main/java/com/nextcloud/talk/models/ExternalSignalingServer.kt index d4caf8a6da..4dc95b8fd5 100644 --- a/app/src/main/java/com/nextcloud/talk/models/ExternalSignalingServer.kt +++ b/app/src/main/java/com/nextcloud/talk/models/ExternalSignalingServer.kt @@ -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' diff --git a/app/src/main/java/com/nextcloud/talk/models/RingtoneSettings.kt b/app/src/main/java/com/nextcloud/talk/models/RingtoneSettings.kt index 004a48501c..933cf44668 100644 --- a/app/src/main/java/com/nextcloud/talk/models/RingtoneSettings.kt +++ b/app/src/main/java/com/nextcloud/talk/models/RingtoneSettings.kt @@ -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) } diff --git a/app/src/main/java/com/nextcloud/talk/models/json/autocomplete/AutocompleteOCS.kt b/app/src/main/java/com/nextcloud/talk/models/json/autocomplete/AutocompleteOCS.kt index 9473b31bca..1d4e5b8a17 100644 --- a/app/src/main/java/com/nextcloud/talk/models/json/autocomplete/AutocompleteOCS.kt +++ b/app/src/main/java/com/nextcloud/talk/models/json/autocomplete/AutocompleteOCS.kt @@ -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? ) : Parcelable { // This constructor is added to work with the 'com.bluelinelabs.logansquare.annotation.JsonObject' diff --git a/app/src/main/java/com/nextcloud/talk/models/json/autocomplete/AutocompleteOverall.kt b/app/src/main/java/com/nextcloud/talk/models/json/autocomplete/AutocompleteOverall.kt index 4976a219d6..3bed4cb28b 100644 --- a/app/src/main/java/com/nextcloud/talk/models/json/autocomplete/AutocompleteOverall.kt +++ b/app/src/main/java/com/nextcloud/talk/models/json/autocomplete/AutocompleteOverall.kt @@ -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' diff --git a/app/src/main/java/com/nextcloud/talk/models/json/autocomplete/AutocompleteUser.kt b/app/src/main/java/com/nextcloud/talk/models/json/autocomplete/AutocompleteUser.kt index 6e66c9d7b9..f796fe35b7 100644 --- a/app/src/main/java/com/nextcloud/talk/models/json/autocomplete/AutocompleteUser.kt +++ b/app/src/main/java/com/nextcloud/talk/models/json/autocomplete/AutocompleteUser.kt @@ -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' diff --git a/app/src/main/java/com/nextcloud/talk/models/json/capabilities/Capabilities.kt b/app/src/main/java/com/nextcloud/talk/models/json/capabilities/Capabilities.kt index 23026a8ad9..be6bc461ef 100644 --- a/app/src/main/java/com/nextcloud/talk/models/json/capabilities/Capabilities.kt +++ b/app/src/main/java/com/nextcloud/talk/models/json/capabilities/Capabilities.kt @@ -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>?, - @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' diff --git a/app/src/main/java/com/nextcloud/talk/models/json/capabilities/CapabilitiesList.kt b/app/src/main/java/com/nextcloud/talk/models/json/capabilities/CapabilitiesList.kt index 1b0560afa6..38a7a01b0b 100644 --- a/app/src/main/java/com/nextcloud/talk/models/json/capabilities/CapabilitiesList.kt +++ b/app/src/main/java/com/nextcloud/talk/models/json/capabilities/CapabilitiesList.kt @@ -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' diff --git a/app/src/main/java/com/nextcloud/talk/models/json/capabilities/CapabilitiesOCS.kt b/app/src/main/java/com/nextcloud/talk/models/json/capabilities/CapabilitiesOCS.kt index fffe8a9aff..82fc430a0f 100644 --- a/app/src/main/java/com/nextcloud/talk/models/json/capabilities/CapabilitiesOCS.kt +++ b/app/src/main/java/com/nextcloud/talk/models/json/capabilities/CapabilitiesOCS.kt @@ -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' diff --git a/app/src/main/java/com/nextcloud/talk/models/json/capabilities/CapabilitiesOverall.kt b/app/src/main/java/com/nextcloud/talk/models/json/capabilities/CapabilitiesOverall.kt index 636846e70a..764b3e477c 100644 --- a/app/src/main/java/com/nextcloud/talk/models/json/capabilities/CapabilitiesOverall.kt +++ b/app/src/main/java/com/nextcloud/talk/models/json/capabilities/CapabilitiesOverall.kt @@ -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' diff --git a/app/src/main/java/com/nextcloud/talk/models/json/capabilities/CoreCapability.kt b/app/src/main/java/com/nextcloud/talk/models/json/capabilities/CoreCapability.kt index 09a1ad7a55..92e3e18694 100644 --- a/app/src/main/java/com/nextcloud/talk/models/json/capabilities/CoreCapability.kt +++ b/app/src/main/java/com/nextcloud/talk/models/json/capabilities/CoreCapability.kt @@ -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' diff --git a/app/src/main/java/com/nextcloud/talk/models/json/capabilities/NotificationsCapability.kt b/app/src/main/java/com/nextcloud/talk/models/json/capabilities/NotificationsCapability.kt index e32fe0bd7c..c57c889bfc 100644 --- a/app/src/main/java/com/nextcloud/talk/models/json/capabilities/NotificationsCapability.kt +++ b/app/src/main/java/com/nextcloud/talk/models/json/capabilities/NotificationsCapability.kt @@ -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? ) : Parcelable { // This constructor is added to work with the 'com.bluelinelabs.logansquare.annotation.JsonObject' diff --git a/app/src/main/java/com/nextcloud/talk/models/json/capabilities/ProvisioningCapability.kt b/app/src/main/java/com/nextcloud/talk/models/json/capabilities/ProvisioningCapability.kt index 637ad73840..baeb47baed 100644 --- a/app/src/main/java/com/nextcloud/talk/models/json/capabilities/ProvisioningCapability.kt +++ b/app/src/main/java/com/nextcloud/talk/models/json/capabilities/ProvisioningCapability.kt @@ -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' diff --git a/app/src/main/java/com/nextcloud/talk/models/json/capabilities/RoomCapabilitiesOCS.kt b/app/src/main/java/com/nextcloud/talk/models/json/capabilities/RoomCapabilitiesOCS.kt index 193dff5292..11114e6dc0 100644 --- a/app/src/main/java/com/nextcloud/talk/models/json/capabilities/RoomCapabilitiesOCS.kt +++ b/app/src/main/java/com/nextcloud/talk/models/json/capabilities/RoomCapabilitiesOCS.kt @@ -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' diff --git a/app/src/main/java/com/nextcloud/talk/models/json/capabilities/RoomCapabilitiesOverall.kt b/app/src/main/java/com/nextcloud/talk/models/json/capabilities/RoomCapabilitiesOverall.kt index aa7234929d..5b59ccce62 100644 --- a/app/src/main/java/com/nextcloud/talk/models/json/capabilities/RoomCapabilitiesOverall.kt +++ b/app/src/main/java/com/nextcloud/talk/models/json/capabilities/RoomCapabilitiesOverall.kt @@ -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' diff --git a/app/src/main/java/com/nextcloud/talk/models/json/capabilities/ServerVersion.kt b/app/src/main/java/com/nextcloud/talk/models/json/capabilities/ServerVersion.kt index 0685e06900..f77113aa85 100644 --- a/app/src/main/java/com/nextcloud/talk/models/json/capabilities/ServerVersion.kt +++ b/app/src/main/java/com/nextcloud/talk/models/json/capabilities/ServerVersion.kt @@ -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' diff --git a/app/src/main/java/com/nextcloud/talk/models/json/capabilities/SpreedCapability.kt b/app/src/main/java/com/nextcloud/talk/models/json/capabilities/SpreedCapability.kt index 9fa43fcbb0..d8ece39524 100644 --- a/app/src/main/java/com/nextcloud/talk/models/json/capabilities/SpreedCapability.kt +++ b/app/src/main/java/com/nextcloud/talk/models/json/capabilities/SpreedCapability.kt @@ -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?, - @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' diff --git a/app/src/main/java/com/nextcloud/talk/models/json/capabilities/ThemingCapability.kt b/app/src/main/java/com/nextcloud/talk/models/json/capabilities/ThemingCapability.kt index 35d78dd24d..9549e6ebb1 100644 --- a/app/src/main/java/com/nextcloud/talk/models/json/capabilities/ThemingCapability.kt +++ b/app/src/main/java/com/nextcloud/talk/models/json/capabilities/ThemingCapability.kt @@ -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' diff --git a/app/src/main/java/com/nextcloud/talk/models/json/capabilities/UserStatusCapability.kt b/app/src/main/java/com/nextcloud/talk/models/json/capabilities/UserStatusCapability.kt index 47f100bf34..b46a9ee21b 100644 --- a/app/src/main/java/com/nextcloud/talk/models/json/capabilities/UserStatusCapability.kt +++ b/app/src/main/java/com/nextcloud/talk/models/json/capabilities/UserStatusCapability.kt @@ -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' diff --git a/app/src/main/java/com/nextcloud/talk/models/json/chat/ChatMessage.kt b/app/src/main/java/com/nextcloud/talk/models/json/chat/ChatMessage.kt index dc285504c7..a0f303db3f 100644 --- a/app/src/main/java/com/nextcloud/talk/models/json/chat/ChatMessage.kt +++ b/app/src/main/java/com/nextcloud/talk/models/json/chat/ChatMessage.kt @@ -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>? = 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.NONE, - @JsonField(name = ["messageType"]) + @SerialName("messageType") var messageType: String? = null, - @JsonField(name = ["reactions"]) + @SerialName("reactions") var reactions: LinkedHashMap? = null, - @JsonField(name = ["reactionsSelf"]) + @SerialName("reactionsSelf") var reactionsSelf: ArrayList? = 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, diff --git a/app/src/main/java/com/nextcloud/talk/models/json/chat/ChatOCS.kt b/app/src/main/java/com/nextcloud/talk/models/json/chat/ChatOCS.kt index 5cb67f1a7f..6823a2f3a4 100644 --- a/app/src/main/java/com/nextcloud/talk/models/json/chat/ChatOCS.kt +++ b/app/src/main/java/com/nextcloud/talk/models/json/chat/ChatOCS.kt @@ -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? = null ) : Parcelable { // This constructor is added to work with the 'com.bluelinelabs.logansquare.annotation.JsonObject' diff --git a/app/src/main/java/com/nextcloud/talk/models/json/chat/ChatOCSSingleMessage.kt b/app/src/main/java/com/nextcloud/talk/models/json/chat/ChatOCSSingleMessage.kt index eb12998ae3..f0c37da10d 100644 --- a/app/src/main/java/com/nextcloud/talk/models/json/chat/ChatOCSSingleMessage.kt +++ b/app/src/main/java/com/nextcloud/talk/models/json/chat/ChatOCSSingleMessage.kt @@ -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' diff --git a/app/src/main/java/com/nextcloud/talk/models/json/chat/ChatOverall.kt b/app/src/main/java/com/nextcloud/talk/models/json/chat/ChatOverall.kt index 9378f1c5f3..eb3c94dd57 100644 --- a/app/src/main/java/com/nextcloud/talk/models/json/chat/ChatOverall.kt +++ b/app/src/main/java/com/nextcloud/talk/models/json/chat/ChatOverall.kt @@ -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' diff --git a/app/src/main/java/com/nextcloud/talk/models/json/chat/ChatOverallSingleMessage.kt b/app/src/main/java/com/nextcloud/talk/models/json/chat/ChatOverallSingleMessage.kt index f0aca47b99..6ec53eb98b 100644 --- a/app/src/main/java/com/nextcloud/talk/models/json/chat/ChatOverallSingleMessage.kt +++ b/app/src/main/java/com/nextcloud/talk/models/json/chat/ChatOverallSingleMessage.kt @@ -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' diff --git a/app/src/main/java/com/nextcloud/talk/models/json/chat/ChatShareOCS.kt b/app/src/main/java/com/nextcloud/talk/models/json/chat/ChatShareOCS.kt index 417426d270..fc316b89fc 100644 --- a/app/src/main/java/com/nextcloud/talk/models/json/chat/ChatShareOCS.kt +++ b/app/src/main/java/com/nextcloud/talk/models/json/chat/ChatShareOCS.kt @@ -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? = null ) : Parcelable { // This constructor is added to work with the 'com.bluelinelabs.logansquare.annotation.JsonObject' diff --git a/app/src/main/java/com/nextcloud/talk/models/json/chat/ChatShareOverall.kt b/app/src/main/java/com/nextcloud/talk/models/json/chat/ChatShareOverall.kt index 2e0612ced7..d17d53e8a6 100644 --- a/app/src/main/java/com/nextcloud/talk/models/json/chat/ChatShareOverall.kt +++ b/app/src/main/java/com/nextcloud/talk/models/json/chat/ChatShareOverall.kt @@ -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' diff --git a/app/src/main/java/com/nextcloud/talk/models/json/chat/ChatShareOverviewOCS.kt b/app/src/main/java/com/nextcloud/talk/models/json/chat/ChatShareOverviewOCS.kt index cdae476201..77daf5c82b 100644 --- a/app/src/main/java/com/nextcloud/talk/models/json/chat/ChatShareOverviewOCS.kt +++ b/app/src/main/java/com/nextcloud/talk/models/json/chat/ChatShareOverviewOCS.kt @@ -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 data class ChatShareOverviewOCS( - @JsonField(name = ["data"]) - var data: HashMap>? = null + @SerialName("data") + var data: HashMap>? = null ) : Parcelable { // This constructor is added to work with the 'com.bluelinelabs.logansquare.annotation.JsonObject' constructor() : this(null) diff --git a/app/src/main/java/com/nextcloud/talk/models/json/chat/ChatShareOverviewOverall.kt b/app/src/main/java/com/nextcloud/talk/models/json/chat/ChatShareOverviewOverall.kt index 93da5ed48f..e41b618668 100644 --- a/app/src/main/java/com/nextcloud/talk/models/json/chat/ChatShareOverviewOverall.kt +++ b/app/src/main/java/com/nextcloud/talk/models/json/chat/ChatShareOverviewOverall.kt @@ -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' diff --git a/app/src/main/java/com/nextcloud/talk/models/json/conversations/Conversation.kt b/app/src/main/java/com/nextcloud/talk/models/json/conversations/Conversation.kt index 97ec35660f..0eebfd7fd0 100644 --- a/app/src/main/java/com/nextcloud/talk/models/json/conversations/Conversation.kt +++ b/app/src/main/java/com/nextcloud/talk/models/json/conversations/Conversation.kt @@ -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 { diff --git a/app/src/main/java/com/nextcloud/talk/models/json/conversations/RoomOCS.kt b/app/src/main/java/com/nextcloud/talk/models/json/conversations/RoomOCS.kt index 6a7eb5aaa2..abe292ebb6 100644 --- a/app/src/main/java/com/nextcloud/talk/models/json/conversations/RoomOCS.kt +++ b/app/src/main/java/com/nextcloud/talk/models/json/conversations/RoomOCS.kt @@ -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' diff --git a/app/src/main/java/com/nextcloud/talk/models/json/conversations/RoomOverall.kt b/app/src/main/java/com/nextcloud/talk/models/json/conversations/RoomOverall.kt index ef5574c849..3d0cbf257d 100644 --- a/app/src/main/java/com/nextcloud/talk/models/json/conversations/RoomOverall.kt +++ b/app/src/main/java/com/nextcloud/talk/models/json/conversations/RoomOverall.kt @@ -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' diff --git a/app/src/main/java/com/nextcloud/talk/models/json/conversations/RoomsOCS.kt b/app/src/main/java/com/nextcloud/talk/models/json/conversations/RoomsOCS.kt index 8672b99bd9..f35abf9c5b 100644 --- a/app/src/main/java/com/nextcloud/talk/models/json/conversations/RoomsOCS.kt +++ b/app/src/main/java/com/nextcloud/talk/models/json/conversations/RoomsOCS.kt @@ -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? = null ) : Parcelable { // This constructor is added to work with the 'com.bluelinelabs.logansquare.annotation.JsonObject' diff --git a/app/src/main/java/com/nextcloud/talk/models/json/conversations/RoomsOverall.kt b/app/src/main/java/com/nextcloud/talk/models/json/conversations/RoomsOverall.kt index 83c6de9b41..ebe104d4aa 100644 --- a/app/src/main/java/com/nextcloud/talk/models/json/conversations/RoomsOverall.kt +++ b/app/src/main/java/com/nextcloud/talk/models/json/conversations/RoomsOverall.kt @@ -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' diff --git a/app/src/main/java/com/nextcloud/talk/models/json/conversations/password/PasswordData.kt b/app/src/main/java/com/nextcloud/talk/models/json/conversations/password/PasswordData.kt index b11fb201d5..993c113d94 100644 --- a/app/src/main/java/com/nextcloud/talk/models/json/conversations/password/PasswordData.kt +++ b/app/src/main/java/com/nextcloud/talk/models/json/conversations/password/PasswordData.kt @@ -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' diff --git a/app/src/main/java/com/nextcloud/talk/models/json/conversations/password/PasswordOCS.kt b/app/src/main/java/com/nextcloud/talk/models/json/conversations/password/PasswordOCS.kt index d2c68ae15f..d7e22bd0ba 100644 --- a/app/src/main/java/com/nextcloud/talk/models/json/conversations/password/PasswordOCS.kt +++ b/app/src/main/java/com/nextcloud/talk/models/json/conversations/password/PasswordOCS.kt @@ -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' diff --git a/app/src/main/java/com/nextcloud/talk/models/json/conversations/password/PasswordOverall.kt b/app/src/main/java/com/nextcloud/talk/models/json/conversations/password/PasswordOverall.kt index e91e259abb..9428467095 100644 --- a/app/src/main/java/com/nextcloud/talk/models/json/conversations/password/PasswordOverall.kt +++ b/app/src/main/java/com/nextcloud/talk/models/json/conversations/password/PasswordOverall.kt @@ -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' diff --git a/app/src/main/java/com/nextcloud/talk/models/json/converters/KotlinxJodaTimeConverter.kt b/app/src/main/java/com/nextcloud/talk/models/json/converters/KotlinxJodaTimeConverter.kt new file mode 100644 index 0000000000..efb539fb3d --- /dev/null +++ b/app/src/main/java/com/nextcloud/talk/models/json/converters/KotlinxJodaTimeConverter.kt @@ -0,0 +1,22 @@ +package com.nextcloud.talk.models.json.converters + +import kotlinx.serialization.KSerializer +import kotlinx.serialization.descriptors.PrimitiveKind +import kotlinx.serialization.descriptors.PrimitiveSerialDescriptor +import kotlinx.serialization.descriptors.SerialDescriptor +import kotlinx.serialization.encoding.Decoder +import kotlinx.serialization.encoding.Encoder +import org.joda.time.DateTime + +object KotlinxJodaTimeConverter : KSerializer { + override val descriptor: SerialDescriptor = + PrimitiveSerialDescriptor("DateTime", PrimitiveKind.STRING) + + override fun serialize(encoder: Encoder, value: DateTime) { + encoder.encodeString(value.toString()) + } + + override fun deserialize(decoder: Decoder): DateTime = + DateTime.parse(decoder.decodeString()) + +} diff --git a/app/src/main/java/com/nextcloud/talk/models/json/generic/GenericMeta.kt b/app/src/main/java/com/nextcloud/talk/models/json/generic/GenericMeta.kt index 4d145d6bf8..b2fd344d64 100644 --- a/app/src/main/java/com/nextcloud/talk/models/json/generic/GenericMeta.kt +++ b/app/src/main/java/com/nextcloud/talk/models/json/generic/GenericMeta.kt @@ -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' diff --git a/app/src/main/java/com/nextcloud/talk/models/json/generic/GenericOCS.kt b/app/src/main/java/com/nextcloud/talk/models/json/generic/GenericOCS.kt index b3cc3361a3..c9fefbcda0 100644 --- a/app/src/main/java/com/nextcloud/talk/models/json/generic/GenericOCS.kt +++ b/app/src/main/java/com/nextcloud/talk/models/json/generic/GenericOCS.kt @@ -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' diff --git a/app/src/main/java/com/nextcloud/talk/models/json/generic/GenericOverall.kt b/app/src/main/java/com/nextcloud/talk/models/json/generic/GenericOverall.kt index 2cfaeaa75d..94e5c72133 100644 --- a/app/src/main/java/com/nextcloud/talk/models/json/generic/GenericOverall.kt +++ b/app/src/main/java/com/nextcloud/talk/models/json/generic/GenericOverall.kt @@ -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' diff --git a/app/src/main/java/com/nextcloud/talk/models/json/generic/Status.kt b/app/src/main/java/com/nextcloud/talk/models/json/generic/Status.kt index 0e2e464028..ab2d08c6db 100644 --- a/app/src/main/java/com/nextcloud/talk/models/json/generic/Status.kt +++ b/app/src/main/java/com/nextcloud/talk/models/json/generic/Status.kt @@ -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' diff --git a/app/src/main/java/com/nextcloud/talk/models/json/hovercard/HoverCard.kt b/app/src/main/java/com/nextcloud/talk/models/json/hovercard/HoverCard.kt index a90603849a..b9815e4789 100644 --- a/app/src/main/java/com/nextcloud/talk/models/json/hovercard/HoverCard.kt +++ b/app/src/main/java/com/nextcloud/talk/models/json/hovercard/HoverCard.kt @@ -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? ) : Parcelable { // This constructor is added to work with the 'com.bluelinelabs.logansquare.annotation.JsonObject' diff --git a/app/src/main/java/com/nextcloud/talk/models/json/hovercard/HoverCardAction.kt b/app/src/main/java/com/nextcloud/talk/models/json/hovercard/HoverCardAction.kt index 9d4b60fdc7..696a450630 100644 --- a/app/src/main/java/com/nextcloud/talk/models/json/hovercard/HoverCardAction.kt +++ b/app/src/main/java/com/nextcloud/talk/models/json/hovercard/HoverCardAction.kt @@ -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' diff --git a/app/src/main/java/com/nextcloud/talk/models/json/hovercard/HoverCardOCS.kt b/app/src/main/java/com/nextcloud/talk/models/json/hovercard/HoverCardOCS.kt index 19083c657f..09d7dfd440 100644 --- a/app/src/main/java/com/nextcloud/talk/models/json/hovercard/HoverCardOCS.kt +++ b/app/src/main/java/com/nextcloud/talk/models/json/hovercard/HoverCardOCS.kt @@ -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' diff --git a/app/src/main/java/com/nextcloud/talk/models/json/hovercard/HoverCardOverall.kt b/app/src/main/java/com/nextcloud/talk/models/json/hovercard/HoverCardOverall.kt index 3e073d2fd6..5fcbe7d301 100644 --- a/app/src/main/java/com/nextcloud/talk/models/json/hovercard/HoverCardOverall.kt +++ b/app/src/main/java/com/nextcloud/talk/models/json/hovercard/HoverCardOverall.kt @@ -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' diff --git a/app/src/main/java/com/nextcloud/talk/models/json/invitation/Invitation.kt b/app/src/main/java/com/nextcloud/talk/models/json/invitation/Invitation.kt index 56fbc2373d..60ac130bde 100644 --- a/app/src/main/java/com/nextcloud/talk/models/json/invitation/Invitation.kt +++ b/app/src/main/java/com/nextcloud/talk/models/json/invitation/Invitation.kt @@ -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' diff --git a/app/src/main/java/com/nextcloud/talk/models/json/invitation/InvitationOCS.kt b/app/src/main/java/com/nextcloud/talk/models/json/invitation/InvitationOCS.kt index 1bc86ea029..33aa31cf7e 100644 --- a/app/src/main/java/com/nextcloud/talk/models/json/invitation/InvitationOCS.kt +++ b/app/src/main/java/com/nextcloud/talk/models/json/invitation/InvitationOCS.kt @@ -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? ) : Parcelable { // This constructor is added to work with the 'com.bluelinelabs.logansquare.annotation.JsonObject' diff --git a/app/src/main/java/com/nextcloud/talk/models/json/invitation/InvitationOverall.kt b/app/src/main/java/com/nextcloud/talk/models/json/invitation/InvitationOverall.kt index 9c133c064e..ee13cdac9b 100644 --- a/app/src/main/java/com/nextcloud/talk/models/json/invitation/InvitationOverall.kt +++ b/app/src/main/java/com/nextcloud/talk/models/json/invitation/InvitationOverall.kt @@ -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' diff --git a/app/src/main/java/com/nextcloud/talk/models/json/mention/Mention.kt b/app/src/main/java/com/nextcloud/talk/models/json/mention/Mention.kt index 740c72fe9c..fb2a6ad763 100644 --- a/app/src/main/java/com/nextcloud/talk/models/json/mention/Mention.kt +++ b/app/src/main/java/com/nextcloud/talk/models/json/mention/Mention.kt @@ -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' diff --git a/app/src/main/java/com/nextcloud/talk/models/json/mention/MentionOCS.kt b/app/src/main/java/com/nextcloud/talk/models/json/mention/MentionOCS.kt index 5851cdee3b..f6740b3911 100644 --- a/app/src/main/java/com/nextcloud/talk/models/json/mention/MentionOCS.kt +++ b/app/src/main/java/com/nextcloud/talk/models/json/mention/MentionOCS.kt @@ -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? ) : Parcelable { // This constructor is added to work with the 'com.bluelinelabs.logansquare.annotation.JsonObject' diff --git a/app/src/main/java/com/nextcloud/talk/models/json/mention/MentionOverall.kt b/app/src/main/java/com/nextcloud/talk/models/json/mention/MentionOverall.kt index a3d39d1c58..c8e5ce3e62 100644 --- a/app/src/main/java/com/nextcloud/talk/models/json/mention/MentionOverall.kt +++ b/app/src/main/java/com/nextcloud/talk/models/json/mention/MentionOverall.kt @@ -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' diff --git a/app/src/main/java/com/nextcloud/talk/models/json/notifications/Notification.kt b/app/src/main/java/com/nextcloud/talk/models/json/notifications/Notification.kt index 86b6cf27c9..f10b3c8a48 100644 --- a/app/src/main/java/com/nextcloud/talk/models/json/notifications/Notification.kt +++ b/app/src/main/java/com/nextcloud/talk/models/json/notifications/Notification.kt @@ -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>?, - @JsonField(name = ["message"]) var message: String?, - @JsonField(name = ["messageRich"]) var messageRich: String?, - @JsonField(name = ["messageRichParameters"]) var messageRichParameters: HashMap>?, - @JsonField(name = ["link"]) var link: String?, - @JsonField(name = ["actions"]) var actions: List? ) : Parcelable { // This constructor is added to work with the 'com.bluelinelabs.logansquare.annotation.JsonObject' diff --git a/app/src/main/java/com/nextcloud/talk/models/json/notifications/NotificationAction.kt b/app/src/main/java/com/nextcloud/talk/models/json/notifications/NotificationAction.kt index cb06eb8378..d987a9b1fe 100644 --- a/app/src/main/java/com/nextcloud/talk/models/json/notifications/NotificationAction.kt +++ b/app/src/main/java/com/nextcloud/talk/models/json/notifications/NotificationAction.kt @@ -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' diff --git a/app/src/main/java/com/nextcloud/talk/models/json/notifications/NotificationOCS.kt b/app/src/main/java/com/nextcloud/talk/models/json/notifications/NotificationOCS.kt index 4745ffaa7c..04ac59fa68 100644 --- a/app/src/main/java/com/nextcloud/talk/models/json/notifications/NotificationOCS.kt +++ b/app/src/main/java/com/nextcloud/talk/models/json/notifications/NotificationOCS.kt @@ -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' diff --git a/app/src/main/java/com/nextcloud/talk/models/json/notifications/NotificationOverall.kt b/app/src/main/java/com/nextcloud/talk/models/json/notifications/NotificationOverall.kt index 5c5fb22877..9b42ad25f1 100644 --- a/app/src/main/java/com/nextcloud/talk/models/json/notifications/NotificationOverall.kt +++ b/app/src/main/java/com/nextcloud/talk/models/json/notifications/NotificationOverall.kt @@ -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' diff --git a/app/src/main/java/com/nextcloud/talk/models/json/notifications/NotificationRichObject.kt b/app/src/main/java/com/nextcloud/talk/models/json/notifications/NotificationRichObject.kt index e4eff410e7..9d655fd48c 100644 --- a/app/src/main/java/com/nextcloud/talk/models/json/notifications/NotificationRichObject.kt +++ b/app/src/main/java/com/nextcloud/talk/models/json/notifications/NotificationRichObject.kt @@ -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' diff --git a/app/src/main/java/com/nextcloud/talk/models/json/notifications/NotificationsOCS.kt b/app/src/main/java/com/nextcloud/talk/models/json/notifications/NotificationsOCS.kt index 94f3280acf..ff41f862d8 100644 --- a/app/src/main/java/com/nextcloud/talk/models/json/notifications/NotificationsOCS.kt +++ b/app/src/main/java/com/nextcloud/talk/models/json/notifications/NotificationsOCS.kt @@ -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? ) : Parcelable { // This constructor is added to work with the 'com.bluelinelabs.logansquare.annotation.JsonObject' diff --git a/app/src/main/java/com/nextcloud/talk/models/json/notifications/NotificationsOverall.kt b/app/src/main/java/com/nextcloud/talk/models/json/notifications/NotificationsOverall.kt index cc5a945697..afea6ade44 100644 --- a/app/src/main/java/com/nextcloud/talk/models/json/notifications/NotificationsOverall.kt +++ b/app/src/main/java/com/nextcloud/talk/models/json/notifications/NotificationsOverall.kt @@ -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' diff --git a/app/src/main/java/com/nextcloud/talk/models/json/opengraph/OpenGraphOCS.kt b/app/src/main/java/com/nextcloud/talk/models/json/opengraph/OpenGraphOCS.kt index 941d849a6d..de1df5f04d 100644 --- a/app/src/main/java/com/nextcloud/talk/models/json/opengraph/OpenGraphOCS.kt +++ b/app/src/main/java/com/nextcloud/talk/models/json/opengraph/OpenGraphOCS.kt @@ -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' diff --git a/app/src/main/java/com/nextcloud/talk/models/json/opengraph/OpenGraphObject.kt b/app/src/main/java/com/nextcloud/talk/models/json/opengraph/OpenGraphObject.kt index 3150eaecfc..2c6837615b 100644 --- a/app/src/main/java/com/nextcloud/talk/models/json/opengraph/OpenGraphObject.kt +++ b/app/src/main/java/com/nextcloud/talk/models/json/opengraph/OpenGraphObject.kt @@ -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' diff --git a/app/src/main/java/com/nextcloud/talk/models/json/opengraph/OpenGraphOverall.kt b/app/src/main/java/com/nextcloud/talk/models/json/opengraph/OpenGraphOverall.kt index fae9653b27..ab8a5a78d7 100644 --- a/app/src/main/java/com/nextcloud/talk/models/json/opengraph/OpenGraphOverall.kt +++ b/app/src/main/java/com/nextcloud/talk/models/json/opengraph/OpenGraphOverall.kt @@ -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' diff --git a/app/src/main/java/com/nextcloud/talk/models/json/opengraph/OpenGraphResponse.kt b/app/src/main/java/com/nextcloud/talk/models/json/opengraph/OpenGraphResponse.kt index 07be4c5278..e2e596f823 100644 --- a/app/src/main/java/com/nextcloud/talk/models/json/opengraph/OpenGraphResponse.kt +++ b/app/src/main/java/com/nextcloud/talk/models/json/opengraph/OpenGraphResponse.kt @@ -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? ) : Parcelable { // This constructor is added to work with the 'com.bluelinelabs.logansquare.annotation.JsonObject' diff --git a/app/src/main/java/com/nextcloud/talk/models/json/opengraph/Reference.kt b/app/src/main/java/com/nextcloud/talk/models/json/opengraph/Reference.kt index b9652110e5..593af62322 100644 --- a/app/src/main/java/com/nextcloud/talk/models/json/opengraph/Reference.kt +++ b/app/src/main/java/com/nextcloud/talk/models/json/opengraph/Reference.kt @@ -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' diff --git a/app/src/main/java/com/nextcloud/talk/models/json/opengraph/RichObject.kt b/app/src/main/java/com/nextcloud/talk/models/json/opengraph/RichObject.kt index c9697429d7..a1f3bdcfb4 100644 --- a/app/src/main/java/com/nextcloud/talk/models/json/opengraph/RichObject.kt +++ b/app/src/main/java/com/nextcloud/talk/models/json/opengraph/RichObject.kt @@ -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' diff --git a/app/src/main/java/com/nextcloud/talk/models/json/participants/AddParticipantOCS.kt b/app/src/main/java/com/nextcloud/talk/models/json/participants/AddParticipantOCS.kt index fef24a6e6a..6092309cce 100644 --- a/app/src/main/java/com/nextcloud/talk/models/json/participants/AddParticipantOCS.kt +++ b/app/src/main/java/com/nextcloud/talk/models/json/participants/AddParticipantOCS.kt @@ -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' diff --git a/app/src/main/java/com/nextcloud/talk/models/json/participants/AddParticipantOverall.kt b/app/src/main/java/com/nextcloud/talk/models/json/participants/AddParticipantOverall.kt index 8fee658136..bea37acff6 100644 --- a/app/src/main/java/com/nextcloud/talk/models/json/participants/AddParticipantOverall.kt +++ b/app/src/main/java/com/nextcloud/talk/models/json/participants/AddParticipantOverall.kt @@ -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' diff --git a/app/src/main/java/com/nextcloud/talk/models/json/participants/Participant.kt b/app/src/main/java/com/nextcloud/talk/models/json/participants/Participant.kt index 68f0c7bf94..dfd96b5dea 100644 --- a/app/src/main/java/com/nextcloud/talk/models/json/participants/Participant.kt +++ b/app/src/main/java/com/nextcloud/talk/models/json/participants/Participant.kt @@ -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 = 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' diff --git a/app/src/main/java/com/nextcloud/talk/models/json/participants/ParticipantsOCS.kt b/app/src/main/java/com/nextcloud/talk/models/json/participants/ParticipantsOCS.kt index 0b0af271cf..1c0ff262a9 100644 --- a/app/src/main/java/com/nextcloud/talk/models/json/participants/ParticipantsOCS.kt +++ b/app/src/main/java/com/nextcloud/talk/models/json/participants/ParticipantsOCS.kt @@ -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? = null ) : Parcelable { // This constructor is added to work with the 'com.bluelinelabs.logansquare.annotation.JsonObject' diff --git a/app/src/main/java/com/nextcloud/talk/models/json/participants/ParticipantsOverall.kt b/app/src/main/java/com/nextcloud/talk/models/json/participants/ParticipantsOverall.kt index cc69f63208..b4fc849b1a 100644 --- a/app/src/main/java/com/nextcloud/talk/models/json/participants/ParticipantsOverall.kt +++ b/app/src/main/java/com/nextcloud/talk/models/json/participants/ParticipantsOverall.kt @@ -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' diff --git a/app/src/main/java/com/nextcloud/talk/models/json/push/DecryptedPushMessage.kt b/app/src/main/java/com/nextcloud/talk/models/json/push/DecryptedPushMessage.kt index 9ff9b3a32c..cc3d9f80d0 100644 --- a/app/src/main/java/com/nextcloud/talk/models/json/push/DecryptedPushMessage.kt +++ b/app/src/main/java/com/nextcloud/talk/models/json/push/DecryptedPushMessage.kt @@ -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 diff --git a/app/src/main/java/com/nextcloud/talk/models/json/push/NotificationUser.kt b/app/src/main/java/com/nextcloud/talk/models/json/push/NotificationUser.kt index 8f0634bc51..68e66d1dd9 100644 --- a/app/src/main/java/com/nextcloud/talk/models/json/push/NotificationUser.kt +++ b/app/src/main/java/com/nextcloud/talk/models/json/push/NotificationUser.kt @@ -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' diff --git a/app/src/main/java/com/nextcloud/talk/models/json/push/PushConfigurationState.kt b/app/src/main/java/com/nextcloud/talk/models/json/push/PushConfigurationState.kt index 9b6e39956f..3dbc53e0e7 100644 --- a/app/src/main/java/com/nextcloud/talk/models/json/push/PushConfigurationState.kt +++ b/app/src/main/java/com/nextcloud/talk/models/json/push/PushConfigurationState.kt @@ -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' diff --git a/app/src/main/java/com/nextcloud/talk/models/json/push/PushRegistration.kt b/app/src/main/java/com/nextcloud/talk/models/json/push/PushRegistration.kt index dcfa7c1c73..2744746668 100644 --- a/app/src/main/java/com/nextcloud/talk/models/json/push/PushRegistration.kt +++ b/app/src/main/java/com/nextcloud/talk/models/json/push/PushRegistration.kt @@ -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' diff --git a/app/src/main/java/com/nextcloud/talk/models/json/push/PushRegistrationOCS.kt b/app/src/main/java/com/nextcloud/talk/models/json/push/PushRegistrationOCS.kt index 204c83e2b4..6be0e1044a 100644 --- a/app/src/main/java/com/nextcloud/talk/models/json/push/PushRegistrationOCS.kt +++ b/app/src/main/java/com/nextcloud/talk/models/json/push/PushRegistrationOCS.kt @@ -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' diff --git a/app/src/main/java/com/nextcloud/talk/models/json/push/PushRegistrationOverall.kt b/app/src/main/java/com/nextcloud/talk/models/json/push/PushRegistrationOverall.kt index dc6fd9c7e5..ac748e7049 100644 --- a/app/src/main/java/com/nextcloud/talk/models/json/push/PushRegistrationOverall.kt +++ b/app/src/main/java/com/nextcloud/talk/models/json/push/PushRegistrationOverall.kt @@ -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' diff --git a/app/src/main/java/com/nextcloud/talk/models/json/reactions/ReactionVoter.kt b/app/src/main/java/com/nextcloud/talk/models/json/reactions/ReactionVoter.kt index 74eeec9a39..15b1f594c9 100644 --- a/app/src/main/java/com/nextcloud/talk/models/json/reactions/ReactionVoter.kt +++ b/app/src/main/java/com/nextcloud/talk/models/json/reactions/ReactionVoter.kt @@ -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' diff --git a/app/src/main/java/com/nextcloud/talk/models/json/reactions/ReactionsOCS.kt b/app/src/main/java/com/nextcloud/talk/models/json/reactions/ReactionsOCS.kt index a52cea636d..7d28998b54 100644 --- a/app/src/main/java/com/nextcloud/talk/models/json/reactions/ReactionsOCS.kt +++ b/app/src/main/java/com/nextcloud/talk/models/json/reactions/ReactionsOCS.kt @@ -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>? ) : Parcelable { // This constructor is added to work with the 'com.bluelinelabs.logansquare.annotation.JsonObject' diff --git a/app/src/main/java/com/nextcloud/talk/models/json/reactions/ReactionsOverall.kt b/app/src/main/java/com/nextcloud/talk/models/json/reactions/ReactionsOverall.kt index 56fad102c5..37d628340e 100644 --- a/app/src/main/java/com/nextcloud/talk/models/json/reactions/ReactionsOverall.kt +++ b/app/src/main/java/com/nextcloud/talk/models/json/reactions/ReactionsOverall.kt @@ -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' diff --git a/app/src/main/java/com/nextcloud/talk/models/json/reminder/Reminder.kt b/app/src/main/java/com/nextcloud/talk/models/json/reminder/Reminder.kt index b8b47fc28a..90c4579b29 100644 --- a/app/src/main/java/com/nextcloud/talk/models/json/reminder/Reminder.kt +++ b/app/src/main/java/com/nextcloud/talk/models/json/reminder/Reminder.kt @@ -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' diff --git a/app/src/main/java/com/nextcloud/talk/models/json/reminder/ReminderOCS.kt b/app/src/main/java/com/nextcloud/talk/models/json/reminder/ReminderOCS.kt index 2dbe0309b2..78bd150000 100644 --- a/app/src/main/java/com/nextcloud/talk/models/json/reminder/ReminderOCS.kt +++ b/app/src/main/java/com/nextcloud/talk/models/json/reminder/ReminderOCS.kt @@ -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' diff --git a/app/src/main/java/com/nextcloud/talk/models/json/reminder/ReminderOverall.kt b/app/src/main/java/com/nextcloud/talk/models/json/reminder/ReminderOverall.kt index 8c94cf8675..ba0e71bf44 100644 --- a/app/src/main/java/com/nextcloud/talk/models/json/reminder/ReminderOverall.kt +++ b/app/src/main/java/com/nextcloud/talk/models/json/reminder/ReminderOverall.kt @@ -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' diff --git a/app/src/main/java/com/nextcloud/talk/models/json/search/ContactsByNumberOCS.kt b/app/src/main/java/com/nextcloud/talk/models/json/search/ContactsByNumberOCS.kt index 9df294a3ca..730bbc49b4 100644 --- a/app/src/main/java/com/nextcloud/talk/models/json/search/ContactsByNumberOCS.kt +++ b/app/src/main/java/com/nextcloud/talk/models/json/search/ContactsByNumberOCS.kt @@ -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? = HashMap() ) : Parcelable { // This constructor is added to work with the 'com.bluelinelabs.logansquare.annotation.JsonObject' diff --git a/app/src/main/java/com/nextcloud/talk/models/json/search/ContactsByNumberOverall.kt b/app/src/main/java/com/nextcloud/talk/models/json/search/ContactsByNumberOverall.kt index 6fdf7ccf72..136e0f7a56 100644 --- a/app/src/main/java/com/nextcloud/talk/models/json/search/ContactsByNumberOverall.kt +++ b/app/src/main/java/com/nextcloud/talk/models/json/search/ContactsByNumberOverall.kt @@ -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' diff --git a/app/src/main/java/com/nextcloud/talk/models/json/sharees/ExactSharees.kt b/app/src/main/java/com/nextcloud/talk/models/json/sharees/ExactSharees.kt index 11373f31e8..ab8f6844ae 100644 --- a/app/src/main/java/com/nextcloud/talk/models/json/sharees/ExactSharees.kt +++ b/app/src/main/java/com/nextcloud/talk/models/json/sharees/ExactSharees.kt @@ -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? = null ) : Parcelable { // This constructor is added to work with the 'com.bluelinelabs.logansquare.annotation.JsonObject' diff --git a/app/src/main/java/com/nextcloud/talk/models/json/sharees/Sharee.kt b/app/src/main/java/com/nextcloud/talk/models/json/sharees/Sharee.kt index e70fbc947b..ba6b4143f0 100644 --- a/app/src/main/java/com/nextcloud/talk/models/json/sharees/Sharee.kt +++ b/app/src/main/java/com/nextcloud/talk/models/json/sharees/Sharee.kt @@ -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' diff --git a/app/src/main/java/com/nextcloud/talk/models/json/sharees/ShareesOCS.kt b/app/src/main/java/com/nextcloud/talk/models/json/sharees/ShareesOCS.kt index b6b06489ec..4285b366f7 100644 --- a/app/src/main/java/com/nextcloud/talk/models/json/sharees/ShareesOCS.kt +++ b/app/src/main/java/com/nextcloud/talk/models/json/sharees/ShareesOCS.kt @@ -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' diff --git a/app/src/main/java/com/nextcloud/talk/models/json/sharees/ShareesOverall.kt b/app/src/main/java/com/nextcloud/talk/models/json/sharees/ShareesOverall.kt index 0aa6229e71..f4febb9ffd 100644 --- a/app/src/main/java/com/nextcloud/talk/models/json/sharees/ShareesOverall.kt +++ b/app/src/main/java/com/nextcloud/talk/models/json/sharees/ShareesOverall.kt @@ -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' diff --git a/app/src/main/java/com/nextcloud/talk/models/json/sharees/SharesData.kt b/app/src/main/java/com/nextcloud/talk/models/json/sharees/SharesData.kt index 265ffadc30..a66d517aad 100644 --- a/app/src/main/java/com/nextcloud/talk/models/json/sharees/SharesData.kt +++ b/app/src/main/java/com/nextcloud/talk/models/json/sharees/SharesData.kt @@ -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? = null, - @JsonField(name = ["exact"]) + @SerialName("exact") var exactUsers: ExactSharees? = null ) : Parcelable { // This constructor is added to work with the 'com.bluelinelabs.logansquare.annotation.JsonObject' diff --git a/app/src/main/java/com/nextcloud/talk/models/json/sharees/Value.kt b/app/src/main/java/com/nextcloud/talk/models/json/sharees/Value.kt index 1f2af0db6c..e1a12b586e 100644 --- a/app/src/main/java/com/nextcloud/talk/models/json/sharees/Value.kt +++ b/app/src/main/java/com/nextcloud/talk/models/json/sharees/Value.kt @@ -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' diff --git a/app/src/main/java/com/nextcloud/talk/models/json/signaling/DataChannelMessage.kt b/app/src/main/java/com/nextcloud/talk/models/json/signaling/DataChannelMessage.kt index d4c0a0c663..110abbe4e1 100644 --- a/app/src/main/java/com/nextcloud/talk/models/json/signaling/DataChannelMessage.kt +++ b/app/src/main/java/com/nextcloud/talk/models/json/signaling/DataChannelMessage.kt @@ -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 data class DataChannelMessage( - @JsonField(name = ["type"]) var type: String? = null, /** Can be String or Map * Use only for received messages */ - @JsonField(name = ["payload"]) - var payload: Any? = null, + @SerialName("payload") + // TODO: Can be String or Map + 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? = null ) : Parcelable { // This constructor is added to work with the 'com.bluelinelabs.logansquare.annotation.JsonObject' diff --git a/app/src/main/java/com/nextcloud/talk/models/json/signaling/NCIceCandidate.kt b/app/src/main/java/com/nextcloud/talk/models/json/signaling/NCIceCandidate.kt index e59a3d63ec..8346c37465 100644 --- a/app/src/main/java/com/nextcloud/talk/models/json/signaling/NCIceCandidate.kt +++ b/app/src/main/java/com/nextcloud/talk/models/json/signaling/NCIceCandidate.kt @@ -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' diff --git a/app/src/main/java/com/nextcloud/talk/models/json/signaling/NCMessagePayload.kt b/app/src/main/java/com/nextcloud/talk/models/json/signaling/NCMessagePayload.kt index 1f478b9fc0..e7156fee69 100644 --- a/app/src/main/java/com/nextcloud/talk/models/json/signaling/NCMessagePayload.kt +++ b/app/src/main/java/com/nextcloud/talk/models/json/signaling/NCMessagePayload.kt @@ -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' diff --git a/app/src/main/java/com/nextcloud/talk/models/json/signaling/NCSignalingMessage.kt b/app/src/main/java/com/nextcloud/talk/models/json/signaling/NCSignalingMessage.kt index f87f9a9b46..0fa6b10f46 100644 --- a/app/src/main/java/com/nextcloud/talk/models/json/signaling/NCSignalingMessage.kt +++ b/app/src/main/java/com/nextcloud/talk/models/json/signaling/NCSignalingMessage.kt @@ -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' diff --git a/app/src/main/java/com/nextcloud/talk/models/json/signaling/Signaling.kt b/app/src/main/java/com/nextcloud/talk/models/json/signaling/Signaling.kt index 8547160424..c808ff3f34 100644 --- a/app/src/main/java/com/nextcloud/talk/models/json/signaling/Signaling.kt +++ b/app/src/main/java/com/nextcloud/talk/models/json/signaling/Signaling.kt @@ -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 data class Signaling( - @JsonField(name = ["type"]) var type: String? = null, /** can be NCSignalingMessage (encoded as a String) or List> */ - @JsonField(name = ["data"]) - var messageWrapper: Any? = null + @SerialName("data") + // TODO: can be NCSignalingMessage (encoded as a String) or List> + var messageWrapper: NCSignalingMessage? = null ) : Parcelable { // This constructor is added to work with the 'com.bluelinelabs.logansquare.annotation.JsonObject' constructor() : this(null, null) diff --git a/app/src/main/java/com/nextcloud/talk/models/json/signaling/SignalingOCS.kt b/app/src/main/java/com/nextcloud/talk/models/json/signaling/SignalingOCS.kt index 157eef6218..3e591a3e37 100644 --- a/app/src/main/java/com/nextcloud/talk/models/json/signaling/SignalingOCS.kt +++ b/app/src/main/java/com/nextcloud/talk/models/json/signaling/SignalingOCS.kt @@ -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? = null ) : Parcelable { // This constructor is added to work with the 'com.bluelinelabs.logansquare.annotation.JsonObject' diff --git a/app/src/main/java/com/nextcloud/talk/models/json/signaling/SignalingOverall.kt b/app/src/main/java/com/nextcloud/talk/models/json/signaling/SignalingOverall.kt index e52b37c3a0..c3c300df06 100644 --- a/app/src/main/java/com/nextcloud/talk/models/json/signaling/SignalingOverall.kt +++ b/app/src/main/java/com/nextcloud/talk/models/json/signaling/SignalingOverall.kt @@ -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' diff --git a/app/src/main/java/com/nextcloud/talk/models/json/signaling/settings/IceServer.kt b/app/src/main/java/com/nextcloud/talk/models/json/signaling/settings/IceServer.kt index 332f596fd8..808b0201e9 100644 --- a/app/src/main/java/com/nextcloud/talk/models/json/signaling/settings/IceServer.kt +++ b/app/src/main/java/com/nextcloud/talk/models/json/signaling/settings/IceServer.kt @@ -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? = 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' diff --git a/app/src/main/java/com/nextcloud/talk/models/json/signaling/settings/SignalingSettings.kt b/app/src/main/java/com/nextcloud/talk/models/json/signaling/settings/SignalingSettings.kt index c4385adb92..2832609f61 100644 --- a/app/src/main/java/com/nextcloud/talk/models/json/signaling/settings/SignalingSettings.kt +++ b/app/src/main/java/com/nextcloud/talk/models/json/signaling/settings/SignalingSettings.kt @@ -22,22 +22,20 @@ 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 SignalingSettings( - @JsonField(name = ["stunservers"]) + @SerialName("stunservers") var stunServers: List? = null, - @JsonField(name = ["turnservers"]) + @SerialName("turnservers") var turnServers: List? = null, - @JsonField(name = ["server"]) + @SerialName("server") var externalSignalingServer: String? = null, - @JsonField(name = ["ticket"]) + @SerialName("ticket") var externalSignalingTicket: String? = null ) : Parcelable { // This constructor is added to work with the 'com.bluelinelabs.logansquare.annotation.JsonObject' diff --git a/app/src/main/java/com/nextcloud/talk/models/json/signaling/settings/SignalingSettingsOcs.kt b/app/src/main/java/com/nextcloud/talk/models/json/signaling/settings/SignalingSettingsOcs.kt index 1bc0c05cdd..c8e42e4828 100644 --- a/app/src/main/java/com/nextcloud/talk/models/json/signaling/settings/SignalingSettingsOcs.kt +++ b/app/src/main/java/com/nextcloud/talk/models/json/signaling/settings/SignalingSettingsOcs.kt @@ -22,17 +22,16 @@ 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.serialization.SerialName +import kotlinx.serialization.Serializable import com.nextcloud.talk.models.json.generic.GenericMeta import kotlinx.parcelize.Parcelize @Parcelize -@JsonObject +@Serializable data class SignalingSettingsOcs( - @JsonField(name = ["meta"]) var meta: GenericMeta?, - @JsonField(name = ["data"]) + @SerialName("data") var settings: SignalingSettings? = null ) : Parcelable { // This constructor is added to work with the 'com.bluelinelabs.logansquare.annotation.JsonObject' diff --git a/app/src/main/java/com/nextcloud/talk/models/json/signaling/settings/SignalingSettingsOverall.kt b/app/src/main/java/com/nextcloud/talk/models/json/signaling/settings/SignalingSettingsOverall.kt index 743530efd7..bffd44674a 100644 --- a/app/src/main/java/com/nextcloud/talk/models/json/signaling/settings/SignalingSettingsOverall.kt +++ b/app/src/main/java/com/nextcloud/talk/models/json/signaling/settings/SignalingSettingsOverall.kt @@ -22,14 +22,13 @@ 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.serialization.SerialName +import kotlinx.serialization.Serializable import kotlinx.parcelize.Parcelize @Parcelize -@JsonObject +@Serializable data class SignalingSettingsOverall( - @JsonField(name = ["ocs"]) var ocs: SignalingSettingsOcs? = null ) : Parcelable { // This constructor is added to work with the 'com.bluelinelabs.logansquare.annotation.JsonObject' diff --git a/app/src/main/java/com/nextcloud/talk/models/json/status/ClearAt.kt b/app/src/main/java/com/nextcloud/talk/models/json/status/ClearAt.kt index d1dd87184a..5d1618320a 100644 --- a/app/src/main/java/com/nextcloud/talk/models/json/status/ClearAt.kt +++ b/app/src/main/java/com/nextcloud/talk/models/json/status/ClearAt.kt @@ -1,16 +1,16 @@ package com.nextcloud.talk.models.json.status 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 ClearAt( - @JsonField(name = ["type"]) + @SerialName("type") var type: String, - @JsonField(name = ["time"]) + @SerialName("time") var time: String ) : Parcelable { // This constructor is added to work with the 'com.bluelinelabs.logansquare.annotation.JsonObject' diff --git a/app/src/main/java/com/nextcloud/talk/models/json/status/Status.kt b/app/src/main/java/com/nextcloud/talk/models/json/status/Status.kt index 9f43683aba..435e532a02 100644 --- a/app/src/main/java/com/nextcloud/talk/models/json/status/Status.kt +++ b/app/src/main/java/com/nextcloud/talk/models/json/status/Status.kt @@ -20,30 +20,30 @@ package com.nextcloud.talk.models.json.status 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 = ["userId"]) + @SerialName("userId") var userId: String?, - @JsonField(name = ["message"]) + @SerialName("message") var message: String?, /* TODO Change to enum */ - @JsonField(name = ["messageId"]) + @SerialName("messageId") var messageId: String?, - @JsonField(name = ["messageIsPredefined"]) + @SerialName("messageIsPredefined") var messageIsPredefined: Boolean, - @JsonField(name = ["icon"]) + @SerialName("icon") var icon: String?, - @JsonField(name = ["clearAt"]) + @SerialName("clearAt") var clearAt: Long = 0, /* TODO Change to enum */ - @JsonField(name = ["status"]) + @SerialName("status") var status: String = "offline", - @JsonField(name = ["statusIsUserDefined"]) + @SerialName("statusIsUserDefined") var statusIsUserDefined: Boolean ) : Parcelable { // This constructor is added to work with the 'com.bluelinelabs.logansquare.annotation.JsonObject' diff --git a/app/src/main/java/com/nextcloud/talk/models/json/status/StatusOCS.kt b/app/src/main/java/com/nextcloud/talk/models/json/status/StatusOCS.kt index 8d9d13c349..6588a4011a 100644 --- a/app/src/main/java/com/nextcloud/talk/models/json/status/StatusOCS.kt +++ b/app/src/main/java/com/nextcloud/talk/models/json/status/StatusOCS.kt @@ -22,17 +22,17 @@ package com.nextcloud.talk.models.json.status 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 StatusOCS( - @JsonField(name = ["meta"]) + @SerialName("meta") var meta: GenericMeta?, - @JsonField(name = ["data"]) + @SerialName("data") var data: Status? ) : Parcelable { // This constructor is added to work with the 'com.bluelinelabs.logansquare.annotation.JsonObject' diff --git a/app/src/main/java/com/nextcloud/talk/models/json/status/StatusOverall.kt b/app/src/main/java/com/nextcloud/talk/models/json/status/StatusOverall.kt index a8d88e3694..085e1b34c1 100644 --- a/app/src/main/java/com/nextcloud/talk/models/json/status/StatusOverall.kt +++ b/app/src/main/java/com/nextcloud/talk/models/json/status/StatusOverall.kt @@ -22,14 +22,14 @@ package com.nextcloud.talk.models.json.status 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 StatusOverall( - @JsonField(name = ["ocs"]) + @SerialName("ocs") var ocs: StatusOCS? ) : Parcelable { // This constructor is added to work with the 'com.bluelinelabs.logansquare.annotation.JsonObject' diff --git a/app/src/main/java/com/nextcloud/talk/models/json/status/predefined/PredefinedStatus.kt b/app/src/main/java/com/nextcloud/talk/models/json/status/predefined/PredefinedStatus.kt index 679c0c5a1c..94476ceebb 100644 --- a/app/src/main/java/com/nextcloud/talk/models/json/status/predefined/PredefinedStatus.kt +++ b/app/src/main/java/com/nextcloud/talk/models/json/status/predefined/PredefinedStatus.kt @@ -1,21 +1,21 @@ package com.nextcloud.talk.models.json.status.predefined 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.status.ClearAt import kotlinx.parcelize.Parcelize @Parcelize -@JsonObject +@Serializable data class PredefinedStatus( - @JsonField(name = ["id"]) + @SerialName("id") var id: String, - @JsonField(name = ["icon"]) + @SerialName("icon") var icon: String, - @JsonField(name = ["message"]) + @SerialName("message") var message: String, - @JsonField(name = ["clearAt"]) + @SerialName("clearAt") var clearAt: ClearAt? ) : Parcelable { // This constructor is added to work with the 'com.bluelinelabs.logansquare.annotation.JsonObject' diff --git a/app/src/main/java/com/nextcloud/talk/models/json/status/predefined/PredefinedStatusOCS.kt b/app/src/main/java/com/nextcloud/talk/models/json/status/predefined/PredefinedStatusOCS.kt index e89ae28f65..b6c224f43d 100644 --- a/app/src/main/java/com/nextcloud/talk/models/json/status/predefined/PredefinedStatusOCS.kt +++ b/app/src/main/java/com/nextcloud/talk/models/json/status/predefined/PredefinedStatusOCS.kt @@ -23,17 +23,17 @@ package com.nextcloud.talk.models.json.status.predefined 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 PredefinedStatusOCS( - @JsonField(name = ["meta"]) + @SerialName("meta") var meta: GenericMeta?, - @JsonField(name = ["data"]) + @SerialName("data") var data: List? ) : Parcelable { // This constructor is added to work with the 'com.bluelinelabs.logansquare.annotation.JsonObject' diff --git a/app/src/main/java/com/nextcloud/talk/models/json/status/predefined/PredefinedStatusOverall.kt b/app/src/main/java/com/nextcloud/talk/models/json/status/predefined/PredefinedStatusOverall.kt index 8a8706198b..9325a54cde 100644 --- a/app/src/main/java/com/nextcloud/talk/models/json/status/predefined/PredefinedStatusOverall.kt +++ b/app/src/main/java/com/nextcloud/talk/models/json/status/predefined/PredefinedStatusOverall.kt @@ -22,14 +22,14 @@ package com.nextcloud.talk.models.json.status.predefined 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 PredefinedStatusOverall( - @JsonField(name = ["ocs"]) + @SerialName("ocs") var ocs: PredefinedStatusOCS? = null ) : Parcelable { // This constructor is added to work with the 'com.bluelinelabs.logansquare.annotation.JsonObject' diff --git a/app/src/main/java/com/nextcloud/talk/models/json/unifiedsearch/UnifiedSearchEntry.kt b/app/src/main/java/com/nextcloud/talk/models/json/unifiedsearch/UnifiedSearchEntry.kt index a4450560f0..2ded19f20c 100644 --- a/app/src/main/java/com/nextcloud/talk/models/json/unifiedsearch/UnifiedSearchEntry.kt +++ b/app/src/main/java/com/nextcloud/talk/models/json/unifiedsearch/UnifiedSearchEntry.kt @@ -22,26 +22,19 @@ package com.nextcloud.talk.models.json.unifiedsearch 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 UnifiedSearchEntry( - @JsonField(name = ["thumbnailUrl"]) var thumbnailUrl: String?, - @JsonField(name = ["title"]) var title: String?, - @JsonField(name = ["subline"]) var subline: String?, - @JsonField(name = ["resourceUrl"]) var resourceUrl: String?, - @JsonField(name = ["icon"]) var icon: String?, - @JsonField(name = ["rounded"]) var rounded: Boolean?, - @JsonField(name = ["attributes"]) var attributes: Map? ) : Parcelable { constructor() : this(null, null, null, null, null, null, null) diff --git a/app/src/main/java/com/nextcloud/talk/models/json/unifiedsearch/UnifiedSearchOCS.kt b/app/src/main/java/com/nextcloud/talk/models/json/unifiedsearch/UnifiedSearchOCS.kt index c37a4d45a3..2e814f0318 100644 --- a/app/src/main/java/com/nextcloud/talk/models/json/unifiedsearch/UnifiedSearchOCS.kt +++ b/app/src/main/java/com/nextcloud/talk/models/json/unifiedsearch/UnifiedSearchOCS.kt @@ -20,17 +20,15 @@ package com.nextcloud.talk.models.json.unifiedsearch 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 UnifiedSearchOCS( - @JsonField(name = ["meta"]) var meta: GenericMeta?, - @JsonField(name = ["data"]) var data: UnifiedSearchResponseData? ) : Parcelable { // Empty constructor needed for JsonObject diff --git a/app/src/main/java/com/nextcloud/talk/models/json/unifiedsearch/UnifiedSearchOverall.kt b/app/src/main/java/com/nextcloud/talk/models/json/unifiedsearch/UnifiedSearchOverall.kt index ce5992463d..09de110265 100644 --- a/app/src/main/java/com/nextcloud/talk/models/json/unifiedsearch/UnifiedSearchOverall.kt +++ b/app/src/main/java/com/nextcloud/talk/models/json/unifiedsearch/UnifiedSearchOverall.kt @@ -20,14 +20,13 @@ package com.nextcloud.talk.models.json.unifiedsearch 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 UnifiedSearchOverall( - @JsonField(name = ["ocs"]) var ocs: UnifiedSearchOCS? ) : Parcelable { // Empty constructor needed for JsonObject diff --git a/app/src/main/java/com/nextcloud/talk/models/json/unifiedsearch/UnifiedSearchResponseData.kt b/app/src/main/java/com/nextcloud/talk/models/json/unifiedsearch/UnifiedSearchResponseData.kt index f261aea22f..ccfa8d95a4 100644 --- a/app/src/main/java/com/nextcloud/talk/models/json/unifiedsearch/UnifiedSearchResponseData.kt +++ b/app/src/main/java/com/nextcloud/talk/models/json/unifiedsearch/UnifiedSearchResponseData.kt @@ -22,20 +22,16 @@ package com.nextcloud.talk.models.json.unifiedsearch 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 UnifiedSearchResponseData( - @JsonField(name = ["name"]) var name: String?, - @JsonField(name = ["isPaginated"]) var paginated: Boolean?, - @JsonField(name = ["entries"]) var entries: List?, - @JsonField(name = ["cursor"]) var cursor: Int? ) : Parcelable { // empty constructor needed for JsonObject diff --git a/app/src/main/java/com/nextcloud/talk/models/json/userprofile/UserProfileData.kt b/app/src/main/java/com/nextcloud/talk/models/json/userprofile/UserProfileData.kt index dc05729d70..54f68227fa 100644 --- a/app/src/main/java/com/nextcloud/talk/models/json/userprofile/UserProfileData.kt +++ b/app/src/main/java/com/nextcloud/talk/models/json/userprofile/UserProfileData.kt @@ -22,55 +22,50 @@ package com.nextcloud.talk.models.json.userprofile 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.ScopeConverter import com.nextcloud.talk.profile.ProfileActivity import kotlinx.parcelize.Parcelize @Parcelize -@JsonObject +@Serializable data class UserProfileData( - @JsonField(name = ["display-name"]) + @SerialName("display-name") var displayName: String?, - @JsonField(name = ["displaynameScope"], typeConverter = ScopeConverter::class) + @SerialName("displaynameScope", typeConverter = ScopeConverter::class) var displayNameScope: Scope?, - @JsonField(name = ["displayname"]) + @SerialName("displayname") var displayNameAlt: String?, - @JsonField(name = ["id"]) + @SerialName("id") var userId: String?, - @JsonField(name = ["phone"]) var phone: String?, - @JsonField(name = ["phoneScope"], typeConverter = ScopeConverter::class) + @SerialName("phoneScope", typeConverter = ScopeConverter::class) var phoneScope: Scope?, - @JsonField(name = ["email"]) var email: String?, - @JsonField(name = ["emailScope"], typeConverter = ScopeConverter::class) + @SerialName("emailScope", typeConverter = ScopeConverter::class) var emailScope: Scope?, - @JsonField(name = ["address"]) var address: String?, - @JsonField(name = ["addressScope"], typeConverter = ScopeConverter::class) + @SerialName("addressScope", typeConverter = ScopeConverter::class) var addressScope: Scope?, - @JsonField(name = ["twitter"]) var twitter: String?, - @JsonField(name = ["twitterScope"], typeConverter = ScopeConverter::class) + @SerialName("twitterScope", typeConverter = ScopeConverter::class) var twitterScope: Scope?, - @JsonField(name = ["website"]) var website: String?, - @JsonField(name = ["websiteScope"], typeConverter = ScopeConverter::class) + @SerialName("websiteScope", typeConverter = ScopeConverter::class) var websiteScope: Scope? ) : Parcelable { // This constructor is added to work with the 'com.bluelinelabs.logansquare.annotation.JsonObject' diff --git a/app/src/main/java/com/nextcloud/talk/models/json/userprofile/UserProfileFieldsOCS.kt b/app/src/main/java/com/nextcloud/talk/models/json/userprofile/UserProfileFieldsOCS.kt index 354d2f7498..b396c7bc77 100644 --- a/app/src/main/java/com/nextcloud/talk/models/json/userprofile/UserProfileFieldsOCS.kt +++ b/app/src/main/java/com/nextcloud/talk/models/json/userprofile/UserProfileFieldsOCS.kt @@ -22,18 +22,16 @@ package com.nextcloud.talk.models.json.userprofile 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.ArrayList @Parcelize -@JsonObject +@Serializable data class UserProfileFieldsOCS( - @JsonField(name = ["meta"]) var meta: GenericMeta?, - @JsonField(name = ["data"]) var data: ArrayList? = null ) : Parcelable { // This constructor is added to work with the 'com.bluelinelabs.logansquare.annotation.JsonObject' diff --git a/app/src/main/java/com/nextcloud/talk/models/json/userprofile/UserProfileFieldsOverall.kt b/app/src/main/java/com/nextcloud/talk/models/json/userprofile/UserProfileFieldsOverall.kt index 9c9875860a..4d79d93e01 100644 --- a/app/src/main/java/com/nextcloud/talk/models/json/userprofile/UserProfileFieldsOverall.kt +++ b/app/src/main/java/com/nextcloud/talk/models/json/userprofile/UserProfileFieldsOverall.kt @@ -22,14 +22,13 @@ package com.nextcloud.talk.models.json.userprofile 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 UserProfileFieldsOverall( - @JsonField(name = ["ocs"]) var ocs: UserProfileFieldsOCS? ) : Parcelable { // This constructor is added to work with the 'com.bluelinelabs.logansquare.annotation.JsonObject' diff --git a/app/src/main/java/com/nextcloud/talk/models/json/userprofile/UserProfileOCS.kt b/app/src/main/java/com/nextcloud/talk/models/json/userprofile/UserProfileOCS.kt index 9c7d6eebc7..121eeaad4f 100644 --- a/app/src/main/java/com/nextcloud/talk/models/json/userprofile/UserProfileOCS.kt +++ b/app/src/main/java/com/nextcloud/talk/models/json/userprofile/UserProfileOCS.kt @@ -22,17 +22,15 @@ package com.nextcloud.talk.models.json.userprofile 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 UserProfileOCS( - @JsonField(name = ["meta"]) var meta: GenericMeta?, - @JsonField(name = ["data"]) var data: UserProfileData? ) : Parcelable { // This constructor is added to work with the 'com.bluelinelabs.logansquare.annotation.JsonObject' diff --git a/app/src/main/java/com/nextcloud/talk/models/json/userprofile/UserProfileOverall.kt b/app/src/main/java/com/nextcloud/talk/models/json/userprofile/UserProfileOverall.kt index 657bd353ec..0e916d7a67 100644 --- a/app/src/main/java/com/nextcloud/talk/models/json/userprofile/UserProfileOverall.kt +++ b/app/src/main/java/com/nextcloud/talk/models/json/userprofile/UserProfileOverall.kt @@ -22,14 +22,13 @@ package com.nextcloud.talk.models.json.userprofile 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 UserProfileOverall( - @JsonField(name = ["ocs"]) var ocs: UserProfileOCS? = null ) : Parcelable { // This constructor is added to work with the 'com.bluelinelabs.logansquare.annotation.JsonObject' diff --git a/app/src/main/java/com/nextcloud/talk/models/json/websocket/ActorWebSocketMessage.kt b/app/src/main/java/com/nextcloud/talk/models/json/websocket/ActorWebSocketMessage.kt index 7e771dc732..2fe3c435e0 100644 --- a/app/src/main/java/com/nextcloud/talk/models/json/websocket/ActorWebSocketMessage.kt +++ b/app/src/main/java/com/nextcloud/talk/models/json/websocket/ActorWebSocketMessage.kt @@ -22,18 +22,16 @@ package com.nextcloud.talk.models.json.websocket 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 ActorWebSocketMessage( - @JsonField(name = ["type"]) var type: String? = null, - @JsonField(name = ["sessionid"]) + @SerialName("sessionid") var sessionId: String? = null, - @JsonField(name = ["userid"]) var userid: String? = null ) : Parcelable { // This constructor is added to work with the 'com.bluelinelabs.logansquare.annotation.JsonObject' diff --git a/app/src/main/java/com/nextcloud/talk/models/json/websocket/AuthParametersWebSocketMessage.kt b/app/src/main/java/com/nextcloud/talk/models/json/websocket/AuthParametersWebSocketMessage.kt index 70fb1a6358..aff5d5ca25 100644 --- a/app/src/main/java/com/nextcloud/talk/models/json/websocket/AuthParametersWebSocketMessage.kt +++ b/app/src/main/java/com/nextcloud/talk/models/json/websocket/AuthParametersWebSocketMessage.kt @@ -22,16 +22,14 @@ package com.nextcloud.talk.models.json.websocket 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 AuthParametersWebSocketMessage( - @JsonField(name = ["userid"]) var userid: String? = null, - @JsonField(name = ["ticket"]) var ticket: String? = null ) : Parcelable { // This constructor is added to work with the 'com.bluelinelabs.logansquare.annotation.JsonObject' diff --git a/app/src/main/java/com/nextcloud/talk/models/json/websocket/AuthWebSocketMessage.kt b/app/src/main/java/com/nextcloud/talk/models/json/websocket/AuthWebSocketMessage.kt index b71b0d7e8a..7919362cca 100644 --- a/app/src/main/java/com/nextcloud/talk/models/json/websocket/AuthWebSocketMessage.kt +++ b/app/src/main/java/com/nextcloud/talk/models/json/websocket/AuthWebSocketMessage.kt @@ -22,16 +22,15 @@ package com.nextcloud.talk.models.json.websocket 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 AuthWebSocketMessage( - @JsonField(name = ["url"]) var url: String? = null, - @JsonField(name = ["params"]) + @SerialName("params") var authParametersWebSocketMessage: AuthParametersWebSocketMessage? = null ) : Parcelable { // This constructor is added to work with the 'com.bluelinelabs.logansquare.annotation.JsonObject' diff --git a/app/src/main/java/com/nextcloud/talk/models/json/websocket/BaseWebSocketMessage.kt b/app/src/main/java/com/nextcloud/talk/models/json/websocket/BaseWebSocketMessage.kt index eac13ec305..2d57bae4c6 100644 --- a/app/src/main/java/com/nextcloud/talk/models/json/websocket/BaseWebSocketMessage.kt +++ b/app/src/main/java/com/nextcloud/talk/models/json/websocket/BaseWebSocketMessage.kt @@ -22,14 +22,13 @@ package com.nextcloud.talk.models.json.websocket 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 BaseWebSocketMessage( - @JsonField(name = ["type"]) var type: String? = null ) : Parcelable { // This constructor is added to work with the 'com.bluelinelabs.logansquare.annotation.JsonObject' diff --git a/app/src/main/java/com/nextcloud/talk/models/json/websocket/ByeWebSocketMessage.kt b/app/src/main/java/com/nextcloud/talk/models/json/websocket/ByeWebSocketMessage.kt index d57f8a40a9..95d7ed882a 100644 --- a/app/src/main/java/com/nextcloud/talk/models/json/websocket/ByeWebSocketMessage.kt +++ b/app/src/main/java/com/nextcloud/talk/models/json/websocket/ByeWebSocketMessage.kt @@ -22,21 +22,20 @@ package com.nextcloud.talk.models.json.websocket 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 data class ByeWebSocketMessage( - @JsonField(name = ["type"]) var type: String? = null, - @JsonField(name = ["bye"]) - var bye: HashMap? = null + // TODO: replaced HashMap? with HashMap? This might not work?! + var bye: HashMap? = null ) : Parcelable { // This constructor is added to work with the 'com.bluelinelabs.logansquare.annotation.JsonObject' constructor() : this(null, null) diff --git a/app/src/main/java/com/nextcloud/talk/models/json/websocket/CallOverallWebSocketMessage.kt b/app/src/main/java/com/nextcloud/talk/models/json/websocket/CallOverallWebSocketMessage.kt index 83969ed88e..33e5744cd1 100644 --- a/app/src/main/java/com/nextcloud/talk/models/json/websocket/CallOverallWebSocketMessage.kt +++ b/app/src/main/java/com/nextcloud/talk/models/json/websocket/CallOverallWebSocketMessage.kt @@ -22,16 +22,15 @@ package com.nextcloud.talk.models.json.websocket 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 CallOverallWebSocketMessage( - @JsonField(name = ["type"]) var type: String? = null, - @JsonField(name = ["message"]) + @SerialName("message") var callWebSocketMessage: CallWebSocketMessage? = null ) : Parcelable { // This constructor is added to work with the 'com.bluelinelabs.logansquare.annotation.JsonObject' diff --git a/app/src/main/java/com/nextcloud/talk/models/json/websocket/CallWebSocketMessage.kt b/app/src/main/java/com/nextcloud/talk/models/json/websocket/CallWebSocketMessage.kt index 5156ac301f..bad8419f2a 100644 --- a/app/src/main/java/com/nextcloud/talk/models/json/websocket/CallWebSocketMessage.kt +++ b/app/src/main/java/com/nextcloud/talk/models/json/websocket/CallWebSocketMessage.kt @@ -22,19 +22,19 @@ package com.nextcloud.talk.models.json.websocket 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.signaling.NCSignalingMessage import kotlinx.parcelize.Parcelize @Parcelize -@JsonObject +@Serializable data class CallWebSocketMessage( - @JsonField(name = ["recipient"]) + @SerialName("recipient") var recipientWebSocketMessage: ActorWebSocketMessage? = null, - @JsonField(name = ["sender"]) + @SerialName("sender") var senderWebSocketMessage: ActorWebSocketMessage? = null, - @JsonField(name = ["data"]) + @SerialName("data") var ncSignalingMessage: NCSignalingMessage? = null ) : Parcelable { // This constructor is added to work with the 'com.bluelinelabs.logansquare.annotation.JsonObject' diff --git a/app/src/main/java/com/nextcloud/talk/models/json/websocket/ErrorOverallWebSocketMessage.kt b/app/src/main/java/com/nextcloud/talk/models/json/websocket/ErrorOverallWebSocketMessage.kt index 17eb4637ac..038f4ddc14 100644 --- a/app/src/main/java/com/nextcloud/talk/models/json/websocket/ErrorOverallWebSocketMessage.kt +++ b/app/src/main/java/com/nextcloud/talk/models/json/websocket/ErrorOverallWebSocketMessage.kt @@ -22,16 +22,15 @@ package com.nextcloud.talk.models.json.websocket 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 ErrorOverallWebSocketMessage( - @JsonField(name = ["type"]) var type: String? = null, - @JsonField(name = ["error"]) + @SerialName("error") var errorWebSocketMessage: ErrorWebSocketMessage? = null ) : Parcelable { // This constructor is added to work with the 'com.bluelinelabs.logansquare.annotation.JsonObject' diff --git a/app/src/main/java/com/nextcloud/talk/models/json/websocket/ErrorWebSocketMessage.kt b/app/src/main/java/com/nextcloud/talk/models/json/websocket/ErrorWebSocketMessage.kt index a158e9b894..2243499904 100644 --- a/app/src/main/java/com/nextcloud/talk/models/json/websocket/ErrorWebSocketMessage.kt +++ b/app/src/main/java/com/nextcloud/talk/models/json/websocket/ErrorWebSocketMessage.kt @@ -22,16 +22,14 @@ package com.nextcloud.talk.models.json.websocket 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 ErrorWebSocketMessage( - @JsonField(name = ["code"]) var code: String? = null, - @JsonField(name = ["message"]) var message: String? = null ) : Parcelable { // This constructor is added to work with the 'com.bluelinelabs.logansquare.annotation.JsonObject' diff --git a/app/src/main/java/com/nextcloud/talk/models/json/websocket/EventOverallWebSocketMessage.kt b/app/src/main/java/com/nextcloud/talk/models/json/websocket/EventOverallWebSocketMessage.kt index f2ef0a1220..cf0d0d4251 100644 --- a/app/src/main/java/com/nextcloud/talk/models/json/websocket/EventOverallWebSocketMessage.kt +++ b/app/src/main/java/com/nextcloud/talk/models/json/websocket/EventOverallWebSocketMessage.kt @@ -22,21 +22,21 @@ package com.nextcloud.talk.models.json.websocket 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 class EventOverallWebSocketMessage( - @JsonField(name = ["type"]) var type: String? = null, - @JsonField(name = ["event"]) - var eventMap: HashMap? = null + @SerialName("event") + // TODO: replaced HashMap with HashMap this might be a problem?! + var eventMap: HashMap? = null ) : Parcelable { // This constructor is added to work with the 'com.bluelinelabs.logansquare.annotation.JsonObject' constructor() : this(null, null) diff --git a/app/src/main/java/com/nextcloud/talk/models/json/websocket/HelloOverallWebSocketMessage.kt b/app/src/main/java/com/nextcloud/talk/models/json/websocket/HelloOverallWebSocketMessage.kt index b0a1e17672..866ad81d73 100644 --- a/app/src/main/java/com/nextcloud/talk/models/json/websocket/HelloOverallWebSocketMessage.kt +++ b/app/src/main/java/com/nextcloud/talk/models/json/websocket/HelloOverallWebSocketMessage.kt @@ -22,16 +22,15 @@ package com.nextcloud.talk.models.json.websocket 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 HelloOverallWebSocketMessage( - @JsonField(name = ["type"]) var type: String? = null, - @JsonField(name = ["hello"]) + @SerialName("hello") var helloWebSocketMessage: HelloWebSocketMessage? = null ) : Parcelable { // This constructor is added to work with the 'com.bluelinelabs.logansquare.annotation.JsonObject' diff --git a/app/src/main/java/com/nextcloud/talk/models/json/websocket/HelloResponseOverallWebSocketMessage.kt b/app/src/main/java/com/nextcloud/talk/models/json/websocket/HelloResponseOverallWebSocketMessage.kt index 2036f47522..d7008d68e3 100644 --- a/app/src/main/java/com/nextcloud/talk/models/json/websocket/HelloResponseOverallWebSocketMessage.kt +++ b/app/src/main/java/com/nextcloud/talk/models/json/websocket/HelloResponseOverallWebSocketMessage.kt @@ -22,16 +22,15 @@ package com.nextcloud.talk.models.json.websocket 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 HelloResponseOverallWebSocketMessage( - @JsonField(name = ["type"]) var type: String? = null, - @JsonField(name = ["hello"]) + @SerialName("hello") var helloResponseWebSocketMessage: HelloResponseWebSocketMessage? = null ) : Parcelable { // This constructor is added to work with the 'com.bluelinelabs.logansquare.annotation.JsonObject' diff --git a/app/src/main/java/com/nextcloud/talk/models/json/websocket/HelloResponseWebSocketMessage.kt b/app/src/main/java/com/nextcloud/talk/models/json/websocket/HelloResponseWebSocketMessage.kt index edd9b61283..8c4798885d 100644 --- a/app/src/main/java/com/nextcloud/talk/models/json/websocket/HelloResponseWebSocketMessage.kt +++ b/app/src/main/java/com/nextcloud/talk/models/json/websocket/HelloResponseWebSocketMessage.kt @@ -22,18 +22,18 @@ package com.nextcloud.talk.models.json.websocket 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 HelloResponseWebSocketMessage( - @JsonField(name = ["resumeid"]) + @SerialName("resumeid") var resumeId: String? = null, - @JsonField(name = ["sessionid"]) + @SerialName("sessionid") var sessionId: String? = null, - @JsonField(name = ["server"]) + @SerialName("server") var serverHelloResponseFeaturesWebSocketMessage: ServerHelloResponseFeaturesWebSocketMessage? = null ) : Parcelable { // This constructor is added to work with the 'com.bluelinelabs.logansquare.annotation.JsonObject' diff --git a/app/src/main/java/com/nextcloud/talk/models/json/websocket/HelloWebSocketMessage.kt b/app/src/main/java/com/nextcloud/talk/models/json/websocket/HelloWebSocketMessage.kt index 1e3b3f3b42..4efb4715d6 100644 --- a/app/src/main/java/com/nextcloud/talk/models/json/websocket/HelloWebSocketMessage.kt +++ b/app/src/main/java/com/nextcloud/talk/models/json/websocket/HelloWebSocketMessage.kt @@ -22,18 +22,18 @@ package com.nextcloud.talk.models.json.websocket 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 HelloWebSocketMessage( - @JsonField(name = ["version"]) + @SerialName("version") var version: String? = null, - @JsonField(name = ["resumeid"]) + @SerialName("resumeid") var resumeid: String? = null, - @JsonField(name = ["auth"]) + @SerialName("auth") var authWebSocketMessage: AuthWebSocketMessage? = null ) : Parcelable { // This constructor is added to work with the 'com.bluelinelabs.logansquare.annotation.JsonObject' diff --git a/app/src/main/java/com/nextcloud/talk/models/json/websocket/JoinedRoomOverallWebSocketMessage.kt b/app/src/main/java/com/nextcloud/talk/models/json/websocket/JoinedRoomOverallWebSocketMessage.kt index 68c335caf5..68266d945b 100644 --- a/app/src/main/java/com/nextcloud/talk/models/json/websocket/JoinedRoomOverallWebSocketMessage.kt +++ b/app/src/main/java/com/nextcloud/talk/models/json/websocket/JoinedRoomOverallWebSocketMessage.kt @@ -22,16 +22,15 @@ package com.nextcloud.talk.models.json.websocket 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 JoinedRoomOverallWebSocketMessage( - @JsonField(name = ["type"]) var type: String? = null, - @JsonField(name = ["room"]) + @SerialName("room") var roomWebSocketMessage: RoomWebSocketMessage? = null ) : Parcelable { // This constructor is added to work with the 'com.bluelinelabs.logansquare.annotation.JsonObject' diff --git a/app/src/main/java/com/nextcloud/talk/models/json/websocket/RoomOverallWebSocketMessage.kt b/app/src/main/java/com/nextcloud/talk/models/json/websocket/RoomOverallWebSocketMessage.kt index 94b54a2699..5a04b4b42d 100644 --- a/app/src/main/java/com/nextcloud/talk/models/json/websocket/RoomOverallWebSocketMessage.kt +++ b/app/src/main/java/com/nextcloud/talk/models/json/websocket/RoomOverallWebSocketMessage.kt @@ -22,16 +22,15 @@ package com.nextcloud.talk.models.json.websocket 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 RoomOverallWebSocketMessage( - @JsonField(name = ["type"]) var type: String? = null, - @JsonField(name = ["room"]) + @SerialName("room") var roomWebSocketMessage: RoomWebSocketMessage? = null ) : Parcelable { // This constructor is added to work with the 'com.bluelinelabs.logansquare.annotation.JsonObject' diff --git a/app/src/main/java/com/nextcloud/talk/models/json/websocket/RoomPropertiesWebSocketMessage.kt b/app/src/main/java/com/nextcloud/talk/models/json/websocket/RoomPropertiesWebSocketMessage.kt index bb8d282a06..e8fb5c71c4 100644 --- a/app/src/main/java/com/nextcloud/talk/models/json/websocket/RoomPropertiesWebSocketMessage.kt +++ b/app/src/main/java/com/nextcloud/talk/models/json/websocket/RoomPropertiesWebSocketMessage.kt @@ -22,18 +22,17 @@ package com.nextcloud.talk.models.json.websocket 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.ConversationType import com.nextcloud.talk.models.json.converters.EnumRoomTypeConverter import kotlinx.parcelize.Parcelize @Parcelize -@JsonObject +@Serializable data class RoomPropertiesWebSocketMessage( - @JsonField(name = ["name"]) var name: String? = null, - @JsonField(name = ["type"], typeConverter = EnumRoomTypeConverter::class) + @SerialName("type", typeConverter = EnumRoomTypeConverter::class) var roomType: ConversationType? = null ) : Parcelable { // This constructor is added to work with the 'com.bluelinelabs.logansquare.annotation.JsonObject' diff --git a/app/src/main/java/com/nextcloud/talk/models/json/websocket/RoomWebSocketMessage.kt b/app/src/main/java/com/nextcloud/talk/models/json/websocket/RoomWebSocketMessage.kt index a82a0fc518..0e78af67b8 100644 --- a/app/src/main/java/com/nextcloud/talk/models/json/websocket/RoomWebSocketMessage.kt +++ b/app/src/main/java/com/nextcloud/talk/models/json/websocket/RoomWebSocketMessage.kt @@ -22,18 +22,18 @@ package com.nextcloud.talk.models.json.websocket 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 RoomWebSocketMessage( - @JsonField(name = ["roomid"]) + @SerialName("roomid") var roomId: String? = null, - @JsonField(name = ["sessionid"]) + @SerialName("sessionid") var sessionId: String? = null, - @JsonField(name = ["properties"]) + @SerialName("properties") var roomPropertiesWebSocketMessage: RoomPropertiesWebSocketMessage? = null ) : Parcelable { // This constructor is added to work with the 'com.bluelinelabs.logansquare.annotation.JsonObject' diff --git a/app/src/main/java/com/nextcloud/talk/models/json/websocket/ServerHelloResponseFeaturesWebSocketMessage.kt b/app/src/main/java/com/nextcloud/talk/models/json/websocket/ServerHelloResponseFeaturesWebSocketMessage.kt index 7fa4ca2b30..73d91f82e6 100644 --- a/app/src/main/java/com/nextcloud/talk/models/json/websocket/ServerHelloResponseFeaturesWebSocketMessage.kt +++ b/app/src/main/java/com/nextcloud/talk/models/json/websocket/ServerHelloResponseFeaturesWebSocketMessage.kt @@ -22,14 +22,13 @@ package com.nextcloud.talk.models.json.websocket 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 ServerHelloResponseFeaturesWebSocketMessage( - @JsonField(name = ["features"]) var features: List? = null ) : Parcelable { // This constructor is added to work with the 'com.bluelinelabs.logansquare.annotation.JsonObject' diff --git a/app/src/main/java/com/nextcloud/talk/polls/repositories/model/PollDetailsResponse.kt b/app/src/main/java/com/nextcloud/talk/polls/repositories/model/PollDetailsResponse.kt index 336a812267..bbf21ce037 100644 --- a/app/src/main/java/com/nextcloud/talk/polls/repositories/model/PollDetailsResponse.kt +++ b/app/src/main/java/com/nextcloud/talk/polls/repositories/model/PollDetailsResponse.kt @@ -20,23 +20,23 @@ package com.nextcloud.talk.polls.repositories.model 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 PollDetailsResponse( - @JsonField(name = ["actorType"]) + @SerialName("actorType") var actorType: String? = null, - @JsonField(name = ["actorId"]) + @SerialName("actorId") var actorId: String, - @JsonField(name = ["actorDisplayName"]) + @SerialName("actorDisplayName") var actorDisplayName: String, - @JsonField(name = ["optionId"]) + @SerialName("optionId") var optionId: Int ) : Parcelable { // This constructor is added to work with the 'com.bluelinelabs.logansquare.annotation.JsonObject' diff --git a/app/src/main/java/com/nextcloud/talk/polls/repositories/model/PollOCS.kt b/app/src/main/java/com/nextcloud/talk/polls/repositories/model/PollOCS.kt index cb691979da..c147460293 100644 --- a/app/src/main/java/com/nextcloud/talk/polls/repositories/model/PollOCS.kt +++ b/app/src/main/java/com/nextcloud/talk/polls/repositories/model/PollOCS.kt @@ -20,14 +20,14 @@ package com.nextcloud.talk.polls.repositories.model 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 PollOCS( - @JsonField(name = ["data"]) + @SerialName("data") var data: PollResponse? ) : Parcelable { // This constructor is added to work with the 'com.bluelinelabs.logansquare.annotation.JsonObject' diff --git a/app/src/main/java/com/nextcloud/talk/polls/repositories/model/PollOverall.kt b/app/src/main/java/com/nextcloud/talk/polls/repositories/model/PollOverall.kt index f0b3f48b8a..93795cbc3f 100644 --- a/app/src/main/java/com/nextcloud/talk/polls/repositories/model/PollOverall.kt +++ b/app/src/main/java/com/nextcloud/talk/polls/repositories/model/PollOverall.kt @@ -20,14 +20,14 @@ package com.nextcloud.talk.polls.repositories.model 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 PollOverall( - @JsonField(name = ["ocs"]) + @SerialName("ocs") var ocs: PollOCS? = null ) : Parcelable { // This constructor is added to work with the 'com.bluelinelabs.logansquare.annotation.JsonObject' diff --git a/app/src/main/java/com/nextcloud/talk/polls/repositories/model/PollResponse.kt b/app/src/main/java/com/nextcloud/talk/polls/repositories/model/PollResponse.kt index 948d8698c4..9356a402ef 100644 --- a/app/src/main/java/com/nextcloud/talk/polls/repositories/model/PollResponse.kt +++ b/app/src/main/java/com/nextcloud/talk/polls/repositories/model/PollResponse.kt @@ -20,50 +20,50 @@ package com.nextcloud.talk.polls.repositories.model 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 PollResponse( - @JsonField(name = ["id"]) + @SerialName("id") var id: String, - @JsonField(name = ["question"]) + @SerialName("question") var question: String? = null, - @JsonField(name = ["options"]) + @SerialName("options") var options: ArrayList? = null, - @JsonField(name = ["votes"]) + @SerialName("votes") var votes: Map? = null, - @JsonField(name = ["actorType"]) + @SerialName("actorType") var actorType: String? = null, - @JsonField(name = ["actorId"]) + @SerialName("actorId") var actorId: String? = null, - @JsonField(name = ["actorDisplayName"]) + @SerialName("actorDisplayName") var actorDisplayName: String? = null, - @JsonField(name = ["status"]) + @SerialName("status") var status: Int = 0, - @JsonField(name = ["resultMode"]) + @SerialName("resultMode") var resultMode: Int = 0, - @JsonField(name = ["maxVotes"]) + @SerialName("maxVotes") var maxVotes: Int = 0, - @JsonField(name = ["votedSelf"]) + @SerialName("votedSelf") var votedSelf: ArrayList? = null, - @JsonField(name = ["numVoters"]) + @SerialName("numVoters") var numVoters: Int = 0, - @JsonField(name = ["details"]) + @SerialName("details") var details: ArrayList? = null ) : Parcelable { // This constructor is added to work with the 'com.bluelinelabs.logansquare.annotation.JsonObject' diff --git a/app/src/main/java/com/nextcloud/talk/translate/repositories/model/Language.kt b/app/src/main/java/com/nextcloud/talk/translate/repositories/model/Language.kt index 15287dab27..ec346c81db 100644 --- a/app/src/main/java/com/nextcloud/talk/translate/repositories/model/Language.kt +++ b/app/src/main/java/com/nextcloud/talk/translate/repositories/model/Language.kt @@ -20,20 +20,16 @@ package com.nextcloud.talk.translate.repositories.model 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 Language( - @JsonField(name = ["from"]) var from: String?, - @JsonField(name = ["fromLabel"]) var fromLabel: String?, - @JsonField(name = ["to"]) var to: String?, - @JsonField(name = ["toLabel"]) var toLabel: String? ) : Parcelable { // This constructor is added to work with the 'com.bluelinelabs.logansquare.annotation.JsonObject' diff --git a/app/src/main/java/com/nextcloud/talk/translate/repositories/model/LanguagesData.kt b/app/src/main/java/com/nextcloud/talk/translate/repositories/model/LanguagesData.kt index 3cd2f22066..654114917e 100644 --- a/app/src/main/java/com/nextcloud/talk/translate/repositories/model/LanguagesData.kt +++ b/app/src/main/java/com/nextcloud/talk/translate/repositories/model/LanguagesData.kt @@ -20,16 +20,14 @@ package com.nextcloud.talk.translate.repositories.model 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 LanguagesData( - @JsonField(name = ["languageDetection"]) var languageDetection: Boolean?, - @JsonField(name = ["languages"]) var languages: List? ) : Parcelable { // This constructor is added to work with the 'com.bluelinelabs.logansquare.annotation.JsonObject' diff --git a/app/src/main/java/com/nextcloud/talk/translate/repositories/model/LanguagesOCS.kt b/app/src/main/java/com/nextcloud/talk/translate/repositories/model/LanguagesOCS.kt index f8c88edd83..73d9d2726a 100644 --- a/app/src/main/java/com/nextcloud/talk/translate/repositories/model/LanguagesOCS.kt +++ b/app/src/main/java/com/nextcloud/talk/translate/repositories/model/LanguagesOCS.kt @@ -20,17 +20,15 @@ package com.nextcloud.talk.translate.repositories.model 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 LanguagesOCS( - @JsonField(name = ["meta"]) var meta: GenericMeta?, - @JsonField(name = ["data"]) var data: LanguagesData? ) : Parcelable { // This constructor is added to work with the 'com.bluelinelabs.logansquare.annotation.JsonObject' diff --git a/app/src/main/java/com/nextcloud/talk/translate/repositories/model/LanguagesOverall.kt b/app/src/main/java/com/nextcloud/talk/translate/repositories/model/LanguagesOverall.kt index 1e8a35b900..be3830270b 100644 --- a/app/src/main/java/com/nextcloud/talk/translate/repositories/model/LanguagesOverall.kt +++ b/app/src/main/java/com/nextcloud/talk/translate/repositories/model/LanguagesOverall.kt @@ -20,14 +20,13 @@ package com.nextcloud.talk.translate.repositories.model 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 LanguagesOverall( - @JsonField(name = ["ocs"]) var ocs: LanguagesOCS? ) : Parcelable { // This constructor is added to work with the 'com.bluelinelabs.logansquare.annotation.JsonObject' diff --git a/app/src/main/java/com/nextcloud/talk/translate/repositories/model/TranslateData.kt b/app/src/main/java/com/nextcloud/talk/translate/repositories/model/TranslateData.kt index 22bc1073d2..26f30b6a3c 100644 --- a/app/src/main/java/com/nextcloud/talk/translate/repositories/model/TranslateData.kt +++ b/app/src/main/java/com/nextcloud/talk/translate/repositories/model/TranslateData.kt @@ -20,16 +20,15 @@ package com.nextcloud.talk.translate.repositories.model 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 TranslateData( - @JsonField(name = ["text"]) var text: String?, - @JsonField(name = ["from"]) + @SerialName("from") var fromLanguage: String? ) : Parcelable { // This constructor is added to work with the 'com.bluelinelabs.logansquare.annotation.JsonObject' diff --git a/app/src/main/java/com/nextcloud/talk/translate/repositories/model/TranslateOCS.kt b/app/src/main/java/com/nextcloud/talk/translate/repositories/model/TranslateOCS.kt index 617eb20a18..068e6957d6 100644 --- a/app/src/main/java/com/nextcloud/talk/translate/repositories/model/TranslateOCS.kt +++ b/app/src/main/java/com/nextcloud/talk/translate/repositories/model/TranslateOCS.kt @@ -20,17 +20,15 @@ package com.nextcloud.talk.translate.repositories.model 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 TranslateOCS( - @JsonField(name = ["meta"]) var meta: GenericMeta?, - @JsonField(name = ["data"]) var data: TranslateData? ) : Parcelable { // This constructor is added to work with the 'com.bluelinelabs.logansquare.annotation.JsonObject' diff --git a/app/src/main/java/com/nextcloud/talk/translate/repositories/model/TranslationsOverall.kt b/app/src/main/java/com/nextcloud/talk/translate/repositories/model/TranslationsOverall.kt index 577c0e9ecc..4e1430d226 100644 --- a/app/src/main/java/com/nextcloud/talk/translate/repositories/model/TranslationsOverall.kt +++ b/app/src/main/java/com/nextcloud/talk/translate/repositories/model/TranslationsOverall.kt @@ -20,14 +20,13 @@ package com.nextcloud.talk.translate.repositories.model 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 TranslationsOverall( - @JsonField(name = ["ocs"]) var ocs: TranslateOCS? ) : Parcelable { // This constructor is added to work with the 'com.bluelinelabs.logansquare.annotation.JsonObject' diff --git a/app/src/main/java/com/nextcloud/talk/utils/NotificationUtils.kt b/app/src/main/java/com/nextcloud/talk/utils/NotificationUtils.kt index 82c9875449..c9271a464d 100644 --- a/app/src/main/java/com/nextcloud/talk/utils/NotificationUtils.kt +++ b/app/src/main/java/com/nextcloud/talk/utils/NotificationUtils.kt @@ -318,17 +318,18 @@ object NotificationUtils { // Notification channel will not be available when starting the application for the first time. // Ringtone uris are required to register the notification channels -> get uri from preferences. } - return if (TextUtils.isEmpty(ringtonePreferencesString)) { - Uri.parse(defaultRingtoneUri) - } else { - try { - val ringtoneSettings = - LoganSquare.parse(ringtonePreferencesString, RingtoneSettings::class.java) - ringtoneSettings.ringtoneUri - } catch (exception: IOException) { - Uri.parse(defaultRingtoneUri) - } - } + // return if (TextUtils.isEmpty(ringtonePreferencesString)) { + // Uri.parse(defaultRingtoneUri) + // } else { + // try { + // val ringtoneSettings = + // LoganSquare.parse(ringtonePreferencesString, RingtoneSettings::class.java) + // ringtoneSettings.ringtoneUri + // } catch (exception: IOException) { + // Uri.parse(defaultRingtoneUri) + // } + // } + return Uri.parse(defaultRingtoneUri) } fun getCallRingtoneUri(context: Context, appPreferences: AppPreferences): Uri? { diff --git a/app/src/main/java/com/nextcloud/talk/webrtc/PeerConnectionWrapper.java b/app/src/main/java/com/nextcloud/talk/webrtc/PeerConnectionWrapper.java index 4c8196eb8f..6b455cec07 100644 --- a/app/src/main/java/com/nextcloud/talk/webrtc/PeerConnectionWrapper.java +++ b/app/src/main/java/com/nextcloud/talk/webrtc/PeerConnectionWrapper.java @@ -429,10 +429,12 @@ public void onMessage(DataChannel.Buffer buffer) { String nick = null; if (dataChannelMessage.getPayload() instanceof String) { nick = (String) dataChannelMessage.getPayload(); - } else if (dataChannelMessage.getPayload() instanceof Map) { - Map payloadMap = (Map) dataChannelMessage.getPayload(); - nick = payloadMap.get("name"); } + // TODO: adapt payload type!!!!!!!!!!!!!! +// else if (dataChannelMessage.getPayload() instanceof Map) { +// Map payloadMap = (Map) dataChannelMessage.getPayload(); +// nick = payloadMap.get("name"); +// } if (nick != null) { dataChannelMessageNotifier.notifyNickChanged(nick); diff --git a/gradle/verification-metadata.xml b/gradle/verification-metadata.xml index f19603e4cb..e45ce5c885 100644 --- a/gradle/verification-metadata.xml +++ b/gradle/verification-metadata.xml @@ -7,6 +7,9 @@ + + + @@ -82,6 +85,7 @@ + @@ -90,6 +94,7 @@ + @@ -137,6 +142,7 @@ + @@ -2303,6 +2309,21 @@ + + + + + + + + + + + + + + + @@ -3026,6 +3047,14 @@ + + + + + + + + @@ -3134,6 +3163,7 @@ + @@ -3171,6 +3201,11 @@ + + + + + @@ -3246,6 +3281,16 @@ + + + + + + + + + + @@ -3330,6 +3375,16 @@ + + + + + + + + + + @@ -3361,6 +3416,11 @@ + + + + + @@ -3384,6 +3444,7 @@ + @@ -3396,6 +3457,26 @@ + + + + + + + + + + + + + + + + + + + + @@ -3414,6 +3495,7 @@ + @@ -3442,9 +3524,15 @@ + + + + + + @@ -3530,11 +3618,26 @@ + + + + + + + + + + + + + + + @@ -3560,6 +3663,11 @@ + + + + + @@ -3570,6 +3678,11 @@ + + + + +