Merge "Import translations. DO NOT MERGE" into rvc-dev
diff --git a/res/values/strings.xml b/res/values/strings.xml
index b60bca7..910aba4 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -1716,6 +1716,8 @@
 
     <!-- Wifi Display settings. The title of the screen. [CHAR LIMIT=40] -->
     <string name="wifi_display_settings_title">Cast</string>
+    <!-- Wifi Display settings. The keywords of the setting. [CHAR LIMIT=NONE] -->
+    <string name="keywords_wifi_display_settings">mirror</string>
     <!-- Wifi Display settings. The title of a menu item to enable wireless display [CHAR LIMIT=40] -->
     <string name="wifi_display_enable_menu_item">Enable wireless display</string>
     <!-- Wifi Display settings. Text that appears when scanning for devices is finished and no nearby device was found [CHAR LIMIT=40]-->
@@ -3283,6 +3285,8 @@
     <string name="storage_menu_free">Free up space</string>
     <!-- Storage setting. Menu option for accessing the storage manager settings. [CHAR LIMIT=30] -->
     <string name="storage_menu_manage">Manage storage</string>
+    <!-- Storage setting. Keywords for Free up space. [CHAR LIMIT=NONE] -->
+    <string name="keywords_storage_menu_free">clean, storage</string>
 
     <!-- Storage setting.  Title for USB transfer settings [CHAR LIMIT=30]-->
     <string name="storage_title_usb">USB computer connection</string>
@@ -4285,7 +4289,10 @@
     <!-- Category title listing recently used apps [CHAR_LIMIT=50]-->
     <string name="recent_app_category_title">Recently opened apps</string>
     <!-- Preference title for showing all apps on device [CHAR_LIMIT=50]-->
-    <string name="see_all_apps_title">See all <xliff:g id="count" example="3">%1$d</xliff:g> apps</string>
+    <plurals name="see_all_apps_title">
+        <item quantity="one">See all apps</item>
+        <item quantity="other">See all %1$d apps</item>
+    </plurals>
 
     <!-- Title of the dialog that asks the user to contact the IT admin to reset password [CHAR LIMIT=40] -->
     <string name="forgot_password_title">Contact your IT admin</string>
@@ -4692,6 +4699,8 @@
     <string name="keyboard_and_input_methods_category">Keyboards</string>
     <!-- Title for the 'virtual keyboard' preference sub-screen. [CHAR LIMIT=35] -->
     <string name="virtual_keyboard_category">On-screen keyboard</string>
+    <!-- Keywords for the 'virtual keyboard' preference sub-screen. [CHAR LIMIT=35] -->
+    <string name="keywords_virtual_keyboard">Gboard</string>
     <!-- Title for the 'available virtual keyboard' preference sub-screen. [CHAR LIMIT=35] -->
     <string name="available_virtual_keyboard_category">Available On-screen keyboard</string>
     <!-- Title for the button to trigger the 'Manage keyboards' preference sub-screen, where the user can turn on/off installed virtual keyboards.[CHAR LIMIT=35] -->
@@ -7748,6 +7757,9 @@
     <!-- Sound: Title for the option managing whether or not to vibrate when ringing. [CHAR LIMIT=30] -->
     <string name="vibrate_when_ringing_title">Vibrate for calls</string>
 
+    <!-- Sound: Keywords for Vibrate for calls. [CHAR LIMIT=NONE] -->
+    <string name="keywords_vibrate_for_calls">Vibration</string>
+
     <!-- Sound: Option for vibrate when ringing setting: Never vibrate. [CHAR LIMIT=40] -->
     <string name="vibrate_when_ringing_option_never_vibrate">Never vibrate</string>
 
diff --git a/res/xml/connected_devices_advanced.xml b/res/xml/connected_devices_advanced.xml
index 958af7f..3ff7d99 100644
--- a/res/xml/connected_devices_advanced.xml
+++ b/res/xml/connected_devices_advanced.xml
@@ -41,7 +41,8 @@
         android:title="@string/wifi_display_settings_title"
         android:icon="@drawable/ic_cast_24dp"
         android:order="-6"
-        settings:controller="com.android.settings.wfd.WifiDisplayPreferenceController"/>
+        settings:controller="com.android.settings.wfd.WifiDisplayPreferenceController"
+        settings:keywords="@string/keywords_wifi_display_settings"/>
 
     <com.android.settingslib.RestrictedPreference
         android:fragment="com.android.settings.nfc.AndroidBeam"
