[Provider Model] Show connected networks in APM/APM networks

- Separate APM and APM network types from other Internet types because
they can coexist at the same time.

- Show no internet icon in airplane-mode networks.

- Show connected non-carrier(Wi-Fi) network in airplane-mode networks.

- Show connected Ethernet network when airplane mode on.

- Screenshot:
  https://screenshot.googleplex.com/cr3eWNLMEuJ8zvP
  https://screenshot.googleplex.com/6DiMqKBBnBoxxhN

Bug: 180778141
Bug: 180778839
Bug: 179106406
Test: manual test
atest -c ConnectedEthernetNetworkControllerTest \
         InternetConnectivityPanelTest \
         InternetPreferenceControllerTest \
         InternetUpdaterTest

Change-Id: I861d5ce879facbb61dfdc5b7be943662d55bdcca
This commit is contained in:
Weng Su
2021-02-20 22:32:13 +08:00
parent 1ebb7fa010
commit f1489b51a3
11 changed files with 330 additions and 201 deletions

View File

@@ -16,10 +16,10 @@
package com.android.settings.network;
import static com.android.settings.network.InternetUpdater.INTERNET_APM;
import static com.android.settings.network.InternetUpdater.INTERNET_APM_NETWORKS;
import static com.android.settings.network.InternetUpdater.INTERNET_CELLULAR;
import static com.android.settings.network.InternetUpdater.INTERNET_ETHERNET;
import static com.android.settings.network.InternetUpdater.INTERNET_NETWORKS_AVAILABLE;
import static com.android.settings.network.InternetUpdater.INTERNET_OFF;
import static com.android.settings.network.InternetUpdater.INTERNET_WIFI;
import static com.google.common.truth.Truth.assertThat;
@@ -77,15 +77,15 @@ public class ConnectedEthernetNetworkControllerTest {
}
@Test
public void isAvailable_internetApm_shouldBeFalse() {
mController.onInternetTypeChanged(INTERNET_APM);
public void isAvailable_internetOff_shouldBeFalse() {
mController.onInternetTypeChanged(INTERNET_OFF);
assertThat(mController.isAvailable()).isFalse();
}
@Test
public void isAvailable_internetApmNetworks_shouldBeFalse() {
mController.onInternetTypeChanged(INTERNET_APM_NETWORKS);
public void isAvailable_internetNetworksAvailable_shouldBeFalse() {
mController.onInternetTypeChanged(INTERNET_NETWORKS_AVAILABLE);
assertThat(mController.isAvailable()).isFalse();
}

View File

@@ -16,7 +16,7 @@
package com.android.settings.network;
import static com.android.settings.network.InternetUpdater.INTERNET_APM_NETWORKS;
import static com.android.settings.network.InternetUpdater.INTERNET_NETWORKS_AVAILABLE;
import static com.android.settings.network.InternetUpdater.INTERNET_WIFI;
import static com.google.common.truth.Truth.assertThat;
@@ -119,37 +119,24 @@ public class InternetPreferenceControllerTest {
}
@Test
public void mustUseWiFiHelperSummary_internetWifi_updateSummary() {
public void onSummaryChanged_internetWifi_updateSummary() {
mController.onInternetTypeChanged(INTERNET_WIFI);
mController.displayPreference(mScreen);
mController.mustUseWiFiHelperSummary(true /* isWifiConnected */, TEST_SUMMARY);
assertThat(mPreference.getSummary()).isEqualTo(TEST_SUMMARY);
mController.mustUseWiFiHelperSummary(false /* isWifiConnected */, NOT_CONNECTED);
assertThat(mPreference.getSummary()).isEqualTo(NOT_CONNECTED);
}
@Test
public void mustUseWiFiHelperSummary_internetApmNetworksWifiConnected_updateSummary() {
mController.onInternetTypeChanged(INTERNET_APM_NETWORKS);
mController.displayPreference(mScreen);
mController.mustUseWiFiHelperSummary(true /* isWifiConnected */, TEST_SUMMARY);
mController.onSummaryChanged(TEST_SUMMARY);
assertThat(mPreference.getSummary()).isEqualTo(TEST_SUMMARY);
}
@Test
public void mustUseWiFiHelperSummary_internetApmNetworksWifiDisconnected_notUpdateSummary() {
mController.onInternetTypeChanged(INTERNET_APM_NETWORKS);
public void onSummaryChanged_internetNetworksAvailable_notUpdateSummary() {
mController.onInternetTypeChanged(INTERNET_NETWORKS_AVAILABLE);
mController.displayPreference(mScreen);
mPreference.setSummary(NOT_CONNECTED);
mController.mustUseWiFiHelperSummary(false /* isWifiConnected */, NOT_CONNECTED);
mController.onSummaryChanged(TEST_SUMMARY);
assertThat(mPreference.getSummary()).isNotEqualTo(NOT_CONNECTED);
assertThat(mPreference.getSummary()).isNotEqualTo(TEST_SUMMARY);
}
@Test

View File

@@ -20,10 +20,10 @@ import static android.net.NetworkCapabilities.TRANSPORT_CELLULAR;
import static android.net.NetworkCapabilities.TRANSPORT_ETHERNET;
import static android.net.NetworkCapabilities.TRANSPORT_WIFI;
import static com.android.settings.network.InternetUpdater.INTERNET_APM;
import static com.android.settings.network.InternetUpdater.INTERNET_APM_NETWORKS;
import static com.android.settings.network.InternetUpdater.INTERNET_CELLULAR;
import static com.android.settings.network.InternetUpdater.INTERNET_ETHERNET;
import static com.android.settings.network.InternetUpdater.INTERNET_NETWORKS_AVAILABLE;
import static com.android.settings.network.InternetUpdater.INTERNET_OFF;
import static com.android.settings.network.InternetUpdater.INTERNET_WIFI;
import static com.google.common.truth.Truth.assertThat;
@@ -109,26 +109,30 @@ public class InternetUpdaterTest {
@Test
public void update_apmOnWifiOff_getInternetApm() {
doReturn(true).when(mAirplaneModeEnabler).isAirplaneModeOn();
doReturn(false).when(mWifiManager).isWifiEnabled();
doReturn(WifiManager.WIFI_STATE_DISABLED).when(mWifiManager).getWifiState();
mInternetUpdater.mInternetAvailable = false;
mInternetUpdater.update();
assertThat(mInternetUpdater.getInternetType()).isEqualTo(INTERNET_APM);
assertThat(mInternetUpdater.getInternetType()).isEqualTo(INTERNET_OFF);
}
@Test
public void update_apmOnWifiOn_getInternetApmNetworks() {
public void update_apmOnWifiOnNotConnected_getInternetNetworksAvailable() {
doReturn(true).when(mAirplaneModeEnabler).isAirplaneModeOn();
doReturn(WifiManager.WIFI_STATE_ENABLED).when(mWifiManager).getWifiState();
mInternetUpdater.mInternetAvailable = false;
mInternetUpdater.update();
assertThat(mInternetUpdater.getInternetType()).isEqualTo(INTERNET_NETWORKS_AVAILABLE);
}
@Test
public void update_apmOnWifiConnected_getInternetWifi() {
doReturn(true).when(mAirplaneModeEnabler).isAirplaneModeOn();
doReturn(true).when(mWifiManager).isWifiEnabled();
mInternetUpdater.update();
assertThat(mInternetUpdater.getInternetType()).isEqualTo(INTERNET_APM_NETWORKS);
}
@Test
public void update_apmOffWifiConnected_getInternetWifi() {
doReturn(false).when(mAirplaneModeEnabler).isAirplaneModeOn();
mInternetUpdater.mInternetAvailable = true;
mInternetUpdater.mTransport = TRANSPORT_WIFI;
mInternetUpdater.update();
@@ -137,8 +141,9 @@ public class InternetUpdaterTest {
}
@Test
public void update_apmOffCellularConnected_getInternetCellular() {
doReturn(false).when(mAirplaneModeEnabler).isAirplaneModeOn();
public void update_apmOnCellularConnected_getInternetCellular() {
doReturn(true).when(mAirplaneModeEnabler).isAirplaneModeOn();
mInternetUpdater.mInternetAvailable = true;
mInternetUpdater.mTransport = TRANSPORT_CELLULAR;
mInternetUpdater.update();
@@ -147,8 +152,9 @@ public class InternetUpdaterTest {
}
@Test
public void update_apmOffEthernetConnected_getInternetEthernet() {
doReturn(false).when(mAirplaneModeEnabler).isAirplaneModeOn();
public void update_apmOnEthernetConnected_getInternetEthernet() {
doReturn(true).when(mAirplaneModeEnabler).isAirplaneModeOn();
mInternetUpdater.mInternetAvailable = true;
mInternetUpdater.mTransport = TRANSPORT_ETHERNET;
mInternetUpdater.update();

View File

@@ -16,12 +16,6 @@
package com.android.settings.panel;
import static com.android.settings.network.InternetUpdater.INTERNET_APM;
import static com.android.settings.network.InternetUpdater.INTERNET_APM_NETWORKS;
import static com.android.settings.network.InternetUpdater.INTERNET_CELLULAR;
import static com.android.settings.network.InternetUpdater.INTERNET_ETHERNET;
import static com.android.settings.network.InternetUpdater.INTERNET_WIFI;
import static com.google.common.truth.Truth.assertThat;
import static org.mockito.Mockito.clearInvocations;
@@ -78,79 +72,70 @@ public class InternetConnectivityPanelTest {
}
@Test
public void getTitle_internetApmNetworks_shouldBeApmNetworks() {
mPanel.onInternetTypeChanged(INTERNET_APM_NETWORKS);
public void getTitle_apmOnApmNetworksOff_shouldBeInternet() {
mPanel.onAirplaneModeChanged(true);
mPanel.onAirplaneModeNetworksChanged(false);
assertThat(mPanel.getTitle()).isEqualTo(TITLE_INTERNET);
}
@Test
public void getTitle_apmOnApmNetworksOn_shouldBeApmNetworks() {
mPanel.onAirplaneModeChanged(true);
mPanel.onAirplaneModeNetworksChanged(true);
assertThat(mPanel.getTitle()).isEqualTo(TITLE_APM_NETWORKS);
}
@Test
public void getTitle_notInternetApmNetworks_shouldBeInternet() {
mPanel.onInternetTypeChanged(INTERNET_APM);
assertThat(mPanel.getTitle()).isEqualTo(TITLE_INTERNET);
mPanel.onInternetTypeChanged(INTERNET_WIFI);
assertThat(mPanel.getTitle()).isEqualTo(TITLE_INTERNET);
mPanel.onInternetTypeChanged(INTERNET_CELLULAR);
assertThat(mPanel.getTitle()).isEqualTo(TITLE_INTERNET);
mPanel.onInternetTypeChanged(INTERNET_ETHERNET);
mPanel.onAirplaneModeNetworksChanged(false);
assertThat(mPanel.getTitle()).isEqualTo(TITLE_INTERNET);
}
@Test
public void getSubTitle_internetApm_shouldBeApmIsOn() {
mPanel.onInternetTypeChanged(INTERNET_APM);
public void getSubTitle_apmOnApmNetworksOff_shouldBeApmIsOn() {
mPanel.onAirplaneModeChanged(true);
mPanel.onAirplaneModeNetworksChanged(false);
assertThat(mPanel.getSubTitle()).isEqualTo(SUBTITLE_APM_IS_ON);
}
@Test
public void getSubTitle_notinternetApm_shouldBeNull() {
mPanel.onInternetTypeChanged(INTERNET_APM_NETWORKS);
assertThat(mPanel.getSubTitle()).isNull();
mPanel.onInternetTypeChanged(INTERNET_WIFI);
assertThat(mPanel.getSubTitle()).isNull();
mPanel.onInternetTypeChanged(INTERNET_CELLULAR);
assertThat(mPanel.getSubTitle()).isNull();
mPanel.onInternetTypeChanged(INTERNET_ETHERNET);
public void getSubTitle_apmOnApmNetworksOn_shouldBeNull() {
mPanel.onAirplaneModeChanged(true);
mPanel.onAirplaneModeNetworksChanged(true);
assertThat(mPanel.getSubTitle()).isNull();
}
@Test
public void getCustomizedButtonTitle_internetApm_shouldBeNull() {
mPanel.onInternetTypeChanged(INTERNET_APM);
public void getSubTitle_apmOff_shouldBeNull() {
mPanel.onAirplaneModeChanged(false);
assertThat(mPanel.getSubTitle()).isNull();
}
@Test
public void getCustomizedButtonTitle_apmOnApmNetworksOff_shouldBeNull() {
mPanel.onAirplaneModeChanged(true);
mPanel.onAirplaneModeNetworksChanged(false);
assertThat(mPanel.getCustomizedButtonTitle()).isNull();
}
@Test
public void getCustomizedButtonTitle_notInternetApm_shouldBeSettings() {
mPanel.onInternetTypeChanged(INTERNET_APM_NETWORKS);
public void getCustomizedButtonTitle_apmOnApmNetworksOn_shouldBeSettings() {
mPanel.onAirplaneModeChanged(true);
mPanel.onAirplaneModeNetworksChanged(true);
assertThat(mPanel.getCustomizedButtonTitle()).isEqualTo(BUTTON_SETTINGS);
}
mPanel.onInternetTypeChanged(INTERNET_WIFI);
assertThat(mPanel.getCustomizedButtonTitle()).isEqualTo(BUTTON_SETTINGS);
mPanel.onInternetTypeChanged(INTERNET_CELLULAR);
assertThat(mPanel.getCustomizedButtonTitle()).isEqualTo(BUTTON_SETTINGS);
mPanel.onInternetTypeChanged(INTERNET_ETHERNET);
@Test
public void getCustomizedButtonTitle_apmOff_shouldBeSettings() {
mPanel.onAirplaneModeChanged(false);
assertThat(mPanel.getCustomizedButtonTitle()).isEqualTo(BUTTON_SETTINGS);
}
@@ -181,44 +166,46 @@ public class InternetConnectivityPanelTest {
}
@Test
public void onInternetTypeChanged_internetTypeChangedToApm_changeHeaderAndHideSettings() {
mPanel.onInternetTypeChanged(INTERNET_APM_NETWORKS);
public void onAirplaneModeOn_apmNetworksOff_changeHeaderAndHideSettings() {
mPanel.onAirplaneModeNetworksChanged(false);
clearInvocations(mPanelContentCallback);
mPanel.onInternetTypeChanged(INTERNET_APM);
mPanel.onAirplaneModeChanged(true);
verify(mPanelContentCallback).onHeaderChanged();
verify(mPanelContentCallback).onCustomizedButtonStateChanged();
}
@Test
public void onInternetTypeChanged_internetTypeChangedFomApm_changeTitleAndShowSettings() {
mPanel.onInternetTypeChanged(INTERNET_APM);
public void onAirplaneModeOn_apmNetworksOn_changeTitleAndShowSettings() {
mPanel.onAirplaneModeNetworksChanged(true);
clearInvocations(mPanelContentCallback);
mPanel.onInternetTypeChanged(INTERNET_APM_NETWORKS);
mPanel.onAirplaneModeChanged(true);
verify(mPanelContentCallback).onTitleChanged();
verify(mPanelContentCallback).onCustomizedButtonStateChanged();
}
@Test
public void onInternetTypeChanged_internetTypeChangedToApmNetworks_changeTitle() {
mPanel.onInternetTypeChanged(INTERNET_WIFI);
public void onAirplaneModeNetworksOn_apmOff_changeTitleAndShowSettings() {
mPanel.onAirplaneModeChanged(false);
clearInvocations(mPanelContentCallback);
mPanel.onInternetTypeChanged(INTERNET_APM_NETWORKS);
mPanel.onAirplaneModeNetworksChanged(true);
verify(mPanelContentCallback).onTitleChanged();
verify(mPanelContentCallback).onCustomizedButtonStateChanged();
}
@Test
public void onInternetTypeChanged_internetTypeChangedFromApmNetworks_changeTitle() {
mPanel.onInternetTypeChanged(INTERNET_APM_NETWORKS);
public void onAirplaneModeNetworksOff_apmOff_changeTitleAndShowSettings() {
mPanel.onAirplaneModeChanged(false);
clearInvocations(mPanelContentCallback);
mPanel.onInternetTypeChanged(INTERNET_WIFI);
mPanel.onAirplaneModeNetworksChanged(false);
verify(mPanelContentCallback).onTitleChanged();
verify(mPanelContentCallback).onCustomizedButtonStateChanged();
}
}