From df957971a87ed861046cdcefc734306bd605d0ca Mon Sep 17 00:00:00 2001 From: Benoit Marty Date: Tue, 4 Jan 2022 14:44:08 +0100 Subject: [PATCH] Add some logs to try to understand an error on the production app. Also propagate the exception if this is not a registration flow response. --- .../session/terms/DefaultTermsService.kt | 26 +++++++++++++------ 1 file changed, 18 insertions(+), 8 deletions(-) diff --git a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/session/terms/DefaultTermsService.kt b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/session/terms/DefaultTermsService.kt index c52c6a404e..313fb6319d 100644 --- a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/session/terms/DefaultTermsService.kt +++ b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/session/terms/DefaultTermsService.kt @@ -36,6 +36,7 @@ import org.matrix.android.sdk.internal.session.sync.model.accountdata.AcceptedTe import org.matrix.android.sdk.internal.session.user.accountdata.UpdateUserAccountDataTask import org.matrix.android.sdk.internal.session.user.accountdata.UserAccountDataDataSource import org.matrix.android.sdk.internal.util.ensureTrailingSlash +import timber.log.Timber import javax.inject.Inject internal class DefaultTermsService @Inject constructor( @@ -63,19 +64,28 @@ internal class DefaultTermsService @Inject constructor( */ override suspend fun getHomeserverTerms(baseUrl: String): TermsResponse { return try { + val request = baseUrl + NetworkConstants.URI_API_PREFIX_PATH_R0 + "register" executeRequest(null) { - termsAPI.register(baseUrl + NetworkConstants.URI_API_PREFIX_PATH_R0 + "register") + termsAPI.register(request) } // Return empty result if it succeed, but it should never happen + Timber.w("Request $request succeeded, it should never happen") TermsResponse() } catch (throwable: Throwable) { - @Suppress("UNCHECKED_CAST") - TermsResponse( - policies = (throwable.toRegistrationFlowResponse() - ?.params - ?.get(LoginFlowTypes.TERMS) as? JsonDict) - ?.get("policies") as? JsonDict - ) + val registrationFlowResponse = throwable.toRegistrationFlowResponse() + if (registrationFlowResponse != null) { + @Suppress("UNCHECKED_CAST") + TermsResponse( + policies = (registrationFlowResponse + .params + ?.get(LoginFlowTypes.TERMS) as? JsonDict) + ?.get("policies") as? JsonDict + ) + } else { + // Other error + Timber.e(throwable, "Error while getting homeserver terms") + throw throwable + } } }