Update NFC to use a SwitchPreference

- do the switch

See bug: #15730311 Checkboxes on R side should update to Quantum/Material on/off switch

Change-Id: I78ab5b86fe6b541f9f3dc3d77115fde656d40c80
This commit is contained in:
Fabrice Di Meglio
2014-08-15 14:14:17 -07:00
parent 2be2a8a47f
commit 4325f80808
3 changed files with 18 additions and 18 deletions

View File

@@ -32,7 +32,7 @@
android:summary="%s"
android:persistent="false" />
<CheckBoxPreference
<SwitchPreference
android:key="toggle_nfc"
android:title="@string/nfc_quick_toggle_title"
android:summary="@string/nfc_quick_toggle_summary"

View File

@@ -256,7 +256,7 @@ public class WirelessSettings extends SettingsPreferenceFragment
final Activity activity = getActivity();
mAirplaneModePreference = (SwitchPreference) findPreference(KEY_TOGGLE_AIRPLANE);
CheckBoxPreference nfc = (CheckBoxPreference) findPreference(KEY_TOGGLE_NFC);
SwitchPreference nfc = (SwitchPreference) findPreference(KEY_TOGGLE_NFC);
PreferenceScreen androidBeam = (PreferenceScreen) findPreference(KEY_ANDROID_BEAM_SETTINGS);
CheckBoxPreference nsd = (CheckBoxPreference) findPreference(KEY_TOGGLE_NSD);

View File

@@ -21,10 +21,10 @@ import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.nfc.NfcAdapter;
import android.preference.CheckBoxPreference;
import android.preference.Preference;
import android.preference.PreferenceScreen;
import android.preference.SwitchPreference;
import com.android.settings.R;
/**
@@ -34,7 +34,7 @@ import com.android.settings.R;
*/
public class NfcEnabler implements Preference.OnPreferenceChangeListener {
private final Context mContext;
private final CheckBoxPreference mCheckbox;
private final SwitchPreference mSwitch;
private final PreferenceScreen mAndroidBeam;
private final NfcAdapter mNfcAdapter;
private final IntentFilter mIntentFilter;
@@ -50,16 +50,16 @@ public class NfcEnabler implements Preference.OnPreferenceChangeListener {
}
};
public NfcEnabler(Context context, CheckBoxPreference checkBoxPreference,
public NfcEnabler(Context context, SwitchPreference switchPreference,
PreferenceScreen androidBeam) {
mContext = context;
mCheckbox = checkBoxPreference;
mSwitch = switchPreference;
mAndroidBeam = androidBeam;
mNfcAdapter = NfcAdapter.getDefaultAdapter(context);
if (mNfcAdapter == null) {
// NFC is not supported
mCheckbox.setEnabled(false);
mSwitch.setEnabled(false);
mAndroidBeam.setEnabled(false);
mIntentFilter = null;
return;
@@ -73,7 +73,7 @@ public class NfcEnabler implements Preference.OnPreferenceChangeListener {
}
handleNfcStateChanged(mNfcAdapter.getAdapterState());
mContext.registerReceiver(mReceiver, mIntentFilter);
mCheckbox.setOnPreferenceChangeListener(this);
mSwitch.setOnPreferenceChangeListener(this);
}
public void pause() {
@@ -81,14 +81,14 @@ public class NfcEnabler implements Preference.OnPreferenceChangeListener {
return;
}
mContext.unregisterReceiver(mReceiver);
mCheckbox.setOnPreferenceChangeListener(null);
mSwitch.setOnPreferenceChangeListener(null);
}
public boolean onPreferenceChange(Preference preference, Object value) {
// Turn NFC on/off
final boolean desiredState = (Boolean) value;
mCheckbox.setEnabled(false);
mSwitch.setEnabled(false);
if (desiredState) {
mNfcAdapter.enable();
@@ -102,14 +102,14 @@ public class NfcEnabler implements Preference.OnPreferenceChangeListener {
private void handleNfcStateChanged(int newState) {
switch (newState) {
case NfcAdapter.STATE_OFF:
mCheckbox.setChecked(false);
mCheckbox.setEnabled(true);
mSwitch.setChecked(false);
mSwitch.setEnabled(true);
mAndroidBeam.setEnabled(false);
mAndroidBeam.setSummary(R.string.android_beam_disabled_summary);
break;
case NfcAdapter.STATE_ON:
mCheckbox.setChecked(true);
mCheckbox.setEnabled(true);
mSwitch.setChecked(true);
mSwitch.setEnabled(true);
mAndroidBeam.setEnabled(true);
if (mNfcAdapter.isNdefPushEnabled()) {
mAndroidBeam.setSummary(R.string.android_beam_on_summary);
@@ -118,13 +118,13 @@ public class NfcEnabler implements Preference.OnPreferenceChangeListener {
}
break;
case NfcAdapter.STATE_TURNING_ON:
mCheckbox.setChecked(true);
mCheckbox.setEnabled(false);
mSwitch.setChecked(true);
mSwitch.setEnabled(false);
mAndroidBeam.setEnabled(false);
break;
case NfcAdapter.STATE_TURNING_OFF:
mCheckbox.setChecked(false);
mCheckbox.setEnabled(false);
mSwitch.setChecked(false);
mSwitch.setEnabled(false);
mAndroidBeam.setEnabled(false);
break;
}