Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit f9ea2f7f authored by Fahim Salam Chowdhury's avatar Fahim Salam Chowdhury 👽
Browse files

Merge branch '746-Stop_login_on_unAuthorize_response_for_murena_accounts' into 'main'

746-Stop_login_on_unAuthorize_response_for_murena_accounts

See merge request !78
parents ff6fe33a 165152f1
Loading
Loading
Loading
Loading
Loading
+6 −1
Original line number Diff line number Diff line
@@ -31,7 +31,8 @@ import java.util.logging.Logger

class DavResourceFinder(
        val context: Context,
        private val loginModel: LoginModel
        private val loginModel: LoginModel,
        private val blockOnUnauthorizedException: Boolean = false
): AutoCloseable {

    enum class Service(val wellKnownName: String) {
@@ -430,6 +431,10 @@ class DavResourceFinder(
            encountered401 = true
        else if ((e is InterruptedIOException && e !is SocketTimeoutException) || e is InterruptedException)
            throw e

        if (e is UnauthorizedException && blockOnUnauthorizedException) {
            throw e
        }
    }


+6 −3
Original line number Diff line number Diff line
@@ -40,7 +40,10 @@ class DetectConfigurationFragment: Fragment() {
            return
        }

        model.detectConfiguration(loginModel).observe(this, { result ->
        val accountType = requireActivity().intent.getStringExtra(LoginActivity.SETUP_ACCOUNT_PROVIDER_TYPE)
        val isMurenaAccountType = (accountType == LoginActivity.ACCOUNT_PROVIDER_EELO)

        model.detectConfiguration(loginModel, isMurenaAccountType).observe(this, { result ->
            // save result for next step
            loginModel.configuration = result

@@ -80,7 +83,7 @@ class DetectConfigurationFragment: Fragment() {
            return (loginModel.baseURI?.host.equals(Constants.EELO_SYNC_HOST) && ECloudAccountHelper.alreadyHasECloudAccount(context))
        }

        fun detectConfiguration(loginModel: LoginModel): LiveData<DavResourceFinder.Configuration> {
        fun detectConfiguration(loginModel: LoginModel, blockOnUnauthorizedException: Boolean): LiveData<DavResourceFinder.Configuration> {
            synchronized(result) {
                if (detectionThread != null)
                    // detection already running
@@ -93,7 +96,7 @@ class DetectConfigurationFragment: Fragment() {
                }

                try {
                    DavResourceFinder(getApplication(), loginModel).use { finder ->
                    DavResourceFinder(getApplication(), loginModel, blockOnUnauthorizedException).use { finder ->
                        result.postValue(finder.findInitialConfiguration())
                    }
                } catch(e: Exception) {