diff --git a/SPD-classes/src/main/java/com/watabou/input/ControllerHandler.java b/SPD-classes/src/main/java/com/watabou/input/ControllerHandler.java
index 8afd01978..8ad9e087e 100644
--- a/SPD-classes/src/main/java/com/watabou/input/ControllerHandler.java
+++ b/SPD-classes/src/main/java/com/watabou/input/ControllerHandler.java
@@ -30,7 +30,6 @@ import com.badlogic.gdx.controllers.ControllerMapping;
import com.badlogic.gdx.controllers.Controllers;
import com.watabou.noosa.Game;
import com.watabou.noosa.ui.Cursor;
-import com.watabou.utils.DeviceCompat;
import com.watabou.utils.PointF;
public class ControllerHandler implements ControllerListener {
@@ -65,9 +64,7 @@ public class ControllerHandler implements ControllerListener {
private static boolean failedInit = false;
public static boolean controllersSupported() {
- if (DeviceCompat.isAndroid() && Gdx.app.getVersion() < 16) {
- return false;
- } else if (failedInit) {
+ if (failedInit) {
return false;
} else if (initialized){
return true;
diff --git a/SPD-classes/src/main/java/com/watabou/utils/DeviceCompat.java b/SPD-classes/src/main/java/com/watabou/utils/DeviceCompat.java
index e8ee95e27..2a7e1626d 100644
--- a/SPD-classes/src/main/java/com/watabou/utils/DeviceCompat.java
+++ b/SPD-classes/src/main/java/com/watabou/utils/DeviceCompat.java
@@ -32,14 +32,15 @@ public class DeviceCompat {
public static boolean supportsFullScreen(){
switch (Gdx.app.getType()){
case Android:
- //Android 4.4+ supports hiding UI via immersive mode
- return Gdx.app.getVersion() >= 19;
+ //TODO perhaps have this vary based on status bar type?
+ return true;
case iOS:
//iOS supports hiding UI via drawing into the gesture safe area
return Gdx.graphics.getSafeInsetBottom() != 0;
- default:
- //TODO implement functionality for other platforms here
+ case Desktop:
return true;
+ default:
+ return false;
}
}
diff --git a/android/src/main/AndroidManifest.xml b/android/src/main/AndroidManifest.xml
index 25a1f38d4..8fce7ddfa 100644
--- a/android/src/main/AndroidManifest.xml
+++ b/android/src/main/AndroidManifest.xml
@@ -12,9 +12,6 @@
-
-
-
= Build.VERSION_CODES.LOLLIPOP) {
- finishAndRemoveTask();
- } else {
- finish();
- }
+ finishAndRemoveTask();
}
super.onResume();
}
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 20dbda045..63d640182 100644
--- a/android/src/main/java/com/shatteredpixel/shatteredpixeldungeon/android/AndroidPlatformSupport.java
+++ b/android/src/main/java/com/shatteredpixel/shatteredpixeldungeon/android/AndroidPlatformSupport.java
@@ -25,7 +25,6 @@ import android.annotation.SuppressLint;
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;
@@ -77,10 +76,6 @@ public class AndroidPlatformSupport extends PlatformSupport {
float renderWidth = dispRatio > 1 ? PixelScene.MIN_WIDTH_L : PixelScene.MIN_WIDTH_P;
float renderHeight = dispRatio > 1 ? PixelScene.MIN_HEIGHT_L : PixelScene.MIN_HEIGHT_P;
- //force power saver in this case as all devices must run at at least 2x scale.
- if (Game.dispWidth < renderWidth*2 || Game.dispHeight < renderHeight*2)
- SPDSettings.put( SPDSettings.KEY_POWER_SAVER, true );
-
if (SPDSettings.powerSaver() && fullscreen){
int maxZoom = (int)Math.min(Game.dispWidth/renderWidth, Game.dispHeight/renderHeight);
@@ -132,17 +127,16 @@ public class AndroidPlatformSupport extends PlatformSupport {
AndroidLauncher.instance.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FORCE_NOT_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN | WindowManager.LayoutParams.FLAG_FORCE_NOT_FULLSCREEN);
}
-
- if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT){
- if (SPDSettings.fullscreen()) {
- AndroidLauncher.instance.getWindow().getDecorView().setSystemUiVisibility(
- View.SYSTEM_UI_FLAG_LAYOUT_STABLE | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
- | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN | View.SYSTEM_UI_FLAG_HIDE_NAVIGATION | View.SYSTEM_UI_FLAG_FULLSCREEN
- | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY );
- } else {
- AndroidLauncher.instance.getWindow().getDecorView().setSystemUiVisibility(
- View.SYSTEM_UI_FLAG_LAYOUT_STABLE );
- }
+
+ //TODO can immersive be handled by libGDX? It's getting quite dated here
+ if (SPDSettings.fullscreen()) {
+ AndroidLauncher.instance.getWindow().getDecorView().setSystemUiVisibility(
+ View.SYSTEM_UI_FLAG_LAYOUT_STABLE | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
+ | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN | View.SYSTEM_UI_FLAG_HIDE_NAVIGATION | View.SYSTEM_UI_FLAG_FULLSCREEN
+ | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY );
+ } else {
+ AndroidLauncher.instance.getWindow().getDecorView().setSystemUiVisibility(
+ View.SYSTEM_UI_FLAG_LAYOUT_STABLE );
}
}
});
@@ -150,20 +144,9 @@ public class AndroidPlatformSupport extends PlatformSupport {
}
@Override
- @SuppressWarnings("deprecation")
public boolean connectedToUnmeteredNetwork() {
- //Returns true if using unmetered connection, use shortcut method if available
- ConnectivityManager cm = (ConnectivityManager) AndroidLauncher.instance.getSystemService(Context.CONNECTIVITY_SERVICE);
- if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP){
- return !cm.isActiveNetworkMetered();
- } else {
- NetworkInfo activeNetwork = cm.getActiveNetworkInfo();
- return activeNetwork != null && activeNetwork.isConnectedOrConnecting() &&
- (activeNetwork.getType() == ConnectivityManager.TYPE_WIFI
- || activeNetwork.getType() == ConnectivityManager.TYPE_WIMAX
- || activeNetwork.getType() == ConnectivityManager.TYPE_BLUETOOTH
- || activeNetwork.getType() == ConnectivityManager.TYPE_ETHERNET);
- }
+ //Returns true if using unmetered connection
+ return !((ConnectivityManager) AndroidLauncher.instance.getSystemService(Context.CONNECTIVITY_SERVICE)).isActiveNetworkMetered();
}
@Override
diff --git a/build.gradle b/build.gradle
index bfb7c5a53..76e06d2ce 100644
--- a/build.gradle
+++ b/build.gradle
@@ -17,10 +17,10 @@ allprojects {
appVersionCode = 861
appVersionName = '3.2.1'
- appJavaCompatibility = JavaVersion.VERSION_1_8
+ appJavaCompatibility = JavaVersion.VERSION_11
appAndroidCompileSDK = 35 //Android 15
- appAndroidMinSDK = 14 //Android 4.0
+ appAndroidMinSDK = 21 //Android 5.0
//significant layout management changes required for API 35+ as edge-to-edge is forced on
//will do this at the same time as dropping support for Android 4.4- (later in 2025)
appAndroidTargetSDK = 34 //Android 14