Correctly add double quote to the space strippers

...without removing space, this time.
Also add a test to make sure it is working.

Bug: 7531719
Change-Id: I3afcc433c6cdc2774e7deeb6d358356db5035d35
diff --git a/java/res/values-fr/donottranslate.xml b/java/res/values-fr/donottranslate.xml
index 5288bd7..e11e65c 100644
--- a/java/res/values-fr/donottranslate.xml
+++ b/java/res/values-fr/donottranslate.xml
@@ -19,9 +19,10 @@
 -->
 <resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <!-- Symbols that should be swapped with a magic space -->
-    <string name="weak_space_swapping_symbols">.,\")]}</string>
+    <string name="weak_space_swapping_symbols">.,)]}</string>
     <!-- Symbols that should strip a magic space -->
-    <string name="weak_space_stripping_symbols">"&#x0009;&#x0020;\'\n-/_"</string>
+    <!-- Don't remove the enclosing double quotes, they protect whitespace (not just U+0020) -->
+    <string name="weak_space_stripping_symbols">"&#x0009;&#x0020;\n"\'-/_\"</string>
     <!-- Symbols that should promote magic spaces into real space -->
     <string name="phantom_space_promoting_symbols">;:!?([*&amp;@{&lt;&gt;+=|</string>
     <!-- Symbols that do NOT separate words -->
diff --git a/java/res/values/donottranslate.xml b/java/res/values/donottranslate.xml
index 9e07b22..a9c5e5d 100644
--- a/java/res/values/donottranslate.xml
+++ b/java/res/values/donottranslate.xml
@@ -21,9 +21,10 @@
     <!-- Symbols that are suggested between words -->
     <string name="suggested_punctuations">!,?,\\,,:,;,\",(,),\',-,/,@,_</string>
     <!-- Symbols that should be swapped with a weak space -->
-    <string name="weak_space_swapping_symbols">.,;:!?)]}\"</string>
+    <string name="weak_space_swapping_symbols">.,;:!?)]}</string>
     <!-- Symbols that should strip a weak space -->
-    <string name="weak_space_stripping_symbols">"&#x0009;&#x0020;\n/_\'-"@</string>
+    <!-- Don't remove the enclosing double quotes, they protect whitespace (not just U+0020) -->
+    <string name="weak_space_stripping_symbols">"&#x0009;&#x0020;\n"/_\'-@\"</string>
     <!-- Symbols that should convert weak spaces into real space -->
     <string name="phantom_space_promoting_symbols">([*&amp;{&lt;&gt;+=|</string>
     <!-- Symbols that do NOT separate words -->
diff --git a/tests/src/com/android/inputmethod/latin/BlueUnderlineTests.java b/tests/src/com/android/inputmethod/latin/BlueUnderlineTests.java
index a9947c1..03310c8 100644
--- a/tests/src/com/android/inputmethod/latin/BlueUnderlineTests.java
+++ b/tests/src/com/android/inputmethod/latin/BlueUnderlineTests.java
@@ -104,4 +104,20 @@
         final SpanGetter span = new SpanGetter(mTextView.getText(), SuggestionSpan.class);
         assertNull("blue underline removed when cursor is moved", span.mSpan);
     }
+
+    public void testComposingStopsOnSpace() {
+        final String STRING_TO_TYPE = "this ";
+        type(STRING_TO_TYPE);
+        sleep(DELAY_TO_WAIT_FOR_UNDERLINE);
+        // Simulate the onUpdateSelection() event
+        mLatinIME.onUpdateSelection(0, 0, STRING_TO_TYPE.length(), STRING_TO_TYPE.length(), -1, -1);
+        runMessages();
+        // Here the blue underline has been set. testBlueUnderline() is testing for this already,
+        // so let's not test it here again.
+        // Now simulate the user moving the cursor.
+        SpanGetter span = new SpanGetter(mTextView.getText(), UnderlineSpan.class);
+        assertNull("should not be composing, so should not have an underline span", span.mSpan);
+        span = new SpanGetter(mTextView.getText(), SuggestionSpan.class);
+        assertNull("should not be composing, so should not have an underline span", span.mSpan);
+    }
 }