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   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