summaryrefslogtreecommitdiffstats
path: root/src/com/android/camera/PhotoModule.java
diff options
context:
space:
mode:
authorqimengp <qimengp@codeaurora.org>2016-08-16 15:04:12 +0800
committerqimengp <qimengp@codeaurora.org>2016-08-25 14:54:37 +0800
commit22b52abb2df3d26a2189805eb719955c007a1ae6 (patch)
tree1e1f2201f32f2590004ac1dae45379bff726598e /src/com/android/camera/PhotoModule.java
parent6bd73c5658538182923109b1423481720b269402 (diff)
downloadandroid_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.java14
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 = "