Fix extra dim turns on failed in setting search bar
Root cause: Don't call displayPreference before setChecked called. Solution: Don't show quick settings tooltips if preference is not ready. Bug: 237850687 Test: make RunSettingsRoboTests ROBOTEST_FILTER=AccessibilityQuickSettingsPrimarySwitchPreferenceControllerTest Change-Id: I52425190cce4ab3cf31be025a743bf8b212fa1f9
This commit is contained in:
@@ -102,6 +102,11 @@ public abstract class AccessibilityQuickSettingsPrimarySwitchPreferenceControlle
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void showQuickSettingsTooltipIfNeeded() {
|
private void showQuickSettingsTooltipIfNeeded() {
|
||||||
|
if (mPreference == null) {
|
||||||
|
// Returns if no preference found by slice highlight menu.
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
final ComponentName tileComponentName = getTileComponentName();
|
final ComponentName tileComponentName = getTileComponentName();
|
||||||
if (tileComponentName == null) {
|
if (tileComponentName == null) {
|
||||||
// Returns if no tile service assigned.
|
// Returns if no tile service assigned.
|
||||||
|
@@ -118,18 +118,29 @@ public class AccessibilityQuickSettingsPrimarySwitchPreferenceControllerTest {
|
|||||||
mController = new TestAccessibilityQuickSettingsPrimarySwitchPreferenceController(mContext,
|
mController = new TestAccessibilityQuickSettingsPrimarySwitchPreferenceController(mContext,
|
||||||
TEST_KEY);
|
TEST_KEY);
|
||||||
when(mScreen.findPreference(mController.getPreferenceKey())).thenReturn(mPreference);
|
when(mScreen.findPreference(mController.getPreferenceKey())).thenReturn(mPreference);
|
||||||
mController.displayPreference(mScreen);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void setChecked_showTooltipView() {
|
public void setChecked_showTooltipView() {
|
||||||
|
mController.displayPreference(mScreen);
|
||||||
|
|
||||||
mController.setChecked(true);
|
mController.setChecked(true);
|
||||||
|
|
||||||
assertThat(getLatestPopupWindow().isShowing()).isTrue();
|
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
|
@Test
|
||||||
public void setChecked_tooltipViewShown_notShowTooltipView() {
|
public void setChecked_tooltipViewShown_notShowTooltipView() {
|
||||||
|
mController.displayPreference(mScreen);
|
||||||
mController.setChecked(true);
|
mController.setChecked(true);
|
||||||
getLatestPopupWindow().dismiss();
|
getLatestPopupWindow().dismiss();
|
||||||
mController.setChecked(false);
|
mController.setChecked(false);
|
||||||
@@ -142,6 +153,7 @@ public class AccessibilityQuickSettingsPrimarySwitchPreferenceControllerTest {
|
|||||||
@Test
|
@Test
|
||||||
@Config(shadows = ShadowFragment.class)
|
@Config(shadows = ShadowFragment.class)
|
||||||
public void restoreValueFromSavedInstanceState_showTooltipView() {
|
public void restoreValueFromSavedInstanceState_showTooltipView() {
|
||||||
|
mController.displayPreference(mScreen);
|
||||||
mController.setChecked(true);
|
mController.setChecked(true);
|
||||||
final Bundle savedInstanceState = new Bundle();
|
final Bundle savedInstanceState = new Bundle();
|
||||||
savedInstanceState.putBoolean(KEY_SAVED_QS_TOOLTIP_RESHOW, /* value= */ true);
|
savedInstanceState.putBoolean(KEY_SAVED_QS_TOOLTIP_RESHOW, /* value= */ true);
|
||||||
|
Reference in New Issue
Block a user