From: Tobias Brunner Date: Tue, 22 Aug 2017 16:28:39 +0000 (+0200) Subject: android: Add disconnect button to dialog if already connected to profile X-Git-Tag: 5.6.1dr2~10^2 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=1926efaddea782cd252f032f5b74caa5f9158a46;p=thirdparty%2Fstrongswan.git android: Add disconnect button to dialog if already connected to profile --- 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 f2a9eaaf8d..c0e375da45 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 @@ -474,42 +474,65 @@ public class MainActivity extends AppCompatActivity implements OnVpnProfileSelec button = R.string.disconnect; } - return new AlertDialog.Builder(getActivity()) - .setIcon(icon) - .setTitle(String.format(getString(title), profileInfo.getString(PROFILE_NAME))) - .setMessage(message) - .setPositiveButton(button, new DialogInterface.OnClickListener() + DialogInterface.OnClickListener connectListener = new DialogInterface.OnClickListener() + { + @Override + public void onClick(DialogInterface dialog, int which) { - @Override - public void onClick(DialogInterface dialog, int whichButton) + MainActivity activity = (MainActivity)getActivity(); + activity.startVpnProfile(profileInfo); + } + }; + DialogInterface.OnClickListener disconnectListener = new DialogInterface.OnClickListener() + { + @Override + public void onClick(DialogInterface dialog, int which) + { + MainActivity activity = (MainActivity)getActivity(); + if (activity.mService != null) { - MainActivity activity = (MainActivity)getActivity(); - if (profileInfo.getBoolean(PROFILE_DISCONNECT)) - { - if (activity.mService != null) - { - activity.mService.disconnect(); - } - } - else - { - activity.startVpnProfile(profileInfo); - } + activity.mService.disconnect(); } - }) - .setNegativeButton(android.R.string.cancel, new DialogInterface.OnClickListener() + } + }; + DialogInterface.OnClickListener cancelListener = new DialogInterface.OnClickListener() + { + @Override + public void onClick(DialogInterface dialog, int which) { - @Override - public void onClick(DialogInterface dialog, int which) - { - dismiss(); - if (!profileInfo.getBoolean(PROFILE_FOREGROUND)) - { /* if the app was not in the foreground before this action was triggered - * externally, we just close the activity if canceled */ - getActivity().finish(); - } + dismiss(); + if (!profileInfo.getBoolean(PROFILE_FOREGROUND)) + { /* if the app was not in the foreground before this action was triggered + * externally, we just close the activity if canceled */ + getActivity().finish(); } - }).create(); + } + }; + + AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()) + .setIcon(icon) + .setTitle(String.format(getString(title), profileInfo.getString(PROFILE_NAME))) + .setMessage(message); + + if (profileInfo.getBoolean(PROFILE_DISCONNECT)) + { + builder.setPositiveButton(button, disconnectListener); + } + else + { + builder.setPositiveButton(button, connectListener); + } + + if (profileInfo.getBoolean(PROFILE_RECONNECT)) + { + builder.setNegativeButton(R.string.disconnect, disconnectListener); + builder.setNeutralButton(android.R.string.cancel, cancelListener); + } + else + { + builder.setNegativeButton(android.R.string.cancel, cancelListener); + } + return builder.create(); } }