diff options
author | twyen <twyen@google.com> | 2017-09-08 11:10:16 -0700 |
---|---|---|
committer | Eric Erfanian <erfanian@google.com> | 2017-09-11 13:49:27 -0700 |
commit | bf900241b71a4a594ce989bf0d18ada1d5fadb56 (patch) | |
tree | 3e6418fc85a41ccfb06b362f39f462485061e80d /java | |
parent | 9295405d7cdc6e97bbebce485710aafb8704c198 (diff) |
Send PhoneAccountHandle with ACTION_CONFIGURE_VOICEMAIL
When opening a voicemail setting from Dialer with
ACTION_CONFIGURE_VOICEMAIL, no subId is passed.
So on a multi-SIM device, it is always configuration on the default
phone regardless of SIM.
To solve this, set the PhoneAccountHandle to intent extra for
ACTION_CONFIGURE_VOICEMAIL. In the advanced settings, obtains subId
from the PhoneAccountHandle.
Test: manual - Checked that correct PhoneAccountHandle will be passed
with ACTION_CONFIGURE_VOICEMAIL intent
Bug: 65001008
Author: xuegang.x.liu <xuegang.x.liu@sony.com>
Bug: 65001008
Test: manual - Checked that correct PhoneAccountHandle will be passed
PiperOrigin-RevId: 168019873
Change-Id: I8578dd2c4ac24e4af121a90b2b175baae2832461
Diffstat (limited to 'java')
4 files changed, 10 insertions, 3 deletions
diff --git a/java/com/android/dialer/app/voicemail/error/VoicemailTosMessageCreator.java b/java/com/android/dialer/app/voicemail/error/VoicemailTosMessageCreator.java index baf7b9989..53f4680d2 100644 --- a/java/com/android/dialer/app/voicemail/error/VoicemailTosMessageCreator.java +++ b/java/com/android/dialer/app/voicemail/error/VoicemailTosMessageCreator.java @@ -143,7 +143,7 @@ public class VoicemailTosMessageCreator { if (isVvm3() && Vvm3VoicemailMessageCreator.PIN_NOT_SET == status.configurationState) { LogUtil.i( "VoicemailTosMessageCreator.showDeclineTosDialog", "PIN_NOT_SET, showing set PIN dialog"); - showSetPinBeforeDeclineDialog(); + showSetPinBeforeDeclineDialog(handle); return; } LogUtil.i( @@ -180,7 +180,7 @@ public class VoicemailTosMessageCreator { builder.show(); } - private void showSetPinBeforeDeclineDialog() { + private void showSetPinBeforeDeclineDialog(PhoneAccountHandle phoneAccountHandle) { AlertDialog.Builder builder = new AlertDialog.Builder(context); builder.setMessage(R.string.verizon_terms_and_conditions_decline_set_pin_dialog_message); builder.setPositiveButton( @@ -191,6 +191,7 @@ public class VoicemailTosMessageCreator { Logger.get(context) .logImpression(DialerImpression.Type.VOICEMAIL_VVM3_TOS_DECLINE_CHANGE_PIN_SHOWN); Intent intent = new Intent(TelephonyManager.ACTION_CONFIGURE_VOICEMAIL); + intent.putExtra(TelephonyManager.EXTRA_PHONE_ACCOUNT_HANDLE, phoneAccountHandle); context.startActivity(intent); } }); diff --git a/java/com/android/voicemail/impl/settings/VoicemailSettingsFragment.java b/java/com/android/voicemail/impl/settings/VoicemailSettingsFragment.java index 4860649b3..e2ea72569 100644 --- a/java/com/android/voicemail/impl/settings/VoicemailSettingsFragment.java +++ b/java/com/android/voicemail/impl/settings/VoicemailSettingsFragment.java @@ -151,6 +151,8 @@ public class VoicemailSettingsFragment extends PreferenceFragment (PreferenceScreen) findPreference(getString(R.string.voicemail_advanced_settings_key)); Intent advancedSettingsIntent = new Intent(TelephonyManager.ACTION_CONFIGURE_VOICEMAIL); advancedSettingsIntent.putExtra(TelephonyManager.EXTRA_HIDE_PUBLIC_SETTINGS, true); + advancedSettingsIntent.putExtra( + TelephonyManager.EXTRA_PHONE_ACCOUNT_HANDLE, phoneAccountHandle); advancedSettings.setIntent(advancedSettingsIntent); voicemailChangePinPreference.setOnPreferenceClickListener( new OnPreferenceClickListener() { diff --git a/java/com/android/voicemail/impl/sms/LegacyModeSmsHandler.java b/java/com/android/voicemail/impl/sms/LegacyModeSmsHandler.java index e902825c0..d55e3b5ae 100644 --- a/java/com/android/voicemail/impl/sms/LegacyModeSmsHandler.java +++ b/java/com/android/voicemail/impl/sms/LegacyModeSmsHandler.java @@ -101,6 +101,8 @@ public class LegacyModeSmsHandler { Intent launchVoicemailSettingsIntent = new Intent(TelephonyManager.ACTION_CONFIGURE_VOICEMAIL); launchVoicemailSettingsIntent.putExtra(TelephonyManager.EXTRA_HIDE_PUBLIC_SETTINGS, true); + launchVoicemailSettingsIntent.putExtra( + TelephonyManager.EXTRA_PHONE_ACCOUNT_HANDLE, phoneAccountHandle); launchVoicemailSettingsPendingIntent = PendingIntent.getActivity( diff --git a/java/com/android/voicemail/stub/StubVoicemailClient.java b/java/com/android/voicemail/stub/StubVoicemailClient.java index 992950340..c2c7a6d38 100644 --- a/java/com/android/voicemail/stub/StubVoicemailClient.java +++ b/java/com/android/voicemail/stub/StubVoicemailClient.java @@ -77,7 +77,9 @@ public final class StubVoicemailClient implements VoicemailClient { @Override public Intent getSetPinIntent(Context context, PhoneAccountHandle phoneAccountHandle) { - return new Intent(TelephonyManager.ACTION_CONFIGURE_VOICEMAIL); + Intent intent = new Intent(TelephonyManager.ACTION_CONFIGURE_VOICEMAIL); + intent.putExtra(TelephonyManager.EXTRA_PHONE_ACCOUNT_HANDLE, phoneAccountHandle); + return intent; } @Override |