Update AP preference to not be master switch pref

People keep getting confused by the master switch preference for
wireless tethering. The wireless tethering page already has a switch
so this just removes it from the preference and has it take you to
the page when tapped on instead.

Bug: 69423941
Test: robotests
Change-Id: I66d6d3271e83b49ae77f203e7892438d27f96025
This commit is contained in:
Salvador Martinez
2018-03-20 10:10:31 -07:00
parent 895f785470
commit 6ddc4b4996
3 changed files with 4 additions and 51 deletions

View File

@@ -19,7 +19,7 @@
xmlns:settings="http://schemas.android.com/apk/res-auto" xmlns:settings="http://schemas.android.com/apk/res-auto"
android:title="@string/tether_settings_title_all"> android:title="@string/tether_settings_title_all">
<com.android.settings.widget.MasterSwitchPreference <Preference
android:key="wifi_tether" android:key="wifi_tether"
android:title="@string/wifi_hotspot_checkbox_text" android:title="@string/wifi_hotspot_checkbox_text"
android:summary="@string/summary_two_lines_placeholder" android:summary="@string/summary_two_lines_placeholder"

View File

@@ -25,14 +25,13 @@ import android.net.wifi.WifiConfiguration;
import android.net.wifi.WifiManager; import android.net.wifi.WifiManager;
import android.provider.Settings; import android.provider.Settings;
import android.support.annotation.VisibleForTesting; import android.support.annotation.VisibleForTesting;
import android.support.v7.preference.Preference;
import android.support.v7.preference.PreferenceScreen; import android.support.v7.preference.PreferenceScreen;
import android.text.BidiFormatter; import android.text.BidiFormatter;
import com.android.settings.R; import com.android.settings.R;
import com.android.settings.Utils; import com.android.settings.Utils;
import com.android.settings.core.PreferenceControllerMixin; import com.android.settings.core.PreferenceControllerMixin;
import com.android.settings.widget.MasterSwitchController;
import com.android.settings.widget.MasterSwitchPreference;
import com.android.settingslib.core.AbstractPreferenceController; import com.android.settingslib.core.AbstractPreferenceController;
import com.android.settingslib.core.lifecycle.Lifecycle; import com.android.settingslib.core.lifecycle.Lifecycle;
import com.android.settingslib.core.lifecycle.LifecycleObserver; import com.android.settingslib.core.lifecycle.LifecycleObserver;
@@ -50,10 +49,9 @@ public class WifiTetherPreferenceController extends AbstractPreferenceController
private final String[] mWifiRegexs; private final String[] mWifiRegexs;
private final WifiManager mWifiManager; private final WifiManager mWifiManager;
private final Lifecycle mLifecycle; private final Lifecycle mLifecycle;
private WifiTetherSwitchBarController mSwitchController;
private int mSoftApState; private int mSoftApState;
@VisibleForTesting @VisibleForTesting
MasterSwitchPreference mPreference; Preference mPreference;
@VisibleForTesting @VisibleForTesting
WifiTetherSoftApManager mWifiTetherSoftApManager; WifiTetherSoftApManager mWifiTetherSoftApManager;
@@ -88,14 +86,11 @@ public class WifiTetherPreferenceController extends AbstractPreferenceController
@Override @Override
public void displayPreference(PreferenceScreen screen) { public void displayPreference(PreferenceScreen screen) {
super.displayPreference(screen); super.displayPreference(screen);
mPreference = (MasterSwitchPreference) screen.findPreference(WIFI_TETHER_SETTINGS); mPreference = screen.findPreference(WIFI_TETHER_SETTINGS);
if (mPreference == null) { if (mPreference == null) {
// unavailable // unavailable
return; return;
} }
mSwitchController = new WifiTetherSwitchBarController(
mContext, new MasterSwitchController(mPreference));
mLifecycle.addObserver(mSwitchController);
} }
@Override @Override

View File

@@ -122,48 +122,6 @@ public class WifiTetherPreferenceControllerTest {
assertThat(mController.isAvailable()).isTrue(); assertThat(mController.isAvailable()).isTrue();
} }
@Test
public void startAndStop_shouldRegisterUnregisterReceiver() {
final BroadcastReceiver receiver = ReflectionHelpers.getField(mController, "mReceiver");
mLifecycle.handleLifecycleEvent(ON_START);
mLifecycle.handleLifecycleEvent(ON_STOP);
assertThat(ShadowWifiTetherSwitchBarController.onStartCalled).isTrue();
assertThat(ShadowWifiTetherSwitchBarController.onStopCalled).isTrue();
verify(mContext).registerReceiver(eq(receiver), any(IntentFilter.class));
verify(mContext).unregisterReceiver(receiver);
}
@Test
public void start_wifiApOff_shouldSetInitialStateToOff() {
when(mWifiManager.getWifiApState()).thenReturn(WifiManager.WIFI_AP_STATE_DISABLED);
final BroadcastReceiver receiver = ReflectionHelpers.getField(mController, "mReceiver");
final MasterSwitchPreference pref = mock(MasterSwitchPreference.class);
when(mScreen.findPreference(anyString())).thenReturn(pref);
mController.displayPreference(mScreen);
mLifecycle.handleLifecycleEvent(ON_START);
verify(mContext).registerReceiver(eq(receiver), any(IntentFilter.class));
verify(pref).setChecked(false);
}
@Test
public void start_wifiApOn_shouldSetInitialStateToOn() {
when(mWifiManager.getWifiApState()).thenReturn(WifiManager.WIFI_AP_STATE_ENABLED);
final BroadcastReceiver receiver = ReflectionHelpers.getField(mController, "mReceiver");
final MasterSwitchPreference pref = mock(MasterSwitchPreference.class);
when(mScreen.findPreference(anyString())).thenReturn(pref);
mController.displayPreference(mScreen);
mLifecycle.handleLifecycleEvent(ON_START);
assertThat(ShadowWifiTetherSwitchBarController.onStartCalled).isTrue();
verify(mContext).registerReceiver(eq(receiver), any(IntentFilter.class));
verify(pref).setChecked(true);
}
@Test @Test
public void testReceiver_goingToAirplaneMode_shouldClearPreferenceSummary() { public void testReceiver_goingToAirplaneMode_shouldClearPreferenceSummary() {
final ContentResolver cr = mock(ContentResolver.class); final ContentResolver cr = mock(ContentResolver.class);