Loading packages/SystemUI/multivalentTests/src/com/android/systemui/qs/footer/domain/interactor/FooterActionsInteractorTest.kt +7 −5 Original line number Diff line number Diff line Loading @@ -35,9 +35,7 @@ import com.android.systemui.qs.footer.FooterActionsTestUtils import com.android.systemui.statusbar.policy.DeviceProvisionedController import com.android.systemui.truth.correspondence.FakeUiEvent import com.android.systemui.truth.correspondence.LogMaker import com.android.systemui.util.mockito.any import com.android.systemui.util.mockito.argumentCaptor import com.android.systemui.util.mockito.eq import com.android.systemui.util.mockito.mock import com.android.systemui.util.mockito.nullable import com.google.common.truth.Truth.assertThat Loading @@ -45,8 +43,11 @@ import kotlinx.coroutines.test.TestCoroutineScheduler import org.junit.Before import org.junit.Test import org.junit.runner.RunWith import org.mockito.ArgumentMatchers.anyInt import org.mockito.Mockito.verify import org.mockito.Mockito.`when` as whenever import org.mockito.kotlin.any import org.mockito.kotlin.eq @SmallTest @RunWith(AndroidJUnit4::class) Loading Loading @@ -92,9 +93,10 @@ class FooterActionsInteractorTest : SysuiTestCase() { // Dialog is shown. verify(globalActionsDialogLite) .showOrHideDialog( /* keyguardShowing= */ false, /* isDeviceProvisioned= */ true, expandable, /* keyguardShowing= */ eq(false), /* isDeviceProvisioned= */ eq(true), eq(expandable), anyInt(), ) } Loading packages/SystemUI/src/com/android/systemui/globalactions/GlobalActionsDialogLite.java +47 −7 Original line number Diff line number Diff line Loading @@ -20,6 +20,7 @@ import static android.view.ViewGroup.LayoutParams.MATCH_PARENT; import static android.view.ViewGroup.LayoutParams.WRAP_CONTENT; import static android.view.WindowManager.LayoutParams.FLAG_ALT_FOCUSABLE_IM; import static android.view.WindowManager.LayoutParams.LAYOUT_IN_DISPLAY_CUTOUT_MODE_ALWAYS; import static android.view.WindowManager.LayoutParams.TYPE_STATUS_BAR_SUB_PANEL; import static android.view.WindowManager.ScreenshotSource.SCREENSHOT_GLOBAL_ACTIONS; import static android.view.WindowManagerPolicyConstants.NAV_BAR_MODE_2BUTTON; Loading Loading @@ -120,6 +121,8 @@ import com.android.systemui.broadcast.BroadcastDispatcher; import com.android.systemui.colorextraction.SysuiColorExtractor; import com.android.systemui.dagger.qualifiers.Background; import com.android.systemui.dagger.qualifiers.Main; import com.android.systemui.display.data.repository.DisplayWindowPropertiesRepository; import com.android.systemui.display.shared.model.DisplayWindowProperties; import com.android.systemui.globalactions.domain.interactor.GlobalActionsInteractor; import com.android.systemui.plugins.ActivityStarter; import com.android.systemui.plugins.GlobalActions.GlobalActionsManager; Loading @@ -127,6 +130,7 @@ import com.android.systemui.plugins.GlobalActionsPanelPlugin; import com.android.systemui.scrim.ScrimDrawable; import com.android.systemui.settings.UserTracker; import com.android.systemui.shade.ShadeController; import com.android.systemui.shade.shared.flag.ShadeWindowGoesAround; import com.android.systemui.statusbar.NotificationShadeWindowController; import com.android.systemui.statusbar.VibratorHelper; import com.android.systemui.statusbar.phone.LightBarController; Loading @@ -149,6 +153,8 @@ import java.util.concurrent.Executor; import javax.inject.Inject; import dagger.Lazy; /** * Helper to show the global actions dialog. Each item is an {@link Action} that may show depending * on whether the keyguard is showing, and whether the device is provisioned. Loading Loading @@ -194,6 +200,8 @@ public class GlobalActionsDialogLite implements DialogInterface.OnDismissListene // See NotificationManagerService.LONG_DELAY private static final int TOAST_VISIBLE_TIME = 3500; private static final int DIALOG_WINDOW_TYPE = TYPE_STATUS_BAR_SUB_PANEL; private final Context mContext; private final GlobalActionsManager mWindowManagerFuncs; private final AudioManager mAudioManager; Loading Loading @@ -261,6 +269,7 @@ public class GlobalActionsDialogLite implements DialogInterface.OnDismissListene private final DialogTransitionAnimator mDialogTransitionAnimator; private final UserLogoutInteractor mLogoutInteractor; private final GlobalActionsInteractor mInteractor; private final Lazy<DisplayWindowPropertiesRepository> mDisplayWindowPropertiesRepositoryLazy; @VisibleForTesting public enum GlobalActionsEvent implements UiEventLogger.UiEventEnum { Loading Loading @@ -376,7 +385,8 @@ public class GlobalActionsDialogLite implements DialogInterface.OnDismissListene DialogTransitionAnimator dialogTransitionAnimator, SelectedUserInteractor selectedUserInteractor, UserLogoutInteractor logoutInteractor, GlobalActionsInteractor interactor) { GlobalActionsInteractor interactor, Lazy<DisplayWindowPropertiesRepository> displayWindowPropertiesRepository) { mContext = context; mWindowManagerFuncs = windowManagerFuncs; mAudioManager = audioManager; Loading Loading @@ -413,6 +423,7 @@ public class GlobalActionsDialogLite implements DialogInterface.OnDismissListene mSelectedUserInteractor = selectedUserInteractor; mLogoutInteractor = logoutInteractor; mInteractor = interactor; mDisplayWindowPropertiesRepositoryLazy = displayWindowPropertiesRepository; // receive broadcasts IntentFilter filter = new IntentFilter(); Loading Loading @@ -473,9 +484,10 @@ public class GlobalActionsDialogLite implements DialogInterface.OnDismissListene * @param isDeviceProvisioned True if device is provisioned * @param expandable The expandable from which we should animate the dialog when * showing it * @param displayId Display that should show the dialog */ public void showOrHideDialog(boolean keyguardShowing, boolean isDeviceProvisioned, @Nullable Expandable expandable) { @Nullable Expandable expandable, int displayId) { mKeyguardShowing = keyguardShowing; mDeviceProvisioned = isDeviceProvisioned; if (mDialog != null && mDialog.isShowing()) { Loading @@ -487,7 +499,7 @@ public class GlobalActionsDialogLite implements DialogInterface.OnDismissListene mDialog.dismiss(); mDialog = null; } else { handleShow(expandable); handleShow(expandable, displayId); } } Loading @@ -507,8 +519,8 @@ public class GlobalActionsDialogLite implements DialogInterface.OnDismissListene mHandler.sendEmptyMessage(MESSAGE_DISMISS); } protected void handleShow(@Nullable Expandable expandable) { mDialog = createDialog(); protected void handleShow(@Nullable Expandable expandable, int displayId) { mDialog = createDialog(displayId); prepareDialog(); WindowManager.LayoutParams attrs = mDialog.getWindow().getAttributes(); Loading Loading @@ -686,16 +698,44 @@ public class GlobalActionsDialogLite implements DialogInterface.OnDismissListene mPowerAdapter = new MyPowerOptionsAdapter(); } /** * Create the global actions dialog. * * @return A new dialog. */ protected ActionsDialogLite createDialog() { return createDialog(mContext.getDisplayId()); } private Context getContextForDisplay(int displayId) { if (!ShadeWindowGoesAround.isEnabled()) { Log.e(TAG, "Asked for the displayId=" + displayId + " context but returning default display one as ShadeWindowGoesAround flag " + "is disabled."); return mContext; } try { DisplayWindowProperties properties = mDisplayWindowPropertiesRepositoryLazy.get().get( displayId, DIALOG_WINDOW_TYPE); return properties.getContext(); } catch (Exception e) { Log.e(TAG, "Couldn't get context for displayId=" + displayId); return mContext; } } /** * Create the global actions dialog with a specific context. * * @return A new dialog. */ protected ActionsDialogLite createDialog(int displayId) { final Context context = getContextForDisplay(displayId); initDialogItems(); ActionsDialogLite dialog = new ActionsDialogLite( mContext, context, com.android.systemui.res.R.style.Theme_SystemUI_Dialog_GlobalActionsLite, mAdapter, mOverflowAdapter, Loading @@ -704,7 +744,7 @@ public class GlobalActionsDialogLite implements DialogInterface.OnDismissListene mLightBarController, mKeyguardStateController, mNotificationShadeWindowController, mStatusBarWindowControllerStore.getDefaultDisplay(), mStatusBarWindowControllerStore.forDisplay(context.getDisplayId()), this::onRefresh, mKeyguardShowing, mPowerAdapter, Loading packages/SystemUI/src/com/android/systemui/globalactions/GlobalActionsImpl.java +2 −1 Original line number Diff line number Diff line Loading @@ -63,7 +63,8 @@ public class GlobalActionsImpl implements GlobalActions, CommandQueue.Callbacks public void showGlobalActions(GlobalActionsManager manager) { if (mDisabled) return; mGlobalActionsDialog.showOrHideDialog(mKeyguardStateController.isShowing(), mDeviceProvisionedController.isDeviceProvisioned(), null /* view */); mDeviceProvisionedController.isDeviceProvisioned(), null /* view */, mContext.getDisplayId()); } @Override Loading packages/SystemUI/src/com/android/systemui/qs/footer/domain/interactor/FooterActionsInteractor.kt +3 −0 Original line number Diff line number Diff line Loading @@ -40,6 +40,7 @@ import com.android.systemui.qs.footer.data.model.UserSwitcherStatusModel import com.android.systemui.qs.footer.data.repository.ForegroundServicesRepository import com.android.systemui.qs.footer.domain.model.SecurityButtonConfig import com.android.systemui.security.data.repository.SecurityRepository import com.android.systemui.shade.ShadeDisplayAware import com.android.systemui.statusbar.policy.DeviceProvisionedController import com.android.systemui.user.data.repository.UserSwitcherRepository import com.android.systemui.user.domain.interactor.UserSwitcherInteractor Loading Loading @@ -108,6 +109,7 @@ constructor( userSwitcherRepository: UserSwitcherRepository, broadcastDispatcher: BroadcastDispatcher, @Background bgDispatcher: CoroutineDispatcher, @ShadeDisplayAware private val context: Context, ) : FooterActionsInteractor { override val securityButtonConfig: Flow<SecurityButtonConfig?> = securityRepository.security.map { security -> Loading Loading @@ -157,6 +159,7 @@ constructor( /* keyguardShowing= */ false, /* isDeviceProvisioned= */ true, expandable, context.displayId, ) } Loading packages/SystemUI/tests/src/com/android/systemui/globalactions/GlobalActionsDialogLiteTest.java +15 −7 Original line number Diff line number Diff line Loading @@ -41,6 +41,7 @@ import android.os.Handler; import android.os.UserManager; import android.provider.Settings; import android.testing.TestableLooper; import android.view.Display; import android.view.GestureDetector; import android.view.IWindowManager; import android.view.KeyEvent; Loading @@ -63,6 +64,7 @@ import com.android.systemui.SysuiTestCase; import com.android.systemui.animation.DialogTransitionAnimator; import com.android.systemui.broadcast.BroadcastDispatcher; import com.android.systemui.colorextraction.SysuiColorExtractor; import com.android.systemui.display.data.repository.FakeDisplayWindowPropertiesRepository; import com.android.systemui.globalactions.domain.interactor.GlobalActionsInteractor; import com.android.systemui.kosmos.KosmosJavaAdapter; import com.android.systemui.plugins.ActivityStarter; Loading Loading @@ -159,6 +161,8 @@ public class GlobalActionsDialogLiteTest extends SysuiTestCase { getContext().getResources().getConfiguration()); when(mStatusBarWindowControllerStore.getDefaultDisplay()) .thenReturn(mStatusBarWindowController); when(mStatusBarWindowControllerStore.forDisplay(anyInt())) .thenReturn(mStatusBarWindowController); mGlobalSettings = new FakeGlobalSettings(); mSecureSettings = new FakeSettings(); mInteractor = mKosmos.getGlobalActionsInteractor(); Loading Loading @@ -198,7 +202,9 @@ public class GlobalActionsDialogLiteTest extends SysuiTestCase { mDialogTransitionAnimator, mSelectedUserInteractor, mLogoutInteractor, mInteractor); mInteractor, () -> new FakeDisplayWindowPropertiesRepository(mContext) ); mGlobalActionsDialogLite.setZeroDialogPressDelayForTesting(); ColorExtractor.GradientColors backdropColors = new ColorExtractor.GradientColors(); Loading Loading @@ -609,13 +615,15 @@ public class GlobalActionsDialogLiteTest extends SysuiTestCase { // When entering power menu from lockscreen, with smart lock enabled when(mKeyguardUpdateMonitor.getUserHasTrust(anyInt())).thenReturn(true); mGlobalActionsDialogLite.showOrHideDialog(true, true, null /* view */); mGlobalActionsDialogLite.showOrHideDialog(true, true, null /* view */, Display.DEFAULT_DISPLAY); // Then smart lock will be disabled verify(mLockPatternUtils).requireCredentialEntry(eq(expectedUser)); // hide dialog again mGlobalActionsDialogLite.showOrHideDialog(true, true, null /* view */); mGlobalActionsDialogLite.showOrHideDialog(true, true, null /* view */, Display.DEFAULT_DISPLAY); } @Test Loading Loading @@ -729,13 +737,13 @@ public class GlobalActionsDialogLiteTest extends SysuiTestCase { doReturn(actions).when(mGlobalActionsDialogLite).getDefaultActions(); // Show dialog with keyguard showing mGlobalActionsDialogLite.showOrHideDialog(true, true, null); mGlobalActionsDialogLite.showOrHideDialog(true, true, null, Display.DEFAULT_DISPLAY); assertOneItemOfType(mGlobalActionsDialogLite.mItems, GlobalActionsDialogLite.SystemUpdateAction.class); // Hide dialog mGlobalActionsDialogLite.showOrHideDialog(true, true, null); mGlobalActionsDialogLite.showOrHideDialog(true, true, null, Display.DEFAULT_DISPLAY); } @Test Loading @@ -754,13 +762,13 @@ public class GlobalActionsDialogLiteTest extends SysuiTestCase { doReturn(actions).when(mGlobalActionsDialogLite).getDefaultActions(); // Show dialog with keyguard showing mGlobalActionsDialogLite.showOrHideDialog(false, false, null); mGlobalActionsDialogLite.showOrHideDialog(false, false, null, Display.DEFAULT_DISPLAY); assertNoItemsOfType(mGlobalActionsDialogLite.mItems, GlobalActionsDialogLite.SystemUpdateAction.class); // Hide dialog mGlobalActionsDialogLite.showOrHideDialog(false, false, null); mGlobalActionsDialogLite.showOrHideDialog(false, false, null, Display.DEFAULT_DISPLAY); } private UserInfo mockCurrentUser(int flags) { Loading Loading
packages/SystemUI/multivalentTests/src/com/android/systemui/qs/footer/domain/interactor/FooterActionsInteractorTest.kt +7 −5 Original line number Diff line number Diff line Loading @@ -35,9 +35,7 @@ import com.android.systemui.qs.footer.FooterActionsTestUtils import com.android.systemui.statusbar.policy.DeviceProvisionedController import com.android.systemui.truth.correspondence.FakeUiEvent import com.android.systemui.truth.correspondence.LogMaker import com.android.systemui.util.mockito.any import com.android.systemui.util.mockito.argumentCaptor import com.android.systemui.util.mockito.eq import com.android.systemui.util.mockito.mock import com.android.systemui.util.mockito.nullable import com.google.common.truth.Truth.assertThat Loading @@ -45,8 +43,11 @@ import kotlinx.coroutines.test.TestCoroutineScheduler import org.junit.Before import org.junit.Test import org.junit.runner.RunWith import org.mockito.ArgumentMatchers.anyInt import org.mockito.Mockito.verify import org.mockito.Mockito.`when` as whenever import org.mockito.kotlin.any import org.mockito.kotlin.eq @SmallTest @RunWith(AndroidJUnit4::class) Loading Loading @@ -92,9 +93,10 @@ class FooterActionsInteractorTest : SysuiTestCase() { // Dialog is shown. verify(globalActionsDialogLite) .showOrHideDialog( /* keyguardShowing= */ false, /* isDeviceProvisioned= */ true, expandable, /* keyguardShowing= */ eq(false), /* isDeviceProvisioned= */ eq(true), eq(expandable), anyInt(), ) } Loading
packages/SystemUI/src/com/android/systemui/globalactions/GlobalActionsDialogLite.java +47 −7 Original line number Diff line number Diff line Loading @@ -20,6 +20,7 @@ import static android.view.ViewGroup.LayoutParams.MATCH_PARENT; import static android.view.ViewGroup.LayoutParams.WRAP_CONTENT; import static android.view.WindowManager.LayoutParams.FLAG_ALT_FOCUSABLE_IM; import static android.view.WindowManager.LayoutParams.LAYOUT_IN_DISPLAY_CUTOUT_MODE_ALWAYS; import static android.view.WindowManager.LayoutParams.TYPE_STATUS_BAR_SUB_PANEL; import static android.view.WindowManager.ScreenshotSource.SCREENSHOT_GLOBAL_ACTIONS; import static android.view.WindowManagerPolicyConstants.NAV_BAR_MODE_2BUTTON; Loading Loading @@ -120,6 +121,8 @@ import com.android.systemui.broadcast.BroadcastDispatcher; import com.android.systemui.colorextraction.SysuiColorExtractor; import com.android.systemui.dagger.qualifiers.Background; import com.android.systemui.dagger.qualifiers.Main; import com.android.systemui.display.data.repository.DisplayWindowPropertiesRepository; import com.android.systemui.display.shared.model.DisplayWindowProperties; import com.android.systemui.globalactions.domain.interactor.GlobalActionsInteractor; import com.android.systemui.plugins.ActivityStarter; import com.android.systemui.plugins.GlobalActions.GlobalActionsManager; Loading @@ -127,6 +130,7 @@ import com.android.systemui.plugins.GlobalActionsPanelPlugin; import com.android.systemui.scrim.ScrimDrawable; import com.android.systemui.settings.UserTracker; import com.android.systemui.shade.ShadeController; import com.android.systemui.shade.shared.flag.ShadeWindowGoesAround; import com.android.systemui.statusbar.NotificationShadeWindowController; import com.android.systemui.statusbar.VibratorHelper; import com.android.systemui.statusbar.phone.LightBarController; Loading @@ -149,6 +153,8 @@ import java.util.concurrent.Executor; import javax.inject.Inject; import dagger.Lazy; /** * Helper to show the global actions dialog. Each item is an {@link Action} that may show depending * on whether the keyguard is showing, and whether the device is provisioned. Loading Loading @@ -194,6 +200,8 @@ public class GlobalActionsDialogLite implements DialogInterface.OnDismissListene // See NotificationManagerService.LONG_DELAY private static final int TOAST_VISIBLE_TIME = 3500; private static final int DIALOG_WINDOW_TYPE = TYPE_STATUS_BAR_SUB_PANEL; private final Context mContext; private final GlobalActionsManager mWindowManagerFuncs; private final AudioManager mAudioManager; Loading Loading @@ -261,6 +269,7 @@ public class GlobalActionsDialogLite implements DialogInterface.OnDismissListene private final DialogTransitionAnimator mDialogTransitionAnimator; private final UserLogoutInteractor mLogoutInteractor; private final GlobalActionsInteractor mInteractor; private final Lazy<DisplayWindowPropertiesRepository> mDisplayWindowPropertiesRepositoryLazy; @VisibleForTesting public enum GlobalActionsEvent implements UiEventLogger.UiEventEnum { Loading Loading @@ -376,7 +385,8 @@ public class GlobalActionsDialogLite implements DialogInterface.OnDismissListene DialogTransitionAnimator dialogTransitionAnimator, SelectedUserInteractor selectedUserInteractor, UserLogoutInteractor logoutInteractor, GlobalActionsInteractor interactor) { GlobalActionsInteractor interactor, Lazy<DisplayWindowPropertiesRepository> displayWindowPropertiesRepository) { mContext = context; mWindowManagerFuncs = windowManagerFuncs; mAudioManager = audioManager; Loading Loading @@ -413,6 +423,7 @@ public class GlobalActionsDialogLite implements DialogInterface.OnDismissListene mSelectedUserInteractor = selectedUserInteractor; mLogoutInteractor = logoutInteractor; mInteractor = interactor; mDisplayWindowPropertiesRepositoryLazy = displayWindowPropertiesRepository; // receive broadcasts IntentFilter filter = new IntentFilter(); Loading Loading @@ -473,9 +484,10 @@ public class GlobalActionsDialogLite implements DialogInterface.OnDismissListene * @param isDeviceProvisioned True if device is provisioned * @param expandable The expandable from which we should animate the dialog when * showing it * @param displayId Display that should show the dialog */ public void showOrHideDialog(boolean keyguardShowing, boolean isDeviceProvisioned, @Nullable Expandable expandable) { @Nullable Expandable expandable, int displayId) { mKeyguardShowing = keyguardShowing; mDeviceProvisioned = isDeviceProvisioned; if (mDialog != null && mDialog.isShowing()) { Loading @@ -487,7 +499,7 @@ public class GlobalActionsDialogLite implements DialogInterface.OnDismissListene mDialog.dismiss(); mDialog = null; } else { handleShow(expandable); handleShow(expandable, displayId); } } Loading @@ -507,8 +519,8 @@ public class GlobalActionsDialogLite implements DialogInterface.OnDismissListene mHandler.sendEmptyMessage(MESSAGE_DISMISS); } protected void handleShow(@Nullable Expandable expandable) { mDialog = createDialog(); protected void handleShow(@Nullable Expandable expandable, int displayId) { mDialog = createDialog(displayId); prepareDialog(); WindowManager.LayoutParams attrs = mDialog.getWindow().getAttributes(); Loading Loading @@ -686,16 +698,44 @@ public class GlobalActionsDialogLite implements DialogInterface.OnDismissListene mPowerAdapter = new MyPowerOptionsAdapter(); } /** * Create the global actions dialog. * * @return A new dialog. */ protected ActionsDialogLite createDialog() { return createDialog(mContext.getDisplayId()); } private Context getContextForDisplay(int displayId) { if (!ShadeWindowGoesAround.isEnabled()) { Log.e(TAG, "Asked for the displayId=" + displayId + " context but returning default display one as ShadeWindowGoesAround flag " + "is disabled."); return mContext; } try { DisplayWindowProperties properties = mDisplayWindowPropertiesRepositoryLazy.get().get( displayId, DIALOG_WINDOW_TYPE); return properties.getContext(); } catch (Exception e) { Log.e(TAG, "Couldn't get context for displayId=" + displayId); return mContext; } } /** * Create the global actions dialog with a specific context. * * @return A new dialog. */ protected ActionsDialogLite createDialog(int displayId) { final Context context = getContextForDisplay(displayId); initDialogItems(); ActionsDialogLite dialog = new ActionsDialogLite( mContext, context, com.android.systemui.res.R.style.Theme_SystemUI_Dialog_GlobalActionsLite, mAdapter, mOverflowAdapter, Loading @@ -704,7 +744,7 @@ public class GlobalActionsDialogLite implements DialogInterface.OnDismissListene mLightBarController, mKeyguardStateController, mNotificationShadeWindowController, mStatusBarWindowControllerStore.getDefaultDisplay(), mStatusBarWindowControllerStore.forDisplay(context.getDisplayId()), this::onRefresh, mKeyguardShowing, mPowerAdapter, Loading
packages/SystemUI/src/com/android/systemui/globalactions/GlobalActionsImpl.java +2 −1 Original line number Diff line number Diff line Loading @@ -63,7 +63,8 @@ public class GlobalActionsImpl implements GlobalActions, CommandQueue.Callbacks public void showGlobalActions(GlobalActionsManager manager) { if (mDisabled) return; mGlobalActionsDialog.showOrHideDialog(mKeyguardStateController.isShowing(), mDeviceProvisionedController.isDeviceProvisioned(), null /* view */); mDeviceProvisionedController.isDeviceProvisioned(), null /* view */, mContext.getDisplayId()); } @Override Loading
packages/SystemUI/src/com/android/systemui/qs/footer/domain/interactor/FooterActionsInteractor.kt +3 −0 Original line number Diff line number Diff line Loading @@ -40,6 +40,7 @@ import com.android.systemui.qs.footer.data.model.UserSwitcherStatusModel import com.android.systemui.qs.footer.data.repository.ForegroundServicesRepository import com.android.systemui.qs.footer.domain.model.SecurityButtonConfig import com.android.systemui.security.data.repository.SecurityRepository import com.android.systemui.shade.ShadeDisplayAware import com.android.systemui.statusbar.policy.DeviceProvisionedController import com.android.systemui.user.data.repository.UserSwitcherRepository import com.android.systemui.user.domain.interactor.UserSwitcherInteractor Loading Loading @@ -108,6 +109,7 @@ constructor( userSwitcherRepository: UserSwitcherRepository, broadcastDispatcher: BroadcastDispatcher, @Background bgDispatcher: CoroutineDispatcher, @ShadeDisplayAware private val context: Context, ) : FooterActionsInteractor { override val securityButtonConfig: Flow<SecurityButtonConfig?> = securityRepository.security.map { security -> Loading Loading @@ -157,6 +159,7 @@ constructor( /* keyguardShowing= */ false, /* isDeviceProvisioned= */ true, expandable, context.displayId, ) } Loading
packages/SystemUI/tests/src/com/android/systemui/globalactions/GlobalActionsDialogLiteTest.java +15 −7 Original line number Diff line number Diff line Loading @@ -41,6 +41,7 @@ import android.os.Handler; import android.os.UserManager; import android.provider.Settings; import android.testing.TestableLooper; import android.view.Display; import android.view.GestureDetector; import android.view.IWindowManager; import android.view.KeyEvent; Loading @@ -63,6 +64,7 @@ import com.android.systemui.SysuiTestCase; import com.android.systemui.animation.DialogTransitionAnimator; import com.android.systemui.broadcast.BroadcastDispatcher; import com.android.systemui.colorextraction.SysuiColorExtractor; import com.android.systemui.display.data.repository.FakeDisplayWindowPropertiesRepository; import com.android.systemui.globalactions.domain.interactor.GlobalActionsInteractor; import com.android.systemui.kosmos.KosmosJavaAdapter; import com.android.systemui.plugins.ActivityStarter; Loading Loading @@ -159,6 +161,8 @@ public class GlobalActionsDialogLiteTest extends SysuiTestCase { getContext().getResources().getConfiguration()); when(mStatusBarWindowControllerStore.getDefaultDisplay()) .thenReturn(mStatusBarWindowController); when(mStatusBarWindowControllerStore.forDisplay(anyInt())) .thenReturn(mStatusBarWindowController); mGlobalSettings = new FakeGlobalSettings(); mSecureSettings = new FakeSettings(); mInteractor = mKosmos.getGlobalActionsInteractor(); Loading Loading @@ -198,7 +202,9 @@ public class GlobalActionsDialogLiteTest extends SysuiTestCase { mDialogTransitionAnimator, mSelectedUserInteractor, mLogoutInteractor, mInteractor); mInteractor, () -> new FakeDisplayWindowPropertiesRepository(mContext) ); mGlobalActionsDialogLite.setZeroDialogPressDelayForTesting(); ColorExtractor.GradientColors backdropColors = new ColorExtractor.GradientColors(); Loading Loading @@ -609,13 +615,15 @@ public class GlobalActionsDialogLiteTest extends SysuiTestCase { // When entering power menu from lockscreen, with smart lock enabled when(mKeyguardUpdateMonitor.getUserHasTrust(anyInt())).thenReturn(true); mGlobalActionsDialogLite.showOrHideDialog(true, true, null /* view */); mGlobalActionsDialogLite.showOrHideDialog(true, true, null /* view */, Display.DEFAULT_DISPLAY); // Then smart lock will be disabled verify(mLockPatternUtils).requireCredentialEntry(eq(expectedUser)); // hide dialog again mGlobalActionsDialogLite.showOrHideDialog(true, true, null /* view */); mGlobalActionsDialogLite.showOrHideDialog(true, true, null /* view */, Display.DEFAULT_DISPLAY); } @Test Loading Loading @@ -729,13 +737,13 @@ public class GlobalActionsDialogLiteTest extends SysuiTestCase { doReturn(actions).when(mGlobalActionsDialogLite).getDefaultActions(); // Show dialog with keyguard showing mGlobalActionsDialogLite.showOrHideDialog(true, true, null); mGlobalActionsDialogLite.showOrHideDialog(true, true, null, Display.DEFAULT_DISPLAY); assertOneItemOfType(mGlobalActionsDialogLite.mItems, GlobalActionsDialogLite.SystemUpdateAction.class); // Hide dialog mGlobalActionsDialogLite.showOrHideDialog(true, true, null); mGlobalActionsDialogLite.showOrHideDialog(true, true, null, Display.DEFAULT_DISPLAY); } @Test Loading @@ -754,13 +762,13 @@ public class GlobalActionsDialogLiteTest extends SysuiTestCase { doReturn(actions).when(mGlobalActionsDialogLite).getDefaultActions(); // Show dialog with keyguard showing mGlobalActionsDialogLite.showOrHideDialog(false, false, null); mGlobalActionsDialogLite.showOrHideDialog(false, false, null, Display.DEFAULT_DISPLAY); assertNoItemsOfType(mGlobalActionsDialogLite.mItems, GlobalActionsDialogLite.SystemUpdateAction.class); // Hide dialog mGlobalActionsDialogLite.showOrHideDialog(false, false, null); mGlobalActionsDialogLite.showOrHideDialog(false, false, null, Display.DEFAULT_DISPLAY); } private UserInfo mockCurrentUser(int flags) { Loading