From 22dff773fa57e11b52e334535a5d80a70f71108d Mon Sep 17 00:00:00 2001 From: tom hsu Date: Fri, 24 Feb 2023 14:03:45 +0800 Subject: [PATCH 1/6] Switch off Calendar UI fo regional preferences - Due to unsupported calendar type in java lib, it may happen unexpected exception. Hence switch off this function till we find a better way to improve. Bug: b/270650444 Test: Manual test. Change-Id: If380dbe5d98b915f3e288eb668df573ef2971ae2 --- .../regionalpreferences/CalendarTypeController.java | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/com/android/settings/regionalpreferences/CalendarTypeController.java b/src/com/android/settings/regionalpreferences/CalendarTypeController.java index 7905620ce7a..7d07cbdd4f4 100644 --- a/src/com/android/settings/regionalpreferences/CalendarTypeController.java +++ b/src/com/android/settings/regionalpreferences/CalendarTypeController.java @@ -17,6 +17,7 @@ package com.android.settings.regionalpreferences; import android.content.Context; +import android.os.SystemProperties; import android.provider.Settings; import com.android.settings.core.BasePreferenceController; @@ -27,6 +28,8 @@ import java.util.Locale; * A controller for the entry of Calendar types' page */ public class CalendarTypeController extends BasePreferenceController { + private static final String CALENDAR_FEATURE_PROPERTY = + "i18n-feature-locale-preference-calendar"; private static final String TAG = CalendarTypeController.class.getSimpleName(); public CalendarTypeController(Context context, String preferenceKey) { super(context, preferenceKey); @@ -45,7 +48,8 @@ public class CalendarTypeController extends BasePreferenceController { */ @Override public int getAvailabilityStatus() { - return AVAILABLE; + return SystemProperties.getBoolean(CALENDAR_FEATURE_PROPERTY, false) + ? AVAILABLE : CONDITIONALLY_UNAVAILABLE; } @Override From c9cca5940b8036221e0da7138593eb3f573004be Mon Sep 17 00:00:00 2001 From: Bonian Chen Date: Fri, 17 Feb 2023 06:18:11 +0000 Subject: [PATCH 2/6] [Settings] Re-enable previous work on data saver Previous work on data saver performance got disabled, this is a change to re-enable it. Bug: 249502488 Test: build pass Change-Id: I7264b1e8c21a789db358e0aae70a2cf0ce09ebba (cherry picked from commit 2115d0e49503d2dcb60b0663c0e701cd3d282a97) --- src/com/android/settings/datausage/DataSaverSummary.java | 4 ---- 1 file changed, 4 deletions(-) diff --git a/src/com/android/settings/datausage/DataSaverSummary.java b/src/com/android/settings/datausage/DataSaverSummary.java index 9bd862aa219..67644a6c992 100644 --- a/src/com/android/settings/datausage/DataSaverSummary.java +++ b/src/com/android/settings/datausage/DataSaverSummary.java @@ -78,11 +78,7 @@ public class DataSaverSummary extends SettingsPreferenceFragment addPreferencesFromResource(R.xml.data_saver); mUnrestrictedAccess = findPreference(KEY_UNRESTRICTED_ACCESS); - mApplicationsState = ApplicationsState.getInstance( - (Application) getContext().getApplicationContext()); mDataSaverBackend = new DataSaverBackend(getContext()); - mDataUsageBridge = new AppStateDataUsageBridge(mApplicationsState, this, mDataSaverBackend); - mSession = mApplicationsState.newSession(this, getSettingsLifecycle()); } @Override From 1596a2838def4a0689e88b2b4a707f6e53c55009 Mon Sep 17 00:00:00 2001 From: Arc Wang Date: Sat, 18 Feb 2023 16:08:24 +0800 Subject: [PATCH 3/6] Allow Magnification Settings launch from outside of AccessibilitySettings Before this CL, Magnification Settings can only be launched from MagnificationPreferenceController. This CL initializes FooterPreferenceController if the parent class does not initialize it from Intent extras. Bug: 268411305 Test: manual make RunSettingsRoboTests ROBOTEST_FILTER=MagnificationGesturesPreferenceControllerTest make RunSettingsRoboTests ROBOTEST_FILTER=ToggleScreenMagnificationPreferenceFragmentTest Change-Id: I954739c39c823ce7fe0daa711743f729d182571b --- ...ificationGesturesPreferenceController.java | 13 ++------- .../ToggleFeaturePreferenceFragment.java | 2 +- ...ScreenMagnificationPreferenceFragment.java | 29 +++++++++++++++++++ ...enMagnificationPreferenceFragmentTest.java | 12 ++++++++ 4 files changed, 44 insertions(+), 12 deletions(-) diff --git a/src/com/android/settings/accessibility/MagnificationGesturesPreferenceController.java b/src/com/android/settings/accessibility/MagnificationGesturesPreferenceController.java index 793ab5a8581..99e0dc035e8 100644 --- a/src/com/android/settings/accessibility/MagnificationGesturesPreferenceController.java +++ b/src/com/android/settings/accessibility/MagnificationGesturesPreferenceController.java @@ -14,7 +14,6 @@ package com.android.settings.accessibility; import android.content.Context; -import android.icu.text.MessageFormat; import android.os.Bundle; import android.provider.Settings; import android.text.TextUtils; @@ -94,19 +93,11 @@ public class MagnificationGesturesPreferenceController extends TogglePreferenceC } static void populateMagnificationGesturesPreferenceExtras(Bundle extras, Context context) { - extras.putString(AccessibilitySettings.EXTRA_PREFERENCE_KEY, - Settings.Secure.ACCESSIBILITY_DISPLAY_MAGNIFICATION_ENABLED); + // TODO(b/270481978): It seems not necessary to put EXTRA_TITLE_RES. extras.putInt(AccessibilitySettings.EXTRA_TITLE_RES, R.string.accessibility_screen_magnification_gestures_title); - String intro = context.getString(R.string.accessibility_screen_magnification_intro_text); - extras.putCharSequence(AccessibilitySettings.EXTRA_INTRO, intro); - - String summary = context.getString(R.string.accessibility_screen_magnification_summary); - final Object[] numberArguments = {1, 2, 3, 4, 5}; - summary = MessageFormat.format(summary, numberArguments); - extras.putCharSequence(AccessibilitySettings.EXTRA_HTML_DESCRIPTION, summary); - + // TODO(b/270481978): It seems not necessary to put EXTRA_VIDEO_RAW_RESOURCE_ID. extras.putInt(AccessibilitySettings.EXTRA_VIDEO_RAW_RESOURCE_ID, R.raw.accessibility_screen_magnification); } diff --git a/src/com/android/settings/accessibility/ToggleFeaturePreferenceFragment.java b/src/com/android/settings/accessibility/ToggleFeaturePreferenceFragment.java index ca3c5f10e87..22c57b7a305 100644 --- a/src/com/android/settings/accessibility/ToggleFeaturePreferenceFragment.java +++ b/src/com/android/settings/accessibility/ToggleFeaturePreferenceFragment.java @@ -122,7 +122,7 @@ public abstract class ToggleFeaturePreferenceFragment extends DashboardFragment private int mNeedsQSTooltipType = QuickSettingsTooltipType.GUIDE_TO_EDIT; private boolean mSavedAccessibilityFloatingMenuEnabled; private ImageView mImageGetterCacheView; - private final Html.ImageGetter mImageGetter = (String str) -> { + protected final Html.ImageGetter mImageGetter = (String str) -> { if (str != null && str.startsWith(IMG_PREFIX)) { final String fileName = str.substring(IMG_PREFIX.length()); return getDrawableFromUri(Uri.parse( diff --git a/src/com/android/settings/accessibility/ToggleScreenMagnificationPreferenceFragment.java b/src/com/android/settings/accessibility/ToggleScreenMagnificationPreferenceFragment.java index 470e548d5d4..04a80dc489a 100644 --- a/src/com/android/settings/accessibility/ToggleScreenMagnificationPreferenceFragment.java +++ b/src/com/android/settings/accessibility/ToggleScreenMagnificationPreferenceFragment.java @@ -29,6 +29,7 @@ import android.content.Context; import android.content.DialogInterface; import android.content.pm.PackageManager; import android.icu.text.CaseMap; +import android.icu.text.MessageFormat; import android.net.Uri; import android.os.Bundle; import android.provider.DeviceConfig; @@ -220,6 +221,34 @@ public class ToggleScreenMagnificationPreferenceFragment extends addJoystickSetting(generalCategory); } + @Override + protected void onProcessArguments(Bundle arguments) { + Context context = getContext(); + + // This Fragment may get arguments from MagnificationGesturesPreferenceController or + // MagnificationNavbarPreferenceController and it's necessary to check if a key exists + // before putting a new value into arguments. + + if (!arguments.containsKey(AccessibilitySettings.EXTRA_PREFERENCE_KEY)) { + arguments.putString(AccessibilitySettings.EXTRA_PREFERENCE_KEY, + Settings.Secure.ACCESSIBILITY_DISPLAY_MAGNIFICATION_ENABLED); + } + + if (!arguments.containsKey(AccessibilitySettings.EXTRA_INTRO)) { + arguments.putCharSequence(AccessibilitySettings.EXTRA_INTRO, + context.getString(R.string.accessibility_screen_magnification_intro_text)); + } + + if (!arguments.containsKey(AccessibilitySettings.EXTRA_HTML_DESCRIPTION)) { + String summary = MessageFormat.format( + context.getString(R.string.accessibility_screen_magnification_summary), + new Object[]{1, 2, 3, 4, 5}); + arguments.putCharSequence(AccessibilitySettings.EXTRA_HTML_DESCRIPTION, summary); + } + + super.onProcessArguments(arguments); + } + private void addAlwaysOnSetting(PreferenceCategory generalCategory) { if (!DeviceConfig.getBoolean( DeviceConfig.NAMESPACE_WINDOW_MANAGER, diff --git a/tests/robotests/src/com/android/settings/accessibility/ToggleScreenMagnificationPreferenceFragmentTest.java b/tests/robotests/src/com/android/settings/accessibility/ToggleScreenMagnificationPreferenceFragmentTest.java index 8697cb5aa91..9916dc9d7f4 100644 --- a/tests/robotests/src/com/android/settings/accessibility/ToggleScreenMagnificationPreferenceFragmentTest.java +++ b/tests/robotests/src/com/android/settings/accessibility/ToggleScreenMagnificationPreferenceFragmentTest.java @@ -23,6 +23,7 @@ import static com.android.settings.accessibility.ToggleFeaturePreferenceFragment import static com.google.common.truth.Truth.assertThat; +import static org.junit.Assert.assertTrue; import static org.mockito.ArgumentMatchers.any; import static org.mockito.ArgumentMatchers.anyInt; import static org.mockito.ArgumentMatchers.eq; @@ -405,6 +406,17 @@ public class ToggleScreenMagnificationPreferenceFragmentTest { assertThat(mFragment.getHelpResource()).isEqualTo(R.string.help_url_magnification); } + @Test + public void onProcessArguments_defaultArgumentUnavailable_shouldSetDefaultArguments() { + Bundle arguments = new Bundle(); + + mFragment.onProcessArguments(arguments); + + assertTrue(arguments.containsKey(AccessibilitySettings.EXTRA_PREFERENCE_KEY)); + assertTrue(arguments.containsKey(AccessibilitySettings.EXTRA_INTRO)); + assertTrue(arguments.containsKey(AccessibilitySettings.EXTRA_HTML_DESCRIPTION)); + } + private void putStringIntoSettings(String key, String componentName) { Settings.Secure.putString(mContext.getContentResolver(), key, componentName); } From 882b49c8fb1b63a96cddd8a2dfb635b12c3e75df Mon Sep 17 00:00:00 2001 From: Vincent Wang Date: Fri, 24 Feb 2023 03:37:23 +0000 Subject: [PATCH 4/6] Refactor FingerprintEnrollEnrolling to fragment Bug: b/260957933 Test: NA Change-Id: I281ec7a7373f6863e2e6f8f20bbbb01fa01e009a --- res/layout/udfps_enroll_enrolling_v2.xml | 104 +++++ ...ngerprintEnrollEnrollingUdfpsFragment.java | 335 +++++--------- .../ui/widget/UdfpsEnrollDrawable.java | 436 ++++++++++++++++++ .../UdfpsEnrollProgressBarDrawable.java | 424 +++++++++++++++++ .../ui/widget/UdfpsEnrollView.java | 260 +++++++++++ 5 files changed, 1341 insertions(+), 218 deletions(-) create mode 100644 res/layout/udfps_enroll_enrolling_v2.xml create mode 100644 src/com/android/settings/biometrics2/ui/widget/UdfpsEnrollDrawable.java create mode 100644 src/com/android/settings/biometrics2/ui/widget/UdfpsEnrollProgressBarDrawable.java create mode 100644 src/com/android/settings/biometrics2/ui/widget/UdfpsEnrollView.java diff --git a/res/layout/udfps_enroll_enrolling_v2.xml b/res/layout/udfps_enroll_enrolling_v2.xml new file mode 100644 index 00000000000..96298f91d0b --- /dev/null +++ b/res/layout/udfps_enroll_enrolling_v2.xml @@ -0,0 +1,104 @@ + + + + + + + + + + + + + + + + + + + + +