Let tether preference controllers extend TogglePreferenceController

Refactored USBTether, BluetoothTether and WifiTetherDisable preference
controllers to extend TogglePreferenceControllers, since they are all
SwitchPreference.

Bug: 150634051
Test: UsbTetherPreferenceControllerTest,
BluetoothTetherPreferenceControllerTest,
WifiTetherDisablePreferenceControllerTest,
CodeInspectionTest

Change-Id: I3b1d1c4e678c65ced8dd506a87c3c43ed300d64f
This commit is contained in:
Zhen Zhang
2020-03-03 11:28:18 -08:00
parent 084875a104
commit abb734920d
3 changed files with 61 additions and 69 deletions

View File

@@ -31,7 +31,7 @@ import androidx.preference.SwitchPreference;
import com.android.internal.annotations.VisibleForTesting;
import com.android.settings.R;
import com.android.settings.core.BasePreferenceController;
import com.android.settings.core.TogglePreferenceController;
import com.android.settingslib.TetherUtil;
/**
@@ -43,9 +43,8 @@ import com.android.settingslib.TetherUtil;
* @see BluetoothTetherPreferenceController
* @see UsbTetherPreferenceController
*/
public final class WifiTetherDisablePreferenceController extends BasePreferenceController
implements LifecycleObserver, Preference.OnPreferenceChangeListener,
SharedPreferences.OnSharedPreferenceChangeListener {
public final class WifiTetherDisablePreferenceController extends TogglePreferenceController
implements LifecycleObserver, SharedPreferences.OnSharedPreferenceChangeListener {
private static final String TAG = "WifiTetherDisablePreferenceController";
private static final boolean DEBUG = Log.isLoggable(TAG, Log.DEBUG);
@@ -68,6 +67,24 @@ public final class WifiTetherDisablePreferenceController extends BasePreferenceC
TetherEnabler.BLUETOOTH_TETHER_KEY, false);
}
@Override
public boolean isChecked() {
return !mSharedPreferences.getBoolean(TetherEnabler.KEY_ENABLE_WIFI_TETHERING, true);
}
@Override
public boolean setChecked(boolean isChecked) {
// The shared preference's value is in the opposite of this preference's value.
final boolean enableWifi = !isChecked;
if (DEBUG) {
Log.d(TAG, "check state changing to " + isChecked);
}
final SharedPreferences.Editor editor = mSharedPreferences.edit();
editor.putBoolean(TetherEnabler.KEY_ENABLE_WIFI_TETHERING, enableWifi);
editor.apply();
return true;
}
@OnLifecycleEvent(Lifecycle.Event.ON_RESUME)
public void onResume() {
mSharedPreferences.registerOnSharedPreferenceChangeListener(this);
@@ -119,12 +136,6 @@ public final class WifiTetherDisablePreferenceController extends BasePreferenceC
@Override
public void updateState(Preference preference) {
super.updateState(preference);
if (preference instanceof SwitchPreference) {
((SwitchPreference) preference)
.setChecked(!mSharedPreferences.getBoolean(
TetherEnabler.KEY_ENABLE_WIFI_TETHERING, true));
}
setVisible(mScreen, mPreferenceKey, shouldShow());
}
@@ -167,17 +178,4 @@ public final class WifiTetherDisablePreferenceController extends BasePreferenceC
updateState(mPreference);
}
}
@Override
public boolean onPreferenceChange(Preference preference, Object o) {
// The shared preference's value is in the opposite of this preference's value.
final boolean enableWifi = !(boolean) o;
if (DEBUG) {
Log.d(TAG, "check state changing to " + o);
}
final SharedPreferences.Editor editor = mSharedPreferences.edit();
editor.putBoolean(TetherEnabler.KEY_ENABLE_WIFI_TETHERING, enableWifi);
editor.apply();
return true;
}
}