From c2d0b25753194bd41c66f79a6ed41626875e1895 Mon Sep 17 00:00:00 2001 From: Roy Chou Date: Mon, 4 Nov 2024 16:00:16 +0000 Subject: [PATCH] feat(brightness suw): adjust brightness toggles UI and remove autobrightness standalone page Based on the UX alignment in doc and figma, we remove the autobrightness detailed page to make the consistency with other Vision settings, and update the brightness preference icons and summaries. Bug: 377289685 Flag: com.android.settings.accessibility.add_brightness_settings_in_suw Test: manually Change-Id: If4038de07dec7eeb38d3c057affba737849e23c9 --- res/drawable/ic_brightness_auto.xml | 25 ---- res/drawable/ic_brightness_medium.xml | 25 ---- res/drawable/ic_suw_brightness_auto.xml | 13 +- res/drawable/ic_suw_brightness_level.xml | 13 +- res/values/strings.xml | 4 - ...ccessibility_settings_for_setup_wizard.xml | 3 +- ...tnessPreferenceFragmentForSetupWizard.java | 98 --------------- .../core/gateway/SettingsGateway.java | 2 - ...essPreferenceControllerForSetupWizard.java | 5 + ...sPreferenceFragmentForSetupWizardTest.java | 119 ------------------ 10 files changed, 28 insertions(+), 279 deletions(-) delete mode 100644 res/drawable/ic_brightness_auto.xml delete mode 100644 res/drawable/ic_brightness_medium.xml delete mode 100644 src/com/android/settings/accessibility/AutoBrightnessPreferenceFragmentForSetupWizard.java delete mode 100644 tests/robotests/src/com/android/settings/accessibility/AutoBrightnessPreferenceFragmentForSetupWizardTest.java diff --git a/res/drawable/ic_brightness_auto.xml b/res/drawable/ic_brightness_auto.xml deleted file mode 100644 index 7ace52b5f63..00000000000 --- a/res/drawable/ic_brightness_auto.xml +++ /dev/null @@ -1,25 +0,0 @@ - - - - - diff --git a/res/drawable/ic_brightness_medium.xml b/res/drawable/ic_brightness_medium.xml deleted file mode 100644 index 3e778857127..00000000000 --- a/res/drawable/ic_brightness_medium.xml +++ /dev/null @@ -1,25 +0,0 @@ - - - - - \ No newline at end of file diff --git a/res/drawable/ic_suw_brightness_auto.xml b/res/drawable/ic_suw_brightness_auto.xml index a4221c540d1..93f17f54ac6 100644 --- a/res/drawable/ic_suw_brightness_auto.xml +++ b/res/drawable/ic_suw_brightness_auto.xml @@ -21,6 +21,15 @@ android:height="@dimen/accessibility_icon_size" android:color="@color/accessibility_feature_background"/> - + + + + + \ No newline at end of file diff --git a/res/drawable/ic_suw_brightness_level.xml b/res/drawable/ic_suw_brightness_level.xml index 57bd1883849..4ed6374fbe2 100644 --- a/res/drawable/ic_suw_brightness_level.xml +++ b/res/drawable/ic_suw_brightness_level.xml @@ -21,6 +21,15 @@ android:height="@dimen/accessibility_icon_size" android:color="@color/accessibility_feature_background"/> - + + + + + \ No newline at end of file diff --git a/res/values/strings.xml b/res/values/strings.xml index b62df6081ee..c4a9b010245 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -2850,16 +2850,12 @@ Brightness level Adaptive brightness - - - About adaptive brightness Your screen brightness will automatically adjust to your environment and activities. You can move the slider manually to help adaptive brightness learn your preferences. On Off - Display white balance diff --git a/res/xml/accessibility_settings_for_setup_wizard.xml b/res/xml/accessibility_settings_for_setup_wizard.xml index 25b8a5acf69..250954353f5 100644 --- a/res/xml/accessibility_settings_for_setup_wizard.xml +++ b/res/xml/accessibility_settings_for_setup_wizard.xml @@ -37,11 +37,10 @@ settings:useAdminDisabledSummary="true" settings:userRestriction="no_config_brightness"/> - diff --git a/src/com/android/settings/accessibility/AutoBrightnessPreferenceFragmentForSetupWizard.java b/src/com/android/settings/accessibility/AutoBrightnessPreferenceFragmentForSetupWizard.java deleted file mode 100644 index 19db2668df9..00000000000 --- a/src/com/android/settings/accessibility/AutoBrightnessPreferenceFragmentForSetupWizard.java +++ /dev/null @@ -1,98 +0,0 @@ -/* - * Copyright (C) 2024 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.android.settings.accessibility; - -import static android.app.Activity.RESULT_CANCELED; - -import android.app.settings.SettingsEnums; -import android.graphics.drawable.Drawable; -import android.os.Bundle; -import android.view.LayoutInflater; -import android.view.View; -import android.view.ViewGroup; - -import androidx.annotation.NonNull; -import androidx.annotation.Nullable; -import androidx.preference.PreferenceScreen; -import androidx.recyclerview.widget.RecyclerView; - -import com.android.settings.R; -import com.android.settings.display.AutoBrightnessSettings; -import com.android.settingslib.Utils; -import com.android.settingslib.widget.FooterPreference; - -import com.google.android.setupcompat.template.FooterBarMixin; -import com.google.android.setupdesign.GlifPreferenceLayout; - -/** - * Fragment for adaptive brightness settings in the SetupWizard. - */ -public class AutoBrightnessPreferenceFragmentForSetupWizard extends AutoBrightnessSettings { - - private static final String FOOTER_PREFERENCE_KEY = "auto_brightness_footer"; - - @Override - public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) { - super.onViewCreated(view, savedInstanceState); - - updateFooterContentDescription(); - - if (view instanceof GlifPreferenceLayout) { - final GlifPreferenceLayout layout = (GlifPreferenceLayout) view; - final String title = getContext().getString( - R.string.auto_brightness_title); - final Drawable icon = getContext().getDrawable(R.drawable.ic_accessibility_visibility); - icon.setTintList(Utils.getColorAttr(getContext(), android.R.attr.colorPrimary)); - AccessibilitySetupWizardUtils.updateGlifPreferenceLayout(getContext(), layout, title, - /* description= */ null, icon); - - final FooterBarMixin mixin = layout.getMixin(FooterBarMixin.class); - AccessibilitySetupWizardUtils.setPrimaryButton(getContext(), mixin, R.string.done, - () -> { - setResult(RESULT_CANCELED); - finish(); - }); - } - } - - @NonNull - @Override - public RecyclerView onCreateRecyclerView(@NonNull LayoutInflater inflater, - @NonNull ViewGroup parent, @Nullable Bundle savedInstanceState) { - if (parent instanceof GlifPreferenceLayout) { - final GlifPreferenceLayout layout = (GlifPreferenceLayout) parent; - return layout.onCreateRecyclerView(inflater, parent, savedInstanceState); - } - return super.onCreateRecyclerView(inflater, parent, savedInstanceState); - } - - @Override - public int getMetricsCategory() { - return SettingsEnums.SUW_ACCESSIBILITY_AUTO_BRIGHTNESS; - } - - private void updateFooterContentDescription() { - final PreferenceScreen screen = getPreferenceScreen(); - final FooterPreference footerPreference = screen.findPreference(FOOTER_PREFERENCE_KEY); - if (footerPreference != null) { - String title = getString(R.string.auto_brightness_content_description_title); - final StringBuilder sb = new StringBuilder(); - sb.append(title).append("\n\n").append(footerPreference.getTitle()); - footerPreference.setContentDescription(sb); - } - } -} diff --git a/src/com/android/settings/core/gateway/SettingsGateway.java b/src/com/android/settings/core/gateway/SettingsGateway.java index 117364f2e9f..7afff2d21de 100644 --- a/src/com/android/settings/core/gateway/SettingsGateway.java +++ b/src/com/android/settings/core/gateway/SettingsGateway.java @@ -28,7 +28,6 @@ import com.android.settings.accessibility.AccessibilityDetailsSettingsFragment; import com.android.settings.accessibility.AccessibilityHearingAidsFragment; import com.android.settings.accessibility.AccessibilitySettings; import com.android.settings.accessibility.AccessibilitySettingsForSetupWizard; -import com.android.settings.accessibility.AutoBrightnessPreferenceFragmentForSetupWizard; import com.android.settings.accessibility.CaptioningPropertiesFragment; import com.android.settings.accessibility.ColorAndMotionFragment; import com.android.settings.accessibility.HearingDevicePairingFragment; @@ -265,7 +264,6 @@ public class SettingsGateway { EditShortcutsPreferenceFragment.class.getName(), TextReadingPreferenceFragment.class.getName(), TextReadingPreferenceFragmentForSetupWizard.class.getName(), - AutoBrightnessPreferenceFragmentForSetupWizard.class.getName(), CaptioningPropertiesFragment.class.getName(), ToggleDaltonizerPreferenceFragment.class.getName(), ToggleColorInversionPreferenceFragment.class.getName(), diff --git a/src/com/android/settings/display/AutoBrightnessPreferenceControllerForSetupWizard.java b/src/com/android/settings/display/AutoBrightnessPreferenceControllerForSetupWizard.java index 7cdf3e0ea35..7afe3ea9d8b 100644 --- a/src/com/android/settings/display/AutoBrightnessPreferenceControllerForSetupWizard.java +++ b/src/com/android/settings/display/AutoBrightnessPreferenceControllerForSetupWizard.java @@ -41,4 +41,9 @@ public class AutoBrightnessPreferenceControllerForSetupWizard } return super.getAvailabilityStatus(); } + + @Override + public CharSequence getSummary() { + return ""; + } } diff --git a/tests/robotests/src/com/android/settings/accessibility/AutoBrightnessPreferenceFragmentForSetupWizardTest.java b/tests/robotests/src/com/android/settings/accessibility/AutoBrightnessPreferenceFragmentForSetupWizardTest.java deleted file mode 100644 index c0b9dbd2104..00000000000 --- a/tests/robotests/src/com/android/settings/accessibility/AutoBrightnessPreferenceFragmentForSetupWizardTest.java +++ /dev/null @@ -1,119 +0,0 @@ -/* - * Copyright (C) 2024 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.android.settings.accessibility; - -import static com.google.common.truth.Truth.assertThat; - -import android.app.settings.SettingsEnums; -import android.os.Bundle; -import android.view.View; -import android.widget.Button; - -import androidx.fragment.app.FragmentFactory; -import androidx.fragment.app.testing.FragmentScenario; -import androidx.lifecycle.Lifecycle; -import androidx.preference.Preference; - -import com.android.settings.R; -import com.android.settingslib.widget.FooterPreference; - -import com.google.android.setupcompat.template.FooterBarMixin; -import com.google.android.setupdesign.GlifLayout; -import com.google.android.setupdesign.GlifPreferenceLayout; - -import org.junit.After; -import org.junit.Before; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.robolectric.RobolectricTestRunner; - -/** Tests for {@link AutoBrightnessPreferenceFragmentForSetupWizard}. */ -@RunWith(RobolectricTestRunner.class) -public class AutoBrightnessPreferenceFragmentForSetupWizardTest { - - // Same as AutoBrightnessPreferenceFragmentForSetupWizard#FOOTER_PREFERENCE_KEY - private static final String FOOTER_PREFERENCE_KEY = "auto_brightness_footer"; - - private FragmentScenario mFragmentScenario; - - private AutoBrightnessPreferenceFragmentForSetupWizard mFragment; - private GlifLayout mGlifLayout; - - @Before - public void setUp() { - mFragmentScenario = FragmentScenario - .launch( - AutoBrightnessPreferenceFragmentForSetupWizard.class, - /* fragmentArgs= */ (Bundle) null, - R.style.GlifTheme, - /* factory= */ (FragmentFactory) null) - .moveToState(Lifecycle.State.RESUMED); - mFragmentScenario.onFragment(fragment -> mFragment = fragment); - - View view = mFragment.getView(); - assertThat(view).isInstanceOf(GlifPreferenceLayout.class); - mGlifLayout = (GlifLayout) view; - } - - @After - public void tearDown() { - mFragmentScenario.close(); - } - - @Test - public void onViewCreated_verifyGlifHerderText() { - assertThat(mGlifLayout.getHeaderText()) - .isEqualTo(mFragment.getString(R.string.auto_brightness_title)); - } - - @Test - public void onViewCreated_verifyGlifFooter() { - FooterBarMixin footerMixin = mGlifLayout.getMixin(FooterBarMixin.class); - assertThat(footerMixin).isNotNull(); - - Button footerButton = footerMixin.getPrimaryButtonView(); - assertThat(footerButton).isNotNull(); - assertThat(footerButton.getText().toString()).isEqualTo(mFragment.getString(R.string.done)); - - footerButton.performClick(); - assertThat(mFragment.getActivity().isFinishing()).isTrue(); - } - - @Test - public void onViewCreated_verifyFooterPreference() { - Preference pref = mFragment.findPreference(FOOTER_PREFERENCE_KEY); - assertThat(pref).isInstanceOf(FooterPreference.class); - - FooterPreference footerPref = (FooterPreference) pref; - String exactTitle = footerPref.getTitle().toString(); - assertThat(exactTitle).isEqualTo(mFragment.getString(R.string.auto_brightness_description)); - - // Ensure that footer content description has "About XXX" prefix for consistency with other - // accessibility suw pages - String expectedContentDescription = - mFragment.getString(R.string.auto_brightness_content_description_title) - + "\n\n" + exactTitle; - assertThat(footerPref.getContentDescription().toString()) - .isEqualTo(expectedContentDescription); - } - - @Test - public void getMetricsCategory_returnsCorrectCategory() { - assertThat(mFragment.getMetricsCategory()).isEqualTo( - SettingsEnums.SUW_ACCESSIBILITY_AUTO_BRIGHTNESS); - } -}