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

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

fix: try to fix the bug with finish & recent activities

parent f5abdc22
Loading
Loading
Loading
Loading
Loading
+0 −2
Original line number Diff line number Diff line
@@ -106,8 +106,6 @@

        <activity
            android:name=".ReLoginWithOidcActivity"
            android:taskAffinity=""
            android:excludeFromRecents="true"
            android:exported="false" />

        <!-- required for Hilt/WorkManager integration -->
+11 −17
Original line number Diff line number Diff line
@@ -12,11 +12,14 @@ import android.accounts.AccountManagerFuture
import android.content.Intent
import android.os.Build
import android.os.Bundle
import android.os.Handler
import android.os.Looper
import androidx.appcompat.app.AppCompatActivity
import at.bitfire.davdroid.log.Logger

class ReLoginWithOidcActivity : AppCompatActivity() {


    override fun onStart() {
        super.onStart()
        Logger.log.info("Vincent: onStart()")
@@ -26,20 +29,9 @@ class ReLoginWithOidcActivity : AppCompatActivity() {
            return
        }

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

    override fun onStop() {
        super.onStop()
        Logger.log.info("Vincent: onStop()")
    }

    override fun onDestroy() {
        super.onDestroy()
        Logger.log.info("Vincent: onDestroy()")
    }

    private fun logoutAccount(accountName: String)
    {
        val accountManager = AccountManager.get(this)
@@ -51,12 +43,12 @@ class ReLoginWithOidcActivity : AppCompatActivity() {

            if (success) {
                Logger.log.info("Vincent: Account removed. Now will sign in again with OIDC")

                //todo: open Login activity without android AccountManager
                loginAccount(eAccountType)
            } else {
                Logger.log.info("failed to remove account: $accountName")
                //todo call a finish
                Handler(Looper.getMainLooper()).post {
                    finish()
                }
            }
        }

@@ -78,8 +70,10 @@ class ReLoginWithOidcActivity : AppCompatActivity() {
            Logger.log.info("Vincent: callback for login account. About to start intent(is null ?: ${intent == null})")
            intent?.let(::startActivity)
            Logger.log.info("Vincent: callback for login account. Intent started. About to finish ${this.javaClass}")
            Handler(Looper.getMainLooper()).post {
                finish()
            }
        }

        try {
            accountManager.addAccount(
@@ -93,7 +87,7 @@ class ReLoginWithOidcActivity : AppCompatActivity() {
            )
        } catch (exception: Exception) {
            Logger.log.warning("${exception.javaClass}: can't add account: ${exception.message}")
            //todo call finish
            finish()
        }

    }
+2 −1
Original line number Diff line number Diff line
@@ -81,6 +81,7 @@ class BootCompletedReceiver: BroadcastReceiver() {
        return  PendingIntent.getActivity(context,
            0,
            reLoginIntent,
            PendingIntent.FLAG_UPDATE_CURRENT or PendingIntent.FLAG_IMMUTABLE)
            PendingIntent.FLAG_IMMUTABLE or PendingIntent.FLAG_UPDATE_CURRENT or
                    PendingIntent.FLAG_ONE_SHOT)
    }
}