Loading src/com/android/settings/nfc/AndroidBeamPreferenceController.java +5 −0 Original line number Diff line number Diff line Loading @@ -16,6 +16,7 @@ package com.android.settings.nfc; import android.content.Context; import android.content.pm.PackageManager; import android.nfc.NfcAdapter; import androidx.preference.Preference; import androidx.preference.PreferenceScreen; Loading Loading @@ -63,6 +64,10 @@ public class AndroidBeamPreferenceController extends BasePreferenceController @Override @AvailabilityStatus public int getAvailabilityStatus() { PackageManager pm = mContext.getPackageManager(); if (!pm.hasSystemFeature(PackageManager.FEATURE_NFC_BEAM)) { return UNSUPPORTED_ON_DEVICE; } return mNfcAdapter != null ? AVAILABLE : UNSUPPORTED_ON_DEVICE; Loading tests/robotests/src/com/android/settings/nfc/AndroidBeamPreferenceControllerTest.java +12 −0 Original line number Diff line number Diff line Loading @@ -22,6 +22,7 @@ import static org.mockito.Mockito.spy; import static org.mockito.Mockito.when; import android.content.Context; import android.content.pm.PackageManager; import android.nfc.NfcAdapter; import android.nfc.NfcManager; import android.os.UserHandle; Loading Loading @@ -56,6 +57,8 @@ public class AndroidBeamPreferenceControllerTest { private UserManager mUserManager; @Mock private PreferenceScreen mScreen; @Mock private PackageManager mPackageManager; private RestrictedPreference mAndroidBeamPreference; private AndroidBeamPreferenceController mAndroidBeamController; Loading @@ -77,6 +80,8 @@ public class AndroidBeamPreferenceControllerTest { mAndroidBeamPreference = new RestrictedPreference(RuntimeEnvironment.application); when(mScreen.findPreference(mAndroidBeamController.getPreferenceKey())).thenReturn( mAndroidBeamPreference); when(mContext.getPackageManager()).thenReturn(mPackageManager); when(mPackageManager.hasSystemFeature(PackageManager.FEATURE_NFC_BEAM)).thenReturn(true); Settings.Global.putString(mContext.getContentResolver(), Settings.Global.AIRPLANE_MODE_TOGGLEABLE_RADIOS, Loading @@ -93,6 +98,13 @@ public class AndroidBeamPreferenceControllerTest { assertThat(mAndroidBeamController.isAvailable()).isTrue(); } @Test public void isAvailable_noNfcFeature_shouldReturnFalse() { when(mNfcAdapter.isEnabled()).thenReturn(true); when(mPackageManager.hasSystemFeature(PackageManager.FEATURE_NFC_BEAM)).thenReturn(false); assertThat(mAndroidBeamController.isAvailable()).isFalse(); } @Test public void isAvailable_noNfcAdapter_shouldReturnFalse() { ReflectionHelpers.setField(mAndroidBeamController, "mNfcAdapter", null); Loading Loading
src/com/android/settings/nfc/AndroidBeamPreferenceController.java +5 −0 Original line number Diff line number Diff line Loading @@ -16,6 +16,7 @@ package com.android.settings.nfc; import android.content.Context; import android.content.pm.PackageManager; import android.nfc.NfcAdapter; import androidx.preference.Preference; import androidx.preference.PreferenceScreen; Loading Loading @@ -63,6 +64,10 @@ public class AndroidBeamPreferenceController extends BasePreferenceController @Override @AvailabilityStatus public int getAvailabilityStatus() { PackageManager pm = mContext.getPackageManager(); if (!pm.hasSystemFeature(PackageManager.FEATURE_NFC_BEAM)) { return UNSUPPORTED_ON_DEVICE; } return mNfcAdapter != null ? AVAILABLE : UNSUPPORTED_ON_DEVICE; Loading
tests/robotests/src/com/android/settings/nfc/AndroidBeamPreferenceControllerTest.java +12 −0 Original line number Diff line number Diff line Loading @@ -22,6 +22,7 @@ import static org.mockito.Mockito.spy; import static org.mockito.Mockito.when; import android.content.Context; import android.content.pm.PackageManager; import android.nfc.NfcAdapter; import android.nfc.NfcManager; import android.os.UserHandle; Loading Loading @@ -56,6 +57,8 @@ public class AndroidBeamPreferenceControllerTest { private UserManager mUserManager; @Mock private PreferenceScreen mScreen; @Mock private PackageManager mPackageManager; private RestrictedPreference mAndroidBeamPreference; private AndroidBeamPreferenceController mAndroidBeamController; Loading @@ -77,6 +80,8 @@ public class AndroidBeamPreferenceControllerTest { mAndroidBeamPreference = new RestrictedPreference(RuntimeEnvironment.application); when(mScreen.findPreference(mAndroidBeamController.getPreferenceKey())).thenReturn( mAndroidBeamPreference); when(mContext.getPackageManager()).thenReturn(mPackageManager); when(mPackageManager.hasSystemFeature(PackageManager.FEATURE_NFC_BEAM)).thenReturn(true); Settings.Global.putString(mContext.getContentResolver(), Settings.Global.AIRPLANE_MODE_TOGGLEABLE_RADIOS, Loading @@ -93,6 +98,13 @@ public class AndroidBeamPreferenceControllerTest { assertThat(mAndroidBeamController.isAvailable()).isTrue(); } @Test public void isAvailable_noNfcFeature_shouldReturnFalse() { when(mNfcAdapter.isEnabled()).thenReturn(true); when(mPackageManager.hasSystemFeature(PackageManager.FEATURE_NFC_BEAM)).thenReturn(false); assertThat(mAndroidBeamController.isAvailable()).isFalse(); } @Test public void isAvailable_noNfcAdapter_shouldReturnFalse() { ReflectionHelpers.setField(mAndroidBeamController, "mNfcAdapter", null); Loading