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
This commit is contained in:
Joe Onorato
2011-01-12 17:03:11 -08:00
parent d7cbe592dd
commit c9596d6d8e
3 changed files with 15 additions and 7 deletions

View File

@@ -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("[");

View File

@@ -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 {

View File

@@ -322,7 +322,7 @@
<RadioButton
android:id="@+id/title_short"
style="@style/FieldContents"
android:text="cwshort"
android:text="short"
android:tag="Title"
/>
<RadioButton