Refactor nfc preference controller
- Remove BaseNfcPreferenceController. - NfcPreferenceController inherit from TogglePreferenceController. - AndroidBeamPreferenceController inherit from BasePreferenceController. - Override getIntentFilter in NfcPreferenceController to listen changes. - Add an API (hasAsyncUpdate) into BasePreferenceController to distinguish the setting which is updated asynchronously. Change-Id: I7c9c48ea7f1ad01a02524beabf9d30baa3db891f Fixes: 67997761 Fixes: 74887543 Test: RunSettingsRoboTests
This commit is contained in:
@@ -18,52 +18,21 @@ package com.android.settings.nfc;
|
||||
|
||||
import android.content.Context;
|
||||
import android.nfc.NfcAdapter;
|
||||
import androidx.preference.Preference;
|
||||
import androidx.preference.SwitchPreference;
|
||||
|
||||
|
||||
/**
|
||||
* NfcEnabler is a helper to manage the Nfc on/off checkbox preference. It turns on/off Nfc
|
||||
* and ensures the summary of the preference reflects the current state.
|
||||
*/
|
||||
public class NfcEnabler extends BaseNfcEnabler implements Preference.OnPreferenceChangeListener {
|
||||
public class NfcEnabler extends BaseNfcEnabler {
|
||||
private final SwitchPreference mPreference;
|
||||
|
||||
public NfcEnabler(Context context, SwitchPreference preference) {
|
||||
super(context);
|
||||
|
||||
mPreference = preference;
|
||||
}
|
||||
|
||||
public void resume() {
|
||||
super.resume();
|
||||
if (isNfcAvailable()) {
|
||||
mPreference.setOnPreferenceChangeListener(this);
|
||||
}
|
||||
}
|
||||
|
||||
public void pause() {
|
||||
super.pause();
|
||||
if (isNfcAvailable()) {
|
||||
mPreference.setOnPreferenceChangeListener(null);
|
||||
}
|
||||
}
|
||||
|
||||
public boolean onPreferenceChange(Preference preference, Object value) {
|
||||
// Turn NFC on/off
|
||||
|
||||
final boolean desiredState = (Boolean) value;
|
||||
mPreference.setChecked(desiredState);
|
||||
mPreference.setEnabled(false);
|
||||
|
||||
if (desiredState) {
|
||||
mNfcAdapter.enable();
|
||||
} else {
|
||||
mNfcAdapter.disable();
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void handleNfcStateChanged(int newState) {
|
||||
switch (newState) {
|
||||
|
Reference in New Issue
Block a user