Commit 3cb979cb13 for strongswan.org
commit 3cb979cb13a49b38113c4d3ecdaef1c3608d4b27
Author: Tobias Brunner <tobias@strongswan.org>
Date: Fri Oct 16 13:53:41 2026 +0200
android: Remove compatibility checks related to Android M (23)
Android 6 is now our minimum version, so we don't need these anymore.
diff --git a/src/frontends/android/app/src/main/java/org/strongswan/android/data/ManagedConfigurationService.java b/src/frontends/android/app/src/main/java/org/strongswan/android/data/ManagedConfigurationService.java
index ac8e73d9b4..b2afb8b120 100644
--- a/src/frontends/android/app/src/main/java/org/strongswan/android/data/ManagedConfigurationService.java
+++ b/src/frontends/android/app/src/main/java/org/strongswan/android/data/ManagedConfigurationService.java
@@ -19,14 +19,12 @@ package org.strongswan.android.data;
import android.content.Context;
import android.content.RestrictionsManager;
import android.content.SharedPreferences;
-import android.os.Build;
import android.os.Bundle;
import org.strongswan.android.utils.Constants;
import java.util.Collections;
import java.util.Map;
-import java.util.UUID;
import androidx.preference.PreferenceManager;
@@ -44,11 +42,6 @@ public class ManagedConfigurationService
public void loadConfiguration()
{
- if (Build.VERSION.SDK_INT < Build.VERSION_CODES.M)
- {
- return;
- }
-
final RestrictionsManager restrictionsService = mContext.getSystemService(RestrictionsManager.class);
if (restrictionsService == null)
{
diff --git a/src/frontends/android/app/src/main/java/org/strongswan/android/logic/CharonVpnService.java b/src/frontends/android/app/src/main/java/org/strongswan/android/logic/CharonVpnService.java
index 97e93e8e04..0f1dfdc4b3 100644
--- a/src/frontends/android/app/src/main/java/org/strongswan/android/logic/CharonVpnService.java
+++ b/src/frontends/android/app/src/main/java/org/strongswan/android/logic/CharonVpnService.java
@@ -479,11 +479,7 @@ public class CharonVpnService extends VpnService implements Runnable, VpnStateSe
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
intent.setAction(VpnProfileControlActivity.START_PROFILE);
intent.putExtra(VpnProfileControlActivity.EXTRA_VPN_PROFILE_UUID, profile.getUUID().toString());
- int flags = PendingIntent.FLAG_UPDATE_CURRENT;
- if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M)
- {
- flags |= PendingIntent.FLAG_IMMUTABLE;
- }
+ int flags = PendingIntent.FLAG_UPDATE_CURRENT | PendingIntent.FLAG_IMMUTABLE;
PendingIntent pending = PendingIntent.getActivity(getApplicationContext(), 0, intent,
flags);
builder.addAction(R.drawable.ic_notification_connecting, getString(R.string.retry), pending);
@@ -515,11 +511,7 @@ public class CharonVpnService extends VpnService implements Runnable, VpnStateSe
}
builder.setContentTitle(getString(s));
- int flags = PendingIntent.FLAG_UPDATE_CURRENT;
- if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M)
- {
- flags |= PendingIntent.FLAG_IMMUTABLE;
- }
+ int flags = PendingIntent.FLAG_UPDATE_CURRENT | PendingIntent.FLAG_IMMUTABLE;
if (!publicVersion)
{
if (add_action)
@@ -850,11 +842,7 @@ public class CharonVpnService extends VpnService implements Runnable, VpnStateSe
* we just use our main Activity */
Context context = getApplicationContext();
Intent intent = new Intent(context, MainActivity.class);
- int flags = PendingIntent.FLAG_UPDATE_CURRENT;
- if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M)
- {
- flags |= PendingIntent.FLAG_IMMUTABLE;
- }
+ int flags = PendingIntent.FLAG_UPDATE_CURRENT | PendingIntent.FLAG_IMMUTABLE;
PendingIntent pending = PendingIntent.getActivity(context, 0, intent, flags);
builder.setConfigureIntent(pending);
@@ -1412,12 +1400,7 @@ public class CharonVpnService extends VpnService implements Runnable, VpnStateSe
*/
private static String getAndroidVersion()
{
- String version = "Android " + Build.VERSION.RELEASE + " - " + Build.DISPLAY;
- if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M)
- {
- version += "/" + Build.VERSION.SECURITY_PATCH;
- }
- return version;
+ return "Android " + Build.VERSION.RELEASE + " - " + Build.DISPLAY + "/" + Build.VERSION.SECURITY_PATCH;
}
/**
diff --git a/src/frontends/android/app/src/main/java/org/strongswan/android/logic/Scheduler.java b/src/frontends/android/app/src/main/java/org/strongswan/android/logic/Scheduler.java
index 7288b287ac..47714b1f20 100644
--- a/src/frontends/android/app/src/main/java/org/strongswan/android/logic/Scheduler.java
+++ b/src/frontends/android/app/src/main/java/org/strongswan/android/logic/Scheduler.java
@@ -29,8 +29,6 @@ import java.util.ArrayList;
import java.util.PriorityQueue;
import java.util.UUID;
-import androidx.annotation.RequiresApi;
-
public class Scheduler extends BroadcastReceiver
{
private final String EXECUTE_JOB = "org.strongswan.android.Scheduler.EXECUTE_JOB";
@@ -91,11 +89,7 @@ public class Scheduler extends BroadcastReceiver
/* using component/class doesn't work with dynamic broadcast receivers */
Intent intent = new Intent(EXECUTE_JOB);
intent.setPackage(mContext.getPackageName());
- int flags = 0;
- if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M)
- {
- flags |= PendingIntent.FLAG_IMMUTABLE;
- }
+ int flags = PendingIntent.FLAG_IMMUTABLE;
return PendingIntent.getBroadcast(mContext, 0, intent, flags);
}
@@ -106,7 +100,6 @@ public class Scheduler extends BroadcastReceiver
* @param id job ID
* @param ms delta in milliseconds when the job should be executed
*/
- @RequiresApi(api = Build.VERSION_CODES.M)
public void scheduleJob(String id, long ms)
{
synchronized (this)
@@ -122,7 +115,6 @@ public class Scheduler extends BroadcastReceiver
}
}
- @RequiresApi(api = Build.VERSION_CODES.M)
@Override
public void onReceive(Context context, Intent intent)
{
diff --git a/src/frontends/android/app/src/main/java/org/strongswan/android/ui/VpnProfileControlActivity.java b/src/frontends/android/app/src/main/java/org/strongswan/android/ui/VpnProfileControlActivity.java
index 9ff07175e3..eeeda5a0f0 100644
--- a/src/frontends/android/app/src/main/java/org/strongswan/android/ui/VpnProfileControlActivity.java
+++ b/src/frontends/android/app/src/main/java/org/strongswan/android/ui/VpnProfileControlActivity.java
@@ -282,23 +282,20 @@ public class VpnProfileControlActivity extends AppCompatActivity
*/
private boolean checkPowerWhitelist()
{
- if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M)
- {
- PowerManager pm = (PowerManager)this.getSystemService(Context.POWER_SERVICE);
- SharedPreferences pref = PreferenceManager.getDefaultSharedPreferences(this);
- if (!pm.isIgnoringBatteryOptimizations(this.getPackageName()) &&
- !pref.getBoolean(Constants.PREF_IGNORE_POWER_WHITELIST, false))
- {
- if (getSupportFragmentManager().isStateSaved())
- { /* we might get called via service connection and manual onActivityResult()
- * call when the activity is not active anymore and fragment transactions
- * would cause an illegalStateException */
- return false;
- }
- PowerWhitelistRequired whitelist = new PowerWhitelistRequired();
- whitelist.show(getSupportFragmentManager(), DIALOG_TAG);
+ PowerManager pm = (PowerManager)this.getSystemService(Context.POWER_SERVICE);
+ SharedPreferences pref = PreferenceManager.getDefaultSharedPreferences(this);
+ if (!pm.isIgnoringBatteryOptimizations(this.getPackageName()) &&
+ !pref.getBoolean(Constants.PREF_IGNORE_POWER_WHITELIST, false))
+ {
+ if (getSupportFragmentManager().isStateSaved())
+ { /* we might get called via service connection and manual onActivityResult()
+ * call when the activity is not active anymore and fragment transactions
+ * would cause an illegalStateException */
return false;
}
+ PowerWhitelistRequired whitelist = new PowerWhitelistRequired();
+ whitelist.show(getSupportFragmentManager(), DIALOG_TAG);
+ return false;
}
return true;
}