Skip to content
Snippets Groups Projects
Commit 1bf998e2 authored by Steve Elliott's avatar Steve Elliott
Browse files

Fix race condition btwn row and shelf icon init

Fixes: 154228740
Test: manual
Change-Id: I4bedcc9c50817418a49c4a69d3132c01720cd206
parent 0c904c32
No related branches found
No related tags found
No related merge requests found
......@@ -178,6 +178,7 @@ public final class NotificationEntry extends ListEntry {
private int mBucket = BUCKET_ALERTING;
@Nullable private Long mPendingAnimationDuration;
private boolean mIsMarkedForUserTriggeredMovement;
private boolean mShelfIconVisible;
/**
* @param sbn the StatusBarNotification from system server
......@@ -431,6 +432,7 @@ public final class NotificationEntry extends ListEntry {
//TODO: This will go away when we have a way to bind an entry to a row
public void setRow(ExpandableNotificationRow row) {
this.row = row;
updateShelfIconVisibility();
}
public ExpandableNotificationRowController getRowController() {
......@@ -951,6 +953,18 @@ public final class NotificationEntry extends ListEntry {
return mIsMarkedForUserTriggeredMovement;
}
/** Whether or not the icon for this notification is visible in the shelf. */
public void setShelfIconVisible(boolean shelfIconVisible) {
mShelfIconVisible = shelfIconVisible;
updateShelfIconVisibility();
}
private void updateShelfIconVisibility() {
if (row != null) {
row.setShelfIconVisible(mShelfIconVisible);
}
}
/**
* Mark this entry for movement triggered by a user action (ex: changing the priorirty of a
* conversation). This can then be used for custom animations.
......
......@@ -96,13 +96,11 @@ class IconManager @Inject constructor(
val shelfIcon = iconBuilder.createIconView(entry)
shelfIcon.scaleType = ImageView.ScaleType.CENTER_INSIDE
shelfIcon.visibility = View.INVISIBLE
// TODO: This doesn't belong here
shelfIcon.setOnVisibilityChangedListener { newVisibility: Int ->
if (entry.row != null) {
entry.row.setShelfIconVisible(newVisibility == View.VISIBLE)
}
entry.setShelfIconVisible(newVisibility == View.VISIBLE)
}
shelfIcon.visibility = View.INVISIBLE
// Construct the aod icon view.
val aodIcon = iconBuilder.createIconView(entry)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment