From 35e44d4b757427a240e8764467bdd220e2124473 Mon Sep 17 00:00:00 2001 From: Hall Liu Date: Wed, 14 Oct 2015 15:19:06 -0700 Subject: 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 --- src/com/android/dialer/CallDetailActivity.java | 20 +++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) (limited to 'src/com/android/dialer/CallDetailActivity.java') diff --git a/src/com/android/dialer/CallDetailActivity.java b/src/com/android/dialer/CallDetailActivity.java index 2e2bea8ce..690b3e10a 100644 --- a/src/com/android/dialer/CallDetailActivity.java +++ b/src/com/android/dialer/CallDetailActivity.java @@ -107,11 +107,19 @@ public class CallDetailActivity extends AppCompatActivity // 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 @@ public class CallDetailActivity extends AppCompatActivity private PhoneCallDetails mDetails; protected String mNumber; private Uri mVoicemailUri; + private String mPostDialDigits = ""; private String mDisplayNumber; private ListView mHistoryList; @@ -252,7 +261,7 @@ public class CallDetailActivity extends AppCompatActivity return; } mContext.startActivity( - new CallIntentBuilder(mNumber) + new CallIntentBuilder(getDialableNumber()) .setCallInitiationType(LogState.INITIATION_CALL_DETAILS) .build()); } @@ -371,7 +380,8 @@ public class CallDetailActivity extends AppCompatActivity 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 @@ public class CallDetailActivity extends AppCompatActivity sendBroadcast(new Intent(Intent.ACTION_CLOSE_SYSTEM_DIALOGS)); } + private String getDialableNumber() { + return mNumber + mPostDialDigits; + } + @NeededForTesting public boolean hasVoicemail() { return mVoicemailUri != null; -- cgit v1.2.3