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 minSdk = VERSION_CODES.LOLLIPOP, 20 isInAndroidSdk = false) 21 public class ShadowCameraCaptureSessionImpl { 22 @RealObject private CameraCaptureSessionImpl realObject; 23 24 @Implementation(minSdk = VERSION_CODES.P) setRepeatingRequest( CaptureRequest request, CaptureCallback callback, Handler handler)25 protected int setRepeatingRequest( 26 CaptureRequest request, CaptureCallback callback, Handler handler) 27 throws CameraAccessException { 28 return 1; 29 } 30 31 @Implementation(minSdk = VERSION_CODES.P) setSingleRepeatingRequest( CaptureRequest request, Executor executor, CaptureCallback callback)32 protected int setSingleRepeatingRequest( 33 CaptureRequest request, Executor executor, CaptureCallback callback) 34 throws CameraAccessException { 35 return 1; 36 } 37 38 @Implementation(minSdk = VERSION_CODES.P) capture(CaptureRequest request, CaptureCallback callback, Handler handler)39 protected int capture(CaptureRequest request, CaptureCallback callback, Handler handler) 40 throws CameraAccessException { 41 return 1; 42 } 43 44 @Implementation(minSdk = VERSION_CODES.P) captureSingleRequest( CaptureRequest request, Executor executor, CaptureCallback callback)45 protected int captureSingleRequest( 46 CaptureRequest request, Executor executor, CaptureCallback callback) 47 throws CameraAccessException { 48 return 1; 49 } 50 51 @Implementation(minSdk = VERSION_CODES.P) close()52 protected void close() { 53 CameraCaptureSession.StateCallback callback = 54 ReflectionHelpers.getField(realObject, "mStateCallback"); 55 if (callback == null) { 56 throw new IllegalArgumentException("blah"); 57 } 58 callback.onClosed(realObject); 59 } 60 } 61