From 01b27ad143508c3a7179fb5163925a6fc89a7171 Mon Sep 17 00:00:00 2001 From: M66B Date: Sat, 1 Aug 2026 14:26:12 +0200 Subject: [PATCH] Added VPN list button --- .../eu/faircode/email/FragmentDialogVPN.java | 23 ++++++++++++++++--- app/src/main/res/values/strings.xml | 1 + 2 files changed, 21 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/eu/faircode/email/FragmentDialogVPN.java b/app/src/main/java/eu/faircode/email/FragmentDialogVPN.java index 908b262fad..060f5566d4 100644 --- a/app/src/main/java/eu/faircode/email/FragmentDialogVPN.java +++ b/app/src/main/java/eu/faircode/email/FragmentDialogVPN.java @@ -22,8 +22,12 @@ package eu.faircode.email; import android.app.Dialog; import android.content.Context; import android.content.DialogInterface; +import android.content.Intent; import android.content.SharedPreferences; +import android.content.pm.PackageManager; +import android.os.Build; import android.os.Bundle; +import android.provider.Settings; import android.text.SpannableStringBuilder; import android.text.style.RelativeSizeSpan; @@ -45,7 +49,7 @@ public class FragmentDialogVPN extends FragmentDialogBase { ssb.append(context.getString(R.string.title_hint_dismiss)); ssb.setSpan(new RelativeSizeSpan(HtmlHelper.FONT_SMALL), start, ssb.length(), 0); - return new AlertDialog.Builder(context) + AlertDialog.Builder builder = new AlertDialog.Builder(context) .setIcon(R.drawable.twotone_vpn_key_24) .setTitle(R.string.title_hint_vpn_active) .setMessage(ssb) @@ -56,7 +60,20 @@ public class FragmentDialogVPN extends FragmentDialogBase { SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context); prefs.edit().putBoolean("vpn_reminder", false).apply(); } - }) - .create(); + }); + + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) { + PackageManager pm = context.getPackageManager(); + Intent intent = new Intent(Settings.ACTION_VPN_SETTINGS); + if (intent.resolveActivity(pm) != null) + builder.setNeutralButton(R.string.title_hint_vpn_settings, new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + startActivity(intent); + } + }); + } + + return builder.create(); } } diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 9fe8a9dc49..08b8918df6 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -2377,6 +2377,7 @@ To limit battery and network usage not all folders and not all messages will be synchronized by default Airplane mode is on VPN active + VPN list No notification permissions Notification permissions are required for (account) alerts too. Notifications for new messages can be turned off in the settings. Battery optimizations still enabled