From 7a3b1ede5705222efab316e37d65d2ca43415952 Mon Sep 17 00:00:00 2001 From: Nishith Khanna Date: Wed, 30 Jul 2025 14:40:33 +0530 Subject: [PATCH] fix: use our browser for login and logout irrespective of default browser set --- app/src/main/kotlin/at/bitfire/davdroid/Constants.kt | 2 ++ .../davdroid/ui/setup/OpenIdAuthenticationViewModel.kt | 3 ++- .../davdroid/ui/signout/OpenIdEndSessionActivity.kt | 9 ++++++++- 3 files changed, 12 insertions(+), 2 deletions(-) diff --git a/app/src/main/kotlin/at/bitfire/davdroid/Constants.kt b/app/src/main/kotlin/at/bitfire/davdroid/Constants.kt index b231268de..40f23a5a3 100644 --- a/app/src/main/kotlin/at/bitfire/davdroid/Constants.kt +++ b/app/src/main/kotlin/at/bitfire/davdroid/Constants.kt @@ -34,4 +34,6 @@ object Constants { const val E_SYNC_URL = "e.email" const val MURENA_DAV_URL = "https://murena.io/remote.php/dav" + + const val E_BROWSER_PACKAGE_NAME = "foundation.e.browser" } diff --git a/app/src/main/kotlin/at/bitfire/davdroid/ui/setup/OpenIdAuthenticationViewModel.kt b/app/src/main/kotlin/at/bitfire/davdroid/ui/setup/OpenIdAuthenticationViewModel.kt index bb2d794e4..fc4eb66a9 100644 --- a/app/src/main/kotlin/at/bitfire/davdroid/ui/setup/OpenIdAuthenticationViewModel.kt +++ b/app/src/main/kotlin/at/bitfire/davdroid/ui/setup/OpenIdAuthenticationViewModel.kt @@ -22,6 +22,7 @@ import android.content.Intent import android.os.Build import androidx.annotation.WorkerThread import androidx.lifecycle.AndroidViewModel +import at.bitfire.davdroid.Constants import at.bitfire.davdroid.OpenIdUtils import at.bitfire.davdroid.authorization.IdentityProvider import at.bitfire.davdroid.log.Logger @@ -54,7 +55,7 @@ class OpenIdAuthenticationViewModel(application: Application) : AndroidViewModel init { val appAuthConfig = AppAuthConfiguration.Builder() .setBrowserMatcher { - it.useCustomTab + it.packageName == Constants.E_BROWSER_PACKAGE_NAME } .build() diff --git a/app/src/main/kotlin/at/bitfire/davdroid/ui/signout/OpenIdEndSessionActivity.kt b/app/src/main/kotlin/at/bitfire/davdroid/ui/signout/OpenIdEndSessionActivity.kt index 5fd4f71ed..a3b5cfe94 100644 --- a/app/src/main/kotlin/at/bitfire/davdroid/ui/signout/OpenIdEndSessionActivity.kt +++ b/app/src/main/kotlin/at/bitfire/davdroid/ui/signout/OpenIdEndSessionActivity.kt @@ -19,9 +19,11 @@ package at.bitfire.davdroid.ui.signout import android.accounts.AccountManager import android.app.Activity import android.os.Bundle +import at.bitfire.davdroid.Constants import at.bitfire.davdroid.authorization.IdentityProvider import at.bitfire.davdroid.log.Logger import at.bitfire.davdroid.settings.AccountSettings +import net.openid.appauth.AppAuthConfiguration import net.openid.appauth.AuthState import net.openid.appauth.AuthorizationService import net.openid.appauth.AuthorizationServiceConfiguration @@ -65,7 +67,12 @@ class OpenIdEndSessionActivity : Activity() { configuration: AuthorizationServiceConfiguration, authState: AuthState ) { - authorizationService = AuthorizationService(applicationContext) + val appAuthConfig = AppAuthConfiguration.Builder() + .setBrowserMatcher { + it.packageName == Constants.E_BROWSER_PACKAGE_NAME + } + .build() + authorizationService = AuthorizationService(applicationContext, appAuthConfig) val identityProvider = IdentityProvider.retrieveByAccountType(this, accountType) ?: return val redirectUri = identityProvider.logoutRedirectUri -- GitLab