1 package org.robolectric.shadows; 2 3 import android.hardware.camera2.CameraAccessException; 4 import android.hardware.camera2.CameraCaptureSession; 5 import android.hardware.camera2.CameraCaptureSession.CaptureCallback; 6 import android.hardware.camera2.CaptureRequest; 7 import android.hardware.camera2.impl.CameraCaptureSessionImpl; 8 import android.os.Build.VERSION_CODES; 9 import android.os.Handler; 10 import java.util.concurrent.Executor; 11 import org.robolectric.annotation.Implementation; 12 import org.robolectric.annotation.Implements; 13 import org.robolectric.annotation.RealObject; 14 import org.robolectric.util.ReflectionHelpers; 15 16 /** Shadow class for {@link CameraCaptureSessionImpl} */ 17 @Implements( 18 value = CameraCaptureSessionImpl.class, 19 isInAndroidSdk = false) 20 public class ShadowCameraCaptureSessionImpl { 21 @RealObject private CameraCaptureSessionImpl realObject; 22 23 @Implementation(minSdk = VERSION_CODES.P) setRepeatingRequest( CaptureRequest request, CaptureCallback callback, Handler handler)24 protected int setRepeatingRequest( 25 CaptureRequest request, CaptureCallback callback, Handler handler) 26 throws CameraAccessException { 27 return 1; 28 } 29 30 @Implementation(minSdk = VERSION_CODES.P) setSingleRepeatingRequest( CaptureRequest request, Executor executor, CaptureCallback callback)31 protected int setSingleRepeatingRequest( 32 CaptureRequest request, Executor executor, CaptureCallback callback) 33 throws CameraAccessException { 34 return 1; 35 } 36 37 @Implementation(minSdk = VERSION_CODES.P) capture(CaptureRequest request, CaptureCallback callback, Handler handler)38 protected int capture(CaptureRequest request, CaptureCallback callback, Handler handler) 39 throws CameraAccessException { 40 return 1; 41 } 42 43 @Implementation(minSdk = VERSION_CODES.P) captureSingleRequest( CaptureRequest request, Executor executor, CaptureCallback callback)44 protected int captureSingleRequest( 45 CaptureRequest request, Executor executor, CaptureCallback callback) 46 throws CameraAccessException { 47 return 1; 48 } 49 50 @Implementation(minSdk = VERSION_CODES.P) close()51 protected void close() { 52 CameraCaptureSession.StateCallback callback = 53 ReflectionHelpers.getField(realObject, "mStateCallback"); 54 if (callback == null) { 55 throw new IllegalArgumentException("blah"); 56 } 57 callback.onClosed(realObject); 58 } 59 } 60