Merge changes I80ff3852,Ibe1c57bc,I93f35850
* changes:
Use layout_gravity to horizontally center each dialpad key in landscape mode.
Unify voicemail call placing
Stop storing device orientation in DialpadView's instance variable to improve reliability.
diff --git a/java/com/android/dialer/app/calllog/CallLogListItemViewHolder.java b/java/com/android/dialer/app/calllog/CallLogListItemViewHolder.java
index fa73bb2..1c106a7 100644
--- a/java/com/android/dialer/app/calllog/CallLogListItemViewHolder.java
+++ b/java/com/android/dialer/app/calllog/CallLogListItemViewHolder.java
@@ -547,7 +547,7 @@
case CallbackAction.VOICE:
if (mCallLogCache.isVoicemailNumber(accountHandle, number)) {
// Call to generic voicemail number, in case there are multiple accounts
- primaryActionButtonView.setTag(IntentProvider.getReturnVoicemailCallIntentProvider());
+ primaryActionButtonView.setTag(IntentProvider.getReturnVoicemailCallIntentProvider(null));
} else if (canSupportAssistedDialing()) {
primaryActionButtonView.setTag(
IntentProvider.getAssistedDialIntentProvider(
diff --git a/java/com/android/dialer/app/calllog/IntentProvider.java b/java/com/android/dialer/app/calllog/IntentProvider.java
index c812bf8..36e62c3 100644
--- a/java/com/android/dialer/app/calllog/IntentProvider.java
+++ b/java/com/android/dialer/app/calllog/IntentProvider.java
@@ -21,6 +21,7 @@
import android.content.Intent;
import android.net.Uri;
import android.provider.ContactsContract;
+import android.support.annotation.Nullable;
import android.telecom.PhoneAccountHandle;
import android.telephony.TelephonyManager;
import com.android.contacts.common.model.Contact;
@@ -32,7 +33,6 @@
import com.android.dialer.callintent.CallIntentBuilder;
import com.android.dialer.dialercontact.DialerContact;
import com.android.dialer.duo.DuoComponent;
-import com.android.dialer.util.CallUtil;
import com.android.dialer.util.IntentUtil;
import java.util.ArrayList;
@@ -100,11 +100,12 @@
};
}
- public static IntentProvider getReturnVoicemailCallIntentProvider() {
+ public static IntentProvider getReturnVoicemailCallIntentProvider(
+ @Nullable PhoneAccountHandle phoneAccountHandle) {
return new IntentProvider() {
@Override
public Intent getIntent(Context context) {
- return new CallIntentBuilder(CallUtil.getVoicemailUri(), CallInitiationType.Type.CALL_LOG)
+ return CallIntentBuilder.forVoicemail(phoneAccountHandle, CallInitiationType.Type.CALL_LOG)
.build();
}
};
diff --git a/java/com/android/dialer/app/voicemail/error/OmtpVoicemailMessageCreator.java b/java/com/android/dialer/app/voicemail/error/OmtpVoicemailMessageCreator.java
index 9c8b146..4786ca6 100644
--- a/java/com/android/dialer/app/voicemail/error/OmtpVoicemailMessageCreator.java
+++ b/java/com/android/dialer/app/voicemail/error/OmtpVoicemailMessageCreator.java
@@ -66,7 +66,7 @@
return new VoicemailErrorMessage(
context.getString(R.string.voicemail_error_activating_title),
context.getString(R.string.voicemail_error_activating_message),
- VoicemailErrorMessage.createCallVoicemailAction(context));
+ VoicemailErrorMessage.createCallVoicemailAction(context, status.getPhoneAccountHandle()));
}
if (Status.NOTIFICATION_CHANNEL_STATE_NO_CONNECTION == status.notificationChannelState) {
@@ -77,7 +77,7 @@
return new VoicemailErrorMessage(
context.getString(R.string.voicemail_error_activation_failed_title),
context.getString(R.string.voicemail_error_activation_failed_message),
- VoicemailErrorMessage.createCallVoicemailAction(context),
+ VoicemailErrorMessage.createCallVoicemailAction(context, status.getPhoneAccountHandle()),
VoicemailErrorMessage.createRetryAction(context, status));
}
@@ -85,7 +85,7 @@
return new VoicemailErrorMessage(
context.getString(R.string.voicemail_error_no_data_title),
context.getString(R.string.voicemail_error_no_data_message),
- VoicemailErrorMessage.createCallVoicemailAction(context),
+ VoicemailErrorMessage.createCallVoicemailAction(context, status.getPhoneAccountHandle()),
VoicemailErrorMessage.createRetryAction(context, status));
}
@@ -93,7 +93,7 @@
return new VoicemailErrorMessage(
context.getString(R.string.voicemail_error_no_data_title),
context.getString(R.string.voicemail_error_no_data_cellular_required_message),
- VoicemailErrorMessage.createCallVoicemailAction(context),
+ VoicemailErrorMessage.createCallVoicemailAction(context, status.getPhoneAccountHandle()),
VoicemailErrorMessage.createRetryAction(context, status));
}
@@ -101,7 +101,7 @@
return new VoicemailErrorMessage(
context.getString(R.string.voicemail_error_bad_config_title),
context.getString(R.string.voicemail_error_bad_config_message),
- VoicemailErrorMessage.createCallVoicemailAction(context),
+ VoicemailErrorMessage.createCallVoicemailAction(context, status.getPhoneAccountHandle()),
VoicemailErrorMessage.createRetryAction(context, status));
}
@@ -109,7 +109,7 @@
return new VoicemailErrorMessage(
context.getString(R.string.voicemail_error_communication_title),
context.getString(R.string.voicemail_error_communication_message),
- VoicemailErrorMessage.createCallVoicemailAction(context),
+ VoicemailErrorMessage.createCallVoicemailAction(context, status.getPhoneAccountHandle()),
VoicemailErrorMessage.createRetryAction(context, status));
}
@@ -117,7 +117,7 @@
return new VoicemailErrorMessage(
context.getString(R.string.voicemail_error_server_title),
context.getString(R.string.voicemail_error_server_message),
- VoicemailErrorMessage.createCallVoicemailAction(context),
+ VoicemailErrorMessage.createCallVoicemailAction(context, status.getPhoneAccountHandle()),
VoicemailErrorMessage.createRetryAction(context, status));
}
@@ -125,7 +125,7 @@
return new VoicemailErrorMessage(
context.getString(R.string.voicemail_error_server_connection_title),
context.getString(R.string.voicemail_error_server_connection_message),
- VoicemailErrorMessage.createCallVoicemailAction(context),
+ VoicemailErrorMessage.createCallVoicemailAction(context, status.getPhoneAccountHandle()),
VoicemailErrorMessage.createRetryAction(context, status));
}
diff --git a/java/com/android/dialer/app/voicemail/error/VoicemailErrorMessage.java b/java/com/android/dialer/app/voicemail/error/VoicemailErrorMessage.java
index ab269f6..7cc6cda 100644
--- a/java/com/android/dialer/app/voicemail/error/VoicemailErrorMessage.java
+++ b/java/com/android/dialer/app/voicemail/error/VoicemailErrorMessage.java
@@ -25,11 +25,12 @@
import android.telecom.PhoneAccountHandle;
import android.view.View;
import android.view.View.OnClickListener;
+import com.android.dialer.callintent.CallInitiationType;
+import com.android.dialer.callintent.CallIntentBuilder;
import com.android.dialer.common.Assert;
import com.android.dialer.common.PerAccountSharedPreferences;
import com.android.dialer.logging.DialerImpression;
import com.android.dialer.logging.Logger;
-import com.android.dialer.util.CallUtil;
import com.android.dialer.voicemail.settings.VoicemailChangePinActivity;
import com.android.voicemail.VoicemailClient;
import com.android.voicemail.VoicemailComponent;
@@ -156,15 +157,18 @@
}
@NonNull
- public static Action createCallVoicemailAction(final Context context) {
+ public static Action createCallVoicemailAction(
+ final Context context, final PhoneAccountHandle phoneAccountHandle) {
return new Action(
context.getString(R.string.voicemail_action_call_voicemail),
new OnClickListener() {
@Override
public void onClick(View v) {
Logger.get(context).logImpression(DialerImpression.Type.VVM_CALL_VOICEMAIL_CLICKED);
- Intent intent = new Intent(Intent.ACTION_CALL, CallUtil.getVoicemailUri());
- context.startActivity(intent);
+ context.startActivity(
+ CallIntentBuilder.forVoicemail(
+ phoneAccountHandle, CallInitiationType.Type.VOICEMAIL_ERROR_MESSAGE)
+ .build());
}
});
}
diff --git a/java/com/android/dialer/app/voicemail/error/VoicemailStatus.java b/java/com/android/dialer/app/voicemail/error/VoicemailStatus.java
index 1cfbe86..a832b5d 100644
--- a/java/com/android/dialer/app/voicemail/error/VoicemailStatus.java
+++ b/java/com/android/dialer/app/voicemail/error/VoicemailStatus.java
@@ -30,6 +30,7 @@
import android.telecom.PhoneAccountHandle;
import android.telephony.ServiceState;
import android.telephony.TelephonyManager;
+import android.text.TextUtils;
import com.android.dialer.common.LogUtil;
import com.android.dialer.database.VoicemailStatusQuery;
@@ -293,8 +294,15 @@
return cursor.getString(index);
}
+ @Nullable
public PhoneAccountHandle getPhoneAccountHandle() {
- return new PhoneAccountHandle(
- ComponentName.unflattenFromString(phoneAccountComponentName), phoneAccountId);
+ if (TextUtils.isEmpty(phoneAccountComponentName) || TextUtils.isEmpty(phoneAccountId)) {
+ return null;
+ }
+ ComponentName componentName = ComponentName.unflattenFromString(phoneAccountComponentName);
+ if (componentName == null) {
+ return null;
+ }
+ return new PhoneAccountHandle(componentName, phoneAccountId);
}
}
diff --git a/java/com/android/dialer/app/voicemail/error/Vvm3VoicemailMessageCreator.java b/java/com/android/dialer/app/voicemail/error/Vvm3VoicemailMessageCreator.java
index 748b814..d10c7da 100644
--- a/java/com/android/dialer/app/voicemail/error/Vvm3VoicemailMessageCreator.java
+++ b/java/com/android/dialer/app/voicemail/error/Vvm3VoicemailMessageCreator.java
@@ -167,7 +167,7 @@
return new VoicemailErrorMessage(
context.getString(R.string.vvm3_error_unknown_user_title),
getCustomerSupportString(context, R.string.vvm3_error_unknown_user_message),
- VoicemailErrorMessage.createCallVoicemailAction(context),
+ VoicemailErrorMessage.createCallVoicemailAction(context, status.getPhoneAccountHandle()),
createCallCustomerSupportAction(context));
}
@@ -175,7 +175,7 @@
return new VoicemailErrorMessage(
context.getString(R.string.vvm3_error_unknown_device_title),
getCustomerSupportString(context, R.string.vvm3_error_unknown_device_message),
- VoicemailErrorMessage.createCallVoicemailAction(context),
+ VoicemailErrorMessage.createCallVoicemailAction(context, status.getPhoneAccountHandle()),
createCallCustomerSupportAction(context));
}
@@ -183,7 +183,7 @@
return new VoicemailErrorMessage(
context.getString(R.string.vvm3_error_invalid_password_title),
getCustomerSupportString(context, R.string.vvm3_error_invalid_password_message),
- VoicemailErrorMessage.createCallVoicemailAction(context),
+ VoicemailErrorMessage.createCallVoicemailAction(context, status.getPhoneAccountHandle()),
createCallCustomerSupportAction(context));
}
@@ -219,7 +219,7 @@
return new VoicemailErrorMessage(
context.getString(R.string.vvm3_error_subscriber_unknown_title),
getCustomerSupportString(context, R.string.vvm3_error_subscriber_unknown_message),
- VoicemailErrorMessage.createCallVoicemailAction(context),
+ VoicemailErrorMessage.createCallVoicemailAction(context, status.getPhoneAccountHandle()),
createCallCustomerSupportAction(context));
}
@@ -227,7 +227,7 @@
return new VoicemailErrorMessage(
context.getString(R.string.vvm3_error_imap_getquota_error_title),
getCustomerSupportString(context, R.string.vvm3_error_imap_getquota_error_message),
- VoicemailErrorMessage.createCallVoicemailAction(context),
+ VoicemailErrorMessage.createCallVoicemailAction(context, status.getPhoneAccountHandle()),
createCallCustomerSupportAction(context));
}
@@ -235,7 +235,7 @@
return new VoicemailErrorMessage(
context.getString(R.string.vvm3_error_imap_select_error_title),
getCustomerSupportString(context, R.string.vvm3_error_imap_select_error_message),
- VoicemailErrorMessage.createCallVoicemailAction(context),
+ VoicemailErrorMessage.createCallVoicemailAction(context, status.getPhoneAccountHandle()),
createCallCustomerSupportAction(context));
}
@@ -243,7 +243,7 @@
return new VoicemailErrorMessage(
context.getString(R.string.vvm3_error_imap_error_title),
getCustomerSupportString(context, R.string.vvm3_error_imap_error_message),
- VoicemailErrorMessage.createCallVoicemailAction(context),
+ VoicemailErrorMessage.createCallVoicemailAction(context, status.getPhoneAccountHandle()),
createCallCustomerSupportAction(context));
}
diff --git a/java/com/android/dialer/callintent/CallIntentBuilder.java b/java/com/android/dialer/callintent/CallIntentBuilder.java
index 2bbd124..25a5803 100644
--- a/java/com/android/dialer/callintent/CallIntentBuilder.java
+++ b/java/com/android/dialer/callintent/CallIntentBuilder.java
@@ -96,6 +96,13 @@
this(CallUtil.getCallUri(Assert.isNotNull(number)), callInitiationType);
}
+ public static CallIntentBuilder forVoicemail(
+ @Nullable PhoneAccountHandle phoneAccountHandle, CallInitiationType.Type callInitiationType) {
+ return new CallIntentBuilder(
+ Uri.fromParts(PhoneAccount.SCHEME_VOICEMAIL, "", null), callInitiationType)
+ .setPhoneAccountHandle(phoneAccountHandle);
+ }
+
public CallSpecificAppData getCallSpecificAppData() {
return callSpecificAppData;
}
diff --git a/java/com/android/dialer/callintent/call_initiation_type.proto b/java/com/android/dialer/callintent/call_initiation_type.proto
index 32e4e49..27d4461 100644
--- a/java/com/android/dialer/callintent/call_initiation_type.proto
+++ b/java/com/android/dialer/callintent/call_initiation_type.proto
@@ -60,5 +60,9 @@
CALL_SUBJECT_DIALOG = 16;
IMS_VIDEO_BLOCKED_FALLBACK_TO_VOICE = 17;
+
+ LEGACY_VOICEMAIL_NOTIFICATION = 18;
+
+ VOICEMAIL_ERROR_MESSAGE = 19;
}
}
diff --git a/java/com/android/dialer/dialpadview/DialpadFragment.java b/java/com/android/dialer/dialpadview/DialpadFragment.java
index 1f83d55..659d120 100644
--- a/java/com/android/dialer/dialpadview/DialpadFragment.java
+++ b/java/com/android/dialer/dialpadview/DialpadFragment.java
@@ -999,7 +999,7 @@
public void callVoicemail() {
DialerUtils.startActivityWithErrorToast(
getActivity(),
- new CallIntentBuilder(CallUtil.getVoicemailUri(), CallInitiationType.Type.DIALPAD).build());
+ CallIntentBuilder.forVoicemail(null, CallInitiationType.Type.DIALPAD).build());
hideAndClearDialpad();
}
diff --git a/java/com/android/dialer/dialpadview/DialpadView.java b/java/com/android/dialer/dialpadview/DialpadView.java
index 5794038..73abd12 100644
--- a/java/com/android/dialer/dialpadview/DialpadView.java
+++ b/java/com/android/dialer/dialpadview/DialpadView.java
@@ -78,7 +78,6 @@
private final ColorStateList mRippleColor;
private final String[] mPrimaryLettersMapping;
private final String[] mSecondaryLettersMapping;
- private final boolean mIsLandscape; // whether the device is in landscape mode
private final boolean mIsRtl; // whether the dialpad is shown in a right-to-left locale
private final int mTranslateDistance;
@@ -108,9 +107,6 @@
mTranslateDistance =
getResources().getDimensionPixelSize(R.dimen.dialpad_key_button_translate_y);
-
- mIsLandscape =
- getResources().getConfiguration().orientation == Configuration.ORIENTATION_LANDSCAPE;
mIsRtl =
TextUtils.getLayoutDirectionFromLocale(Locale.getDefault()) == View.LAYOUT_DIRECTION_RTL;
@@ -230,7 +226,7 @@
super.onLayout(changed, l, t, r, b);
if (changed) {
- if (mIsLandscape) {
+ if (isLandscapeMode()) {
adjustKeyWidths();
} else {
adjustDigitKeyHeights();
@@ -249,7 +245,7 @@
* framework.
*/
private void adjustDigitKeyHeights() {
- Assert.checkState(!mIsLandscape);
+ Assert.checkState(!isLandscapeMode());
int maxHeight = 0;
for (int i = 0; i <= 9; i++) {
@@ -279,40 +275,23 @@
}
/**
- * Adjust key widths to align keys in each column.
+ * Make the widths of all keys the same.
*
- * <p>When the device is in landscape mode, we first find the maximum among a pre-defined width
- * and the width of each key layout. Then we adjust the width of each layout's horizontal
- * placeholder to align keys in each column. This is to accommodate the scenario where not all
- * letters associated with a key can be displayed in one line due to large font size.
+ * <p>When the device is in landscape mode, we first find the maximum width among key layouts.
+ * Then we adjust the width of each layout's horizontal placeholder so that each key has the same
+ * width.
*
* <p>This method should be called after the sizes of related layouts have been calculated by the
* framework.
*/
private void adjustKeyWidths() {
- Assert.checkState(mIsLandscape);
+ Assert.checkState(isLandscapeMode());
- // A pre-defined minimum width for the letters shown beside a key.
- final int minimumKeyLettersWidth =
- getContext().getResources().getDimensionPixelSize(R.dimen.dialpad_key_text_width);
-
- // The maximum width of the key layouts. A key layout includes both the number and the letters.
int maxWidth = 0;
-
for (int buttonId : BUTTON_IDS) {
DialpadKeyButton dialpadKey = (DialpadKeyButton) findViewById(buttonId);
LinearLayout keyLayout = (LinearLayout) dialpadKey.findViewById(R.id.dialpad_key_layout);
- TextView keyLettersView = (TextView) keyLayout.findViewById(R.id.dialpad_key_letters);
- if (keyLettersView != null && keyLettersView.getWidth() < minimumKeyLettersWidth) {
- // If the width of the letters is less than the pre-defined minimum, use the pre-defined
- // minimum to obtain the maximum width.
- maxWidth =
- Math.max(
- maxWidth,
- keyLayout.getWidth() - keyLettersView.getWidth() + minimumKeyLettersWidth);
- } else {
- maxWidth = Math.max(maxWidth, keyLayout.getWidth());
- }
+ maxWidth = Math.max(maxWidth, keyLayout.getWidth());
}
for (int buttonId : BUTTON_IDS) {
@@ -395,7 +374,7 @@
final DialpadKeyButton dialpadKey = (DialpadKeyButton) findViewById(BUTTON_IDS[i]);
ViewPropertyAnimator animator = dialpadKey.animate();
- if (mIsLandscape) {
+ if (isLandscapeMode()) {
// Landscape orientation requires translation along the X axis.
// For RTL locales, ensure we translate negative on the X axis.
dialpadKey.setTranslationX((mIsRtl ? -1 : 1) * mTranslateDistance);
@@ -434,7 +413,7 @@
* @return The animation delay.
*/
private int getKeyButtonAnimationDelay(int buttonId) {
- if (mIsLandscape) {
+ if (isLandscapeMode()) {
if (mIsRtl) {
if (buttonId == R.id.three) {
return KEY_FRAME_DURATION * 1;
@@ -522,7 +501,7 @@
* @return The animation duration.
*/
private int getKeyButtonAnimationDuration(int buttonId) {
- if (mIsLandscape) {
+ if (isLandscapeMode()) {
if (mIsRtl) {
if (buttonId == R.id.one
|| buttonId == R.id.four
@@ -576,4 +555,8 @@
LogUtil.e(TAG, "Attempted to get animation duration for invalid key button id.");
return 0;
}
+
+ private boolean isLandscapeMode() {
+ return getResources().getConfiguration().orientation == Configuration.ORIENTATION_LANDSCAPE;
+ }
}
diff --git a/java/com/android/dialer/dialpadview/res/layout-land/dialpad_key.xml b/java/com/android/dialer/dialpadview/res/layout-land/dialpad_key.xml
index d61c636..91d2506 100644
--- a/java/com/android/dialer/dialpadview/res/layout-land/dialpad_key.xml
+++ b/java/com/android/dialer/dialpadview/res/layout-land/dialpad_key.xml
@@ -22,7 +22,7 @@
<LinearLayout
android:id="@+id/dialpad_key_layout"
style="@style/DialpadKeyInternalLayoutStyle"
- android:layout_gravity="right|center_vertical"
+ android:layout_gravity="center"
android:baselineAligned="false"
android:orientation="horizontal">
diff --git a/java/com/android/dialer/dialpadview/res/layout-land/dialpad_key_one.xml b/java/com/android/dialer/dialpadview/res/layout-land/dialpad_key_one.xml
index 2f2e725..0a770c2 100644
--- a/java/com/android/dialer/dialpadview/res/layout-land/dialpad_key_one.xml
+++ b/java/com/android/dialer/dialpadview/res/layout-land/dialpad_key_one.xml
@@ -23,7 +23,7 @@
<LinearLayout
android:id="@+id/dialpad_key_layout"
style="@style/DialpadKeyInternalLayoutStyle"
- android:layout_gravity="right|center_vertical"
+ android:layout_gravity="center"
android:baselineAligned="false"
android:orientation="horizontal">
diff --git a/java/com/android/dialer/dialpadview/res/layout-land/dialpad_key_pound.xml b/java/com/android/dialer/dialpadview/res/layout-land/dialpad_key_pound.xml
index 613e731..feaa904 100644
--- a/java/com/android/dialer/dialpadview/res/layout-land/dialpad_key_pound.xml
+++ b/java/com/android/dialer/dialpadview/res/layout-land/dialpad_key_pound.xml
@@ -23,7 +23,7 @@
<LinearLayout
android:id="@+id/dialpad_key_layout"
style="@style/DialpadKeyInternalLayoutStyle"
- android:layout_gravity="right|center_vertical"
+ android:layout_gravity="center"
android:baselineAligned="false"
android:orientation="horizontal">
diff --git a/java/com/android/dialer/dialpadview/res/layout-land/dialpad_key_star.xml b/java/com/android/dialer/dialpadview/res/layout-land/dialpad_key_star.xml
index 2b0a6b5..5c57f3b 100644
--- a/java/com/android/dialer/dialpadview/res/layout-land/dialpad_key_star.xml
+++ b/java/com/android/dialer/dialpadview/res/layout-land/dialpad_key_star.xml
@@ -23,7 +23,7 @@
<LinearLayout
android:id="@+id/dialpad_key_layout"
style="@style/DialpadKeyInternalLayoutStyle"
- android:layout_gravity="right|center_vertical"
+ android:layout_gravity="center"
android:baselineAligned="false"
android:orientation="horizontal">
diff --git a/java/com/android/dialer/dialpadview/res/values-land/dimens.xml b/java/com/android/dialer/dialpadview/res/values-land/dimens.xml
index 376dbc3..50fd394 100644
--- a/java/com/android/dialer/dialpadview/res/values-land/dimens.xml
+++ b/java/com/android/dialer/dialpadview/res/values-land/dimens.xml
@@ -16,7 +16,6 @@
-->
<resources>
<dimen name="dialpad_key_margin_right">5dp</dimen>
- <dimen name="dialpad_key_text_width">35dp</dimen>
<dimen name="dialpad_key_number_width">20sp</dimen>
<dimen name="dialpad_symbol_margin_bottom">0dp</dimen>
diff --git a/java/com/android/dialer/util/CallUtil.java b/java/com/android/dialer/util/CallUtil.java
index 0afe930..22cab87 100644
--- a/java/com/android/dialer/util/CallUtil.java
+++ b/java/com/android/dialer/util/CallUtil.java
@@ -52,11 +52,6 @@
return Uri.fromParts(PhoneAccount.SCHEME_TEL, number, null);
}
- /** @return Uri that directly dials a user's voicemail inbox. */
- public static Uri getVoicemailUri() {
- return Uri.fromParts(PhoneAccount.SCHEME_VOICEMAIL, "", null);
- }
-
/**
* Determines if video calling is available, and if so whether presence checking is available as
* well.
diff --git a/java/com/android/voicemail/impl/sms/LegacyModeSmsHandler.java b/java/com/android/voicemail/impl/sms/LegacyModeSmsHandler.java
index d55e3b5..2f8dc7a 100644
--- a/java/com/android/voicemail/impl/sms/LegacyModeSmsHandler.java
+++ b/java/com/android/voicemail/impl/sms/LegacyModeSmsHandler.java
@@ -20,14 +20,14 @@
import android.app.PendingIntent;
import android.content.Context;
import android.content.Intent;
-import android.net.Uri;
import android.os.Build.VERSION_CODES;
import android.os.Bundle;
import android.support.annotation.Nullable;
-import android.telecom.PhoneAccount;
import android.telecom.PhoneAccountHandle;
import android.telephony.TelephonyManager;
import android.telephony.VisualVoicemailSms;
+import com.android.dialer.callintent.CallInitiationType;
+import com.android.dialer.callintent.CallIntentBuilder;
import com.android.voicemail.VoicemailClient;
import com.android.voicemail.impl.OmtpConstants;
import com.android.voicemail.impl.OmtpVvmCarrierConfigHelper;
@@ -94,8 +94,9 @@
PendingIntent.getActivity(
context,
CALL_VOICEMAIL_REQUEST_CODE,
- new Intent(
- Intent.ACTION_CALL, Uri.fromParts(PhoneAccount.SCHEME_VOICEMAIL, "", null)),
+ CallIntentBuilder.forVoicemail(
+ phoneAccountHandle, CallInitiationType.Type.LEGACY_VOICEMAIL_NOTIFICATION)
+ .build(),
PendingIntent.FLAG_UPDATE_CURRENT);
} else {
Intent launchVoicemailSettingsIntent =