summaryrefslogtreecommitdiffstats
path: root/src/com/android/camera/ui/FilmStripView.java
diff options
context:
space:
mode:
authorAngus Kong <shkong@google.com>2013-10-10 16:46:04 -0700
committerAngus Kong <shkong@google.com>2013-10-11 00:26:03 -0700
commit53aedc0ee671c2d11341a66c444bbb6cdc97b150 (patch)
tree9c7c8e69c086cbb4d45e273993e5a3b86e04def8 /src/com/android/camera/ui/FilmStripView.java
parentada31cbe4010e192825b7eb9b7093d4d75cf3558 (diff)
downloadandroid_packages_apps_Snap-53aedc0ee671c2d11341a66c444bbb6cdc97b150.tar.gz
android_packages_apps_Snap-53aedc0ee671c2d11341a66c444bbb6cdc97b150.tar.bz2
android_packages_apps_Snap-53aedc0ee671c2d11341a66c444bbb6cdc97b150.zip
Avoid unnecessary bringChildToFront() calls.
bug:10750719 Change-Id: I831d9ecead91d64c7a0b6a665e9c842ef17d8a8a
Diffstat (limited to 'src/com/android/camera/ui/FilmStripView.java')
-rw-r--r--src/com/android/camera/ui/FilmStripView.java21
1 files changed, 17 insertions, 4 deletions
diff --git a/src/com/android/camera/ui/FilmStripView.java b/src/com/android/camera/ui/FilmStripView.java
index b6f83adf1..788881823 100644
--- a/src/com/android/camera/ui/FilmStripView.java
+++ b/src/com/android/camera/ui/FilmStripView.java
@@ -42,6 +42,7 @@ import com.android.camera.CameraActivity;
import com.android.camera.data.LocalData;
import com.android.camera.ui.FilmStripView.ImageData.PanoramaSupportCallback;
import com.android.camera.ui.FilmstripBottomControls.BottomControlsListener;
+import com.android.camera.util.CameraUtil;
import com.android.camera.util.PhotoSphereHelper.PanoramaViewHelper;
import com.android.camera2.R;
@@ -878,16 +879,17 @@ public class FilmStripView extends ViewGroup implements BottomControlsListener {
// not in transition.
return;
}
- int nearest = findTheNearestView(mCenterX);
+ final int nearest = findTheNearestView(mCenterX);
// no change made.
- if (nearest == -1 || nearest == mCurrentItem)
+ if (nearest == -1 || nearest == mCurrentItem) {
return;
+ }
// Going to change the current item, notify the listener.
if (mListener != null) {
mListener.onCurrentDataChanged(mViewItem[mCurrentItem].getId(), false);
}
- int adjust = nearest - mCurrentItem;
+ final int adjust = nearest - mCurrentItem;
if (adjust > 0) {
for (int k = 0; k < adjust; k++) {
removeItem(k);
@@ -901,6 +903,7 @@ public class FilmStripView extends ViewGroup implements BottomControlsListener {
mViewItem[k] = buildItemFromData(mViewItem[k - 1].getId() + 1);
}
}
+ adjustChildZOrder();
} else {
for (int k = BUFFER_SIZE - 1; k >= BUFFER_SIZE + adjust; k--) {
removeItem(k);
@@ -915,6 +918,7 @@ public class FilmStripView extends ViewGroup implements BottomControlsListener {
}
}
}
+ invalidate();
if (mListener != null) {
mListener.onCurrentDataChanged(mViewItem[mCurrentItem].getId(), true);
}
@@ -953,6 +957,10 @@ public class FilmStripView extends ViewGroup implements BottomControlsListener {
return stopScroll;
}
+ /**
+ * Reorders the child views to be consistent with their data ID. This
+ * method should be called after adding/removing views.
+ */
private void adjustChildZOrder() {
for (int i = BUFFER_SIZE - 1; i >= 0; i--) {
if (mViewItem[i] == null)
@@ -1325,7 +1333,6 @@ public class FilmStripView extends ViewGroup implements BottomControlsListener {
}
stepIfNeeded();
- adjustChildZOrder();
updateBottomControls(false /* no forced update */);
mLastItemId = getCurrentId();
}
@@ -1538,6 +1545,7 @@ public class FilmStripView extends ViewGroup implements BottomControlsListener {
}
})
.start();
+ adjustChildZOrder();
invalidate();
}
@@ -1625,6 +1633,7 @@ public class FilmStripView extends ViewGroup implements BottomControlsListener {
.setInterpolator(mViewAnimInterpolator)
.setDuration(GEOMETRY_ADJUST_TIME_MS)
.start();
+ adjustChildZOrder();
invalidate();
}
@@ -1740,6 +1749,8 @@ public class FilmStripView extends ViewGroup implements BottomControlsListener {
if (clampCenterX()) {
mController.stopScrolling(true);
}
+ adjustChildZOrder();
+ invalidate();
}
/** Some of the data is changed. */
@@ -1801,6 +1812,7 @@ public class FilmStripView extends ViewGroup implements BottomControlsListener {
}
}
}
+ adjustChildZOrder();
// Request a layout to find the measured width/height of the view first.
requestLayout();
// Update photo sphere visibility after metadata fully written.
@@ -1855,6 +1867,7 @@ public class FilmStripView extends ViewGroup implements BottomControlsListener {
mCenterX = -1;
mScale = FULL_SCREEN_SCALE;
+ adjustChildZOrder();
invalidate();
if (mListener != null) {