Home | History | Annotate | Download | only in shadows
      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