diff options
Diffstat (limited to 'core/java')
-rw-r--r-- | core/java/android/view/Surface.java | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/core/java/android/view/Surface.java b/core/java/android/view/Surface.java index edaa262..eb80290d 100644 --- a/core/java/android/view/Surface.java +++ b/core/java/android/view/Surface.java @@ -20,6 +20,7 @@ import android.content.res.CompatibilityInfo.Translator; import android.graphics.*; import android.os.Parcelable; import android.os.Parcel; +import android.os.SystemProperties; import android.util.Log; /** @@ -35,6 +36,15 @@ public class Surface implements Parcelable { public static final int ROTATION_180 = 2; public static final int ROTATION_270 = 3; + private static final boolean headless = "1".equals( + SystemProperties.get("ro.config.headless", "0")); + + private static void checkHeadless() { + if(headless) { + throw new UnsupportedOperationException("Device is headless"); + } + } + /** * Create Surface from a {@link SurfaceTexture}. * @@ -46,6 +56,8 @@ public class Surface implements Parcelable { * Surface. */ public Surface(SurfaceTexture surfaceTexture) { + checkHeadless(); + if (DEBUG_RELEASE) { mCreationStack = new Exception(); } @@ -244,6 +256,8 @@ public class Surface implements Parcelable { public Surface(SurfaceSession s, int pid, int display, int w, int h, int format, int flags) throws OutOfResourcesException { + checkHeadless(); + if (DEBUG_RELEASE) { mCreationStack = new Exception(); } @@ -255,6 +269,8 @@ public class Surface implements Parcelable { public Surface(SurfaceSession s, int pid, String name, int display, int w, int h, int format, int flags) throws OutOfResourcesException { + checkHeadless(); + if (DEBUG_RELEASE) { mCreationStack = new Exception(); } @@ -269,6 +285,8 @@ public class Surface implements Parcelable { * @hide */ public Surface() { + checkHeadless(); + if (DEBUG_RELEASE) { mCreationStack = new Exception(); } |