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
This commit is contained in:
Roshan Pius
2023-03-29 10:48:23 -07:00
parent e78b3d3f7e
commit 3ebfceafa6
4 changed files with 7 additions and 117 deletions

View File

@@ -18,9 +18,6 @@ package com.android.settings.nfc;
import android.content.Context; import android.content.Context;
import android.nfc.NfcAdapter; import android.nfc.NfcAdapter;
import android.provider.Settings;
import androidx.annotation.VisibleForTesting;
import com.android.settingslib.widget.MainSwitchPreference; import com.android.settingslib.widget.MainSwitchPreference;
@@ -41,7 +38,7 @@ public class NfcEnabler extends BaseNfcEnabler {
switch (newState) { switch (newState) {
case NfcAdapter.STATE_OFF: case NfcAdapter.STATE_OFF:
mPreference.updateStatus(false); mPreference.updateStatus(false);
mPreference.setEnabled(isToggleable()); mPreference.setEnabled(true);
break; break;
case NfcAdapter.STATE_ON: case NfcAdapter.STATE_ON:
mPreference.updateStatus(true); mPreference.updateStatus(true);
@@ -57,15 +54,4 @@ public class NfcEnabler extends BaseNfcEnabler {
break; 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;
}
} }

View File

@@ -21,7 +21,6 @@ import android.content.Intent;
import android.content.IntentFilter; import android.content.IntentFilter;
import android.net.Uri; import android.net.Uri;
import android.nfc.NfcAdapter; import android.nfc.NfcAdapter;
import android.provider.Settings;
import android.util.Log; import android.util.Log;
import android.widget.Switch; 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. * Listener for background changes to NFC.
* *

View File

@@ -16,15 +16,12 @@
package com.android.settings.nfc; package com.android.settings.nfc;
import static com.google.common.truth.Truth.assertThat;
import static org.mockito.Mockito.spy; import static org.mockito.Mockito.spy;
import static org.mockito.Mockito.times;
import static org.mockito.Mockito.verify; import static org.mockito.Mockito.verify;
import android.content.ContentResolver;
import android.content.Context; import android.content.Context;
import android.nfc.NfcAdapter; import android.nfc.NfcAdapter;
import android.provider.Settings;
import com.android.settingslib.widget.MainSwitchPreference; import com.android.settingslib.widget.MainSwitchPreference;
@@ -52,55 +49,14 @@ public class NfcEnablerTest {
mNfcEnabler = spy(new NfcEnabler(mContext, mNfcPreference)); 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 @Test
public void handleNfcStateChanged_stateOff_shouldCheckIfPreferenceEnableState() { public void handleNfcStateChanged_stateOff_shouldCheckIfPreferenceEnableState() {
mNfcEnabler.handleNfcStateChanged(NfcAdapter.STATE_OFF); 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);
} }
} }

View File

@@ -28,7 +28,6 @@ import android.content.Intent;
import android.nfc.NfcAdapter; import android.nfc.NfcAdapter;
import android.nfc.NfcManager; import android.nfc.NfcManager;
import android.os.UserManager; import android.os.UserManager;
import android.provider.Settings;
import androidx.preference.PreferenceScreen; import androidx.preference.PreferenceScreen;
@@ -188,44 +187,6 @@ public class NfcPreferenceControllerTest {
assertThat(mNfcController.hasAsyncUpdate()).isTrue(); 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 @Test
public void ncfSliceWorker_nfcBroadcast_noExtra_sliceDoesntUpdate() { public void ncfSliceWorker_nfcBroadcast_noExtra_sliceDoesntUpdate() {
final NfcSliceWorker worker = spy( final NfcSliceWorker worker = spy(