Reorganize Intent utilities, add send SMS intent.

+ Rename CallIntentUtils.java to IntentUtil.java.
+ Consolidate various intent creation methods to new file, and update
referenes throughout the application.

Bug: 20433758
Change-Id: Iee9e37985217c38c816124d0e74dff40a2871680
diff --git a/src/com/android/dialer/DialtactsActivity.java b/src/com/android/dialer/DialtactsActivity.java
index cccc06e..25828e5 100644
--- a/src/com/android/dialer/DialtactsActivity.java
+++ b/src/com/android/dialer/DialtactsActivity.java
@@ -29,7 +29,6 @@
 import android.net.Uri;
 import android.os.Bundle;
 import android.os.Trace;
-import android.provider.ContactsContract.Contacts;
 import android.provider.ContactsContract.Intents;
 import android.speech.RecognizerIntent;
 import android.support.v4.view.ViewPager;
@@ -82,7 +81,7 @@
 import com.android.dialer.list.SmartDialSearchFragment;
 import com.android.dialer.list.SpeedDialFragment;
 import com.android.dialer.settings.DialerSettingsActivity;
-import com.android.dialer.util.CallIntentUtil;
+import com.android.dialer.util.IntentUtil;
 import com.android.dialer.util.DialerUtils;
 import com.android.dialer.widget.ActionBarController;
 import com.android.dialer.widget.SearchEditTextLayout;
@@ -587,7 +586,10 @@
         switch (view.getId()) {
             case R.id.floating_action_button:
                 if (mListsFragment.getTabPosition() == ListsFragment.TAB_INDEX_ALL_CONTACTS) {
-                    sendAddNewContactIntent();
+                    DialerUtils.startActivityWithErrorToast(
+                            this,
+                            IntentUtil.getNewContactIntent(),
+                            R.string.add_contact_not_available);
                 } else if (!mIsDialpadShown) {
                     mInCallDialpadUp = false;
                     showDialpadFragment(true);
@@ -622,7 +624,10 @@
                 startActivity(intent);
                 break;
             case R.id.menu_add_contact:
-                sendAddNewContactIntent();
+                DialerUtils.startActivityWithErrorToast(
+                        this,
+                        IntentUtil.getNewContactIntent(),
+                        R.string.add_contact_not_available);
                 break;
             case R.id.menu_import_export:
                 // We hard-code the "contactsAreAvailable" argument because doing it properly would
@@ -1082,38 +1087,6 @@
         return getTelecomManager().isInCall();
     }
 
-    public static Intent getAddNumberToContactIntent(CharSequence text) {
-        return getAddToContactIntent(null /* name */, text /* phoneNumber */,
-                -1 /* phoneNumberType */);
-    }
-
-    public static Intent getAddToContactIntent(CharSequence name, CharSequence phoneNumber,
-            int phoneNumberType) {
-        Intent intent = new Intent(Intent.ACTION_INSERT_OR_EDIT);
-        intent.putExtra(Intents.Insert.PHONE, phoneNumber);
-        // Only include the name and phone type extras if they are specified (the method
-        // getAddNumberToContactIntent does not use them).
-        if (name != null) {
-            intent.putExtra(Intents.Insert.NAME, name);
-        }
-        if (phoneNumberType != -1) {
-            intent.putExtra(Intents.Insert.PHONE_TYPE, phoneNumberType);
-        }
-        intent.setType(Contacts.CONTENT_ITEM_TYPE);
-        return intent;
-    }
-
-    private void sendAddNewContactIntent() {
-        try {
-            startActivity(new Intent(Intent.ACTION_INSERT, Contacts.CONTENT_URI));
-        } catch (ActivityNotFoundException e) {
-            Toast toast = Toast.makeText(this,
-                    R.string.add_contact_not_available,
-                    Toast.LENGTH_SHORT);
-            toast.show();
-        }
-    }
-
     private boolean canIntentBeHandled(Intent intent) {
         final PackageManager packageManager = getPackageManager();
         final List<ResolveInfo> resolveInfo = packageManager.queryIntentActivities(intent,
@@ -1171,8 +1144,8 @@
     @Override
     public void onCallNumberDirectly(String phoneNumber, boolean isVideoCall) {
         Intent intent = isVideoCall ?
-                CallIntentUtil.getVideoCallIntent(phoneNumber, getCallOrigin()) :
-                CallIntentUtil.getCallIntent(phoneNumber, getCallOrigin());
+                IntentUtil.getVideoCallIntent(phoneNumber, getCallOrigin()) :
+                IntentUtil.getCallIntent(phoneNumber, getCallOrigin());
         DialerUtils.startActivityWithErrorToast(this, intent);
         mClearSearchOnPause = true;
     }