Loading src-N/com/android/dialer/calllog/VoicemailNotificationSettingsLookup.java 0 → 100644 +44 −0 Original line number Diff line number Diff line /* * Copyright (C) 2016 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License */ package com.android.dialer.calllog; import android.app.Notification; import android.content.ComponentName; import android.content.Context; import android.net.Uri; import android.telecom.PhoneAccountHandle; import android.telephony.TelephonyManager; import com.android.dialer.calllog.DefaultVoicemailNotifier.NewCall; /** * Class to do lookup for voicemail ringtone and vibration. On N and above, this will look up * voicemail notification settings from Telephony. */ public class VoicemailNotificationSettingsLookup { public static Uri getVoicemailRingtoneUri(Context context, PhoneAccountHandle accountHandle) { return getTelephonyManager(context).getVoicemailRingtoneUri(accountHandle); } public static int getNotificationDefaults(Context context, PhoneAccountHandle accountHandle) { return getTelephonyManager(context).isVoicemailVibrationEnabled(accountHandle) ? Notification.DEFAULT_VIBRATE : 0; } private static TelephonyManager getTelephonyManager(Context context) { return (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE); } } src-pre-N/com/android/dialer/calllog/VoicemailNotificationSettingsLookup.java 0 → 100644 +34 −0 Original line number Diff line number Diff line /* * Copyright (C) 2016 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License */ package com.android.dialer.calllog; import android.app.Notification; import android.content.Context; import android.net.Uri; import android.telecom.PhoneAccountHandle; /** * Class to do lookup for voicemail ringtone. On pre-N, this is just the system defaults. */ public class VoicemailNotificationSettingsLookup { public static Uri getVoicemailRingtoneUri(Context context, PhoneAccountHandle accountHandle) { return null; } public static int getNotificationDefaults(Context context, PhoneAccountHandle accountHandle) { return Notification.DEFAULT_ALL; } } src/com/android/dialer/calllog/DefaultVoicemailNotifier.java +16 −1 Original line number Diff line number Diff line Loading @@ -24,6 +24,7 @@ import com.google.common.collect.Maps; import android.app.Notification; import android.app.NotificationManager; import android.app.PendingIntent; import android.content.ComponentName; import android.content.ContentResolver; import android.content.ContentUris; import android.content.Context; Loading @@ -33,6 +34,7 @@ import android.database.Cursor; import android.net.Uri; import android.provider.CallLog.Calls; import android.provider.ContactsContract.PhoneLookup; import android.telecom.PhoneAccountHandle; import android.telephony.PhoneNumberUtils; import android.text.TextUtils; import android.util.Log; Loading Loading @@ -194,13 +196,26 @@ public class DefaultVoicemailNotifier { // TODO: Use the photo of contact if all calls are from the same person. final int icon = android.R.drawable.stat_notify_voicemail; Uri ringtoneUri = null; int notificationDefaults = 0; if (callToNotify != null) { PhoneAccountHandle accountHandle = new PhoneAccountHandle( ComponentName.unflattenFromString(callToNotify.accountComponentName), callToNotify.accountId); ringtoneUri = VoicemailNotificationSettingsLookup .getVoicemailRingtoneUri(mContext, accountHandle); notificationDefaults = VoicemailNotificationSettingsLookup .getNotificationDefaults(mContext, accountHandle); } Notification.Builder notificationBuilder = new Notification.Builder(mContext) .setSmallIcon(icon) .setContentTitle(title) .setContentText(callers) .setStyle(new Notification.BigTextStyle().bigText(transcription)) .setColor(resources.getColor(R.color.dialer_theme_color)) .setDefaults(callToNotify != null ? Notification.DEFAULT_ALL : 0) .setSound(ringtoneUri) .setDefaults(notificationDefaults) .setDeleteIntent(createMarkNewVoicemailsAsOldIntent()) .setAutoCancel(true); Loading Loading
src-N/com/android/dialer/calllog/VoicemailNotificationSettingsLookup.java 0 → 100644 +44 −0 Original line number Diff line number Diff line /* * Copyright (C) 2016 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License */ package com.android.dialer.calllog; import android.app.Notification; import android.content.ComponentName; import android.content.Context; import android.net.Uri; import android.telecom.PhoneAccountHandle; import android.telephony.TelephonyManager; import com.android.dialer.calllog.DefaultVoicemailNotifier.NewCall; /** * Class to do lookup for voicemail ringtone and vibration. On N and above, this will look up * voicemail notification settings from Telephony. */ public class VoicemailNotificationSettingsLookup { public static Uri getVoicemailRingtoneUri(Context context, PhoneAccountHandle accountHandle) { return getTelephonyManager(context).getVoicemailRingtoneUri(accountHandle); } public static int getNotificationDefaults(Context context, PhoneAccountHandle accountHandle) { return getTelephonyManager(context).isVoicemailVibrationEnabled(accountHandle) ? Notification.DEFAULT_VIBRATE : 0; } private static TelephonyManager getTelephonyManager(Context context) { return (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE); } }
src-pre-N/com/android/dialer/calllog/VoicemailNotificationSettingsLookup.java 0 → 100644 +34 −0 Original line number Diff line number Diff line /* * Copyright (C) 2016 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License */ package com.android.dialer.calllog; import android.app.Notification; import android.content.Context; import android.net.Uri; import android.telecom.PhoneAccountHandle; /** * Class to do lookup for voicemail ringtone. On pre-N, this is just the system defaults. */ public class VoicemailNotificationSettingsLookup { public static Uri getVoicemailRingtoneUri(Context context, PhoneAccountHandle accountHandle) { return null; } public static int getNotificationDefaults(Context context, PhoneAccountHandle accountHandle) { return Notification.DEFAULT_ALL; } }
src/com/android/dialer/calllog/DefaultVoicemailNotifier.java +16 −1 Original line number Diff line number Diff line Loading @@ -24,6 +24,7 @@ import com.google.common.collect.Maps; import android.app.Notification; import android.app.NotificationManager; import android.app.PendingIntent; import android.content.ComponentName; import android.content.ContentResolver; import android.content.ContentUris; import android.content.Context; Loading @@ -33,6 +34,7 @@ import android.database.Cursor; import android.net.Uri; import android.provider.CallLog.Calls; import android.provider.ContactsContract.PhoneLookup; import android.telecom.PhoneAccountHandle; import android.telephony.PhoneNumberUtils; import android.text.TextUtils; import android.util.Log; Loading Loading @@ -194,13 +196,26 @@ public class DefaultVoicemailNotifier { // TODO: Use the photo of contact if all calls are from the same person. final int icon = android.R.drawable.stat_notify_voicemail; Uri ringtoneUri = null; int notificationDefaults = 0; if (callToNotify != null) { PhoneAccountHandle accountHandle = new PhoneAccountHandle( ComponentName.unflattenFromString(callToNotify.accountComponentName), callToNotify.accountId); ringtoneUri = VoicemailNotificationSettingsLookup .getVoicemailRingtoneUri(mContext, accountHandle); notificationDefaults = VoicemailNotificationSettingsLookup .getNotificationDefaults(mContext, accountHandle); } Notification.Builder notificationBuilder = new Notification.Builder(mContext) .setSmallIcon(icon) .setContentTitle(title) .setContentText(callers) .setStyle(new Notification.BigTextStyle().bigText(transcription)) .setColor(resources.getColor(R.color.dialer_theme_color)) .setDefaults(callToNotify != null ? Notification.DEFAULT_ALL : 0) .setSound(ringtoneUri) .setDefaults(notificationDefaults) .setDeleteIntent(createMarkNewVoicemailsAsOldIntent()) .setAutoCancel(true); Loading