diff --git a/res/values/strings.xml b/res/values/strings.xml
index 026f7ba549b..89e5139d9b2 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 d3ebc08f77a..116980f3085 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));
- }
- 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]));
+ 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)));
+ }
}
- } else {
- sb.append(getString(R.string.notification_log_details_none));
+ }
+ 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()));
+ }
+ 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)))