Cache repeated Telecom requests from call log.

This improves call log scrolling performance.

+ Split "Wrapper" into a utility and a cache.
+ Use cache for repeated calls related to call logs.
+ In the process of fixing plumbing and typer, moved some phone call
detail classes into the more appropriate call log package.
+ Update tests.

Bug: 20524705
Change-Id: Ib8ee21e417c19f98f6474a5793416e8f99103b55
diff --git a/src/com/android/dialer/CallDetailActivity.java b/src/com/android/dialer/CallDetailActivity.java
index b851372..734e78f 100644
--- a/src/com/android/dialer/CallDetailActivity.java
+++ b/src/com/android/dialer/CallDetailActivity.java
@@ -57,9 +57,9 @@
 import com.android.dialer.calllog.ContactInfoHelper;
 import com.android.dialer.calllog.PhoneAccountUtils;
 import com.android.dialer.calllog.PhoneNumberDisplayUtil;
-import com.android.dialer.calllog.PhoneNumberUtilsWrapper;
-import com.android.dialer.util.IntentUtil;
 import com.android.dialer.util.DialerUtils;
+import com.android.dialer.util.IntentUtil;
+import com.android.dialer.util.PhoneNumberUtil;
 import com.android.dialer.util.TelecomUtil;
 
 import java.util.List;
@@ -116,11 +116,10 @@
 
             // Cache the details about the phone number.
             final boolean canPlaceCallsTo =
-                    PhoneNumberUtilsWrapper.canPlaceCallsTo(mNumber, numberPresentation);
-            final PhoneNumberUtilsWrapper phoneUtils = new PhoneNumberUtilsWrapper(mContext);
+                    PhoneNumberUtil.canPlaceCallsTo(mNumber, numberPresentation);
             mIsVoicemailNumber =
-                    phoneUtils.isVoicemailNumber(accountHandle, mNumber);
-            final boolean isSipNumber = PhoneNumberUtilsWrapper.isSipNumber(mNumber);
+                    PhoneNumberUtil.isVoicemailNumber(mContext, accountHandle, mNumber);
+            final boolean isSipNumber = PhoneNumberUtil.isSipNumber(mNumber);
 
             final CharSequence callLocationOrType = getNumberTypeOrLocation(firstDetails);