Loading res/values/strings.xml +4 −0 Original line number Diff line number Diff line Loading @@ -7108,6 +7108,8 @@ <string name="help_uri_bluetooth_screen" translatable="false"></string> <!-- url for the SIM combination warning required dialog help page --> <string name="help_uri_sim_combination_warning" translatable="false"></string> <!-- url for the NFC and payment settings page --> <string name="help_uri_nfc_and_payment_settings" translatable="false"></string> <!-- User account title [CHAR LIMIT=30] --> <string name="user_account_title">Account for content</string> Loading Loading @@ -7338,6 +7340,8 @@ <string name="connected_devices_dashboard_no_driving_mode_summary">Bluetooth, NFC</string> <!-- Summary for Connected devices settings, explaning a few important settings under it [CHAR LIMIT=NONE]--> <string name="connected_devices_dashboard_no_driving_mode_no_nfc_summary">Bluetooth</string> <!-- Summary for Tap & pay settings, explaning a few important settings under it [CHAR LIMIT=NONE]--> <string name="nfc_and_payment_settings_payment_off_nfc_off_summary">Unavailable because NFC is off</string> <!-- Title for setting tile leading to Apps & Notification settings [CHAR LIMIT=40]--> <string name="app_and_notification_dashboard_title">Apps & notifications</string> <!-- Summary for Apps & Notification settings, explaining a few important settings under it [CHAR LIMIT=NONE]--> res/xml/connected_devices_advanced.xml +5 −13 Original line number Diff line number Diff line Loading @@ -28,21 +28,13 @@ android:order="-9" settings:searchable="false"/> <SwitchPreference android:key="toggle_nfc" <Preference android:fragment="com.android.settings.connecteddevice.NfcAndPaymentFragment" android:key="nfc_and_payment_settings" android:title="@string/nfc_quick_toggle_title" android:icon="@drawable/ic_nfc" android:summary="@string/nfc_quick_toggle_summary" settings:controller="com.android.settings.nfc.NfcPreferenceController" android:order="-7"/> <SwitchPreference android:key="nfc_secure_settings" android:title="@string/nfc_secure_settings_title" settings:controller="com.android.settings.nfc.SecureNfcPreferenceController" android:icon="@drawable/ic_nfc" android:summary="@string/nfc_secure_toggle_summary" android:order="-7"/> android:order="-7" settings:controller="com.android.settings.connecteddevice.NfcAndPaymentFragmentController"/> <Preference android:fragment="com.android.settings.wfd.WifiDisplaySettings" Loading res/xml/nfc_and_payment_settings.xml 0 → 100644 +40 −0 Original line number Diff line number Diff line <?xml version="1.0" encoding="utf-8"?> <!-- ~ Copyright (C) 2020 The Android Open Source Project ~ ~ Licensed under the Apache License, Version 2.0 (the "License"); ~ you may not use this file except in compliance with the License. ~ You may obtain a copy of the License at ~ ~ http://www.apache.org/licenses/LICENSE-2.0 ~ ~ Unless required by applicable law or agreed to in writing, software ~ distributed under the License is distributed on an "AS IS" BASIS, ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. ~ See the License for the specific language governing permissions and ~ limitations under the License. --> <PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android" xmlns:settings="http://schemas.android.com/apk/res-auto" android:title="@string/nfc_quick_toggle_title"> <SwitchPreference android:key="toggle_nfc" android:title="@string/nfc_quick_toggle_title" android:summary="@string/nfc_quick_toggle_summary" settings:controller="com.android.settings.nfc.NfcPreferenceController"/> <SwitchPreference android:key="nfc_secure_settings" android:title="@string/nfc_secure_settings_title" settings:controller="com.android.settings.nfc.SecureNfcPreferenceController" android:summary="@string/nfc_secure_toggle_summary"/> <Preference android:key="default_payment_app" android:title="@string/nfc_payment_settings_title" android:fragment="com.android.settings.nfc.PaymentSettings" settings:keywords="@string/keywords_default_payment_app" settings:controller="com.android.settings.applications.specialaccess.DefaultPaymentSettingsPreferenceController"/> </PreferenceScreen> No newline at end of file res/xml/special_access.xml +0 −7 Original line number Diff line number Diff line Loading @@ -100,13 +100,6 @@ android:fragment="com.android.settings.applications.specialaccess.premiumsms.PremiumSmsAccess" settings:controller="com.android.settings.applications.specialaccess.premiumsms.PremiumSmsController" /> <Preference android:key="default_payment_app" android:title="@string/nfc_payment_settings_title" android:fragment="com.android.settings.nfc.PaymentSettings" settings:keywords="@string/keywords_default_payment_app" settings:controller="com.android.settings.applications.specialaccess.DefaultPaymentSettingsPreferenceController" /> <Preference android:key="data_saver" android:title="@string/unrestricted_data_saver" Loading src/com/android/settings/applications/specialaccess/DefaultPaymentSettingsPreferenceController.java +43 −2 Original line number Diff line number Diff line Loading @@ -21,11 +21,23 @@ import android.content.pm.PackageManager; import android.nfc.NfcAdapter; import android.os.UserManager; import androidx.preference.Preference; import androidx.preference.PreferenceScreen; import com.android.settings.core.BasePreferenceController; import com.android.settingslib.core.lifecycle.LifecycleObserver; import com.android.settingslib.core.lifecycle.events.OnPause; import com.android.settingslib.core.lifecycle.events.OnResume; public class DefaultPaymentSettingsPreferenceController extends BasePreferenceController { /** * This Controller works with PaymentSettingsEnabler to control payment features availability * based on NFC status */ public class DefaultPaymentSettingsPreferenceController extends BasePreferenceController implements LifecycleObserver, OnResume, OnPause { private final NfcAdapter mNfcAdapter; private PaymentSettingsEnabler mPaymentSettingsEnabler; private final PackageManager mPackageManager; private final UserManager mUserManager; Loading @@ -37,6 +49,32 @@ public class DefaultPaymentSettingsPreferenceController extends BasePreferenceCo mNfcAdapter = NfcAdapter.getDefaultAdapter(mContext); } @Override public void displayPreference(PreferenceScreen screen) { super.displayPreference(screen); if (!isAvailable()) { mPaymentSettingsEnabler = null; return; } final Preference preference = screen.findPreference(getPreferenceKey()); mPaymentSettingsEnabler = new PaymentSettingsEnabler(mContext, preference); } @Override public void onResume() { if (mPaymentSettingsEnabler != null) { mPaymentSettingsEnabler.resume(); } } @Override public void onPause() { if (mPaymentSettingsEnabler != null) { mPaymentSettingsEnabler.pause(); } } @Override public int getAvailabilityStatus() { if (!mPackageManager.hasSystemFeature(PackageManager.FEATURE_NFC) Loading @@ -47,9 +85,12 @@ public class DefaultPaymentSettingsPreferenceController extends BasePreferenceCo if (!mUserManager.isAdminUser()) { return DISABLED_FOR_USER; } if (mNfcAdapter == null || !mNfcAdapter.isEnabled()) { if (mNfcAdapter == null) { return CONDITIONALLY_UNAVAILABLE; } if (!mNfcAdapter.isEnabled()) { return DISABLED_DEPENDENT_SETTING; } return AVAILABLE; } } Loading
res/values/strings.xml +4 −0 Original line number Diff line number Diff line Loading @@ -7108,6 +7108,8 @@ <string name="help_uri_bluetooth_screen" translatable="false"></string> <!-- url for the SIM combination warning required dialog help page --> <string name="help_uri_sim_combination_warning" translatable="false"></string> <!-- url for the NFC and payment settings page --> <string name="help_uri_nfc_and_payment_settings" translatable="false"></string> <!-- User account title [CHAR LIMIT=30] --> <string name="user_account_title">Account for content</string> Loading Loading @@ -7338,6 +7340,8 @@ <string name="connected_devices_dashboard_no_driving_mode_summary">Bluetooth, NFC</string> <!-- Summary for Connected devices settings, explaning a few important settings under it [CHAR LIMIT=NONE]--> <string name="connected_devices_dashboard_no_driving_mode_no_nfc_summary">Bluetooth</string> <!-- Summary for Tap & pay settings, explaning a few important settings under it [CHAR LIMIT=NONE]--> <string name="nfc_and_payment_settings_payment_off_nfc_off_summary">Unavailable because NFC is off</string> <!-- Title for setting tile leading to Apps & Notification settings [CHAR LIMIT=40]--> <string name="app_and_notification_dashboard_title">Apps & notifications</string> <!-- Summary for Apps & Notification settings, explaining a few important settings under it [CHAR LIMIT=NONE]-->
res/xml/connected_devices_advanced.xml +5 −13 Original line number Diff line number Diff line Loading @@ -28,21 +28,13 @@ android:order="-9" settings:searchable="false"/> <SwitchPreference android:key="toggle_nfc" <Preference android:fragment="com.android.settings.connecteddevice.NfcAndPaymentFragment" android:key="nfc_and_payment_settings" android:title="@string/nfc_quick_toggle_title" android:icon="@drawable/ic_nfc" android:summary="@string/nfc_quick_toggle_summary" settings:controller="com.android.settings.nfc.NfcPreferenceController" android:order="-7"/> <SwitchPreference android:key="nfc_secure_settings" android:title="@string/nfc_secure_settings_title" settings:controller="com.android.settings.nfc.SecureNfcPreferenceController" android:icon="@drawable/ic_nfc" android:summary="@string/nfc_secure_toggle_summary" android:order="-7"/> android:order="-7" settings:controller="com.android.settings.connecteddevice.NfcAndPaymentFragmentController"/> <Preference android:fragment="com.android.settings.wfd.WifiDisplaySettings" Loading
res/xml/nfc_and_payment_settings.xml 0 → 100644 +40 −0 Original line number Diff line number Diff line <?xml version="1.0" encoding="utf-8"?> <!-- ~ Copyright (C) 2020 The Android Open Source Project ~ ~ Licensed under the Apache License, Version 2.0 (the "License"); ~ you may not use this file except in compliance with the License. ~ You may obtain a copy of the License at ~ ~ http://www.apache.org/licenses/LICENSE-2.0 ~ ~ Unless required by applicable law or agreed to in writing, software ~ distributed under the License is distributed on an "AS IS" BASIS, ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. ~ See the License for the specific language governing permissions and ~ limitations under the License. --> <PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android" xmlns:settings="http://schemas.android.com/apk/res-auto" android:title="@string/nfc_quick_toggle_title"> <SwitchPreference android:key="toggle_nfc" android:title="@string/nfc_quick_toggle_title" android:summary="@string/nfc_quick_toggle_summary" settings:controller="com.android.settings.nfc.NfcPreferenceController"/> <SwitchPreference android:key="nfc_secure_settings" android:title="@string/nfc_secure_settings_title" settings:controller="com.android.settings.nfc.SecureNfcPreferenceController" android:summary="@string/nfc_secure_toggle_summary"/> <Preference android:key="default_payment_app" android:title="@string/nfc_payment_settings_title" android:fragment="com.android.settings.nfc.PaymentSettings" settings:keywords="@string/keywords_default_payment_app" settings:controller="com.android.settings.applications.specialaccess.DefaultPaymentSettingsPreferenceController"/> </PreferenceScreen> No newline at end of file
res/xml/special_access.xml +0 −7 Original line number Diff line number Diff line Loading @@ -100,13 +100,6 @@ android:fragment="com.android.settings.applications.specialaccess.premiumsms.PremiumSmsAccess" settings:controller="com.android.settings.applications.specialaccess.premiumsms.PremiumSmsController" /> <Preference android:key="default_payment_app" android:title="@string/nfc_payment_settings_title" android:fragment="com.android.settings.nfc.PaymentSettings" settings:keywords="@string/keywords_default_payment_app" settings:controller="com.android.settings.applications.specialaccess.DefaultPaymentSettingsPreferenceController" /> <Preference android:key="data_saver" android:title="@string/unrestricted_data_saver" Loading
src/com/android/settings/applications/specialaccess/DefaultPaymentSettingsPreferenceController.java +43 −2 Original line number Diff line number Diff line Loading @@ -21,11 +21,23 @@ import android.content.pm.PackageManager; import android.nfc.NfcAdapter; import android.os.UserManager; import androidx.preference.Preference; import androidx.preference.PreferenceScreen; import com.android.settings.core.BasePreferenceController; import com.android.settingslib.core.lifecycle.LifecycleObserver; import com.android.settingslib.core.lifecycle.events.OnPause; import com.android.settingslib.core.lifecycle.events.OnResume; public class DefaultPaymentSettingsPreferenceController extends BasePreferenceController { /** * This Controller works with PaymentSettingsEnabler to control payment features availability * based on NFC status */ public class DefaultPaymentSettingsPreferenceController extends BasePreferenceController implements LifecycleObserver, OnResume, OnPause { private final NfcAdapter mNfcAdapter; private PaymentSettingsEnabler mPaymentSettingsEnabler; private final PackageManager mPackageManager; private final UserManager mUserManager; Loading @@ -37,6 +49,32 @@ public class DefaultPaymentSettingsPreferenceController extends BasePreferenceCo mNfcAdapter = NfcAdapter.getDefaultAdapter(mContext); } @Override public void displayPreference(PreferenceScreen screen) { super.displayPreference(screen); if (!isAvailable()) { mPaymentSettingsEnabler = null; return; } final Preference preference = screen.findPreference(getPreferenceKey()); mPaymentSettingsEnabler = new PaymentSettingsEnabler(mContext, preference); } @Override public void onResume() { if (mPaymentSettingsEnabler != null) { mPaymentSettingsEnabler.resume(); } } @Override public void onPause() { if (mPaymentSettingsEnabler != null) { mPaymentSettingsEnabler.pause(); } } @Override public int getAvailabilityStatus() { if (!mPackageManager.hasSystemFeature(PackageManager.FEATURE_NFC) Loading @@ -47,9 +85,12 @@ public class DefaultPaymentSettingsPreferenceController extends BasePreferenceCo if (!mUserManager.isAdminUser()) { return DISABLED_FOR_USER; } if (mNfcAdapter == null || !mNfcAdapter.isEnabled()) { if (mNfcAdapter == null) { return CONDITIONALLY_UNAVAILABLE; } if (!mNfcAdapter.isEnabled()) { return DISABLED_DEPENDENT_SETTING; } return AVAILABLE; } }