Merge "docs: Use more inclusive pronouns" into rvc-dev
diff --git a/core/java/android/view/inputmethod/EditorInfo.java b/core/java/android/view/inputmethod/EditorInfo.java
index 07fef76..c5f2299 100644
--- a/core/java/android/view/inputmethod/EditorInfo.java
+++ b/core/java/android/view/inputmethod/EditorInfo.java
@@ -27,6 +27,7 @@
 import android.os.Parcel;
 import android.os.Parcelable;
 import android.os.UserHandle;
+import android.text.Editable;
 import android.text.InputType;
 import android.text.TextUtils;
 import android.util.Printer;
@@ -567,7 +568,8 @@
      *                      editor wants to trim out the first 10 chars, subTextStart should be 10.
      */
     public void setInitialSurroundingSubText(@NonNull CharSequence subText, int subTextStart) {
-        Objects.requireNonNull(subText);
+        CharSequence newSubText = Editable.Factory.getInstance().newEditable(subText);
+        Objects.requireNonNull(newSubText);
 
         // Swap selection start and end if necessary.
         final int subTextSelStart = initialSelStart > initialSelEnd
@@ -575,7 +577,7 @@
         final int subTextSelEnd = initialSelStart > initialSelEnd
                 ? initialSelStart - subTextStart : initialSelEnd - subTextStart;
 
-        final int subTextLength = subText.length();
+        final int subTextLength = newSubText.length();
         // Unknown or invalid selection.
         if (subTextStart < 0 || subTextSelStart < 0 || subTextSelEnd > subTextLength) {
             mInitialSurroundingText = new InitialSurroundingText();
@@ -589,12 +591,12 @@
         }
 
         if (subTextLength <= MEMORY_EFFICIENT_TEXT_LENGTH) {
-            mInitialSurroundingText = new InitialSurroundingText(subText, subTextSelStart,
+            mInitialSurroundingText = new InitialSurroundingText(newSubText, subTextSelStart,
                     subTextSelEnd);
             return;
         }
 
-        trimLongSurroundingText(subText, subTextSelStart, subTextSelEnd);
+        trimLongSurroundingText(newSubText, subTextSelStart, subTextSelEnd);
     }
 
     /**
diff --git a/core/tests/coretests/src/android/view/inputmethod/EditorInfoTest.java b/core/tests/coretests/src/android/view/inputmethod/EditorInfoTest.java
index 02ffc00..93de03a 100644
--- a/core/tests/coretests/src/android/view/inputmethod/EditorInfoTest.java
+++ b/core/tests/coretests/src/android/view/inputmethod/EditorInfoTest.java
@@ -264,6 +264,25 @@
                         InputConnection.GET_TEXT_WITH_STYLES)));
     }
 
+    @Test
+    public void surroundingTextRetrieval_writeToParcel_noException() {
+        StringBuilder sb = new StringBuilder("abcdefg");
+        Parcel parcel = Parcel.obtain();
+        EditorInfo editorInfo = new EditorInfo();
+        editorInfo.initialSelStart = 2;
+        editorInfo.initialSelEnd = 5;
+        editorInfo.inputType = EditorInfo.TYPE_CLASS_TEXT;
+
+        editorInfo.setInitialSurroundingText(sb);
+        sb.setLength(0);
+        editorInfo.writeToParcel(parcel, 0);
+
+        try {
+            editorInfo.getInitialTextBeforeCursor(60, 1);
+            fail("Test shouldn't have exception");
+        } catch (AssertionError e) { }
+    }
+
     private static void assertExpectedTextLength(EditorInfo editorInfo,
             @Nullable Integer expectBeforeCursorLength, @Nullable Integer expectSelectionLength,
             @Nullable Integer expectAfterCursorLength) {
diff --git a/packages/SystemUI/res/values-pt-rPT/strings.xml b/packages/SystemUI/res/values-pt-rPT/strings.xml
index 2fa04f4..0f83e3c 100644
--- a/packages/SystemUI/res/values-pt-rPT/strings.xml
+++ b/packages/SystemUI/res/values-pt-rPT/strings.xml
@@ -803,7 +803,7 @@
     <string name="keyboard_shortcut_group_system_notifications" msgid="3615971650562485878">"Notificações"</string>
     <string name="keyboard_shortcut_group_system_shortcuts_helper" msgid="4856808328618265589">"Atalhos de teclado"</string>
     <string name="keyboard_shortcut_group_system_switch_input" msgid="952555530383268166">"Alterar esquema de teclado"</string>
-    <string name="keyboard_shortcut_group_applications" msgid="7386239431100651266">"Aplicações"</string>
+    <string name="keyboard_shortcut_group_applications" msgid="7386239431100651266">"Apps"</string>
     <string name="keyboard_shortcut_group_applications_assist" msgid="771606231466098742">"Assistência"</string>
     <string name="keyboard_shortcut_group_applications_browser" msgid="2776211137869809251">"Navegador"</string>
     <string name="keyboard_shortcut_group_applications_contacts" msgid="2807268086386201060">"Contactos"</string>
@@ -968,7 +968,7 @@
     <string name="qs_dnd_until" msgid="7844269319043747955">"Até à(s) <xliff:g id="ID_1">%s</xliff:g>"</string>
     <string name="qs_dnd_keep" msgid="3829697305432866434">"Manter"</string>
     <string name="qs_dnd_replace" msgid="7712119051407052689">"Substituir"</string>
-    <string name="running_foreground_services_title" msgid="5137313173431186685">"Aplicações em execução em segundo plano"</string>
+    <string name="running_foreground_services_title" msgid="5137313173431186685">"Apps em execução em segundo plano"</string>
     <string name="running_foreground_services_msg" msgid="3009459259222695385">"Toque para obter detalhes acerca da utilização da bateria e dos dados"</string>
     <string name="mobile_data_disable_title" msgid="5366476131671617790">"Pretende desativar os dados móveis?"</string>
     <string name="mobile_data_disable_message" msgid="8604966027899770415">"Não terá acesso a dados ou à Internet através do operador <xliff:g id="CARRIER">%s</xliff:g>. A Internet estará disponível apenas por Wi-Fi."</string>