Added support for displaying/redialing post-dial

Append dialed post-dial digits(if any exist) to the displayed number
and changes the intent sent by the redial button to include the
post-dial digits.

Bug: 24955678
Change-Id: I0ec2cb2d5504f7fd715132eba7d969ff284e23d1
diff --git a/src/com/android/dialer/CallDetailActivity.java b/src/com/android/dialer/CallDetailActivity.java
index 2e2bea8..690b3e1 100644
--- a/src/com/android/dialer/CallDetailActivity.java
+++ b/src/com/android/dialer/CallDetailActivity.java
@@ -107,11 +107,19 @@
             // All calls are from the same number and same contact, so pick the first detail.
             mDetails = details[0];
             mNumber = TextUtils.isEmpty(mDetails.number) ? null : mDetails.number.toString();
+            mPostDialDigits = TextUtils.isEmpty(mDetails.postDialDigits)
+                    ? "" : mDetails.postDialDigits;
             mDisplayNumber = mDetails.displayNumber;
 
             final CharSequence callLocationOrType = getNumberTypeOrLocation(mDetails);
 
-            final CharSequence displayNumber = mDetails.displayNumber;
+            final CharSequence displayNumber;
+            if (!TextUtils.isEmpty(mDetails.postDialDigits)) {
+                displayNumber = mDetails.number + mDetails.postDialDigits;
+            } else {
+                displayNumber = mDetails.displayNumber;
+            }
+
             final String displayNumberStr = mBidiFormatter.unicodeWrap(
                     displayNumber.toString(), TextDirectionHeuristics.LTR);
 
@@ -197,6 +205,7 @@
     private PhoneCallDetails mDetails;
     protected String mNumber;
     private Uri mVoicemailUri;
+    private String mPostDialDigits = "";
     private String mDisplayNumber;
 
     private ListView mHistoryList;
@@ -252,7 +261,7 @@
                     return;
                 }
                 mContext.startActivity(
-                        new CallIntentBuilder(mNumber)
+                        new CallIntentBuilder(getDialableNumber())
                                 .setCallInitiationType(LogState.INITIATION_CALL_DETAILS)
                                 .build());
             }
@@ -371,7 +380,8 @@
                 ClipboardUtils.copyText(mContext, null, mNumber, true);
                 break;
             case R.id.call_detail_action_edit_before_call:
-                Intent dialIntent = new Intent(Intent.ACTION_DIAL, CallUtil.getCallUri(mNumber));
+                Intent dialIntent = new Intent(Intent.ACTION_DIAL,
+                        CallUtil.getCallUri(getDialableNumber()));
                 DialerUtils.startActivityWithErrorToast(mContext, dialIntent);
                 break;
             default:
@@ -460,6 +470,10 @@
         sendBroadcast(new Intent(Intent.ACTION_CLOSE_SYSTEM_DIALOGS));
     }
 
+    private String getDialableNumber() {
+        return mNumber + mPostDialDigits;
+    }
+
     @NeededForTesting
     public boolean hasVoicemail() {
         return mVoicemailUri != null;