Merge "Fix race condition btwn row and shelf icon init" into rvc-dev am: c9ca670cf2
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/11959993 Change-Id: I6bfed6217ed6b765a16fc58df4e5fdc2d555be6e
This commit is contained in:
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user