From 219ad8a73e51e3740b0c6bb03ec8f47e42f2f5ae Mon Sep 17 00:00:00 2001 From: Danny Brain Date: Thu, 31 Aug 2017 14:31:18 +1000 Subject: [PATCH] #3215 Additional secure DummySurface device exclusions --- .../android/exoplayer2/video/DummySurface.java | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/library/core/src/main/java/com/google/android/exoplayer2/video/DummySurface.java b/library/core/src/main/java/com/google/android/exoplayer2/video/DummySurface.java index a1820ed7a11..8551f2541da 100644 --- a/library/core/src/main/java/com/google/android/exoplayer2/video/DummySurface.java +++ b/library/core/src/main/java/com/google/android/exoplayer2/video/DummySurface.java @@ -43,6 +43,7 @@ import android.annotation.TargetApi; import android.content.Context; +import android.content.pm.PackageManager; import android.graphics.SurfaceTexture; import android.graphics.SurfaceTexture.OnFrameAvailableListener; import android.opengl.EGL14; @@ -152,9 +153,16 @@ private static void assertApiLevel17OrHigher() { * * @param context Any {@link Context}. */ - @SuppressWarnings("unused") // Context may be needed in the future for better targeting. + @SuppressWarnings("unused") private static boolean deviceNeedsSecureDummySurfaceWorkaround(Context context) { - return Util.SDK_INT == 24 && "samsung".equals(Util.MANUFACTURER); + return (Util.SDK_INT == 24 && "samsung".equals(Util.MANUFACTURER)) + || (Util.SDK_INT >= 24 && Util.SDK_INT < 26 + && !hasVrModeHighPerformanceSystemFeatureV24(context.getPackageManager())); + } + + @TargetApi(24) + private static boolean hasVrModeHighPerformanceSystemFeatureV24(PackageManager packageManager) { + return packageManager.hasSystemFeature(PackageManager.FEATURE_VR_MODE_HIGH_PERFORMANCE); } private static class DummySurfaceThread extends HandlerThread implements OnFrameAvailableListener,