]> git.ipfire.org Git - thirdparty/strongswan.git/commitdiff
android: Only show disconnect button if actually connected
authorTobias Brunner <tobias@strongswan.org>
Mon, 3 Jul 2017 10:08:57 +0000 (12:08 +0200)
committerTobias Brunner <tobias@strongswan.org>
Mon, 3 Jul 2017 10:11:30 +0000 (12:11 +0200)
src/frontends/android/app/src/main/java/org/strongswan/android/logic/CharonVpnService.java

index cfed2e384e8e8af40525065f00fc00a24df1c681..5ef5e8731715b560bd9010106eee0ad00886119e 100644 (file)
@@ -326,6 +326,7 @@ public class CharonVpnService extends VpnService implements Runnable, VpnStateSe
                State state = mService.getState();
                ErrorState error = mService.getErrorState();
                String name = "";
+               boolean add_action = false;
 
                if (profile != null)
                {
@@ -351,11 +352,13 @@ public class CharonVpnService extends VpnService implements Runnable, VpnStateSe
                                        s = R.string.state_connecting;
                                        builder.setSmallIcon(R.drawable.ic_notification_warning);
                                        builder.setColor(ContextCompat.getColor(this, R.color.warning_text));
+                                       add_action = true;
                                        break;
                                case CONNECTED:
                                        s = R.string.state_connected;
                                        builder.setColor(ContextCompat.getColor(this, R.color.success_text));
                                        builder.setUsesChronometer(true);
+                                       add_action = true;
                                        break;
                                case DISCONNECTING:
                                        s = R.string.state_disconnecting;
@@ -365,11 +368,14 @@ public class CharonVpnService extends VpnService implements Runnable, VpnStateSe
                builder.setContentTitle(getString(s));
                if (!publicVersion)
                {
-                       Intent intent = new Intent(getApplicationContext(), MainActivity.class);
-                       intent.setAction(MainActivity.DISCONNECT);
-                       PendingIntent pending = PendingIntent.getActivity(getApplicationContext(), 0, intent,
-                                                                                                                         PendingIntent.FLAG_UPDATE_CURRENT);
-                       builder.addAction(R.drawable.ic_notification_disconnect, getString(R.string.disconnect), pending);
+                       if (add_action)
+                       {
+                               Intent intent = new Intent(getApplicationContext(), MainActivity.class);
+                               intent.setAction(MainActivity.DISCONNECT);
+                               PendingIntent pending = PendingIntent.getActivity(getApplicationContext(), 0, intent,
+                                                                                                                                 PendingIntent.FLAG_UPDATE_CURRENT);
+                               builder.addAction(R.drawable.ic_notification_disconnect, getString(R.string.disconnect), pending);
+                       }
                        builder.setContentText(name);
                        builder.setPublicVersion(buildNotification(true));
                }