Loading src/com/android/settings/wifi/ConnectedAccessPointPreference.java +5 −3 Original line number Diff line number Diff line Loading @@ -20,6 +20,7 @@ import android.content.Context; import android.view.View; import androidx.annotation.DrawableRes; import androidx.fragment.app.Fragment; import androidx.preference.PreferenceViewHolder; import com.android.settings.R; Loading @@ -29,15 +30,16 @@ import com.android.settingslib.wifi.AccessPointPreference; /** * An AP preference for the currently connected AP */ public class ConnectedAccessPointPreference extends AccessPointPreference implements public class ConnectedAccessPointPreference extends LongPressAccessPointPreference implements View.OnClickListener { private OnGearClickListener mOnGearClickListener; private boolean mIsCaptivePortal; public ConnectedAccessPointPreference(AccessPoint accessPoint, Context context, UserBadgeCache cache, @DrawableRes int iconResId, boolean forSavedNetworks) { super(accessPoint, context, cache, iconResId, forSavedNetworks); UserBadgeCache cache, @DrawableRes int iconResId, boolean forSavedNetworks, Fragment fragment) { super(accessPoint, context, cache, forSavedNetworks, iconResId, fragment); } @Override Loading src/com/android/settings/wifi/WifiSettings.java +19 −15 Original line number Diff line number Diff line Loading @@ -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; Loading Loading @@ -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; Loading Loading @@ -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(); Loading @@ -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); } } } Loading Loading @@ -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); } /** Loading Loading @@ -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. Loading tests/robotests/src/com/android/settings/wifi/ConnectedAccessPointPreferenceTest.java +1 −1 Original line number Diff line number Diff line Loading @@ -54,7 +54,7 @@ public class ConnectedAccessPointPreferenceTest { mContext = RuntimeEnvironment.application; mConnectedAccessPointPreference = new ConnectedAccessPointPreference(mAccessPoint, mContext, null, 0 /* iconResId */, false /* forSavedNetworks */); null, 0 /* iconResId */, false /* forSavedNetworks */, null /* fragment */); mConnectedAccessPointPreference.setOnGearClickListener(mOnGearClickListener); } Loading tests/robotests/src/com/android/settings/wifi/WifiSettingsTest.java +25 −0 Original line number Diff line number Diff line Loading @@ -37,6 +37,8 @@ import android.os.PowerManager; import android.os.UserManager; import android.provider.Settings; import android.view.ContextMenu; import android.view.View; import androidx.fragment.app.FragmentActivity; import androidx.preference.Preference; Loading @@ -44,6 +46,7 @@ import com.android.settings.R; import com.android.settings.datausage.DataUsagePreference; import com.android.settings.search.SearchIndexableRaw; import com.android.settings.testutils.shadow.ShadowDataUsageUtils; import com.android.settingslib.wifi.AccessPoint; import com.android.settingslib.wifi.WifiTracker; import org.junit.Before; Loading Loading @@ -205,4 +208,26 @@ public class WifiSettingsTest { verify(mDataUsagePreference).setVisible(true); verify(mDataUsagePreference).setTemplate(any(), eq(0) /*subId*/, eq(null) /*service*/); } @Test public void onCreateContextMenu_shouldHaveForgetMenuForConnectedAccessPreference() { final FragmentActivity mockActivity = mock(FragmentActivity.class); when(mockActivity.getApplicationContext()).thenReturn(mContext); when(mWifiSettings.getActivity()).thenReturn(mockActivity); final AccessPoint accessPoint = mock(AccessPoint.class); when(accessPoint.isConnectable()).thenReturn(false); when(accessPoint.isSaved()).thenReturn(true); when(accessPoint.isActive()).thenReturn(true); final ConnectedAccessPointPreference connectedPreference = mWifiSettings.createConnectedAccessPointPreference(accessPoint, mContext); final View view = mock(View.class); when(view.getTag()).thenReturn(connectedPreference); final ContextMenu menu = mock(ContextMenu.class); mWifiSettings.onCreateContextMenu(menu, view, null /* info */); verify(menu).add(anyInt(), eq(WifiSettings.MENU_ID_FORGET), anyInt(), anyInt()); } } Loading
src/com/android/settings/wifi/ConnectedAccessPointPreference.java +5 −3 Original line number Diff line number Diff line Loading @@ -20,6 +20,7 @@ import android.content.Context; import android.view.View; import androidx.annotation.DrawableRes; import androidx.fragment.app.Fragment; import androidx.preference.PreferenceViewHolder; import com.android.settings.R; Loading @@ -29,15 +30,16 @@ import com.android.settingslib.wifi.AccessPointPreference; /** * An AP preference for the currently connected AP */ public class ConnectedAccessPointPreference extends AccessPointPreference implements public class ConnectedAccessPointPreference extends LongPressAccessPointPreference implements View.OnClickListener { private OnGearClickListener mOnGearClickListener; private boolean mIsCaptivePortal; public ConnectedAccessPointPreference(AccessPoint accessPoint, Context context, UserBadgeCache cache, @DrawableRes int iconResId, boolean forSavedNetworks) { super(accessPoint, context, cache, iconResId, forSavedNetworks); UserBadgeCache cache, @DrawableRes int iconResId, boolean forSavedNetworks, Fragment fragment) { super(accessPoint, context, cache, forSavedNetworks, iconResId, fragment); } @Override Loading
src/com/android/settings/wifi/WifiSettings.java +19 −15 Original line number Diff line number Diff line Loading @@ -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; Loading Loading @@ -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; Loading Loading @@ -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(); Loading @@ -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); } } } Loading Loading @@ -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); } /** Loading Loading @@ -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. Loading
tests/robotests/src/com/android/settings/wifi/ConnectedAccessPointPreferenceTest.java +1 −1 Original line number Diff line number Diff line Loading @@ -54,7 +54,7 @@ public class ConnectedAccessPointPreferenceTest { mContext = RuntimeEnvironment.application; mConnectedAccessPointPreference = new ConnectedAccessPointPreference(mAccessPoint, mContext, null, 0 /* iconResId */, false /* forSavedNetworks */); null, 0 /* iconResId */, false /* forSavedNetworks */, null /* fragment */); mConnectedAccessPointPreference.setOnGearClickListener(mOnGearClickListener); } Loading
tests/robotests/src/com/android/settings/wifi/WifiSettingsTest.java +25 −0 Original line number Diff line number Diff line Loading @@ -37,6 +37,8 @@ import android.os.PowerManager; import android.os.UserManager; import android.provider.Settings; import android.view.ContextMenu; import android.view.View; import androidx.fragment.app.FragmentActivity; import androidx.preference.Preference; Loading @@ -44,6 +46,7 @@ import com.android.settings.R; import com.android.settings.datausage.DataUsagePreference; import com.android.settings.search.SearchIndexableRaw; import com.android.settings.testutils.shadow.ShadowDataUsageUtils; import com.android.settingslib.wifi.AccessPoint; import com.android.settingslib.wifi.WifiTracker; import org.junit.Before; Loading Loading @@ -205,4 +208,26 @@ public class WifiSettingsTest { verify(mDataUsagePreference).setVisible(true); verify(mDataUsagePreference).setTemplate(any(), eq(0) /*subId*/, eq(null) /*service*/); } @Test public void onCreateContextMenu_shouldHaveForgetMenuForConnectedAccessPreference() { final FragmentActivity mockActivity = mock(FragmentActivity.class); when(mockActivity.getApplicationContext()).thenReturn(mContext); when(mWifiSettings.getActivity()).thenReturn(mockActivity); final AccessPoint accessPoint = mock(AccessPoint.class); when(accessPoint.isConnectable()).thenReturn(false); when(accessPoint.isSaved()).thenReturn(true); when(accessPoint.isActive()).thenReturn(true); final ConnectedAccessPointPreference connectedPreference = mWifiSettings.createConnectedAccessPointPreference(accessPoint, mContext); final View view = mock(View.class); when(view.getTag()).thenReturn(connectedPreference); final ContextMenu menu = mock(ContextMenu.class); mWifiSettings.onCreateContextMenu(menu, view, null /* info */); verify(menu).add(anyInt(), eq(WifiSettings.MENU_ID_FORGET), anyInt(), anyInt()); } }