Merge "Add support for FEATURE_NFC_ANDROID_BEAM" am: 6827785e52
				
					
				
			am: 39845367ab
Change-Id: Ia7fc968221a6eb314a9ee384e0dd84d3aa0e84b4
			
			
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.Preference;
 | 
			
		||||
import androidx.preference.PreferenceScreen;
 | 
			
		||||
@@ -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;
 | 
			
		||||
 
 | 
			
		||||
@@ -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;
 | 
			
		||||
@@ -56,6 +57,8 @@ public class AndroidBeamPreferenceControllerTest {
 | 
			
		||||
    private UserManager mUserManager;
 | 
			
		||||
    @Mock
 | 
			
		||||
    private PreferenceScreen mScreen;
 | 
			
		||||
    @Mock
 | 
			
		||||
    private PackageManager mPackageManager;
 | 
			
		||||
 | 
			
		||||
    private RestrictedPreference mAndroidBeamPreference;
 | 
			
		||||
    private AndroidBeamPreferenceController mAndroidBeamController;
 | 
			
		||||
@@ -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,
 | 
			
		||||
@@ -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);
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user