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

Commit a42d22e4 authored by Vincent Bourgmayer's avatar Vincent Bourgmayer
Browse files

Revert "fix: try something else"

This reverts commit aa4d27e0.
parent aa4d27e0
Loading
Loading
Loading
Loading
Loading
+22 −2
Original line number Diff line number Diff line
@@ -17,6 +17,8 @@ import at.bitfire.davdroid.log.Logger

class ReLoginWithOidcActivity : AppCompatActivity() {

    private var needLogout = true

    override fun onStart() {
        super.onStart()

@@ -24,8 +26,12 @@ class ReLoginWithOidcActivity : AppCompatActivity() {
            finish()
            return
        }

        Logger.log.info("Vincent: onStart() call and gonna logout account")
        if (needLogout) {
            logoutAccount(accountName)
        }
    }

    private fun logoutAccount(accountName: String)
    {
@@ -37,6 +43,7 @@ class ReLoginWithOidcActivity : AppCompatActivity() {
            val success = future.result.getBoolean(KEY_BOOLEAN_RESULT)

            if (success) {
                needLogout = false
                loginAccount(eAccountType)
            } else {
                Logger.log.info("failed to remove account: $accountName ")
@@ -55,6 +62,12 @@ class ReLoginWithOidcActivity : AppCompatActivity() {
    private fun loginAccount(accountType: String) {
        val accountManager = AccountManager.get(this)

        val callback: (AliasFuture) -> Unit = { future ->
            val intent = getIntentFromFuture(future)
            intent?.let(::startActivity)
            finish()
        }

        try {
            accountManager.addAccount(
                accountType,
@@ -62,13 +75,20 @@ class ReLoginWithOidcActivity : AppCompatActivity() {
                null,
                null,
                null,
                null,
                { future -> callback(future)},
                null
            )
        } catch (exception: Exception) {
            Logger.log.warning("${exception.javaClass}: can't add account: ${exception.message}")
        }
        finish()
    }

    private fun getIntentFromFuture(future: AliasFuture): Intent? {
        return if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) {
            future.result?.getParcelable(KEY_INTENT, Intent::class.java)
        } else {
            future.result?.getParcelable(KEY_INTENT)
        }
    }
}