Merge "Make sure profile owner is system app" into lmp-dev
diff --git a/res/values/strings.xml b/res/values/strings.xml
index 554ffea..f410357 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -4761,6 +4761,11 @@
     <!-- UI debug setting: force use of NuPlayer summary [CHAR LIMIT=50] -->
     <string name="use_nuplayer_summary">Use NuPlayer instead of AwesomePlayer</string>
 
+    <!-- UI debug setting: disable USB audio routing title [CHAR LIMIT=25] -->
+    <string name="usb_audio_disable_routing">Disable USB audio routing</string>
+    <!-- UI debug setting: disable USB audio routing summary [CHAR LIMIT=50] -->
+    <string name="usb_audio_disable_routing_summary">Disable automatic routing to USB audio peripherals</string>
+
     <!-- UI debug setting: show layout bounds information [CHAR LIMIT=25] -->
     <string name="debug_layout">Show layout bounds</string>
     <!-- UI debug setting: show layout bounds information summary [CHAR LIMIT=50] -->
diff --git a/res/xml/development_prefs.xml b/res/xml/development_prefs.xml
index 854aa97..2a1a5bb 100644
--- a/res/xml/development_prefs.xml
+++ b/res/xml/development_prefs.xml
@@ -251,6 +251,11 @@
                 android:title="@string/use_nuplayer"
                 android:summary="@string/use_nuplayer_summary"/>
 
+        <CheckBoxPreference
+                android:key="usb_audio"
+                android:title="@string/usb_audio_disable_routing"
+                android:summary="@string/usb_audio_disable_routing_summary" />
+
     </PreferenceCategory>
 
     <PreferenceCategory android:key="debug_monitoring_category"
diff --git a/src/com/android/settings/DevelopmentSettings.java b/src/com/android/settings/DevelopmentSettings.java
index ba8e2f1..7b12e6f 100644
--- a/src/com/android/settings/DevelopmentSettings.java
+++ b/src/com/android/settings/DevelopmentSettings.java
@@ -117,6 +117,7 @@
     private static final String DISABLE_OVERLAYS_KEY = "disable_overlays";
     private static final String SIMULATE_COLOR_SPACE = "simulate_color_space";
     private static final String USE_NUPLAYER_KEY = "use_nuplayer";
+    private static final String USB_AUDIO_KEY = "usb_audio";
     private static final String USE_AWESOMEPLAYER_PROPERTY = "persist.sys.media.use-awesome";
     private static final String SHOW_CPU_USAGE_KEY = "show_cpu_usage";
     private static final String FORCE_HARDWARE_UI_KEY = "force_hw_ui";
@@ -222,6 +223,7 @@
     private ListPreference mSimulateColorSpace;
 
     private CheckBoxPreference mUseNuplayer;
+    private CheckBoxPreference mUSBAudio;
     private CheckBoxPreference mImmediatelyDestroyActivities;
 
     private ListPreference mAppProcessLimit;
@@ -343,6 +345,7 @@
         mOpenGLTraces = addListPreference(OPENGL_TRACES_KEY);
         mSimulateColorSpace = addListPreference(SIMULATE_COLOR_SPACE);
         mUseNuplayer = findAndInitCheckboxPref(USE_NUPLAYER_KEY);
+        mUSBAudio = findAndInitCheckboxPref(USB_AUDIO_KEY);
 
         mImmediatelyDestroyActivities = (CheckBoxPreference) findPreference(
                 IMMEDIATELY_DESTROY_ACTIVITIES_KEY);
@@ -549,6 +552,7 @@
         updateWifiAllowScansWithTrafficOptions();
         updateSimulateColorSpace();
         updateUseNuplayerOptions();
+        updateUSBAudioOptions();
     }
 
     private void resetDangerousOptions() {
@@ -1013,6 +1017,17 @@
         pokeSystemProperties();
     }
 
+    private void updateUSBAudioOptions() {
+        updateCheckBox(mUSBAudio, Settings.Secure.getInt(getContentResolver(),
+                Settings.Secure.USB_AUDIO_AUTOMATIC_ROUTING_DISABLED, 0) != 0);
+    }
+
+    private void writeUSBAudioOptions() {
+        Settings.Secure.putInt(getContentResolver(),
+                Settings.Secure.USB_AUDIO_AUTOMATIC_ROUTING_DISABLED,
+                    mUSBAudio.isChecked() ? 1 : 0);
+    }
+
     private void updateForceRtlOptions() {
         updateCheckBox(mForceRtlLayout, Settings.Global.getInt(getActivity().getContentResolver(),
                 Settings.Global.DEVELOPMENT_FORCE_RTL, 0) != 0);
@@ -1417,6 +1432,8 @@
             writeWifiAllowScansWithTrafficOptions();
         } else if (preference == mUseNuplayer) {
             writeUseNuplayerOptions();
+        } else if (preference == mUSBAudio) {
+            writeUSBAudioOptions();
         } else {
             return super.onPreferenceTreeClick(preferenceScreen, preference);
         }
diff --git a/src/com/android/settings/inputmethod/InputMethodAndLanguageSettings.java b/src/com/android/settings/inputmethod/InputMethodAndLanguageSettings.java
index c8b86ae..3528c56 100644
--- a/src/com/android/settings/inputmethod/InputMethodAndLanguageSettings.java
+++ b/src/com/android/settings/inputmethod/InputMethodAndLanguageSettings.java
@@ -807,33 +807,6 @@
                         R.string.builtin_keyboard_settings_title);
                 indexable.screenTitle = screenTitle;
                 indexables.add(indexable);
-
-                // Auto replace.
-                indexable = new SearchIndexableRaw(context);
-                indexable.key = "auto_replace";
-                indexable.title = context.getString(R.string.auto_replace);
-                indexable.summaryOn = context.getString(R.string.auto_replace_summary);
-                indexable.summaryOff = context.getString(R.string.auto_replace_summary);
-                indexable.screenTitle = screenTitle;
-                indexables.add(indexable);
-
-                // Auto caps.
-                indexable = new SearchIndexableRaw(context);
-                indexable.key = "auto_caps";
-                indexable.title = context.getString(R.string.auto_caps);
-                indexable.summaryOn = context.getString(R.string.auto_caps_summary);
-                indexable.summaryOff = context.getString(R.string.auto_caps_summary);
-                indexable.screenTitle = screenTitle;
-                indexables.add(indexable);
-
-                // Auto punctuate.
-                indexable = new SearchIndexableRaw(context);
-                indexable.key = "auto_punctuate";
-                indexable.title = context.getString(R.string.auto_punctuate);
-                indexable.summaryOn = context.getString(R.string.auto_punctuate_summary);
-                indexable.summaryOff = context.getString(R.string.auto_punctuate_summary);
-                indexable.screenTitle = screenTitle;
-                indexables.add(indexable);
             }
 
             // Voice input