Revert "Accessibility settings refresh."
This reverts commit 89a5c62963
.
Change-Id: I97e420e4f78ee3e48b8aa10c8f5c1e2861032fab
This commit is contained in:
@@ -67,36 +67,4 @@
|
|||||||
<!-- If the support features are enabled. -->
|
<!-- If the support features are enabled. -->
|
||||||
<bool name="config_support_enabled">false</bool>
|
<bool name="config_support_enabled">false</bool>
|
||||||
|
|
||||||
<!-- List containing the component names of pre-installed screen reader services. -->
|
|
||||||
<string-array name="config_preinstalled_screen_reader_services" translatable="false">
|
|
||||||
<!--
|
|
||||||
<item>com.example.package.first/com.example.class.FirstService</item>
|
|
||||||
<item>com.example.package.second/com.example.class.SecondService</item>
|
|
||||||
-->
|
|
||||||
</string-array>
|
|
||||||
|
|
||||||
<!-- List containing the component names of pre-installed audio and captioning services. -->
|
|
||||||
<string-array name="config_preinstalled_audio_and_caption_services" translatable="false">
|
|
||||||
<!--
|
|
||||||
<item>com.example.package.first/com.example.class.FirstService</item>
|
|
||||||
<item>com.example.package.second/com.example.class.SecondService</item>
|
|
||||||
-->
|
|
||||||
</string-array>
|
|
||||||
|
|
||||||
<!-- List containing the component names of pre-installed display services. -->
|
|
||||||
<string-array name="config_preinstalled_display_services" translatable="false">
|
|
||||||
<!--
|
|
||||||
<item>com.example.package.first/com.example.class.FirstService</item>
|
|
||||||
<item>com.example.package.second/com.example.class.SecondService</item>
|
|
||||||
-->
|
|
||||||
</string-array>
|
|
||||||
|
|
||||||
<!-- List containing the component names of pre-installed interaction control services. -->
|
|
||||||
<string-array name="config_preinstalled_interaction_control_services" translatable="false">
|
|
||||||
<!--
|
|
||||||
<item>com.example.package.first/com.example.class.FirstService</item>
|
|
||||||
<item>com.example.package.second/com.example.class.SecondService</item>
|
|
||||||
-->
|
|
||||||
</string-array>
|
|
||||||
|
|
||||||
</resources>
|
</resources>
|
||||||
|
@@ -3974,22 +3974,18 @@
|
|||||||
<string name="vision_settings_title">Vision Settings</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] -->
|
<!-- 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">You can customize this device to fit your needs. These accessibility features can be changed later in Settings.</string>
|
<string name="vision_settings_description">You can customize this device to fit your needs. These accessibility features can be changed later in Settings.</string>
|
||||||
<!-- Title for the accessibility preference category of screen reader services and settings. [CHAR LIMIT=50] -->
|
<!-- Title for the accessibility preference category of accessibility services. [CHAR LIMIT=25] -->
|
||||||
<string name="screen_reader_category_title">Screen readers</string>
|
<string name="accessibility_services_title">Services</string>
|
||||||
<!-- Title for the accessibility preference category of audio services and settings. [CHAR LIMIT=50] -->
|
|
||||||
<string name="audio_and_captions_category_title">Audio & on-screen text</string>
|
|
||||||
<!-- Title for the accessibility preference category of display services and settings. [CHAR LIMIT=50] -->
|
|
||||||
<string name="display_category_title">Display</string>
|
|
||||||
<!-- Title for the accessibility preference category of interaction control services and settings. [CHAR LIMIT=50] -->
|
|
||||||
<string name="interaction_control_category_title">Interaction controls</string>
|
|
||||||
<!-- Title for the accessibility preference category of services downloaded by the user. [CHAR LIMIT=50] -->
|
|
||||||
<string name="user_installed_services_category_title">Downloaded services</string>
|
|
||||||
<!-- Title for the Talkback Accessibility Service. Displayed on the Accessibility Settings screen in Setup Wizard. [CHAR_LIMIT=25] -->
|
<!-- Title for the Talkback Accessibility Service. Displayed on the Accessibility Settings screen in Setup Wizard. [CHAR_LIMIT=25] -->
|
||||||
<string name="talkback_title">Talkback</string>
|
<string name="talkback_title">Talkback</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 and whether the service is on. [CHAR_LIMIT=none] -->
|
<!-- 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 and whether the service is on. [CHAR_LIMIT=none] -->
|
||||||
<string name="talkback_summary">Screen reader primarily for people with blindness and low vision</string>
|
<string name="talkback_summary">Screen reader primarily for people with blindness and low vision</string>
|
||||||
<!-- Summary for the Select to Speak Accessibility Service. [CHAR_LIMIT=none] -->
|
<!-- Summary for the Select to Speak Accessibility Service. [CHAR_LIMIT=none] -->
|
||||||
<string name="select_to_speak_summary">Tap items on your screen to hear them read aloud</string>
|
<string name="select_to_speak_summary">Tap items on your screen to hear them read aloud</string>
|
||||||
|
<!-- Title for the accessibility preference category of system related preferences. [CHAR LIMIT=25] -->
|
||||||
|
<string name="accessibility_system_title">System</string>
|
||||||
|
<!-- Title for the accessibility preference category of display related preferences. [CHAR LIMIT=25] -->
|
||||||
|
<string name="accessibility_display_title">Display</string>
|
||||||
<!-- Title for the accessibility preference screen to enable video captioning. [CHAR LIMIT=35] -->
|
<!-- Title for the accessibility preference screen to enable video captioning. [CHAR LIMIT=35] -->
|
||||||
<string name="accessibility_captioning_title">Captions</string>
|
<string name="accessibility_captioning_title">Captions</string>
|
||||||
<!-- Title for the accessibility preference screen to enable screen magnification. [CHAR LIMIT=35] -->
|
<!-- Title for the accessibility preference screen to enable screen magnification. [CHAR LIMIT=35] -->
|
||||||
@@ -4180,10 +4176,10 @@
|
|||||||
<string name="disable_service_message">Tapping OK will
|
<string name="disable_service_message">Tapping OK will
|
||||||
stop <xliff:g id="service" example="TalkBack">%1$s</xliff:g>.</string>
|
stop <xliff:g id="service" example="TalkBack">%1$s</xliff:g>.</string>
|
||||||
|
|
||||||
<!-- Title for the prompt shown as a placeholder if no accessibility services are installed. [CHAR LIMIT=50] -->
|
<!-- Title for the prompt shown as a placeholder if no accessibility serivices are installed. [CHAR LIMIT=50] -->
|
||||||
<string name="accessibility_no_services_installed">No services installed</string>
|
<string name="accessibility_no_services_installed">No services installed</string>
|
||||||
|
|
||||||
<!-- Default description for an accessibility service if the latter doesn't provide one. [CHAR LIMIT=NONE] -->
|
<!-- Default description for an accessibility serivice if the latter doesn't provide one. [CHAR LIMIT=NONE] -->
|
||||||
<string name="accessibility_service_default_description">No description provided.</string>
|
<string name="accessibility_service_default_description">No description provided.</string>
|
||||||
|
|
||||||
<!-- Accessibility settings: button for lauching settings for an accessibility service -->
|
<!-- Accessibility settings: button for lauching settings for an accessibility service -->
|
||||||
@@ -4204,7 +4200,7 @@
|
|||||||
<!-- Title for print service settings screen [CHAR LIMIT=25] -->
|
<!-- Title for print service settings screen [CHAR LIMIT=25] -->
|
||||||
<string name="print_settings_title">Print services</string>
|
<string name="print_settings_title">Print services</string>
|
||||||
|
|
||||||
<!-- Title for the prompt shown as a placeholder if no print services are installed. [CHAR LIMIT=50] -->
|
<!-- Title for the prompt shown as a placeholder if no print serivices are installed. [CHAR LIMIT=50] -->
|
||||||
<string name="print_no_services_installed">No services installed</string>
|
<string name="print_no_services_installed">No services installed</string>
|
||||||
|
|
||||||
<!-- Title for the prompt shown as a placeholder if no printers are found while searching. [CHAR LIMIT=50] -->
|
<!-- Title for the prompt shown as a placeholder if no printers are found while searching. [CHAR LIMIT=50] -->
|
||||||
|
@@ -18,28 +18,24 @@
|
|||||||
android:title="@string/accessibility_settings"
|
android:title="@string/accessibility_settings"
|
||||||
android:persistent="true">
|
android:persistent="true">
|
||||||
|
|
||||||
<ListPreference
|
|
||||||
android:key="accessibility_shortcut_preference"
|
|
||||||
android:title="@string/accessibility_global_gesture_preference_title"/>
|
|
||||||
|
|
||||||
<PreferenceCategory
|
<PreferenceCategory
|
||||||
android:key="user_installed_services_category"
|
android:key="services_category"
|
||||||
android:title="@string/user_installed_services_category_title">
|
android:title="@string/accessibility_services_title">
|
||||||
</PreferenceCategory>
|
</PreferenceCategory>
|
||||||
|
|
||||||
<PreferenceCategory
|
<PreferenceCategory
|
||||||
android:key="screen_reader_category"
|
android:key="system_category"
|
||||||
android:title="@string/screen_reader_category_title">
|
android:title="@string/accessibility_system_title">
|
||||||
|
|
||||||
<Preference
|
<Preference
|
||||||
android:key="tts_settings_preference"
|
android:fragment="com.android.settings.accessibility.CaptionPropertiesFragment"
|
||||||
android:fragment="com.android.settings.tts.TextToSpeechSettings"
|
android:key="captioning_preference_screen"
|
||||||
android:title="@string/tts_settings_title"/>
|
android:title="@string/accessibility_captioning_title" />
|
||||||
</PreferenceCategory>
|
|
||||||
|
|
||||||
<PreferenceCategory
|
<Preference
|
||||||
android:key="display_category"
|
android:fragment="com.android.settings.accessibility.ToggleScreenMagnificationPreferenceFragment"
|
||||||
android:title="@string/display_category_title">
|
android:key="screen_magnification_preference_screen"
|
||||||
|
android:title="@string/accessibility_screen_magnification_title"/>
|
||||||
|
|
||||||
<Preference
|
<Preference
|
||||||
android:fragment="com.android.settings.accessibility.ToggleFontSizePreferenceFragment"
|
android:fragment="com.android.settings.accessibility.ToggleFontSizePreferenceFragment"
|
||||||
@@ -51,40 +47,15 @@
|
|||||||
android:title="@string/screen_zoom_title"/>
|
android:title="@string/screen_zoom_title"/>
|
||||||
|
|
||||||
<Preference
|
<Preference
|
||||||
android:fragment="com.android.settings.accessibility.ToggleScreenMagnificationPreferenceFragment"
|
android:fragment="com.android.settings.accessibility.ToggleAutoclickPreferenceFragment"
|
||||||
android:key="screen_magnification_preference_screen"
|
android:key="autoclick_preference_screen"
|
||||||
android:title="@string/accessibility_screen_magnification_title"/>
|
android:title="@string/accessibility_autoclick_preference_title"/>
|
||||||
|
|
||||||
<SwitchPreference
|
<SwitchPreference
|
||||||
android:key="toggle_high_text_contrast_preference"
|
android:key="toggle_high_text_contrast_preference"
|
||||||
android:title="@string/accessibility_toggle_high_text_contrast_preference_title"
|
android:title="@string/accessibility_toggle_high_text_contrast_preference_title"
|
||||||
android:summary="@string/experimental_preference"/>
|
android:summary="@string/experimental_preference"/>
|
||||||
|
|
||||||
<SwitchPreference
|
|
||||||
android:key="toggle_inversion_preference"
|
|
||||||
android:title="@string/accessibility_display_inversion_preference_title"
|
|
||||||
android:summary="@string/accessibility_display_inversion_preference_subtitle"
|
|
||||||
android:persistent="false" />
|
|
||||||
|
|
||||||
<Preference
|
|
||||||
android:fragment="com.android.settings.accessibility.ToggleDaltonizerPreferenceFragment"
|
|
||||||
android:key="daltonizer_preference_screen"
|
|
||||||
android:title="@string/accessibility_display_daltonizer_preference_title" />
|
|
||||||
|
|
||||||
<SwitchPreference
|
|
||||||
android:key="toggle_large_pointer_icon"
|
|
||||||
android:title="@string/accessibility_toggle_large_pointer_icon_title" />
|
|
||||||
</PreferenceCategory>
|
|
||||||
|
|
||||||
<PreferenceCategory
|
|
||||||
android:key="interaction_control_category"
|
|
||||||
android:title="@string/interaction_control_category_title">
|
|
||||||
|
|
||||||
<Preference
|
|
||||||
android:fragment="com.android.settings.accessibility.ToggleAutoclickPreferenceFragment"
|
|
||||||
android:key="autoclick_preference_screen"
|
|
||||||
android:title="@string/accessibility_autoclick_preference_title"/>
|
|
||||||
|
|
||||||
<SwitchPreference
|
<SwitchPreference
|
||||||
android:key="toggle_power_button_ends_call_preference"
|
android:key="toggle_power_button_ends_call_preference"
|
||||||
android:title="@string/accessibility_power_button_ends_call_prerefence_title"
|
android:title="@string/accessibility_power_button_ends_call_prerefence_title"
|
||||||
@@ -95,17 +66,9 @@
|
|||||||
android:title="@string/accelerometer_title"
|
android:title="@string/accelerometer_title"
|
||||||
android:persistent="false"/>
|
android:persistent="false"/>
|
||||||
|
|
||||||
<ListPreference
|
<SwitchPreference
|
||||||
android:key="select_long_press_timeout_preference"
|
android:key="toggle_large_pointer_icon"
|
||||||
android:title="@string/accessibility_long_press_timeout_preference_title"
|
android:title="@string/accessibility_toggle_large_pointer_icon_title" />
|
||||||
android:entries="@array/long_press_timeout_selector_titles"
|
|
||||||
android:entryValues="@array/long_press_timeout_selector_values"
|
|
||||||
android:persistent="false"/>
|
|
||||||
</PreferenceCategory>
|
|
||||||
|
|
||||||
<PreferenceCategory
|
|
||||||
android:key="audio_and_captions_category"
|
|
||||||
android:title="@string/audio_and_captions_category_title">
|
|
||||||
|
|
||||||
<SwitchPreference
|
<SwitchPreference
|
||||||
android:key="toggle_master_mono"
|
android:key="toggle_master_mono"
|
||||||
@@ -113,9 +76,35 @@
|
|||||||
android:summary="@string/accessibility_toggle_master_mono_summary"
|
android:summary="@string/accessibility_toggle_master_mono_summary"
|
||||||
android:persistent="false"/>
|
android:persistent="false"/>
|
||||||
|
|
||||||
|
<ListPreference
|
||||||
|
android:key="accessibility_shortcut_preference"
|
||||||
|
android:title="@string/accessibility_global_gesture_preference_title"/>
|
||||||
|
|
||||||
<Preference
|
<Preference
|
||||||
android:fragment="com.android.settings.accessibility.CaptionPropertiesFragment"
|
android:key="tts_settings_preference"
|
||||||
android:key="captioning_preference_screen"
|
android:fragment="com.android.settings.tts.TextToSpeechSettings"
|
||||||
android:title="@string/accessibility_captioning_title" />
|
android:title="@string/tts_settings_title"/>
|
||||||
|
|
||||||
|
<ListPreference android:key="select_long_press_timeout_preference"
|
||||||
|
android:title="@string/accessibility_long_press_timeout_preference_title"
|
||||||
|
android:entries="@array/long_press_timeout_selector_titles"
|
||||||
|
android:entryValues="@array/long_press_timeout_selector_values"
|
||||||
|
android:persistent="false"/>
|
||||||
|
|
||||||
</PreferenceCategory>
|
</PreferenceCategory>
|
||||||
|
|
||||||
|
<PreferenceCategory
|
||||||
|
android:key="display_category"
|
||||||
|
android:title="@string/accessibility_display_title" >
|
||||||
|
<SwitchPreference
|
||||||
|
android:key="toggle_inversion_preference"
|
||||||
|
android:title="@string/accessibility_display_inversion_preference_title"
|
||||||
|
android:summary="@string/accessibility_display_inversion_preference_subtitle"
|
||||||
|
android:persistent="false" />
|
||||||
|
<Preference
|
||||||
|
android:fragment="com.android.settings.accessibility.ToggleDaltonizerPreferenceFragment"
|
||||||
|
android:key="daltonizer_preference_screen"
|
||||||
|
android:title="@string/accessibility_display_daltonizer_preference_title" />
|
||||||
|
</PreferenceCategory>
|
||||||
|
|
||||||
</PreferenceScreen>
|
</PreferenceScreen>
|
||||||
|
@@ -25,7 +25,6 @@ import android.content.DialogInterface;
|
|||||||
import android.content.pm.PackageManager;
|
import android.content.pm.PackageManager;
|
||||||
import android.content.pm.ServiceInfo;
|
import android.content.pm.ServiceInfo;
|
||||||
import android.content.res.Resources;
|
import android.content.res.Resources;
|
||||||
import android.graphics.drawable.Drawable;
|
|
||||||
import android.net.Uri;
|
import android.net.Uri;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.os.Handler;
|
import android.os.Handler;
|
||||||
@@ -36,9 +35,7 @@ import android.support.v14.preference.SwitchPreference;
|
|||||||
import android.support.v7.preference.ListPreference;
|
import android.support.v7.preference.ListPreference;
|
||||||
import android.support.v7.preference.Preference;
|
import android.support.v7.preference.Preference;
|
||||||
import android.support.v7.preference.PreferenceCategory;
|
import android.support.v7.preference.PreferenceCategory;
|
||||||
import android.support.v7.preference.PreferenceScreen;
|
|
||||||
import android.text.TextUtils;
|
import android.text.TextUtils;
|
||||||
import android.util.ArrayMap;
|
|
||||||
import android.view.KeyCharacterMap;
|
import android.view.KeyCharacterMap;
|
||||||
import android.view.KeyEvent;
|
import android.view.KeyEvent;
|
||||||
import android.view.accessibility.AccessibilityManager;
|
import android.view.accessibility.AccessibilityManager;
|
||||||
@@ -49,17 +46,18 @@ import com.android.internal.view.RotationPolicy;
|
|||||||
import com.android.internal.view.RotationPolicy.RotationPolicyListener;
|
import com.android.internal.view.RotationPolicy.RotationPolicyListener;
|
||||||
import com.android.settings.R;
|
import com.android.settings.R;
|
||||||
import com.android.settings.SettingsPreferenceFragment;
|
import com.android.settings.SettingsPreferenceFragment;
|
||||||
import com.android.settings.SingleLineSummaryPreference;
|
|
||||||
import com.android.settings.Utils;
|
import com.android.settings.Utils;
|
||||||
import com.android.settings.search.BaseSearchIndexProvider;
|
import com.android.settings.search.BaseSearchIndexProvider;
|
||||||
import com.android.settings.search.Indexable;
|
import com.android.settings.search.Indexable;
|
||||||
import com.android.settings.search.SearchIndexableRaw;
|
import com.android.settings.search.SearchIndexableRaw;
|
||||||
import com.android.settingslib.RestrictedLockUtils;
|
import com.android.settingslib.RestrictedLockUtils;
|
||||||
import com.android.settingslib.RestrictedLockUtils.EnforcedAdmin;
|
import com.android.settingslib.RestrictedLockUtils.EnforcedAdmin;
|
||||||
|
import com.android.settingslib.RestrictedPreference;
|
||||||
import com.android.settingslib.accessibility.AccessibilityUtils;
|
import com.android.settingslib.accessibility.AccessibilityUtils;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
|
import java.util.HashSet;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
@@ -70,20 +68,9 @@ import java.util.Set;
|
|||||||
public class AccessibilitySettings extends SettingsPreferenceFragment implements
|
public class AccessibilitySettings extends SettingsPreferenceFragment implements
|
||||||
Preference.OnPreferenceChangeListener, Indexable {
|
Preference.OnPreferenceChangeListener, Indexable {
|
||||||
|
|
||||||
// Index of the first preference in a preference category.
|
|
||||||
private static final int FIRST_PREFERENCE_IN_CATEGORY_INDEX = 0;
|
|
||||||
|
|
||||||
// Preference categories
|
// Preference categories
|
||||||
private static final String CATEGORY_SCREEN_READER = "screen_reader_category";
|
private static final String SERVICES_CATEGORY = "services_category";
|
||||||
private static final String CATEGORY_AUDIO_AND_CAPTIONS = "audio_and_captions_category";
|
private static final String SYSTEM_CATEGORY = "system_category";
|
||||||
private static final String CATEGORY_DISPLAY = "display_category";
|
|
||||||
private static final String CATEGORY_INTERACTION_CONTROL = "interaction_control_category";
|
|
||||||
private static final String CATEGORY_DOWNLOADED_SERVICES = "user_installed_services_category";
|
|
||||||
|
|
||||||
private static final String[] CATEGORIES = new String[] {
|
|
||||||
CATEGORY_SCREEN_READER, CATEGORY_AUDIO_AND_CAPTIONS, CATEGORY_DISPLAY,
|
|
||||||
CATEGORY_INTERACTION_CONTROL, CATEGORY_DOWNLOADED_SERVICES
|
|
||||||
};
|
|
||||||
|
|
||||||
// Preferences
|
// Preferences
|
||||||
private static final String TOGGLE_HIGH_TEXT_CONTRAST_PREFERENCE =
|
private static final String TOGGLE_HIGH_TEXT_CONTRAST_PREFERENCE =
|
||||||
@@ -131,7 +118,10 @@ public class AccessibilitySettings extends SettingsPreferenceFragment implements
|
|||||||
// ID for dialog that confirms shortcut capabilities
|
// ID for dialog that confirms shortcut capabilities
|
||||||
private static final int DIALOG_ID_ADD_SHORTCUT_WARNING = 1;
|
private static final int DIALOG_ID_ADD_SHORTCUT_WARNING = 1;
|
||||||
|
|
||||||
private final Map<String, String> mLongPressTimeoutValueToTitleMap = new HashMap<>();
|
// Auxiliary members.
|
||||||
|
static final Set<ComponentName> sInstalledServices = new HashSet<>();
|
||||||
|
|
||||||
|
private final Map<String, String> mLongPressTimeoutValuetoTitleMap = new HashMap<>();
|
||||||
|
|
||||||
private final Handler mHandler = new Handler();
|
private final Handler mHandler = new Handler();
|
||||||
|
|
||||||
@@ -139,7 +129,7 @@ public class AccessibilitySettings extends SettingsPreferenceFragment implements
|
|||||||
@Override
|
@Override
|
||||||
public void run() {
|
public void run() {
|
||||||
if (getActivity() != null) {
|
if (getActivity() != null) {
|
||||||
updateServicePreferences();
|
updateServicesPreferences();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
@@ -174,7 +164,7 @@ public class AccessibilitySettings extends SettingsPreferenceFragment implements
|
|||||||
new SettingsContentObserver(mHandler) {
|
new SettingsContentObserver(mHandler) {
|
||||||
@Override
|
@Override
|
||||||
public void onChange(boolean selfChange, Uri uri) {
|
public void onChange(boolean selfChange, Uri uri) {
|
||||||
updateServicePreferences();
|
updateServicesPreferences();
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -185,12 +175,9 @@ public class AccessibilitySettings extends SettingsPreferenceFragment implements
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
private final Map<String, PreferenceCategory> mCategoryToPrefCategoryMap =
|
// Preference controls.
|
||||||
new ArrayMap<>();
|
private PreferenceCategory mServicesCategory;
|
||||||
private final Map<Preference, PreferenceCategory> mServicePreferenceToPreferenceCategoryMap =
|
private PreferenceCategory mSystemsCategory;
|
||||||
new ArrayMap<>();
|
|
||||||
private final Map<ComponentName, PreferenceCategory> mPreBundledServiceComponentToCategoryMap =
|
|
||||||
new ArrayMap<>();
|
|
||||||
|
|
||||||
private SwitchPreference mToggleHighTextContrastPreference;
|
private SwitchPreference mToggleHighTextContrastPreference;
|
||||||
private SwitchPreference mTogglePowerButtonEndsCallPreference;
|
private SwitchPreference mTogglePowerButtonEndsCallPreference;
|
||||||
@@ -273,7 +260,7 @@ public class AccessibilitySettings extends SettingsPreferenceFragment implements
|
|||||||
Settings.Secure.putInt(getContentResolver(),
|
Settings.Secure.putInt(getContentResolver(),
|
||||||
Settings.Secure.LONG_PRESS_TIMEOUT, Integer.parseInt(stringValue));
|
Settings.Secure.LONG_PRESS_TIMEOUT, Integer.parseInt(stringValue));
|
||||||
mSelectLongPressTimeoutPreference.setSummary(
|
mSelectLongPressTimeoutPreference.setSummary(
|
||||||
mLongPressTimeoutValueToTitleMap.get(stringValue));
|
mLongPressTimeoutValuetoTitleMap.get(stringValue));
|
||||||
}
|
}
|
||||||
|
|
||||||
private void handleToggleInversionPreferenceChange(boolean checked) {
|
private void handleToggleInversionPreferenceChange(boolean checked) {
|
||||||
@@ -399,10 +386,8 @@ public class AccessibilitySettings extends SettingsPreferenceFragment implements
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void initializeAllPreferences() {
|
private void initializeAllPreferences() {
|
||||||
for (int i = 0; i < CATEGORIES.length; i++) {
|
mServicesCategory = (PreferenceCategory) findPreference(SERVICES_CATEGORY);
|
||||||
PreferenceCategory prefCategory = (PreferenceCategory) findPreference(CATEGORIES[i]);
|
mSystemsCategory = (PreferenceCategory) findPreference(SYSTEM_CATEGORY);
|
||||||
mCategoryToPrefCategoryMap.put(CATEGORIES[i], prefCategory);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Text contrast.
|
// Text contrast.
|
||||||
mToggleHighTextContrastPreference =
|
mToggleHighTextContrastPreference =
|
||||||
@@ -417,16 +402,14 @@ public class AccessibilitySettings extends SettingsPreferenceFragment implements
|
|||||||
(SwitchPreference) findPreference(TOGGLE_POWER_BUTTON_ENDS_CALL_PREFERENCE);
|
(SwitchPreference) findPreference(TOGGLE_POWER_BUTTON_ENDS_CALL_PREFERENCE);
|
||||||
if (!KeyCharacterMap.deviceHasKey(KeyEvent.KEYCODE_POWER)
|
if (!KeyCharacterMap.deviceHasKey(KeyEvent.KEYCODE_POWER)
|
||||||
|| !Utils.isVoiceCapable(getActivity())) {
|
|| !Utils.isVoiceCapable(getActivity())) {
|
||||||
mCategoryToPrefCategoryMap.get(CATEGORY_INTERACTION_CONTROL)
|
mSystemsCategory.removePreference(mTogglePowerButtonEndsCallPreference);
|
||||||
.removePreference(mTogglePowerButtonEndsCallPreference);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Lock screen rotation.
|
// Lock screen rotation.
|
||||||
mToggleLockScreenRotationPreference =
|
mToggleLockScreenRotationPreference =
|
||||||
(SwitchPreference) findPreference(TOGGLE_LOCK_SCREEN_ROTATION_PREFERENCE);
|
(SwitchPreference) findPreference(TOGGLE_LOCK_SCREEN_ROTATION_PREFERENCE);
|
||||||
if (!RotationPolicy.isRotationSupported(getActivity())) {
|
if (!RotationPolicy.isRotationSupported(getActivity())) {
|
||||||
mCategoryToPrefCategoryMap.get(CATEGORY_INTERACTION_CONTROL)
|
mSystemsCategory.removePreference(mToggleLockScreenRotationPreference);
|
||||||
.removePreference(mToggleLockScreenRotationPreference);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Large pointer icon.
|
// Large pointer icon.
|
||||||
@@ -441,7 +424,7 @@ public class AccessibilitySettings extends SettingsPreferenceFragment implements
|
|||||||
mSelectLongPressTimeoutPreference =
|
mSelectLongPressTimeoutPreference =
|
||||||
(ListPreference) findPreference(SELECT_LONG_PRESS_TIMEOUT_PREFERENCE);
|
(ListPreference) findPreference(SELECT_LONG_PRESS_TIMEOUT_PREFERENCE);
|
||||||
mSelectLongPressTimeoutPreference.setOnPreferenceChangeListener(this);
|
mSelectLongPressTimeoutPreference.setOnPreferenceChangeListener(this);
|
||||||
if (mLongPressTimeoutValueToTitleMap.size() == 0) {
|
if (mLongPressTimeoutValuetoTitleMap.size() == 0) {
|
||||||
String[] timeoutValues = getResources().getStringArray(
|
String[] timeoutValues = getResources().getStringArray(
|
||||||
R.array.long_press_timeout_selector_values);
|
R.array.long_press_timeout_selector_values);
|
||||||
mLongPressTimeoutDefault = Integer.parseInt(timeoutValues[0]);
|
mLongPressTimeoutDefault = Integer.parseInt(timeoutValues[0]);
|
||||||
@@ -449,7 +432,7 @@ public class AccessibilitySettings extends SettingsPreferenceFragment implements
|
|||||||
R.array.long_press_timeout_selector_titles);
|
R.array.long_press_timeout_selector_titles);
|
||||||
final int timeoutValueCount = timeoutValues.length;
|
final int timeoutValueCount = timeoutValues.length;
|
||||||
for (int i = 0; i < timeoutValueCount; i++) {
|
for (int i = 0; i < timeoutValueCount; i++) {
|
||||||
mLongPressTimeoutValueToTitleMap.put(timeoutValues[i], timeoutTitles[i]);
|
mLongPressTimeoutValuetoTitleMap.put(timeoutValues[i], timeoutTitles[i]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -476,32 +459,17 @@ public class AccessibilitySettings extends SettingsPreferenceFragment implements
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void updateAllPreferences() {
|
private void updateAllPreferences() {
|
||||||
|
updateServicesPreferences();
|
||||||
updateSystemPreferences();
|
updateSystemPreferences();
|
||||||
updateServicePreferences();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void updateServicePreferences() {
|
private void updateServicesPreferences() {
|
||||||
// Since services category is auto generated we have to do a pass
|
// Since services category is auto generated we have to do a pass
|
||||||
// to generate it since services can come and go and then based on
|
// to generate it since services can come and go and then based on
|
||||||
// the global accessibility state to decided whether it is enabled.
|
// the global accessibility state to decided whether it is enabled.
|
||||||
|
|
||||||
// Generate.
|
// Generate.
|
||||||
ArrayList<Preference> servicePreferences =
|
mServicesCategory.removeAll();
|
||||||
new ArrayList<>(mServicePreferenceToPreferenceCategoryMap.keySet());
|
|
||||||
for (int i = 0; i < servicePreferences.size(); i++) {
|
|
||||||
Preference service = servicePreferences.get(i);
|
|
||||||
PreferenceCategory category = mServicePreferenceToPreferenceCategoryMap.get(service);
|
|
||||||
category.removePreference(service);
|
|
||||||
}
|
|
||||||
|
|
||||||
initializePreBundledServicesMapFromArray(CATEGORY_SCREEN_READER,
|
|
||||||
R.array.config_preinstalled_screen_reader_services);
|
|
||||||
initializePreBundledServicesMapFromArray(CATEGORY_AUDIO_AND_CAPTIONS,
|
|
||||||
R.array.config_preinstalled_audio_and_caption_services);
|
|
||||||
initializePreBundledServicesMapFromArray(CATEGORY_DISPLAY,
|
|
||||||
R.array.config_preinstalled_display_services);
|
|
||||||
initializePreBundledServicesMapFromArray(CATEGORY_INTERACTION_CONTROL,
|
|
||||||
R.array.config_preinstalled_interaction_control_services);
|
|
||||||
|
|
||||||
AccessibilityManager accessibilityManager = AccessibilityManager.getInstance(getActivity());
|
AccessibilityManager accessibilityManager = AccessibilityManager.getInstance(getActivity());
|
||||||
|
|
||||||
@@ -514,49 +482,36 @@ public class AccessibilitySettings extends SettingsPreferenceFragment implements
|
|||||||
final boolean accessibilityEnabled = Settings.Secure.getInt(getContentResolver(),
|
final boolean accessibilityEnabled = Settings.Secure.getInt(getContentResolver(),
|
||||||
Settings.Secure.ACCESSIBILITY_ENABLED, 0) == 1;
|
Settings.Secure.ACCESSIBILITY_ENABLED, 0) == 1;
|
||||||
|
|
||||||
PreferenceCategory downloadedServicesCategory =
|
|
||||||
mCategoryToPrefCategoryMap.get(CATEGORY_DOWNLOADED_SERVICES);
|
|
||||||
// Temporarily add the downloaded services category back if it was previously removed.
|
|
||||||
if (findPreference(CATEGORY_DOWNLOADED_SERVICES) == null) {
|
|
||||||
getPreferenceScreen().addPreference(downloadedServicesCategory);
|
|
||||||
}
|
|
||||||
|
|
||||||
for (int i = 0, count = installedServices.size(); i < count; ++i) {
|
for (int i = 0, count = installedServices.size(); i < count; ++i) {
|
||||||
AccessibilityServiceInfo info = installedServices.get(i);
|
AccessibilityServiceInfo info = installedServices.get(i);
|
||||||
|
|
||||||
SingleLineSummaryPreference preference =
|
RestrictedPreference preference =
|
||||||
new SingleLineSummaryPreference(downloadedServicesCategory.getContext(), null);
|
new RestrictedPreference(mServicesCategory.getContext());
|
||||||
String title = info.getResolveInfo().loadLabel(getPackageManager()).toString();
|
String title = info.getResolveInfo().loadLabel(getPackageManager()).toString();
|
||||||
|
|
||||||
Drawable icon = info.getResolveInfo().loadIcon(getPackageManager());
|
|
||||||
if (icon == null) {
|
|
||||||
// todo (saigem): add a default
|
|
||||||
}
|
|
||||||
|
|
||||||
ServiceInfo serviceInfo = info.getResolveInfo().serviceInfo;
|
ServiceInfo serviceInfo = info.getResolveInfo().serviceInfo;
|
||||||
String packageName = serviceInfo.packageName;
|
ComponentName componentName = new ComponentName(serviceInfo.packageName,
|
||||||
ComponentName componentName = new ComponentName(packageName, serviceInfo.name);
|
serviceInfo.name);
|
||||||
String componentNameKey = componentName.flattenToString();
|
|
||||||
|
|
||||||
preference.setKey(componentName.flattenToString());
|
preference.setKey(componentName.flattenToString());
|
||||||
|
|
||||||
preference.setTitle(title);
|
preference.setTitle(title);
|
||||||
preference.setIcon(icon);
|
|
||||||
final boolean serviceEnabled = accessibilityEnabled
|
final boolean serviceEnabled = accessibilityEnabled
|
||||||
&& enabledServices.contains(componentName);
|
&& enabledServices.contains(componentName);
|
||||||
String serviceState = serviceEnabled ?
|
String serviceEnabledString;
|
||||||
getString(R.string.accessibility_feature_state_on) :
|
if (serviceEnabled) {
|
||||||
getString(R.string.accessibility_feature_state_off);
|
serviceEnabledString = getString(R.string.accessibility_feature_state_on);
|
||||||
String serviceSummary = info.loadSummary(getPackageManager());
|
} else {
|
||||||
serviceSummary = (TextUtils.isEmpty(serviceSummary)) ? serviceState.toUpperCase() :
|
serviceEnabledString = getString(R.string.accessibility_feature_state_off);
|
||||||
serviceState.toUpperCase() + " / " + serviceSummary;
|
}
|
||||||
|
|
||||||
// Disable all accessibility services that are not permitted.
|
// Disable all accessibility services that are not permitted.
|
||||||
|
String packageName = serviceInfo.packageName;
|
||||||
boolean serviceAllowed =
|
boolean serviceAllowed =
|
||||||
permittedServices == null || permittedServices.contains(packageName);
|
permittedServices == null || permittedServices.contains(packageName);
|
||||||
if (!serviceAllowed && !serviceEnabled) {
|
if (!serviceAllowed && !serviceEnabled) {
|
||||||
EnforcedAdmin admin = RestrictedLockUtils.checkIfAccessibilityServiceDisallowed(
|
EnforcedAdmin admin = RestrictedLockUtils.checkIfAccessibilityServiceDisallowed(
|
||||||
getActivity(), packageName, UserHandle.myUserId());
|
getActivity(), serviceInfo.packageName, UserHandle.myUserId());
|
||||||
if (admin != null) {
|
if (admin != null) {
|
||||||
preference.setDisabledByAdmin(admin);
|
preference.setDisabledByAdmin(admin);
|
||||||
} else {
|
} else {
|
||||||
@@ -566,7 +521,9 @@ public class AccessibilitySettings extends SettingsPreferenceFragment implements
|
|||||||
preference.setEnabled(true);
|
preference.setEnabled(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
preference.setSummary(serviceSummary);
|
preference.setSummary(serviceEnabledString);
|
||||||
|
|
||||||
|
preference.setOrder(i);
|
||||||
preference.setFragment(ToggleAccessibilityServicePreferenceFragment.class.getName());
|
preference.setFragment(ToggleAccessibilityServicePreferenceFragment.class.getName());
|
||||||
preference.setPersistent(true);
|
preference.setPersistent(true);
|
||||||
|
|
||||||
@@ -586,33 +543,26 @@ public class AccessibilitySettings extends SettingsPreferenceFragment implements
|
|||||||
extras.putString(EXTRA_SETTINGS_TITLE,
|
extras.putString(EXTRA_SETTINGS_TITLE,
|
||||||
getString(R.string.accessibility_menu_item_settings));
|
getString(R.string.accessibility_menu_item_settings));
|
||||||
extras.putString(EXTRA_SETTINGS_COMPONENT_NAME,
|
extras.putString(EXTRA_SETTINGS_COMPONENT_NAME,
|
||||||
new ComponentName(packageName, settingsClassName).flattenToString());
|
new ComponentName(info.getResolveInfo().serviceInfo.packageName,
|
||||||
|
settingsClassName).flattenToString());
|
||||||
}
|
}
|
||||||
|
|
||||||
extras.putParcelable(EXTRA_COMPONENT_NAME, componentName);
|
extras.putParcelable(EXTRA_COMPONENT_NAME, componentName);
|
||||||
|
|
||||||
PreferenceCategory prefCategory = downloadedServicesCategory;
|
mServicesCategory.addPreference(preference);
|
||||||
// Set the appropriate category if the service comes pre-installed.
|
|
||||||
if (mPreBundledServiceComponentToCategoryMap.containsKey(componentName)) {
|
|
||||||
prefCategory = mPreBundledServiceComponentToCategoryMap.get(componentName);
|
|
||||||
}
|
|
||||||
preference.setOrder(FIRST_PREFERENCE_IN_CATEGORY_INDEX);
|
|
||||||
prefCategory.addPreference(preference);
|
|
||||||
mServicePreferenceToPreferenceCategoryMap.put(preference, prefCategory);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// If the user has not installed any additional services, hide the category.
|
if (mServicesCategory.getPreferenceCount() == 0) {
|
||||||
if (downloadedServicesCategory.getPreferenceCount() == 0) {
|
if (mNoServicesMessagePreference == null) {
|
||||||
PreferenceScreen screen = getPreferenceScreen();
|
mNoServicesMessagePreference = new Preference(getPrefContext());
|
||||||
screen.removePreference(downloadedServicesCategory);
|
mNoServicesMessagePreference.setPersistent(false);
|
||||||
|
mNoServicesMessagePreference.setLayoutResource(
|
||||||
|
R.layout.text_description_preference);
|
||||||
|
mNoServicesMessagePreference.setSelectable(false);
|
||||||
|
mNoServicesMessagePreference.setSummary(
|
||||||
|
getString(R.string.accessibility_no_services_installed));
|
||||||
}
|
}
|
||||||
}
|
mServicesCategory.addPreference(mNoServicesMessagePreference);
|
||||||
|
|
||||||
private void initializePreBundledServicesMapFromArray(String categoryKey, int key) {
|
|
||||||
String[] services = getResources().getStringArray(key);
|
|
||||||
PreferenceCategory category = mCategoryToPrefCategoryMap.get(categoryKey);
|
|
||||||
for (int i = 0; i < services.length; i++) {
|
|
||||||
ComponentName component = ComponentName.unflattenFromString(services[i]);
|
|
||||||
mPreBundledServiceComponentToCategoryMap.put(component, category);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -652,7 +602,7 @@ public class AccessibilitySettings extends SettingsPreferenceFragment implements
|
|||||||
Settings.Secure.LONG_PRESS_TIMEOUT, mLongPressTimeoutDefault);
|
Settings.Secure.LONG_PRESS_TIMEOUT, mLongPressTimeoutDefault);
|
||||||
String value = String.valueOf(longPressTimeout);
|
String value = String.valueOf(longPressTimeout);
|
||||||
mSelectLongPressTimeoutPreference.setValue(value);
|
mSelectLongPressTimeoutPreference.setValue(value);
|
||||||
mSelectLongPressTimeoutPreference.setSummary(mLongPressTimeoutValueToTitleMap.get(value));
|
mSelectLongPressTimeoutPreference.setSummary(mLongPressTimeoutValuetoTitleMap.get(value));
|
||||||
|
|
||||||
updateFeatureSummary(Settings.Secure.ACCESSIBILITY_CAPTIONING_ENABLED,
|
updateFeatureSummary(Settings.Secure.ACCESSIBILITY_CAPTIONING_ENABLED,
|
||||||
mCaptioningPreferenceScreen);
|
mCaptioningPreferenceScreen);
|
||||||
|
Reference in New Issue
Block a user