What have I been saying about cold hard logic and careful analysis? :BangHead:
I just wrote
I've looked in the jar you posted earlier and can't see any notify() calls in startPreview(), stopPreview() or onPreviewFrame(). You have reinstated them haven't you?
You replied "Yes" but looking in the jar you just posted they are NOT present in startPreview() and stopPreview()
getPicture() is probably stuck on "while (!isPreviewOn) wait();"
It won't work anyway as you have messed up the original interlock structure by trying to use a separate monitor object which won't work with wait() and notify() as they use the monitor associated with the instance.
You don't need a Camera.PreviewCallback instance, remove it.
You don't need myMonitor, remove it.
Add "implements PreviewCallback" to your ACL class declaration.
Reinstate notify() in the three methods I stated above.
Make onPreviewFrame() a normal method of your class.
Pass "this" in c.setOneShotPreviewCallback(this);
Make sure you understand what synchronized, wait() and notify() really do.