Merge "Remove airplane mode restriction on hotspot"

This commit is contained in:
Salvador Martinez
2019-03-12 18:27:36 +00:00
committed by Android (Google) Code Review
4 changed files with 2 additions and 89 deletions

View File

@@ -43,9 +43,6 @@ public class WifiTetherPreferenceController extends AbstractPreferenceController
implements PreferenceControllerMixin, LifecycleObserver, OnStart, OnStop { implements PreferenceControllerMixin, LifecycleObserver, OnStart, OnStop {
private static final String WIFI_TETHER_SETTINGS = "wifi_tether"; private static final String WIFI_TETHER_SETTINGS = "wifi_tether";
private static final IntentFilter AIRPLANE_INTENT_FILTER = new IntentFilter(
Intent.ACTION_AIRPLANE_MODE_CHANGED);
private static final int ID_NULL = -1;
private final ConnectivityManager mConnectivityManager; private final ConnectivityManager mConnectivityManager;
private final String[] mWifiRegexs; private final String[] mWifiRegexs;
@@ -103,8 +100,6 @@ public class WifiTetherPreferenceController extends AbstractPreferenceController
@Override @Override
public void onStart() { public void onStart() {
if (mPreference != null) { if (mPreference != null) {
mContext.registerReceiver(mReceiver, AIRPLANE_INTENT_FILTER);
clearSummaryForAirplaneMode();
if (mWifiTetherSoftApManager != null) { if (mWifiTetherSoftApManager != null) {
mWifiTetherSoftApManager.registerSoftApCallback(); mWifiTetherSoftApManager.registerSoftApCallback();
} }
@@ -114,7 +109,6 @@ public class WifiTetherPreferenceController extends AbstractPreferenceController
@Override @Override
public void onStop() { public void onStop() {
if (mPreference != null) { if (mPreference != null) {
mContext.unregisterReceiver(mReceiver);
if (mWifiTetherSoftApManager != null) { if (mWifiTetherSoftApManager != null) {
mWifiTetherSoftApManager.unRegisterSoftApCallback(); mWifiTetherSoftApManager.unRegisterSoftApCallback();
} }
@@ -146,19 +140,6 @@ public class WifiTetherPreferenceController extends AbstractPreferenceController
}); });
} }
//
// Everything below is copied from WifiApEnabler
//
private final BroadcastReceiver mReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
String action = intent.getAction();
if (Intent.ACTION_AIRPLANE_MODE_CHANGED.equals(action)) {
clearSummaryForAirplaneMode(R.string.wifi_hotspot_off_subtext);
}
}
};
@VisibleForTesting @VisibleForTesting
void handleWifiApStateChanged(int state, int reason) { void handleWifiApStateChanged(int state, int reason) {
switch (state) { switch (state) {
@@ -174,7 +155,6 @@ public class WifiTetherPreferenceController extends AbstractPreferenceController
break; break;
case WifiManager.WIFI_AP_STATE_DISABLED: case WifiManager.WIFI_AP_STATE_DISABLED:
mPreference.setSummary(R.string.wifi_hotspot_off_subtext); mPreference.setSummary(R.string.wifi_hotspot_off_subtext);
clearSummaryForAirplaneMode();
break; break;
default: default:
if (reason == WifiManager.SAP_START_FAILURE_NO_CHANNEL) { if (reason == WifiManager.SAP_START_FAILURE_NO_CHANNEL) {
@@ -182,7 +162,6 @@ public class WifiTetherPreferenceController extends AbstractPreferenceController
} else { } else {
mPreference.setSummary(R.string.wifi_error); mPreference.setSummary(R.string.wifi_error);
} }
clearSummaryForAirplaneMode();
} }
} }
@@ -194,21 +173,4 @@ public class WifiTetherPreferenceController extends AbstractPreferenceController
BidiFormatter.getInstance().unicodeWrap( BidiFormatter.getInstance().unicodeWrap(
(wifiConfig == null) ? s : wifiConfig.SSID))); (wifiConfig == null) ? s : wifiConfig.SSID)));
} }
private void clearSummaryForAirplaneMode() {
clearSummaryForAirplaneMode(ID_NULL);
}
private void clearSummaryForAirplaneMode(int defaultId) {
boolean isAirplaneMode = Settings.Global.getInt(mContext.getContentResolver(),
Settings.Global.AIRPLANE_MODE_ON, 0) != 0;
if (isAirplaneMode) {
mPreference.setSummary(R.string.wifi_tether_disabled_by_airplane);
} else if (defaultId != ID_NULL){
mPreference.setSummary(defaultId);
}
}
//
// Everything above is copied from WifiApEnabler
//
} }

View File

