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:summary="%s"
android:persistent="false" /> android:persistent="false" />
<CheckBoxPreference <SwitchPreference
android:key="toggle_nfc" android:key="toggle_nfc"
android:title="@string/nfc_quick_toggle_title" android:title="@string/nfc_quick_toggle_title"
android:summary="@string/nfc_quick_toggle_summary" android:summary="@string/nfc_quick_toggle_summary"

View File

@@ -256,7 +256,7 @@ public class WirelessSettings extends SettingsPreferenceFragment
final Activity activity = getActivity(); final Activity activity = getActivity();
mAirplaneModePreference = (SwitchPreference) findPreference(KEY_TOGGLE_AIRPLANE); 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); PreferenceScreen androidBeam = (PreferenceScreen) findPreference(KEY_ANDROID_BEAM_SETTINGS);
CheckBoxPreference nsd = (CheckBoxPreference) findPreference(KEY_TOGGLE_NSD); CheckBoxPreference nsd = (CheckBoxPreference) findPreference(KEY_TOGGLE_NSD);

View File

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