Fix NPE when kind is null in getBestType

Fix alternate insertChild() method to detect and bail on null kind just
like primary insertChild() method does. Also change getBestValidType()
not to crash on null kind.

Bug:12490438
Change-Id: I82c351ccd5a880fb8bc71b5b27ffb2662c071be3
(cherry picked from commit 29a094106357ea806dc029437af77ec91b94cafb)
diff --git a/src/com/android/contacts/common/model/RawContactModifier.java b/src/com/android/contacts/common/model/RawContactModifier.java
index 0cd243c..ac586a2 100644
--- a/src/com/android/contacts/common/model/RawContactModifier.java
+++ b/src/com/android/contacts/common/model/RawContactModifier.java
@@ -305,7 +305,7 @@
     public static EditType getBestValidType(RawContactDelta state, DataKind kind,
             boolean includeSecondary, int exactValue) {
         // Shortcut when no types
-        if (kind.typeColumn == null) return null;
+        if (kind == null || kind.typeColumn == null) return null;
 
         // Find type counts and valid primary types, bail if none
         final SparseIntArray typeCount = getTypeFrequencies(state, kind);
@@ -347,6 +347,8 @@
      * {@link #getBestValidType(RawContactDelta, DataKind, boolean, int)}.
      */
     public static ValuesDelta insertChild(RawContactDelta state, DataKind kind) {
+        // Bail early if invalid kind
+        if (kind == null) return null;
         // First try finding a valid primary
         EditType bestType = getBestValidType(state, kind, false, Integer.MIN_VALUE);
         if (bestType == null) {