diff options
author | Ta-wei Yen <twyen@google.com> | 2016-03-15 17:49:14 -0700 |
---|---|---|
committer | Ta-wei Yen <twyen@google.com> | 2016-03-15 17:49:14 -0700 |
commit | 11ca484116c2be45ec2a6e857e84fa565dece0a9 (patch) | |
tree | a438fab83bedafb0ce9db1f539a6b170bd92e5de /src/com/android/dialer/calllog | |
parent | 1034966af68c4d3ea1c7c7ab4cedbaeb3bce5894 (diff) |
Add default phone account fallback for voicemail notification
Sometimes the accountComponentName and accountId field of the new
voicemail will not be populated by the voicemail source, so a
PhoneAccountHandle used to retrieve the voicemail ringtone can not be
created. Previously we fallback to the default notification sound.
In this CL we will attempt to get the voicemail ringtone from the
default phone account before falling back to notification sound.
Bug:21699149
Change-Id: Ia1c09f5aa32c000cca245c669304cacf4f792c01
Diffstat (limited to 'src/com/android/dialer/calllog')
-rw-r--r-- | src/com/android/dialer/calllog/DefaultVoicemailNotifier.java | 27 |
1 files changed, 22 insertions, 5 deletions
diff --git a/src/com/android/dialer/calllog/DefaultVoicemailNotifier.java b/src/com/android/dialer/calllog/DefaultVoicemailNotifier.java index af596863d..de6fc6a3d 100644 --- a/src/com/android/dialer/calllog/DefaultVoicemailNotifier.java +++ b/src/com/android/dialer/calllog/DefaultVoicemailNotifier.java @@ -30,6 +30,7 @@ import android.content.res.Resources; import android.net.Uri; import android.support.annotation.Nullable; import android.support.v4.util.Pair; +import android.telecom.PhoneAccount; import android.telecom.PhoneAccountHandle; import android.telephony.TelephonyManager; import android.text.TextUtils; @@ -43,6 +44,7 @@ import com.android.dialer.R; import com.android.dialer.calllog.CallLogNotificationsHelper.NewCall; import com.android.dialer.filterednumber.FilteredNumbersUtil; import com.android.dialer.list.ListsFragment; +import com.android.dialer.util.TelecomUtil; import java.util.Iterator; import java.util.List; @@ -200,7 +202,7 @@ public class DefaultVoicemailNotifier { names.get(callToNotify.number)); notificationBuilder.setTicker(msg); } - + Log.i(TAG, "Creating voicemail notification"); getNotificationManager().notify(NOTIFICATION_TAG, NOTIFICATION_ID, notificationBuilder.build()); } @@ -210,17 +212,31 @@ public class DefaultVoicemailNotifier { * for the given call. */ private Pair<Uri, Integer> getNotificationInfo(@Nullable NewCall callToNotify) { + Log.v(TAG, "getNotificationInfo"); if (callToNotify == null) { + Log.i(TAG, "callToNotify == null"); return new Pair<>(null, 0); } - + PhoneAccountHandle accountHandle = null; if (callToNotify.accountComponentName == null || callToNotify.accountId == null) { - return new Pair<>(null, Notification.DEFAULT_ALL); - } + Log.v(TAG, "accountComponentName == null || callToNotify.accountId == null"); + accountHandle = TelecomUtil + .getDefaultOutgoingPhoneAccount(mContext, PhoneAccount.SCHEME_TEL); + if (accountHandle == null) { + Log.i(TAG, "No default phone account found, using default notification ringtone"); + return new Pair<>(null, Notification.DEFAULT_ALL); + } - PhoneAccountHandle accountHandle = new PhoneAccountHandle( + } else { + accountHandle = new PhoneAccountHandle( ComponentName.unflattenFromString(callToNotify.accountComponentName), callToNotify.accountId); + } + if (accountHandle.getComponentName() != null) { + Log.v(TAG, "PhoneAccountHandle.ComponentInfo:" + accountHandle.getComponentName()); + } else { + Log.i(TAG, "PhoneAccountHandle.ComponentInfo: null"); + } return new Pair<>( TelephonyManagerCompat.getVoicemailRingtoneUri( getTelephonyManager(), accountHandle), @@ -249,4 +265,5 @@ public class DefaultVoicemailNotifier { private TelephonyManager getTelephonyManager() { return (TelephonyManager) mContext.getSystemService(Context.TELEPHONY_SERVICE); } + } |