Merge "Disconnect if the user cancels the no/partial connectivity dialog" into qt-dev
am: 2bcfecdb21
Change-Id: I556ca5d18af9ea673216d63bef71ee9ca66d66ad
This commit is contained in:
@@ -52,6 +52,7 @@ public final class WifiNoInternetDialog extends AlertActivity implements
|
||||
private ConnectivityManager.NetworkCallback mNetworkCallback;
|
||||
private CheckBox mAlwaysAllow;
|
||||
private String mAction;
|
||||
private boolean mButtonClicked;
|
||||
|
||||
private boolean isKnownAction(Intent intent) {
|
||||
return intent.getAction().equals(ACTION_PROMPT_UNVALIDATED)
|
||||
@@ -169,14 +170,31 @@ public final class WifiNoInternetDialog extends AlertActivity implements
|
||||
mCM.unregisterNetworkCallback(mNetworkCallback);
|
||||
mNetworkCallback = null;
|
||||
}
|
||||
|
||||
// If the user exits the no Internet or partial connectivity dialog without taking any
|
||||
// action, disconnect the network, because once the dialog has been dismissed there is no
|
||||
// way to use the network.
|
||||
//
|
||||
// Unfortunately, AlertDialog does not seem to offer any good way to get an onCancel or
|
||||
// onDismiss callback. So we implement this ourselves.
|
||||
if (isFinishing() && !mButtonClicked) {
|
||||
if (ACTION_PROMPT_PARTIAL_CONNECTIVITY.equals(mAction)) {
|
||||
mCM.setAcceptPartialConnectivity(mNetwork, false /* accept */, false /* always */);
|
||||
} else if (ACTION_PROMPT_UNVALIDATED.equals(mAction)) {
|
||||
mCM.setAcceptUnvalidated(mNetwork, false /* accept */, false /* always */);
|
||||
}
|
||||
}
|
||||
super.onDestroy();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onClick(DialogInterface dialog, int which) {
|
||||
if (which != BUTTON_NEGATIVE && which != BUTTON_POSITIVE) return;
|
||||
final boolean always = mAlwaysAllow.isChecked();
|
||||
final String what, action;
|
||||
|
||||
mButtonClicked = true;
|
||||
|
||||
if (ACTION_PROMPT_UNVALIDATED.equals(mAction)) {
|
||||
what = "NO_INTERNET";
|
||||
final boolean accept = (which == BUTTON_POSITIVE);
|
||||
|
Reference in New Issue
Block a user