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:
@@ -31,9 +31,8 @@ import androidx.lifecycle.LifecycleObserver;
|
|||||||
import androidx.lifecycle.OnLifecycleEvent;
|
import androidx.lifecycle.OnLifecycleEvent;
|
||||||
import androidx.preference.Preference;
|
import androidx.preference.Preference;
|
||||||
import androidx.preference.PreferenceScreen;
|
import androidx.preference.PreferenceScreen;
|
||||||
import androidx.preference.SwitchPreference;
|
|
||||||
|
|
||||||
import com.android.settings.core.BasePreferenceController;
|
import com.android.settings.core.TogglePreferenceController;
|
||||||
|
|
||||||
import com.google.common.annotations.VisibleForTesting;
|
import com.google.common.annotations.VisibleForTesting;
|
||||||
|
|
||||||
@@ -41,9 +40,8 @@ import com.google.common.annotations.VisibleForTesting;
|
|||||||
* This controller helps to manage the switch state and visibility of bluetooth tether switch
|
* This controller helps to manage the switch state and visibility of bluetooth tether switch
|
||||||
* preference. It stores preference value when preference changed.
|
* preference. It stores preference value when preference changed.
|
||||||
*/
|
*/
|
||||||
public final class BluetoothTetherPreferenceController extends BasePreferenceController
|
public final class BluetoothTetherPreferenceController extends TogglePreferenceController
|
||||||
implements LifecycleObserver, Preference.OnPreferenceChangeListener,
|
implements LifecycleObserver, SharedPreferences.OnSharedPreferenceChangeListener {
|
||||||
SharedPreferences.OnSharedPreferenceChangeListener {
|
|
||||||
|
|
||||||
private static final String TAG = "BluetoothTetherPreferenceController";
|
private static final String TAG = "BluetoothTetherPreferenceController";
|
||||||
private static final boolean DEBUG = Log.isLoggable(TAG, Log.DEBUG);
|
private static final boolean DEBUG = Log.isLoggable(TAG, Log.DEBUG);
|
||||||
@@ -59,6 +57,22 @@ public final class BluetoothTetherPreferenceController extends BasePreferenceCon
|
|||||||
context.getSharedPreferences(TetherEnabler.SHARED_PREF, Context.MODE_PRIVATE);
|
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)
|
@OnLifecycleEvent(Lifecycle.Event.ON_START)
|
||||||
public void onStart() {
|
public void onStart() {
|
||||||
mBluetoothState = BluetoothAdapter.getDefaultAdapter().getState();
|
mBluetoothState = BluetoothAdapter.getDefaultAdapter().getState();
|
||||||
@@ -107,11 +121,6 @@ public final class BluetoothTetherPreferenceController extends BasePreferenceCon
|
|||||||
default:
|
default:
|
||||||
preference.setEnabled(false);
|
preference.setEnabled(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (preference instanceof SwitchPreference) {
|
|
||||||
((SwitchPreference) preference)
|
|
||||||
.setChecked(mSharedPreferences.getBoolean(mPreferenceKey, false));
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -136,18 +145,6 @@ public final class BluetoothTetherPreferenceController extends BasePreferenceCon
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
@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
|
@Override
|
||||||
public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) {
|
public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) {
|
||||||
if (TextUtils.equals(mPreferenceKey, key)) {
|
if (TextUtils.equals(mPreferenceKey, key)) {
|
||||||
|
|||||||
@@ -32,20 +32,18 @@ import androidx.lifecycle.LifecycleObserver;
|
|||||||
import androidx.lifecycle.OnLifecycleEvent;
|
import androidx.lifecycle.OnLifecycleEvent;
|
||||||
import androidx.preference.Preference;
|
import androidx.preference.Preference;
|
||||||
import androidx.preference.PreferenceScreen;
|
import androidx.preference.PreferenceScreen;
|
||||||
import androidx.preference.SwitchPreference;
|
|
||||||
|
|
||||||
import com.android.internal.annotations.VisibleForTesting;
|
import com.android.internal.annotations.VisibleForTesting;
|
||||||
import com.android.settings.Utils;
|
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
|
* This controller helps to manage the switch state and visibility of USB tether switch
|
||||||
* preference. It stores preference values when preference changed.
|
* preference. It stores preference values when preference changed.
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
public final class UsbTetherPreferenceController extends BasePreferenceController implements
|
public final class UsbTetherPreferenceController extends TogglePreferenceController implements
|
||||||
LifecycleObserver, Preference.OnPreferenceChangeListener,
|
LifecycleObserver, SharedPreferences.OnSharedPreferenceChangeListener {
|
||||||
SharedPreferences.OnSharedPreferenceChangeListener {
|
|
||||||
|
|
||||||
private static final String TAG = "UsbTetherPrefController";
|
private static final String TAG = "UsbTetherPrefController";
|
||||||
private static final boolean DEBUG = Log.isLoggable(TAG, Log.DEBUG);
|
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);
|
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)
|
@OnLifecycleEvent(Lifecycle.Event.ON_START)
|
||||||
public void onStart() {
|
public void onStart() {
|
||||||
mMassStorageActive = Environment.MEDIA_SHARED.equals(Environment.getExternalStorageState());
|
mMassStorageActive = Environment.MEDIA_SHARED.equals(Environment.getExternalStorageState());
|
||||||
@@ -107,15 +121,9 @@ public final class UsbTetherPreferenceController extends BasePreferenceControlle
|
|||||||
@Override
|
@Override
|
||||||
public void updateState(Preference preference) {
|
public void updateState(Preference preference) {
|
||||||
super.updateState(preference);
|
super.updateState(preference);
|
||||||
if (preference == null) {
|
if (preference != null) {
|
||||||
return;
|
preference.setEnabled(mUsbConnected && !mMassStorageActive);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (preference instanceof SwitchPreference) {
|
|
||||||
((SwitchPreference) preference)
|
|
||||||
.setChecked(mSharedPreferences.getBoolean(mPreferenceKey, false));
|
|
||||||
}
|
|
||||||
preference.setEnabled(mUsbConnected && !mMassStorageActive);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@VisibleForTesting
|
@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
|
@Override
|
||||||
public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) {
|
public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) {
|
||||||
if (TextUtils.equals(mPreferenceKey, key)) {
|
if (TextUtils.equals(mPreferenceKey, key)) {
|
||||||
|
|||||||
@@ -31,7 +31,7 @@ import androidx.preference.SwitchPreference;
|
|||||||
|
|
||||||
import com.android.internal.annotations.VisibleForTesting;
|
import com.android.internal.annotations.VisibleForTesting;
|
||||||
import com.android.settings.R;
|
import com.android.settings.R;
|
||||||
import com.android.settings.core.BasePreferenceController;
|
import com.android.settings.core.TogglePreferenceController;
|
||||||
import com.android.settingslib.TetherUtil;
|
import com.android.settingslib.TetherUtil;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -43,9 +43,8 @@ import com.android.settingslib.TetherUtil;
|
|||||||
* @see BluetoothTetherPreferenceController
|
* @see BluetoothTetherPreferenceController
|
||||||
* @see UsbTetherPreferenceController
|
* @see UsbTetherPreferenceController
|
||||||
*/
|
*/
|
||||||
public final class WifiTetherDisablePreferenceController extends BasePreferenceController
|
public final class WifiTetherDisablePreferenceController extends TogglePreferenceController
|
||||||
implements LifecycleObserver, Preference.OnPreferenceChangeListener,
|
implements LifecycleObserver, SharedPreferences.OnSharedPreferenceChangeListener {
|
||||||
SharedPreferences.OnSharedPreferenceChangeListener {
|
|
||||||
|
|
||||||
private static final String TAG = "WifiTetherDisablePreferenceController";
|
private static final String TAG = "WifiTetherDisablePreferenceController";
|
||||||
private static final boolean DEBUG = Log.isLoggable(TAG, Log.DEBUG);
|
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);
|
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)
|
@OnLifecycleEvent(Lifecycle.Event.ON_RESUME)
|
||||||
public void onResume() {
|
public void onResume() {
|
||||||
mSharedPreferences.registerOnSharedPreferenceChangeListener(this);
|
mSharedPreferences.registerOnSharedPreferenceChangeListener(this);
|
||||||
@@ -119,12 +136,6 @@ public final class WifiTetherDisablePreferenceController extends BasePreferenceC
|
|||||||
@Override
|
@Override
|
||||||
public void updateState(Preference preference) {
|
public void updateState(Preference preference) {
|
||||||
super.updateState(preference);
|
super.updateState(preference);
|
||||||
|
|
||||||
if (preference instanceof SwitchPreference) {
|
|
||||||
((SwitchPreference) preference)
|
|
||||||
.setChecked(!mSharedPreferences.getBoolean(
|
|
||||||
TetherEnabler.KEY_ENABLE_WIFI_TETHERING, true));
|
|
||||||
}
|
|
||||||
setVisible(mScreen, mPreferenceKey, shouldShow());
|
setVisible(mScreen, mPreferenceKey, shouldShow());
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -167,17 +178,4 @@ public final class WifiTetherDisablePreferenceController extends BasePreferenceC
|
|||||||
updateState(mPreference);
|
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;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user