diff --git a/res/values/strings.xml b/res/values/strings.xml index 9fe106b149a..1cd6b8acf5e 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -12735,12 +12735,10 @@ Resetting your internet\u2026 Fix connectivity - - Airplane mode networks available To switch networks, disconnect ethernet - - Airplane mode networks + + Wi\u2011Fi is turned on diff --git a/src/com/android/settings/network/InternetPreferenceController.java b/src/com/android/settings/network/InternetPreferenceController.java index 2fe9c0adf16..f64ed30b2c5 100644 --- a/src/com/android/settings/network/InternetPreferenceController.java +++ b/src/com/android/settings/network/InternetPreferenceController.java @@ -124,12 +124,6 @@ public class InternetPreferenceController extends AbstractPreferenceController i return; } - if (mInternetType == INTERNET_NETWORKS_AVAILABLE - && mInternetUpdater.isApmNetworksAvailable()) { - mPreference.setSummary(R.string.airplane_mode_network_available); - return; - } - final @IdRes int summary = sSummaryMap.get(mInternetType); if (summary != 0) { mPreference.setSummary(summary); diff --git a/src/com/android/settings/network/InternetUpdater.java b/src/com/android/settings/network/InternetUpdater.java index 3bd1e7b2204..2f704e72a74 100644 --- a/src/com/android/settings/network/InternetUpdater.java +++ b/src/com/android/settings/network/InternetUpdater.java @@ -73,9 +73,9 @@ public class InternetUpdater implements AirplaneModeEnabler.OnAirplaneModeChange default void onAirplaneModeChanged(boolean isAirplaneModeOn) {}; /** - * Called when airplane mode networks state is changed. + * Called when Wi-Fi enabled is changed. */ - default void onAirplaneModeNetworksChanged(boolean available) {}; + default void onWifiEnabledChanged(boolean enabled) {}; } /** @@ -157,9 +157,8 @@ public class InternetUpdater implements AirplaneModeEnabler.OnAirplaneModeChange @Override public void onReceive(Context context, Intent intent) { fetchActiveNetwork(); - if (mListener != null && mAirplaneModeEnabler.isAirplaneModeOn()) { - mListener.onAirplaneModeNetworksChanged( - mWifiManager.getWifiState() == WifiManager.WIFI_STATE_ENABLED); + if (mListener != null) { + mListener.onWifiEnabledChanged(mWifiManager.isWifiEnabled()); } } }; @@ -272,10 +271,9 @@ public class InternetUpdater implements AirplaneModeEnabler.OnAirplaneModeChange } /** - * Return ture when the APM networks is available. + * Return ture when the Wi-Fi is enabled. */ - public boolean isApmNetworksAvailable() { - return mAirplaneModeEnabler.isAirplaneModeOn() - && (mWifiManager.getWifiState() == WifiManager.WIFI_STATE_ENABLED); + public boolean isWifiEnabled() { + return mWifiManager.isWifiEnabled(); } } diff --git a/src/com/android/settings/panel/InternetConnectivityPanel.java b/src/com/android/settings/panel/InternetConnectivityPanel.java index 46843b04166..4fda0a4f0c3 100644 --- a/src/com/android/settings/panel/InternetConnectivityPanel.java +++ b/src/com/android/settings/panel/InternetConnectivityPanel.java @@ -50,9 +50,8 @@ public class InternetConnectivityPanel implements PanelContent, LifecycleObserve @VisibleForTesting boolean mIsProviderModelEnabled; private PanelContentCallback mCallback; - private InternetUpdater mInternetUpdater; - private boolean mIsAirplaneModeOn; - private boolean mIsApmNetworksAvailable; + @VisibleForTesting + InternetUpdater mInternetUpdater; public static InternetConnectivityPanel create(Context context) { return new InternetConnectivityPanel(context); @@ -62,8 +61,6 @@ public class InternetConnectivityPanel implements PanelContent, LifecycleObserve mContext = context.getApplicationContext(); mIsProviderModelEnabled = Utils.isProviderModelEnabled(mContext); mInternetUpdater = new InternetUpdater(context, null /* Lifecycle */, this); - mIsAirplaneModeOn = mInternetUpdater.isAirplaneModeOn(); - mIsApmNetworksAvailable = mInternetUpdater.isApmNetworksAvailable(); } /** @OnLifecycleEvent(ON_RESUME) */ @@ -90,9 +87,8 @@ public class InternetConnectivityPanel implements PanelContent, LifecycleObserve @Override public CharSequence getTitle() { if (mIsProviderModelEnabled) { - return mContext.getText(mIsApmNetworksAvailable - ? R.string.airplane_mode_network_panel_title - : R.string.provider_internet_settings); + return mContext.getText(mInternetUpdater.isAirplaneModeOn() + ? R.string.airplane_mode : R.string.provider_internet_settings); } return mContext.getText(R.string.internet_connectivity_panel_title); } @@ -102,8 +98,9 @@ public class InternetConnectivityPanel implements PanelContent, LifecycleObserve */ @Override public CharSequence getSubTitle() { - if (mIsProviderModelEnabled && mIsAirplaneModeOn && !mIsApmNetworksAvailable) { - return mContext.getText(R.string.condition_airplane_title); + if (mIsProviderModelEnabled && mInternetUpdater.isAirplaneModeOn() + && mInternetUpdater.isWifiEnabled()) { + return mContext.getText(R.string.wifi_is_turned_on_subtitle); } return null; } @@ -136,7 +133,7 @@ public class InternetConnectivityPanel implements PanelContent, LifecycleObserve @Override public CharSequence getCustomizedButtonTitle() { - if (mIsAirplaneModeOn && !mIsApmNetworksAvailable) { + if (mInternetUpdater.isAirplaneModeOn() && !mInternetUpdater.isWifiEnabled()) { return null; } return mContext.getText(R.string.settings_button); @@ -162,19 +159,14 @@ public class InternetConnectivityPanel implements PanelContent, LifecycleObserve */ @Override public void onAirplaneModeChanged(boolean isAirplaneModeOn) { - if (!isAirplaneModeOn) { - mIsApmNetworksAvailable = false; - } - mIsAirplaneModeOn = isAirplaneModeOn; updatePanelTitle(); } /** - * Called when airplane mode networks state is changed. + * Called when Wi-Fi enabled is changed. */ @Override - public void onAirplaneModeNetworksChanged(boolean available) { - mIsApmNetworksAvailable = available; + public void onWifiEnabledChanged(boolean enabled) { updatePanelTitle(); } @@ -183,16 +175,14 @@ public class InternetConnectivityPanel implements PanelContent, LifecycleObserve return; } - if (mIsAirplaneModeOn && !mIsApmNetworksAvailable) { - // When the airplane mode is on. - // Title: Internet - // Sub-Title: Airplane mode is on - // Settings button: Hide + if (mInternetUpdater.isAirplaneModeOn() && mInternetUpdater.isWifiEnabled()) { + // When the airplane mode is on and Wi-Fi is enabled. + // Title: Airplane mode + // Sub-Title: Wi-Fi is turned on mCallback.onHeaderChanged(); } else { - // Except for airplane mode on. - // Title: Airplane mode networks / Internet - // Settings button: Show + // Other situations. + // Title: Airplane mode / Internet mCallback.onTitleChanged(); } mCallback.onCustomizedButtonStateChanged(); diff --git a/tests/unit/src/com/android/settings/panel/InternetConnectivityPanelTest.java b/tests/unit/src/com/android/settings/panel/InternetConnectivityPanelTest.java index 5d95d9a5fa1..ba5ee8e3263 100644 --- a/tests/unit/src/com/android/settings/panel/InternetConnectivityPanelTest.java +++ b/tests/unit/src/com/android/settings/panel/InternetConnectivityPanelTest.java @@ -19,6 +19,7 @@ package com.android.settings.panel; import static com.google.common.truth.Truth.assertThat; import static org.mockito.Mockito.clearInvocations; +import static org.mockito.Mockito.doReturn; import static org.mockito.Mockito.spy; import static org.mockito.Mockito.verify; @@ -29,6 +30,7 @@ import androidx.test.core.app.ApplicationProvider; import androidx.test.ext.junit.runners.AndroidJUnit4; import com.android.settings.network.AirplaneModePreferenceController; +import com.android.settings.network.InternetUpdater; import com.android.settings.slices.CustomSliceRegistry; import com.android.settings.testutils.ResourcesUtils; @@ -47,10 +49,10 @@ public class InternetConnectivityPanelTest { public static final String TITLE_INTERNET = ResourcesUtils.getResourcesString( ApplicationProvider.getApplicationContext(), "provider_internet_settings"); - public static final String TITLE_APM_NETWORKS = ResourcesUtils.getResourcesString( - ApplicationProvider.getApplicationContext(), "airplane_mode_network_panel_title"); - public static final String SUBTITLE_APM_IS_ON = ResourcesUtils.getResourcesString( - ApplicationProvider.getApplicationContext(), "condition_airplane_title"); + public static final String TITLE_APM = ResourcesUtils.getResourcesString( + ApplicationProvider.getApplicationContext(), "airplane_mode"); + public static final String SUBTITLE_WIFI_IS_TURNED_ON = ResourcesUtils.getResourcesString( + ApplicationProvider.getApplicationContext(), "wifi_is_turned_on_subtitle"); public static final String BUTTON_SETTINGS = ResourcesUtils.getResourcesString( ApplicationProvider.getApplicationContext(), "settings_button"); @@ -58,6 +60,8 @@ public class InternetConnectivityPanelTest { public final MockitoRule mMocks = MockitoJUnit.rule(); @Mock PanelContentCallback mPanelContentCallback; + @Mock + InternetUpdater mInternetUpdater; private Context mContext; private InternetConnectivityPanel mPanel; @@ -69,73 +73,65 @@ public class InternetConnectivityPanelTest { mPanel = InternetConnectivityPanel.create(mContext); mPanel.registerCallback(mPanelContentCallback); mPanel.mIsProviderModelEnabled = true; + mPanel.mInternetUpdater = mInternetUpdater; } @Test - public void getTitle_apmOnApmNetworksOff_shouldBeInternet() { - mPanel.onAirplaneModeChanged(true); - mPanel.onAirplaneModeNetworksChanged(false); + public void getTitle_apmOff_shouldBeInternet() { + doReturn(false).when(mInternetUpdater).isAirplaneModeOn(); assertThat(mPanel.getTitle()).isEqualTo(TITLE_INTERNET); } @Test - public void getTitle_apmOnApmNetworksOn_shouldBeApmNetworks() { - mPanel.onAirplaneModeChanged(true); - mPanel.onAirplaneModeNetworksChanged(true); + public void getTitle_apmOn_shouldBeApm() { + doReturn(true).when(mInternetUpdater).isAirplaneModeOn(); - assertThat(mPanel.getTitle()).isEqualTo(TITLE_APM_NETWORKS); - } - - @Test - public void getTitle_notInternetApmNetworks_shouldBeInternet() { - mPanel.onAirplaneModeNetworksChanged(false); - - assertThat(mPanel.getTitle()).isEqualTo(TITLE_INTERNET); - } - - @Test - public void getSubTitle_apmOnApmNetworksOff_shouldBeApmIsOn() { - mPanel.onAirplaneModeChanged(true); - mPanel.onAirplaneModeNetworksChanged(false); - - assertThat(mPanel.getSubTitle()).isEqualTo(SUBTITLE_APM_IS_ON); - } - - @Test - public void getSubTitle_apmOnApmNetworksOn_shouldBeNull() { - mPanel.onAirplaneModeChanged(true); - mPanel.onAirplaneModeNetworksChanged(true); - - assertThat(mPanel.getSubTitle()).isNull(); + assertThat(mPanel.getTitle()).isEqualTo(TITLE_APM); } @Test public void getSubTitle_apmOff_shouldBeNull() { - mPanel.onAirplaneModeChanged(false); + doReturn(false).when(mInternetUpdater).isAirplaneModeOn(); assertThat(mPanel.getSubTitle()).isNull(); } @Test - public void getCustomizedButtonTitle_apmOnApmNetworksOff_shouldBeNull() { - mPanel.onAirplaneModeChanged(true); - mPanel.onAirplaneModeNetworksChanged(false); + public void getSubTitle_apmOnWifiOff_shouldBeNull() { + doReturn(true).when(mInternetUpdater).isAirplaneModeOn(); + doReturn(false).when(mInternetUpdater).isWifiEnabled(); - assertThat(mPanel.getCustomizedButtonTitle()).isNull(); + assertThat(mPanel.getSubTitle()).isNull(); } @Test - public void getCustomizedButtonTitle_apmOnApmNetworksOn_shouldBeSettings() { - mPanel.onAirplaneModeChanged(true); - mPanel.onAirplaneModeNetworksChanged(true); + public void getSubTitle_apmOnWifiOn_shouldWifiIsTurnedOn() { + doReturn(true).when(mInternetUpdater).isAirplaneModeOn(); + doReturn(true).when(mInternetUpdater).isWifiEnabled(); + + assertThat(mPanel.getSubTitle()).isEqualTo(SUBTITLE_WIFI_IS_TURNED_ON); + } + + @Test + public void getCustomizedButtonTitle_apmOff_shouldBeSettings() { + doReturn(false).when(mInternetUpdater).isAirplaneModeOn(); assertThat(mPanel.getCustomizedButtonTitle()).isEqualTo(BUTTON_SETTINGS); } @Test - public void getCustomizedButtonTitle_apmOff_shouldBeSettings() { - mPanel.onAirplaneModeChanged(false); + public void getCustomizedButtonTitle_apmOnWifiOff_shouldBeNull() { + doReturn(true).when(mInternetUpdater).isAirplaneModeOn(); + doReturn(false).when(mInternetUpdater).isWifiEnabled(); + + assertThat(mPanel.getCustomizedButtonTitle()).isNull(); + } + + @Test + public void getCustomizedButtonTitle_apmOnWifiOn_shouldBeSettings() { + doReturn(true).when(mInternetUpdater).isAirplaneModeOn(); + doReturn(true).when(mInternetUpdater).isWifiEnabled(); assertThat(mPanel.getCustomizedButtonTitle()).isEqualTo(BUTTON_SETTINGS); } @@ -166,46 +162,86 @@ public class InternetConnectivityPanelTest { } @Test - public void onAirplaneModeOn_apmNetworksOff_changeHeaderAndHideSettings() { - mPanel.onAirplaneModeNetworksChanged(false); + public void onAirplaneModeOn_apmOff_onTitleChanged() { + doReturn(false).when(mInternetUpdater).isAirplaneModeOn(); + clearInvocations(mPanelContentCallback); + + mPanel.onAirplaneModeChanged(false); + + verify(mPanelContentCallback).onTitleChanged(); + } + + @Test + public void onAirplaneModeOn_apmOnWifiOff_onTitleChanged() { + doReturn(true).when(mInternetUpdater).isAirplaneModeOn(); + doReturn(false).when(mInternetUpdater).isWifiEnabled(); + clearInvocations(mPanelContentCallback); + + mPanel.onAirplaneModeChanged(true); + + verify(mPanelContentCallback).onTitleChanged(); + } + + @Test + public void onAirplaneModeOn_apmOnWifiOn_onHeaderChanged() { + doReturn(true).when(mInternetUpdater).isAirplaneModeOn(); + doReturn(true).when(mInternetUpdater).isWifiEnabled(); clearInvocations(mPanelContentCallback); mPanel.onAirplaneModeChanged(true); verify(mPanelContentCallback).onHeaderChanged(); - verify(mPanelContentCallback).onCustomizedButtonStateChanged(); } @Test - public void onAirplaneModeOn_apmNetworksOn_changeTitleAndShowSettings() { - mPanel.onAirplaneModeNetworksChanged(true); + public void onAirplaneModeOn_onCustomizedButtonStateChanged() { + doReturn(true).when(mInternetUpdater).isAirplaneModeOn(); clearInvocations(mPanelContentCallback); mPanel.onAirplaneModeChanged(true); - verify(mPanelContentCallback).onTitleChanged(); verify(mPanelContentCallback).onCustomizedButtonStateChanged(); } @Test - public void onAirplaneModeNetworksOn_apmOff_changeTitleAndShowSettings() { - mPanel.onAirplaneModeChanged(false); + public void onWifiEnabledChanged_apmOff_onTitleChanged() { + doReturn(false).when(mInternetUpdater).isAirplaneModeOn(); clearInvocations(mPanelContentCallback); - mPanel.onAirplaneModeNetworksChanged(true); + mPanel.onWifiEnabledChanged(false); verify(mPanelContentCallback).onTitleChanged(); - verify(mPanelContentCallback).onCustomizedButtonStateChanged(); } @Test - public void onAirplaneModeNetworksOff_apmOff_changeTitleAndShowSettings() { - mPanel.onAirplaneModeChanged(false); + public void onWifiEnabledChanged_apmOnWifiOff_onTitleChanged() { + doReturn(true).when(mInternetUpdater).isAirplaneModeOn(); + doReturn(false).when(mInternetUpdater).isWifiEnabled(); clearInvocations(mPanelContentCallback); - mPanel.onAirplaneModeNetworksChanged(false); + mPanel.onWifiEnabledChanged(true); verify(mPanelContentCallback).onTitleChanged(); + } + + @Test + public void onWifiEnabledChanged_apmOnWifiOn_onHeaderChanged() { + doReturn(true).when(mInternetUpdater).isAirplaneModeOn(); + doReturn(true).when(mInternetUpdater).isWifiEnabled(); + clearInvocations(mPanelContentCallback); + + mPanel.onWifiEnabledChanged(true); + + verify(mPanelContentCallback).onHeaderChanged(); + } + + @Test + public void onWifiEnabledChanged_onCustomizedButtonStateChanged() { + doReturn(true).when(mInternetUpdater).isWifiEnabled(); + clearInvocations(mPanelContentCallback); + + mPanel.onWifiEnabledChanged(true); + verify(mPanelContentCallback).onCustomizedButtonStateChanged(); } }