[Provider Model] Implement the carrner network selection

- Add primaryAction for connecting carrier network

- User toggles carrier network On/Off
  - Calls MergedCarrierEntry#setEnabled(true/false)

- User taps on carrier network
  - Calls MergedCarrierEntry#connect()

Bug: 175761096
Test:
- Manual Test
- atest ProviderModelSliceTest
- atest ProviderModelSliceHelperTest
- make RunSettingsRoboTests ROBOTEST_FILTER=WifiScanWorkerTest

Change-Id: I07cb6c142a2f4e9cbdbab1f77afdc367728b4e3f
This commit is contained in:
Weng Su
2020-12-27 17:37:41 +00:00
parent 2133856853
commit 74b18587fb
5 changed files with 95 additions and 8 deletions

View File

@@ -16,6 +16,8 @@
package com.android.settings.network;
import static android.app.slice.Slice.EXTRA_TOGGLE_STATE;
import static com.google.common.truth.Truth.assertThat;
import static org.mockito.ArgumentMatchers.any;
@@ -113,13 +115,14 @@ public class ProviderModelSliceTest {
// Set-up specs for SliceMetadata.
SliceProvider.setSpecs(SliceLiveData.SUPPORTED_SPECS);
mMockNetworkProviderWorker = new MockNetworkProviderWorker(mContext,
PROVIDER_MODEL_SLICE_URI);
mMockNetworkProviderWorker = spy(new MockNetworkProviderWorker(mContext,
PROVIDER_MODEL_SLICE_URI));
mMockProviderModelSlice = new MockProviderModelSlice(mContext, mMockNetworkProviderWorker);
mListBuilder = spy(new ListBuilder(mContext, PROVIDER_MODEL_SLICE_URI,
ListBuilder.INFINITY).setAccentColor(-1));
when(mProviderModelSliceHelper.createListBuilder(PROVIDER_MODEL_SLICE_URI)).thenReturn(
mListBuilder);
when(mProviderModelSliceHelper.getSubscriptionManager()).thenReturn(mSubscriptionManager);
mWifiList = new ArrayList<>();
mMockNetworkProviderWorker.updateSelfResults(mWifiList);
@@ -330,4 +333,33 @@ public class ProviderModelSliceTest {
return mNetworkProviderWorker;
}
}
@Test
public void onNotifyChange_intentToggleActionOn_shouldSetCarrierNetworkEnabledTrue() {
Intent intent = mMockProviderModelSlice.getBroadcastIntent(mContext).getIntent();
intent.putExtra(EXTRA_TOGGLE_STATE, true);
mMockProviderModelSlice.onNotifyChange(intent);
verify(mMockNetworkProviderWorker).setCarrierNetworkEnabled(true);
}
@Test
public void onNotifyChange_intentToggleActionOff_shouldSetCarrierNetworkEnabledFalse() {
Intent intent = mMockProviderModelSlice.getBroadcastIntent(mContext).getIntent();
intent.putExtra(EXTRA_TOGGLE_STATE, false);
mMockProviderModelSlice.onNotifyChange(intent);
verify(mMockNetworkProviderWorker).setCarrierNetworkEnabled(false);
}
@Test
public void onNotifyChange_intentPrimaryAction_shouldConnectCarrierNetwork() {
Intent intent = mMockProviderModelSlice.getBroadcastIntent(mContext).getIntent();
mMockProviderModelSlice.onNotifyChange(intent);
verify(mMockNetworkProviderWorker).connectCarrierNetwork();
}
}