Loading packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBarPolicy.java +8 −1 Original line number Diff line number Diff line Loading @@ -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())) { Loading Loading @@ -626,6 +626,13 @@ public class PhoneStatusBarPolicy } } @Override public void appTransitionFinished(int displayId) { if (mDisplayId == displayId) { updateManagedProfile(); } } @Override public void onKeyguardShowingChanged() { updateManagedProfile(); Loading packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/PhoneStatusBarPolicyTest.kt +41 −0 Original line number Diff line number Diff line Loading @@ -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 Loading Loading @@ -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 Loading @@ -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 Loading @@ -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 Loading @@ -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 Loading Loading @@ -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() } Loading Loading @@ -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 { Loading Loading
packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBarPolicy.java +8 −1 Original line number Diff line number Diff line Loading @@ -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())) { Loading Loading @@ -626,6 +626,13 @@ public class PhoneStatusBarPolicy } } @Override public void appTransitionFinished(int displayId) { if (mDisplayId == displayId) { updateManagedProfile(); } } @Override public void onKeyguardShowingChanged() { updateManagedProfile(); Loading
packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/PhoneStatusBarPolicyTest.kt +41 −0 Original line number Diff line number Diff line Loading @@ -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 Loading Loading @@ -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 Loading @@ -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 Loading @@ -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 Loading @@ -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 Loading Loading @@ -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() } Loading Loading @@ -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 { Loading