Loading src/com/android/settings/network/ProviderModelSlice.java +3 −3 Original line number Diff line number Diff line Loading @@ -182,18 +182,18 @@ public class ProviderModelSlice extends WifiSlice { final boolean isDataEnabled = isToggleAction ? newState : MobileNetworkUtils.isMobileDataEnabled(mContext); doCarrierNetworkAction(isToggleAction, isDataEnabled); doCarrierNetworkAction(isToggleAction, isDataEnabled, defaultSubId); } @VisibleForTesting void doCarrierNetworkAction(boolean isToggleAction, boolean isDataEnabled) { void doCarrierNetworkAction(boolean isToggleAction, boolean isDataEnabled, int subId) { final NetworkProviderWorker worker = getWorker(); if (worker == null) { return; } if (isToggleAction) { worker.setCarrierNetworkEnabled(isDataEnabled); worker.setCarrierNetworkEnabledIfNeeded(isDataEnabled, subId); return; } Loading src/com/android/settings/wifi/slice/WifiScanWorker.java +10 −42 Original line number Diff line number Diff line Loading @@ -21,10 +21,6 @@ import static com.android.settings.wifi.slice.WifiSlice.DEFAULT_EXPANDED_ROW_COU import android.content.Context; import android.net.Uri; import android.net.wifi.WifiManager; import android.os.HandlerThread; import android.os.Process; import android.os.SimpleClock; import android.os.SystemClock; import android.text.TextUtils; import androidx.annotation.VisibleForTesting; Loading @@ -32,16 +28,12 @@ import androidx.lifecycle.Lifecycle; import androidx.lifecycle.LifecycleOwner; import androidx.lifecycle.LifecycleRegistry; import com.android.settings.overlay.FeatureFactory; import com.android.settings.slices.SliceBackgroundWorker; import com.android.settingslib.utils.ThreadUtils; import com.android.wifitrackerlib.MergedCarrierEntry; import com.android.settings.wifi.WifiPickerTrackerHelper; import com.android.wifitrackerlib.WifiEntry; import com.android.wifitrackerlib.WifiEntry.WifiEntryCallback; import com.android.wifitrackerlib.WifiPickerTracker; import java.time.Clock; import java.time.ZoneOffset; import java.util.ArrayList; import java.util.List; Loading @@ -53,40 +45,19 @@ public class WifiScanWorker extends SliceBackgroundWorker<WifiSliceItem> impleme private static final String TAG = "WifiScanWorker"; // Max age of tracked WifiEntries. private static final long MAX_SCAN_AGE_MILLIS = 15_000; // Interval between initiating WifiPickerTracker scans. private static final long SCAN_INTERVAL_MILLIS = 10_000; @VisibleForTesting final LifecycleRegistry mLifecycleRegistry; @VisibleForTesting protected WifiPickerTracker mWifiPickerTracker; // Worker thread used for WifiPickerTracker work private final HandlerThread mWorkerThread; protected WifiPickerTrackerHelper mWifiPickerTrackerHelper; public WifiScanWorker(Context context, Uri uri) { super(context, uri); mLifecycleRegistry = new LifecycleRegistry(this); mWorkerThread = new HandlerThread(TAG, Process.THREAD_PRIORITY_BACKGROUND); mWorkerThread.start(); final Clock elapsedRealtimeClock = new SimpleClock(ZoneOffset.UTC) { @Override public long millis() { return SystemClock.elapsedRealtime(); } }; mWifiPickerTracker = FeatureFactory.getFactory(context) .getWifiTrackerLibProvider() .createWifiPickerTracker(getLifecycle(), context, ThreadUtils.getUiThreadHandler(), mWorkerThread.getThreadHandler(), elapsedRealtimeClock, MAX_SCAN_AGE_MILLIS, SCAN_INTERVAL_MILLIS, this); mWifiPickerTrackerHelper = new WifiPickerTrackerHelper(mLifecycleRegistry, context, this); mWifiPickerTracker = mWifiPickerTrackerHelper.getWifiPickerTracker(); mLifecycleRegistry.markState(Lifecycle.State.INITIALIZED); mLifecycleRegistry.markState(Lifecycle.State.CREATED); Loading @@ -108,7 +79,6 @@ public class WifiScanWorker extends SliceBackgroundWorker<WifiSliceItem> impleme @Override public void close() { mLifecycleRegistry.markState(Lifecycle.State.DESTROYED); mWorkerThread.quit(); } @Override Loading Loading @@ -199,17 +169,15 @@ public class WifiScanWorker extends SliceBackgroundWorker<WifiSliceItem> impleme super.updateResults(resultList); } public void setCarrierNetworkEnabled(boolean enable) { final MergedCarrierEntry mergedCarrierEntry = mWifiPickerTracker.getMergedCarrierEntry(); if (mergedCarrierEntry != null) { mergedCarrierEntry.setEnabled(enable); /** Enables/disables the carrier network if the carrier network provision disabled */ public void setCarrierNetworkEnabledIfNeeded(boolean enabled, int subId) { if (!mWifiPickerTrackerHelper.isCarrierNetworkProvisionEnabled(subId)) { mWifiPickerTrackerHelper.setCarrierNetworkEnabled(enabled); } } /** Connect to the carrier network */ public void connectCarrierNetwork() { final MergedCarrierEntry mergedCarrierEntry = mWifiPickerTracker.getMergedCarrierEntry(); if (mergedCarrierEntry != null && mergedCarrierEntry.canConnect()) { mergedCarrierEntry.connect(null /* ConnectCallback */); } mWifiPickerTrackerHelper.connectCarrierNetwork(null /* ConnectCallback */); } } tests/robotests/src/com/android/settings/wifi/slice/WifiScanWorkerTest.java +26 −11 Original line number Diff line number Diff line Loading @@ -22,12 +22,13 @@ import static com.google.common.truth.Truth.assertThat; import static org.mockito.ArgumentMatchers.any; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.never; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; import androidx.lifecycle.Lifecycle; import com.android.wifitrackerlib.MergedCarrierEntry; import com.android.settings.wifi.WifiPickerTrackerHelper; import com.android.wifitrackerlib.WifiEntry; import com.android.wifitrackerlib.WifiPickerTracker; Loading @@ -44,11 +45,13 @@ import java.util.Arrays; @RunWith(RobolectricTestRunner.class) public class WifiScanWorkerTest { private static final int SUB_ID = 2; private WifiScanWorker mWifiScanWorker; @Mock WifiPickerTracker mWifiPickerTracker; @Mock MergedCarrierEntry mMergedCarrierEntry; WifiPickerTrackerHelper mWifiPickerTrackerHelper; @Before public void setUp() { Loading @@ -56,7 +59,8 @@ public class WifiScanWorkerTest { mWifiScanWorker = new WifiScanWorker(RuntimeEnvironment.application, WIFI_SLICE_URI); mWifiScanWorker.mWifiPickerTracker = mWifiPickerTracker; when(mWifiPickerTracker.getMergedCarrierEntry()).thenReturn(mMergedCarrierEntry); mWifiScanWorker.mWifiPickerTrackerHelper = mWifiPickerTrackerHelper; when(mWifiPickerTrackerHelper.isCarrierNetworkProvisionEnabled(SUB_ID)).thenReturn(false); } @Test Loading Loading @@ -110,22 +114,33 @@ public class WifiScanWorkerTest { } @Test public void setCarrierNetworkEnabled_shouldCallMergedCarrierEntrySetEnabled() { mWifiScanWorker.setCarrierNetworkEnabled(true); public void setCarrierNetworkEnabledIfNeeded_shouldSetCarrierNetworkEnabled() { mWifiScanWorker.setCarrierNetworkEnabledIfNeeded(true, SUB_ID); verify(mMergedCarrierEntry).setEnabled(true); verify(mWifiPickerTrackerHelper).setCarrierNetworkEnabled(true); mWifiScanWorker.setCarrierNetworkEnabled(false); mWifiScanWorker.setCarrierNetworkEnabledIfNeeded(false, SUB_ID); verify(mMergedCarrierEntry).setEnabled(false); verify(mWifiPickerTrackerHelper).setCarrierNetworkEnabled(false); } @Test public void connectCarrierNetwork_shouldCallMergedCarrierEntryConnect() { when(mMergedCarrierEntry.canConnect()).thenReturn(true); public void setCarrierNetworkEnabledIfNeeded_enabledProvision_neverSetCarrierNetworkEnabled() { when(mWifiPickerTrackerHelper.isCarrierNetworkProvisionEnabled(SUB_ID)).thenReturn(true); mWifiScanWorker.setCarrierNetworkEnabledIfNeeded(true, SUB_ID); verify(mWifiPickerTrackerHelper, never()).setCarrierNetworkEnabled(true); mWifiScanWorker.setCarrierNetworkEnabledIfNeeded(false, SUB_ID); verify(mWifiPickerTrackerHelper, never()).setCarrierNetworkEnabled(false); } @Test public void connectCarrierNetwork_shouldConnectCarrierNetwork() { mWifiScanWorker.connectCarrierNetwork(); verify(mMergedCarrierEntry).connect(any()); verify(mWifiPickerTrackerHelper).connectCarrierNetwork(any()); } } tests/unit/src/com/android/settings/network/ProviderModelSliceTest.java +7 −6 Original line number Diff line number Diff line Loading @@ -70,6 +70,7 @@ public class ProviderModelSliceTest { private static final Uri PROVIDER_MODEL_SLICE_URI = Uri.parse("content://com.android.settings.slices/action/provider_model"); private static final int MOCK_SLICE_LEVEL = 3; private static final int SUB_ID = 2; private Context mContext; private MockProviderModelSlice mMockProviderModelSlice; Loading Loading @@ -359,23 +360,23 @@ public class ProviderModelSliceTest { @Test public void doCarrierNetworkAction_toggleActionSetDataEnabled_setCarrierNetworkEnabledTrue() { mMockProviderModelSlice.doCarrierNetworkAction(true /* isToggleAction */, true /* isDataEnabled */); true /* isDataEnabled */, SUB_ID); verify(mMockNetworkProviderWorker).setCarrierNetworkEnabled(true); verify(mMockNetworkProviderWorker).setCarrierNetworkEnabledIfNeeded(true, SUB_ID); } @Test public void doCarrierNetworkAction_toggleActionSetDataDisabled_setCarrierNetworkEnabledFalse() { mMockProviderModelSlice.doCarrierNetworkAction(true /* isToggleAction */, false /* isDataEnabled */); false /* isDataEnabled */, SUB_ID); verify(mMockNetworkProviderWorker).setCarrierNetworkEnabled(false); verify(mMockNetworkProviderWorker).setCarrierNetworkEnabledIfNeeded(false, SUB_ID); } @Test public void doCarrierNetworkAction_primaryActionAndDataEnabled_connectCarrierNetwork() { mMockProviderModelSlice.doCarrierNetworkAction(false /* isToggleAction */, true /* isDataEnabled */); true /* isDataEnabled */, SUB_ID); verify(mMockNetworkProviderWorker).connectCarrierNetwork(); } Loading @@ -383,7 +384,7 @@ public class ProviderModelSliceTest { @Test public void doCarrierNetworkAction_primaryActionAndDataDisabled_notConnectCarrierNetwork() { mMockProviderModelSlice.doCarrierNetworkAction(false /* isToggleAction */, false /* isDataEnabled */); false /* isDataEnabled */, SUB_ID); verify(mMockNetworkProviderWorker, never()).connectCarrierNetwork(); } Loading Loading
src/com/android/settings/network/ProviderModelSlice.java +3 −3 Original line number Diff line number Diff line Loading @@ -182,18 +182,18 @@ public class ProviderModelSlice extends WifiSlice { final boolean isDataEnabled = isToggleAction ? newState : MobileNetworkUtils.isMobileDataEnabled(mContext); doCarrierNetworkAction(isToggleAction, isDataEnabled); doCarrierNetworkAction(isToggleAction, isDataEnabled, defaultSubId); } @VisibleForTesting void doCarrierNetworkAction(boolean isToggleAction, boolean isDataEnabled) { void doCarrierNetworkAction(boolean isToggleAction, boolean isDataEnabled, int subId) { final NetworkProviderWorker worker = getWorker(); if (worker == null) { return; } if (isToggleAction) { worker.setCarrierNetworkEnabled(isDataEnabled); worker.setCarrierNetworkEnabledIfNeeded(isDataEnabled, subId); return; } Loading
src/com/android/settings/wifi/slice/WifiScanWorker.java +10 −42 Original line number Diff line number Diff line Loading @@ -21,10 +21,6 @@ import static com.android.settings.wifi.slice.WifiSlice.DEFAULT_EXPANDED_ROW_COU import android.content.Context; import android.net.Uri; import android.net.wifi.WifiManager; import android.os.HandlerThread; import android.os.Process; import android.os.SimpleClock; import android.os.SystemClock; import android.text.TextUtils; import androidx.annotation.VisibleForTesting; Loading @@ -32,16 +28,12 @@ import androidx.lifecycle.Lifecycle; import androidx.lifecycle.LifecycleOwner; import androidx.lifecycle.LifecycleRegistry; import com.android.settings.overlay.FeatureFactory; import com.android.settings.slices.SliceBackgroundWorker; import com.android.settingslib.utils.ThreadUtils; import com.android.wifitrackerlib.MergedCarrierEntry; import com.android.settings.wifi.WifiPickerTrackerHelper; import com.android.wifitrackerlib.WifiEntry; import com.android.wifitrackerlib.WifiEntry.WifiEntryCallback; import com.android.wifitrackerlib.WifiPickerTracker; import java.time.Clock; import java.time.ZoneOffset; import java.util.ArrayList; import java.util.List; Loading @@ -53,40 +45,19 @@ public class WifiScanWorker extends SliceBackgroundWorker<WifiSliceItem> impleme private static final String TAG = "WifiScanWorker"; // Max age of tracked WifiEntries. private static final long MAX_SCAN_AGE_MILLIS = 15_000; // Interval between initiating WifiPickerTracker scans. private static final long SCAN_INTERVAL_MILLIS = 10_000; @VisibleForTesting final LifecycleRegistry mLifecycleRegistry; @VisibleForTesting protected WifiPickerTracker mWifiPickerTracker; // Worker thread used for WifiPickerTracker work private final HandlerThread mWorkerThread; protected WifiPickerTrackerHelper mWifiPickerTrackerHelper; public WifiScanWorker(Context context, Uri uri) { super(context, uri); mLifecycleRegistry = new LifecycleRegistry(this); mWorkerThread = new HandlerThread(TAG, Process.THREAD_PRIORITY_BACKGROUND); mWorkerThread.start(); final Clock elapsedRealtimeClock = new SimpleClock(ZoneOffset.UTC) { @Override public long millis() { return SystemClock.elapsedRealtime(); } }; mWifiPickerTracker = FeatureFactory.getFactory(context) .getWifiTrackerLibProvider() .createWifiPickerTracker(getLifecycle(), context, ThreadUtils.getUiThreadHandler(), mWorkerThread.getThreadHandler(), elapsedRealtimeClock, MAX_SCAN_AGE_MILLIS, SCAN_INTERVAL_MILLIS, this); mWifiPickerTrackerHelper = new WifiPickerTrackerHelper(mLifecycleRegistry, context, this); mWifiPickerTracker = mWifiPickerTrackerHelper.getWifiPickerTracker(); mLifecycleRegistry.markState(Lifecycle.State.INITIALIZED); mLifecycleRegistry.markState(Lifecycle.State.CREATED); Loading @@ -108,7 +79,6 @@ public class WifiScanWorker extends SliceBackgroundWorker<WifiSliceItem> impleme @Override public void close() { mLifecycleRegistry.markState(Lifecycle.State.DESTROYED); mWorkerThread.quit(); } @Override Loading Loading @@ -199,17 +169,15 @@ public class WifiScanWorker extends SliceBackgroundWorker<WifiSliceItem> impleme super.updateResults(resultList); } public void setCarrierNetworkEnabled(boolean enable) { final MergedCarrierEntry mergedCarrierEntry = mWifiPickerTracker.getMergedCarrierEntry(); if (mergedCarrierEntry != null) { mergedCarrierEntry.setEnabled(enable); /** Enables/disables the carrier network if the carrier network provision disabled */ public void setCarrierNetworkEnabledIfNeeded(boolean enabled, int subId) { if (!mWifiPickerTrackerHelper.isCarrierNetworkProvisionEnabled(subId)) { mWifiPickerTrackerHelper.setCarrierNetworkEnabled(enabled); } } /** Connect to the carrier network */ public void connectCarrierNetwork() { final MergedCarrierEntry mergedCarrierEntry = mWifiPickerTracker.getMergedCarrierEntry(); if (mergedCarrierEntry != null && mergedCarrierEntry.canConnect()) { mergedCarrierEntry.connect(null /* ConnectCallback */); } mWifiPickerTrackerHelper.connectCarrierNetwork(null /* ConnectCallback */); } }
tests/robotests/src/com/android/settings/wifi/slice/WifiScanWorkerTest.java +26 −11 Original line number Diff line number Diff line Loading @@ -22,12 +22,13 @@ import static com.google.common.truth.Truth.assertThat; import static org.mockito.ArgumentMatchers.any; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.never; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; import androidx.lifecycle.Lifecycle; import com.android.wifitrackerlib.MergedCarrierEntry; import com.android.settings.wifi.WifiPickerTrackerHelper; import com.android.wifitrackerlib.WifiEntry; import com.android.wifitrackerlib.WifiPickerTracker; Loading @@ -44,11 +45,13 @@ import java.util.Arrays; @RunWith(RobolectricTestRunner.class) public class WifiScanWorkerTest { private static final int SUB_ID = 2; private WifiScanWorker mWifiScanWorker; @Mock WifiPickerTracker mWifiPickerTracker; @Mock MergedCarrierEntry mMergedCarrierEntry; WifiPickerTrackerHelper mWifiPickerTrackerHelper; @Before public void setUp() { Loading @@ -56,7 +59,8 @@ public class WifiScanWorkerTest { mWifiScanWorker = new WifiScanWorker(RuntimeEnvironment.application, WIFI_SLICE_URI); mWifiScanWorker.mWifiPickerTracker = mWifiPickerTracker; when(mWifiPickerTracker.getMergedCarrierEntry()).thenReturn(mMergedCarrierEntry); mWifiScanWorker.mWifiPickerTrackerHelper = mWifiPickerTrackerHelper; when(mWifiPickerTrackerHelper.isCarrierNetworkProvisionEnabled(SUB_ID)).thenReturn(false); } @Test Loading Loading @@ -110,22 +114,33 @@ public class WifiScanWorkerTest { } @Test public void setCarrierNetworkEnabled_shouldCallMergedCarrierEntrySetEnabled() { mWifiScanWorker.setCarrierNetworkEnabled(true); public void setCarrierNetworkEnabledIfNeeded_shouldSetCarrierNetworkEnabled() { mWifiScanWorker.setCarrierNetworkEnabledIfNeeded(true, SUB_ID); verify(mMergedCarrierEntry).setEnabled(true); verify(mWifiPickerTrackerHelper).setCarrierNetworkEnabled(true); mWifiScanWorker.setCarrierNetworkEnabled(false); mWifiScanWorker.setCarrierNetworkEnabledIfNeeded(false, SUB_ID); verify(mMergedCarrierEntry).setEnabled(false); verify(mWifiPickerTrackerHelper).setCarrierNetworkEnabled(false); } @Test public void connectCarrierNetwork_shouldCallMergedCarrierEntryConnect() { when(mMergedCarrierEntry.canConnect()).thenReturn(true); public void setCarrierNetworkEnabledIfNeeded_enabledProvision_neverSetCarrierNetworkEnabled() { when(mWifiPickerTrackerHelper.isCarrierNetworkProvisionEnabled(SUB_ID)).thenReturn(true); mWifiScanWorker.setCarrierNetworkEnabledIfNeeded(true, SUB_ID); verify(mWifiPickerTrackerHelper, never()).setCarrierNetworkEnabled(true); mWifiScanWorker.setCarrierNetworkEnabledIfNeeded(false, SUB_ID); verify(mWifiPickerTrackerHelper, never()).setCarrierNetworkEnabled(false); } @Test public void connectCarrierNetwork_shouldConnectCarrierNetwork() { mWifiScanWorker.connectCarrierNetwork(); verify(mMergedCarrierEntry).connect(any()); verify(mWifiPickerTrackerHelper).connectCarrierNetwork(any()); } }
tests/unit/src/com/android/settings/network/ProviderModelSliceTest.java +7 −6 Original line number Diff line number Diff line Loading @@ -70,6 +70,7 @@ public class ProviderModelSliceTest { private static final Uri PROVIDER_MODEL_SLICE_URI = Uri.parse("content://com.android.settings.slices/action/provider_model"); private static final int MOCK_SLICE_LEVEL = 3; private static final int SUB_ID = 2; private Context mContext; private MockProviderModelSlice mMockProviderModelSlice; Loading Loading @@ -359,23 +360,23 @@ public class ProviderModelSliceTest { @Test public void doCarrierNetworkAction_toggleActionSetDataEnabled_setCarrierNetworkEnabledTrue() { mMockProviderModelSlice.doCarrierNetworkAction(true /* isToggleAction */, true /* isDataEnabled */); true /* isDataEnabled */, SUB_ID); verify(mMockNetworkProviderWorker).setCarrierNetworkEnabled(true); verify(mMockNetworkProviderWorker).setCarrierNetworkEnabledIfNeeded(true, SUB_ID); } @Test public void doCarrierNetworkAction_toggleActionSetDataDisabled_setCarrierNetworkEnabledFalse() { mMockProviderModelSlice.doCarrierNetworkAction(true /* isToggleAction */, false /* isDataEnabled */); false /* isDataEnabled */, SUB_ID); verify(mMockNetworkProviderWorker).setCarrierNetworkEnabled(false); verify(mMockNetworkProviderWorker).setCarrierNetworkEnabledIfNeeded(false, SUB_ID); } @Test public void doCarrierNetworkAction_primaryActionAndDataEnabled_connectCarrierNetwork() { mMockProviderModelSlice.doCarrierNetworkAction(false /* isToggleAction */, true /* isDataEnabled */); true /* isDataEnabled */, SUB_ID); verify(mMockNetworkProviderWorker).connectCarrierNetwork(); } Loading @@ -383,7 +384,7 @@ public class ProviderModelSliceTest { @Test public void doCarrierNetworkAction_primaryActionAndDataDisabled_notConnectCarrierNetwork() { mMockProviderModelSlice.doCarrierNetworkAction(false /* isToggleAction */, false /* isDataEnabled */); false /* isDataEnabled */, SUB_ID); verify(mMockNetworkProviderWorker, never()).connectCarrierNetwork(); } Loading