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() {