From 6cca4f32e605cb22adb4b62ae2abac4038815cc9 Mon Sep 17 00:00:00 2001 From: Becca Hughes Date: Mon, 12 Feb 2024 23:29:27 +0000 Subject: [PATCH] Update "none selected" state to align with mocks: Mocks: https://screenshot.googleplex.com/BYsmSRcRL5dhjve Implementation: https://hsv.googleplex.com/4797150908121088 Change-Id: I47e8f784fa850da4271170d44b3eb770721c3e8b Test: on device & unit Bug: 322074376 --- res/values/dimens.xml | 4 ++ res/values/strings.xml | 2 + .../DefaultCombinedPreferenceController.java | 4 +- .../PrimaryProviderPreference.java | 46 +++++++++---------- .../PrimaryProviderPreferenceTest.java | 45 ++++-------------- 5 files changed, 37 insertions(+), 64 deletions(-) diff --git a/res/values/dimens.xml b/res/values/dimens.xml index 3e0b8d93381..4b96486be7b 100755 --- a/res/values/dimens.xml +++ b/res/values/dimens.xml @@ -473,4 +473,8 @@ 1000dp + + + 80dp + 24dp diff --git a/res/values/strings.xml b/res/values/strings.xml index 17569e0958c..836a27f0a5c 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -10802,6 +10802,8 @@ Change Open + + None selected diff --git a/src/com/android/settings/applications/credentials/DefaultCombinedPreferenceController.java b/src/com/android/settings/applications/credentials/DefaultCombinedPreferenceController.java index 49dd7cde221..032402fb157 100644 --- a/src/com/android/settings/applications/credentials/DefaultCombinedPreferenceController.java +++ b/src/com/android/settings/applications/credentials/DefaultCombinedPreferenceController.java @@ -114,7 +114,7 @@ public class DefaultCombinedPreferenceController extends DefaultAppPreferenceCon @Nullable CharSequence packageName, @Nullable CharSequence settingsActivity) { if (appName == null) { - preference.setTitle(R.string.app_list_preference_none); + preference.setTitle(R.string.credman_app_list_preference_none); } else { preference.setTitle(appName); } @@ -144,7 +144,7 @@ public class DefaultCombinedPreferenceController extends DefaultAppPreferenceCon // Hide the open button if there is no defined settings activity. primaryPref.setOpenButtonVisible(!TextUtils.isEmpty(settingsActivity)); - primaryPref.setButtonsVisible(appName != null); + primaryPref.setButtonsCompactMode(appName != null); } } diff --git a/src/com/android/settings/applications/credentials/PrimaryProviderPreference.java b/src/com/android/settings/applications/credentials/PrimaryProviderPreference.java index b8e2529dee7..84459e057ab 100644 --- a/src/com/android/settings/applications/credentials/PrimaryProviderPreference.java +++ b/src/com/android/settings/applications/credentials/PrimaryProviderPreference.java @@ -46,7 +46,7 @@ public class PrimaryProviderPreference extends GearPreference { private @Nullable View mButtonFrameView = null; private @Nullable View mGearView = null; private @Nullable Delegate mDelegate = null; - private boolean mButtonsVisible = false; + private boolean mButtonsCompactMode = false; private boolean mOpenButtonVisible = false; /** Called to send messages back to the parent controller. */ @@ -141,26 +141,7 @@ public class PrimaryProviderPreference extends GearPreference { }); mButtonFrameView = holder.findViewById(R.id.credman_button_frame); - mButtonFrameView.setVisibility(mButtonsVisible ? View.VISIBLE : View.GONE); - - // There is a special case where if the provider == none then we should - // hide the buttons and when the preference is tapped we can open the - // provider selection dialog. - setOnPreferenceClickListener( - new Preference.OnPreferenceClickListener() { - public boolean onPreferenceClick(@NonNull Preference preference) { - return handlePreferenceClickNewSettingsUi(); - } - }); - } - - private boolean handlePreferenceClickNewSettingsUi() { - if (mDelegate != null && !mButtonsVisible) { - mDelegate.onChangeButtonClicked(); - return true; - } - - return false; + updateButtonFramePadding(); } public void setOpenButtonVisible(boolean isVisible) { @@ -172,12 +153,27 @@ public class PrimaryProviderPreference extends GearPreference { mOpenButtonVisible = isVisible; } - public void setButtonsVisible(boolean isVisible) { - if (mButtonFrameView != null) { - setVisibility(mButtonFrameView, isVisible); + private void updateButtonFramePadding() { + if (mButtonFrameView == null) { + return; } - mButtonsVisible = isVisible; + int paddingLeft = mButtonsCompactMode ? + getContext().getResources().getDimensionPixelSize( + R.dimen.credman_primary_provider_pref_left_padding) : + getContext().getResources().getDimensionPixelSize( + R.dimen.credman_primary_provider_pref_left_padding_compact); + + mButtonFrameView.setPadding( + paddingLeft, + mButtonFrameView.getPaddingTop(), + mButtonFrameView.getPaddingRight(), + mButtonFrameView.getPaddingBottom()); + } + + public void setButtonsCompactMode(boolean isCompactMode) { + mButtonsCompactMode = isCompactMode; + updateButtonFramePadding(); } public void setDelegate(@NonNull Delegate delegate) { diff --git a/tests/unit/src/com/android/settings/applications/credentials/PrimaryProviderPreferenceTest.java b/tests/unit/src/com/android/settings/applications/credentials/PrimaryProviderPreferenceTest.java index 51a1fc41e30..9ea16bba1f0 100644 --- a/tests/unit/src/com/android/settings/applications/credentials/PrimaryProviderPreferenceTest.java +++ b/tests/unit/src/com/android/settings/applications/credentials/PrimaryProviderPreferenceTest.java @@ -114,50 +114,21 @@ public class PrimaryProviderPreferenceTest { } @Test - public void ensureButtonsClicksCallDelegate_newDesign_buttonsHidden() { + public void ensureButtonsClicksCallDelegate_newDesign_buttonsCompactMode() { if (!PrimaryProviderPreference.shouldUseNewSettingsUi()) { return; } PrimaryProviderPreference ppp = createTestPreferenceWithNewLayout(); + int initialPaddingLeft = ppp.getButtonFrameView().getPaddingLeft(); - // Test that the buttons are visible. - assertThat(ppp.getButtonFrameView()).isNotNull(); - assertThat(ppp.getButtonFrameView().getVisibility()).isEqualTo(View.GONE); - assertThat(mReceivedChangeButtonClicked).isFalse(); + // If we show the buttons the left padding should be updated. + ppp.setButtonsCompactMode(true); + assertThat(ppp.getButtonFrameView().getPaddingLeft()).isNotEqualTo(initialPaddingLeft); - // If we show the buttons the visiblility should be updated. - ppp.setButtonsVisible(true); - assertThat(ppp.getButtonFrameView().getVisibility()).isEqualTo(View.VISIBLE); - - // If we hide the buttons the visibility should be updated. - ppp.setButtonsVisible(false); - assertThat(ppp.getButtonFrameView().getVisibility()).isEqualTo(View.GONE); - } - - @Test - public void ensureButtonsClicksCallDelegate_oldDesign() { - if (PrimaryProviderPreference.shouldUseNewSettingsUi()) { - return; - } - - PrimaryProviderPreference ppp = createTestPreference("preference_widget_gear"); - - // Test that clicking the preference results in the delegate being - // called. - assertThat(mReceivedOpenButtonClicked).isFalse(); - ppp.getOnPreferenceClickListener().onPreferenceClick(ppp); - assertThat(mReceivedOpenButtonClicked).isTrue(); - - // Test that the gear button is present and visible. - assertThat(ppp.getGearView()).isNotNull(); - assertThat(ppp.getGearView().getVisibility()).isEqualTo(View.VISIBLE); - - // Test that clicking the gear button results in the delegate being - // called. - assertThat(mReceivedChangeButtonClicked).isFalse(); - ppp.getGearView().performClick(); - assertThat(mReceivedChangeButtonClicked).isTrue(); + // If we hide the buttons the left padding should be updated. + ppp.setButtonsCompactMode(false); + assertThat(ppp.getButtonFrameView().getPaddingLeft()).isEqualTo(initialPaddingLeft); } private PrimaryProviderPreference createTestPreferenceWithNewLayout() {