summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Joe Onorato <joeo@google.com> 2011-01-12 17:03:11 -0800
committer Joe Onorato <joeo@google.com> 2011-01-12 17:06:14 -0800
commitc9596d6d8e9154b5f87c8e887bfabf7546b68af5 (patch)
tree214ed2032c7ea965f535a6280b7ac578a72a8102
parentd7cbe592dd210069a4186e39bad1a95f6884d34b (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
-rw-r--r--core/java/android/app/Notification.java10
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/tablet/TabletStatusBar.java10
-rw-r--r--tests/StatusBar/res/layout/notification_builder_test.xml2
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