diff options
author | Michael Bestas <mikeioannina@gmail.com> | 2015-02-18 13:39:33 +0200 |
---|---|---|
committer | Michael Bestas <mikeioannina@gmail.com> | 2015-12-12 07:18:40 -0800 |
commit | 7591850311f9a5cc2d29a81b80f3ddc38ec4ca56 (patch) | |
tree | 841b680102517d1a6d468fc640b2cf6e7e5523b2 | |
parent | 2055e59207e750a6ed24972d0d68282a1274995f (diff) | |
download | packages_apps_Settings-7591850311f9a5cc2d29a81b80f3ddc38ec4ca56.tar.gz packages_apps_Settings-7591850311f9a5cc2d29a81b80f3ddc38ec4ca56.tar.bz2 packages_apps_Settings-7591850311f9a5cc2d29a81b80f3ddc38ec4ca56.zip |
Properly remove NFC payment preference
Change-Id: Id8c9098241e018da37da93b5bd8d9c29307402c0
-rw-r--r-- | src/com/android/settings/WirelessSettings.java | 17 | ||||
-rw-r--r-- | src/com/android/settings/nfc/NfcEnabler.java | 9 |
2 files changed, 20 insertions, 6 deletions
diff --git a/src/com/android/settings/WirelessSettings.java b/src/com/android/settings/WirelessSettings.java index a5cbf9ee2..75d115b5d 100644 --- a/src/com/android/settings/WirelessSettings.java +++ b/src/com/android/settings/WirelessSettings.java @@ -235,12 +235,13 @@ public class WirelessSettings extends SettingsPreferenceFragment implements Inde mAirplaneModePreference = (SwitchPreference) findPreference(KEY_TOGGLE_AIRPLANE); SwitchPreference nfc = (SwitchPreference) findPreference(KEY_TOGGLE_NFC); PreferenceScreen androidBeam = (PreferenceScreen) findPreference(KEY_ANDROID_BEAM_SETTINGS); + PreferenceScreen nfcPayment = (PreferenceScreen) findPreference(KEY_NFC_PAYMENT_SETTINGS); SwitchPreference nsd = (SwitchPreference) findPreference(KEY_TOGGLE_NSD); PreferenceCategory nfcCategory = (PreferenceCategory) findPreference(KEY_NFC_CATEGORY_SETTINGS); mAirplaneModeEnabler = new AirplaneModeEnabler(activity, mAirplaneModePreference); - mNfcEnabler = new NfcEnabler(activity, nfc, androidBeam); + mNfcEnabler = new NfcEnabler(activity, nfc, androidBeam, nfcPayment); mButtonWfc = (PreferenceScreen) findPreference(KEY_WFC_SETTINGS); @@ -285,14 +286,17 @@ public class WirelessSettings extends SettingsPreferenceFragment implements Inde if (toggleable == null || !toggleable.contains(Settings.Global.RADIO_NFC)) { findPreference(KEY_TOGGLE_NFC).setDependency(KEY_TOGGLE_AIRPLANE); findPreference(KEY_ANDROID_BEAM_SETTINGS).setDependency(KEY_TOGGLE_AIRPLANE); + findPreference(KEY_NFC_PAYMENT_SETTINGS).setDependency(KEY_TOGGLE_AIRPLANE); } // Remove NFC if not available mNfcAdapter = NfcAdapter.getDefaultAdapter(activity); if (mNfcAdapter == null) { getPreferenceScreen().removePreference(nfcCategory); - removePreference(KEY_NFC_PAYMENT_SETTINGS); mNfcEnabler = null; + } else if (!mPm.hasSystemFeature(PackageManager.FEATURE_NFC_HOST_CARD_EMULATION)) { + // Only show if we have the HCE feature + getPreferenceScreen().removePreference(nfcPayment); } // Remove Mobile Network Settings and Manage Mobile Plan for secondary users, @@ -301,7 +305,6 @@ public class WirelessSettings extends SettingsPreferenceFragment implements Inde || mUm.hasUserRestriction(UserManager.DISALLOW_CONFIG_MOBILE_NETWORKS)) { removePreference(KEY_MOBILE_NETWORK_SETTINGS); removePreference(KEY_MANAGE_MOBILE_PLAN); - removePreference(KEY_NFC_PAYMENT_SETTINGS); } // Remove Mobile Network Settings and Manage Mobile Plan // if config_show_mobile_plan sets false. @@ -444,6 +447,7 @@ public class WirelessSettings extends SettingsPreferenceFragment implements Inde result.add(KEY_TOGGLE_NSD); + final PackageManager pm = context.getPackageManager(); final UserManager um = (UserManager) context.getSystemService(Context.USER_SERVICE); final int myUserId = UserHandle.myUserId(); final boolean isSecondaryUser = myUserId != UserHandle.USER_OWNER; @@ -467,6 +471,11 @@ public class WirelessSettings extends SettingsPreferenceFragment implements Inde if (adapter == null) { result.add(KEY_TOGGLE_NFC); result.add(KEY_ANDROID_BEAM_SETTINGS); + result.add(KEY_NFC_PAYMENT_SETTINGS); + } else if (!pm.hasSystemFeature( + PackageManager.FEATURE_NFC_HOST_CARD_EMULATION)) { + // Only show if we have the HCE feature + result.add(KEY_NFC_PAYMENT_SETTINGS); } } @@ -487,8 +496,6 @@ public class WirelessSettings extends SettingsPreferenceFragment implements Inde result.add(KEY_MANAGE_MOBILE_PLAN); } - final PackageManager pm = context.getPackageManager(); - // Remove Airplane Mode settings if it's a stationary device such as a TV. if (pm.hasSystemFeature(PackageManager.FEATURE_TELEVISION)) { result.add(KEY_TOGGLE_AIRPLANE); diff --git a/src/com/android/settings/nfc/NfcEnabler.java b/src/com/android/settings/nfc/NfcEnabler.java index ae61b13e8..f9dff46c2 100644 --- a/src/com/android/settings/nfc/NfcEnabler.java +++ b/src/com/android/settings/nfc/NfcEnabler.java @@ -37,6 +37,7 @@ public class NfcEnabler implements Preference.OnPreferenceChangeListener { private final Context mContext; private final SwitchPreference mSwitch; private final PreferenceScreen mAndroidBeam; + private final PreferenceScreen mNfcPayment; private final NfcAdapter mNfcAdapter; private final IntentFilter mIntentFilter; private boolean mBeamDisallowed; @@ -53,10 +54,11 @@ public class NfcEnabler implements Preference.OnPreferenceChangeListener { }; public NfcEnabler(Context context, SwitchPreference switchPreference, - PreferenceScreen androidBeam) { + PreferenceScreen androidBeam, PreferenceScreen nfcPayment) { mContext = context; mSwitch = switchPreference; mAndroidBeam = androidBeam; + mNfcPayment = nfcPayment; mNfcAdapter = NfcAdapter.getDefaultAdapter(context); mBeamDisallowed = ((UserManager) mContext.getSystemService(Context.USER_SERVICE)) .hasUserRestriction(UserManager.DISALLOW_OUTGOING_BEAM); @@ -65,6 +67,7 @@ public class NfcEnabler implements Preference.OnPreferenceChangeListener { // NFC is not supported mSwitch.setEnabled(false); mAndroidBeam.setEnabled(false); + mNfcPayment.setEnabled(false); mIntentFilter = null; return; } @@ -113,6 +116,7 @@ public class NfcEnabler implements Preference.OnPreferenceChangeListener { mSwitch.setEnabled(true); mAndroidBeam.setEnabled(false); mAndroidBeam.setSummary(R.string.android_beam_disabled_summary); + mNfcPayment.setEnabled(false); break; case NfcAdapter.STATE_ON: mSwitch.setChecked(true); @@ -123,16 +127,19 @@ public class NfcEnabler implements Preference.OnPreferenceChangeListener { } else { mAndroidBeam.setSummary(R.string.android_beam_off_summary); } + mNfcPayment.setEnabled(true); break; case NfcAdapter.STATE_TURNING_ON: mSwitch.setChecked(true); mSwitch.setEnabled(false); mAndroidBeam.setEnabled(false); + mNfcPayment.setEnabled(false); break; case NfcAdapter.STATE_TURNING_OFF: mSwitch.setChecked(false); mSwitch.setEnabled(false); mAndroidBeam.setEnabled(false); + mNfcPayment.setEnabled(false); break; } } |