From 273493fb166905554a0d33f0b56cbdf5758c8dc5 Mon Sep 17 00:00:00 2001 From: Arne Schwabe Date: Thu, 18 Oct 2018 14:53:06 +0200 Subject: Don't allow editing temporary profiles (closes #954) --- build.gradle | 2 +- main/src/main/java/de/blinkt/openvpn/VpnProfile.java | 1 + main/src/main/java/de/blinkt/openvpn/activities/VPNPreferences.java | 6 ++++++ .../src/main/java/de/blinkt/openvpn/api/ExternalOpenVPNService.java | 1 - main/src/main/java/de/blinkt/openvpn/core/ProfileManager.java | 1 + 5 files changed, 9 insertions(+), 2 deletions(-) diff --git a/build.gradle b/build.gradle index 3ed04f0e..96752279 100644 --- a/build.gradle +++ b/build.gradle @@ -12,7 +12,7 @@ buildscript { google() } dependencies { - classpath 'com.android.tools.build:gradle:3.2.0' + classpath 'com.android.tools.build:gradle:3.2.1' } } diff --git a/main/src/main/java/de/blinkt/openvpn/VpnProfile.java b/main/src/main/java/de/blinkt/openvpn/VpnProfile.java index 43891c3d..a9b76bda 100644 --- a/main/src/main/java/de/blinkt/openvpn/VpnProfile.java +++ b/main/src/main/java/de/blinkt/openvpn/VpnProfile.java @@ -156,6 +156,7 @@ public class VpnProfile implements Serializable, Cloneable { public String mServerName = "openvpn.example.com"; public String mServerPort = "1194"; public boolean mUseUdp = true; + public boolean mTemporaryProfile = false; private transient PrivateKey mPrivateKey; // Public attributes, since I got mad with getter/setter // set members to default values diff --git a/main/src/main/java/de/blinkt/openvpn/activities/VPNPreferences.java b/main/src/main/java/de/blinkt/openvpn/activities/VPNPreferences.java index 59ba097f..65acdaa6 100644 --- a/main/src/main/java/de/blinkt/openvpn/activities/VPNPreferences.java +++ b/main/src/main/java/de/blinkt/openvpn/activities/VPNPreferences.java @@ -18,6 +18,7 @@ import android.support.v4n.view.ViewPager; import android.view.Menu; import android.view.MenuItem; +import android.widget.Toast; import de.blinkt.openvpn.R; import de.blinkt.openvpn.VpnProfile; import de.blinkt.openvpn.core.ProfileManager; @@ -83,6 +84,11 @@ public class VPNPreferences extends BaseActivity { setResult(VPNProfileList.RESULT_VPN_DELETED); finish(); } + if (mProfile.mTemporaryProfile) + { + Toast.makeText(this, "Temporary profiles cannot be edited", Toast.LENGTH_LONG); + finish(); + } } private void getProfile() { diff --git a/main/src/main/java/de/blinkt/openvpn/api/ExternalOpenVPNService.java b/main/src/main/java/de/blinkt/openvpn/api/ExternalOpenVPNService.java index e5c50a6c..f370f606 100644 --- a/main/src/main/java/de/blinkt/openvpn/api/ExternalOpenVPNService.java +++ b/main/src/main/java/de/blinkt/openvpn/api/ExternalOpenVPNService.java @@ -173,7 +173,6 @@ public class ExternalOpenVPNService extends Service implements StateListener { vp.mProfileCreator = callingApp; - /*int needpw = vp.needUserPWInput(false); if(needpw !=0) throw new RemoteException("The inline file would require user input: " + getString(needpw)); diff --git a/main/src/main/java/de/blinkt/openvpn/core/ProfileManager.java b/main/src/main/java/de/blinkt/openvpn/core/ProfileManager.java index aa4a50ff..b9edc4b2 100644 --- a/main/src/main/java/de/blinkt/openvpn/core/ProfileManager.java +++ b/main/src/main/java/de/blinkt/openvpn/core/ProfileManager.java @@ -128,6 +128,7 @@ public class ProfileManager { } public static void setTemporaryProfile(Context c, VpnProfile tmp) { + tmp.mTemporaryProfile = true; ProfileManager.tmpprofile = tmp; saveProfile(c, tmp, true, true); } -- cgit v1.2.3