1 package org.robolectric.shadows; 2 3 import android.graphics.Canvas; 4 import android.graphics.Rect; 5 import android.view.Surface; 6 import android.view.SurfaceHolder; 7 import android.view.SurfaceView; 8 import java.util.HashSet; 9 import java.util.Set; 10 import org.robolectric.annotation.Implementation; 11 import org.robolectric.annotation.Implements; 12 13 @Implements(SurfaceView.class) 14 @SuppressWarnings({"UnusedDeclaration"}) 15 public class ShadowSurfaceView extends ShadowView { 16 private final FakeSurfaceHolder fakeSurfaceHolder = new FakeSurfaceHolder(); 17 18 @Implementation 19 public void onAttachedToWindow() { 20 } 21 22 @Implementation 23 public SurfaceHolder getHolder() { 24 return fakeSurfaceHolder; 25 } 26 27 public FakeSurfaceHolder getFakeSurfaceHolder() { 28 return fakeSurfaceHolder; 29 } 30 31 /** 32 * Robolectric implementation of {@link android.view.SurfaceHolder}. 33 */ 34 public static class FakeSurfaceHolder implements SurfaceHolder { 35 private final Set<Callback> callbacks = new HashSet<>(); 36 37 @Override 38 public void addCallback(Callback callback) { 39 callbacks.add(callback); 40 } 41 42 public Set<Callback> getCallbacks() { 43 return callbacks; 44 } 45 46 @Override 47 public void removeCallback(Callback callback) { 48 callbacks.remove(callback); 49 } 50 51 @Override 52 public boolean isCreating() { 53 return false; 54 } 55 56 @Override 57 public void setType(int i) { 58 } 59 60 @Override 61 public void setFixedSize(int i, int i1) { 62 } 63 64 @Override 65 public void setSizeFromLayout() { 66 } 67 68 @Override 69 public void setFormat(int i) { 70 } 71 72 @Override 73 public void setKeepScreenOn(boolean b) { 74 } 75 76 @Override 77 public Canvas lockCanvas() { 78 return null; 79 } 80 81 @Override 82 public Canvas lockCanvas(Rect rect) { 83 return null; 84 } 85 86 @Override 87 public void unlockCanvasAndPost(Canvas canvas) { 88 } 89 90 @Override 91 public Rect getSurfaceFrame() { 92 return null; 93 } 94 95 @Override 96 public Surface getSurface() { 97 return null; 98 } 99 } 100 } 101