[Provider Model] Add WiFi toggle in internet panel

- Move Wi-Fi toggle from menu button to slice row

- Remove Wi-Fi disconnect action

- Show scanning sub-title once only

Bug: 189912933
Test: manual test
atest -c InternetConnectivityPanelTest \
         ProviderModelSliceTest

Change-Id: I2baf05362f5cd0a8ce94c7b3b2b112a7e9fe6894
This commit is contained in:
Weng Su
2021-06-08 04:43:24 +08:00
parent 9f7564c1b6
commit 04a4060225
5 changed files with 191 additions and 207 deletions

View File

@@ -16,8 +16,6 @@
package com.android.settings.network;
import static com.android.settings.network.ProviderModelSlice.ACTION_TITLE_CONNECT_TO_CARRIER;
import static com.google.common.truth.Truth.assertThat;
import static org.mockito.ArgumentMatchers.any;
@@ -42,6 +40,8 @@ import android.telephony.SubscriptionManager;
import android.telephony.TelephonyManager;
import androidx.slice.Slice;
import androidx.slice.SliceItem;
import androidx.slice.SliceMetadata;
import androidx.slice.SliceProvider;
import androidx.slice.builders.ListBuilder;
import androidx.slice.builders.SliceAction;
@@ -100,8 +100,6 @@ public class ProviderModelSliceTest {
ListBuilder.RowBuilder mMockCarrierRowBuild;
@Mock
WifiPickerTracker mWifiPickerTracker;
@Mock
WifiSliceItem mWifiSliceItem;
private FakeFeatureFactory mFeatureFactory;
@@ -122,7 +120,7 @@ public class ProviderModelSliceTest {
when(mContext.getSystemService(TelephonyManager.class)).thenReturn(mTelephonyManager);
when(mTelephonyManager.createForSubscriptionId(anyInt())).thenReturn(mTelephonyManager);
when(mContext.getSystemService(WifiManager.class)).thenReturn(mWifiManager);
when(mWifiManager.isWifiEnabled()).thenReturn(true);
// Set-up specs for SliceMetadata.
SliceProvider.setSpecs(SliceLiveData.SUPPORTED_SPECS);
@@ -182,7 +180,24 @@ public class ProviderModelSliceTest {
@Test
@UiThreadTest
public void getSlice_haveTwoWifiAndOneCarrier_getCarrierAndTwoWiFiAndSeeAll() {
public void getSlice_airplaneModeIsOn_oneWifiToggle() {
mWifiList.clear();
mMockNetworkProviderWorker.updateSelfResults(null);
mockHelperCondition(true, false, false, null);
final Slice slice = mMockProviderModelSlice.getSlice();
assertThat(slice).isNotNull();
verify(mListBuilder, times(1)).addRow(any(ListBuilder.RowBuilder.class));
final SliceItem sliceTitle =
SliceMetadata.from(mContext, slice).getListContent().getHeader().getTitleItem();
assertThat(sliceTitle.getText()).isEqualTo(
ResourcesUtils.getResourcesString(mContext, "wifi_settings"));
}
@Test
@UiThreadTest
public void getSlice_haveTwoWifiAndOneCarrier_getFiveRow() {
mWifiList.clear();
mockWifiItemCondition(mMockWifiSliceItem1, "wifi1", "wifi1",
WifiEntry.CONNECTED_STATE_CONNECTED, "wifi1_key", true);
@@ -197,13 +212,13 @@ public class ProviderModelSliceTest {
assertThat(slice).isNotNull();
verify(mListBuilder, times(1)).addRow(mMockCarrierRowBuild);
verify(mListBuilder, times(4)).addRow(any(ListBuilder.RowBuilder.class));
verify(mListBuilder, times(5)).addRow(any(ListBuilder.RowBuilder.class));
assertThat(mMockProviderModelSlice.hasSeeAllRow()).isTrue();
}
@Test
@UiThreadTest
public void getSlice_haveOneConnectedWifiAndTwoDisconnectedWifiAndNoCarrier_getFourRow() {
public void getSlice_haveOneConnectedWifiAndTwoDisconnectedWifiAndNoCarrier_getFiveRow() {
mWifiList.clear();
mockWifiItemCondition(mMockWifiSliceItem1, "wifi1", "wifi1",
WifiEntry.CONNECTED_STATE_CONNECTED, "wifi1_key", true);
@@ -220,13 +235,13 @@ public class ProviderModelSliceTest {
final Slice slice = mMockProviderModelSlice.getSlice();
assertThat(slice).isNotNull();
verify(mListBuilder, times(4)).addRow(any(ListBuilder.RowBuilder.class));
verify(mListBuilder, times(5)).addRow(any(ListBuilder.RowBuilder.class));
assertThat(mMockProviderModelSlice.hasSeeAllRow()).isTrue();
}
@Test
@UiThreadTest
public void getSlice_haveTwoDisconnectedWifiAndNoCarrier_getThreeRow() {
public void getSlice_haveTwoDisconnectedWifiAndNoCarrier_getFourRow() {
mWifiList.clear();
mockWifiItemCondition(mMockWifiSliceItem1, "wifi1", "wifi1",
WifiEntry.CONNECTED_STATE_DISCONNECTED, "wifi1_key", true);
@@ -240,13 +255,13 @@ public class ProviderModelSliceTest {
final Slice slice = mMockProviderModelSlice.getSlice();
assertThat(slice).isNotNull();
verify(mListBuilder, times(3)).addRow(any(ListBuilder.RowBuilder.class));
verify(mListBuilder, times(4)).addRow(any(ListBuilder.RowBuilder.class));
assertThat(mMockProviderModelSlice.hasSeeAllRow()).isTrue();
}
@Test
@UiThreadTest
public void getSlice_haveEthernetAndCarrierAndTwoDisconnectedWifi_getFiveRow() {
public void getSlice_haveEthernetAndCarrierAndTwoDisconnectedWifi_getSixRow() {
mWifiList.clear();
mockWifiItemCondition(mMockWifiSliceItem1, "wifi1", "wifi1",
WifiEntry.CONNECTED_STATE_DISCONNECTED, "wifi1_key", true);
@@ -264,13 +279,13 @@ public class ProviderModelSliceTest {
assertThat(slice).isNotNull();
assertThat(mMockProviderModelSlice.hasCreateEthernetRow()).isTrue();
verify(mListBuilder, times(1)).addRow(mMockCarrierRowBuild);
verify(mListBuilder, times(5)).addRow(any(ListBuilder.RowBuilder.class));
verify(mListBuilder, times(6)).addRow(any(ListBuilder.RowBuilder.class));
assertThat(mMockProviderModelSlice.hasSeeAllRow()).isTrue();
}
@Test
@UiThreadTest
public void getSlice_haveEthernetAndCarrierAndConnectedWifiAndDisconnectedWifi_getFiveRow() {
public void getSlice_haveEthernetAndCarrierAndConnectedWifiAndDisconnectedWifi_getSixRow() {
mWifiList.clear();
mockWifiItemCondition(mMockWifiSliceItem1, "wifi1", "wifi1",
WifiEntry.CONNECTED_STATE_CONNECTED, "wifi1_key", true);
@@ -288,7 +303,7 @@ public class ProviderModelSliceTest {
assertThat(slice).isNotNull();
assertThat(mMockProviderModelSlice.hasCreateEthernetRow()).isTrue();
verify(mListBuilder, times(1)).addRow(mMockCarrierRowBuild);
verify(mListBuilder, times(5)).addRow(any(ListBuilder.RowBuilder.class));
verify(mListBuilder, times(6)).addRow(any(ListBuilder.RowBuilder.class));
assertThat(mMockProviderModelSlice.hasSeeAllRow()).isTrue();
}
@@ -380,6 +395,11 @@ public class ProviderModelSliceTest {
return super.getSeeAllRow();
}
@Override
public ListBuilder.RowBuilder getWifiSliceItemRow(WifiSliceItem wifiSliceItem) {
return super.getWifiSliceItemRow(wifiSliceItem);
}
public boolean hasCreateEthernetRow() {
return mHasCreateEthernetRow;
}
@@ -420,29 +440,4 @@ public class ProviderModelSliceTest {
verify(mMockNetworkProviderWorker, never()).connectCarrierNetwork();
}
@Test
public void getWifiSliceItemRow_wifiNoInternetAccess_actionConnectToWifiSsid() {
when(mWifiSliceItem.getKey()).thenReturn("wifi_key");
when(mWifiSliceItem.getTitle()).thenReturn("wifi_ssid");
when(mWifiSliceItem.hasInternetAccess()).thenReturn(false);
ListBuilder.RowBuilder rowBuilder =
mMockProviderModelSlice.getWifiSliceItemRow(mWifiSliceItem);
assertThat(rowBuilder.getPrimaryAction().getTitle())
.isEqualTo("wifi_ssid");
}
@Test
public void getWifiSliceItemRow_wifiHasInternetAccess_actionConnectToCarrier() {
when(mWifiSliceItem.getTitle()).thenReturn("wifi_ssid");
when(mWifiSliceItem.hasInternetAccess()).thenReturn(true);
ListBuilder.RowBuilder rowBuilder =
mMockProviderModelSlice.getWifiSliceItemRow(mWifiSliceItem);
assertThat(rowBuilder.getPrimaryAction().getTitle())
.isEqualTo(ACTION_TITLE_CONNECT_TO_CARRIER);
}
}