diff --git a/android-deeplink/src/main/kotlin/co/anitrend/deeplink/component/route/AppRoutes.kt b/android-deeplink/src/main/kotlin/co/anitrend/deeplink/component/route/AppRoutes.kt index 5dc4c576d..0592f219e 100644 --- a/android-deeplink/src/main/kotlin/co/anitrend/deeplink/component/route/AppRoutes.kt +++ b/android-deeplink/src/main/kotlin/co/anitrend/deeplink/component/route/AppRoutes.kt @@ -174,25 +174,26 @@ internal object OAuthRoute : Route( return runCatching { AuthRouter.Param( accessToken = - requireNotNull(queryParameter(CALLBACK_QUERY_TOKEN_KEY)) { - "$CALLBACK_QUERY_TOKEN_KEY was not found in -> $fullyQualifiedUrl" - }, + requireNotNull(queryParameter(CALLBACK_QUERY_TOKEN_KEY)) { + "$CALLBACK_QUERY_TOKEN_KEY was not found in -> $fullyQualifiedUrl" + }, tokenType = - requireNotNull(queryParameter(CALLBACK_QUERY_TOKEN_TYPE_KEY)) { - "$CALLBACK_QUERY_TOKEN_TYPE_KEY was not found in -> $fullyQualifiedUrl" - }, + requireNotNull(queryParameter(CALLBACK_QUERY_TOKEN_TYPE_KEY)) { + "$CALLBACK_QUERY_TOKEN_TYPE_KEY was not found in -> $fullyQualifiedUrl" + }, expiresIn = - requireNotNull(queryParameter(CALLBACK_QUERY_TOKEN_EXPIRES_IN_KEY)) { - "$CALLBACK_QUERY_TOKEN_EXPIRES_IN_KEY was not found in -> $fullyQualifiedUrl" - }.toLong(), - ) - }.getOrElse { - Timber.w(it) - AuthRouter.Param( - errorTitle = queryParameter(CALLBACK_QUERY_ERROR_KEY), - errorDescription = queryParameter(CALLBACK_QUERY_ERROR_DESCRIPTION_KEY), + requireNotNull(queryParameter(CALLBACK_QUERY_TOKEN_EXPIRES_IN_KEY)) { + "$CALLBACK_QUERY_TOKEN_EXPIRES_IN_KEY was not found in -> $fullyQualifiedUrl" + }.toLong(), ) } + .onFailure(Timber::w) + .getOrDefault( + AuthRouter.Param( + errorTitle = queryParameter(CALLBACK_QUERY_ERROR_KEY), + errorDescription = queryParameter(CALLBACK_QUERY_ERROR_DESCRIPTION_KEY), + ) + ) } private fun DeepLinkUri.normalize(): Uri { diff --git a/feature-auth/src/main/kotlin/co/anitrend/auth/component/content/AuthContent.kt b/feature-auth/src/main/kotlin/co/anitrend/auth/component/content/AuthContent.kt index 1295ea97c..0e2fb27b2 100644 --- a/feature-auth/src/main/kotlin/co/anitrend/auth/component/content/AuthContent.kt +++ b/feature-auth/src/main/kotlin/co/anitrend/auth/component/content/AuthContent.kt @@ -129,10 +129,9 @@ class AuthContent( requireBinding().stateLayout.loadStateFlow.value = it } viewModelState().model.observeOnce(viewLifecycleOwner) { user -> - if (user != null) { + runCatching { presenter.runSignInWorker(user.id) - activity?.finish() - } else { + }.onFailure { Snackbar.make( requireView(), R.string.auth_failed_message, @@ -141,6 +140,8 @@ class AuthContent( presenter.runSignOutWorker() closeScreen() }.show() + }.onSuccess { + activity?.onBackPressed() } } } diff --git a/feature-auth/src/main/kotlin/co/anitrend/auth/component/screen/AuthScreen.kt b/feature-auth/src/main/kotlin/co/anitrend/auth/component/screen/AuthScreen.kt index cf6d65664..b38c2a385 100644 --- a/feature-auth/src/main/kotlin/co/anitrend/auth/component/screen/AuthScreen.kt +++ b/feature-auth/src/main/kotlin/co/anitrend/auth/component/screen/AuthScreen.kt @@ -37,10 +37,9 @@ import org.koin.androidx.viewmodel.ext.android.viewModel class AuthScreen : AniTrendScreen() { private val viewModel by viewModel() + private val authRouterParam by extra(AuthRouter.Param.KEY) private fun checkIntentData() { - val key = AuthRouter.Param.KEY - val authRouterParam by extra(key) viewModel.onIntentData( applicationContext, authRouterParam @@ -63,11 +62,6 @@ class AuthScreen : AniTrendScreen() { lifecycleScope.launch { onUpdateUserInterface() } - lifecycleScope.launch { - repeatOnLifecycle(Lifecycle.State.RESUMED) { - checkIntentData() - } - } } /**