.. | .. |
---|
23 | 23 | import android.graphics.RectF; |
---|
24 | 24 | import android.graphics.SurfaceTexture; |
---|
25 | 25 | import android.location.Location; |
---|
| 26 | +import android.hardware.camera2.CameraAccessException; |
---|
| 27 | +import android.hardware.camera2.CameraCharacteristics; |
---|
| 28 | +import android.hardware.camera2.CameraManager; |
---|
26 | 29 | import android.media.MediaActionSound; |
---|
27 | 30 | import android.net.Uri; |
---|
28 | 31 | import android.os.AsyncTask; |
---|
.. | .. |
---|
354 | 357 | public CaptureModule(AppController appController) { |
---|
355 | 358 | this(appController, false); |
---|
356 | 359 | } |
---|
| 360 | + private CameraManager mCameraManager; |
---|
357 | 361 | |
---|
358 | 362 | /** Constructs a new capture module. */ |
---|
359 | 363 | public CaptureModule(AppController appController, boolean stickyHdr) { |
---|
.. | .. |
---|
414 | 418 | mCameraHandler = new Handler(thread.getLooper()); |
---|
415 | 419 | mActivity = activity; |
---|
416 | 420 | mOneCameraOpener = mAppController.getCameraOpener(); |
---|
| 421 | + mCameraManager = (CameraManager) mContext.getSystemService(Context.CAMERA_SERVICE); |
---|
417 | 422 | |
---|
418 | 423 | try { |
---|
419 | 424 | mOneCameraManager = OneCameraModule.provideOneCameraManager(); |
---|
.. | .. |
---|
429 | 434 | Log.d(TAG,"SettingsManager cameraID = " + |
---|
430 | 435 | mSettingsManager.getInteger(mAppController.getModuleScope(), |
---|
431 | 436 | Keys.KEY_CAMERA_ID) + " facing = " + mCameraFacing); |
---|
| 437 | + |
---|
| 438 | + int cameraId = mSettingsManager.getInteger(mAppController.getModuleScope(), |
---|
| 439 | + Keys.KEY_CAMERA_ID); |
---|
| 440 | + try { |
---|
| 441 | + String[] cameraIds = mCameraManager.getCameraIdList(); |
---|
| 442 | + Log.d(TAG, "cameraIds len = " + cameraIds.length); |
---|
| 443 | + boolean foundCameraId = false; |
---|
| 444 | + for (String currentCameraId : cameraIds) { |
---|
| 445 | + Log.d(TAG,"Enumerate cameraId = " + currentCameraId); |
---|
| 446 | + if (Integer.parseInt(currentCameraId) == cameraId) { |
---|
| 447 | + Log.d(TAG, "find exists currentCameraId matches first camera id"); |
---|
| 448 | + foundCameraId = true; |
---|
| 449 | + break; |
---|
| 450 | + } |
---|
| 451 | + } |
---|
| 452 | + if (!foundCameraId && cameraIds.length > 0) { |
---|
| 453 | + cameraId = Integer.parseInt(cameraIds[0]); |
---|
| 454 | + Log.d(TAG,"cameraId sets to first id of cameraIds: " + cameraId); |
---|
| 455 | + } |
---|
| 456 | + } catch (CameraAccessException ex) { |
---|
| 457 | + Log.w(TAG, "Unable to get camera ID", ex); |
---|
| 458 | + } |
---|
| 459 | + |
---|
432 | 460 | mShowErrorAndFinish = !updateCameraCharacteristics(); |
---|
433 | 461 | if (mShowErrorAndFinish) { |
---|
434 | 462 | return; |
---|
.. | .. |
---|
1398 | 1426 | boolean useHdr = mHdrPlusEnabled && mCameraFacing == Facing.BACK; |
---|
1399 | 1427 | |
---|
1400 | 1428 | CameraId cameraId = mOneCameraManager.findFirstCameraFacing(mCameraFacing); |
---|
| 1429 | + |
---|
| 1430 | + int settingsCameraId = mSettingsManager.getInteger(mAppController.getModuleScope(), Keys.KEY_CAMERA_ID); |
---|
| 1431 | + //check if settingsCameraId exists now |
---|
| 1432 | + try { |
---|
| 1433 | + String[] cameraIds = mCameraManager.getCameraIdList(); |
---|
| 1434 | + boolean foundCameraId = false; |
---|
| 1435 | + for (String currentCameraId : cameraIds) { |
---|
| 1436 | + Log.d(TAG,"Enumerate cameraId = " + currentCameraId); |
---|
| 1437 | + if (Integer.parseInt(currentCameraId) == settingsCameraId) { |
---|
| 1438 | + Log.d(TAG, "find exists currentCameraId matches first camera id"); |
---|
| 1439 | + foundCameraId = true; |
---|
| 1440 | + if (Integer.parseInt(cameraId.getValue()) != settingsCameraId) { |
---|
| 1441 | + cameraId = CameraId.from(String.valueOf(settingsCameraId)); |
---|
| 1442 | + } |
---|
| 1443 | + break; |
---|
| 1444 | + } |
---|
| 1445 | + } |
---|
| 1446 | + if (!foundCameraId && cameraIds.length > 0) { |
---|
| 1447 | + cameraId = CameraId.from(String.valueOf(cameraIds[0])); |
---|
| 1448 | + Log.d(TAG,"cameraId sets to first id of cameraIds: " + cameraId); |
---|
| 1449 | + } |
---|
| 1450 | + } catch (CameraAccessException ex) { |
---|
| 1451 | + Log.w(TAG, "Unable to get camera ID", ex); |
---|
| 1452 | + } |
---|
1401 | 1453 | final String settingScope = SettingsManager.getCameraSettingScope(cameraId.getValue()); |
---|
1402 | 1454 | |
---|
1403 | 1455 | OneCameraCaptureSetting captureSetting; |
---|