summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJoe Onorato <joeo@android.com>2010-03-25 16:00:25 -0700
committerAndroid (Google) Code Review <android-gerrit@google.com>2010-03-25 16:00:25 -0700
commit53d7c234432c8d2cca5b6e2ac08ab859b062f892 (patch)
treeb795b314ce2de6aada5ed6da728b475061a6c274
parentb012e15441d86bdb31e87b23a7b3a565121aa37c (diff)
parent32b51436c68966cc7e5895fc917e7d9c7ffb10dd (diff)
downloadframeworks_base-53d7c234432c8d2cca5b6e2ac08ab859b062f892.zip
frameworks_base-53d7c234432c8d2cca5b6e2ac08ab859b062f892.tar.gz
frameworks_base-53d7c234432c8d2cca5b6e2ac08ab859b062f892.tar.bz2
Merge "Fix 2495749 - System process crash when a notification switches sections."
-rw-r--r--services/java/com/android/server/status/NotificationViewList.java21
-rw-r--r--services/java/com/android/server/status/StatusBarService.java2
2 files changed, 20 insertions, 3 deletions
diff --git a/services/java/com/android/server/status/NotificationViewList.java b/services/java/com/android/server/status/NotificationViewList.java
index 1598b68..1bb56a7 100644
--- a/services/java/com/android/server/status/NotificationViewList.java
+++ b/services/java/com/android/server/status/NotificationViewList.java
@@ -173,6 +173,12 @@ class NotificationViewList {
}
void add(StatusBarNotification notification) {
+ if (StatusBarService.SPEW) {
+ Slog.d(StatusBarService.TAG, "before add NotificationViewList"
+ + " notification.data.ongoingEvent=" + notification.data.ongoingEvent);
+ dump(notification);
+ }
+
ArrayList<StatusBarNotification> list = notification.data.ongoingEvent ? mOngoing : mLatest;
long when = notification.data.when;
final int N = list.size();
@@ -187,20 +193,25 @@ class NotificationViewList {
list.add(index, notification);
if (StatusBarService.SPEW) {
- Slog.d(StatusBarService.TAG, "NotificationViewList index=" + index);
+ Slog.d(StatusBarService.TAG, "after add NotificationViewList index=" + index);
dump(notification);
}
}
void dump(StatusBarNotification notification) {
if (StatusBarService.SPEW) {
+ boolean showTime = false;
String s = "";
for (int i=0; i<mOngoing.size(); i++) {
StatusBarNotification that = mOngoing.get(i);
if (that.key == notification.key) {
s += "[";
}
- s += that.data.when;
+ if (showTime) {
+ s += that.data.when;
+ } else {
+ s += that.data.pkg + "/" + that.data.id + "/" + that.view;
+ }
if (that.key == notification.key) {
s += "]";
}
@@ -214,7 +225,11 @@ class NotificationViewList {
if (that.key == notification.key) {
s += "[";
}
- s += that.data.when;
+ if (showTime) {
+ s += that.data.when;
+ } else {
+ s += that.data.pkg + "/" + that.data.id + "/" + that.view;
+ }
if (that.key == notification.key) {
s += "]";
}
diff --git a/services/java/com/android/server/status/StatusBarService.java b/services/java/com/android/server/status/StatusBarService.java
index 27b7b504..bcaf0a4 100644
--- a/services/java/com/android/server/status/StatusBarService.java
+++ b/services/java/com/android/server/status/StatusBarService.java
@@ -893,6 +893,8 @@ public class StatusBarService extends IStatusBar.Stub
void updateNotificationView(StatusBarNotification notification, NotificationData oldData) {
NotificationData n = notification.data;
if (oldData != null && n != null
+ && n.when == oldData.when
+ && n.ongoingEvent == oldData.ongoingEvent
&& n.contentView != null && oldData.contentView != null
&& n.contentView.getPackage() != null
&& oldData.contentView.getPackage() != null