diff --git a/src/com/android/settings/core/FeatureFlags.java b/src/com/android/settings/core/FeatureFlags.java index 55b31d2e281..9c008311080 100644 --- a/src/com/android/settings/core/FeatureFlags.java +++ b/src/com/android/settings/core/FeatureFlags.java @@ -26,7 +26,6 @@ public class FeatureFlags { public static final String MOBILE_NETWORK_V2 = "settings_mobile_network_v2"; public static final String NETWORK_INTERNET_V2 = "settings_network_and_internet_v2"; public static final String SLICE_INJECTION = "settings_slice_injection"; - public static final String WIFI_DETAILS_SAVED_SCREEN = "settings_wifi_details_saved_screen"; public static final String WIFI_DETAILS_DATAUSAGE_HEADER = "settings_wifi_details_datausage_header"; } diff --git a/src/com/android/settings/wifi/details/WifiDetailPreferenceController.java b/src/com/android/settings/wifi/details/WifiDetailPreferenceController.java index 79b63837bb6..5706e9be1cf 100644 --- a/src/com/android/settings/wifi/details/WifiDetailPreferenceController.java +++ b/src/com/android/settings/wifi/details/WifiDetailPreferenceController.java @@ -71,7 +71,6 @@ import com.android.settings.wifi.WifiDialog; import com.android.settings.wifi.WifiDialog.WifiDialogListener; import com.android.settings.wifi.WifiUtils; import com.android.settings.wifi.dpp.WifiDppUtils; -import com.android.settings.wifi.savedaccesspoints.SavedAccessPointsWifiSettings; import com.android.settingslib.core.AbstractPreferenceController; import com.android.settingslib.core.instrumentation.MetricsFeatureProvider; import com.android.settingslib.core.lifecycle.Lifecycle; @@ -259,9 +258,9 @@ public class WifiDetailPreferenceController extends AbstractPreferenceController public void onLost(Network network) { 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) { + // Should update as disconnect but not exit. Except for ephemeral network which + // should not show on saved network list. + if (!mIsEphemeral) { return; } @@ -351,16 +350,12 @@ public class WifiDetailPreferenceController extends AbstractPreferenceController mLifecycle = lifecycle; lifecycle.addObserver(this); - if (SavedAccessPointsWifiSettings.usingDetailsFragment(mContext)) { - mWifiTracker = WifiTrackerFactory.create( - mFragment.getActivity(), - mWifiListener, - mLifecycle, - true /*includeSaved*/, - true /*includeScans*/); - } else { - mWifiTracker = null; - } + mWifiTracker = WifiTrackerFactory.create( + mFragment.getActivity(), + mWifiListener, + mLifecycle, + true /*includeSaved*/, + true /*includeScans*/); 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. @@ -545,11 +540,6 @@ public class WifiDetailPreferenceController extends AbstractPreferenceController if (mNetwork == null || mNetworkInfo == null || mWifiInfo == null) { // Once connected, can't get mNetworkInfo immediately, return false and wait for // next time to update UI. - if (SavedAccessPointsWifiSettings.usingDetailsFragment(mContext)) { - return false; - } - - exitActivity(); return false; } @@ -761,8 +751,7 @@ public class WifiDetailPreferenceController extends AbstractPreferenceController private boolean canConnectNetwork() { // Display connect button for disconnected AP even not in the range. - return SavedAccessPointsWifiSettings.usingDetailsFragment(mContext) - && !mAccessPoint.isActive(); + return !mAccessPoint.isActive(); } private void refreshIpLayerInfo() { diff --git a/src/com/android/settings/wifi/savedaccesspoints/SavedAccessPointsPreferenceController.java b/src/com/android/settings/wifi/savedaccesspoints/SavedAccessPointsPreferenceController.java index 40e6e56c5c8..82c60287387 100644 --- a/src/com/android/settings/wifi/savedaccesspoints/SavedAccessPointsPreferenceController.java +++ b/src/com/android/settings/wifi/savedaccesspoints/SavedAccessPointsPreferenceController.java @@ -92,7 +92,7 @@ public class SavedAccessPointsPreferenceController extends BasePreferenceControl @Override public boolean onPreferenceClick(Preference preference) { if (mHost != null) { - mHost.showWifiDialog((AccessPointPreference) preference); + mHost.showWifiPage((AccessPointPreference) preference); } return false; } diff --git a/src/com/android/settings/wifi/savedaccesspoints/SavedAccessPointsWifiSettings.java b/src/com/android/settings/wifi/savedaccesspoints/SavedAccessPointsWifiSettings.java index 3f600e6772d..4daf7da5502 100644 --- a/src/com/android/settings/wifi/savedaccesspoints/SavedAccessPointsWifiSettings.java +++ b/src/com/android/settings/wifi/savedaccesspoints/SavedAccessPointsWifiSettings.java @@ -41,12 +41,10 @@ import com.android.settingslib.wifi.AccessPointPreference; /** * UI to manage saved networks/access points. */ -public class SavedAccessPointsWifiSettings extends DashboardFragment - implements WifiDialog.WifiDialogListener, DialogInterface.OnCancelListener { +public class SavedAccessPointsWifiSettings extends DashboardFragment { private static final String TAG = "SavedAccessPoints"; - private WifiManager mWifiManager; private Bundle mAccessPointSavedState; private AccessPoint mSelectedAccessPoint; @@ -71,8 +69,6 @@ public class SavedAccessPointsWifiSettings extends DashboardFragment @Override public void onAttach(Context context) { super.onAttach(context); - mWifiManager = (WifiManager) getContext() - .getApplicationContext().getSystemService(Context.WIFI_SERVICE); use(SavedAccessPointsPreferenceController.class) .setHost(this); use(SubscribedAccessPointsPreferenceController.class) @@ -90,7 +86,7 @@ public class SavedAccessPointsWifiSettings extends DashboardFragment } } - public void showWifiDialog(@Nullable AccessPointPreference accessPoint) { + public void showWifiPage(@Nullable AccessPointPreference accessPoint) { removeDialog(WifiSettings.WIFI_DIALOG_ID); if (accessPoint != null) { @@ -102,52 +98,18 @@ public class SavedAccessPointsWifiSettings extends DashboardFragment mAccessPointSavedState = null; } - if (usingDetailsFragment(getContext())) { - if (mSelectedAccessPoint == null) { - mSelectedAccessPoint = new AccessPoint(getActivity(), mAccessPointSavedState); - } - final Bundle savedState = new Bundle(); - mSelectedAccessPoint.saveWifiState(savedState); - - new SubSettingLauncher(getContext()) - .setTitleText(mSelectedAccessPoint.getTitle()) - .setDestination(WifiNetworkDetailsFragment.class.getName()) - .setArguments(savedState) - .setSourceMetricsCategory(getMetricsCategory()) - .launch(); - } else { - showDialog(WifiSettings.WIFI_DIALOG_ID); + if (mSelectedAccessPoint == null) { + mSelectedAccessPoint = new AccessPoint(getActivity(), mAccessPointSavedState); } - } + final Bundle savedState = new Bundle(); + mSelectedAccessPoint.saveWifiState(savedState); - @Override - public Dialog onCreateDialog(int dialogId) { - switch (dialogId) { - case WifiSettings.WIFI_DIALOG_ID: - // Modify network - if (mSelectedAccessPoint == null) { - // Restore AP from save state - mSelectedAccessPoint = new AccessPoint(getActivity(), mAccessPointSavedState); - // Reset the saved access point data - mAccessPointSavedState = null; - } - final WifiDialog dialog = WifiDialog.createModal( - getActivity(), this, mSelectedAccessPoint, WifiConfigUiBase.MODE_VIEW); - dialog.setOnCancelListener(this); - - return dialog; - } - return super.onCreateDialog(dialogId); - } - - @Override - public int getDialogMetricsCategory(int dialogId) { - switch (dialogId) { - case WifiSettings.WIFI_DIALOG_ID: - return SettingsEnums.DIALOG_WIFI_SAVED_AP_EDIT; - default: - return 0; - } + new SubSettingLauncher(getContext()) + .setTitleText(mSelectedAccessPoint.getTitle()) + .setDestination(WifiNetworkDetailsFragment.class.getName()) + .setArguments(savedState) + .setSourceMetricsCategory(getMetricsCategory()) + .launch(); } @Override @@ -162,45 +124,6 @@ public class SavedAccessPointsWifiSettings extends DashboardFragment } } - @Override - public void onForget(WifiDialog dialog) { - if (mSelectedAccessPoint != null) { - if (mSelectedAccessPoint.isPasspointConfig()) { - try { - mWifiManager.removePasspointConfiguration( - mSelectedAccessPoint.getPasspointFqdn()); - } catch (RuntimeException e) { - Log.e(TAG, "Failed to remove Passpoint configuration for " - + mSelectedAccessPoint.getConfigName()); - } - if (isSubscriptionsFeatureEnabled()) { - use(SubscribedAccessPointsPreferenceController.class) - .postRefreshSubscribedAccessPoints(); - } else { - use(SavedAccessPointsPreferenceController.class) - .postRefreshSavedAccessPoints(); - } - } else { - // both onSuccess/onFailure will call postRefreshSavedAccessPoints - mWifiManager.forget(mSelectedAccessPoint.getConfig().networkId, - use(SavedAccessPointsPreferenceController.class)); - } - mSelectedAccessPoint = null; - } - } - - @Override - public void onCancel(DialogInterface dialog) { - mSelectedAccessPoint = null; - } - - /** - * Checks if showing WifiNetworkDetailsFragment when clicking saved network item. - */ - public static boolean usingDetailsFragment(Context context) { - return FeatureFlagUtils.isEnabled(context, FeatureFlags.WIFI_DETAILS_SAVED_SCREEN); - } - boolean isSubscriptionsFeatureEnabled() { return FeatureFlagUtils.isEnabled(getContext(), FeatureFlags.MOBILE_NETWORK_V2) && FeatureFlagPersistent.isEnabled(getContext(), FeatureFlags.NETWORK_INTERNET_V2); diff --git a/src/com/android/settings/wifi/savedaccesspoints/SubscribedAccessPointsPreferenceController.java b/src/com/android/settings/wifi/savedaccesspoints/SubscribedAccessPointsPreferenceController.java index 8d31c828f04..048999a5811 100644 --- a/src/com/android/settings/wifi/savedaccesspoints/SubscribedAccessPointsPreferenceController.java +++ b/src/com/android/settings/wifi/savedaccesspoints/SubscribedAccessPointsPreferenceController.java @@ -91,7 +91,7 @@ public class SubscribedAccessPointsPreferenceController extends BasePreferenceCo @Override public boolean onPreferenceClick(Preference preference) { if (mHost != null) { - mHost.showWifiDialog((AccessPointPreference) preference); + mHost.showWifiPage((AccessPointPreference) preference); } return false; } diff --git a/tests/robotests/src/com/android/settings/wifi/details/WifiDetailPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/wifi/details/WifiDetailPreferenceControllerTest.java index 223e81be180..422d75cb22e 100644 --- a/tests/robotests/src/com/android/settings/wifi/details/WifiDetailPreferenceControllerTest.java +++ b/tests/robotests/src/com/android/settings/wifi/details/WifiDetailPreferenceControllerTest.java @@ -290,16 +290,12 @@ public class WifiDetailPreferenceControllerTest { setupMockedPreferenceScreen(); - // Disable saved network detail page feature for this test - FeatureFlagUtils.setEnabled(mContext, FeatureFlags.WIFI_DETAILS_SAVED_SCREEN, false); when(mockAccessPoint.isActive()).thenReturn(true); mController = newWifiDetailPreferenceController(); } private void setUpForConnectedNetwork() { - // Enable saved network detail page feature for this test - FeatureFlagUtils.setEnabled(mContext, FeatureFlags.WIFI_DETAILS_SAVED_SCREEN, true); when(mockAccessPoint.isActive()).thenReturn(true); ArrayList list = new ArrayList<>(); list.add(mockAccessPoint); @@ -312,8 +308,6 @@ public class WifiDetailPreferenceControllerTest { } private void setUpForDisconnectedNetwork() { - // Enable saved network detail page feature for this test - FeatureFlagUtils.setEnabled(mContext, FeatureFlags.WIFI_DETAILS_SAVED_SCREEN, true); when(mockAccessPoint.isActive()).thenReturn(false); ArrayList list = new ArrayList<>(); list.add(mockAccessPoint); @@ -326,8 +320,6 @@ public class WifiDetailPreferenceControllerTest { } private void setUpForNotInRangeNetwork() { - // Enable saved network detail page feature for this test - FeatureFlagUtils.setEnabled(mContext, FeatureFlags.WIFI_DETAILS_SAVED_SCREEN, true); when(mockAccessPoint.isActive()).thenReturn(false); ArrayList list = new ArrayList<>(); list.add(mockAccessPoint); @@ -494,15 +486,6 @@ public class WifiDetailPreferenceControllerTest { .unregisterNetworkCallback(mCallbackCaptor.getValue()); } - @Test - public void entityHeader_shouldHaveIconSet() { - Drawable expectedIcon = mockIconInjector.getIcon(LEVEL); - - displayAndResume(); - - verify(mockHeaderController).setIcon(expectedIcon); - } - @Test public void entityHeader_shouldHaveIconSetForConnectedNetwork() { setUpForConnectedNetwork(); @@ -552,13 +535,6 @@ public class WifiDetailPreferenceControllerTest { verify(mockHeaderController).setSummary(summary); } - @Test - public void signalStrengthPref_shouldHaveIconSet() { - displayAndResume(); - - verify(mockSignalStrengthPref).setIcon(any(Drawable.class)); - } - @Test public void signalStrengthPref_shouldHaveIconSetForConnectedNetwork() { setUpForConnectedNetwork(); @@ -586,16 +562,6 @@ public class WifiDetailPreferenceControllerTest { verify(mockSignalStrengthPref, never()).setIcon(any(Drawable.class)); } - @Test - public void signalStrengthPref_shouldHaveDetailTextSet() { - String expectedStrength = - mContext.getResources().getStringArray(R.array.wifi_signal)[LEVEL]; - - displayAndResume(); - - verify(mockSignalStrengthPref).setSummary(expectedStrength); - } - @Test public void signalStrengthPref_shouldHaveDetailTextSetForConnectedNetwork() { setUpForConnectedNetwork(); @@ -917,17 +883,6 @@ public class WifiDetailPreferenceControllerTest { verify(mockDnsPref).setVisible(false); } - @Test - public void noCurrentNetwork_shouldFinishActivity() { - // If WifiManager#getCurrentNetwork() returns null, then the network is neither connected - // nor connecting and WifiStateMachine has not reached L2ConnectedState. - when(mockWifiManager.getCurrentNetwork()).thenReturn(null); - - displayAndResume(); - - verify(mockActivity).finish(); - } - @Test public void noCurrentNetwork_shouldNotFinishActivityForConnectedNetwork() { // For new feature for display detail page for saved network for disconnected network, @@ -1306,16 +1261,6 @@ public class WifiDetailPreferenceControllerTest { verify(mockWifiManager, times(2)).getConnectionInfo(); } - @Test - public void networkDisconnectedState_shouldFinishActivity() { - displayAndResume(); - - when(mockConnectivityManager.getNetworkInfo(any(Network.class))).thenReturn(null); - mContext.sendBroadcast(new Intent(WifiManager.NETWORK_STATE_CHANGED_ACTION)); - - verify(mockActivity).finish(); - } - @Test public void networkDisconnectedState_shouldNotFinishActivityForConnectedNetwork() { setUpForConnectedNetwork(); @@ -1328,15 +1273,6 @@ public class WifiDetailPreferenceControllerTest { verify(mockActivity, never()).finish(); } - @Test - public void networkOnLost_shouldFinishActivity() { - displayAndResume(); - - mCallbackCaptor.getValue().onLost(mockNetwork); - - verify(mockActivity).finish(); - } - @Test public void networkOnLost_shouldNotFinishActivityForConnectedNetwork() { setUpForConnectedNetwork(); @@ -1428,23 +1364,25 @@ public class WifiDetailPreferenceControllerTest { } @Test - public void testRefreshRssiViews_shouldNotUpdateIfLevelIsSame() { + public void testRefreshRssiViews_shouldNotUpdateIfLevelIsSameForConnectedNetwork() { + setUpForConnectedNetwork(); displayAndResume(); mContext.sendBroadcast(new Intent(WifiManager.RSSI_CHANGED_ACTION)); - verify(mockAccessPoint, times(2)).getLevel(); + verify(mockAccessPoint, times(3)).getLevel(); verify(mockIconInjector, times(1)).getIcon(anyInt()); } @Test - public void testRefreshRssiViews_shouldUpdateOnLevelChange() { + public void testRefreshRssiViews_shouldUpdateOnLevelChangeForConnectedNetwork() { + setUpForConnectedNetwork(); displayAndResume(); when(mockAccessPoint.getLevel()).thenReturn(0); mContext.sendBroadcast(new Intent(WifiManager.RSSI_CHANGED_ACTION)); - verify(mockAccessPoint, times(2)).getLevel(); + verify(mockAccessPoint, times(4)).getLevel(); verify(mockIconInjector, times(2)).getIcon(anyInt()); } diff --git a/tests/robotests/src/com/android/settings/wifi/savedaccesspoints/SavedAccessPointsWifiSettingsTest.java b/tests/robotests/src/com/android/settings/wifi/savedaccesspoints/SavedAccessPointsWifiSettingsTest.java index 746456e7365..cda400585b9 100644 --- a/tests/robotests/src/com/android/settings/wifi/savedaccesspoints/SavedAccessPointsWifiSettingsTest.java +++ b/tests/robotests/src/com/android/settings/wifi/savedaccesspoints/SavedAccessPointsWifiSettingsTest.java @@ -17,46 +17,22 @@ package com.android.settings.wifi.savedaccesspoints; import static com.google.common.truth.Truth.assertThat; - import static org.mockito.Mockito.doReturn; import static org.mockito.Mockito.spy; -import static org.mockito.Mockito.verify; -import static org.mockito.Mockito.when; - -import android.net.wifi.WifiConfiguration; -import android.net.wifi.WifiManager; import com.android.internal.logging.nano.MetricsProto.MetricsEvent; import com.android.settings.R; -import com.android.settings.core.FeatureFlags; -import com.android.settings.development.featureflags.FeatureFlagPersistent; -import com.android.settings.wifi.WifiConfigController; -import com.android.settings.wifi.WifiDialog; import com.android.settingslib.core.AbstractPreferenceController; -import com.android.settingslib.wifi.AccessPoint; - import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.Mock; import org.mockito.MockitoAnnotations; import org.robolectric.RobolectricTestRunner; -import org.robolectric.RuntimeEnvironment; -import org.robolectric.util.ReflectionHelpers; @RunWith(RobolectricTestRunner.class) public class SavedAccessPointsWifiSettingsTest { - @Mock - private WifiManager mWifiManager; - @Mock - private WifiDialog mWifiDialog; - @Mock - private WifiConfigController mConfigController; - @Mock - private WifiConfiguration mWifiConfiguration; - @Mock - private AccessPoint mAccessPoint; @Mock private SubscribedAccessPointsPreferenceController mSubscribedApController; @Mock @@ -73,45 +49,6 @@ public class SavedAccessPointsWifiSettingsTest { .use(SubscribedAccessPointsPreferenceController.class); doReturn(mSavedApController).when(mSettings) .use(SavedAccessPointsPreferenceController.class); - - ReflectionHelpers.setField(mSettings, "mWifiManager", mWifiManager); - - when(mWifiDialog.getController()).thenReturn(mConfigController); - when(mConfigController.getConfig()).thenReturn(mWifiConfiguration); - } - - @Test - public void onForget_isPasspointConfig_shouldRefreshAPList() { - FeatureFlagPersistent.setEnabled(RuntimeEnvironment.application, - FeatureFlags.NETWORK_INTERNET_V2, false); - when(mAccessPoint.isPasspointConfig()).thenReturn(true); - ReflectionHelpers.setField(mSettings, "mSelectedAccessPoint", mAccessPoint); - - mSettings.onForget(null); - - verify(mSavedApController).postRefreshSavedAccessPoints(); - } - - @Test - public void onForget_isPasspointConfig_shouldRefreshSubscribedAPList() { - FeatureFlagPersistent.setEnabled(RuntimeEnvironment.application, - FeatureFlags.NETWORK_INTERNET_V2, true); - when(mAccessPoint.isPasspointConfig()).thenReturn(true); - ReflectionHelpers.setField(mSettings, "mSelectedAccessPoint", mAccessPoint); - - mSettings.onForget(null); - - verify(mSubscribedApController).postRefreshSubscribedAccessPoints(); - } - - @Test - public void onForget_shouldInvokeForgetApi() { - ReflectionHelpers.setField(mSettings, "mSelectedAccessPoint", mAccessPoint); - when(mAccessPoint.getConfig()).thenReturn(mWifiConfiguration); - - mSettings.onForget(mWifiDialog); - - verify(mWifiManager).forget(mWifiConfiguration.networkId, mSavedApController); } @Test