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 protected void onAttachedToWindow() {} 20 21 @Implementation 22 protected SurfaceHolder getHolder() { 23 return fakeSurfaceHolder; 24 } 25 26 public FakeSurfaceHolder getFakeSurfaceHolder() { 27 return fakeSurfaceHolder; 28 } 29 30 /** 31 * Robolectric implementation of {@link android.view.SurfaceHolder}. 32 */ 33 public static class FakeSurfaceHolder implements SurfaceHolder { 34 private final Set<Callback> callbacks = new HashSet<>(); 35 36 @Override 37 public void addCallback(Callback callback) { 38 callbacks.add(callback); 39 } 40 41 public Set<Callback> getCallbacks() { 42 return callbacks; 43 } 44 45 @Override 46 public void removeCallback(Callback callback) { 47 callbacks.remove(callback); 48 } 49 50 @Override 51 public boolean isCreating() { 52 return false; 53 } 54 55 @Override 56 public void setType(int i) { 57 } 58 59 @Override 60 public void setFixedSize(int i, int i1) { 61 } 62 63 @Override 64 public void setSizeFromLayout() { 65 } 66 67 @Override 68 public void setFormat(int i) { 69 } 70 71 @Override 72 public void setKeepScreenOn(boolean b) { 73 } 74 75 @Override 76 public Canvas lockCanvas() { 77 return null; 78 } 79 80 @Override 81 public Canvas lockCanvas(Rect rect) { 82 return null; 83 } 84 85 @Override 86 public void unlockCanvasAndPost(Canvas canvas) { 87 } 88 89 @Override 90 public Rect getSurfaceFrame() { 91 return null; 92 } 93 94 @Override 95 public Surface getSurface() { 96 return null; 97 } 98 } 99 } 100