@@ -61,7 +61,6 @@ public class WifiTetherSwitchBarController implements SwitchWidgetController.OnS
static { static {
WIFI_INTENT_FILTER = new IntentFilter(WifiManager.WIFI_AP_STATE_CHANGED_ACTION); WIFI_INTENT_FILTER = new IntentFilter(WifiManager.WIFI_AP_STATE_CHANGED_ACTION);
WIFI_INTENT_FILTER.addAction(Intent.ACTION_AIRPLANE_MODE_CHANGED);
} }
WifiTetherSwitchBarController(Context context, SwitchWidgetController switchBar) { WifiTetherSwitchBarController(Context context, SwitchWidgetController switchBar) {
@@ -119,8 +118,6 @@ public class WifiTetherSwitchBarController implements SwitchWidgetController.OnS
final int state = intent.getIntExtra( final int state = intent.getIntExtra(
WifiManager.EXTRA_WIFI_AP_STATE, WifiManager.WIFI_AP_STATE_FAILED); WifiManager.EXTRA_WIFI_AP_STATE, WifiManager.WIFI_AP_STATE_FAILED);
handleWifiApStateChanged(state); handleWifiApStateChanged(state);
} else if (Intent.ACTION_AIRPLANE_MODE_CHANGED.equals(action)) {
updateWifiSwitch();
} }
} }
}; };
@@ -154,13 +151,7 @@ public class WifiTetherSwitchBarController implements SwitchWidgetController.OnS
} }
private void updateWifiSwitch() { private void updateWifiSwitch() {
boolean isAirplaneMode = Settings.Global.getInt(mContext.getContentResolver(),
Settings.Global.AIRPLANE_MODE_ON, 0) != 0;
if (!isAirplaneMode) {
mSwitchBar.setEnabled(!mDataSaverBackend.isDataSaverEnabled()); mSwitchBar.setEnabled(!mDataSaverBackend.isDataSaverEnabled());
} else {
mSwitchBar.setEnabled(false);
}
} }
@Override @Override

View File

@@ -111,36 +111,6 @@ public class WifiTetherPreferenceControllerTest {
assertThat(mController.isAvailable()).isTrue(); assertThat(mController.isAvailable()).isTrue();
} }
@Test
public void testReceiver_turnOnAirplaneMode_clearPreferenceSummary() {
final ContentResolver cr = mock(ContentResolver.class);
when(mContext.getContentResolver()).thenReturn(cr);
Settings.Global.putInt(cr, Settings.Global.AIRPLANE_MODE_ON, 1);
mController.displayPreference(mScreen);
final BroadcastReceiver receiver = ReflectionHelpers.getField(mController, "mReceiver");
final Intent broadcast = new Intent(Intent.ACTION_AIRPLANE_MODE_CHANGED);
receiver.onReceive(RuntimeEnvironment.application, broadcast);
assertThat(mPreference.getSummary().toString()).isEqualTo(
"Unavailable because airplane mode is turned on");
}
@Test
public void testReceiver_turnOffAirplaneMode_displayOffSummary() {
final ContentResolver cr = mock(ContentResolver.class);
when(mContext.getContentResolver()).thenReturn(cr);
Settings.Global.putInt(cr, Settings.Global.AIRPLANE_MODE_ON, 0);
mController.displayPreference(mScreen);
final BroadcastReceiver receiver = ReflectionHelpers.getField(mController, "mReceiver");
final Intent broadcast = new Intent(Intent.ACTION_AIRPLANE_MODE_CHANGED);
receiver.onReceive(RuntimeEnvironment.application, broadcast);
assertThat(mPreference.getSummary().toString()).isEqualTo(
"Not sharing internet or content with other devices");
}
@Test @Test
public void testHandleWifiApStateChanged_stateEnabling_showEnablingSummary() { public void testHandleWifiApStateChanged_stateEnabling_showEnablingSummary() {
mController.handleWifiApStateChanged(WifiManager.WIFI_AP_STATE_ENABLING, 0 /* reason */); mController.handleWifiApStateChanged(WifiManager.WIFI_AP_STATE_ENABLING, 0 /* reason */);

View File

@@ -74,16 +74,6 @@ public class WifiTetherSwitchBarControllerTest {
new SwitchBarController(mSwitchBar)); new SwitchBarController(mSwitchBar));
} }
@Test
public void constructor_airplaneModeOn_switchBarDisabled() {
Settings.Global.putInt(RuntimeEnvironment.application.getContentResolver(),
Settings.Global.AIRPLANE_MODE_ON, 1);
new WifiTetherSwitchBarController(mContext, new SwitchBarController(mSwitchBar));
assertThat(mSwitchBar.isEnabled()).isFalse();
}
@Test @Test
public void startTether_fail_resetSwitchBar() { public void startTether_fail_resetSwitchBar() {
when(mNetworkPolicyManager.getRestrictBackground()).thenReturn(false); when(mNetworkPolicyManager.getRestrictBackground()).thenReturn(false);