diff options
-rw-r--r-- | jni/feature_mos/src/mosaic/Mosaic.cpp | 4 | ||||
-rw-r--r-- | src/com/android/camera/CameraActivity.java | 1 | ||||
-rw-r--r-- | src/com/android/camera/PhotoModule.java | 33 | ||||
-rw-r--r-- | src/com/android/camera/WideAnglePanoramaUI.java | 1 | ||||
-rw-r--r-- | src/com/android/camera/app/AppManagerFactory.java | 2 |
5 files changed, 31 insertions, 10 deletions
diff --git a/jni/feature_mos/src/mosaic/Mosaic.cpp b/jni/feature_mos/src/mosaic/Mosaic.cpp index 7b96fa5c5..9388b0a87 100644 --- a/jni/feature_mos/src/mosaic/Mosaic.cpp +++ b/jni/feature_mos/src/mosaic/Mosaic.cpp @@ -39,7 +39,7 @@ Mosaic::Mosaic() Mosaic::~Mosaic() { - for (int i = 0; i < frames_size; i++) + for (int i = 0; i < max_frames; i++) { if (frames[i]) delete frames[i]; @@ -77,7 +77,9 @@ int Mosaic::initialize(int blendingType, int stripType, int width, int height, i imageMosaicYVU = NULL; frames = new MosaicFrame *[max_frames]; + memset(frames, 0, sizeof(MosaicFrame *) * max_frames); rframes = new MosaicFrame *[max_frames]; + memset(rframes, 0, sizeof(MosaicFrame *) * max_frames); if(nframes>-1) { diff --git a/src/com/android/camera/CameraActivity.java b/src/com/android/camera/CameraActivity.java index 7c8e911d0..cd0511536 100644 --- a/src/com/android/camera/CameraActivity.java +++ b/src/com/android/camera/CameraActivity.java @@ -1514,6 +1514,7 @@ public class CameraActivity extends Activity module.onPauseBeforeSuper(); module.onPauseAfterSuper(); ((ViewGroup) mCameraModuleRootView).removeAllViews(); + ((ViewGroup) mCameraModuleRootView).clearDisappearingChildren(); } private void performDeletion() { diff --git a/src/com/android/camera/PhotoModule.java b/src/com/android/camera/PhotoModule.java index d889ad4fc..1d3fb7ad4 100644 --- a/src/com/android/camera/PhotoModule.java +++ b/src/com/android/camera/PhotoModule.java @@ -302,6 +302,7 @@ public class PhotoModule private String mCurrTouchAfAec = Parameters.TOUCH_AF_AEC_ON; private final Handler mHandler = new MainHandler(); + private MessageQueue.IdleHandler mIdleHandler = null; private PreferenceGroup mPreferenceGroup; @@ -718,6 +719,7 @@ public class PhotoModule } mFirstTimeInitialized = true; + Log.d(TAG, "addIdleHandler in first time initialization"); addIdleHandler(); mActivity.updateStorageSpaceAndHint(); @@ -752,14 +754,26 @@ public class PhotoModule } private void addIdleHandler() { - MessageQueue queue = Looper.myQueue(); - queue.addIdleHandler(new MessageQueue.IdleHandler() { - @Override - public boolean queueIdle() { - Storage.ensureOSXCompatible(); - return false; - } - }); + if (mIdleHandler == null) { + mIdleHandler = new MessageQueue.IdleHandler() { + @Override + public boolean queueIdle() { + Storage.ensureOSXCompatible(); + return false; + } + }; + + MessageQueue queue = Looper.myQueue(); + queue.addIdleHandler(mIdleHandler); + } + } + + private void removeIdleHandler() { + if (mIdleHandler != null) { + MessageQueue queue = Looper.myQueue(); + queue.removeIdleHandler(mIdleHandler); + mIdleHandler = null; + } } @Override @@ -1871,6 +1885,9 @@ public class PhotoModule if (msensor != null) { mSensorManager.unregisterListener(this, msensor); } + + Log.d(TAG, "remove idle handleer in onPause"); + removeIdleHandler(); } @Override diff --git a/src/com/android/camera/WideAnglePanoramaUI.java b/src/com/android/camera/WideAnglePanoramaUI.java index 2cf27576d..f41653982 100644 --- a/src/com/android/camera/WideAnglePanoramaUI.java +++ b/src/com/android/camera/WideAnglePanoramaUI.java @@ -290,6 +290,7 @@ public class WideAnglePanoramaUI implements mActivity.getSystemService(Context.LAYOUT_INFLATER_SERVICE); mReviewControl.removeAllViews(); + ((ViewGroup) mReviewControl).clearDisappearingChildren(); inflater.inflate(R.layout.pano_review_control, mReviewControl, true); mRootView.bringChildToFront(mCameraControls); diff --git a/src/com/android/camera/app/AppManagerFactory.java b/src/com/android/camera/app/AppManagerFactory.java index 43d2a00cd..5cd70a796 100644 --- a/src/com/android/camera/app/AppManagerFactory.java +++ b/src/com/android/camera/app/AppManagerFactory.java @@ -29,7 +29,7 @@ public class AppManagerFactory { public static synchronized AppManagerFactory getInstance(Context ctx) { if (sFactory == null) { - sFactory = new AppManagerFactory(ctx); + sFactory = new AppManagerFactory(ctx.getApplicationContext()); } return sFactory; } |