Don't let Threads.getOrCreateThreadId crash us

Bug: 17657656
Change-Id: Ifab9743d6dcd4c6c960abc006eb5288f753f429f
diff --git a/src/com/android/contacts/interactions/SmsInteractionsLoader.java b/src/com/android/contacts/interactions/SmsInteractionsLoader.java
index 295c99a..8d58712 100644
--- a/src/com/android/contacts/interactions/SmsInteractionsLoader.java
+++ b/src/com/android/contacts/interactions/SmsInteractionsLoader.java
@@ -66,8 +66,13 @@
         // Retrieve the thread IDs
         List<String> threadIdStrings = new ArrayList<>();
         for (String phone : mPhoneNums) {
-            threadIdStrings.add(String.valueOf(
-                    Telephony.Threads.getOrCreateThreadId(getContext(), phone)));
+            try {
+                threadIdStrings.add(String.valueOf(
+                        Telephony.Threads.getOrCreateThreadId(getContext(), phone)));
+            } catch (Exception e) {
+                // Do nothing. Telephony.Threads.getOrCreateThreadId() throws exceptions when
+                // it can't find/create a threadId (b/17657656).
+            }
         }
 
         // Query the SMS database for the threads
@@ -94,6 +99,9 @@
      * Return the most recent messages between a list of threads
      */
     private Cursor getSmsCursorFromThreads(List<String> threadIds) {
+        if (threadIds.size() == 0) {
+            return null;
+        }
         String selection = Telephony.Sms.THREAD_ID + " IN "
                 + ContactInteractionUtil.questionMarks(threadIds.size());