Show "Disconnect" on forget button for ephemeral network
For app or carrier initiated wifi connections (i.e all "ephemeral networks"), the detailed page of settings should show "Disconnect" instead of "Forget". Bug: 123892605 Test: atest WifiDetailPreferenceControllerTest Change-Id: I1ee7f45ea12fe2ab9ca35cab77de0b1d67efc1db
This commit is contained in:
@@ -158,6 +158,7 @@ public class WifiDetailPreferenceController extends AbstractPreferenceController
|
||||
private final WifiTracker mWifiTracker;
|
||||
private final MetricsFeatureProvider mMetricsFeatureProvider;
|
||||
private boolean mIsOutOfRange;
|
||||
private boolean mIsEphemeral;
|
||||
private boolean mConnected;
|
||||
private int mConnectingState;
|
||||
private WifiManager.ActionListener mConnectListener;
|
||||
@@ -248,12 +249,14 @@ public class WifiDetailPreferenceController extends AbstractPreferenceController
|
||||
|
||||
@Override
|
||||
public void onLost(Network network) {
|
||||
// If support detail page for saved network, should update as disconnect but not exit.
|
||||
if (SavedAccessPointsWifiSettings.usingDetailsFragment(mContext)) {
|
||||
return;
|
||||
}
|
||||
final boolean lostCurrentNetwork = network.equals(mNetwork);
|
||||
if (lostCurrentNetwork) {
|
||||
// If support detail page for saved network, should update as disconnect but not
|
||||
// exit. Except for ephemeral network which should not show on saved network list.
|
||||
if (SavedAccessPointsWifiSettings.usingDetailsFragment(mContext) && !mIsEphemeral) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (network.equals(mNetwork)) {
|
||||
exitActivity();
|
||||
}
|
||||
}
|
||||
@@ -347,6 +350,9 @@ public class WifiDetailPreferenceController extends AbstractPreferenceController
|
||||
mWifiTracker = null;
|
||||
}
|
||||
mConnected = mAccessPoint.isActive();
|
||||
// When lost the network connection, WifiInfo/NetworkInfo will be clear. So causes we
|
||||
// could not check if the AccessPoint is ephemeral. Need to cache it in first.
|
||||
mIsEphemeral = mAccessPoint.isEphemeral();
|
||||
mConnectingState = STATE_NONE;
|
||||
mConnectListener = new WifiManager.ActionListener() {
|
||||
@Override
|
||||
@@ -687,6 +693,10 @@ public class WifiDetailPreferenceController extends AbstractPreferenceController
|
||||
}
|
||||
|
||||
private void refreshButtons() {
|
||||
// Ephemeral network won't be removed permanently, but be putted in blacklist.
|
||||
mButtonsPref.setButton1Text(
|
||||
mIsEphemeral ? R.string.wifi_disconnect_button_text : R.string.forget);
|
||||
|
||||
mButtonsPref.setButton1Visible(canForgetNetwork());
|
||||
mButtonsPref.setButton2Visible(canSignIntoNetwork());
|
||||
mButtonsPref.setButton3Visible(canConnectNetwork());
|
||||
|
Reference in New Issue
Block a user