Implement context menu for ConnectedAccessPointPreference
1) User wants to long press ConnectedAccessPointPreference to forget network if this
is a captive portal network.
2) Change context menu string
Bug: 113756562
Test: make RunSettingsRoboTests -j32 ROBOTEST_FILTER=com.android.settings.wifi
Change-Id: If5c45c45fe126f627eeb53a6c1873a070ad23ae8
(cherry picked from commit 9f8522565a
)
This commit is contained in:
@@ -71,7 +71,6 @@ import com.android.settings.widget.SummaryUpdater.OnSummaryChangeListener;
|
||||
import com.android.settings.widget.SwitchBarController;
|
||||
import com.android.settings.wifi.details.WifiNetworkDetailsFragment;
|
||||
import com.android.settings.wifi.dpp.WifiDppUtils;
|
||||
import com.android.settings.wifi.savedaccesspoints.SavedAccessPointsWifiSettings;
|
||||
import com.android.settingslib.RestrictedLockUtils;
|
||||
import com.android.settingslib.RestrictedLockUtilsInternal;
|
||||
import com.android.settingslib.search.SearchIndexable;
|
||||
@@ -100,7 +99,8 @@ public class WifiSettings extends RestrictedSettingsFragment
|
||||
private static final String TAG = "WifiSettings";
|
||||
|
||||
private static final int MENU_ID_CONNECT = Menu.FIRST + 6;
|
||||
private static final int MENU_ID_FORGET = Menu.FIRST + 7;
|
||||
@VisibleForTesting
|
||||
static final int MENU_ID_FORGET = Menu.FIRST + 7;
|
||||
private static final int MENU_ID_MODIFY = Menu.FIRST + 8;
|
||||
|
||||
public static final int WIFI_DIALOG_ID = 1;
|
||||
@@ -459,7 +459,7 @@ public class WifiSettings extends RestrictedSettingsFragment
|
||||
((LongPressAccessPointPreference) preference).getAccessPoint();
|
||||
menu.setHeaderTitle(mSelectedAccessPoint.getTitle());
|
||||
if (mSelectedAccessPoint.isConnectable()) {
|
||||
menu.add(Menu.NONE, MENU_ID_CONNECT, 0, R.string.wifi_menu_connect);
|
||||
menu.add(Menu.NONE, MENU_ID_CONNECT, 0 /* order */, R.string.wifi_connect);
|
||||
}
|
||||
|
||||
WifiConfiguration config = mSelectedAccessPoint.getConfig();
|
||||
@@ -468,14 +468,17 @@ public class WifiSettings extends RestrictedSettingsFragment
|
||||
return;
|
||||
}
|
||||
|
||||
if (mSelectedAccessPoint.isSaved() || mSelectedAccessPoint.isEphemeral()) {
|
||||
// Allow forgetting a network if either the network is saved or ephemerally
|
||||
// connected. (In the latter case, "forget" blacklists the network so it won't
|
||||
// be used again, ephemerally).
|
||||
menu.add(Menu.NONE, MENU_ID_FORGET, 0, R.string.wifi_menu_forget);
|
||||
// "forget" for normal saved network. And "disconnect" for ephemeral network because we
|
||||
// could only disconnect it and put it in blacklists so it won't be used again.
|
||||
if (mSelectedAccessPoint.isEphemeral()) {
|
||||
menu.add(Menu.NONE, MENU_ID_FORGET, 0 /* order */,
|
||||
R.string.wifi_disconnect_button_text);
|
||||
} else if (mSelectedAccessPoint.isSaved()) {
|
||||
menu.add(Menu.NONE, MENU_ID_FORGET, 0 /* order */, R.string.forget);
|
||||
}
|
||||
if (mSelectedAccessPoint.isSaved()) {
|
||||
menu.add(Menu.NONE, MENU_ID_MODIFY, 0, R.string.wifi_menu_modify);
|
||||
|
||||
if (mSelectedAccessPoint.isSaved() && !mSelectedAccessPoint.isActive()) {
|
||||
menu.add(Menu.NONE, MENU_ID_MODIFY, 0 /* order */, R.string.wifi_modify);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -783,10 +786,11 @@ public class WifiSettings extends RestrictedSettingsFragment
|
||||
}
|
||||
|
||||
@NonNull
|
||||
private ConnectedAccessPointPreference createConnectedAccessPointPreference(
|
||||
AccessPoint accessPoint) {
|
||||
return new ConnectedAccessPointPreference(accessPoint, getPrefContext(), mUserBadgeCache,
|
||||
R.drawable.ic_wifi_signal_0, false /* forSavedNetworks */);
|
||||
@VisibleForTesting
|
||||
ConnectedAccessPointPreference createConnectedAccessPointPreference(
|
||||
AccessPoint accessPoint, Context context) {
|
||||
return new ConnectedAccessPointPreference(accessPoint, context, mUserBadgeCache,
|
||||
R.drawable.ic_wifi_signal_0, false /* forSavedNetworks */, this);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -839,7 +843,7 @@ public class WifiSettings extends RestrictedSettingsFragment
|
||||
*/
|
||||
private void addConnectedAccessPointPreference(AccessPoint connectedAp) {
|
||||
final ConnectedAccessPointPreference pref =
|
||||
createConnectedAccessPointPreference(connectedAp);
|
||||
createConnectedAccessPointPreference(connectedAp, getPrefContext());
|
||||
registerCaptivePortalNetworkCallback(getCurrentWifiNetwork(), pref);
|
||||
|
||||
// Launch details page or captive portal on click.
|
||||
|
Reference in New Issue
Block a user