summaryrefslogtreecommitdiff
path: root/src/com
diff options
context:
space:
mode:
authorTa-wei Yen <twyen@google.com>2016-03-15 17:49:14 -0700
committerTa-wei Yen <twyen@google.com>2016-03-15 17:49:14 -0700
commit11ca484116c2be45ec2a6e857e84fa565dece0a9 (patch)
treea438fab83bedafb0ce9db1f539a6b170bd92e5de /src/com
parent1034966af68c4d3ea1c7c7ab4cedbaeb3bce5894 (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')
-rw-r--r--src/com/android/dialer/calllog/DefaultVoicemailNotifier.java27
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);
}
+
}