Fixing the "Liza Ma" use case.  This name was parsed as Liza (first name), M.A. (suffix).

Should really be Liza (first name), Ma (last name)
diff --git a/src/com/android/providers/contacts/NameSplitter.java b/src/com/android/providers/contacts/NameSplitter.java
index aad3bc5..54d8a6e 100644
--- a/src/com/android/providers/contacts/NameSplitter.java
+++ b/src/com/android/providers/contacts/NameSplitter.java
@@ -163,7 +163,13 @@
 
         NameTokenizer tokens = new NameTokenizer(fullName);
         parsePrefix(name, tokens);
-        parseSuffix(name, tokens);
+
+        // If the name consists of just one or two tokens, treat them as first/last name,
+        // not as suffix.  Example: John Ma; Ma is last name, not "M.A.".
+        if (tokens.mEndPointer > 2) {
+            parseSuffix(name, tokens);
+        }
+
         parseLastName(name, tokens);
         parseMiddleName(name, tokens);
         parseGivenNames(name, tokens);
diff --git a/tests/src/com/android/providers/contacts/NameSplitterTest.java b/tests/src/com/android/providers/contacts/NameSplitterTest.java
index 91ce025..5e9bd65 100644
--- a/tests/src/com/android/providers/contacts/NameSplitterTest.java
+++ b/tests/src/com/android/providers/contacts/NameSplitterTest.java
@@ -55,6 +55,10 @@
         assertSplitName("Smith", null, null, null, "Smith", null);
     }
 
+    public void testIgnoreSuffix() {
+        assertSplitName("Ms MD", "Ms", null, null, "MD", null);
+    }
+
     public void testFirstLastName() {
         assertSplitName("John Smith", null, "John", null, "Smith", null);
     }