Adjust data id even if it's not currently used.

FilmStripView should adjust the internal info of data id after removal
regardless of the existence of the removed data in the buffer.

Change-Id: I78202997525a96a88f7bba8e0d55b7f6aad2c9cf
diff --git a/src/com/android/camera/ui/FilmStripView.java b/src/com/android/camera/ui/FilmStripView.java
index f9a4ec0..76eccfa 100644
--- a/src/com/android/camera/ui/FilmStripView.java
+++ b/src/com/android/camera/ui/FilmStripView.java
@@ -536,13 +536,21 @@
                 .start();
     }
 
-    private void updateRemoval(int removedInfo, final ImageData data) {
+    private void updateRemoval(int dataID, final ImageData data) {
+        int removedInfo = findInfoByDataID(dataID);
+
+        // adjust the data id to be consistent
+        for (int i = 0; i < BUFFER_SIZE; i++) {
+            if (mViewInfo[i] == null || mViewInfo[i].getID() <= dataID) continue;
+            mViewInfo[i].setID(mViewInfo[i].getID() - 1);
+        }
+        if (removedInfo == -1) return;
+
         final View removedView = mViewInfo[removedInfo].getView();
         final int offsetX = (int) (removedView.getMeasuredWidth() + mViewGap);
 
         for (int i = removedInfo + 1; i < BUFFER_SIZE; i++) {
             if (mViewInfo[i] != null) {
-                mViewInfo[i].setID(mViewInfo[i].getID() - 1);
                 mViewInfo[i].setLeftPosition(mViewInfo[i].getLeftPosition() - offsetX);
             }
         }
@@ -732,9 +740,7 @@
 
             @Override
             public void onDataRemoved(int dataID, ImageData data) {
-                int info = findInfoByDataID(dataID);
-                if (info == -1) return;
-                updateRemoval(info, data);
+                updateRemoval(dataID, data);
             }
         });
     }