Merge "[Material Next] Accessibility gesture tutorial dialog" into sc-v2-dev am: f7db8d7ee4
am: 2fa8b94643
Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Settings/+/15501580 Change-Id: I275ea531be18bc1b0aa3fe372f59f89e4d4590ba
This commit is contained in:
@@ -28,17 +28,19 @@ import android.content.Intent;
|
||||
import android.content.SharedPreferences;
|
||||
import android.content.om.IOverlayManager;
|
||||
import android.content.om.OverlayInfo;
|
||||
import android.os.Bundle;
|
||||
import android.os.RemoteException;
|
||||
import android.os.ServiceManager;
|
||||
import android.provider.Settings;
|
||||
import android.text.TextUtils;
|
||||
import android.view.accessibility.AccessibilityManager;
|
||||
|
||||
import androidx.annotation.Nullable;
|
||||
import androidx.annotation.VisibleForTesting;
|
||||
import androidx.preference.PreferenceScreen;
|
||||
|
||||
import com.android.settings.R;
|
||||
import com.android.settings.SettingsTutorialDialogWrapperActivity;
|
||||
import com.android.settings.accessibility.AccessibilityGestureNavigationTutorial;
|
||||
import com.android.settings.dashboard.suggestions.SuggestionFeatureProvider;
|
||||
import com.android.settings.overlay.FeatureFactory;
|
||||
import com.android.settings.search.BaseSearchIndexProvider;
|
||||
@@ -57,8 +59,6 @@ import java.util.List;
|
||||
public class SystemNavigationGestureSettings extends RadioButtonPickerFragment implements
|
||||
HelpResourceProvider {
|
||||
|
||||
private static final String TAG = "SystemNavigationGesture";
|
||||
|
||||
@VisibleForTesting
|
||||
static final String KEY_SYSTEM_NAV_3BUTTONS = "system_nav_3buttons";
|
||||
@VisibleForTesting
|
||||
@@ -69,10 +69,33 @@ public class SystemNavigationGestureSettings extends RadioButtonPickerFragment i
|
||||
public static final String PREF_KEY_SUGGESTION_COMPLETE =
|
||||
"pref_system_navigation_suggestion_complete";
|
||||
|
||||
private static final String KEY_SHOW_A11Y_TUTORIAL_DIALOG = "show_a11y_tutorial_dialog_bool";
|
||||
|
||||
private boolean mA11yTutorialDialogShown = false;
|
||||
|
||||
private IOverlayManager mOverlayManager;
|
||||
|
||||
private IllustrationPreference mVideoPreference;
|
||||
|
||||
@Override
|
||||
public void onCreate(@Nullable Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
if (savedInstanceState != null) {
|
||||
mA11yTutorialDialogShown =
|
||||
savedInstanceState.getBoolean(KEY_SHOW_A11Y_TUTORIAL_DIALOG, false);
|
||||
if (mA11yTutorialDialogShown) {
|
||||
AccessibilityGestureNavigationTutorial.showGestureNavigationTutorialDialog(
|
||||
getContext(), dialog -> mA11yTutorialDialogShown = false);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onSaveInstanceState(Bundle outState) {
|
||||
outState.putBoolean(KEY_SHOW_A11Y_TUTORIAL_DIALOG, mA11yTutorialDialogShown);
|
||||
super.onSaveInstanceState(outState);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onAttach(Context context) {
|
||||
super.onAttach(context);
|
||||
@@ -177,14 +200,7 @@ public class SystemNavigationGestureSettings extends RadioButtonPickerFragment i
|
||||
protected boolean setDefaultKey(String key) {
|
||||
setCurrentSystemNavigationMode(mOverlayManager, key);
|
||||
setIllustrationVideo(mVideoPreference, key);
|
||||
if (TextUtils.equals(KEY_SYSTEM_NAV_GESTURAL, key)
|
||||
&& !isAccessibilityFloatingMenuEnabled()
|
||||
&& (isAnyServiceSupportAccessibilityButton() || isNavBarMagnificationEnabled())) {
|
||||
final Intent intent = new Intent(getActivity(),
|
||||
SettingsTutorialDialogWrapperActivity.class);
|
||||
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
|
||||
startActivity(intent);
|
||||
}
|
||||
setGestureNavigationTutorialDialog(key);
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -257,6 +273,18 @@ public class SystemNavigationGestureSettings extends RadioButtonPickerFragment i
|
||||
}
|
||||
}
|
||||
|
||||
private void setGestureNavigationTutorialDialog(String systemNavKey) {
|
||||
if (TextUtils.equals(KEY_SYSTEM_NAV_GESTURAL, systemNavKey)
|
||||
&& !isAccessibilityFloatingMenuEnabled()
|
||||
&& (isAnyServiceSupportAccessibilityButton() || isNavBarMagnificationEnabled())) {
|
||||
mA11yTutorialDialogShown = true;
|
||||
AccessibilityGestureNavigationTutorial.showGestureNavigationTutorialDialog(getContext(),
|
||||
dialog -> mA11yTutorialDialogShown = false);
|
||||
} else {
|
||||
mA11yTutorialDialogShown = false;
|
||||
}
|
||||
}
|
||||
|
||||
private boolean isAnyServiceSupportAccessibilityButton() {
|
||||
final AccessibilityManager ams = getContext().getSystemService(AccessibilityManager.class);
|
||||
final List<String> targets = ams.getAccessibilityShortcutTargets(
|
||||
|
Reference in New Issue
Block a user