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:
@@ -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"
|
||||
|
@@ -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);
|
||||
|
||||
|
@@ -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;
|
||||
}
|
||||
|
Reference in New Issue
Block a user