diff --git a/res/xml/language_and_input.xml b/res/xml/language_and_input.xml
index c3848e3..50968d9 100644
--- a/res/xml/language_and_input.xml
+++ b/res/xml/language_and_input.xml
@@ -33,7 +33,8 @@
         <Preference
             android:key="virtual_keyboard_pref"
             android:title="@string/virtual_keyboard_category"
-            android:fragment="com.android.settings.inputmethod.VirtualKeyboardFragment" />
+            android:fragment="com.android.settings.inputmethod.VirtualKeyboardFragment"
+            settings:keywords="@string/keywords_virtual_keyboard"/>
         <Preference
             android:key="physical_keyboard_pref"
             android:title="@string/physical_keyboard_title"
diff --git a/res/xml/sound_settings.xml b/res/xml/sound_settings.xml
index 92f8a3e..eca5f1e 100644
--- a/res/xml/sound_settings.xml
+++ b/res/xml/sound_settings.xml
@@ -96,7 +96,8 @@
         android:key="vibrate_for_calls"
         android:title="@string/vibrate_when_ringing_title"
         android:order="-130"
-        settings:controller="com.android.settings.sound.VibrateForCallsPreferenceController"/>
+        settings:controller="com.android.settings.sound.VibrateForCallsPreferenceController"
+        settings:keywords="@string/keywords_vibrate_for_calls"/>
 
     <!-- Interruptions -->
     <com.android.settingslib.RestrictedPreference
diff --git a/src/com/android/settings/applications/RecentAppsPreferenceController.java b/src/com/android/settings/applications/RecentAppsPreferenceController.java
index 69a68ef..20f9806 100644
--- a/src/com/android/settings/applications/RecentAppsPreferenceController.java
+++ b/src/com/android/settings/applications/RecentAppsPreferenceController.java
@@ -117,7 +117,8 @@
             @Override
             protected void onCountComplete(int num) {
                 mAppEntitiesController.setHeaderDetails(
-                        mContext.getString(R.string.see_all_apps_title, num));
+                        mContext.getResources().getQuantityString(R.plurals.see_all_apps_title,
+                                num, num));
                 mAppEntitiesController.apply();
             }
         }.execute();
diff --git a/src/com/android/settings/development/bluetooth/AbstractBluetoothPreferenceController.java b/src/com/android/settings/development/bluetooth/AbstractBluetoothPreferenceController.java
index 8abe162..6735115 100644
--- a/src/com/android/settings/development/bluetooth/AbstractBluetoothPreferenceController.java
+++ b/src/com/android/settings/development/bluetooth/AbstractBluetoothPreferenceController.java
@@ -19,6 +19,7 @@
 import android.bluetooth.BluetoothA2dp;
 import android.content.Context;
 
+import com.android.settings.core.PreferenceControllerMixin;
 import com.android.settings.development.BluetoothA2dpConfigStore;
 import com.android.settings.development.BluetoothServiceConnectionListener;
 import com.android.settingslib.core.lifecycle.Lifecycle;
@@ -31,7 +32,7 @@
  */
 public abstract class AbstractBluetoothPreferenceController extends
         DeveloperOptionsPreferenceController implements BluetoothServiceConnectionListener,
-        LifecycleObserver, OnDestroy {
+        LifecycleObserver, OnDestroy, PreferenceControllerMixin {
 
     protected volatile BluetoothA2dp mBluetoothA2dp;
 
diff --git a/src/com/android/settings/deviceinfo/StorageSettings.java b/src/com/android/settings/deviceinfo/StorageSettings.java
index 14f8dea..871844c 100644
--- a/src/com/android/settings/deviceinfo/StorageSettings.java
+++ b/src/com/android/settings/deviceinfo/StorageSettings.java
@@ -619,6 +619,7 @@
                     data.key = KEY_STORAGE_SETTINGS_FREE_SPACE;
                     data.screenTitle = context.getString(R.string.storage_menu_free);
                     data.intentAction = StorageManager.ACTION_MANAGE_STORAGE;
+                    data.keywords = context.getString(R.string.keywords_storage_menu_free);
                     result.add(data);
 
                     return result;