Merge "Add support for FEATURE_NFC_ANDROID_BEAM" am: 6827785e52
am: 39845367ab
am: a7c886925f
Change-Id: I08ff3b1bd80e913aeec9800b1c5ddce69543ba3c
This commit is contained in:
@@ -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.PreferenceScreen;
|
||||
@@ -54,6 +55,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;
|
||||
|
@@ -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;
|
||||
@@ -57,6 +58,8 @@ public class AndroidBeamPreferenceControllerTest {
|
||||
private UserManager mUserManager;
|
||||
@Mock
|
||||
private PreferenceScreen mScreen;
|
||||
@Mock
|
||||
private PackageManager mPackageManager;
|
||||
|
||||
private RestrictedPreference mAndroidBeamPreference;
|
||||
private AndroidBeamPreferenceController mAndroidBeamController;
|
||||
@@ -78,6 +81,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,
|
||||
@@ -94,6 +99,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);
|
||||
|
Reference in New Issue
Block a user