diff --git a/res/layout/preference_labeled_slider.xml b/res/layout/preference_labeled_slider.xml index a11d574b319..ae7027defe8 100644 --- a/res/layout/preference_labeled_slider.xml +++ b/res/layout/preference_labeled_slider.xml @@ -69,6 +69,8 @@ android:layout_width="0dp" android:layout_height="wrap_content" android:layout_gravity="start|top" + android:textAppearance="?android:attr/textAppearanceSmall" + android:textColor="?android:attr/textColorSecondary" android:gravity="start" android:layout_weight="1"/> @@ -77,6 +79,8 @@ android:layout_width="0dp" android:layout_height="wrap_content" android:layout_gravity="end|top" + android:textAppearance="?android:attr/textAppearanceSmall" + android:textColor="?android:attr/textColorSecondary" android:gravity="end" android:layout_weight="1"/> diff --git a/src/com/android/settings/accessibility/AccessibilityQuickSettingsPrimarySwitchPreferenceController.java b/src/com/android/settings/accessibility/AccessibilityQuickSettingsPrimarySwitchPreferenceController.java index d272a0be49f..429fd9deca9 100644 --- a/src/com/android/settings/accessibility/AccessibilityQuickSettingsPrimarySwitchPreferenceController.java +++ b/src/com/android/settings/accessibility/AccessibilityQuickSettingsPrimarySwitchPreferenceController.java @@ -102,6 +102,11 @@ public abstract class AccessibilityQuickSettingsPrimarySwitchPreferenceControlle } private void showQuickSettingsTooltipIfNeeded() { + if (mPreference == null) { + // Returns if no preference found by slice highlight menu. + return; + } + final ComponentName tileComponentName = getTileComponentName(); if (tileComponentName == null) { // Returns if no tile service assigned. diff --git a/src/com/android/settings/accessibility/TextReadingPreviewController.java b/src/com/android/settings/accessibility/TextReadingPreviewController.java index 1be8c70f4f6..98767d9d0ca 100644 --- a/src/com/android/settings/accessibility/TextReadingPreviewController.java +++ b/src/com/android/settings/accessibility/TextReadingPreviewController.java @@ -108,6 +108,7 @@ class TextReadingPreviewController extends BasePreferenceController implements final PreviewPagerAdapter pagerAdapter = new PreviewPagerAdapter(mContext, isLayoutRtl, PREVIEW_SAMPLE_RES_IDS, createConfig(origConfig)); mPreviewPreference.setPreviewAdapter(pagerAdapter); + mPreviewPreference.setCurrentItem(isLayoutRtl ? PREVIEW_SAMPLE_RES_IDS.length - 1 : 0); pagerAdapter.setPreviewLayer(/* newLayerIndex= */ 0, /* currentLayerIndex= */ 0, /* currentFrameIndex= */ 0, /* animate= */ false); diff --git a/src/com/android/settings/biometrics/fingerprint/FingerprintEnrollEnrolling.java b/src/com/android/settings/biometrics/fingerprint/FingerprintEnrollEnrolling.java index b1b18ff1f56..64a08d3c996 100644 --- a/src/com/android/settings/biometrics/fingerprint/FingerprintEnrollEnrolling.java +++ b/src/com/android/settings/biometrics/fingerprint/FingerprintEnrollEnrolling.java @@ -203,7 +203,9 @@ public class FingerprintEnrollEnrolling extends BiometricsEnrollEnrolling { // Do NOT cancel enrollment progress after rotating, adding mIsOrientationChanged // to judge if the focus changed was triggered by rotation, current WMS has triple callbacks // (true > false > true), we need to reset mIsOrientationChanged when !hasFocus callback. - if (!mIsOrientationChanged) { + // Side fps do not have to synchronize udfpsController overlay state, we should bypass sfps + // from onWindowFocusChanged() as long press sfps power key will prompt dialog to users. + if (!mIsOrientationChanged && !mCanAssumeSfps) { onCancelEnrollment(FINGERPRINT_ERROR_USER_CANCELED); } else { mIsOrientationChanged = false; diff --git a/tests/robotests/src/com/android/settings/accessibility/AccessibilityQuickSettingsPrimarySwitchPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/accessibility/AccessibilityQuickSettingsPrimarySwitchPreferenceControllerTest.java index 89c91209ffd..deab7453337 100644 --- a/tests/robotests/src/com/android/settings/accessibility/AccessibilityQuickSettingsPrimarySwitchPreferenceControllerTest.java +++ b/tests/robotests/src/com/android/settings/accessibility/AccessibilityQuickSettingsPrimarySwitchPreferenceControllerTest.java @@ -118,18 +118,29 @@ public class AccessibilityQuickSettingsPrimarySwitchPreferenceControllerTest { mController = new TestAccessibilityQuickSettingsPrimarySwitchPreferenceController(mContext, TEST_KEY); when(mScreen.findPreference(mController.getPreferenceKey())).thenReturn(mPreference); - mController.displayPreference(mScreen); } @Test public void setChecked_showTooltipView() { + mController.displayPreference(mScreen); + mController.setChecked(true); assertThat(getLatestPopupWindow().isShowing()).isTrue(); } + @Test + public void setChecked_notCallDisplayPreference_notShowTooltipView() { + // Simulates the slice highlight menu that does not call {@link #displayPreference} before + // {@link #setChecked} called. + mController.setChecked(true); + + assertThat(getLatestPopupWindow()).isNull(); + } + @Test public void setChecked_tooltipViewShown_notShowTooltipView() { + mController.displayPreference(mScreen); mController.setChecked(true); getLatestPopupWindow().dismiss(); mController.setChecked(false); @@ -142,6 +153,7 @@ public class AccessibilityQuickSettingsPrimarySwitchPreferenceControllerTest { @Test @Config(shadows = ShadowFragment.class) public void restoreValueFromSavedInstanceState_showTooltipView() { + mController.displayPreference(mScreen); mController.setChecked(true); final Bundle savedInstanceState = new Bundle(); savedInstanceState.putBoolean(KEY_SAVED_QS_TOOLTIP_RESHOW, /* value= */ true); diff --git a/tests/robotests/src/com/android/settings/biometrics/fingerprint/FingerprintEnrollEnrollingTest.java b/tests/robotests/src/com/android/settings/biometrics/fingerprint/FingerprintEnrollEnrollingTest.java index ef31c392af7..2c864d6d92b 100644 --- a/tests/robotests/src/com/android/settings/biometrics/fingerprint/FingerprintEnrollEnrollingTest.java +++ b/tests/robotests/src/com/android/settings/biometrics/fingerprint/FingerprintEnrollEnrollingTest.java @@ -222,6 +222,16 @@ public class FingerprintEnrollEnrollingTest { ); } + @Test + public void fingerprintSfpsEnrollment_loseFocus_shouldNotCancel() { + initializeActivityFor(FingerprintSensorProperties.TYPE_POWER_BUTTON); + + mActivity.onEnrollmentProgressChange(1, 1); + mActivity.onWindowFocusChanged(true); + + verify(mActivity, never()).onCancelEnrollment(anyInt()); + } + private void initializeActivityFor(int sensorType) { final List componentInfo = new ArrayList<>(); final FingerprintSensorPropertiesInternal prop =