From 8428d7cd89c58374ef790d86c97d3373961b5146 Mon Sep 17 00:00:00 2001 From: Evan Debenham Date: Mon, 7 Dec 2020 14:18:31 -0500 Subject: [PATCH] v0.9.1: more android lifecycle adjustments, fixes bugs and another leak? --- .../shatteredpixeldungeon/android/AndroidGame.java | 13 ------------- .../android/AndroidPlatformSupport.java | 14 +++++++++----- 2 files changed, 9 insertions(+), 18 deletions(-) diff --git a/android/src/main/java/com/shatteredpixel/shatteredpixeldungeon/android/AndroidGame.java b/android/src/main/java/com/shatteredpixel/shatteredpixeldungeon/android/AndroidGame.java index 487da017a..5ecc3b561 100644 --- a/android/src/main/java/com/shatteredpixel/shatteredpixeldungeon/android/AndroidGame.java +++ b/android/src/main/java/com/shatteredpixel/shatteredpixeldungeon/android/AndroidGame.java @@ -23,12 +23,10 @@ package com.shatteredpixel.shatteredpixeldungeon.android; import android.content.pm.ActivityInfo; import android.content.pm.PackageManager; -import android.opengl.GLSurfaceView; import android.os.Build; import android.os.Bundle; import com.badlogic.gdx.Files; -import com.badlogic.gdx.Gdx; import com.badlogic.gdx.backends.android.AndroidApplication; import com.badlogic.gdx.backends.android.AndroidApplicationConfiguration; import com.shatteredpixel.shatteredpixeldungeon.SPDSettings; @@ -43,7 +41,6 @@ import com.watabou.utils.FileUtils; public class AndroidGame extends AndroidApplication { public static AndroidApplication instance; - protected static GLSurfaceView view; private static AndroidPlatformSupport support; @@ -112,8 +109,6 @@ public class AndroidGame extends AndroidApplication { initialize(new ShatteredPixelDungeon(support), config); - view = (GLSurfaceView)graphics.getView(); - } @Override @@ -134,16 +129,8 @@ public class AndroidGame extends AndroidApplication { //LibGDX itself doesn't clear these in every case, so we do it ourselves to be sure graphics.clearManagedCaches(); audio.dispose(); - Gdx.app = null; - Gdx.input = null; - Gdx.audio = null; - Gdx.files = null; - Gdx.graphics = null; - Gdx.net = null; - if (instance == this) { instance = null; - view = null; } super.onDestroy(); } diff --git a/android/src/main/java/com/shatteredpixel/shatteredpixeldungeon/android/AndroidPlatformSupport.java b/android/src/main/java/com/shatteredpixel/shatteredpixeldungeon/android/AndroidPlatformSupport.java index 1b0a5a684..57afc94e5 100644 --- a/android/src/main/java/com/shatteredpixel/shatteredpixeldungeon/android/AndroidPlatformSupport.java +++ b/android/src/main/java/com/shatteredpixel/shatteredpixeldungeon/android/AndroidPlatformSupport.java @@ -26,11 +26,13 @@ import android.content.Context; import android.content.pm.ActivityInfo; import android.net.ConnectivityManager; import android.net.NetworkInfo; +import android.opengl.GLSurfaceView; import android.os.Build; import android.view.View; import android.view.WindowManager; import com.badlogic.gdx.Gdx; +import com.badlogic.gdx.backends.android.AndroidGraphics; import com.badlogic.gdx.graphics.Pixmap; import com.badlogic.gdx.graphics.g2d.BitmapFont; import com.badlogic.gdx.graphics.g2d.PixmapPacker; @@ -53,12 +55,14 @@ public class AndroidPlatformSupport extends PlatformSupport { ActivityInfo.SCREEN_ORIENTATION_SENSOR_LANDSCAPE : ActivityInfo.SCREEN_ORIENTATION_SENSOR_PORTRAIT ); } + + GLSurfaceView view = (GLSurfaceView) ((AndroidGraphics)Gdx.graphics).getView(); - if (AndroidGame.view.getMeasuredWidth() == 0 || AndroidGame.view.getMeasuredHeight() == 0) + if (view.getMeasuredWidth() == 0 || view.getMeasuredHeight() == 0) return; - Game.dispWidth = AndroidGame.view.getMeasuredWidth(); - Game.dispHeight = AndroidGame.view.getMeasuredHeight(); + Game.dispWidth = view.getMeasuredWidth(); + Game.dispHeight = view.getMeasuredHeight(); boolean fullscreen = Build.VERSION.SDK_INT < Build.VERSION_CODES.N || !AndroidGame.instance.isInMultiWindowMode(); @@ -99,7 +103,7 @@ public class AndroidPlatformSupport extends PlatformSupport { AndroidGame.instance.runOnUiThread(new Runnable() { @Override public void run() { - AndroidGame.view.getHolder().setFixedSize(finalW, finalH); + view.getHolder().setFixedSize(finalW, finalH); } }); @@ -108,7 +112,7 @@ public class AndroidPlatformSupport extends PlatformSupport { AndroidGame.instance.runOnUiThread(new Runnable() { @Override public void run() { - AndroidGame.view.getHolder().setSizeFromLayout(); + view.getHolder().setSizeFromLayout(); } }); }