From b152c2d34f84ffe8ed6293dfdd3f5dd87e2a0bd9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mat=C3=ADas=20Hern=C3=A1ndez?= Date: Thu, 7 Nov 2024 18:52:59 +0100 Subject: [PATCH] Fix stray ProfileSelectDialog when only one profile exists Fixes: 377829434 Test: atest ZenModePrioritySendersPreferenceControllerTest Flag: android.app.modes_ui Change-Id: Ia5f667fd937107af98dfb3a073cadeb935ff8a8a --- ...enModePrioritySendersPreferenceController.java | 1 + ...dePrioritySendersPreferenceControllerTest.java | 15 +++++++++++++++ 2 files changed, 16 insertions(+) diff --git a/src/com/android/settings/notification/modes/ZenModePrioritySendersPreferenceController.java b/src/com/android/settings/notification/modes/ZenModePrioritySendersPreferenceController.java index 2a7ec903bb7..4dfb242c239 100644 --- a/src/com/android/settings/notification/modes/ZenModePrioritySendersPreferenceController.java +++ b/src/com/android/settings/notification/modes/ZenModePrioritySendersPreferenceController.java @@ -299,6 +299,7 @@ class ZenModePrioritySendersPreferenceController List userProfiles = mUserManager.getEnabledProfiles(); if (userProfiles.size() <= 1) { mContext.startActivity(intent); + return; } mProfileSelectDialog = ProfileSelectDialog.createDialog(mContext, userProfiles, diff --git a/tests/robotests/src/com/android/settings/notification/modes/ZenModePrioritySendersPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/modes/ZenModePrioritySendersPreferenceControllerTest.java index 486a880588a..65aede62294 100644 --- a/tests/robotests/src/com/android/settings/notification/modes/ZenModePrioritySendersPreferenceControllerTest.java +++ b/tests/robotests/src/com/android/settings/notification/modes/ZenModePrioritySendersPreferenceControllerTest.java @@ -1545,6 +1545,21 @@ public final class ZenModePrioritySendersPreferenceControllerTest { assertThat(nextActivity.getAction()).isEqualTo(Intent.ACTION_MAIN); } + @Test + public void contactsSettingsClick_singleProfile_opensActivityWithoutDialog() { + String contactsPackage = mContext.getString(R.string.config_contacts_package_name); + setUpContactsApp(contactsPackage, /* withPreciseIntents= */ true); + + mCallsController.displayPreference(mPreferenceScreen); + mCallsController.updateZenMode(mCallsPrefCategory, TestModeBuilder.EXAMPLE); + SelectorWithWidgetPreference contactsPref = getBoundSelectorPreference(KEY_CONTACTS); + + contactsPref.getExtraWidget().performClick(); + + assertThat(ShadowDialog.getLatestDialog()).isNull(); + assertThat(shadowOf(mActivity).getNextStartedActivity()).isNotNull(); + } + @Test public void contactsSettingsClick_multipleProfiles_showsProfileChooserDialog() { String contactsPackage = mContext.getString(R.string.config_contacts_package_name);