From 5b562a0c45474a6e748adbb95a96ce37f1852db5 Mon Sep 17 00:00:00 2001 From: "Joshua V. Lewis" Date: Thu, 10 Sep 2020 14:16:52 -0400 Subject: [PATCH] Fixed an issue with Android 11 where images were not rendering Using version 2.11.8 of exoplayer Updatd change log --- CHANGELOG.md | 6 ++++ .../android/gdx/MiniClientGDXRenderer.java | 35 +++++++++++++++---- .../android/opengl/OpenGLRenderer.java | 4 +++ android-tv/build.gradle | 30 ++++++++++++++-- build.gradle | 4 +-- 5 files changed, 68 insertions(+), 11 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 00c94b54..4f0285b5 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,9 @@ +**1.6.2 (2020-09-10) ** +- jvl711: Fixed an issue with Android 11 where images were not rendering +- jvl711: Upgraded ExoPlayer to 2.11.8 +- jvl711: Fixed the volume up/down keys. You need to map them to NONE for them to work properly +- jvl711: Volume up/down mapped to NONE by default + **1.6.1 (2020-8-31)** - jvl711: Missed a default value on one of the properties which caused a null pointer exception on launch of connection diff --git a/android-shared/src/main/java/sagex/miniclient/android/gdx/MiniClientGDXRenderer.java b/android-shared/src/main/java/sagex/miniclient/android/gdx/MiniClientGDXRenderer.java index 63939f62..63286b8d 100644 --- a/android-shared/src/main/java/sagex/miniclient/android/gdx/MiniClientGDXRenderer.java +++ b/android-shared/src/main/java/sagex/miniclient/android/gdx/MiniClientGDXRenderer.java @@ -5,6 +5,7 @@ import android.graphics.BitmapFactory; import android.graphics.Point; import android.os.Build; +import android.util.Log; import android.view.Display; import android.view.WindowManager; @@ -621,14 +622,23 @@ public void run() { @Override public ImageHolder readImage(File file) throws Exception { - try { + try + { FileInputStream fis = new FileInputStream(file); - try { + + try + { return readImage(fis); - } finally { + } + finally + { fis.close(); } - } catch (IOException e) { + } + catch (IOException e) + { + log.error("ERRROR READING IMAGE"); + e.printStackTrace(); } @@ -640,13 +650,26 @@ public ImageHolder readImage(InputStream fis) throws Exception { long st = System.currentTimeMillis(); BitmapFactory.Options options = new BitmapFactory.Options(); - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { + /* + JVL 09/10/2020 - Bitmap.Config.HARDWARE seemed to break rendering on Andriod 11 + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) + { // this appears to work better since Android O (documentation says it's prefferred // for bitmaps that are only used to render to the screen (immutable) + //options.inMutable = false; options.inPreferredConfig = Bitmap.Config.HARDWARE; - } else { + } + else + { options.inPreferredConfig = Bitmap.Config.ARGB_8888; } + */ + + options.inPreferredConfig = Bitmap.Config.ARGB_8888; + + + + final Bitmap bitmap = BitmapFactory.decodeStream(fis, null, options); long time = System.currentTimeMillis() - st; diff --git a/android-shared/src/main/java/sagex/miniclient/android/opengl/OpenGLRenderer.java b/android-shared/src/main/java/sagex/miniclient/android/opengl/OpenGLRenderer.java index 013d13a3..687decf7 100644 --- a/android-shared/src/main/java/sagex/miniclient/android/opengl/OpenGLRenderer.java +++ b/android-shared/src/main/java/sagex/miniclient/android/opengl/OpenGLRenderer.java @@ -540,6 +540,8 @@ public ImageHolder readImage(InputStream fis) throws Exception { long st = System.currentTimeMillis(); BitmapFactory.Options options = new BitmapFactory.Options(); + /* + JVL 09/10/2020 - Bitmap.Config.HARDWARE seemed to break rendering on Andriod 11 if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { // this appears to work better since Android O (documentation says it's prefferred // for bitmaps that are only used to render to the screen (immutable) @@ -547,6 +549,8 @@ public ImageHolder readImage(InputStream fis) throws Exception { } else { options.inPreferredConfig = Bitmap.Config.ARGB_8888; } + */ + options.inDither = true; options.inDensity = 32; options.inTargetDensity = 32; diff --git a/android-tv/build.gradle b/android-tv/build.gradle index 88557176..8b4659a6 100644 --- a/android-tv/build.gradle +++ b/android-tv/build.gradle @@ -44,10 +44,26 @@ android { { release { - keyAlias = "client" + if (signingProps!=null && signingProps.containsKey("keyAlias") && signingProps.containsKey("storeFile") + && signingProps.containsKey("storePassword") && signingProps.containsKey("keyPassword")) + { + keyAlias = signingProps.getProperty("keyAlias") + storeFile = new File(signingProps.getProperty("storeFile")); + storePassword = signingProps.getProperty("storePassword") + keyPassword = signingProps.getProperty("keyPassword") + System.out.println("signing config setup from properties file") + } + else + { + System.out.println("signing config missing or incorrectly configured") + } + } + debug + { + keyAlias = "client" if (signingProps!=null && signingProps.containsKey("keyAlias") && signingProps.containsKey("storeFile") && signingProps.containsKey("storePassword") && signingProps.containsKey("keyPassword")) @@ -66,8 +82,16 @@ android { } } - buildTypes { - release { + buildTypes + { + release + { + minifyEnabled false + proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' + signingConfig signingConfigs.release + } + debug + { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' signingConfig signingConfigs.release diff --git a/build.gradle b/build.gradle index 8178d07a..7f795f8b 100644 --- a/build.gradle +++ b/build.gradle @@ -45,7 +45,7 @@ allprojects { // NOTE: using exoplayer from mavenlocal (prebuilt) for ffmpeg exoVersionCustomExt = '2.11.5' // NOTE: using regular exoplayer for core stuff - exoVersion = '2.11.5' + exoVersion = '2.11.8' androidExtrasVer = "28.0.0" androidBuildToolsVersion = "28.0.3" @@ -54,7 +54,7 @@ allprojects { androidCompileSdkVersion = 28 androidTargetSdkVersion = 28 - appVersionCode = 2101061 + appVersionCode = 2101062 appVersionName = "${baseVersion}" // tell every project where to find the local project maven files