diff options
Diffstat (limited to 'src/com/android/camera/one/v2/Camera2OneCameraManagerImpl.java')
-rw-r--r-- | src/com/android/camera/one/v2/Camera2OneCameraManagerImpl.java | 18 |
1 files changed, 17 insertions, 1 deletions
diff --git a/src/com/android/camera/one/v2/Camera2OneCameraManagerImpl.java b/src/com/android/camera/one/v2/Camera2OneCameraManagerImpl.java index d1e0b5b8d..be5ddc93c 100644 --- a/src/com/android/camera/one/v2/Camera2OneCameraManagerImpl.java +++ b/src/com/android/camera/one/v2/Camera2OneCameraManagerImpl.java @@ -22,6 +22,7 @@ import android.hardware.camera2.CameraAccessException; import android.hardware.camera2.CameraCharacteristics; import android.hardware.camera2.CameraManager; import android.os.Build.VERSION_CODES; +import android.os.Handler; import com.android.camera.debug.Log; import com.android.camera.debug.Log.Tag; @@ -42,7 +43,8 @@ import javax.annotation.Nonnull; * Pick camera ids from a list of devices based on defined characteristics. */ @TargetApi(VERSION_CODES.LOLLIPOP) -public class Camera2OneCameraManagerImpl implements OneCameraManager { +public class Camera2OneCameraManagerImpl extends CameraManager.AvailabilityCallback + implements OneCameraManager { private static final Tag TAG = new Tag("Camera2OneCamMgr"); /** * Create a new camera2 api hardware manager. @@ -65,6 +67,7 @@ public class Camera2OneCameraManagerImpl implements OneCameraManager { private final CameraManager mCameraManager; private Hashtable<Facing, String> mCameraFacingCache = new Hashtable<Facing, String>(); + private AvailabilityCallback mAvailabilityCallback; public Camera2OneCameraManagerImpl(CameraManager cameraManger) { mCameraManager = cameraManger; @@ -122,6 +125,12 @@ public class Camera2OneCameraManagerImpl implements OneCameraManager { return new OneCameraCharacteristicsImpl(getCameraCharacteristics(key)); } + @Override + public void setAvailabilityCallback(AvailabilityCallback callback, Handler handler) { + mAvailabilityCallback = callback; + mCameraManager.registerAvailabilityCallback(this, handler); + } + public CameraCharacteristics getCameraCharacteristics( @Nonnull CameraId key) throws OneCameraAccessException { @@ -132,6 +141,13 @@ public class Camera2OneCameraManagerImpl implements OneCameraManager { } } + @Override + public void onCameraAccessPrioritiesChanged() { + if (mAvailabilityCallback != null) { + mAvailabilityCallback.onCameraAccessPrioritiesChanged(); + } + } + /** Returns the ID of the first camera facing the given direction. */ private String findCameraId(Facing facing) { String id = mCameraFacingCache.get(facing); |