Merge "[Settings] Should show carrier network if airplane mode is on" into sc-v2-dev am: 1df187a439 am: 4aef8765dc

Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Settings/+/16332786

Change-Id: Ic4648dad4fd7950510fea2382fa990efe900baf8
This commit is contained in:
Zoey Chen
2021-11-30 09:05:10 +00:00
committed by Automerger Merge Worker
2 changed files with 70 additions and 19 deletions

View File

@@ -39,6 +39,7 @@ import android.graphics.drawable.Drawable;
import android.net.ConnectivityManager;
import android.net.Network;
import android.net.NetworkCapabilities;
import android.net.wifi.WifiManager;
import android.os.Looper;
import android.os.UserManager;
import android.provider.Settings;
@@ -102,6 +103,8 @@ public class SubscriptionsPreferenceControllerTest {
private LifecycleOwner mLifecycleOwner;
@Mock
private WifiPickerTrackerHelper mWifiPickerTrackerHelper;
@Mock
private WifiManager mWifiManager;
private LifecycleRegistry mLifecycleRegistry;
private int mOnChildUpdatedCount;
@@ -132,6 +135,7 @@ public class SubscriptionsPreferenceControllerTest {
when(mConnectivityManager.getNetworkCapabilities(mActiveNetwork))
.thenReturn(mNetworkCapabilities);
when(mUserManager.isAdminUser()).thenReturn(true);
when(mContext.getSystemService(WifiManager.class)).thenReturn(mWifiManager);
when(mLifecycleOwner.getLifecycle()).thenReturn(mLifecycleRegistry);
mPreferenceManager = new PreferenceManager(mContext);
@@ -171,16 +175,55 @@ public class SubscriptionsPreferenceControllerTest {
}
@Test
public void isAvailable_airplaneModeOn_availableFalse() {
public void isAvailable_airplaneModeOnWifiOff_availableFalse() {
setupMockSubscriptions(2);
assertThat(mController.isAvailable()).isTrue();
when(mWifiManager.isWifiEnabled()).thenReturn(false);
Settings.Global.putInt(mContext.getContentResolver(), Settings.Global.AIRPLANE_MODE_ON, 1);
assertThat(mController.isAvailable()).isFalse();
}
@Test
public void isAvailable_airplaneModeOnWifiOnWithNoCarrierNetwork_availableFalse() {
setupMockSubscriptions(2);
assertThat(mController.isAvailable()).isTrue();
when(mWifiManager.isWifiEnabled()).thenReturn(true);
doReturn(false).when(mWifiPickerTrackerHelper).isCarrierNetworkActive();
Settings.Global.putInt(mContext.getContentResolver(), Settings.Global.AIRPLANE_MODE_ON, 1);
assertThat(mController.isAvailable()).isFalse();
}
@Test
public void isAvailable_airplaneModeOnWifiOffWithCarrierNetwork_availableTrue() {
setupMockSubscriptions(1);
when(mWifiManager.isWifiEnabled()).thenReturn(false);
doReturn(true).when(mWifiPickerTrackerHelper).isCarrierNetworkActive();
Settings.Global.putInt(mContext.getContentResolver(), Settings.Global.AIRPLANE_MODE_ON, 1);
assertThat(mController.isAvailable()).isFalse();
}
@Test
public void isAvailable_airplaneModeOff_availableFalse() {
setupMockSubscriptions(2);
assertThat(mController.isAvailable()).isTrue();
when(mWifiManager.isWifiEnabled()).thenReturn(true);
doReturn(true).when(mWifiPickerTrackerHelper).isCarrierNetworkActive();
Settings.Global.putInt(mContext.getContentResolver(), Settings.Global.AIRPLANE_MODE_ON, 0);
assertThat(mController.isAvailable()).isTrue();
}
@Test
@UiThreadTest
public void displayPreference_providerAndHasSim_showPreference() {