Loading src/com/android/settings/wifi/tether/WifiTetherPreferenceController.java +5 −0 Original line number Diff line number Diff line Loading @@ -36,6 +36,7 @@ import com.android.settingslib.core.lifecycle.Lifecycle; import com.android.settingslib.core.lifecycle.LifecycleObserver; import com.android.settingslib.core.lifecycle.events.OnStart; import com.android.settingslib.core.lifecycle.events.OnStop; import com.android.settingslib.wifi.WifiEnterpriseRestrictionUtils; import java.util.List; Loading @@ -48,6 +49,8 @@ public class WifiTetherPreferenceController extends AbstractPreferenceController private final String[] mWifiRegexs; private final WifiManager mWifiManager; private final Lifecycle mLifecycle; @VisibleForTesting boolean mIsWifiTetheringAllow; private int mSoftApState; @VisibleForTesting Preference mPreference; Loading @@ -65,6 +68,7 @@ public class WifiTetherPreferenceController extends AbstractPreferenceController mTetheringManager = context.getSystemService(TetheringManager.class); mWifiManager = (WifiManager) context.getSystemService(Context.WIFI_SERVICE); mWifiRegexs = mTetheringManager.getTetherableWifiRegexs(); mIsWifiTetheringAllow = WifiEnterpriseRestrictionUtils.isWifiTetheringAllowed(context); mLifecycle = lifecycle; if (lifecycle != null) { lifecycle.addObserver(this); Loading @@ -89,6 +93,7 @@ public class WifiTetherPreferenceController extends AbstractPreferenceController // unavailable return; } mPreference.setEnabled(mIsWifiTetheringAllow); } @Override Loading tests/robotests/src/com/android/settings/wifi/tether/WifiTetherPreferenceControllerTest.java +27 −0 Original line number Diff line number Diff line Loading @@ -26,6 +26,8 @@ import android.content.Context; import android.net.TetheringManager; import android.net.wifi.SoftApConfiguration; import android.net.wifi.WifiManager; import android.os.Bundle; import android.os.UserManager; import androidx.lifecycle.LifecycleOwner; import androidx.preference.PreferenceScreen; Loading Loading @@ -60,6 +62,10 @@ public class WifiTetherPreferenceControllerTest { @Mock private WifiManager mWifiManager; @Mock private UserManager mUserManager; @Mock private Bundle mBundle; @Mock private PreferenceScreen mScreen; private SoftApConfiguration mSoftApConfiguration; Loading @@ -79,6 +85,8 @@ public class WifiTetherPreferenceControllerTest { mPreference = new PrimarySwitchPreference(RuntimeEnvironment.application); when(mContext.getSystemService(Context.TETHERING_SERVICE)).thenReturn(mTetheringManager); when(mContext.getSystemService(Context.WIFI_SERVICE)).thenReturn(mWifiManager); when(mContext.getSystemService(UserManager.class)).thenReturn(mUserManager); when(mUserManager.getUserRestrictions()).thenReturn(mBundle); when(mScreen.findPreference(anyString())).thenReturn(mPreference); mSoftApConfiguration = new SoftApConfiguration.Builder().setSsid(SSID).build(); when(mWifiManager.getSoftApConfiguration()).thenReturn(mSoftApConfiguration); Loading @@ -86,6 +94,7 @@ public class WifiTetherPreferenceControllerTest { when(mTetheringManager.getTetherableWifiRegexs()).thenReturn(new String[]{"1", "2"}); mController = new WifiTetherPreferenceController(mContext, mLifecycle, false /* initSoftApManager */); mController.mIsWifiTetheringAllow = true; mController.displayPreference(mScreen); } Loading @@ -103,6 +112,24 @@ public class WifiTetherPreferenceControllerTest { assertThat(mController.isAvailable()).isTrue(); } @Test public void displayPreference_wifiTetheringNotAllowed_shouldDisable() { mController.mIsWifiTetheringAllow = false; mController.displayPreference(mScreen); assertThat(mPreference.isEnabled()).isFalse(); } @Test public void displayPreference_wifiTetheringAllowed_shouldEnable() { mController.mIsWifiTetheringAllow = true; mController.displayPreference(mScreen); assertThat(mPreference.isEnabled()).isTrue(); } @Test public void testHandleWifiApStateChanged_stateEnabling_showEnablingSummary() { mController.handleWifiApStateChanged(WifiManager.WIFI_AP_STATE_ENABLING, 0 /* reason */); Loading Loading
src/com/android/settings/wifi/tether/WifiTetherPreferenceController.java +5 −0 Original line number Diff line number Diff line Loading @@ -36,6 +36,7 @@ import com.android.settingslib.core.lifecycle.Lifecycle; import com.android.settingslib.core.lifecycle.LifecycleObserver; import com.android.settingslib.core.lifecycle.events.OnStart; import com.android.settingslib.core.lifecycle.events.OnStop; import com.android.settingslib.wifi.WifiEnterpriseRestrictionUtils; import java.util.List; Loading @@ -48,6 +49,8 @@ public class WifiTetherPreferenceController extends AbstractPreferenceController private final String[] mWifiRegexs; private final WifiManager mWifiManager; private final Lifecycle mLifecycle; @VisibleForTesting boolean mIsWifiTetheringAllow; private int mSoftApState; @VisibleForTesting Preference mPreference; Loading @@ -65,6 +68,7 @@ public class WifiTetherPreferenceController extends AbstractPreferenceController mTetheringManager = context.getSystemService(TetheringManager.class); mWifiManager = (WifiManager) context.getSystemService(Context.WIFI_SERVICE); mWifiRegexs = mTetheringManager.getTetherableWifiRegexs(); mIsWifiTetheringAllow = WifiEnterpriseRestrictionUtils.isWifiTetheringAllowed(context); mLifecycle = lifecycle; if (lifecycle != null) { lifecycle.addObserver(this); Loading @@ -89,6 +93,7 @@ public class WifiTetherPreferenceController extends AbstractPreferenceController // unavailable return; } mPreference.setEnabled(mIsWifiTetheringAllow); } @Override Loading
tests/robotests/src/com/android/settings/wifi/tether/WifiTetherPreferenceControllerTest.java +27 −0 Original line number Diff line number Diff line Loading @@ -26,6 +26,8 @@ import android.content.Context; import android.net.TetheringManager; import android.net.wifi.SoftApConfiguration; import android.net.wifi.WifiManager; import android.os.Bundle; import android.os.UserManager; import androidx.lifecycle.LifecycleOwner; import androidx.preference.PreferenceScreen; Loading Loading @@ -60,6 +62,10 @@ public class WifiTetherPreferenceControllerTest { @Mock private WifiManager mWifiManager; @Mock private UserManager mUserManager; @Mock private Bundle mBundle; @Mock private PreferenceScreen mScreen; private SoftApConfiguration mSoftApConfiguration; Loading @@ -79,6 +85,8 @@ public class WifiTetherPreferenceControllerTest { mPreference = new PrimarySwitchPreference(RuntimeEnvironment.application); when(mContext.getSystemService(Context.TETHERING_SERVICE)).thenReturn(mTetheringManager); when(mContext.getSystemService(Context.WIFI_SERVICE)).thenReturn(mWifiManager); when(mContext.getSystemService(UserManager.class)).thenReturn(mUserManager); when(mUserManager.getUserRestrictions()).thenReturn(mBundle); when(mScreen.findPreference(anyString())).thenReturn(mPreference); mSoftApConfiguration = new SoftApConfiguration.Builder().setSsid(SSID).build(); when(mWifiManager.getSoftApConfiguration()).thenReturn(mSoftApConfiguration); Loading @@ -86,6 +94,7 @@ public class WifiTetherPreferenceControllerTest { when(mTetheringManager.getTetherableWifiRegexs()).thenReturn(new String[]{"1", "2"}); mController = new WifiTetherPreferenceController(mContext, mLifecycle, false /* initSoftApManager */); mController.mIsWifiTetheringAllow = true; mController.displayPreference(mScreen); } Loading @@ -103,6 +112,24 @@ public class WifiTetherPreferenceControllerTest { assertThat(mController.isAvailable()).isTrue(); } @Test public void displayPreference_wifiTetheringNotAllowed_shouldDisable() { mController.mIsWifiTetheringAllow = false; mController.displayPreference(mScreen); assertThat(mPreference.isEnabled()).isFalse(); } @Test public void displayPreference_wifiTetheringAllowed_shouldEnable() { mController.mIsWifiTetheringAllow = true; mController.displayPreference(mScreen); assertThat(mPreference.isEnabled()).isTrue(); } @Test public void testHandleWifiApStateChanged_stateEnabling_showEnablingSummary() { mController.handleWifiApStateChanged(WifiManager.WIFI_AP_STATE_ENABLING, 0 /* reason */); Loading