diff --git a/res/values/strings.xml b/res/values/strings.xml
index 968f6505206..658902386ef 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -4771,7 +4771,7 @@
Caption preferences
- Magnification
+ Magnify
Magnification area
@@ -4791,13 +4791,17 @@
Show a joystick-like controller to move the magnification area
- Magnify settings
+ Magnification settings
Magnify with triple-tap
Magnify with shortcut
Magnify with shortcut & triple-tap
+
+ About Magnify
+
+ Options
Zoom in on screen
diff --git a/res/xml/accessibility_settings_for_setup_wizard.xml b/res/xml/accessibility_settings_for_setup_wizard.xml
index 738bb8e3cc2..1b9939a10a9 100644
--- a/res/xml/accessibility_settings_for_setup_wizard.xml
+++ b/res/xml/accessibility_settings_for_setup_wizard.xml
@@ -15,47 +15,45 @@
-->
+ xmlns:settings="http://schemas.android.com/apk/res-auto"
+ android:persistent="true"
+ android:title="@string/vision_settings_title">
+ android:selectable="false"
+ android:title="@string/vision_settings_description" />
+ android:summary="@string/accessibility_preference_magnification_summary"
+ android:title="@string/accessibility_screen_magnification_title" />
+ android:summary="@string/short_summary_font_size"
+ android:title="@string/title_font_size" />
+ android:summary="@string/screen_zoom_short_summary"
+ android:title="@string/screen_zoom_title" />
+ android:persistent="true"
+ android:summary="@string/select_to_speak_summary" />
+ android:persistent="true"
+ android:summary="@string/talkback_summary" />
diff --git a/src/com/android/settings/accessibility/AccessibilitySettingsForSetupWizard.java b/src/com/android/settings/accessibility/AccessibilitySettingsForSetupWizard.java
index 64ed4869285..159e609ff05 100644
--- a/src/com/android/settings/accessibility/AccessibilitySettingsForSetupWizard.java
+++ b/src/com/android/settings/accessibility/AccessibilitySettingsForSetupWizard.java
@@ -49,7 +49,6 @@ public class AccessibilitySettingsForSetupWizard extends SettingsPreferenceFragm
"screen_magnification_preference";
private static final String SCREEN_READER_PREFERENCE = "screen_reader_preference";
private static final String SELECT_TO_SPEAK_PREFERENCE = "select_to_speak_preference";
- private static final String FONT_SIZE_PREFERENCE = "font_size_preference";
// Package names and service names used to identify screen reader and SelectToSpeak services.
private static final String SCREEN_READER_PACKAGE_NAME = "com.google.android.marvin.talkback";
@@ -175,16 +174,11 @@ public class AccessibilitySettingsForSetupWizard extends SettingsPreferenceFragm
}
private static void configureMagnificationPreferenceIfNeeded(Preference preference) {
- // Some devices support only a single magnification mode. In these cases, we redirect to
- // the magnification mode's UI directly, rather than showing a PreferenceScreen with a
- // single list item.
final Context context = preference.getContext();
- if (!MagnificationPreferenceFragment.isApplicable(context.getResources())) {
- preference.setFragment(
- ToggleScreenMagnificationPreferenceFragmentForSetupWizard.class.getName());
- final Bundle extras = preference.getExtras();
- MagnificationGesturesPreferenceController
- .populateMagnificationGesturesPreferenceExtras(extras, context);
- }
+ preference.setFragment(
+ ToggleScreenMagnificationPreferenceFragmentForSetupWizard.class.getName());
+ final Bundle extras = preference.getExtras();
+ MagnificationGesturesPreferenceController
+ .populateMagnificationGesturesPreferenceExtras(extras, context);
}
}
diff --git a/src/com/android/settings/accessibility/MagnificationPreferenceController.java b/src/com/android/settings/accessibility/MagnificationPreferenceController.java
index 58eb22788b5..8b214a2a74f 100644
--- a/src/com/android/settings/accessibility/MagnificationPreferenceController.java
+++ b/src/com/android/settings/accessibility/MagnificationPreferenceController.java
@@ -67,14 +67,9 @@ public class MagnificationPreferenceController extends BasePreferenceController
}
private void configureMagnificationPreferenceIfNeeded() {
- // Some devices support only a single magnification mode. In these cases, we redirect to
- // the magnification mode's UI directly, rather than showing a PreferenceScreen with a
- // single list item.
- if (!MagnificationPreferenceFragment.isApplicable(mContext.getResources())) {
- mPreference.setFragment(ToggleScreenMagnificationPreferenceFragment.class.getName());
- final Bundle extras = mPreference.getExtras();
- MagnificationGesturesPreferenceController
- .populateMagnificationGesturesPreferenceExtras(extras, mContext);
- }
+ mPreference.setFragment(ToggleScreenMagnificationPreferenceFragment.class.getName());
+ final Bundle extras = mPreference.getExtras();
+ MagnificationGesturesPreferenceController
+ .populateMagnificationGesturesPreferenceExtras(extras, mContext);
}
}
diff --git a/src/com/android/settings/accessibility/ToggleScreenMagnificationPreferenceFragment.java b/src/com/android/settings/accessibility/ToggleScreenMagnificationPreferenceFragment.java
index 86936906633..bfc23601ee1 100644
--- a/src/com/android/settings/accessibility/ToggleScreenMagnificationPreferenceFragment.java
+++ b/src/com/android/settings/accessibility/ToggleScreenMagnificationPreferenceFragment.java
@@ -38,17 +38,16 @@ import android.view.ViewTreeObserver.OnGlobalLayoutListener;
import android.widget.CheckBox;
import android.widget.ImageView;
import android.widget.RelativeLayout.LayoutParams;
-import android.widget.Switch;
import android.widget.VideoView;
import androidx.appcompat.app.AlertDialog;
import androidx.preference.Preference;
+import androidx.preference.PreferenceCategory;
import androidx.preference.PreferenceScreen;
import androidx.preference.PreferenceViewHolder;
import com.android.settings.R;
import com.android.settings.accessibility.AccessibilityUtil.PreferredShortcutType;
-import com.android.settings.widget.SwitchBar;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
@@ -57,8 +56,7 @@ import java.util.List;
import java.util.StringJoiner;
public class ToggleScreenMagnificationPreferenceFragment extends
- ToggleFeaturePreferenceFragment implements SwitchBar.OnSwitchChangeListener,
- ShortcutPreference.OnClickListener {
+ ToggleFeaturePreferenceFragment implements ShortcutPreference.OnClickListener {
private static final String SETTINGS_KEY = "screen_magnification_settings";
private static final String EXTRA_SHORTCUT_TYPE = "shortcutType";
@@ -78,6 +76,8 @@ public class ToggleScreenMagnificationPreferenceFragment extends
private static final TextUtils.SimpleStringSplitter sStringColonSplitter =
new TextUtils.SimpleStringSplitter(COMPONENT_NAME_SEPARATOR);
+ protected Preference mConfigWarningPreference;
+ protected VideoPreference mVideoPreference;
protected class VideoPreference extends Preference {
private ImageView mVideoBackgroundView;
private OnGlobalLayoutListener mLayoutListener;
@@ -154,25 +154,35 @@ public class ToggleScreenMagnificationPreferenceFragment extends
}
}
- protected VideoPreference mVideoPreference;
- protected Preference mConfigWarningPreference;
-
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
+ getActivity().setTitle(R.string.accessibility_screen_magnification_title);
+ }
+
+ @Override
+ public View onCreateView(LayoutInflater inflater, ViewGroup container,
+ Bundle savedInstanceState) {
mVideoPreference = new VideoPreference(getPrefContext());
mVideoPreference.setSelectable(false);
mVideoPreference.setPersistent(false);
mVideoPreference.setLayoutResource(R.layout.magnification_video_preference);
+ final PreferenceCategory optionCategory = new PreferenceCategory(getPrefContext());
+ optionCategory.setTitle(R.string.accessibility_screen_option);
+
+ initShortcutPreference(savedInstanceState);
+
final Preference settingsPreference = new Preference(getPrefContext());
- final String SettingsText = getString(R.string.settings_button);
- settingsPreference.setTitle(SettingsText);
+ settingsPreference.setTitle(R.string.accessibility_magnification_service_settings_title);
settingsPreference.setKey(SETTINGS_KEY);
settingsPreference.setFragment(MagnificationSettingsFragment.class.getName());
settingsPreference.setPersistent(false);
+ final PreferenceCategory aboutCategory = new PreferenceCategory(getPrefContext());
+ aboutCategory.setTitle(R.string.accessibility_screen_magnification_about);
+
mConfigWarningPreference = new Preference(getPrefContext());
mConfigWarningPreference.setSelectable(false);
mConfigWarningPreference.setPersistent(false);
@@ -182,17 +192,15 @@ public class ToggleScreenMagnificationPreferenceFragment extends
final PreferenceScreen preferenceScreen = getPreferenceManager().getPreferenceScreen();
preferenceScreen.setOrderingAsAdded(false);
mVideoPreference.setOrder(0);
- settingsPreference.setOrder(1);
- mConfigWarningPreference.setOrder(2);
+ optionCategory.setOrder(1);
+ aboutCategory.setOrder(2);
preferenceScreen.addPreference(mVideoPreference);
- preferenceScreen.addPreference(settingsPreference);
- preferenceScreen.addPreference(mConfigWarningPreference);
- }
+ preferenceScreen.addPreference(optionCategory);
+ optionCategory.addPreference(mShortcutPreference);
+ optionCategory.addPreference(settingsPreference);
+ preferenceScreen.addPreference(aboutCategory);
+ aboutCategory.addPreference(mConfigWarningPreference);
- @Override
- public View onCreateView(LayoutInflater inflater, ViewGroup container,
- Bundle savedInstanceState) {
- initShortcutPreference(savedInstanceState);
return super.onCreateView(inflater, container, savedInstanceState);
}
@@ -377,11 +385,6 @@ public class ToggleScreenMagnificationPreferenceFragment extends
}
}
- @Override
- public void onSwitchChanged(Switch switchView, boolean isChecked) {
- onPreferenceToggled(mPreferenceKey, isChecked);
- }
-
@Override
protected void onPreferenceToggled(String preferenceKey, boolean enabled) {
if (enabled && TextUtils.equals(
@@ -399,22 +402,8 @@ public class ToggleScreenMagnificationPreferenceFragment extends
protected void onInstallSwitchBarToggleSwitch() {
super.onInstallSwitchBarToggleSwitch();
- mSwitchBar.setCheckedInternal(
- MagnificationPreferenceFragment.isChecked(getContentResolver(), mPreferenceKey));
- mSwitchBar.addOnSwitchChangeListener(this);
- }
-
- @Override
- protected void onRemoveSwitchBarToggleSwitch() {
- super.onRemoveSwitchBarToggleSwitch();
- mSwitchBar.removeOnSwitchChangeListener(this);
- }
-
- @Override
- protected void updateSwitchBarText(SwitchBar switchBar) {
- final String switchBarText = getString(R.string.accessibility_service_master_switch_title,
- getString(R.string.accessibility_screen_magnification_title));
- switchBar.setSwitchBarText(switchBarText, switchBarText);
+ // Magnify is temporary-use app which uses shortcut to magnify screen, not by toggle.
+ mSwitchBar.hide();
}
@Override
@@ -429,13 +418,6 @@ public class ToggleScreenMagnificationPreferenceFragment extends
} else {
mVideoPreference.setVisible(false);
}
-
- if (arguments.containsKey(AccessibilitySettings.EXTRA_TITLE_RES)) {
- final int titleRes = arguments.getInt(AccessibilitySettings.EXTRA_TITLE_RES);
- if (titleRes > 0) {
- getActivity().setTitle(titleRes);
- }
- }
}
@Override
@@ -443,15 +425,35 @@ public class ToggleScreenMagnificationPreferenceFragment extends
if (preference.getChecked()) {
// TODO(b/142531156): Replace PreferredShortcutType.SOFTWARE value with dialog shortcut
// preferred key.
+ optInMagnificationValueToSettings(getContext(), PreferredShortcutType.SOFTWARE);
+
// TODO(b/142531156): ACCESSIBILITY_DISPLAY_MAGNIFICATION_ENABLED need to be treated
// as special case in this file.
- optInMagnificationValueToSettings(getContext(), PreferredShortcutType.SOFTWARE);
+ if ((mPreferredShortcutType & PreferredShortcutType.SOFTWARE)
+ == PreferredShortcutType.SOFTWARE) {
+ MagnificationPreferenceFragment.setChecked(getContentResolver(),
+ Settings.Secure.ACCESSIBILITY_DISPLAY_MAGNIFICATION_NAVBAR_ENABLED,
+ /* isChecked= */ true);
+ }
+ if ((mPreferredShortcutType & PreferredShortcutType.TRIPLETAP)
+ == PreferredShortcutType.TRIPLETAP) {
+ MagnificationPreferenceFragment.setChecked(getContentResolver(),
+ Settings.Secure.ACCESSIBILITY_DISPLAY_MAGNIFICATION_ENABLED,
+ /* isChecked= */ true);
+ }
} else {
// TODO(b/142531156): Replace PreferredShortcutType.SOFTWARE value with dialog shortcut
// preferred key.
+ optOutMagnificationValueFromSettings(getContext(), PreferredShortcutType.SOFTWARE);
+
// TODO(b/142531156): ACCESSIBILITY_DISPLAY_MAGNIFICATION_ENABLED need to be treated
// as special case in this file.
- optOutMagnificationValueFromSettings(getContext(), PreferredShortcutType.SOFTWARE);
+ MagnificationPreferenceFragment.setChecked(getContentResolver(),
+ Settings.Secure.ACCESSIBILITY_DISPLAY_MAGNIFICATION_NAVBAR_ENABLED,
+ /* isChecked= */ false);
+ MagnificationPreferenceFragment.setChecked(getContentResolver(),
+ Settings.Secure.ACCESSIBILITY_DISPLAY_MAGNIFICATION_ENABLED,
+ /* isChecked= */ false);
}
}
@@ -480,10 +482,7 @@ public class ToggleScreenMagnificationPreferenceFragment extends
mShortcutPreference.setTitle(R.string.accessibility_magnification_shortcut_title);
mShortcutPreference.setSummary(getShortcutTypeSummary(getPrefContext()));
mShortcutPreference.setOnClickListener(this);
- // Put the shortcutPreference before videoPreference.
- mShortcutPreference.setOrder(mVideoPreference.getOrder() - 1);
// TODO(b/142530063): Check the new setting key to decide which summary should be shown.
- preferenceScreen.addPreference(mShortcutPreference);
}
private void updateShortcutPreference() {