From 0a19ded167f51cad83c0fa7347f06be080f6f9dd Mon Sep 17 00:00:00 2001 From: Benoit Marty Date: Wed, 27 Nov 2019 14:34:07 +0100 Subject: [PATCH] Login screens: extract some classes --- .../internal/auth/login/DefaultLoginWizard.kt | 8 --- .../internal/auth/login/ResetPasswordData.kt | 29 ++++++++++ .../registration/DefaultRegistrationWizard.kt | 33 ------------ .../auth/registration/ThreePidData.kt | 54 +++++++++++++++++++ 4 files changed, 83 insertions(+), 41 deletions(-) create mode 100644 matrix-sdk-android/src/main/java/im/vector/matrix/android/internal/auth/login/ResetPasswordData.kt create mode 100644 matrix-sdk-android/src/main/java/im/vector/matrix/android/internal/auth/registration/ThreePidData.kt diff --git a/matrix-sdk-android/src/main/java/im/vector/matrix/android/internal/auth/login/DefaultLoginWizard.kt b/matrix-sdk-android/src/main/java/im/vector/matrix/android/internal/auth/login/DefaultLoginWizard.kt index e6b1eccc0d..f02e64c620 100644 --- a/matrix-sdk-android/src/main/java/im/vector/matrix/android/internal/auth/login/DefaultLoginWizard.kt +++ b/matrix-sdk-android/src/main/java/im/vector/matrix/android/internal/auth/login/DefaultLoginWizard.kt @@ -17,7 +17,6 @@ package im.vector.matrix.android.internal.auth.login import android.util.Patterns -import com.squareup.moshi.JsonClass import dagger.Lazy import im.vector.matrix.android.api.MatrixCallback import im.vector.matrix.android.api.auth.data.Credentials @@ -43,13 +42,6 @@ import kotlinx.coroutines.GlobalScope import kotlinx.coroutines.withContext import okhttp3.OkHttpClient -// Container to store the data when a reset password is in the email validation step -@JsonClass(generateAdapter = true) -internal data class ResetPasswordData( - val newPassword: String, - val addThreePidRegistrationResponse: AddThreePidRegistrationResponse -) - internal class DefaultLoginWizard( okHttpClient: Lazy, retrofitFactory: RetrofitFactory, diff --git a/matrix-sdk-android/src/main/java/im/vector/matrix/android/internal/auth/login/ResetPasswordData.kt b/matrix-sdk-android/src/main/java/im/vector/matrix/android/internal/auth/login/ResetPasswordData.kt new file mode 100644 index 0000000000..11a8b95443 --- /dev/null +++ b/matrix-sdk-android/src/main/java/im/vector/matrix/android/internal/auth/login/ResetPasswordData.kt @@ -0,0 +1,29 @@ +/* + * Copyright 2019 New Vector Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package im.vector.matrix.android.internal.auth.login + +import com.squareup.moshi.JsonClass +import im.vector.matrix.android.internal.auth.registration.AddThreePidRegistrationResponse + +/** + * Container to store the data when a reset password is in the email validation step + */ +@JsonClass(generateAdapter = true) +internal data class ResetPasswordData( + val newPassword: String, + val addThreePidRegistrationResponse: AddThreePidRegistrationResponse +) diff --git a/matrix-sdk-android/src/main/java/im/vector/matrix/android/internal/auth/registration/DefaultRegistrationWizard.kt b/matrix-sdk-android/src/main/java/im/vector/matrix/android/internal/auth/registration/DefaultRegistrationWizard.kt index ec9818689e..2db1bd94fd 100644 --- a/matrix-sdk-android/src/main/java/im/vector/matrix/android/internal/auth/registration/DefaultRegistrationWizard.kt +++ b/matrix-sdk-android/src/main/java/im/vector/matrix/android/internal/auth/registration/DefaultRegistrationWizard.kt @@ -16,7 +16,6 @@ package im.vector.matrix.android.internal.auth.registration -import com.squareup.moshi.JsonClass import dagger.Lazy import im.vector.matrix.android.api.MatrixCallback import im.vector.matrix.android.api.auth.registration.RegisterThreePid @@ -38,38 +37,6 @@ import kotlinx.coroutines.GlobalScope import kotlinx.coroutines.delay import okhttp3.OkHttpClient -// Container to store the data when a three pid is in validation step -@JsonClass(generateAdapter = true) -internal data class ThreePidData( - val email: String, - val msisdn: String, - val country: String, - val addThreePidRegistrationResponse: AddThreePidRegistrationResponse, - val registrationParams: RegistrationParams -) { - val threePid: RegisterThreePid - get() { - return if (email.isNotBlank()) { - RegisterThreePid.Email(email) - } else { - RegisterThreePid.Msisdn(msisdn, country) - } - } - - companion object { - fun from(threePid: RegisterThreePid, - addThreePidRegistrationResponse: AddThreePidRegistrationResponse, - registrationParams: RegistrationParams): ThreePidData { - return when (threePid) { - is RegisterThreePid.Email -> - ThreePidData(threePid.email, "", "", addThreePidRegistrationResponse, registrationParams) - is RegisterThreePid.Msisdn -> - ThreePidData("", threePid.msisdn, threePid.countryCode, addThreePidRegistrationResponse, registrationParams) - } - } - } -} - /** * This class execute the registration request and is responsible to keep the session of interactive authentication */ diff --git a/matrix-sdk-android/src/main/java/im/vector/matrix/android/internal/auth/registration/ThreePidData.kt b/matrix-sdk-android/src/main/java/im/vector/matrix/android/internal/auth/registration/ThreePidData.kt new file mode 100644 index 0000000000..bb4751c438 --- /dev/null +++ b/matrix-sdk-android/src/main/java/im/vector/matrix/android/internal/auth/registration/ThreePidData.kt @@ -0,0 +1,54 @@ +/* + * Copyright 2019 New Vector Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package im.vector.matrix.android.internal.auth.registration + +import com.squareup.moshi.JsonClass +import im.vector.matrix.android.api.auth.registration.RegisterThreePid + +/** + * Container to store the data when a three pid is in validation step + */ +@JsonClass(generateAdapter = true) +internal data class ThreePidData( + val email: String, + val msisdn: String, + val country: String, + val addThreePidRegistrationResponse: AddThreePidRegistrationResponse, + val registrationParams: RegistrationParams +) { + val threePid: RegisterThreePid + get() { + return if (email.isNotBlank()) { + RegisterThreePid.Email(email) + } else { + RegisterThreePid.Msisdn(msisdn, country) + } + } + + companion object { + fun from(threePid: RegisterThreePid, + addThreePidRegistrationResponse: AddThreePidRegistrationResponse, + registrationParams: RegistrationParams): ThreePidData { + return when (threePid) { + is RegisterThreePid.Email -> + ThreePidData(threePid.email, "", "", addThreePidRegistrationResponse, registrationParams) + is RegisterThreePid.Msisdn -> + ThreePidData("", threePid.msisdn, threePid.countryCode, addThreePidRegistrationResponse, registrationParams) + } + } + } +}