diff options
author | qimengp <qimengp@codeaurora.org> | 2016-08-16 15:04:12 +0800 |
---|---|---|
committer | qimengp <qimengp@codeaurora.org> | 2016-08-25 14:54:37 +0800 |
commit | 22b52abb2df3d26a2189805eb719955c007a1ae6 (patch) | |
tree | 1e1f2201f32f2590004ac1dae45379bff726598e /src/com/android/camera/PhotoModule.java | |
parent | 6bd73c5658538182923109b1423481720b269402 (diff) | |
download | android_packages_apps_Snap-22b52abb2df3d26a2189805eb719955c007a1ae6.tar.gz android_packages_apps_Snap-22b52abb2df3d26a2189805eb719955c007a1ae6.tar.bz2 android_packages_apps_Snap-22b52abb2df3d26a2189805eb719955c007a1ae6.zip |
SnapdragonCamera: Fix ANR after capturing pictures continuously
When finish once capture picture, camera need get available space
of SDCard/Internal storage and update available number to UI. It is
a I/O operation and may block a few millisecond. Currently camera
get available space in UI-Thread. So capturing pictures continuously
may cause ANR, though it is happened rarely.
By moving this operation to non-UI thread, can solve this issue.
Change-Id: I397e07117f88e56cbe2ad0b893e2bad8b3075ab5
CRs-Fixed: 1022382
Diffstat (limited to 'src/com/android/camera/PhotoModule.java')
-rw-r--r-- | src/com/android/camera/PhotoModule.java | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/src/com/android/camera/PhotoModule.java b/src/com/android/camera/PhotoModule.java index 279c903d4..54478925f 100644 --- a/src/com/android/camera/PhotoModule.java +++ b/src/com/android/camera/PhotoModule.java @@ -1482,9 +1482,17 @@ public class PhotoModule onCaptureDone(); } } - if(!mLongshotActive) - mActivity.updateStorageSpaceAndHint(); - mUI.updateRemainingPhotos(--mRemainingPhotos); + if(!mLongshotActive) { + mActivity.updateStorageSpaceAndHint( + new CameraActivity.OnStorageUpdateDoneListener() { + @Override + public void onStorageUpdateDone(long storageSpace) { + mUI.updateRemainingPhotos(--mRemainingPhotos); + } + }); + } else { + mUI.updateRemainingPhotos(--mRemainingPhotos); + } long now = System.currentTimeMillis(); mJpegCallbackFinishTime = now - mJpegPictureCallbackTime; Log.v(TAG, "mJpegCallbackFinishTime = " |