Loading src/com/android/settings/WirelessSettings.java +12 −5 Original line number Diff line number Diff line Loading @@ -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); Loading Loading @@ -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, Loading @@ -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. Loading Loading @@ -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; Loading @@ -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); } } Loading @@ -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); Loading src/com/android/settings/nfc/NfcEnabler.java +8 −1 Original line number Diff line number Diff line Loading @@ -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; Loading @@ -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); Loading @@ -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; } Loading Loading @@ -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); Loading @@ -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; } } Loading Loading
src/com/android/settings/WirelessSettings.java +12 −5 Original line number Diff line number Diff line Loading @@ -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); Loading Loading @@ -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, Loading @@ -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. Loading Loading @@ -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; Loading @@ -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); } } Loading @@ -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); Loading
src/com/android/settings/nfc/NfcEnabler.java +8 −1 Original line number Diff line number Diff line Loading @@ -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; Loading @@ -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); Loading @@ -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; } Loading Loading @@ -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); Loading @@ -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; } } Loading