aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorTobias Brunner <tobias@strongswan.org>2016-04-28 14:46:10 +0200
committerTobias Brunner <tobias@strongswan.org>2016-05-02 16:43:15 +0200
commit6e398a81f215477e39d057fc3aacee8477af6cf5 (patch)
tree92007e987496df73ea4c26d06d155ce197ec52f3 /src
parent353526601aab6c5c5b78790a856d3beb0cc815c9 (diff)
downloadstrongswan-6e398a81f215477e39d057fc3aacee8477af6cf5.tar.bz2
strongswan-6e398a81f215477e39d057fc3aacee8477af6cf5.tar.xz
android: Avoid ProgressDialogs in VPN state fragment
Instead we use a ProgressBar directly in the fragment and use the existing button to cancel the process.
Diffstat (limited to 'src')
-rw-r--r--src/frontends/android/app/src/main/java/org/strongswan/android/ui/VpnStateFragment.java93
-rw-r--r--src/frontends/android/app/src/main/res/layout/vpn_state_fragment.xml13
-rw-r--r--src/frontends/android/app/src/main/res/values-de/strings.xml2
-rw-r--r--src/frontends/android/app/src/main/res/values-pl/strings.xml2
-rw-r--r--src/frontends/android/app/src/main/res/values-ru/strings.xml2
-rw-r--r--src/frontends/android/app/src/main/res/values-ua/strings.xml2
-rw-r--r--src/frontends/android/app/src/main/res/values/strings.xml2
7 files changed, 32 insertions, 84 deletions
diff --git a/src/frontends/android/app/src/main/java/org/strongswan/android/ui/VpnStateFragment.java b/src/frontends/android/app/src/main/java/org/strongswan/android/ui/VpnStateFragment.java
index 10bf2c322..0b093d78f 100644
--- a/src/frontends/android/app/src/main/java/org/strongswan/android/ui/VpnStateFragment.java
+++ b/src/frontends/android/app/src/main/java/org/strongswan/android/ui/VpnStateFragment.java
@@ -1,8 +1,8 @@
/*
- * Copyright (C) 2012-2013 Tobias Brunner
+ * Copyright (C) 2012-2016 Tobias Brunner
* Copyright (C) 2012 Giuliano Grassi
* Copyright (C) 2012 Ralf Sager
- * Hochschule fuer Technik Rapperswil
+ * HSR Hochschule fuer Technik Rapperswil
*
* This program is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the
@@ -17,7 +17,6 @@
package org.strongswan.android.ui;
-import android.app.ProgressDialog;
import android.app.Service;
import android.content.ComponentName;
import android.content.Context;
@@ -34,6 +33,7 @@ import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.widget.Button;
+import android.widget.ProgressBar;
import android.widget.TextView;
import org.strongswan.android.R;
@@ -60,9 +60,7 @@ public class VpnStateFragment extends Fragment implements VpnStateListener
private int mColorStateError;
private int mColorStateSuccess;
private Button mActionButton;
- private ProgressDialog mConnectDialog;
- private ProgressDialog mDisconnectDialog;
- private ProgressDialog mProgressDialog;
+ private ProgressBar mProgress;
private AlertDialog mErrorDialog;
private long mErrorConnectionID;
private long mDismissedConnectionID;
@@ -133,8 +131,9 @@ public class VpnStateFragment extends Fragment implements VpnStateListener
}
}
});
- enableActionButton(false);
+ enableActionButton(null);
+ mProgress = (ProgressBar)view.findViewById(R.id.progress);
mStateView = (TextView)view.findViewById(R.id.vpn_state);
mColorStateBase = mStateView.getCurrentTextColor();
mProfileView = (TextView)view.findViewById(R.id.vpn_profile_label);
@@ -163,7 +162,6 @@ public class VpnStateFragment extends Fragment implements VpnStateListener
mService.unregisterListener(this);
}
hideErrorDialog();
- hideProgressDialog();
}
@Override
@@ -202,33 +200,35 @@ public class VpnStateFragment extends Fragment implements VpnStateListener
return;
}
- enableActionButton(false);
mProfileNameView.setText(name);
switch (state)
{
case DISABLED:
showProfile(false);
- hideProgressDialog();
+ mProgress.setVisibility(View.GONE);
+ enableActionButton(null);
mStateView.setText(R.string.state_disabled);
mStateView.setTextColor(mColorStateBase);
break;
case CONNECTING:
showProfile(true);
- showConnectDialog(name, gateway);
+ mProgress.setVisibility(View.VISIBLE);
+ enableActionButton(getString(android.R.string.cancel));
mStateView.setText(R.string.state_connecting);
mStateView.setTextColor(mColorStateBase);
break;
case CONNECTED:
showProfile(true);
- hideProgressDialog();
- enableActionButton(true);
+ mProgress.setVisibility(View.GONE);
+ enableActionButton(getString(R.string.disconnect));
mStateView.setText(R.string.state_connected);
mStateView.setTextColor(mColorStateSuccess);
break;
case DISCONNECTING:
showProfile(true);
- showDisconnectDialog(name);
+ mProgress.setVisibility(View.VISIBLE);
+ enableActionButton(null);
mStateView.setText(R.string.state_disconnecting);
mStateView.setTextColor(mColorStateBase);
break;
@@ -254,10 +254,10 @@ public class VpnStateFragment extends Fragment implements VpnStateListener
{ /* we already show the dialog */
return true;
}
- hideProgressDialog();
mProfileNameView.setText(name);
showProfile(true);
- enableActionButton(false);
+ mProgress.setVisibility(View.GONE);
+ enableActionButton(null);
mStateView.setText(R.string.state_error);
mStateView.setTextColor(mColorStateError);
switch (error)
@@ -294,20 +294,11 @@ public class VpnStateFragment extends Fragment implements VpnStateListener
mProfileNameView.setVisibility(show ? View.VISIBLE : View.GONE);
}
- private void enableActionButton(boolean enable)
+ private void enableActionButton(String text)
{
- mActionButton.setEnabled(enable);
- mActionButton.setVisibility(enable ? View.VISIBLE : View.GONE);
- }
-
- private void hideProgressDialog()
- {
- if (mProgressDialog != null)
- {
- mProgressDialog.dismiss();
- mProgressDialog = null;
- mDisconnectDialog = mConnectDialog = null;
- }
+ mActionButton.setText(text);
+ mActionButton.setEnabled(text != null);
+ mActionButton.setVisibility(text != null ? View.VISIBLE : View.GONE);
}
private void hideErrorDialog()
@@ -329,50 +320,6 @@ public class VpnStateFragment extends Fragment implements VpnStateListener
updateView();
}
- private void showConnectDialog(String profile, String gateway)
- {
- if (mConnectDialog != null)
- { /* already showing the dialog */
- return;
- }
- hideProgressDialog();
- mConnectDialog = new ProgressDialog(getActivity());
- mConnectDialog.setTitle(String.format(getString(R.string.connecting_title), profile));
- mConnectDialog.setMessage(String.format(getString(R.string.connecting_message), gateway));
- mConnectDialog.setIndeterminate(true);
- mConnectDialog.setCancelable(false);
- mConnectDialog.setButton(DialogInterface.BUTTON_NEGATIVE,
- getString(android.R.string.cancel),
- new DialogInterface.OnClickListener()
- {
- @Override
- public void onClick(DialogInterface dialog, int which)
- {
- if (mService != null)
- {
- mService.disconnect();
- }
- }
- });
- mConnectDialog.show();
- mProgressDialog = mConnectDialog;
- }
-
- private void showDisconnectDialog(String profile)
- {
- if (mDisconnectDialog != null)
- { /* already showing the dialog */
- return;
- }
- hideProgressDialog();
- mDisconnectDialog = new ProgressDialog(getActivity());
- mDisconnectDialog.setMessage(getString(R.string.state_disconnecting));
- mDisconnectDialog.setIndeterminate(true);
- mDisconnectDialog.setCancelable(false);
- mDisconnectDialog.show();
- mProgressDialog = mDisconnectDialog;
- }
-
private void showErrorDialog(int textid)
{
final List<RemediationInstruction> instructions = mService.getRemediationInstructions();
diff --git a/src/frontends/android/app/src/main/res/layout/vpn_state_fragment.xml b/src/frontends/android/app/src/main/res/layout/vpn_state_fragment.xml
index e347c4c4b..86a2f1321 100644
--- a/src/frontends/android/app/src/main/res/layout/vpn_state_fragment.xml
+++ b/src/frontends/android/app/src/main/res/layout/vpn_state_fragment.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
- Copyright (C) 2012-2013 Tobias Brunner
+ Copyright (C) 2012-2016 Tobias Brunner
Copyright (C) 2012 Giuliano Grassi
Copyright (C) 2012 Ralf Sager
Hochschule fuer Technik Rapperswil
@@ -72,6 +72,17 @@
</TextView>
</GridLayout>
+ <ProgressBar
+ android:id="@+id/progress"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_marginBottom="10dp"
+ android:layout_marginLeft="20dp"
+ android:layout_marginRight="20dp"
+ android:indeterminate="true"
+ android:visibility="gone"
+ style="@style/Widget.AppCompat.ProgressBar.Horizontal" />
+
<Button
android:id="@+id/action"
android:layout_width="match_parent"
diff --git a/src/frontends/android/app/src/main/res/values-de/strings.xml b/src/frontends/android/app/src/main/res/values-de/strings.xml
index 8b6ff9593..076bea3d3 100644
--- a/src/frontends/android/app/src/main/res/values-de/strings.xml
+++ b/src/frontends/android/app/src/main/res/values-de/strings.xml
@@ -122,8 +122,6 @@
<string name="error_auth_failed">Benutzerauthentifizierung ist fehlgeschlagen.</string>
<string name="error_assessment_failed">Sicherheitsassessment ist fehlgeschlagen.</string>
<string name="error_generic">Unbekannter Fehler während des Verbindens.</string>
- <string name="connecting_title">Verbinden: %1$s</string>
- <string name="connecting_message">Verbinde mit \""%1$s\".</string>
<string name="vpn_connected">VPN verbunden</string>
<string name="vpn_profile_connected">Dieses VPN Profil ist momentan verbunden!</string>
<string name="reconnect">Neu verbinden</string>
diff --git a/src/frontends/android/app/src/main/res/values-pl/strings.xml b/src/frontends/android/app/src/main/res/values-pl/strings.xml
index 26387190b..6a1e3460f 100644
--- a/src/frontends/android/app/src/main/res/values-pl/strings.xml
+++ b/src/frontends/android/app/src/main/res/values-pl/strings.xml
@@ -122,8 +122,6 @@
<string name="error_auth_failed">Błąd przy autoryzacji użytkownika</string>
<string name="error_assessment_failed">Security assessment failed.</string>
<string name="error_generic">Nieznany błąd w czasie połączenia</string>
- <string name="connecting_title">Łączenie: %1$s</string>
- <string name="connecting_message">Tworzenie tunelu VPN z \""%1$s\".</string>
<string name="vpn_connected">Połączenie z VPN</string>
<string name="vpn_profile_connected">Ten profil VPN jest obecnie połaczony!</string>
<string name="reconnect">Połączyć ponownie</string>
diff --git a/src/frontends/android/app/src/main/res/values-ru/strings.xml b/src/frontends/android/app/src/main/res/values-ru/strings.xml
index ec9d66334..098bdf923 100644
--- a/src/frontends/android/app/src/main/res/values-ru/strings.xml
+++ b/src/frontends/android/app/src/main/res/values-ru/strings.xml
@@ -119,8 +119,6 @@
<string name="error_auth_failed">Ошибка авторизации пользователя.</string>
<string name="error_assessment_failed">Security assessment failed.</string>
<string name="error_generic">Неизвестная ошибка.</string>
- <string name="connecting_title">Подключение: %1$s</string>
- <string name="connecting_message">Подключение к VPN с \""%1$s\".</string>
<string name="vpn_connected">Соединение с VPN установлено</string>
<string name="vpn_profile_connected">Подключение к этому профилю VPN уже существует!</string>
<string name="reconnect">Переподключить</string>
diff --git a/src/frontends/android/app/src/main/res/values-ua/strings.xml b/src/frontends/android/app/src/main/res/values-ua/strings.xml
index a5e668b84..d6b9772a2 100644
--- a/src/frontends/android/app/src/main/res/values-ua/strings.xml
+++ b/src/frontends/android/app/src/main/res/values-ua/strings.xml
@@ -120,8 +120,6 @@
<string name="error_auth_failed">Помилка аутентифікації користувача.</string>
<string name="error_assessment_failed">Security assessment failed.</string>
<string name="error_generic">Невідома помилка під час підключення.</string>
- <string name="connecting_title">Підключення: %1$s</string>
- <string name="connecting_message">Підключення VPN з \""%1$s\".</string>
<string name="vpn_connected">VPN підключено</string>
<string name="vpn_profile_connected">Цей VPN профіль зараз підключений!</string>
<string name="reconnect">Перепідключитися</string>
diff --git a/src/frontends/android/app/src/main/res/values/strings.xml b/src/frontends/android/app/src/main/res/values/strings.xml
index 2b0049f0a..be90dc98d 100644
--- a/src/frontends/android/app/src/main/res/values/strings.xml
+++ b/src/frontends/android/app/src/main/res/values/strings.xml
@@ -122,8 +122,6 @@
<string name="error_auth_failed">User authentication failed.</string>
<string name="error_assessment_failed">Security assessment failed.</string>
<string name="error_generic">Unspecified failure while connecting.</string>
- <string name="connecting_title">Connecting: %1$s</string>
- <string name="connecting_message">Establishing VPN with \""%1$s\".</string>
<string name="vpn_connected">VPN connected</string>
<string name="vpn_profile_connected">This VPN profile is currently connected!</string>
<string name="reconnect">Reconnect</string>