From 3ebfceafa6cd436c7ace62aab0427f9a81a73b01 Mon Sep 17 00:00:00 2001 From: Roshan Pius Date: Wed, 29 Mar 2023 10:48:23 -0700 Subject: [PATCH] settings(nfc): Remove reference to APM setting in NFC page APM mode no longer affects NFC stack as of Android Q. Bug: 275381319 Test: atest NfcEnablerTest NfcPreferenceControllerTest Test: Manual settings page verification Change-Id: I974a424332eb85e27d51816507183e1ca0def42c --- src/com/android/settings/nfc/NfcEnabler.java | 16 +----- .../settings/nfc/NfcPreferenceController.java | 13 ----- .../android/settings/nfc/NfcEnablerTest.java | 56 ++----------------- .../nfc/NfcPreferenceControllerTest.java | 39 ------------- 4 files changed, 7 insertions(+), 117 deletions(-) diff --git a/src/com/android/settings/nfc/NfcEnabler.java b/src/com/android/settings/nfc/NfcEnabler.java index 88482d59d8b..fe8762b8a90 100644 --- a/src/com/android/settings/nfc/NfcEnabler.java +++ b/src/com/android/settings/nfc/NfcEnabler.java @@ -18,9 +18,6 @@ package com.android.settings.nfc; import android.content.Context; import android.nfc.NfcAdapter; -import android.provider.Settings; - -import androidx.annotation.VisibleForTesting; import com.android.settingslib.widget.MainSwitchPreference; @@ -41,7 +38,7 @@ public class NfcEnabler extends BaseNfcEnabler { switch (newState) { case NfcAdapter.STATE_OFF: mPreference.updateStatus(false); - mPreference.setEnabled(isToggleable()); + mPreference.setEnabled(true); break; case NfcAdapter.STATE_ON: mPreference.updateStatus(true); @@ -57,15 +54,4 @@ public class NfcEnabler extends BaseNfcEnabler { break; } } - - @VisibleForTesting - boolean isToggleable() { - if (NfcPreferenceController.isToggleableInAirplaneMode(mContext) - || !NfcPreferenceController.shouldTurnOffNFCInAirplaneMode(mContext)) { - return true; - } - final int airplaneMode = Settings.Global.getInt( - mContext.getContentResolver(), Settings.Global.AIRPLANE_MODE_ON, 0); - return airplaneMode != 1; - } } diff --git a/src/com/android/settings/nfc/NfcPreferenceController.java b/src/com/android/settings/nfc/NfcPreferenceController.java index 483fead807e..2ba00c6670a 100644 --- a/src/com/android/settings/nfc/NfcPreferenceController.java +++ b/src/com/android/settings/nfc/NfcPreferenceController.java @@ -21,7 +21,6 @@ import android.content.Intent; import android.content.IntentFilter; import android.net.Uri; import android.nfc.NfcAdapter; -import android.provider.Settings; import android.util.Log; import android.widget.Switch; @@ -128,18 +127,6 @@ public class NfcPreferenceController extends TogglePreferenceController } } - public static boolean shouldTurnOffNFCInAirplaneMode(Context context) { - final String airplaneModeRadios = Settings.Global.getString(context.getContentResolver(), - Settings.Global.AIRPLANE_MODE_RADIOS); - return airplaneModeRadios != null && airplaneModeRadios.contains(Settings.Global.RADIO_NFC); - } - - public static boolean isToggleableInAirplaneMode(Context context) { - final String toggleable = Settings.Global.getString(context.getContentResolver(), - Settings.Global.AIRPLANE_MODE_TOGGLEABLE_RADIOS); - return toggleable != null && toggleable.contains(Settings.Global.RADIO_NFC); - } - /** * Listener for background changes to NFC. * diff --git a/tests/robotests/src/com/android/settings/nfc/NfcEnablerTest.java b/tests/robotests/src/com/android/settings/nfc/NfcEnablerTest.java index cc451906214..5299bbdb10c 100644 --- a/tests/robotests/src/com/android/settings/nfc/NfcEnablerTest.java +++ b/tests/robotests/src/com/android/settings/nfc/NfcEnablerTest.java @@ -16,15 +16,12 @@ package com.android.settings.nfc; -import static com.google.common.truth.Truth.assertThat; - import static org.mockito.Mockito.spy; +import static org.mockito.Mockito.times; import static org.mockito.Mockito.verify; -import android.content.ContentResolver; import android.content.Context; import android.nfc.NfcAdapter; -import android.provider.Settings; import com.android.settingslib.widget.MainSwitchPreference; @@ -52,55 +49,14 @@ public class NfcEnablerTest { mNfcEnabler = spy(new NfcEnabler(mContext, mNfcPreference)); } - @Test - public void isToggleable_AirplaneModeOff_shouldReturnTrue() { - final ContentResolver contentResolver = mContext.getContentResolver(); - Settings.Global.putInt(contentResolver, Settings.Global.AIRPLANE_MODE_ON, 0); - Settings.Global.putString(contentResolver, - Settings.Global.AIRPLANE_MODE_RADIOS, Settings.Global.RADIO_NFC); - Settings.Global.putString(contentResolver, - Settings.Global.AIRPLANE_MODE_TOGGLEABLE_RADIOS, Settings.Global.RADIO_NFC); - - assertThat(mNfcEnabler.isToggleable()).isTrue(); - } - - @Test - public void isToggleable_AirplaneModeOnNfcNotInAirplaneModeRadio_shouldReturnTrue() { - final ContentResolver contentResolver = mContext.getContentResolver(); - Settings.Global.putInt(contentResolver, Settings.Global.AIRPLANE_MODE_ON, 1); - Settings.Global.putString(contentResolver, Settings.Global.AIRPLANE_MODE_RADIOS, ""); - - assertThat(mNfcEnabler.isToggleable()).isTrue(); - } - - @Test - public void isToggleable_AirplaneModeOnNfcToggleable_shouldReturnTrue() { - final ContentResolver contentResolver = mContext.getContentResolver(); - Settings.Global.putInt(contentResolver, Settings.Global.AIRPLANE_MODE_ON, 1); - Settings.Global.putString(contentResolver, - Settings.Global.AIRPLANE_MODE_RADIOS, Settings.Global.RADIO_NFC); - Settings.Global.putString(contentResolver, - Settings.Global.AIRPLANE_MODE_TOGGLEABLE_RADIOS, Settings.Global.RADIO_NFC); - - assertThat(mNfcEnabler.isToggleable()).isTrue(); - } - - @Test - public void isToggleable_AirplaneModeOnNfcNotToggleable_shouldReturnFalse() { - final ContentResolver contentResolver = mContext.getContentResolver(); - Settings.Global.putInt(contentResolver, Settings.Global.AIRPLANE_MODE_ON, 1); - Settings.Global.putString(contentResolver, - Settings.Global.AIRPLANE_MODE_RADIOS, Settings.Global.RADIO_NFC); - Settings.Global.putString(contentResolver, - Settings.Global.AIRPLANE_MODE_TOGGLEABLE_RADIOS, ""); - - assertThat(mNfcEnabler.isToggleable()).isFalse(); - } - @Test public void handleNfcStateChanged_stateOff_shouldCheckIfPreferenceEnableState() { mNfcEnabler.handleNfcStateChanged(NfcAdapter.STATE_OFF); + verify(mNfcPreference).updateStatus(false); + verify(mNfcPreference).setEnabled(true); - verify(mNfcEnabler).isToggleable(); + mNfcEnabler.handleNfcStateChanged(NfcAdapter.STATE_ON); + verify(mNfcPreference).updateStatus(true); + verify(mNfcPreference, times(2)).setEnabled(true); } } diff --git a/tests/robotests/src/com/android/settings/nfc/NfcPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/nfc/NfcPreferenceControllerTest.java index 3ca553bc3ba..4db51aab3b6 100644 --- a/tests/robotests/src/com/android/settings/nfc/NfcPreferenceControllerTest.java +++ b/tests/robotests/src/com/android/settings/nfc/NfcPreferenceControllerTest.java @@ -28,7 +28,6 @@ import android.content.Intent; import android.nfc.NfcAdapter; import android.nfc.NfcManager; import android.os.UserManager; -import android.provider.Settings; import androidx.preference.PreferenceScreen; @@ -188,44 +187,6 @@ public class NfcPreferenceControllerTest { assertThat(mNfcController.hasAsyncUpdate()).isTrue(); } - @Test - public void isToggleableInAirplaneMode_containNfc_shouldReturnTrue() { - Settings.Global.putString(mContext.getContentResolver(), - Settings.Global.AIRPLANE_MODE_TOGGLEABLE_RADIOS, - Settings.Global.RADIO_NFC); - Settings.Global.putInt(mContext.getContentResolver(), - Settings.Global.AIRPLANE_MODE_ON, 1); - - assertThat(NfcPreferenceController.isToggleableInAirplaneMode(mContext)).isTrue(); - } - - @Test - public void isToggleableInAirplaneMode_withoutNfc_shouldReturnFalse() { - Settings.Global.putString(mContext.getContentResolver(), - Settings.Global.AIRPLANE_MODE_TOGGLEABLE_RADIOS, - "null"); - Settings.Global.putInt(mContext.getContentResolver(), - Settings.Global.AIRPLANE_MODE_ON, 1); - - assertThat(NfcPreferenceController.isToggleableInAirplaneMode(mContext)).isFalse(); - } - - @Test - public void shouldTurnOffNFCInAirplaneMode_airplaneModeRadiosContainsNfc_shouldReturnTrue() { - Settings.Global.putString(mContext.getContentResolver(), - Settings.Global.AIRPLANE_MODE_RADIOS, Settings.Global.RADIO_NFC); - - assertThat(NfcPreferenceController.shouldTurnOffNFCInAirplaneMode(mContext)).isTrue(); - } - - @Test - public void shouldTurnOffNFCInAirplaneMode_airplaneModeRadiosWithoutNfc_shouldReturnFalse() { - Settings.Global.putString(mContext.getContentResolver(), - Settings.Global.AIRPLANE_MODE_RADIOS, ""); - - assertThat(NfcPreferenceController.shouldTurnOffNFCInAirplaneMode(mContext)).isFalse(); - } - @Test public void ncfSliceWorker_nfcBroadcast_noExtra_sliceDoesntUpdate() { final NfcSliceWorker worker = spy(