Fixing PhoneNumberInteractionTest

Bug: 3330180
Change-Id: I8431d08405bd5ad71b94679cec803ebe5315df2e
diff --git a/src/com/android/contacts/interactions/PhoneNumberInteraction.java b/src/com/android/contacts/interactions/PhoneNumberInteraction.java
index 1a43c9a..277fa56 100644
--- a/src/com/android/contacts/interactions/PhoneNumberInteraction.java
+++ b/src/com/android/contacts/interactions/PhoneNumberInteraction.java
@@ -213,7 +213,7 @@
                 null,
                 null);
         mLoader.registerListener(0, this);
-        startLoading(mLoader);
+        mLoader.startLoading();
     }
 
     @Override
@@ -355,7 +355,7 @@
     }
 
     /* Visible for testing */
-    void startLoading(Loader<Cursor> loader) {
-        loader.startLoading();
+    CursorLoader getLoader() {
+        return mLoader;
     }
 }
diff --git a/tests/src/com/android/contacts/interactions/PhoneNumberInteractionTest.java b/tests/src/com/android/contacts/interactions/PhoneNumberInteractionTest.java
index 8c6a1ac..43e844e 100644
--- a/tests/src/com/android/contacts/interactions/PhoneNumberInteractionTest.java
+++ b/tests/src/com/android/contacts/interactions/PhoneNumberInteractionTest.java
@@ -22,16 +22,13 @@
 import com.android.contacts.tests.mocks.MockContentProvider;
 import com.android.contacts.tests.mocks.MockContentProvider.Query;
 
-import android.content.AsyncTaskLoader;
 import android.content.ContentUris;
 import android.content.Context;
 import android.content.DialogInterface.OnDismissListener;
 import android.content.Intent;
-import android.content.Loader;
-import android.database.Cursor;
 import android.net.Uri;
+import android.os.AsyncTask;
 import android.os.Bundle;
-import android.os.Parcelable;
 import android.provider.ContactsContract.CommonDataKinds.Phone;
 import android.provider.ContactsContract.Contacts;
 import android.provider.ContactsContract.RawContacts;
@@ -53,6 +50,11 @@
 @Smoke
 public class PhoneNumberInteractionTest extends InstrumentationTestCase {
 
+    static {
+        // AsyncTask class needs to be initialized on the main thread.
+        AsyncTask.init();
+    }
+
     private final static class TestPhoneNumberInteraction extends PhoneNumberInteraction {
         Intent startedIntent;
         int dialogId;
@@ -64,14 +66,6 @@
         }
 
         @Override
-        void startLoading(Loader<Cursor> loader) {
-            // Execute the loader synchronously
-            AsyncTaskLoader<Cursor> atLoader = (AsyncTaskLoader<Cursor>)loader;
-            Cursor data = atLoader.loadInBackground();
-            atLoader.deliverResult(data);
-        }
-
-        @Override
         void startActivity(Intent intent) {
             this.startedIntent = intent;
         }
@@ -108,6 +102,7 @@
                 mContext, true, null);
 
         interaction.startInteraction(contactUri);
+        interaction.getLoader().waitForLoader();
 
         assertEquals(Intent.ACTION_SENDTO, interaction.startedIntent.getAction());
         assertEquals("sms:123", interaction.startedIntent.getDataString());
@@ -123,6 +118,7 @@
                 mContext, true, null);
 
         interaction.startInteraction(contactUri);
+        interaction.getLoader().waitForLoader();
 
         assertEquals(Intent.ACTION_SENDTO, interaction.startedIntent.getAction());
         assertEquals("sms:456", interaction.startedIntent.getDataString());
@@ -138,6 +134,7 @@
                 mContext, false, null);
 
         interaction.startInteraction(contactUri);
+        interaction.getLoader().waitForLoader();
 
         assertEquals(Intent.ACTION_CALL_PRIVILEGED, interaction.startedIntent.getAction());
         assertEquals("tel:123", interaction.startedIntent.getDataString());
@@ -153,6 +150,7 @@
                 mContext, false, null);
 
         interaction.startInteraction(contactUri);
+        interaction.getLoader().waitForLoader();
 
         assertEquals(R.id.dialog_phone_number_call_disambiguation, interaction.dialogId);