diff options
author | Likai Ding <likaid@codeaurora.org> | 2015-05-11 15:42:02 +0800 |
---|---|---|
committer | Steve Kondik <steve@cyngn.com> | 2016-07-30 05:05:25 -0700 |
commit | 118b54cf80eedcc31b1d296b403e0f774a45f677 (patch) | |
tree | 8e2eecb131b902f1c7b9378c70485f7a05bdd5da /src/com/android/camera | |
parent | eb60e2efbbae8d132ef610741c1160dd238bb1ac (diff) | |
download | android_packages_apps_Snap-118b54cf80eedcc31b1d296b403e0f774a45f677.tar.gz android_packages_apps_Snap-118b54cf80eedcc31b1d296b403e0f774a45f677.tar.bz2 android_packages_apps_Snap-118b54cf80eedcc31b1d296b403e0f774a45f677.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')
-rw-r--r-- | src/com/android/camera/ui/FilmStripView.java | 23 |
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; + } + } } } |