summaryrefslogtreecommitdiffstats
path: root/src/com/android/camera/ui/FilmStripView.java
diff options
context:
space:
mode:
authorAngus Kong <shkong@google.com>2013-10-11 16:08:03 +0000
committerAndroid (Google) Code Review <android-gerrit@google.com>2013-10-11 16:08:03 +0000
commit81ef40bc4923e7014f52f03d8c7ddcf7a4344f70 (patch)
treed8cfea788bb519053afa78ac8095fa2d58f550ca /src/com/android/camera/ui/FilmStripView.java
parent64cea6aadb912067e31f1a158044c5efeb3e64af (diff)
parent53aedc0ee671c2d11341a66c444bbb6cdc97b150 (diff)
downloadandroid_packages_apps_Snap-81ef40bc4923e7014f52f03d8c7ddcf7a4344f70.tar.gz
android_packages_apps_Snap-81ef40bc4923e7014f52f03d8c7ddcf7a4344f70.tar.bz2
android_packages_apps_Snap-81ef40bc4923e7014f52f03d8c7ddcf7a4344f70.zip
Merge "Avoid unnecessary bringChildToFront() calls." into gb-ub-photos-carlsbad
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 e32cccf68..f41f08114 100644
--- a/src/com/android/camera/ui/FilmStripView.java
+++ b/src/com/android/camera/ui/FilmStripView.java
@@ -41,6 +41,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;
@@ -881,16 +882,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);
@@ -904,6 +906,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);
@@ -918,6 +921,7 @@ public class FilmStripView extends ViewGroup implements BottomControlsListener {
}
}
}
+ invalidate();
if (mListener != null) {
mListener.onCurrentDataChanged(mViewItem[mCurrentItem].getId(), true);
}
@@ -956,6 +960,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)
@@ -1326,7 +1334,6 @@ public class FilmStripView extends ViewGroup implements BottomControlsListener {
}
stepIfNeeded();
- adjustChildZOrder();
updateBottomControls(false /* no forced update */);
mLastItemId = getCurrentId();
}
@@ -1541,6 +1548,7 @@ public class FilmStripView extends ViewGroup implements BottomControlsListener {
}
})
.start();
+ adjustChildZOrder();
invalidate();
}
@@ -1628,6 +1636,7 @@ public class FilmStripView extends ViewGroup implements BottomControlsListener {
.setInterpolator(mViewAnimInterpolator)
.setDuration(GEOMETRY_ADJUST_TIME_MS)
.start();
+ adjustChildZOrder();
invalidate();
}
@@ -1743,6 +1752,8 @@ public class FilmStripView extends ViewGroup implements BottomControlsListener {
if (clampCenterX()) {
mController.stopScrolling(true);
}
+ adjustChildZOrder();
+ invalidate();
}
/** Some of the data is changed. */
@@ -1804,6 +1815,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.
@@ -1858,6 +1870,7 @@ public class FilmStripView extends ViewGroup implements BottomControlsListener {
mCenterX = -1;
mScale = FULL_SCREEN_SCALE;
+ adjustChildZOrder();
invalidate();
if (mListener != null) {