Fix the retry the vpn connection issue.

Fix the issue of vpn connection retry if back button is pressed
and the profile state is still in connecting.

bug: 3278489
Change-Id: I8b51fdd65b2fdd8cbe4fb43afd916f1966b77b67
diff --git a/src/com/android/settings/vpn/VpnSettings.java b/src/com/android/settings/vpn/VpnSettings.java
index 4dfe21a..ea16f9d 100644
--- a/src/com/android/settings/vpn/VpnSettings.java
+++ b/src/com/android/settings/vpn/VpnSettings.java
@@ -216,23 +216,27 @@
         }
     }
 
+    private class ConnectDialog extends AlertDialog {
+        public ConnectDialog(Context context) {
+            super(context);
+            setTitle(String.format(getString(R.string.vpn_connect_to),
+                    mActiveProfile.getName()));
+            setButton(DialogInterface.BUTTON_POSITIVE,
+                    getString(R.string.vpn_connect_button),
+                    VpnSettings.this);
+            setButton(DialogInterface.BUTTON_NEGATIVE,
+                    getString(android.R.string.cancel),
+                    VpnSettings.this);
+            setView(mConnectingActor.createConnectView());
+        }
+        public void onBackPressed() {
+            changeState(mActiveProfile, VpnState.IDLE);
+            super.onBackPressed();
+        }
+    }
+
     private Dialog createConnectDialog() {
-        final Activity activity = getActivity();
-        return new AlertDialog.Builder(activity)
-                .setView(mConnectingActor.createConnectView())
-                .setTitle(String.format(activity.getString(R.string.vpn_connect_to),
-                        mActiveProfile.getName()))
-                .setPositiveButton(activity.getString(R.string.vpn_connect_button),
-                        this)
-                .setNegativeButton(activity.getString(android.R.string.cancel),
-                        this)
-                .setOnCancelListener(new DialogInterface.OnCancelListener() {
-                            public void onCancel(DialogInterface dialog) {
-                                removeDialog(DIALOG_CONNECT);
-                                changeState(mActiveProfile, VpnState.IDLE);
-                            }
-                        })
-                .create();
+        return new ConnectDialog(getActivity());
     }
 
     private Dialog createReconnectDialog(int id) {