From b039ff61ea965c0e74152b7e0287de7b6b3b8b5e Mon Sep 17 00:00:00 2001 From: Peter Kalauskas Date: Fri, 27 Aug 2021 15:47:02 -0700 Subject: [PATCH] Move sysui QS user detail config to feature flag This replaces config_keyguard_user_switch_opens_qs_details in config.xml with flag_lockscreen_qs_user_detail_shortcut in flags.xml Replacing the config with a feature flag allows the UX to be toggled on and off using adb. Bug: 194237078 Test: adb shell setprop \ persist.systemui.flag_lockscreen_qs_user_detail_shortcut 1 Change-Id: I99d224137c23a41de0bda1c40ff5622e267347b2 --- packages/SystemUI/res/values/config.xml | 5 ----- packages/SystemUI/res/values/flags.xml | 7 ++++++- .../src/com/android/systemui/flags/FeatureFlags.java | 4 ++++ .../statusbar/phone/NotificationPanelViewController.java | 8 ++++++-- .../statusbar/phone/NotificationPanelViewTest.java | 4 ++++ 5 files changed, 20 insertions(+), 8 deletions(-) diff --git a/packages/SystemUI/res/values/config.xml b/packages/SystemUI/res/values/config.xml index 1d30273762e73..e30999474dc82 100644 --- a/packages/SystemUI/res/values/config.xml +++ b/packages/SystemUI/res/values/config.xml @@ -310,11 +310,6 @@ false - - false - com.android.systemui.SystemUIFactory diff --git a/packages/SystemUI/res/values/flags.xml b/packages/SystemUI/res/values/flags.xml index c2b87a55f3667..a9cc6ac47f69e 100644 --- a/packages/SystemUI/res/values/flags.xml +++ b/packages/SystemUI/res/values/flags.xml @@ -34,9 +34,14 @@ true + the swipe. --> true + + false + false diff --git a/packages/SystemUI/src/com/android/systemui/flags/FeatureFlags.java b/packages/SystemUI/src/com/android/systemui/flags/FeatureFlags.java index e51f90f9c73b9..1a6d6ae1c286d 100644 --- a/packages/SystemUI/src/com/android/systemui/flags/FeatureFlags.java +++ b/packages/SystemUI/src/com/android/systemui/flags/FeatureFlags.java @@ -173,6 +173,10 @@ public class FeatureFlags { return mFlagReader.isEnabled(R.bool.flag_new_unlock_swipe_animation); } + public boolean isKeyguardQsUserDetailsShortcutEnabled() { + return mFlagReader.isEnabled(R.bool.flag_lockscreen_qs_user_detail_shortcut); + } + public boolean isSmartSpaceSharedElementTransitionEnabled() { return mFlagReader.isEnabled(R.bool.flag_smartspace_shared_element_transition); } diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationPanelViewController.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationPanelViewController.java index f613096e979e6..00d6aed89136b 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationPanelViewController.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationPanelViewController.java @@ -113,6 +113,7 @@ import com.android.systemui.controls.dagger.ControlsComponent; import com.android.systemui.dagger.qualifiers.DisplayId; import com.android.systemui.dagger.qualifiers.Main; import com.android.systemui.doze.DozeLog; +import com.android.systemui.flags.FeatureFlags; import com.android.systemui.fragments.FragmentHostManager.FragmentListener; import com.android.systemui.fragments.FragmentService; import com.android.systemui.idle.IdleHostViewController; @@ -279,6 +280,7 @@ public class NotificationPanelViewController extends PanelViewController { new AnimationProperties().setDuration(StackStateAnimator.ANIMATION_DURATION_STANDARD); private final LayoutInflater mLayoutInflater; + private final FeatureFlags mFeatureFlags; private final PowerManager mPowerManager; private final AccessibilityManager mAccessibilityManager; private final NotificationWakeUpCoordinator mWakeUpCoordinator; @@ -712,6 +714,7 @@ public class NotificationPanelViewController extends PanelViewController { @Main Resources resources, @Main Handler handler, LayoutInflater layoutInflater, + FeatureFlags featureFlags, NotificationWakeUpCoordinator coordinator, PulseExpansionHandler pulseExpansionHandler, DynamicPrivacyController dynamicPrivacyController, KeyguardBypassController bypassController, FalsingManager falsingManager, @@ -810,6 +813,7 @@ public class NotificationPanelViewController extends PanelViewController { mView.setWillNotDraw(!DEBUG); mSplitShadeHeaderController = splitShadeHeaderController; mLayoutInflater = layoutInflater; + mFeatureFlags = featureFlags; mFalsingManager = falsingManager; mFalsingCollector = falsingCollector; mPowerManager = powerManager; @@ -4049,8 +4053,8 @@ public class NotificationPanelViewController extends PanelViewController { mKeyguardUserSwitcherEnabled = mResources.getBoolean( com.android.internal.R.bool.config_keyguardUserSwitcher); mKeyguardQsUserSwitchEnabled = - mKeyguardUserSwitcherEnabled && mResources.getBoolean( - R.bool.config_keyguard_user_switch_opens_qs_details); + mKeyguardUserSwitcherEnabled + && mFeatureFlags.isKeyguardQsUserDetailsShortcutEnabled(); } private void registerSettingsChangeListener() { diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/NotificationPanelViewTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/NotificationPanelViewTest.java index dc220362c086d..c81c5ba6b26f8 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/NotificationPanelViewTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/NotificationPanelViewTest.java @@ -95,6 +95,7 @@ import com.android.systemui.communal.CommunalStateController; import com.android.systemui.communal.dagger.CommunalViewComponent; import com.android.systemui.controls.dagger.ControlsComponent; import com.android.systemui.doze.DozeLog; +import com.android.systemui.flags.FeatureFlags; import com.android.systemui.fragments.FragmentHostManager; import com.android.systemui.fragments.FragmentService; import com.android.systemui.idle.IdleHostViewController; @@ -199,6 +200,8 @@ public class NotificationPanelViewTest extends SysuiTestCase { @Mock private LayoutInflater mLayoutInflater; @Mock + private FeatureFlags mFeatureFlags; + @Mock private DynamicPrivacyController mDynamicPrivacyController; @Mock private ShadeController mShadeController; @@ -464,6 +467,7 @@ public class NotificationPanelViewTest extends SysuiTestCase { mResources, new Handler(Looper.getMainLooper()), mLayoutInflater, + mFeatureFlags, coordinator, expansionHandler, mDynamicPrivacyController, mKeyguardBypassController, mFalsingManager, new FalsingCollectorFake(), mNotificationLockscreenUserManager, mNotificationEntryManager,