From: Tobias Brunner Date: Wed, 6 Jun 2018 14:29:02 +0000 (+0200) Subject: android: Accept a profile's UUID when initiating X-Git-Tag: 5.7.0dr5~20^2~62 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=93033728a967d8a5e0f2e37e54578830861e245d;p=thirdparty%2Fstrongswan.git android: Accept a profile's UUID when initiating --- diff --git a/src/frontends/android/app/src/main/java/org/strongswan/android/ui/MainActivity.java b/src/frontends/android/app/src/main/java/org/strongswan/android/ui/MainActivity.java index cd5504ac9b..d91898b368 100644 --- a/src/frontends/android/app/src/main/java/org/strongswan/android/ui/MainActivity.java +++ b/src/frontends/android/app/src/main/java/org/strongswan/android/ui/MainActivity.java @@ -58,6 +58,7 @@ import org.strongswan.android.ui.VpnProfileListFragment.OnVpnProfileSelectedList import java.io.File; import java.util.ArrayList; import java.util.List; +import java.util.UUID; public class MainActivity extends AppCompatActivity implements OnVpnProfileSelectedListener { @@ -341,14 +342,30 @@ public class MainActivity extends AppCompatActivity implements OnVpnProfileSelec */ private void startVpnProfile(Intent intent, boolean foreground) { - long profileId = intent.getLongExtra(EXTRA_VPN_PROFILE_ID, 0); - if (profileId <= 0) - { /* invalid invocation */ - return; - } + VpnProfile profile = null; + VpnProfileDataSource dataSource = new VpnProfileDataSource(this); dataSource.open(); - VpnProfile profile = dataSource.getVpnProfile(profileId); + String profileUUID = intent.getStringExtra(EXTRA_VPN_PROFILE_ID); + if (profileUUID != null) + { + try + { + profile = dataSource.getVpnProfile(UUID.fromString(profileUUID)); + } + catch (Exception e) + { /* invalid UUID */ + e.printStackTrace(); + } + } + else + { + long profileId = intent.getLongExtra(EXTRA_VPN_PROFILE_ID, 0); + if (profileId > 0) + { + profile = dataSource.getVpnProfile(profileId); + } + } dataSource.close(); if (profile != null)