Loading src/com/android/settings/WirelessSettings.java +13 −15 Original line number Diff line number Diff line Loading @@ -94,8 +94,7 @@ public class WirelessSettings extends SettingsPreferenceFragment { final Activity activity = getActivity(); mAirplaneModePreference = (CheckBoxPreference) findPreference(KEY_TOGGLE_AIRPLANE); CheckBoxPreference nfc = (CheckBoxPreference) findPreference(KEY_TOGGLE_NFC); PreferenceScreen zeroclick = (PreferenceScreen) findPreference(KEY_ZEROCLICK_SETTINGS); PreferenceScreen zeroclick = (PreferenceScreen) findPreference(KEY_ZEROCLICK_SETTINGS); mAirplaneModeEnabler = new AirplaneModeEnabler(activity, mAirplaneModePreference); mNfcEnabler = new NfcEnabler(activity, nfc, zeroclick); Loading @@ -113,11 +112,18 @@ public class WirelessSettings extends SettingsPreferenceFragment { // No bluetooth-dependent items in the list. Code kept in case one is added later. } // Manually set dependencies for NFC when not toggleable. if (toggleable == null || !toggleable.contains(Settings.System.RADIO_NFC)) { findPreference(KEY_TOGGLE_NFC).setDependency(KEY_TOGGLE_AIRPLANE); findPreference(KEY_ZEROCLICK_SETTINGS).setDependency(KEY_TOGGLE_AIRPLANE); } // Remove NFC if its not available mNfcAdapter = NfcAdapter.getDefaultAdapter(activity); if (mNfcAdapter == null) { getPreferenceScreen().removePreference(nfc); getPreferenceScreen().removePreference(zeroclick); mNfcEnabler = null; } // Remove Mobile Network Settings if it's a wifi-only device. Loading Loading @@ -176,18 +182,8 @@ public class WirelessSettings extends SettingsPreferenceFragment { super.onResume(); mAirplaneModeEnabler.resume(); if (mNfcEnabler != null) { mNfcEnabler.resume(); if (mNfcAdapter != null) { // Update zero-click subtitle Preference zeroClick = getPreferenceScreen(). findPreference(KEY_ZEROCLICK_SETTINGS); if (mNfcAdapter.zeroClickEnabled()) { zeroClick.setSummary(R.string.zeroclick_on_summary); } else { zeroClick.setSummary(R.string.zeroclick_off_summary); } } } Loading @@ -196,8 +192,10 @@ public class WirelessSettings extends SettingsPreferenceFragment { super.onPause(); mAirplaneModeEnabler.pause(); if (mNfcEnabler != null) { mNfcEnabler.pause(); } } @Override public void onActivityResult(int requestCode, int resultCode, Intent data) { Loading src/com/android/settings/nfc/NfcEnabler.java +45 −44 Original line number Diff line number Diff line Loading @@ -27,6 +27,8 @@ import android.preference.Preference; import android.preference.PreferenceScreen; import android.util.Log; import com.android.settings.R; /** * NfcEnabler is a helper to manage the Nfc on/off checkbox preference. It is * turns on/off Nfc and ensures the summary of the preference reflects the Loading @@ -46,16 +48,13 @@ public class NfcEnabler implements Preference.OnPreferenceChangeListener { @Override public void onReceive(Context context, Intent intent) { String action = intent.getAction(); if (NfcAdapter.ACTION_ADAPTER_STATE_CHANGE.equals(action)) { handleNfcStateChanged(intent.getBooleanExtra( NfcAdapter.EXTRA_NEW_BOOLEAN_STATE, false)); if (NfcAdapter.ACTION_ADAPTER_STATE_CHANGED.equals(action)) { handleNfcStateChanged(intent.getIntExtra(NfcAdapter.EXTRA_ADAPTER_STATE, NfcAdapter.STATE_OFF)); } } }; private boolean mNfcState; public NfcEnabler(Context context, CheckBoxPreference checkBoxPreference, PreferenceScreen zeroclick) { mContext = context; Loading @@ -66,20 +65,20 @@ public class NfcEnabler implements Preference.OnPreferenceChangeListener { if (mNfcAdapter == null) { // NFC is not supported mCheckbox.setEnabled(false); mZeroClick.setEnabled(false); mIntentFilter = null; return; } mIntentFilter = new IntentFilter(NfcAdapter.ACTION_ADAPTER_STATE_CHANGE); mIntentFilter = new IntentFilter(NfcAdapter.ACTION_ADAPTER_STATE_CHANGED); } public void resume() { if (mNfcAdapter == null) { return; } handleNfcStateChanged(mNfcAdapter.getAdapterState()); mContext.registerReceiver(mReceiver, mIntentFilter); mCheckbox.setOnPreferenceChangeListener(this); mNfcState = mNfcAdapter.isEnabled(); mCheckbox.setChecked(mNfcState); } public void pause() { Loading @@ -96,41 +95,43 @@ public class NfcEnabler implements Preference.OnPreferenceChangeListener { final boolean desiredState = (Boolean) value; mCheckbox.setEnabled(false); // Start async update of the NFC adapter state, as the API is // unfortunately blocking... new Thread("toggleNFC") { @Override public void run() { Log.d(TAG, "Setting NFC enabled state to: " + desiredState); boolean success = false; if (desiredState) { success = mNfcAdapter.enable(); mNfcAdapter.enable(); } else { success = mNfcAdapter.disable(); } if (success) { Log.d(TAG, "Successfully changed NFC enabled state to " + desiredState); mHandler.post(new Runnable() { public void run() { handleNfcStateChanged(desiredState); } }); } else { Log.w(TAG, "Error setting NFC enabled state to " + desiredState); mHandler.post(new Runnable() { public void run() { mCheckbox.setEnabled(true); mNfcAdapter.disable(); } }); } } }.start(); return false; } private void handleNfcStateChanged(boolean newState) { mCheckbox.setChecked(newState); private void handleNfcStateChanged(int newState) { switch (newState) { case NfcAdapter.STATE_OFF: mCheckbox.setChecked(false); mCheckbox.setEnabled(true); mZeroClick.setEnabled(newState); mZeroClick.setEnabled(false); mZeroClick.setSummary(R.string.zeroclick_off_summary); break; case NfcAdapter.STATE_ON: mCheckbox.setChecked(true); mCheckbox.setEnabled(true); mZeroClick.setEnabled(true); if (mNfcAdapter.isZeroClickEnabled()) { mZeroClick.setSummary(R.string.zeroclick_on_summary); } else { mZeroClick.setSummary(R.string.zeroclick_off_summary); } break; case NfcAdapter.STATE_TURNING_ON: mCheckbox.setChecked(true); mCheckbox.setEnabled(false); mZeroClick.setEnabled(false); break; case NfcAdapter.STATE_TURNING_OFF: mCheckbox.setChecked(false); mCheckbox.setEnabled(false); mZeroClick.setEnabled(false); break; } } } src/com/android/settings/nfc/ZeroClick.java +2 −2 Original line number Diff line number Diff line Loading @@ -63,7 +63,7 @@ public class ZeroClick extends Fragment mActionBarSwitch.setOnCheckedChangeListener(this); mNfcAdapter = NfcAdapter.getDefaultAdapter(getActivity()); mActionBarSwitch.setChecked(mNfcAdapter.zeroClickEnabled()); mActionBarSwitch.setChecked(mNfcAdapter.isZeroClickEnabled()); } @Override Loading @@ -77,7 +77,7 @@ public class ZeroClick extends Fragment private void initView(View view) { mNfcAdapter = NfcAdapter.getDefaultAdapter(getActivity()); mActionBarSwitch.setOnCheckedChangeListener(this); mActionBarSwitch.setChecked(mNfcAdapter.zeroClickEnabled()); mActionBarSwitch.setChecked(mNfcAdapter.isZeroClickEnabled()); } @Override Loading Loading
src/com/android/settings/WirelessSettings.java +13 −15 Original line number Diff line number Diff line Loading @@ -94,8 +94,7 @@ public class WirelessSettings extends SettingsPreferenceFragment { final Activity activity = getActivity(); mAirplaneModePreference = (CheckBoxPreference) findPreference(KEY_TOGGLE_AIRPLANE); CheckBoxPreference nfc = (CheckBoxPreference) findPreference(KEY_TOGGLE_NFC); PreferenceScreen zeroclick = (PreferenceScreen) findPreference(KEY_ZEROCLICK_SETTINGS); PreferenceScreen zeroclick = (PreferenceScreen) findPreference(KEY_ZEROCLICK_SETTINGS); mAirplaneModeEnabler = new AirplaneModeEnabler(activity, mAirplaneModePreference); mNfcEnabler = new NfcEnabler(activity, nfc, zeroclick); Loading @@ -113,11 +112,18 @@ public class WirelessSettings extends SettingsPreferenceFragment { // No bluetooth-dependent items in the list. Code kept in case one is added later. } // Manually set dependencies for NFC when not toggleable. if (toggleable == null || !toggleable.contains(Settings.System.RADIO_NFC)) { findPreference(KEY_TOGGLE_NFC).setDependency(KEY_TOGGLE_AIRPLANE); findPreference(KEY_ZEROCLICK_SETTINGS).setDependency(KEY_TOGGLE_AIRPLANE); } // Remove NFC if its not available mNfcAdapter = NfcAdapter.getDefaultAdapter(activity); if (mNfcAdapter == null) { getPreferenceScreen().removePreference(nfc); getPreferenceScreen().removePreference(zeroclick); mNfcEnabler = null; } // Remove Mobile Network Settings if it's a wifi-only device. Loading Loading @@ -176,18 +182,8 @@ public class WirelessSettings extends SettingsPreferenceFragment { super.onResume(); mAirplaneModeEnabler.resume(); if (mNfcEnabler != null) { mNfcEnabler.resume(); if (mNfcAdapter != null) { // Update zero-click subtitle Preference zeroClick = getPreferenceScreen(). findPreference(KEY_ZEROCLICK_SETTINGS); if (mNfcAdapter.zeroClickEnabled()) { zeroClick.setSummary(R.string.zeroclick_on_summary); } else { zeroClick.setSummary(R.string.zeroclick_off_summary); } } } Loading @@ -196,8 +192,10 @@ public class WirelessSettings extends SettingsPreferenceFragment { super.onPause(); mAirplaneModeEnabler.pause(); if (mNfcEnabler != null) { mNfcEnabler.pause(); } } @Override public void onActivityResult(int requestCode, int resultCode, Intent data) { Loading
src/com/android/settings/nfc/NfcEnabler.java +45 −44 Original line number Diff line number Diff line Loading @@ -27,6 +27,8 @@ import android.preference.Preference; import android.preference.PreferenceScreen; import android.util.Log; import com.android.settings.R; /** * NfcEnabler is a helper to manage the Nfc on/off checkbox preference. It is * turns on/off Nfc and ensures the summary of the preference reflects the Loading @@ -46,16 +48,13 @@ public class NfcEnabler implements Preference.OnPreferenceChangeListener { @Override public void onReceive(Context context, Intent intent) { String action = intent.getAction(); if (NfcAdapter.ACTION_ADAPTER_STATE_CHANGE.equals(action)) { handleNfcStateChanged(intent.getBooleanExtra( NfcAdapter.EXTRA_NEW_BOOLEAN_STATE, false)); if (NfcAdapter.ACTION_ADAPTER_STATE_CHANGED.equals(action)) { handleNfcStateChanged(intent.getIntExtra(NfcAdapter.EXTRA_ADAPTER_STATE, NfcAdapter.STATE_OFF)); } } }; private boolean mNfcState; public NfcEnabler(Context context, CheckBoxPreference checkBoxPreference, PreferenceScreen zeroclick) { mContext = context; Loading @@ -66,20 +65,20 @@ public class NfcEnabler implements Preference.OnPreferenceChangeListener { if (mNfcAdapter == null) { // NFC is not supported mCheckbox.setEnabled(false); mZeroClick.setEnabled(false); mIntentFilter = null; return; } mIntentFilter = new IntentFilter(NfcAdapter.ACTION_ADAPTER_STATE_CHANGE); mIntentFilter = new IntentFilter(NfcAdapter.ACTION_ADAPTER_STATE_CHANGED); } public void resume() { if (mNfcAdapter == null) { return; } handleNfcStateChanged(mNfcAdapter.getAdapterState()); mContext.registerReceiver(mReceiver, mIntentFilter); mCheckbox.setOnPreferenceChangeListener(this); mNfcState = mNfcAdapter.isEnabled(); mCheckbox.setChecked(mNfcState); } public void pause() { Loading @@ -96,41 +95,43 @@ public class NfcEnabler implements Preference.OnPreferenceChangeListener { final boolean desiredState = (Boolean) value; mCheckbox.setEnabled(false); // Start async update of the NFC adapter state, as the API is // unfortunately blocking... new Thread("toggleNFC") { @Override public void run() { Log.d(TAG, "Setting NFC enabled state to: " + desiredState); boolean success = false; if (desiredState) { success = mNfcAdapter.enable(); mNfcAdapter.enable(); } else { success = mNfcAdapter.disable(); } if (success) { Log.d(TAG, "Successfully changed NFC enabled state to " + desiredState); mHandler.post(new Runnable() { public void run() { handleNfcStateChanged(desiredState); } }); } else { Log.w(TAG, "Error setting NFC enabled state to " + desiredState); mHandler.post(new Runnable() { public void run() { mCheckbox.setEnabled(true); mNfcAdapter.disable(); } }); } } }.start(); return false; } private void handleNfcStateChanged(boolean newState) { mCheckbox.setChecked(newState); private void handleNfcStateChanged(int newState) { switch (newState) { case NfcAdapter.STATE_OFF: mCheckbox.setChecked(false); mCheckbox.setEnabled(true); mZeroClick.setEnabled(newState); mZeroClick.setEnabled(false); mZeroClick.setSummary(R.string.zeroclick_off_summary); break; case NfcAdapter.STATE_ON: mCheckbox.setChecked(true); mCheckbox.setEnabled(true); mZeroClick.setEnabled(true); if (mNfcAdapter.isZeroClickEnabled()) { mZeroClick.setSummary(R.string.zeroclick_on_summary); } else { mZeroClick.setSummary(R.string.zeroclick_off_summary); } break; case NfcAdapter.STATE_TURNING_ON: mCheckbox.setChecked(true); mCheckbox.setEnabled(false); mZeroClick.setEnabled(false); break; case NfcAdapter.STATE_TURNING_OFF: mCheckbox.setChecked(false); mCheckbox.setEnabled(false); mZeroClick.setEnabled(false); break; } } }
src/com/android/settings/nfc/ZeroClick.java +2 −2 Original line number Diff line number Diff line Loading @@ -63,7 +63,7 @@ public class ZeroClick extends Fragment mActionBarSwitch.setOnCheckedChangeListener(this); mNfcAdapter = NfcAdapter.getDefaultAdapter(getActivity()); mActionBarSwitch.setChecked(mNfcAdapter.zeroClickEnabled()); mActionBarSwitch.setChecked(mNfcAdapter.isZeroClickEnabled()); } @Override Loading @@ -77,7 +77,7 @@ public class ZeroClick extends Fragment private void initView(View view) { mNfcAdapter = NfcAdapter.getDefaultAdapter(getActivity()); mActionBarSwitch.setOnCheckedChangeListener(this); mActionBarSwitch.setChecked(mNfcAdapter.zeroClickEnabled()); mActionBarSwitch.setChecked(mNfcAdapter.isZeroClickEnabled()); } @Override Loading