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

Commit 071e2d1e authored by Treehugger Robot's avatar Treehugger Robot Committed by Android (Google) Code Review
Browse files

Merge "sysui to use ActivityManager.logoutUser()" into main

parents 9a8f95b3 df918570
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -17,6 +17,7 @@

package com.android.systemui.user.data.repository

import android.app.activityManager
import android.app.admin.DevicePolicyManager
import android.app.admin.devicePolicyManager
import android.content.Intent
@@ -68,6 +69,7 @@ class UserRepositoryImplTest : SysuiTestCase() {
    private val broadcastDispatcher = kosmos.broadcastDispatcher
    private val devicePolicyManager = kosmos.devicePolicyManager
    private val statusBarService = kosmos.fakeStatusBarService
    private val activityManager = kosmos.activityManager

    @Mock private lateinit var manager: UserManager

@@ -509,6 +511,7 @@ class UserRepositoryImplTest : SysuiTestCase() {
            devicePolicyManager = devicePolicyManager,
            resources = context.resources,
            statusBarService = statusBarService,
            activityManager = activityManager,
        )
    }

+11 −2
Original line number Diff line number Diff line
@@ -19,6 +19,7 @@ package com.android.systemui.user.data.repository

import android.annotation.SuppressLint
import android.annotation.UserIdInt
import android.app.ActivityManager
import android.app.admin.DevicePolicyManager
import android.content.Context
import android.content.Intent
@@ -33,7 +34,6 @@ import com.android.app.tracing.coroutines.launchTraced as launch
import com.android.internal.statusbar.IStatusBarService
import com.android.systemui.broadcast.BroadcastDispatcher
import com.android.systemui.common.coroutine.ChannelExt.trySendWithFailureLogging
import com.android.systemui.utils.coroutines.flow.conflatedCallbackFlow
import com.android.systemui.dagger.SysUISingleton
import com.android.systemui.dagger.qualifiers.Application
import com.android.systemui.dagger.qualifiers.Background
@@ -45,6 +45,7 @@ import com.android.systemui.user.data.model.SelectionStatus
import com.android.systemui.user.data.model.UserSwitcherSettingsModel
import com.android.systemui.util.settings.GlobalSettings
import com.android.systemui.util.settings.SettingsProxyExt.observerFlow
import com.android.systemui.utils.coroutines.flow.conflatedCallbackFlow
import com.android.systemui.utils.coroutines.flow.flatMapLatestConflated
import java.util.concurrent.atomic.AtomicBoolean
import javax.inject.Inject
@@ -165,6 +166,7 @@ constructor(
    private val devicePolicyManager: DevicePolicyManager,
    private val broadcastDispatcher: BroadcastDispatcher,
    private val statusBarService: IStatusBarService,
    private val activityManager: ActivityManager,
) : UserRepository {

    private val _userSwitcherSettings: StateFlow<UserSwitcherSettingsModel> =
@@ -325,9 +327,16 @@ constructor(
        // TODO(b/377493351) : start using proper logout API once it is available.
        // Using reboot is a temporary solution.
        if (isLogoutToSystemUserEnabled.value) {
            if (android.multiuser.Flags.logoutUserApi()) {
                withContext(backgroundDispatcher) {
                    val currentUserId = tracker.userId
                    activityManager.logoutUser(currentUserId)
                }
            } else {
                withContext(backgroundDispatcher) { statusBarService.reboot(false) }
            }
        }
    }

    @SuppressLint("MissingPermission")
    override fun refreshUsers() {