Fix Dialer tests

Fix Dialer tests and also wrap all startActivity calls that have
the potential to fail with a catch block for ActivityNotFoundException

Change-Id: I02ce4b985eeb0e3e607b8008a333e02168acd378
diff --git a/proguard.flags b/proguard.flags
index 40ef035..38d4050 100644
--- a/proguard.flags
+++ b/proguard.flags
@@ -6,9 +6,9 @@
 }
 
 # Any class or method annotated with NeededForTesting or NeededForReflection.
--keep @com.android.contacts.common.test.NeededForTesting class *
+-keep @com.android.contacts.common.testing.NeededForTesting class *
 -keepclassmembers class * {
-@com.android.contacts.common.test.NeededForTesting *;
+@com.android.contacts.common.testing.NeededForTesting *;
 @com.android.dialer.NeededForReflection *;
 }
 
diff --git a/src/com/android/dialer/DialtactsActivity.java b/src/com/android/dialer/DialtactsActivity.java
index d48b28e..cbb2fe8 100644
--- a/src/com/android/dialer/DialtactsActivity.java
+++ b/src/com/android/dialer/DialtactsActivity.java
@@ -84,6 +84,7 @@
 import com.android.dialer.list.RegularSearchFragment;
 import com.android.dialer.list.SearchFragment;
 import com.android.dialer.list.SmartDialSearchFragment;
+import com.android.dialer.util.DialerUtils;
 import com.android.dialer.widget.ActionBarController;
 import com.android.dialer.widget.SearchEditTextLayout;
 import com.android.dialer.widget.SearchEditTextLayout.OnBackButtonClickedListener;
@@ -1113,7 +1114,7 @@
     @Override
     public void onCallNumberDirectly(String phoneNumber) {
         Intent intent = CallUtil.getCallIntent(phoneNumber, getCallOrigin());
-        startActivity(intent);
+        DialerUtils.startActivityWithErrorToast(this, intent);
         mClearSearchOnPause = true;
     }
 
diff --git a/src/com/android/dialer/PhoneCallDetailsHelper.java b/src/com/android/dialer/PhoneCallDetailsHelper.java
index bb74cba..f1b6f7f 100644
--- a/src/com/android/dialer/PhoneCallDetailsHelper.java
+++ b/src/com/android/dialer/PhoneCallDetailsHelper.java
@@ -185,6 +185,7 @@
     }
 
     /** Sets the text of the header view for the details page of a phone call. */
+    @NeededForTesting
     public void setCallDetailsHeader(TextView nameView, PhoneCallDetails details) {
         final CharSequence nameText;
         final CharSequence displayNumber =
diff --git a/src/com/android/dialer/calllog/CallLogAdapter.java b/src/com/android/dialer/calllog/CallLogAdapter.java
index 249c30c..f19b924 100644
--- a/src/com/android/dialer/calllog/CallLogAdapter.java
+++ b/src/com/android/dialer/calllog/CallLogAdapter.java
@@ -43,6 +43,7 @@
 import com.android.dialer.PhoneCallDetails;
 import com.android.dialer.PhoneCallDetailsHelper;
 import com.android.dialer.R;
+import com.android.dialer.util.DialerUtils;
 import com.android.dialer.util.ExpirableCache;
 
 import com.google.common.annotations.VisibleForTesting;
@@ -304,7 +305,7 @@
             final Intent intent = intentProvider.getIntent(mContext);
             // See IntentProvider.getCallDetailIntentProvider() for why this may be null.
             if (intent != null) {
-                mContext.startActivity(intent);
+                DialerUtils.startActivityWithErrorToast(mContext, intent);
             }
         }
     }
diff --git a/src/com/android/dialer/dialpad/DialpadFragment.java b/src/com/android/dialer/dialpad/DialpadFragment.java
index bb58802..cc42755 100644
--- a/src/com/android/dialer/dialpad/DialpadFragment.java
+++ b/src/com/android/dialer/dialpad/DialpadFragment.java
@@ -279,10 +279,7 @@
      * Return an Intent for launching voicemail screen.
      */
     private static Intent getVoicemailIntent() {
-        final Intent intent = new Intent(Intent.ACTION_CALL_PRIVILEGED,
-                Uri.fromParts("voicemail", "", null));
-        intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
-        return intent;
+        return CallUtil.getCallIntent(Uri.fromParts("voicemail", "", null));
     }
 
     private TelephonyManager getTelephonyManager() {
@@ -986,7 +983,7 @@
     }
 
     public void callVoicemail() {
-        startActivity(getVoicemailIntent());
+        DialerUtils.startActivityWithErrorToast(getActivity(), getVoicemailIntent());
         hideAndClearDialpad(false);
     }
 
@@ -1085,7 +1082,7 @@
                 final Intent intent = CallUtil.getCallIntent(number,
                         (getActivity() instanceof DialtactsActivity ?
                                 ((DialtactsActivity) getActivity()).getCallOrigin() : null));
-                startActivity(intent);
+                DialerUtils.startActivityWithErrorToast(getActivity(), intent);
                 hideAndClearDialpad(false);
             }
         }
diff --git a/src/com/android/dialer/interactions/PhoneNumberInteraction.java b/src/com/android/dialer/interactions/PhoneNumberInteraction.java
index 722b9b3..b494fff 100644
--- a/src/com/android/dialer/interactions/PhoneNumberInteraction.java
+++ b/src/com/android/dialer/interactions/PhoneNumberInteraction.java
@@ -20,7 +20,6 @@
 import android.app.Dialog;
 import android.app.DialogFragment;
 import android.app.FragmentManager;
-import android.content.ContentValues;
 import android.content.Context;
 import android.content.CursorLoader;
 import android.content.DialogInterface;
@@ -37,7 +36,6 @@
 import android.provider.ContactsContract.CommonDataKinds.SipAddress;
 import android.provider.ContactsContract.Contacts;
 import android.provider.ContactsContract.Data;
-import android.provider.ContactsContract.PinnedPositions;
 import android.provider.ContactsContract.RawContacts;
 import android.view.LayoutInflater;
 import android.view.View;
@@ -55,6 +53,8 @@
 import com.android.contacts.common.util.ContactDisplayUtils;
 import com.android.dialer.R;
 import com.android.dialer.contact.ContactUpdateService;
+import com.android.dialer.util.DialerUtils;
+
 import com.google.common.annotations.VisibleForTesting;
 
 import java.util.ArrayList;
@@ -325,7 +325,7 @@
                 intent = CallUtil.getCallIntent(phoneNumber, callOrigin);
                 break;
         }
-        context.startActivity(intent);
+        DialerUtils.startActivityWithErrorToast(context, intent);
     }
 
     /**