Loading src/com/android/settings/AllInOneTetherSettings.java +1 −1 Original line number Diff line number Diff line Loading @@ -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; Loading src/com/android/settings/network/BluetoothTetherPreferenceController.java +14 −20 Original line number Diff line number Diff line Loading @@ -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) Loading @@ -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)); } } Loading @@ -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 Loading @@ -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; } Loading src/com/android/settings/network/TetherEnabler.java +8 −7 Original line number Diff line number Diff line Loading @@ -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; Loading Loading @@ -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); } Loading @@ -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); } Loading Loading @@ -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 { Loading src/com/android/settings/network/UsbTetherPreferenceController.java +13 −19 Original line number Diff line number Diff line Loading @@ -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; Loading @@ -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) Loading @@ -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(); if (usbRegexs == null || usbRegexs.length == 0 || Utils.isMonkeyRunning()) { return CONDITIONALLY_UNAVAILABLE; } else { return AVAILABLE; } @Override public String getPreferenceKey() { return PREF_KEY; } @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)); } } Loading Loading @@ -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; } Loading src/com/android/settings/network/WifiTetherDisablePreferenceController.java +16 −25 Original line number Diff line number Diff line Loading @@ -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 Loading @@ -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; Loading @@ -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); Loading @@ -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) Loading @@ -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 Loading @@ -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); Loading @@ -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 Loading Loading @@ -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; } Loading Loading
src/com/android/settings/AllInOneTetherSettings.java +1 −1 Original line number Diff line number Diff line Loading @@ -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; Loading
src/com/android/settings/network/BluetoothTetherPreferenceController.java +14 −20 Original line number Diff line number Diff line Loading @@ -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) Loading @@ -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)); } } Loading @@ -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 Loading @@ -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; } Loading
src/com/android/settings/network/TetherEnabler.java +8 −7 Original line number Diff line number Diff line Loading @@ -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; Loading Loading @@ -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); } Loading @@ -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); } Loading Loading @@ -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 { Loading
src/com/android/settings/network/UsbTetherPreferenceController.java +13 −19 Original line number Diff line number Diff line Loading @@ -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; Loading @@ -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) Loading @@ -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(); if (usbRegexs == null || usbRegexs.length == 0 || Utils.isMonkeyRunning()) { return CONDITIONALLY_UNAVAILABLE; } else { return AVAILABLE; } @Override public String getPreferenceKey() { return PREF_KEY; } @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)); } } Loading Loading @@ -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; } Loading
src/com/android/settings/network/WifiTetherDisablePreferenceController.java +16 −25 Original line number Diff line number Diff line Loading @@ -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 Loading @@ -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; Loading @@ -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); Loading @@ -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) Loading @@ -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 Loading @@ -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); Loading @@ -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 Loading Loading @@ -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; } Loading