blob: 7a258dad8c65a24c3bd52aa8cb764e1b79079d4c [file] [log] [blame]
package org.robolectric.shadows;
import android.graphics.Canvas;
import android.graphics.Rect;
import android.view.Surface;
import android.view.SurfaceHolder;
import android.view.SurfaceView;
import java.util.HashSet;
import java.util.Set;
import org.robolectric.annotation.Implementation;
import org.robolectric.annotation.Implements;
@Implements(SurfaceView.class)
@SuppressWarnings({"UnusedDeclaration"})
public class ShadowSurfaceView extends ShadowView {
private final FakeSurfaceHolder fakeSurfaceHolder = new FakeSurfaceHolder();
@Implementation
protected void onAttachedToWindow() {}
@Implementation
protected SurfaceHolder getHolder() {
return fakeSurfaceHolder;
}
public FakeSurfaceHolder getFakeSurfaceHolder() {
return fakeSurfaceHolder;
}
/**
* Robolectric implementation of {@link android.view.SurfaceHolder}.
*/
public static class FakeSurfaceHolder implements SurfaceHolder {
private final Set<Callback> callbacks = new HashSet<>();
@Override
public void addCallback(Callback callback) {
callbacks.add(callback);
}
public Set<Callback> getCallbacks() {
return callbacks;
}
@Override
public void removeCallback(Callback callback) {
callbacks.remove(callback);
}
@Override
public boolean isCreating() {
return false;
}
@Override
public void setType(int i) {
}
@Override
public void setFixedSize(int i, int i1) {
}
@Override
public void setSizeFromLayout() {
}
@Override
public void setFormat(int i) {
}
@Override
public void setKeepScreenOn(boolean b) {
}
@Override
public Canvas lockCanvas() {
return null;
}
@Override
public Canvas lockCanvas(Rect rect) {
return null;
}
@Override
public void unlockCanvasAndPost(Canvas canvas) {
}
@Override
public Rect getSurfaceFrame() {
return null;
}
@Override
public Surface getSurface() {
return null;
}
}
}