diff --git a/packages/SystemUI/src/com/android/systemui/qs/QSFooter.java b/packages/SystemUI/src/com/android/systemui/qs/QSFooter.java index 2202b5865defd..2fc933d24a11c 100644 --- a/packages/SystemUI/src/com/android/systemui/qs/QSFooter.java +++ b/packages/SystemUI/src/com/android/systemui/qs/QSFooter.java @@ -49,6 +49,7 @@ import com.android.systemui.qs.TouchAnimator.Builder; import com.android.systemui.statusbar.phone.ExpandableIndicator; import com.android.systemui.statusbar.phone.MultiUserSwitch; import com.android.systemui.statusbar.phone.SettingsButton; +import com.android.systemui.statusbar.policy.DeviceProvisionedController; import com.android.systemui.statusbar.policy.NetworkController; import com.android.systemui.statusbar.policy.NetworkController.EmergencyListener; import com.android.systemui.statusbar.policy.NetworkController.SignalCallback; @@ -336,6 +337,11 @@ public class QSFooter extends LinearLayout implements @Override public void onClick(View v) { if (v == mSettingsButton) { + if (!Dependency.get(DeviceProvisionedController.class).isCurrentUserSetup()) { + // If user isn't setup just unlock the device and dump them back at SUW. + mActivityStarter.postQSRunnableDismissingKeyguard(() -> { }); + return; + } MetricsLogger.action(mContext, mExpanded ? MetricsProto.MetricsEvent.ACTION_QS_EXPANDED_SETTINGS_LAUNCH : MetricsProto.MetricsEvent.ACTION_QS_COLLAPSED_SETTINGS_LAUNCH); diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/policy/DeviceProvisionedController.java b/packages/SystemUI/src/com/android/systemui/statusbar/policy/DeviceProvisionedController.java index 21f9a79fda068..cae76b4925275 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/policy/DeviceProvisionedController.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/policy/DeviceProvisionedController.java @@ -24,6 +24,10 @@ public interface DeviceProvisionedController extends CallbackController { + mFooter = (QSFooter) LayoutInflater.from(mContext).inflate(R.layout.qs_footer, null); + }); + } + + @Test + public void testSettings_UserNotSetup() { + View settingsButton = mFooter.findViewById(id.settings_button); + when(mDeviceProvisionedController.isCurrentUserSetup()).thenReturn(false); + + mFooter.onClick(settingsButton); + // Verify Settings wasn't launched. + verify(mActivityStarter, never()).startActivity(any(), anyBoolean()); + } +}