Adding temporary setting for enabling touch exploration.

Change-Id: I81cef6f3bf4e533da1082bf836a74e38fe718af3
diff --git a/res/values/strings.xml b/res/values/strings.xml
index 2912291..8f61014 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -2693,6 +2693,8 @@
     <string name="accessibility_power_button_ends_call">Power button ends call</string>
     <!-- Accessibility settings: power button behavior summary text -->
     <string name="accessibility_power_button_ends_call_summary">During a call, pressing Power ends call instead of turning off screen</string>
+    <!-- Accessibility settings: touch exploration state -->
+    <string name="accessibility_touch_exploration_enabled">Touch exploration</string>
 
     <!-- Accessibility settings: button for lauching settings for an accessibility service -->
     <string name="settings_button">Settings</string>
diff --git a/res/xml/accessibility_settings.xml b/res/xml/accessibility_settings.xml
index 90aef84..feb5fb1 100644
--- a/res/xml/accessibility_settings.xml
+++ b/res/xml/accessibility_settings.xml
@@ -56,6 +56,10 @@
                 android:entries="@array/long_press_timeout_selector_titles"
                 android:entryValues="@array/long_press_timeout_selector_values"
                 android:defaultValue="@string/long_press_timeout_selector_default_value"/>
+        <CheckBoxPreference
+                android:key="touch_exploration_enabled"
+                android:title="@string/accessibility_touch_exploration_enabled"
+                android:persistent="false" />
     </PreferenceCategory>
 
 </PreferenceScreen>
diff --git a/src/com/android/settings/AccessibilitySettings.java b/src/com/android/settings/AccessibilitySettings.java
index bbb3678..52d5e92 100644
--- a/src/com/android/settings/AccessibilitySettings.java
+++ b/src/com/android/settings/AccessibilitySettings.java
@@ -74,6 +74,9 @@
     private static final String POWER_BUTTON_ENDS_CALL_CHECKBOX =
         "power_button_ends_call";
 
+    private static final String TOUCH_EXPLORATION_ENABLED_CHECKBOX =
+        "touch_exploration_enabled";
+
     private static final String KEY_TOGGLE_ACCESSIBILITY_SERVICE_CHECKBOX =
         "key_toggle_accessibility_service_checkbox";
 
@@ -92,6 +95,7 @@
 
     private PreferenceCategory mPowerButtonCategory;
     private CheckBoxPreference mPowerButtonEndsCallCheckBox;
+    private CheckBoxPreference mTouchExplorationEnabledCheckBox;
 
     private PreferenceGroup mAccessibilityServicesCategory;
 
@@ -127,6 +131,9 @@
         mPowerButtonEndsCallCheckBox = (CheckBoxPreference) findPreference(
                 POWER_BUTTON_ENDS_CALL_CHECKBOX);
 
+        mTouchExplorationEnabledCheckBox = (CheckBoxPreference) findPreference(
+                TOUCH_EXPLORATION_ENABLED_CHECKBOX);
+
         mLongPressTimeoutListPreference = (ListPreference) findPreference(
                 KEY_LONG_PRESS_TIMEOUT_LIST_PREFERENCE);
 
@@ -154,6 +161,10 @@
             getPreferenceScreen().removePreference(mPowerButtonCategory);
         }
 
+        boolean touchExplorationEnabled = (Settings.Secure.getInt(getContentResolver(),
+                Settings.Secure.TOUCH_EXPLORATION_REQUESTED, 0) == 1);
+        mTouchExplorationEnabledCheckBox.setChecked(touchExplorationEnabled);
+
         mLongPressTimeoutListPreference.setOnPreferenceChangeListener(this);
     }
 
@@ -295,6 +306,10 @@
                     Settings.Secure.INCALL_POWER_BUTTON_BEHAVIOR,
                     (isChecked ? Settings.Secure.INCALL_POWER_BUTTON_BEHAVIOR_HANGUP
                             : Settings.Secure.INCALL_POWER_BUTTON_BEHAVIOR_SCREEN_OFF));
+        } else if (TOUCH_EXPLORATION_ENABLED_CHECKBOX.equals(key)) {
+            final int touchExplorationState = ((CheckBoxPreference) preference).isChecked() ? 1 : 0;
+            Settings.Secure.putInt(getContentResolver(),
+                    Settings.Secure.TOUCH_EXPLORATION_REQUESTED, touchExplorationState);
         } else if (TOGGLE_ACCESSIBILITY_SCRIPT_INJECTION_CHECKBOX.equals(key)) {
             handleToggleAccessibilityScriptInjection((CheckBoxPreference) preference);
         } else if (preference instanceof CheckBoxPreference) {