android: Change progress dialog handling
With the previous code the dialog sometimes was hidden for a short while before it got reopened.
This commit is contained in:
@@ -57,6 +57,8 @@ public class VpnStateFragment extends Fragment implements VpnStateListener
|
|||||||
private TextView mStateView;
|
private TextView mStateView;
|
||||||
private int stateBaseColor;
|
private int stateBaseColor;
|
||||||
private Button mActionButton;
|
private Button mActionButton;
|
||||||
|
private ProgressDialog mConnectDialog;
|
||||||
|
private ProgressDialog mDisconnectDialog;
|
||||||
private ProgressDialog mProgressDialog;
|
private ProgressDialog mProgressDialog;
|
||||||
private AlertDialog mErrorDialog;
|
private AlertDialog mErrorDialog;
|
||||||
private long mErrorConnectionID;
|
private long mErrorConnectionID;
|
||||||
@@ -192,7 +194,6 @@ public class VpnStateFragment extends Fragment implements VpnStateListener
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
hideProgressDialog();
|
|
||||||
enableActionButton(false);
|
enableActionButton(false);
|
||||||
mProfileNameView.setText(name);
|
mProfileNameView.setText(name);
|
||||||
|
|
||||||
@@ -200,6 +201,7 @@ public class VpnStateFragment extends Fragment implements VpnStateListener
|
|||||||
{
|
{
|
||||||
case DISABLED:
|
case DISABLED:
|
||||||
showProfile(false);
|
showProfile(false);
|
||||||
|
hideProgressDialog();
|
||||||
mStateView.setText(R.string.state_disabled);
|
mStateView.setText(R.string.state_disabled);
|
||||||
mStateView.setTextColor(stateBaseColor);
|
mStateView.setTextColor(stateBaseColor);
|
||||||
break;
|
break;
|
||||||
@@ -211,6 +213,7 @@ public class VpnStateFragment extends Fragment implements VpnStateListener
|
|||||||
break;
|
break;
|
||||||
case CONNECTED:
|
case CONNECTED:
|
||||||
showProfile(true);
|
showProfile(true);
|
||||||
|
hideProgressDialog();
|
||||||
enableActionButton(true);
|
enableActionButton(true);
|
||||||
mStateView.setText(R.string.state_connected);
|
mStateView.setText(R.string.state_connected);
|
||||||
mStateView.setTextColor(getResources().getColor(R.color.success_text));
|
mStateView.setTextColor(getResources().getColor(R.color.success_text));
|
||||||
@@ -295,6 +298,7 @@ public class VpnStateFragment extends Fragment implements VpnStateListener
|
|||||||
{
|
{
|
||||||
mProgressDialog.dismiss();
|
mProgressDialog.dismiss();
|
||||||
mProgressDialog = null;
|
mProgressDialog = null;
|
||||||
|
mDisconnectDialog = mConnectDialog = null;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -315,33 +319,46 @@ public class VpnStateFragment extends Fragment implements VpnStateListener
|
|||||||
|
|
||||||
private void showConnectDialog(String profile, String gateway)
|
private void showConnectDialog(String profile, String gateway)
|
||||||
{
|
{
|
||||||
mProgressDialog = new ProgressDialog(getActivity());
|
if (mConnectDialog != null)
|
||||||
mProgressDialog.setTitle(String.format(getString(R.string.connecting_title), profile));
|
{ /* already showing the dialog */
|
||||||
mProgressDialog.setMessage(String.format(getString(R.string.connecting_message), gateway));
|
return;
|
||||||
mProgressDialog.setIndeterminate(true);
|
}
|
||||||
mProgressDialog.setCancelable(false);
|
hideProgressDialog();
|
||||||
mProgressDialog.setButton(getString(android.R.string.cancel),
|
mConnectDialog = new ProgressDialog(getActivity());
|
||||||
new DialogInterface.OnClickListener()
|
mConnectDialog.setTitle(String.format(getString(R.string.connecting_title), profile));
|
||||||
{
|
mConnectDialog.setMessage(String.format(getString(R.string.connecting_message), gateway));
|
||||||
@Override
|
mConnectDialog.setIndeterminate(true);
|
||||||
public void onClick(DialogInterface dialog, int which)
|
mConnectDialog.setCancelable(false);
|
||||||
{
|
mConnectDialog.setButton(DialogInterface.BUTTON_NEGATIVE,
|
||||||
if (mService != null)
|
getString(android.R.string.cancel),
|
||||||
{
|
new DialogInterface.OnClickListener()
|
||||||
mService.disconnect();
|
{
|
||||||
}
|
@Override
|
||||||
}
|
public void onClick(DialogInterface dialog, int which)
|
||||||
});
|
{
|
||||||
mProgressDialog.show();
|
if (mService != null)
|
||||||
|
{
|
||||||
|
mService.disconnect();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
mConnectDialog.show();
|
||||||
|
mProgressDialog = mConnectDialog;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void showDisconnectDialog(String profile)
|
private void showDisconnectDialog(String profile)
|
||||||
{
|
{
|
||||||
mProgressDialog = new ProgressDialog(getActivity());
|
if (mDisconnectDialog != null)
|
||||||
mProgressDialog.setMessage(getString(R.string.state_disconnecting));
|
{ /* already showing the dialog */
|
||||||
mProgressDialog.setIndeterminate(true);
|
return;
|
||||||
mProgressDialog.setCancelable(false);
|
}
|
||||||
mProgressDialog.show();
|
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)
|
private void showErrorDialog(int textid)
|
||||||
|
|||||||
Reference in New Issue
Block a user