Using a custom view instead of ImageView to avoid relayout when the icon changes

Bug: 78585335
Change-Id: I078aec5b80ec45933ba4974df68cab23ac4a0ca0
This commit is contained in:
Sunny Goyal
2018-05-02 15:36:59 -07:00
parent 433ef09d29
commit 85c53f2af5
4 changed files with 98 additions and 7 deletions
@@ -80,7 +80,7 @@ public class TaskView extends FrameLayout implements TaskCallbacks, PageCallback
private Task mTask;
private TaskThumbnailView mSnapshotView;
private ImageView mIconView;
private IconView mIconView;
private float mCurveScale;
private float mCurveDimAlpha;
private Animator mDimAlphaAnim;
@@ -133,7 +133,7 @@ public class TaskView extends FrameLayout implements TaskCallbacks, PageCallback
return mSnapshotView;
}
public ImageView getIconView() {
public IconView getIconView() {
return mIconView;
}
@@ -163,7 +163,7 @@ public class TaskView extends FrameLayout implements TaskCallbacks, PageCallback
@Override
public void onTaskDataLoaded(Task task, ThumbnailData thumbnailData) {
mSnapshotView.setThumbnail(task, thumbnailData);
mIconView.setImageDrawable(task.icon);
mIconView.setDrawable(task.icon);
mIconView.setOnClickListener(icon -> TaskMenuView.showForTask(this));
mIconView.setOnLongClickListener(icon -> {
requestDisallowInterceptTouchEvent(true);
@@ -174,7 +174,7 @@ public class TaskView extends FrameLayout implements TaskCallbacks, PageCallback
@Override
public void onTaskDataUnloaded() {
mSnapshotView.setThumbnail(null, null);
mIconView.setImageDrawable(null);
mIconView.setDrawable(null);
mIconView.setOnLongClickListener(null);
}