Merge "Also update manage profile state after a transition finishes" into udc-qpr-dev
This commit is contained in:
@@ -546,7 +546,7 @@ public class PhoneStatusBarPolicy
|
||||
userId = ActivityTaskManager.getService().getLastResumedActivityUserId();
|
||||
boolean isManagedProfile = mUserManager.isManagedProfile(userId);
|
||||
String accessibilityString = getManagedProfileAccessibilityString();
|
||||
mHandler.post(() -> {
|
||||
mMainExecutor.execute(() -> {
|
||||
final boolean showIcon;
|
||||
if (isManagedProfile && (!mKeyguardStateController.isShowing()
|
||||
|| mKeyguardStateController.isOccluded())) {
|
||||
@@ -626,6 +626,13 @@ public class PhoneStatusBarPolicy
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void appTransitionFinished(int displayId) {
|
||||
if (mDisplayId == displayId) {
|
||||
updateManagedProfile();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onKeyguardShowingChanged() {
|
||||
updateManagedProfile();
|
||||
|
||||
@@ -18,6 +18,7 @@ package com.android.systemui.statusbar.phone
|
||||
|
||||
import android.app.AlarmManager
|
||||
import android.app.admin.DevicePolicyManager
|
||||
import android.app.admin.DevicePolicyResourcesManager
|
||||
import android.content.SharedPreferences
|
||||
import android.os.UserManager
|
||||
import android.telecom.TelecomManager
|
||||
@@ -49,6 +50,7 @@ import com.android.systemui.statusbar.policy.ZenModeController
|
||||
import com.android.systemui.util.RingerModeTracker
|
||||
import com.android.systemui.util.concurrency.FakeExecutor
|
||||
import com.android.systemui.util.kotlin.JavaAdapter
|
||||
import com.android.systemui.util.mockito.any
|
||||
import com.android.systemui.util.mockito.capture
|
||||
import com.android.systemui.util.time.DateFormatUtil
|
||||
import com.android.systemui.util.time.FakeSystemClock
|
||||
@@ -67,6 +69,7 @@ import org.mockito.ArgumentCaptor
|
||||
import org.mockito.Captor
|
||||
import org.mockito.Mock
|
||||
import org.mockito.Mockito.anyInt
|
||||
import org.mockito.Mockito.anyString
|
||||
import org.mockito.Mockito.clearInvocations
|
||||
import org.mockito.Mockito.inOrder
|
||||
import org.mockito.Mockito.never
|
||||
@@ -83,6 +86,7 @@ class PhoneStatusBarPolicyTest : SysuiTestCase() {
|
||||
companion object {
|
||||
private const val ALARM_SLOT = "alarm"
|
||||
private const val CONNECTED_DISPLAY_SLOT = "connected_display"
|
||||
private const val MANAGED_PROFILE_SLOT = "managed_profile"
|
||||
}
|
||||
|
||||
@Mock private lateinit var iconController: StatusBarIconController
|
||||
@@ -104,6 +108,7 @@ class PhoneStatusBarPolicyTest : SysuiTestCase() {
|
||||
@Mock private lateinit var userManager: UserManager
|
||||
@Mock private lateinit var userTracker: UserTracker
|
||||
@Mock private lateinit var devicePolicyManager: DevicePolicyManager
|
||||
@Mock private lateinit var devicePolicyManagerResources: DevicePolicyResourcesManager
|
||||
@Mock private lateinit var recordingController: RecordingController
|
||||
@Mock private lateinit var telecomManager: TelecomManager
|
||||
@Mock private lateinit var sharedPreferences: SharedPreferences
|
||||
@@ -132,6 +137,12 @@ class PhoneStatusBarPolicyTest : SysuiTestCase() {
|
||||
com.android.internal.R.string.status_bar_alarm_clock,
|
||||
ALARM_SLOT
|
||||
)
|
||||
context.orCreateTestableResources.addOverride(
|
||||
com.android.internal.R.string.status_bar_managed_profile,
|
||||
MANAGED_PROFILE_SLOT
|
||||
)
|
||||
whenever(devicePolicyManager.resources).thenReturn(devicePolicyManagerResources)
|
||||
whenever(devicePolicyManagerResources.getString(anyString(), any())).thenReturn("")
|
||||
statusBarPolicy = createStatusBarPolicy()
|
||||
}
|
||||
|
||||
@@ -181,6 +192,36 @@ class PhoneStatusBarPolicyTest : SysuiTestCase() {
|
||||
verify(iconController).setIconVisibility(ALARM_SLOT, true)
|
||||
}
|
||||
|
||||
@Test
|
||||
fun testAppTransitionFinished_doesNotShowManagedProfileIcon() {
|
||||
whenever(userManager.isManagedProfile(anyInt())).thenReturn(false)
|
||||
whenever(keyguardStateController.isShowing).thenReturn(false)
|
||||
|
||||
statusBarPolicy.appTransitionFinished(0)
|
||||
// The above call posts to bgExecutor and then back to mainExecutor
|
||||
executor.advanceClockToLast()
|
||||
executor.runAllReady()
|
||||
executor.advanceClockToLast()
|
||||
executor.runAllReady()
|
||||
|
||||
verify(iconController, never()).setIconVisibility(MANAGED_PROFILE_SLOT, true)
|
||||
}
|
||||
|
||||
@Test
|
||||
fun testAppTransitionFinished_showsManagedProfileIcon() {
|
||||
whenever(userManager.isManagedProfile(anyInt())).thenReturn(true)
|
||||
whenever(keyguardStateController.isShowing).thenReturn(false)
|
||||
|
||||
statusBarPolicy.appTransitionFinished(0)
|
||||
// The above call posts to bgExecutor and then back to mainExecutor
|
||||
executor.advanceClockToLast()
|
||||
executor.runAllReady()
|
||||
executor.advanceClockToLast()
|
||||
executor.runAllReady()
|
||||
|
||||
verify(iconController).setIconVisibility(MANAGED_PROFILE_SLOT, true)
|
||||
}
|
||||
|
||||
@Test
|
||||
fun connectedDisplay_connected_iconShown() =
|
||||
testScope.runTest {
|
||||
|
||||
Reference in New Issue
Block a user