diff options
| author | 2011-01-12 17:03:11 -0800 | |
|---|---|---|
| committer | 2011-01-12 17:06:14 -0800 | |
| commit | c9596d6d8e9154b5f87c8e887bfabf7546b68af5 (patch) | |
| tree | 214ed2032c7ea965f535a6280b7ac578a72a8102 | |
| parent | d7cbe592dd210069a4186e39bad1a95f6884d34b (diff) | |
Possibly fix bad notification updates.
I think what was happening is that it was using a different layout but we were trying to reapply the
RemoveViews because of some bad boolean logic. This fixes that, and adds some better debugging that
might show us what else is happening.
Bug: 3298062
Change-Id: I0984f24cb2960166c79b9f2cc7c6a98bd75e17ba
3 files changed, 15 insertions, 7 deletions
diff --git a/core/java/android/app/Notification.java b/core/java/android/app/Notification.java index 7b7cb379b302..0243b02524e4 100644 --- a/core/java/android/app/Notification.java +++ b/core/java/android/app/Notification.java @@ -574,7 +574,15 @@ public class Notification implements Parcelable @Override public String toString() { StringBuilder sb = new StringBuilder(); - sb.append("Notification(vibrate="); + sb.append("Notification(contentView="); + if (contentView != null) { + sb.append(contentView.getPackage()); + sb.append("/0x"); + sb.append(Integer.toHexString(contentView.getLayoutId())); + } else { + sb.append("null"); + } + sb.append(" vibrate="); if (this.vibrate != null) { int N = this.vibrate.length-1; sb.append("["); diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/tablet/TabletStatusBar.java b/packages/SystemUI/src/com/android/systemui/statusbar/tablet/TabletStatusBar.java index f858f61b1b9c..dc1dbe209a9c 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/tablet/TabletStatusBar.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/tablet/TabletStatusBar.java @@ -598,18 +598,18 @@ public class TabletStatusBar extends StatusBar implements // Can we just reapply the RemoteViews in place? If when didn't change, the order // didn't change. - boolean orderUnchanged = (notification.notification.when == oldNotification.notification.when - && notification.isOngoing() == oldNotification.isOngoing() + boolean contentsUnchanged = notification.isOngoing() == oldNotification.isOngoing() && oldEntry.expanded != null && contentView != null && oldContentView != null && contentView.getPackage() != null && oldContentView.getPackage() != null && oldContentView.getPackage().equals(contentView.getPackage()) - && oldContentView.getLayoutId() == contentView.getLayoutId()); + && oldContentView.getLayoutId() == contentView.getLayoutId(); ViewGroup rowParent = (ViewGroup) oldEntry.row.getParent(); - boolean isLastAnyway = rowParent.indexOfChild(oldEntry.row) == rowParent.getChildCount() - 1; - if (orderUnchanged || isLastAnyway) { + boolean orderUnchanged = notification.notification.when==oldNotification.notification.when; + boolean isLastAnyway = rowParent.indexOfChild(oldEntry.row) == rowParent.getChildCount()-1; + if (contentsUnchanged && (orderUnchanged || isLastAnyway)) { if (DEBUG) Slog.d(TAG, "reusing notification for key: " + key); oldEntry.notification = notification; try { diff --git a/tests/StatusBar/res/layout/notification_builder_test.xml b/tests/StatusBar/res/layout/notification_builder_test.xml index 58c4fbb183ad..1b27e97880ce 100644 --- a/tests/StatusBar/res/layout/notification_builder_test.xml +++ b/tests/StatusBar/res/layout/notification_builder_test.xml @@ -322,7 +322,7 @@ <RadioButton android:id="@+id/title_short" style="@style/FieldContents" - android:text="cwshort" + android:text="short" android:tag="Title" /> <RadioButton |