From 8ddeb521ec4282d4fdc0d464d58901ab18a0b4be Mon Sep 17 00:00:00 2001 From: Julia Reynolds Date: Fri, 4 Jan 2019 11:09:35 -0500 Subject: [PATCH] Fix notification widget's alerting logs - Use last alerted time if available - Read from channel Test: manual Change-Id: I5e3ab7e234c9c6766a1a4dffb5636a633f6b5f2e Fixes: 74495461 --- res/values/strings.xml | 4 ++ .../settings/notification/NotificationStation.java | 68 +++++++++++++++------- 2 files changed, 52 insertions(+), 20 deletions(-) diff --git a/res/values/strings.xml b/res/values/strings.xml index 026f7ba549..89e5139d9b 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -9473,10 +9473,14 @@ parcel size ashmem + + notification alerted sound vibrate + + pattern default diff --git a/src/com/android/settings/notification/NotificationStation.java b/src/com/android/settings/notification/NotificationStation.java index d3ebc08f77..116980f308 100644 --- a/src/com/android/settings/notification/NotificationStation.java +++ b/src/com/android/settings/notification/NotificationStation.java @@ -16,10 +16,13 @@ package com.android.settings.notification; +import static android.app.NotificationManager.IMPORTANCE_UNSPECIFIED; + import android.app.Activity; import android.app.ActivityManager; import android.app.INotificationManager; import android.app.Notification; +import android.app.NotificationChannel; import android.app.PendingIntent; import android.content.ComponentName; import android.content.Context; @@ -354,28 +357,53 @@ public class NotificationStation extends SettingsPreferenceFragment { getString(R.string.notification_log_details_group_summary))); } } - sb.append("\n") - .append(bold(getString(R.string.notification_log_details_sound))) - .append(delim); - if (0 != (n.defaults & Notification.DEFAULT_SOUND)) { - sb.append(getString(R.string.notification_log_details_default)); - } else if (n.sound != null) { - sb.append(n.sound.toString()); - } else { - sb.append(getString(R.string.notification_log_details_none)); + if (info.active) { + // mRanking only applies to active notifications + if (mRanking != null && mRanking.getRanking(sbn.getKey(), rank)) { + if (rank.getLastAudiblyAlertedMillis() > 0) { + sb.append("\n") + .append(bold(getString(R.string.notification_log_details_alerted))); + } + } } - sb.append("\n") - .append(bold(getString(R.string.notification_log_details_vibrate))) - .append(delim); - if (0 != (n.defaults & Notification.DEFAULT_VIBRATE)) { - sb.append(getString(R.string.notification_log_details_default)); - } else if (n.vibrate != null) { - for (int vi=0;vi 0) sb.append(','); - sb.append(String.valueOf(n.vibrate[vi])); + try { + NotificationChannel channel = mNoMan.getNotificationChannelForPackage( + sbn.getPackageName(), sbn.getUid(), n.getChannelId(), false); + sb.append("\n") + .append(bold(getString(R.string.notification_log_details_sound))) + .append(delim); + if (channel.getImportance() == IMPORTANCE_UNSPECIFIED) { + + if (0 != (n.defaults & Notification.DEFAULT_SOUND)) { + sb.append(getString(R.string.notification_log_details_default)); + } else if (n.sound != null) { + sb.append(n.sound.toString()); + } else { + sb.append(getString(R.string.notification_log_details_none)); + } + } else { + sb.append(String.valueOf(channel.getSound())); } - } else { - sb.append(getString(R.string.notification_log_details_none)); + sb.append("\n") + .append(bold(getString(R.string.notification_log_details_vibrate))) + .append(delim); + if (channel.getImportance() == IMPORTANCE_UNSPECIFIED) { + if (0 != (n.defaults & Notification.DEFAULT_VIBRATE)) { + sb.append(getString(R.string.notification_log_details_default)); + } else if (n.vibrate != null) { + sb.append(getString(R.string.notification_log_details_vibrate_pattern)); + } else { + sb.append(getString(R.string.notification_log_details_none)); + } + } else { + if (channel.getVibrationPattern() != null) { + sb.append(getString(R.string.notification_log_details_vibrate_pattern)); + } else { + sb.append(getString(R.string.notification_log_details_none)); + } + } + } catch (RemoteException e) { + Log.d(TAG, "cannot read channel info", e); } sb.append("\n") .append(bold(getString(R.string.notification_log_details_visibility))) -- 2.11.0