diff options
author | Patrick Pun <patrick.pun@broadcom.com> | 2020-06-04 00:18:36 +0000 |
---|---|---|
committer | Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com> | 2020-06-04 00:18:36 +0000 |
commit | a2ccd8ac067a5a5c099a2ec6d160269a6d801cf4 (patch) | |
tree | cac3fda998cb976b621f2a89fa99da0ae4c7cdb7 /src | |
parent | 1bad1786464b03a8bd09cf52bf4bfcb02a3a226a (diff) | |
parent | d66d2cfcf2a2000d66b5c8b7f1563150c446b819 (diff) | |
download | Camera2-a2ccd8ac067a5a5c099a2ec6d160269a6d801cf4.tar.gz |
Add external camera support am: d66d2cfcf2
Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Camera2/+/11604391
Change-Id: I6057b50a8824f618ea89f5836493eac0c0077dd2
Diffstat (limited to 'src')
-rw-r--r-- | src/com/android/camera/DisableCameraReceiver.java | 7 | ||||
-rw-r--r-- | src/com/android/camera/one/v2/Camera2OneCameraManagerImpl.java | 8 | ||||
-rw-r--r-- | src/com/android/camera/settings/SettingsManager.java | 5 |
3 files changed, 18 insertions, 2 deletions
diff --git a/src/com/android/camera/DisableCameraReceiver.java b/src/com/android/camera/DisableCameraReceiver.java index 5237c1d58..ed58783e9 100644 --- a/src/com/android/camera/DisableCameraReceiver.java +++ b/src/com/android/camera/DisableCameraReceiver.java @@ -42,7 +42,7 @@ public class DisableCameraReceiver extends BroadcastReceiver { ? hasBackCamera() : hasCamera(); - if (!needCameraActivity) { + if (!needCameraActivity && !supportExternalCamera(context)) { Log.i(TAG, "disable all camera activities"); for (int i = 0; i < ACTIVITIES.length; i++) { disableComponent(context, ACTIVITIES[i]); @@ -53,6 +53,11 @@ public class DisableCameraReceiver extends BroadcastReceiver { disableComponent(context, "com.android.camera.DisableCameraReceiver"); } + private boolean supportExternalCamera(Context context) { + PackageManager pm = context.getPackageManager(); + return pm.hasSystemFeature(PackageManager.FEATURE_CAMERA_EXTERNAL); + } + private boolean hasCamera() { int n = android.hardware.Camera.getNumberOfCameras(); Log.i(TAG, "number of camera: " + n); diff --git a/src/com/android/camera/one/v2/Camera2OneCameraManagerImpl.java b/src/com/android/camera/one/v2/Camera2OneCameraManagerImpl.java index a493e736d..d1e0b5b8d 100644 --- a/src/com/android/camera/one/v2/Camera2OneCameraManagerImpl.java +++ b/src/com/android/camera/one/v2/Camera2OneCameraManagerImpl.java @@ -157,6 +157,10 @@ public class Camera2OneCameraManagerImpl implements OneCameraManager { String cameraId = findFirstCameraIdFacing(CameraCharacteristics.LENS_FACING_BACK); if (cameraId == null) { Log.w(TAG, "No back-facing camera found."); + cameraId = findFirstCameraIdFacing(CameraCharacteristics.LENS_FACING_EXTERNAL); + if (cameraId == null) { + Log.w(TAG, "No external camera found."); + } } return cameraId; } @@ -167,6 +171,10 @@ public class Camera2OneCameraManagerImpl implements OneCameraManager { String cameraId = findFirstCameraIdFacing(CameraCharacteristics.LENS_FACING_FRONT); if (cameraId == null) { Log.w(TAG, "No front-facing camera found."); + cameraId = findFirstCameraIdFacing(CameraCharacteristics.LENS_FACING_EXTERNAL); + if (cameraId == null) { + Log.w(TAG, "No external camera found."); + } } return cameraId; } diff --git a/src/com/android/camera/settings/SettingsManager.java b/src/com/android/camera/settings/SettingsManager.java index c5c494ea8..d2794e578 100644 --- a/src/com/android/camera/settings/SettingsManager.java +++ b/src/com/android/camera/settings/SettingsManager.java @@ -128,8 +128,11 @@ public class SettingsManager { protected SharedPreferences openPreferences(String scope) { synchronized (mLock) { SharedPreferences preferences; + // For external camera, scope could have "/" separator which is a invalid path + // for the shared preference. + String validScope = scope.replaceAll("/", "_"); preferences = mContext.getSharedPreferences( - mPackageName + scope, Context.MODE_PRIVATE); + mPackageName + validScope, Context.MODE_PRIVATE); for (OnSharedPreferenceChangeListener listener : mSharedPreferenceListeners) { preferences.registerOnSharedPreferenceChangeListener(listener); |