diff --git a/src/com/android/settings/AllInOneTetherSettings.java b/src/com/android/settings/AllInOneTetherSettings.java index 098e6fbee64..996c434f28e 100644 --- a/src/com/android/settings/AllInOneTetherSettings.java +++ b/src/com/android/settings/AllInOneTetherSettings.java @@ -20,7 +20,7 @@ import static android.net.ConnectivityManager.ACTION_TETHER_STATE_CHANGED; import static android.net.ConnectivityManager.TETHERING_WIFI; import static android.net.wifi.WifiManager.WIFI_AP_STATE_CHANGED_ACTION; -import static com.android.settings.network.WifiTetherDisablePreferenceController.KEY_ENABLE_WIFI_TETHERING; +import static com.android.settings.network.TetherEnabler.KEY_ENABLE_WIFI_TETHERING; import android.app.settings.SettingsEnums; import android.bluetooth.BluetoothAdapter; diff --git a/src/com/android/settings/network/BluetoothTetherPreferenceController.java b/src/com/android/settings/network/BluetoothTetherPreferenceController.java index 327b6ac37a8..d41c5aff824 100644 --- a/src/com/android/settings/network/BluetoothTetherPreferenceController.java +++ b/src/com/android/settings/network/BluetoothTetherPreferenceController.java @@ -33,34 +33,29 @@ import androidx.preference.Preference; import androidx.preference.PreferenceScreen; import androidx.preference.SwitchPreference; -import com.android.settingslib.core.AbstractPreferenceController; +import com.android.settings.core.BasePreferenceController; import com.google.common.annotations.VisibleForTesting; /** * This controller helps to manage the switch state and visibility of bluetooth tether switch * preference. It stores preference value when preference changed. - * TODO(b/147272749): Extend BasePreferenceController.java instead. */ -public final class BluetoothTetherPreferenceController extends AbstractPreferenceController +public final class BluetoothTetherPreferenceController extends BasePreferenceController implements LifecycleObserver, Preference.OnPreferenceChangeListener { private static final String TAG = "BluetoothTetherPreferenceController"; private static final boolean DEBUG = Log.isLoggable(TAG, Log.DEBUG); - public static final String PREF_KEY = "enable_bluetooth_tethering"; private final ConnectivityManager mCm; private int mBluetoothState; private Preference mPreference; private final SharedPreferences mSharedPreferences; - public BluetoothTetherPreferenceController(Context context, Lifecycle lifecycle) { - super(context); + public BluetoothTetherPreferenceController(Context context, String prefKey) { + super(context, prefKey); mCm = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE); mSharedPreferences = context.getSharedPreferences(TetherEnabler.SHARED_PREF, Context.MODE_PRIVATE); - if (lifecycle != null) { - lifecycle.addObserver(this); - } } @OnLifecycleEvent(Lifecycle.Event.ON_START) @@ -75,19 +70,13 @@ public final class BluetoothTetherPreferenceController extends AbstractPreferenc mContext.unregisterReceiver(mBluetoothChangeReceiver); } - @Override - public boolean isAvailable() { - final String[] bluetoothRegexs = mCm.getTetherableBluetoothRegexs(); - return bluetoothRegexs != null && bluetoothRegexs.length > 0; - } - @Override public void displayPreference(PreferenceScreen screen) { super.displayPreference(screen); - mPreference = screen.findPreference(PREF_KEY); + mPreference = screen.findPreference(mPreferenceKey); if (mPreference != null && mPreference instanceof SwitchPreference) { ((SwitchPreference) mPreference) - .setChecked(mSharedPreferences.getBoolean(PREF_KEY, false)); + .setChecked(mSharedPreferences.getBoolean(mPreferenceKey, false)); } } @@ -110,8 +99,13 @@ public final class BluetoothTetherPreferenceController extends AbstractPreferenc } @Override - public String getPreferenceKey() { - return PREF_KEY; + public int getAvailabilityStatus() { + final String[] bluetoothRegexs = mCm.getTetherableBluetoothRegexs(); + if (bluetoothRegexs == null || bluetoothRegexs.length == 0) { + return CONDITIONALLY_UNAVAILABLE; + } else { + return AVAILABLE; + } } @VisibleForTesting @@ -133,7 +127,7 @@ public final class BluetoothTetherPreferenceController extends AbstractPreferenc Log.d(TAG, "preference changing to " + o); } final SharedPreferences.Editor editor = mSharedPreferences.edit(); - editor.putBoolean(PREF_KEY, (Boolean) o); + editor.putBoolean(mPreferenceKey, (Boolean) o); editor.apply(); return true; } diff --git a/src/com/android/settings/network/TetherEnabler.java b/src/com/android/settings/network/TetherEnabler.java index e2b4c682168..2ea3c0498e3 100644 --- a/src/com/android/settings/network/TetherEnabler.java +++ b/src/com/android/settings/network/TetherEnabler.java @@ -61,13 +61,14 @@ public final class TetherEnabler implements SwitchWidgetController.OnSwitchChang public static final String SHARED_PREF = "tether_options"; + // This KEY is used for a shared preference value, not for any displayed preferences. + public static final String KEY_ENABLE_WIFI_TETHERING = "enable_wifi_tethering"; @VisibleForTesting - static final String WIFI_TETHER_KEY = - WifiTetherDisablePreferenceController.KEY_ENABLE_WIFI_TETHERING; + static final String WIFI_TETHER_DISABLE_KEY = "disable_wifi_tethering"; @VisibleForTesting - static final String USB_TETHER_KEY = UsbTetherPreferenceController.PREF_KEY; + static final String USB_TETHER_KEY = "enable_usb_tethering"; @VisibleForTesting - static final String BLUETOOTH_TETHER_KEY = BluetoothTetherPreferenceController.PREF_KEY; + static final String BLUETOOTH_TETHER_KEY = "enable_bluetooth_tethering"; private final SwitchWidgetController mSwitchWidgetController; private final WifiManager mWifiManager; @@ -176,7 +177,7 @@ public final class TetherEnabler implements SwitchWidgetController.OnSwitchChang private void stopTether() { // Wi-Fi tether is selected by default. - if (mSharedPreferences.getBoolean(WIFI_TETHER_KEY, true)) { + if (mSharedPreferences.getBoolean(KEY_ENABLE_WIFI_TETHERING, true)) { stopTethering(TETHERING_WIFI); } @@ -202,7 +203,7 @@ public final class TetherEnabler implements SwitchWidgetController.OnSwitchChang void startTether() { // Wi-Fi tether is selected by default. - if (mSharedPreferences.getBoolean(WIFI_TETHER_KEY, true)) { + if (mSharedPreferences.getBoolean(KEY_ENABLE_WIFI_TETHERING, true)) { startTethering(TETHERING_WIFI); } @@ -328,7 +329,7 @@ public final class TetherEnabler implements SwitchWidgetController.OnSwitchChang if (!mSwitchWidgetController.isChecked()) { return; } - if (TextUtils.equals(WIFI_TETHER_KEY, key)) { + if (TextUtils.equals(KEY_ENABLE_WIFI_TETHERING, key)) { if (sharedPreferences.getBoolean(key, true)) { startTethering(TETHERING_WIFI); } else { diff --git a/src/com/android/settings/network/UsbTetherPreferenceController.java b/src/com/android/settings/network/UsbTetherPreferenceController.java index 572248075f7..c1d3be2bb28 100644 --- a/src/com/android/settings/network/UsbTetherPreferenceController.java +++ b/src/com/android/settings/network/UsbTetherPreferenceController.java @@ -36,20 +36,18 @@ import androidx.preference.SwitchPreference; import com.android.internal.annotations.VisibleForTesting; import com.android.settings.Utils; -import com.android.settingslib.core.AbstractPreferenceController; +import com.android.settings.core.BasePreferenceController; /** * This controller helps to manage the switch state and visibility of USB tether switch * preference. It stores preference values when preference changed. - * TODO(b/147272749): Extend BasePreferenceController.java instead. * */ -public final class UsbTetherPreferenceController extends AbstractPreferenceController implements +public final class UsbTetherPreferenceController extends BasePreferenceController implements LifecycleObserver, Preference.OnPreferenceChangeListener { private static final String TAG = "UsbTetherPrefController"; private static final boolean DEBUG = Log.isLoggable(TAG, Log.DEBUG); - public static final String PREF_KEY = "enable_usb_tethering"; private final ConnectivityManager mCm; private boolean mUsbConnected; @@ -57,14 +55,11 @@ public final class UsbTetherPreferenceController extends AbstractPreferenceContr private Preference mPreference; private final SharedPreferences mSharedPreferences; - public UsbTetherPreferenceController(Context context, Lifecycle lifecycle) { - super(context); + public UsbTetherPreferenceController(Context context, String prefKey) { + super(context, prefKey); mCm = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE); mSharedPreferences = context.getSharedPreferences(TetherEnabler.SHARED_PREF, Context.MODE_PRIVATE); - if (lifecycle != null) { - lifecycle.addObserver(this); - } } @OnLifecycleEvent(Lifecycle.Event.ON_START) @@ -82,23 +77,22 @@ public final class UsbTetherPreferenceController extends AbstractPreferenceContr } @Override - public boolean isAvailable() { + public int getAvailabilityStatus() { String[] usbRegexs = mCm.getTetherableUsbRegexs(); - return usbRegexs != null && usbRegexs.length > 0 && !Utils.isMonkeyRunning(); - } - - @Override - public String getPreferenceKey() { - return PREF_KEY; + if (usbRegexs == null || usbRegexs.length == 0 || Utils.isMonkeyRunning()) { + return CONDITIONALLY_UNAVAILABLE; + } else { + return AVAILABLE; + } } @Override public void displayPreference(PreferenceScreen screen) { super.displayPreference(screen); - mPreference = screen.findPreference(PREF_KEY); + mPreference = screen.findPreference(mPreferenceKey); if (mPreference != null && mPreference instanceof SwitchPreference) { ((SwitchPreference) mPreference) - .setChecked(mSharedPreferences.getBoolean(PREF_KEY, false)); + .setChecked(mSharedPreferences.getBoolean(mPreferenceKey, false)); } } @@ -136,7 +130,7 @@ public final class UsbTetherPreferenceController extends AbstractPreferenceContr Log.d(TAG, "preference changing to " + o); } final SharedPreferences.Editor editor = mSharedPreferences.edit(); - editor.putBoolean(PREF_KEY, (Boolean) o); + editor.putBoolean(mPreferenceKey, (Boolean) o); editor.apply(); return true; } diff --git a/src/com/android/settings/network/WifiTetherDisablePreferenceController.java b/src/com/android/settings/network/WifiTetherDisablePreferenceController.java index 99fcfcd0d10..ddc2bf76586 100644 --- a/src/com/android/settings/network/WifiTetherDisablePreferenceController.java +++ b/src/com/android/settings/network/WifiTetherDisablePreferenceController.java @@ -30,7 +30,7 @@ import androidx.preference.PreferenceScreen; import androidx.preference.SwitchPreference; import com.android.internal.annotations.VisibleForTesting; -import com.android.settingslib.core.AbstractPreferenceController; +import com.android.settings.core.BasePreferenceController; /** * This controller helps to manage the switch state and visibility of wifi tether disable switch @@ -40,19 +40,13 @@ import com.android.settingslib.core.AbstractPreferenceController; * * @see BluetoothTetherPreferenceController * @see UsbTetherPreferenceController - * TODO(b/147272749): Extend BasePreferenceController.java instead. - * */ -public final class WifiTetherDisablePreferenceController extends AbstractPreferenceController +public final class WifiTetherDisablePreferenceController extends BasePreferenceController implements LifecycleObserver, Preference.OnPreferenceChangeListener, SharedPreferences.OnSharedPreferenceChangeListener { private static final String TAG = "WifiTetherDisablePreferenceController"; private static final boolean DEBUG = Log.isLoggable(TAG, Log.DEBUG); - public static final String PREF_KEY = "disable_wifi_tethering"; - - // This KEY is used for a shared preference value, not for any displayed preferences. - public static final String KEY_ENABLE_WIFI_TETHERING = "enable_wifi_tethering"; private final ConnectivityManager mCm; private boolean mBluetoothTetherEnabled; @@ -61,8 +55,8 @@ public final class WifiTetherDisablePreferenceController extends AbstractPrefere private Preference mPreference; private final SharedPreferences mSharedPreferences; - public WifiTetherDisablePreferenceController(Context context, Lifecycle lifecycle) { - super(context); + public WifiTetherDisablePreferenceController(Context context, String prefKey) { + super(context, prefKey); mSharedPreferences = context.getSharedPreferences(TetherEnabler.SHARED_PREF, Context.MODE_PRIVATE); mCm = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE); @@ -70,9 +64,6 @@ public final class WifiTetherDisablePreferenceController extends AbstractPrefere TetherEnabler.USB_TETHER_KEY, false); mBluetoothTetherEnabled = mSharedPreferences.getBoolean( TetherEnabler.BLUETOOTH_TETHER_KEY, false); - if (lifecycle != null) { - lifecycle.addObserver(this); - } } @OnLifecycleEvent(Lifecycle.Event.ON_RESUME) @@ -85,20 +76,19 @@ public final class WifiTetherDisablePreferenceController extends AbstractPrefere mSharedPreferences.unregisterOnSharedPreferenceChangeListener(this); } - @Override - public boolean isAvailable() { - final String[] wifiRegexs = mCm.getTetherableWifiRegexs(); - return wifiRegexs != null && wifiRegexs.length > 0 && shouldShow(); - } - @VisibleForTesting boolean shouldShow() { return mBluetoothTetherEnabled || mUSBTetherEnabled; } @Override - public String getPreferenceKey() { - return PREF_KEY; + public int getAvailabilityStatus() { + final String[] wifiRegexs = mCm.getTetherableWifiRegexs(); + if (wifiRegexs == null || wifiRegexs.length == 0 || !shouldShow()) { + return CONDITIONALLY_UNAVAILABLE; + } else { + return AVAILABLE; + } } @Override @@ -111,10 +101,11 @@ public final class WifiTetherDisablePreferenceController extends AbstractPrefere public void displayPreference(PreferenceScreen screen) { super.displayPreference(screen); mScreen = screen; - mPreference = screen.findPreference(PREF_KEY); + mPreference = screen.findPreference(mPreferenceKey); if (mPreference != null && mPreference instanceof SwitchPreference) { ((SwitchPreference) mPreference) - .setChecked(!mSharedPreferences.getBoolean(KEY_ENABLE_WIFI_TETHERING, true)); + .setChecked(!mSharedPreferences.getBoolean( + TetherEnabler.KEY_ENABLE_WIFI_TETHERING, true)); mPreference.setOnPreferenceChangeListener(this); } updateState(mPreference); @@ -123,7 +114,7 @@ public final class WifiTetherDisablePreferenceController extends AbstractPrefere @Override public void updateState(Preference preference) { super.updateState(preference); - setVisible(mScreen, PREF_KEY, shouldShow()); + setVisible(mScreen, mPreferenceKey, shouldShow()); } @Override @@ -162,7 +153,7 @@ public final class WifiTetherDisablePreferenceController extends AbstractPrefere Log.d(TAG, "check state changing to " + o); } final SharedPreferences.Editor editor = mSharedPreferences.edit(); - editor.putBoolean(KEY_ENABLE_WIFI_TETHERING, enableWifi); + editor.putBoolean(TetherEnabler.KEY_ENABLE_WIFI_TETHERING, enableWifi); editor.apply(); return true; } diff --git a/tests/robotests/src/com/android/settings/network/BluetoothTetherPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/network/BluetoothTetherPreferenceControllerTest.java index c76e23433c2..ec4087aa2f3 100644 --- a/tests/robotests/src/com/android/settings/network/BluetoothTetherPreferenceControllerTest.java +++ b/tests/robotests/src/com/android/settings/network/BluetoothTetherPreferenceControllerTest.java @@ -16,11 +16,12 @@ package com.android.settings.network; +import static com.android.settings.network.TetherEnabler.BLUETOOTH_TETHER_KEY; + import static com.google.common.truth.Truth.assertThat; import static org.mockito.ArgumentMatchers.any; import static org.mockito.ArgumentMatchers.eq; -import static org.mockito.Mockito.mock; import static org.mockito.Mockito.spy; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; @@ -28,7 +29,6 @@ import static org.mockito.Mockito.when; import android.content.Context; import android.net.ConnectivityManager; -import androidx.lifecycle.Lifecycle; import androidx.test.core.app.ApplicationProvider; import org.junit.Before; @@ -55,7 +55,7 @@ public class BluetoothTetherPreferenceControllerTest { when(mContext.getSystemService(Context.CONNECTIVITY_SERVICE)).thenReturn( mConnectivityManager); when(mConnectivityManager.getTetherableBluetoothRegexs()).thenReturn(new String[] {""}); - mController = new BluetoothTetherPreferenceController(mContext, mock(Lifecycle.class)); + mController = new BluetoothTetherPreferenceController(mContext, BLUETOOTH_TETHER_KEY); } @Test diff --git a/tests/robotests/src/com/android/settings/network/TetherEnablerTest.java b/tests/robotests/src/com/android/settings/network/TetherEnablerTest.java index a2d55dc2dee..6fa2251c82e 100644 --- a/tests/robotests/src/com/android/settings/network/TetherEnablerTest.java +++ b/tests/robotests/src/com/android/settings/network/TetherEnablerTest.java @@ -136,7 +136,8 @@ public class TetherEnablerTest { @Test public void onSwitchToggled_onlyStartsWifiTetherWhenNeeded() { - when(mSharedPreferences.getBoolean(TetherEnabler.WIFI_TETHER_KEY, true)).thenReturn(true); + when(mSharedPreferences.getBoolean(TetherEnabler.KEY_ENABLE_WIFI_TETHERING, true)) + .thenReturn(true); when(mWifiManager.isWifiApEnabled()).thenReturn(true); mEnabler.onSwitchToggled(true); verify(mConnectivityManager, never()).startTethering(anyInt(), anyBoolean(), any(), any()); @@ -150,7 +151,8 @@ public class TetherEnablerTest { public void onSwitchToggled_shouldStartUSBTetherWhenSelected() { SharedPreferences preference = mock(SharedPreferences.class); ReflectionHelpers.setField(mEnabler, "mSharedPreferences", preference); - when(preference.getBoolean(TetherEnabler.WIFI_TETHER_KEY, true)).thenReturn(false); + when(preference.getBoolean(TetherEnabler.KEY_ENABLE_WIFI_TETHERING, true)) + .thenReturn(false); when(preference.getBoolean(TetherEnabler.USB_TETHER_KEY, false)).thenReturn(true); when(preference.getBoolean(TetherEnabler.BLUETOOTH_TETHER_KEY, true)).thenReturn(false); diff --git a/tests/robotests/src/com/android/settings/network/UsbTetherPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/network/UsbTetherPreferenceControllerTest.java index 9127e4bfd67..c15022215cb 100644 --- a/tests/robotests/src/com/android/settings/network/UsbTetherPreferenceControllerTest.java +++ b/tests/robotests/src/com/android/settings/network/UsbTetherPreferenceControllerTest.java @@ -16,11 +16,12 @@ package com.android.settings.network; +import static com.android.settings.network.TetherEnabler.USB_TETHER_KEY; + import static com.google.common.truth.Truth.assertThat; import static org.mockito.ArgumentMatchers.any; import static org.mockito.ArgumentMatchers.eq; -import static org.mockito.Mockito.mock; import static org.mockito.Mockito.spy; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; @@ -28,7 +29,6 @@ import static org.mockito.Mockito.when; import android.content.Context; import android.net.ConnectivityManager; -import androidx.lifecycle.Lifecycle; import androidx.test.core.app.ApplicationProvider; import org.junit.Before; @@ -54,8 +54,8 @@ public class UsbTetherPreferenceControllerTest { mContext = spy(ApplicationProvider.getApplicationContext()); when(mContext.getSystemService(Context.CONNECTIVITY_SERVICE)).thenReturn( mConnectivityManager); - when(mConnectivityManager.getTetherableUsbRegexs()).thenReturn(new String[] {""}); - mController = new UsbTetherPreferenceController(mContext, mock(Lifecycle.class)); + when(mConnectivityManager.getTetherableUsbRegexs()).thenReturn(new String[]{""}); + mController = new UsbTetherPreferenceController(mContext, USB_TETHER_KEY); } @Test @@ -75,7 +75,7 @@ public class UsbTetherPreferenceControllerTest { @Test public void display_availableChangedCorrectly() { - when(mConnectivityManager.getTetherableUsbRegexs()).thenReturn(new String[] {""}); + when(mConnectivityManager.getTetherableUsbRegexs()).thenReturn(new String[]{""}); assertThat(mController.isAvailable()).isTrue(); when(mConnectivityManager.getTetherableUsbRegexs()).thenReturn(new String[0]); diff --git a/tests/robotests/src/com/android/settings/network/WifiTetherDisablePreferenceControllerTest.java b/tests/robotests/src/com/android/settings/network/WifiTetherDisablePreferenceControllerTest.java index e42c47716c0..ebb99020168 100644 --- a/tests/robotests/src/com/android/settings/network/WifiTetherDisablePreferenceControllerTest.java +++ b/tests/robotests/src/com/android/settings/network/WifiTetherDisablePreferenceControllerTest.java @@ -16,7 +16,9 @@ package com.android.settings.network; -import static com.android.settings.network.WifiTetherDisablePreferenceController.PREF_KEY; +import static com.android.settings.network.TetherEnabler.BLUETOOTH_TETHER_KEY; +import static com.android.settings.network.TetherEnabler.USB_TETHER_KEY; +import static com.android.settings.network.TetherEnabler.WIFI_TETHER_DISABLE_KEY; import static com.google.common.truth.Truth.assertThat; @@ -30,7 +32,6 @@ import android.content.Context; import android.content.SharedPreferences; import android.net.ConnectivityManager; -import androidx.lifecycle.Lifecycle; import androidx.preference.PreferenceScreen; import androidx.preference.SwitchPreference; import androidx.test.core.app.ApplicationProvider; @@ -68,10 +69,10 @@ public class WifiTetherDisablePreferenceControllerTest { when(mConnectivityManager.getTetherableWifiRegexs()).thenReturn(new String[]{""}); when(mContext.getSharedPreferences(TetherEnabler.SHARED_PREF, Context.MODE_PRIVATE)) .thenReturn(mSharedPreferences); - mController = new WifiTetherDisablePreferenceController(mContext, mock(Lifecycle.class)); + mController = new WifiTetherDisablePreferenceController(mContext, WIFI_TETHER_DISABLE_KEY); ReflectionHelpers.setField(mController, "mScreen", mPreferenceScreen); ReflectionHelpers.setField(mController, "mPreference", mPreference); - when(mPreferenceScreen.findPreference(PREF_KEY)).thenReturn(mPreference); + when(mPreferenceScreen.findPreference(WIFI_TETHER_DISABLE_KEY)).thenReturn(mPreference); } @Test @@ -103,30 +104,22 @@ public class WifiTetherDisablePreferenceControllerTest { @Test public void switch_shouldListenToUsbAndBluetooth() { - when(mSharedPreferences.getBoolean( - BluetoothTetherPreferenceController.PREF_KEY, false)).thenReturn(true); - mController.onSharedPreferenceChanged(mSharedPreferences, - BluetoothTetherPreferenceController.PREF_KEY); + when(mSharedPreferences.getBoolean(BLUETOOTH_TETHER_KEY, false)).thenReturn(true); + mController.onSharedPreferenceChanged(mSharedPreferences, BLUETOOTH_TETHER_KEY); verify(mPreference).setVisible(eq(true)); - when(mSharedPreferences.getBoolean( - UsbTetherPreferenceController.PREF_KEY, false)).thenReturn(true); - mController.onSharedPreferenceChanged(mSharedPreferences, - UsbTetherPreferenceController.PREF_KEY); + when(mSharedPreferences.getBoolean(USB_TETHER_KEY, false)).thenReturn(true); + mController.onSharedPreferenceChanged(mSharedPreferences, USB_TETHER_KEY); assertThat(mController.shouldShow()).isTrue(); - when(mSharedPreferences.getBoolean( - UsbTetherPreferenceController.PREF_KEY, false)).thenReturn(false); - mController.onSharedPreferenceChanged(mSharedPreferences, - UsbTetherPreferenceController.PREF_KEY); + when(mSharedPreferences.getBoolean(USB_TETHER_KEY, false)).thenReturn(false); + mController.onSharedPreferenceChanged(mSharedPreferences, USB_TETHER_KEY); assertThat(mController.shouldShow()).isTrue(); - when(mSharedPreferences.getBoolean( - BluetoothTetherPreferenceController.PREF_KEY, false)).thenReturn(false); + when(mSharedPreferences.getBoolean(BLUETOOTH_TETHER_KEY, false)).thenReturn(false); when(mSharedPreferences.edit()).thenReturn(mock(SharedPreferences.Editor.class)); when(mPreference.isChecked()).thenReturn(true); - mController.onSharedPreferenceChanged(mSharedPreferences, - BluetoothTetherPreferenceController.PREF_KEY); + mController.onSharedPreferenceChanged(mSharedPreferences, BLUETOOTH_TETHER_KEY); verify(mPreference).setChecked(eq(false)); verify(mPreference).setVisible(eq(false)); }