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:
@@ -32,20 +32,18 @@ import androidx.lifecycle.LifecycleObserver;
|
||||
import androidx.lifecycle.OnLifecycleEvent;
|
||||
import androidx.preference.Preference;
|
||||
import androidx.preference.PreferenceScreen;
|
||||
import androidx.preference.SwitchPreference;
|
||||
|
||||
import com.android.internal.annotations.VisibleForTesting;
|
||||
import com.android.settings.Utils;
|
||||
import com.android.settings.core.BasePreferenceController;
|
||||
import com.android.settings.core.TogglePreferenceController;
|
||||
|
||||
/**
|
||||
* This controller helps to manage the switch state and visibility of USB tether switch
|
||||
* preference. It stores preference values when preference changed.
|
||||
*
|
||||
*/
|
||||
public final class UsbTetherPreferenceController extends BasePreferenceController implements
|
||||
LifecycleObserver, Preference.OnPreferenceChangeListener,
|
||||
SharedPreferences.OnSharedPreferenceChangeListener {
|
||||
public final class UsbTetherPreferenceController extends TogglePreferenceController implements
|
||||
LifecycleObserver, SharedPreferences.OnSharedPreferenceChangeListener {
|
||||
|
||||
private static final String TAG = "UsbTetherPrefController";
|
||||
private static final boolean DEBUG = Log.isLoggable(TAG, Log.DEBUG);
|
||||
@@ -63,6 +61,22 @@ public final class UsbTetherPreferenceController extends BasePreferenceControlle
|
||||
context.getSharedPreferences(TetherEnabler.SHARED_PREF, Context.MODE_PRIVATE);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isChecked() {
|
||||
return mSharedPreferences.getBoolean(mPreferenceKey, false);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean setChecked(boolean isChecked) {
|
||||
if (DEBUG) {
|
||||
Log.d(TAG, "preference changing to " + isChecked);
|
||||
}
|
||||
final SharedPreferences.Editor editor = mSharedPreferences.edit();
|
||||
editor.putBoolean(mPreferenceKey, isChecked);
|
||||
editor.apply();
|
||||
return true;
|
||||
}
|
||||
|
||||
@OnLifecycleEvent(Lifecycle.Event.ON_START)
|
||||
public void onStart() {
|
||||
mMassStorageActive = Environment.MEDIA_SHARED.equals(Environment.getExternalStorageState());
|
||||
@@ -107,15 +121,9 @@ public final class UsbTetherPreferenceController extends BasePreferenceControlle
|
||||
@Override
|
||||
public void updateState(Preference preference) {
|
||||
super.updateState(preference);
|
||||
if (preference == null) {
|
||||
return;
|
||||
if (preference != null) {
|
||||
preference.setEnabled(mUsbConnected && !mMassStorageActive);
|
||||
}
|
||||
|
||||
if (preference instanceof SwitchPreference) {
|
||||
((SwitchPreference) preference)
|
||||
.setChecked(mSharedPreferences.getBoolean(mPreferenceKey, false));
|
||||
}
|
||||
preference.setEnabled(mUsbConnected && !mMassStorageActive);
|
||||
}
|
||||
|
||||
@VisibleForTesting
|
||||
@@ -134,17 +142,6 @@ public final class UsbTetherPreferenceController extends BasePreferenceControlle
|
||||
}
|
||||
};
|
||||
|
||||
@Override
|
||||
public boolean onPreferenceChange(Preference preference, Object o) {
|
||||
if (DEBUG) {
|
||||
Log.d(TAG, "preference changing to " + o);
|
||||
}
|
||||
final SharedPreferences.Editor editor = mSharedPreferences.edit();
|
||||
editor.putBoolean(mPreferenceKey, (Boolean) o);
|
||||
editor.apply();
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) {
|
||||
if (TextUtils.equals(mPreferenceKey, key)) {
|
||||
|
Reference in New Issue
Block a user