Loading src/com/android/settings/accessibility/AccessibilityQuickSettingsPrimarySwitchPreferenceController.java +10 −3 Original line number Diff line number Diff line Loading @@ -28,12 +28,13 @@ import com.android.settings.core.TogglePreferenceController; import com.android.settingslib.PrimarySwitchPreference; import com.android.settingslib.core.lifecycle.LifecycleObserver; import com.android.settingslib.core.lifecycle.events.OnCreate; import com.android.settingslib.core.lifecycle.events.OnDestroy; import com.android.settingslib.core.lifecycle.events.OnSaveInstanceState; /** PrimarySwitchPreferenceController that shows quick settings tooltip on first use. */ public abstract class AccessibilityQuickSettingsPrimarySwitchPreferenceController extends TogglePreferenceController implements LifecycleObserver, OnCreate, OnSaveInstanceState { implements LifecycleObserver, OnCreate, OnDestroy, OnSaveInstanceState { private static final String KEY_SAVED_QS_TOOLTIP_RESHOW = "qs_tooltip_reshow"; private final Handler mHandler; private PrimarySwitchPreference mPreference; Loading Loading @@ -62,10 +63,16 @@ public abstract class AccessibilityQuickSettingsPrimarySwitchPreferenceControlle } } @Override public void onDestroy() { mHandler.removeCallbacksAndMessages(null); } @Override public void onSaveInstanceState(Bundle outState) { if (mTooltipWindow != null) { outState.putBoolean(KEY_SAVED_QS_TOOLTIP_RESHOW, mTooltipWindow.isShowing()); final boolean isTooltipWindowShowing = mTooltipWindow != null && mTooltipWindow.isShowing(); if (mNeedsQSTooltipReshow || isTooltipWindowShowing) { outState.putBoolean(KEY_SAVED_QS_TOOLTIP_RESHOW, /* value= */ true); } } Loading src/com/android/settings/accessibility/AccessibilityShortcutPreferenceFragment.java +10 −3 Original line number Diff line number Diff line Loading @@ -20,6 +20,7 @@ import static com.android.settings.accessibility.AccessibilityDialogUtils.Dialog import static com.android.settings.accessibility.ToggleFeaturePreferenceFragment.KEY_GENERAL_CATEGORY; import static com.android.settings.accessibility.ToggleFeaturePreferenceFragment.KEY_SAVED_QS_TOOLTIP_TYPE; import android.app.Activity; import android.app.Dialog; import android.app.settings.SettingsEnums; import android.content.ComponentName; Loading Loading @@ -150,7 +151,12 @@ public abstract class AccessibilityShortcutPreferenceFragment extends DashboardF // Reshow tooltip when activity recreate, such as rotate device. if (mNeedsQSTooltipReshow) { getView().post(this::showQuickSettingsTooltipIfNeeded); view.post(() -> { final Activity activity = getActivity(); if (activity != null && !activity.isFinishing()) { showQuickSettingsTooltipIfNeeded(); } }); } } Loading Loading @@ -180,8 +186,9 @@ public abstract class AccessibilityShortcutPreferenceFragment extends DashboardF if (value != NOT_SET) { outState.putInt(KEY_SAVED_USER_SHORTCUT_TYPE, value); } if (mTooltipWindow != null) { outState.putBoolean(KEY_SAVED_QS_TOOLTIP_RESHOW, mTooltipWindow.isShowing()); final boolean isTooltipWindowShowing = mTooltipWindow != null && mTooltipWindow.isShowing(); if (mNeedsQSTooltipReshow || isTooltipWindowShowing) { outState.putBoolean(KEY_SAVED_QS_TOOLTIP_RESHOW, /* value= */ true); outState.putInt(KEY_SAVED_QS_TOOLTIP_TYPE, mNeedsQSTooltipType); } super.onSaveInstanceState(outState); Loading src/com/android/settings/accessibility/ToggleFeaturePreferenceFragment.java +12 −5 Original line number Diff line number Diff line Loading @@ -18,6 +18,7 @@ package com.android.settings.accessibility; import static com.android.settings.accessibility.AccessibilityDialogUtils.DialogEnums; import android.app.Activity; import android.app.Dialog; import android.app.settings.SettingsEnums; import android.content.ComponentName; Loading Loading @@ -232,13 +233,18 @@ public abstract class ToggleFeaturePreferenceFragment extends DashboardFragment public void onViewCreated(View view, Bundle savedInstanceState) { super.onViewCreated(view, savedInstanceState); final SettingsActivity activity = (SettingsActivity) getActivity(); final SettingsMainSwitchBar switchBar = activity.getSwitchBar(); final SettingsActivity settingsActivity = (SettingsActivity) getActivity(); final SettingsMainSwitchBar switchBar = settingsActivity.getSwitchBar(); switchBar.hide(); // Reshow tooltip when activity recreate, such as rotate device. if (mNeedsQSTooltipReshow) { getView().post(this::showQuickSettingsTooltipIfNeeded); view.post(() -> { final Activity activity = getActivity(); if (activity != null && !activity.isFinishing()) { showQuickSettingsTooltipIfNeeded(); } }); } writeDefaultShortcutTargetServiceToSettingsIfNeeded(getPrefContext()); Loading Loading @@ -275,8 +281,9 @@ public abstract class ToggleFeaturePreferenceFragment extends DashboardFragment if (value != NOT_SET) { outState.putInt(KEY_SAVED_USER_SHORTCUT_TYPE, value); } if (mTooltipWindow != null) { outState.putBoolean(KEY_SAVED_QS_TOOLTIP_RESHOW, mTooltipWindow.isShowing()); final boolean isTooltipWindowShowing = mTooltipWindow != null && mTooltipWindow.isShowing(); if (mNeedsQSTooltipReshow || isTooltipWindowShowing) { outState.putBoolean(KEY_SAVED_QS_TOOLTIP_RESHOW, /* value= */ true); outState.putInt(KEY_SAVED_QS_TOOLTIP_TYPE, mNeedsQSTooltipType); } super.onSaveInstanceState(outState); Loading tests/robotests/src/com/android/settings/accessibility/AccessibilityQuickSettingsPrimarySwitchPreferenceControllerTest.java +1 −3 Original line number Diff line number Diff line Loading @@ -153,12 +153,10 @@ 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); mController.onCreate(savedInstanceState); mFragment.onCreate(savedInstanceState); mController.displayPreference(mScreen); assertThat(getLatestPopupWindow().isShowing()).isTrue(); Loading Loading
src/com/android/settings/accessibility/AccessibilityQuickSettingsPrimarySwitchPreferenceController.java +10 −3 Original line number Diff line number Diff line Loading @@ -28,12 +28,13 @@ import com.android.settings.core.TogglePreferenceController; import com.android.settingslib.PrimarySwitchPreference; import com.android.settingslib.core.lifecycle.LifecycleObserver; import com.android.settingslib.core.lifecycle.events.OnCreate; import com.android.settingslib.core.lifecycle.events.OnDestroy; import com.android.settingslib.core.lifecycle.events.OnSaveInstanceState; /** PrimarySwitchPreferenceController that shows quick settings tooltip on first use. */ public abstract class AccessibilityQuickSettingsPrimarySwitchPreferenceController extends TogglePreferenceController implements LifecycleObserver, OnCreate, OnSaveInstanceState { implements LifecycleObserver, OnCreate, OnDestroy, OnSaveInstanceState { private static final String KEY_SAVED_QS_TOOLTIP_RESHOW = "qs_tooltip_reshow"; private final Handler mHandler; private PrimarySwitchPreference mPreference; Loading Loading @@ -62,10 +63,16 @@ public abstract class AccessibilityQuickSettingsPrimarySwitchPreferenceControlle } } @Override public void onDestroy() { mHandler.removeCallbacksAndMessages(null); } @Override public void onSaveInstanceState(Bundle outState) { if (mTooltipWindow != null) { outState.putBoolean(KEY_SAVED_QS_TOOLTIP_RESHOW, mTooltipWindow.isShowing()); final boolean isTooltipWindowShowing = mTooltipWindow != null && mTooltipWindow.isShowing(); if (mNeedsQSTooltipReshow || isTooltipWindowShowing) { outState.putBoolean(KEY_SAVED_QS_TOOLTIP_RESHOW, /* value= */ true); } } Loading
src/com/android/settings/accessibility/AccessibilityShortcutPreferenceFragment.java +10 −3 Original line number Diff line number Diff line Loading @@ -20,6 +20,7 @@ import static com.android.settings.accessibility.AccessibilityDialogUtils.Dialog import static com.android.settings.accessibility.ToggleFeaturePreferenceFragment.KEY_GENERAL_CATEGORY; import static com.android.settings.accessibility.ToggleFeaturePreferenceFragment.KEY_SAVED_QS_TOOLTIP_TYPE; import android.app.Activity; import android.app.Dialog; import android.app.settings.SettingsEnums; import android.content.ComponentName; Loading Loading @@ -150,7 +151,12 @@ public abstract class AccessibilityShortcutPreferenceFragment extends DashboardF // Reshow tooltip when activity recreate, such as rotate device. if (mNeedsQSTooltipReshow) { getView().post(this::showQuickSettingsTooltipIfNeeded); view.post(() -> { final Activity activity = getActivity(); if (activity != null && !activity.isFinishing()) { showQuickSettingsTooltipIfNeeded(); } }); } } Loading Loading @@ -180,8 +186,9 @@ public abstract class AccessibilityShortcutPreferenceFragment extends DashboardF if (value != NOT_SET) { outState.putInt(KEY_SAVED_USER_SHORTCUT_TYPE, value); } if (mTooltipWindow != null) { outState.putBoolean(KEY_SAVED_QS_TOOLTIP_RESHOW, mTooltipWindow.isShowing()); final boolean isTooltipWindowShowing = mTooltipWindow != null && mTooltipWindow.isShowing(); if (mNeedsQSTooltipReshow || isTooltipWindowShowing) { outState.putBoolean(KEY_SAVED_QS_TOOLTIP_RESHOW, /* value= */ true); outState.putInt(KEY_SAVED_QS_TOOLTIP_TYPE, mNeedsQSTooltipType); } super.onSaveInstanceState(outState); Loading
src/com/android/settings/accessibility/ToggleFeaturePreferenceFragment.java +12 −5 Original line number Diff line number Diff line Loading @@ -18,6 +18,7 @@ package com.android.settings.accessibility; import static com.android.settings.accessibility.AccessibilityDialogUtils.DialogEnums; import android.app.Activity; import android.app.Dialog; import android.app.settings.SettingsEnums; import android.content.ComponentName; Loading Loading @@ -232,13 +233,18 @@ public abstract class ToggleFeaturePreferenceFragment extends DashboardFragment public void onViewCreated(View view, Bundle savedInstanceState) { super.onViewCreated(view, savedInstanceState); final SettingsActivity activity = (SettingsActivity) getActivity(); final SettingsMainSwitchBar switchBar = activity.getSwitchBar(); final SettingsActivity settingsActivity = (SettingsActivity) getActivity(); final SettingsMainSwitchBar switchBar = settingsActivity.getSwitchBar(); switchBar.hide(); // Reshow tooltip when activity recreate, such as rotate device. if (mNeedsQSTooltipReshow) { getView().post(this::showQuickSettingsTooltipIfNeeded); view.post(() -> { final Activity activity = getActivity(); if (activity != null && !activity.isFinishing()) { showQuickSettingsTooltipIfNeeded(); } }); } writeDefaultShortcutTargetServiceToSettingsIfNeeded(getPrefContext()); Loading Loading @@ -275,8 +281,9 @@ public abstract class ToggleFeaturePreferenceFragment extends DashboardFragment if (value != NOT_SET) { outState.putInt(KEY_SAVED_USER_SHORTCUT_TYPE, value); } if (mTooltipWindow != null) { outState.putBoolean(KEY_SAVED_QS_TOOLTIP_RESHOW, mTooltipWindow.isShowing()); final boolean isTooltipWindowShowing = mTooltipWindow != null && mTooltipWindow.isShowing(); if (mNeedsQSTooltipReshow || isTooltipWindowShowing) { outState.putBoolean(KEY_SAVED_QS_TOOLTIP_RESHOW, /* value= */ true); outState.putInt(KEY_SAVED_QS_TOOLTIP_TYPE, mNeedsQSTooltipType); } super.onSaveInstanceState(outState); Loading
tests/robotests/src/com/android/settings/accessibility/AccessibilityQuickSettingsPrimarySwitchPreferenceControllerTest.java +1 −3 Original line number Diff line number Diff line Loading @@ -153,12 +153,10 @@ 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); mController.onCreate(savedInstanceState); mFragment.onCreate(savedInstanceState); mController.displayPreference(mScreen); assertThat(getLatestPopupWindow().isShowing()).isTrue(); Loading