Make A11y SUW launchable from SUW and small UX changes based on last round of
UX studies. Change-Id: I9c20cd3abf910a37731da2af604f3af2cd30e942
This commit is contained in:
@@ -1407,6 +1407,23 @@
|
|||||||
android:value="true" />
|
android:value="true" />
|
||||||
</activity>
|
</activity>
|
||||||
|
|
||||||
|
<activity android:name=".accessibility.AccessibilitySettingsForSetupWizardActivity"
|
||||||
|
android:label="@string/vision_settings_title"
|
||||||
|
android:theme="@style/SetupWizardAccessibilityTheme"
|
||||||
|
android:taskAffinity="com.android.wizard"
|
||||||
|
android:configChanges="orientation|keyboardHidden|screenSize" >
|
||||||
|
<intent-filter android:priority="1">
|
||||||
|
<action android:name="android.settings.ACCESSIBILITY_SETTINGS_FOR_SUW" />
|
||||||
|
<category android:name="android.intent.category.DEFAULT" />
|
||||||
|
</intent-filter>
|
||||||
|
<meta-data android:name="com.android.settings.category"
|
||||||
|
android:value="com.android.settings.category.system" />
|
||||||
|
<meta-data android:name="com.android.settings.FRAGMENT_CLASS"
|
||||||
|
android:value="com.android.settings.accessibility.AccessibilitySettingsForSetupWizard" />
|
||||||
|
<meta-data android:name="com.android.settings.PRIMARY_PROFILE_CONTROLLED"
|
||||||
|
android:value="true" />
|
||||||
|
</activity>
|
||||||
|
|
||||||
<activity android:name="Settings$AccessibilityDaltonizerSettingsActivity"
|
<activity android:name="Settings$AccessibilityDaltonizerSettingsActivity"
|
||||||
android:label="@string/accessibility_display_daltonizer_preference_title"
|
android:label="@string/accessibility_display_daltonizer_preference_title"
|
||||||
android:taskAffinity="com.android.settings"
|
android:taskAffinity="com.android.settings"
|
||||||
|
@@ -1,48 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<!-- Copyright (C) 2015 The Android Open Source Project
|
|
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
you may not use this file except in compliance with the License.
|
|
||||||
You may obtain a copy of the License at
|
|
||||||
|
|
||||||
http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
|
|
||||||
Unless required by applicable law or agreed to in writing, software
|
|
||||||
distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
See the License for the specific language governing permissions and
|
|
||||||
limitations under the License.
|
|
||||||
-->
|
|
||||||
|
|
||||||
<!-- Layout for a ButtonPreference. -->
|
|
||||||
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:orientation="vertical"
|
|
||||||
android:paddingBottom="@dimen/accessibility_button_preference_padding_top_bottom"
|
|
||||||
android:paddingTop="@dimen/accessibility_button_preference_padding_top_bottom"
|
|
||||||
android:paddingStart="@dimen/accessibility_layout_margin_start_end"
|
|
||||||
android:paddingEnd="@dimen/accessibility_layout_margin_start_end"
|
|
||||||
android:focusable="true"
|
|
||||||
android:selectable="false"
|
|
||||||
android:persistent="false" >
|
|
||||||
|
|
||||||
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
|
|
||||||
android:id="@+android:id/title"
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:textAppearance="?android:attr/textAppearanceLarge"
|
|
||||||
android:selectable="true"
|
|
||||||
android:persistent="false"
|
|
||||||
android:gravity="left|center" />
|
|
||||||
|
|
||||||
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
|
|
||||||
android:id="@+android:id/summary"
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:textAppearance="?android:attr/textAppearanceSmall"
|
|
||||||
android:selectable="true"
|
|
||||||
android:persistent="false"
|
|
||||||
android:gravity="left|center" />
|
|
||||||
|
|
||||||
</LinearLayout>
|
|
56
res/layout/preference_multiline_title.xml
Normal file
56
res/layout/preference_multiline_title.xml
Normal file
@@ -0,0 +1,56 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<!-- Copyright (C) 2016 The Android Open Source Project
|
||||||
|
|
||||||
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
you may not use this file except in compliance with the License.
|
||||||
|
You may obtain a copy of the License at
|
||||||
|
|
||||||
|
http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
|
||||||
|
Unless required by applicable law or agreed to in writing, software
|
||||||
|
distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
See the License for the specific language governing permissions and
|
||||||
|
limitations under the License.
|
||||||
|
-->
|
||||||
|
|
||||||
|
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:minHeight="?android:attr/listPreferredItemHeightSmall"
|
||||||
|
android:gravity="center_vertical"
|
||||||
|
android:paddingStart="?android:attr/listPreferredItemPaddingStart"
|
||||||
|
android:paddingEnd="?android:attr/listPreferredItemPaddingEnd"
|
||||||
|
android:background="?android:attr/selectableItemBackground">
|
||||||
|
|
||||||
|
<RelativeLayout
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_weight="1"
|
||||||
|
android:paddingTop="16dip"
|
||||||
|
android:paddingBottom="16dip">
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:id="@+android:id/title"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:textAppearance="@android:style/TextAppearance.Material.Subhead"
|
||||||
|
android:textColor="?android:attr/textColorPrimary"
|
||||||
|
android:ellipsize="marquee"
|
||||||
|
android:fadingEdge="horizontal" />
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:id="@android:id/summary"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_below="@android:id/title"
|
||||||
|
android:layout_alignStart="@android:id/title"
|
||||||
|
android:visibility="gone"
|
||||||
|
android:textAlignment="viewStart"
|
||||||
|
android:textAppearance="@android:style/TextAppearance.Material.Body1"
|
||||||
|
android:textColor="?android:attr/textColorSecondary"
|
||||||
|
android:maxLines="10" />
|
||||||
|
|
||||||
|
</RelativeLayout>
|
||||||
|
|
||||||
|
</LinearLayout>
|
@@ -103,4 +103,8 @@
|
|||||||
<color name="summary_default_start">#ff009587</color>
|
<color name="summary_default_start">#ff009587</color>
|
||||||
<color name="summary_default_end">#ffced7db</color>
|
<color name="summary_default_end">#ffced7db</color>
|
||||||
|
|
||||||
|
<!-- Accessibility SUW colors -->
|
||||||
|
<color name="material_blue_500">#4285F4</color>
|
||||||
|
<color name="material_blue_700">#3367D6</color>
|
||||||
|
|
||||||
</resources>
|
</resources>
|
||||||
|
@@ -3652,10 +3652,14 @@
|
|||||||
<string name="accessibility_settings">Accessibility</string>
|
<string name="accessibility_settings">Accessibility</string>
|
||||||
<!-- Settings title for accessibility settings screen -->
|
<!-- Settings title for accessibility settings screen -->
|
||||||
<string name="accessibility_settings_title">Accessibility settings</string>
|
<string name="accessibility_settings_title">Accessibility settings</string>
|
||||||
<!-- Settings title for a brief version of Accessibility Settings, as displayed in Setup Wizard -->
|
<!-- Settings title for a brief version of Vision-Related Accessibility Settings. Displayed in Setup Wizard only. [CHAR LIMIT=35] -->
|
||||||
<string name="accessibility_settings_for_setup_wizard_title">Guide me</string>
|
<string name="vision_settings_title">Vision Settings</string>
|
||||||
|
<!-- Settings description for a brief version of Vision-Related Accessibility Settings. Tells the user that they can adjust these settings now to help them through the remainder of the Setup Wizard and that they can later be changed in Settings. Displayed in Setup Wizard only. [CHAR LIMIT=none] -->
|
||||||
|
<string name="vision_settings_description">Adjust these settings now to assist you through the remainder of the set up process. You can adjust them any time in device settings.</string>
|
||||||
<!-- Title for the accessibility preference category of accessibility services. [CHAR LIMIT=25] -->
|
<!-- Title for the accessibility preference category of accessibility services. [CHAR LIMIT=25] -->
|
||||||
<string name="accessibility_services_title">Services</string>
|
<string name="accessibility_services_title">Services</string>
|
||||||
|
<!-- Summary for the Talkback Accessibility Service. Lets the user know that Talkback is a screenreader and that it is usually most helpful to blind and low vision users. [CHAR_LIMIT=none] -->
|
||||||
|
<string name="talkback_summary">Screenreader tool primarily for people with blindness and low vision</string>
|
||||||
<!-- Title for the accessibility preference category of system related preferences. [CHAR LIMIT=25] -->
|
<!-- Title for the accessibility preference category of system related preferences. [CHAR LIMIT=25] -->
|
||||||
<string name="accessibility_system_title">System</string>
|
<string name="accessibility_system_title">System</string>
|
||||||
<!-- Title for the accessibility preference category of display related preferences. [CHAR LIMIT=25] -->
|
<!-- Title for the accessibility preference category of display related preferences. [CHAR LIMIT=25] -->
|
||||||
@@ -6679,7 +6683,7 @@
|
|||||||
<string name="camera_double_tap_power_gesture_desc">Quickly open camera without unlocking your screen</string>
|
<string name="camera_double_tap_power_gesture_desc">Quickly open camera without unlocking your screen</string>
|
||||||
|
|
||||||
<!-- Title of setting that controls screen zoom (e.g. how large interface elements appear). [CHAR LIMIT=40] -->
|
<!-- Title of setting that controls screen zoom (e.g. how large interface elements appear). [CHAR LIMIT=40] -->
|
||||||
<string name="screen_zoom_title">Screen zoom</string>
|
<string name="screen_zoom_title">Magnify display</string>
|
||||||
<!-- Keywords for setting that controls screen zoom (e.g. how large interface elements appear). [CHAR LIMIT=NONE] -->
|
<!-- Keywords for setting that controls screen zoom (e.g. how large interface elements appear). [CHAR LIMIT=NONE] -->
|
||||||
<string name="screen_zoom_keywords">display density, screen zoom, scale, scaling</string>
|
<string name="screen_zoom_keywords">display density, screen zoom, scale, scaling</string>
|
||||||
<!-- Summary of screen zoom setting screen. [CHAR LIMIT=NONE] -->
|
<!-- Summary of screen zoom setting screen. [CHAR LIMIT=NONE] -->
|
||||||
|
@@ -103,7 +103,6 @@
|
|||||||
<item name="@android:preferenceStyle">@style/Preference</item>
|
<item name="@android:preferenceStyle">@style/Preference</item>
|
||||||
<item name="@dropdownPreferenceStyle">@style/Preference.DropDown.Material</item>
|
<item name="@dropdownPreferenceStyle">@style/Preference.DropDown.Material</item>
|
||||||
<item name="@android:preferenceFragmentStyle">@style/PreferenceFragmentStyle</item>
|
<item name="@android:preferenceFragmentStyle">@style/PreferenceFragmentStyle</item>
|
||||||
|
|
||||||
<item name="apnPreferenceStyle">@style/ApnPreference</item>
|
<item name="apnPreferenceStyle">@style/ApnPreference</item>
|
||||||
</style>
|
</style>
|
||||||
|
|
||||||
@@ -115,6 +114,14 @@
|
|||||||
<item name="android:layout">@layout/setup_preference</item>
|
<item name="android:layout">@layout/setup_preference</item>
|
||||||
</style>
|
</style>
|
||||||
|
|
||||||
|
<!-- Accessibility portion of Setup Wizard -->
|
||||||
|
<style name="SetupWizardAccessibilityTheme" parent="Theme.SettingsBase">
|
||||||
|
<item name="android:colorPrimary">@color/material_blue_700</item>
|
||||||
|
<item name="android:colorPrimaryDark">@color/material_blue_700</item>
|
||||||
|
<item name="preferenceTheme">@style/PreferenceTheme</item>
|
||||||
|
<item name="switchBarTheme">@style/ThemeOverlay.SwitchBar.Settings</item>
|
||||||
|
</style>
|
||||||
|
|
||||||
<!-- Theme with no local references, used by AccountPreferenceBase where we have to inflate
|
<!-- Theme with no local references, used by AccountPreferenceBase where we have to inflate
|
||||||
layouts against a remote context using our local theme colors. Due to the implementation
|
layouts against a remote context using our local theme colors. Due to the implementation
|
||||||
details of Theme, we can't reference any local resources and MUST instead use the values
|
details of Theme, we can't reference any local resources and MUST instead use the values
|
||||||
|
@@ -19,11 +19,6 @@
|
|||||||
android:title="@string/accessibility_settings"
|
android:title="@string/accessibility_settings"
|
||||||
android:persistent="true">
|
android:persistent="true">
|
||||||
|
|
||||||
<PreferenceScreen
|
|
||||||
android:key="accessibility_settings_for_setup_wizard"
|
|
||||||
android:title="@string/accessibility_settings_for_setup_wizard_title"
|
|
||||||
android:fragment="com.android.settings.accessibility.AccessibilitySettingsForSetupWizard" />
|
|
||||||
|
|
||||||
<PreferenceCategory
|
<PreferenceCategory
|
||||||
android:key="services_category"
|
android:key="services_category"
|
||||||
android:title="@string/accessibility_services_title">
|
android:title="@string/accessibility_services_title">
|
||||||
|
@@ -15,36 +15,34 @@
|
|||||||
-->
|
-->
|
||||||
|
|
||||||
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"
|
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
xmlns:settings="http://schemas.android.com/apk/res/com.android.settings"
|
android:title="@string/vision_settings_title"
|
||||||
android:title="@string/accessibility_settings_title"
|
|
||||||
android:persistent="true" >
|
android:persistent="true" >
|
||||||
|
|
||||||
<Preference
|
<Preference
|
||||||
android:fragment="com.android.settings.accessibility.ToggleScreenMagnificationPreferenceFragment"
|
android:key="vision_settings_summary"
|
||||||
android:key="screen_magnification_preference"
|
android:title="@string/vision_settings_description"
|
||||||
android:layout="@layout/preference_button"
|
android:layout="@layout/preference_multiline_title" />
|
||||||
android:title="@string/accessibility_screen_magnification_title" />
|
|
||||||
|
|
||||||
<Preference
|
|
||||||
android:key="font_size_preference"
|
|
||||||
android:layout="@layout/preference_button"
|
|
||||||
android:title="@string/title_font_size" />
|
|
||||||
|
|
||||||
<com.android.settings.display.ScreenZoomPreference
|
<com.android.settings.display.ScreenZoomPreference
|
||||||
android:key="force_density_preference"
|
android:key="force_density_preference"
|
||||||
android:layout="@layout/preference_button"
|
|
||||||
settings:keywords="@string/screen_zoom_keywords"
|
|
||||||
android:title="@string/screen_zoom_title"
|
android:title="@string/screen_zoom_title"
|
||||||
android:summary="%s" />
|
android:summary="%s" />
|
||||||
|
|
||||||
<Preference
|
<Preference
|
||||||
android:fragment="com.android.settings.accessibility.ToggleDaltonizerPreferenceFragment"
|
android:fragment="com.android.settings.accessibility.ToggleFontSizePreferenceFragment"
|
||||||
android:key="daltonizer_preference"
|
android:key="font_size_preference"
|
||||||
android:layout="@layout/preference_button"
|
android:title="@string/title_font_size" />
|
||||||
android:title="@string/accessibility_display_daltonizer_preference_title" />
|
|
||||||
|
<Preference
|
||||||
|
android:fragment=
|
||||||
|
"com.android.settings.accessibility.ToggleScreenMagnificationPreferenceFragment"
|
||||||
|
android:key="screen_magnification_preference"
|
||||||
|
android:title="@string/accessibility_screen_magnification_title"
|
||||||
|
android:summary="%s" />
|
||||||
|
|
||||||
<Preference
|
<Preference
|
||||||
android:key="talkback_preference"
|
android:key="talkback_preference"
|
||||||
android:layout="@layout/preference_button" />
|
android:summary="@string/talkback_summary"
|
||||||
|
android:persistent="true" />
|
||||||
|
|
||||||
</PreferenceScreen>
|
</PreferenceScreen>
|
||||||
|
@@ -53,6 +53,7 @@ import android.widget.SearchView;
|
|||||||
import com.android.internal.util.ArrayUtils;
|
import com.android.internal.util.ArrayUtils;
|
||||||
import com.android.settings.Settings.WifiSettingsActivity;
|
import com.android.settings.Settings.WifiSettingsActivity;
|
||||||
import com.android.settings.accessibility.AccessibilitySettings;
|
import com.android.settings.accessibility.AccessibilitySettings;
|
||||||
|
import com.android.settings.accessibility.AccessibilitySettingsForSetupWizard;
|
||||||
import com.android.settings.accessibility.CaptionPropertiesFragment;
|
import com.android.settings.accessibility.CaptionPropertiesFragment;
|
||||||
import com.android.settings.accounts.AccountSettings;
|
import com.android.settings.accounts.AccountSettings;
|
||||||
import com.android.settings.accounts.AccountSyncSettings;
|
import com.android.settings.accounts.AccountSyncSettings;
|
||||||
@@ -264,6 +265,7 @@ public class SettingsActivity extends SettingsDrawerActivity
|
|||||||
PrivacySettings.class.getName(),
|
PrivacySettings.class.getName(),
|
||||||
DeviceAdminSettings.class.getName(),
|
DeviceAdminSettings.class.getName(),
|
||||||
AccessibilitySettings.class.getName(),
|
AccessibilitySettings.class.getName(),
|
||||||
|
AccessibilitySettingsForSetupWizard.class.getName(),
|
||||||
CaptionPropertiesFragment.class.getName(),
|
CaptionPropertiesFragment.class.getName(),
|
||||||
com.android.settings.accessibility.ToggleDaltonizerPreferenceFragment.class.getName(),
|
com.android.settings.accessibility.ToggleDaltonizerPreferenceFragment.class.getName(),
|
||||||
TextToSpeechSettings.class.getName(),
|
TextToSpeechSettings.class.getName(),
|
||||||
|
@@ -40,6 +40,7 @@ import android.view.MenuInflater;
|
|||||||
import android.view.View;
|
import android.view.View;
|
||||||
import android.view.ViewGroup;
|
import android.view.ViewGroup;
|
||||||
import android.widget.Button;
|
import android.widget.Button;
|
||||||
|
import com.android.settings.accessibility.AccessibilitySettingsForSetupWizardActivity;
|
||||||
import com.android.settings.applications.LayoutPreference;
|
import com.android.settings.applications.LayoutPreference;
|
||||||
import com.android.settings.widget.FloatingActionButton;
|
import com.android.settings.widget.FloatingActionButton;
|
||||||
|
|
||||||
@@ -148,7 +149,8 @@ public abstract class SettingsPreferenceFragment extends InstrumentedPreferenceF
|
|||||||
@Override
|
@Override
|
||||||
public void onActivityCreated(Bundle savedInstanceState) {
|
public void onActivityCreated(Bundle savedInstanceState) {
|
||||||
super.onActivityCreated(savedInstanceState);
|
super.onActivityCreated(savedInstanceState);
|
||||||
if (!TextUtils.isEmpty(mHelpUri)) {
|
if (!TextUtils.isEmpty(mHelpUri)
|
||||||
|
&& !(getActivity() instanceof AccessibilitySettingsForSetupWizardActivity)) {
|
||||||
setHasOptionsMenu(true);
|
setHasOptionsMenu(true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -16,15 +16,24 @@
|
|||||||
|
|
||||||
package com.android.settings.accessibility;
|
package com.android.settings.accessibility;
|
||||||
|
|
||||||
|
import android.accessibilityservice.AccessibilityServiceInfo;
|
||||||
|
import android.content.ComponentName;
|
||||||
|
import android.content.ContentResolver;
|
||||||
|
import android.content.Context;
|
||||||
|
import android.content.pm.ServiceInfo;
|
||||||
import android.content.res.Resources;
|
import android.content.res.Resources;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.provider.Settings;
|
import android.provider.Settings;
|
||||||
import android.support.v7.preference.Preference;
|
import android.support.v7.preference.Preference;
|
||||||
|
import android.view.accessibility.AccessibilityManager;
|
||||||
|
|
||||||
import com.android.internal.logging.MetricsLogger;
|
import com.android.internal.logging.MetricsLogger;
|
||||||
import com.android.settings.DialogCreatable;
|
import com.android.settings.DialogCreatable;
|
||||||
import com.android.settings.R;
|
import com.android.settings.R;
|
||||||
import com.android.settings.SettingsPreferenceFragment;
|
import com.android.settings.SettingsPreferenceFragment;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Activity with the accessibility settings specific to Setup Wizard.
|
* Activity with the accessibility settings specific to Setup Wizard.
|
||||||
*/
|
*/
|
||||||
@@ -34,7 +43,6 @@ public class AccessibilitySettingsForSetupWizard extends SettingsPreferenceFragm
|
|||||||
// Preferences.
|
// Preferences.
|
||||||
private static final String DISPLAY_MAGNIFICATION_PREFERENCE =
|
private static final String DISPLAY_MAGNIFICATION_PREFERENCE =
|
||||||
"screen_magnification_preference";
|
"screen_magnification_preference";
|
||||||
private static final String DISPLAY_DALTONIZER_PREFERENCE = "daltonizer_preference";
|
|
||||||
private static final String TALKBACK_PREFERENCE = "talkback_preference";
|
private static final String TALKBACK_PREFERENCE = "talkback_preference";
|
||||||
private static final String FONT_SIZE_PREFERENCE = "font_size_preference";
|
private static final String FONT_SIZE_PREFERENCE = "font_size_preference";
|
||||||
|
|
||||||
@@ -42,7 +50,6 @@ public class AccessibilitySettingsForSetupWizard extends SettingsPreferenceFragm
|
|||||||
|
|
||||||
// Preference controls.
|
// Preference controls.
|
||||||
private Preference mDisplayMagnificationPreference;
|
private Preference mDisplayMagnificationPreference;
|
||||||
private Preference mDisplayDaltonizerPreference;
|
|
||||||
private Preference mFontSizePreference;
|
private Preference mFontSizePreference;
|
||||||
private Preference mTalkbackPreference;
|
private Preference mTalkbackPreference;
|
||||||
|
|
||||||
@@ -62,7 +69,6 @@ public class AccessibilitySettingsForSetupWizard extends SettingsPreferenceFragm
|
|||||||
addPreferencesFromResource(R.xml.accessibility_settings_for_setup_wizard);
|
addPreferencesFromResource(R.xml.accessibility_settings_for_setup_wizard);
|
||||||
|
|
||||||
mDisplayMagnificationPreference = findPreference(DISPLAY_MAGNIFICATION_PREFERENCE);
|
mDisplayMagnificationPreference = findPreference(DISPLAY_MAGNIFICATION_PREFERENCE);
|
||||||
mDisplayDaltonizerPreference = findPreference(DISPLAY_DALTONIZER_PREFERENCE);
|
|
||||||
mFontSizePreference = findPreference(FONT_SIZE_PREFERENCE);
|
mFontSizePreference = findPreference(FONT_SIZE_PREFERENCE);
|
||||||
|
|
||||||
mTalkbackPreference = findPreference(TALKBACK_PREFERENCE);
|
mTalkbackPreference = findPreference(TALKBACK_PREFERENCE);
|
||||||
@@ -86,6 +92,43 @@ public class AccessibilitySettingsForSetupWizard extends SettingsPreferenceFragm
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns a semicolon-delimited string containing a list of all the
|
||||||
|
* installed {@link AccessibilityService}s that provide at least one
|
||||||
|
* required feedback type.
|
||||||
|
*
|
||||||
|
* @param context The {@link android.app.Activity} context.
|
||||||
|
* @param requiredFeedbackTypes An integer mask containing the required
|
||||||
|
* feedback types.
|
||||||
|
* @return A semicolon-delimited string containing a list of accessibility services.
|
||||||
|
*/
|
||||||
|
private String getAccessibilityServicesFiltered(
|
||||||
|
Context context, int requiredFeedbackTypes) {
|
||||||
|
final AccessibilityManager manager = context.getSystemService(AccessibilityManager.class);
|
||||||
|
final List<AccessibilityServiceInfo> accessibilityServices = manager
|
||||||
|
.getInstalledAccessibilityServiceList();
|
||||||
|
final StringBuilder servicesToEnable = new StringBuilder();
|
||||||
|
|
||||||
|
for (AccessibilityServiceInfo accessibilityService : accessibilityServices) {
|
||||||
|
if ((accessibilityService.feedbackType & requiredFeedbackTypes) == 0) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
final ServiceInfo serviceInfo = accessibilityService.getResolveInfo().serviceInfo;
|
||||||
|
final ComponentName componentName = new ComponentName(serviceInfo.packageName,
|
||||||
|
serviceInfo.name);
|
||||||
|
|
||||||
|
servicesToEnable.append(componentName.flattenToString());
|
||||||
|
servicesToEnable.append(':');
|
||||||
|
}
|
||||||
|
|
||||||
|
if (servicesToEnable.length() > 0) {
|
||||||
|
servicesToEnable.deleteCharAt(servicesToEnable.length() - 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
return servicesToEnable.toString();
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean onPreferenceTreeClick(Preference preference) {
|
public boolean onPreferenceTreeClick(Preference preference) {
|
||||||
if (mDisplayMagnificationPreference == preference) {
|
if (mDisplayMagnificationPreference == preference) {
|
||||||
@@ -98,6 +141,32 @@ public class AccessibilitySettingsForSetupWizard extends SettingsPreferenceFragm
|
|||||||
extras.putBoolean(AccessibilitySettings.EXTRA_CHECKED,
|
extras.putBoolean(AccessibilitySettings.EXTRA_CHECKED,
|
||||||
Settings.Secure.getInt(getContentResolver(),
|
Settings.Secure.getInt(getContentResolver(),
|
||||||
Settings.Secure.ACCESSIBILITY_DISPLAY_MAGNIFICATION_ENABLED, 0) == 1);
|
Settings.Secure.ACCESSIBILITY_DISPLAY_MAGNIFICATION_ENABLED, 0) == 1);
|
||||||
|
} else if (mTalkbackPreference == preference) {
|
||||||
|
// Toggle Talkback. The tutorial will automatically start when Talkback is first
|
||||||
|
// activated.
|
||||||
|
final ContentResolver resolver = getContentResolver();
|
||||||
|
|
||||||
|
final boolean enable =
|
||||||
|
Settings.Secure.getInt(resolver, Settings.Secure.ACCESSIBILITY_ENABLED, 0) == 0;
|
||||||
|
final String servicesToEnable = getAccessibilityServicesFiltered(
|
||||||
|
getActivity(), AccessibilityServiceInfo.FEEDBACK_SPOKEN);
|
||||||
|
|
||||||
|
// Enable all accessibility services with spoken feedback type.
|
||||||
|
Settings.Secure.putString(resolver, Settings.Secure.ENABLED_ACCESSIBILITY_SERVICES,
|
||||||
|
enable ? servicesToEnable : "");
|
||||||
|
|
||||||
|
// Allow the services we just enabled to toggle touch exploration.
|
||||||
|
Settings.Secure.putString(resolver,
|
||||||
|
Settings.Secure.TOUCH_EXPLORATION_GRANTED_ACCESSIBILITY_SERVICES,
|
||||||
|
enable ? servicesToEnable : "");
|
||||||
|
|
||||||
|
// Enable touch exploration.
|
||||||
|
Settings.Secure.putInt(resolver, Settings.Secure.TOUCH_EXPLORATION_ENABLED,
|
||||||
|
enable ? 1 : 0);
|
||||||
|
|
||||||
|
// Turn on accessibility mode last, since enabling accessibility with no
|
||||||
|
// services has no effect.
|
||||||
|
Settings.Secure.putInt(resolver, Settings.Secure.ACCESSIBILITY_ENABLED, enable ? 1 : 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
return super.onPreferenceTreeClick(preference);
|
return super.onPreferenceTreeClick(preference);
|
||||||
@@ -106,8 +175,6 @@ public class AccessibilitySettingsForSetupWizard extends SettingsPreferenceFragm
|
|||||||
private void updatePreferences() {
|
private void updatePreferences() {
|
||||||
updateFeatureSummary(Settings.Secure.ACCESSIBILITY_DISPLAY_MAGNIFICATION_ENABLED,
|
updateFeatureSummary(Settings.Secure.ACCESSIBILITY_DISPLAY_MAGNIFICATION_ENABLED,
|
||||||
mDisplayMagnificationPreference);
|
mDisplayMagnificationPreference);
|
||||||
updateFeatureSummary(Settings.Secure.ACCESSIBILITY_DISPLAY_DALTONIZER_ENABLED,
|
|
||||||
mDisplayDaltonizerPreference);
|
|
||||||
updateFontSizeSummary(mFontSizePreference);
|
updateFontSizeSummary(mFontSizePreference);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -0,0 +1,56 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (C) 2015 The Android Open Source Project
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package com.android.settings.accessibility;
|
||||||
|
|
||||||
|
import android.app.Fragment;
|
||||||
|
import android.os.Bundle;
|
||||||
|
import android.view.Menu;
|
||||||
|
import android.view.MenuItem;
|
||||||
|
|
||||||
|
import com.android.settings.R;
|
||||||
|
import com.android.settings.SettingsActivity;
|
||||||
|
|
||||||
|
public class AccessibilitySettingsForSetupWizardActivity extends SettingsActivity {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean onCreateOptionsMenu(Menu menu) {
|
||||||
|
// Return true, so we get notified when items in the menu are clicked.
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean onOptionsItemSelected(MenuItem item) {
|
||||||
|
onBackPressed();
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void startPreferencePanel(String fragmentClass, Bundle args, int titleRes,
|
||||||
|
CharSequence titleText, Fragment resultTo, int resultRequestCode) {
|
||||||
|
startPreferenceFragment(Fragment.instantiate(this, fragmentClass, args), true);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void openDrawer() {
|
||||||
|
// Do nothing.
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void closeDrawer() {
|
||||||
|
// Do nothing.
|
||||||
|
}
|
||||||
|
}
|
@@ -99,7 +99,6 @@ public abstract class ToggleFeaturePreferenceFragment
|
|||||||
@Override
|
@Override
|
||||||
public void onActivityCreated(Bundle savedInstanceState) {
|
public void onActivityCreated(Bundle savedInstanceState) {
|
||||||
super.onActivityCreated(savedInstanceState);
|
super.onActivityCreated(savedInstanceState);
|
||||||
setHasOptionsMenu(true);
|
|
||||||
installActionBarToggleSwitch();
|
installActionBarToggleSwitch();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -16,6 +16,7 @@
|
|||||||
|
|
||||||
package com.android.settings.accessibility;
|
package com.android.settings.accessibility;
|
||||||
|
|
||||||
|
import android.os.Bundle;
|
||||||
import android.provider.Settings;
|
import android.provider.Settings;
|
||||||
|
|
||||||
import com.android.internal.logging.MetricsLogger;
|
import com.android.internal.logging.MetricsLogger;
|
||||||
@@ -24,10 +25,10 @@ import com.android.settings.widget.ToggleSwitch.OnBeforeCheckedChangeListener;
|
|||||||
|
|
||||||
public class ToggleScreenMagnificationPreferenceFragment
|
public class ToggleScreenMagnificationPreferenceFragment
|
||||||
extends ToggleFeaturePreferenceFragment {
|
extends ToggleFeaturePreferenceFragment {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void onPreferenceToggled(String preferenceKey, boolean enabled) {
|
protected void onPreferenceToggled(String preferenceKey, boolean enabled) {
|
||||||
Settings.Secure.putInt(getContentResolver(),
|
// Do nothing.
|
||||||
Settings.Secure.ACCESSIBILITY_DISPLAY_MAGNIFICATION_ENABLED, enabled ? 1 : 0);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -44,6 +45,30 @@ public class ToggleScreenMagnificationPreferenceFragment
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onResume() {
|
||||||
|
super.onResume();
|
||||||
|
|
||||||
|
// Temporarily enable Magnification on this screen if it's disabled.
|
||||||
|
if (Settings.Secure.getInt(getContentResolver(),
|
||||||
|
Settings.Secure.ACCESSIBILITY_DISPLAY_MAGNIFICATION_ENABLED, 0) == 0) {
|
||||||
|
setMagnificationEnabled(1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onPause() {
|
||||||
|
super.onPause();
|
||||||
|
if (!mToggleSwitch.isChecked()) {
|
||||||
|
setMagnificationEnabled(0);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void setMagnificationEnabled(int enabled) {
|
||||||
|
Settings.Secure.putInt(getContentResolver(),
|
||||||
|
Settings.Secure.ACCESSIBILITY_DISPLAY_MAGNIFICATION_ENABLED, enabled);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected int getMetricsCategory() {
|
protected int getMetricsCategory() {
|
||||||
return MetricsLogger.ACCESSIBILITY_TOGGLE_SCREEN_MAGNIFICATION;
|
return MetricsLogger.ACCESSIBILITY_TOGGLE_SCREEN_MAGNIFICATION;
|
||||||
|
Reference in New Issue
Block a user