summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichael Bestas <mikeioannina@gmail.com>2015-02-18 13:39:33 +0200
committerMichael Bestas <mikeioannina@gmail.com>2015-12-12 07:18:40 -0800
commit7591850311f9a5cc2d29a81b80f3ddc38ec4ca56 (patch)
tree841b680102517d1a6d468fc640b2cf6e7e5523b2
parent2055e59207e750a6ed24972d0d68282a1274995f (diff)
downloadpackages_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.java17
-rw-r--r--src/com/android/settings/nfc/NfcEnabler.java9
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;
}
}