import android.widget.TextView;
public class CameraDialogFragment extends BaseAlertDialogFragment
- implements SurfaceHolder.Callback, Camera.AutoFocusCallback {
+ implements SurfaceHolder.Callback {
public static final String FRAGMENT_TAG = "fragment_camera";
private final CameraInfo mCameraInfo = new CameraInfo();
private Handler mHandler;
private Camera mCamera;
+ private static class AutoFocusHandler extends Handler
+ implements Camera.AutoFocusCallback {
+ private final Camera mCamera;
+
+ public AutoFocusHandler(Camera camera) {
+ mCamera = camera;
+ }
+
+ @Override
+ public void handleMessage(Message msg) {
+ super.handleMessage(msg);
+ mCamera.autoFocus(this);
+ }
+
+ @Override
+ public void onAutoFocus(boolean success, Camera camera) {
+ sendEmptyMessageDelayed(0, 1000);
+ }
+ }
+
public CameraDialogFragment() {
super(R.string.scan_qr_code, R.layout.camera,
android.R.string.cancel, R.string.manual_entry, 0);
params.setFocusMode(Parameters.FOCUS_MODE_CONTINUOUS_VIDEO);
else if (modes.contains(Parameters.FOCUS_MODE_AUTO)) {
params.setFocusMode(Parameters.FOCUS_MODE_AUTO);
- mHandler = new Handler() {
- @Override
- public void handleMessage(Message msg) {
- super.handleMessage(msg);
- mCamera.autoFocus(CameraDialogFragment.this);
- }
- };
+ mHandler = new AutoFocusHandler(mCamera);
}
mCamera.setParameters(params);
}
mCamera.release();
mCamera = null;
}
-
- @Override
- public void onAutoFocus(boolean success, Camera camera) {
- if (mHandler != null)
- mHandler.sendEmptyMessageDelayed(0, 1000);
- }
}