summaryrefslogtreecommitdiffstats
path: root/src/com/android/camera/ui/FilmStripView.java
diff options
context:
space:
mode:
authorLikai Ding <likaid@codeaurora.org>2015-05-11 15:42:02 +0800
committerLikai Ding <likaid@codeaurora.org>2015-05-12 13:17:58 +0800
commit171d2b253a752ca104ccf4a58f4e9d6d82bd7b28 (patch)
tree18c17c7f267a8ecd96dc040f0e08b434d723d421 /src/com/android/camera/ui/FilmStripView.java
parent852d50c360f30099b2538488aafe5a14bebc98b7 (diff)
downloadandroid_packages_apps_Snap-171d2b253a752ca104ccf4a58f4e9d6d82bd7b28.tar.gz
android_packages_apps_Snap-171d2b253a752ca104ccf4a58f4e9d6d82bd7b28.tar.bz2
android_packages_apps_Snap-171d2b253a752ca104ccf4a58f4e9d6d82bd7b28.zip
SnapdragonCamera: fix crash after photo deletion
In FilmStripView.reload(), camera view is unintentionally removed, which causes unnecessary surface creation and deletion, eventually leads to crash. Fix the check in FilmStripView and set mCameraView correctly. Change-Id: I11efbe52b7639a98798ff16e9281b8799cc5e788
Diffstat (limited to 'src/com/android/camera/ui/FilmStripView.java')
-rw-r--r--src/com/android/camera/ui/FilmStripView.java23
1 files changed, 12 insertions, 11 deletions
diff --git a/src/com/android/camera/ui/FilmStripView.java b/src/com/android/camera/ui/FilmStripView.java
index 3edb23d3c..01469baeb 100644
--- a/src/com/android/camera/ui/FilmStripView.java
+++ b/src/com/android/camera/ui/FilmStripView.java
@@ -2036,17 +2036,18 @@ public class FilmStripView extends ViewGroup implements BottomControlsListener {
}
// Remove all views from the mViewItem buffer, except the camera view.
- for (int i = 0; i < mViewItem.length; i++) {
- if (mViewItem[i] == null) {
- continue;
- }
- View v = mViewItem[i].getView();
- if (v != mCameraView) {
- removeView(v);
- }
- ImageData imageData = mDataAdapter.getImageData(mViewItem[i].getId());
- if (imageData != null) {
- imageData.recycle();
+ for (final ViewItem item : mViewItem) {
+ if (item != null) {
+ ImageData imageData = mDataAdapter.getImageData(item.getId());
+ if (imageData != null) {
+ imageData.recycle();
+ View v = item.getView();
+ if (imageData.getViewType() != ImageData.VIEW_TYPE_STICKY) {
+ removeView(v);
+ } else {
+ mCameraView = v;
+ }
+ }
}
}