diff options
author | Doris Liu <tianliu@google.com> | 2014-03-10 15:39:01 -0700 |
---|---|---|
committer | Doris Liu <tianliu@google.com> | 2014-03-10 15:39:01 -0700 |
commit | 8676e7802fb40f64a3b465c9b5e1a0a1ada9f699 (patch) | |
tree | 24ee8716f8b21b8c011600b84e8209e60f51ad20 | |
parent | 597c1a093f840af3c42e00af05da01ef124dc846 (diff) | |
download | android_packages_apps_Camera2-8676e7802fb40f64a3b465c9b5e1a0a1ada9f699.tar.gz android_packages_apps_Camera2-8676e7802fb40f64a3b465c9b5e1a0a1ada9f699.tar.bz2 android_packages_apps_Camera2-8676e7802fb40f64a3b465c9b5e1a0a1ada9f699.zip |
Fix shimmy cold start jank
Bug: 13392593
Change-Id: I08a45bad9fc93a284a9966fa8aa8c6e13e674ae5
-rw-r--r-- | src/com/android/camera/ui/ModeListView.java | 2 | ||||
-rw-r--r-- | src/com/android/camera/ui/ModeSelectorItem.java | 16 |
2 files changed, 11 insertions, 7 deletions
diff --git a/src/com/android/camera/ui/ModeListView.java b/src/com/android/camera/ui/ModeListView.java index fb5e2ed3f..013ce10c7 100644 --- a/src/com/android/camera/ui/ModeListView.java +++ b/src/com/android/camera/ui/ModeListView.java @@ -541,6 +541,8 @@ public class ModeListView extends FrameLayout }); } }); + // The mode list is initialized to be all the way closed. + onModeListOpenRatioUpdate(0); } /** diff --git a/src/com/android/camera/ui/ModeSelectorItem.java b/src/com/android/camera/ui/ModeSelectorItem.java index 941b026b8..c23641d64 100644 --- a/src/com/android/camera/ui/ModeSelectorItem.java +++ b/src/com/android/camera/ui/ModeSelectorItem.java @@ -52,7 +52,7 @@ class ModeSelectorItem extends FrameLayout { private TextView mText; private ModeIconView mIcon; - private int mVisibleWidth; + private int mVisibleWidth = 0; private final int mMinVisibleWidth; private VisibleWidthChangedListener mListener = null; @@ -203,12 +203,6 @@ class ModeSelectorItem extends FrameLayout { mListener.onVisibleWidthChanged(newWidth); } } - float transX = 0f; - // If the given width is less than the icon width, we need to translate icon - if (mVisibleWidth < mMinVisibleWidth + mIcon.getLeft()) { - transX = mMinVisibleWidth + mIcon.getLeft() - mVisibleWidth; - } - setTranslationX(-transX); invalidate(); } @@ -229,7 +223,15 @@ class ModeSelectorItem extends FrameLayout { */ @Override public void draw(Canvas canvas) { + float transX = 0f; + // If the given width is less than the icon width, we need to translate icon + if (mVisibleWidth < mMinVisibleWidth + mIcon.getLeft()) { + transX = mMinVisibleWidth + mIcon.getLeft() - mVisibleWidth; + } + canvas.save(); + canvas.translate(-transX, 0); super.draw(canvas); + canvas.restore(); } /** |