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:
@@ -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("[");
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -322,7 +322,7 @@
|
||||
<RadioButton
|
||||
android:id="@+id/title_short"
|
||||
style="@style/FieldContents"
|
||||
android:text="cwshort"
|
||||
android:text="short"
|
||||
android:tag="Title"
|
||||
/>
|
||||
<RadioButton
|
||||
|
||||
Reference in New Issue
Block a user