Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 8925004b authored by Ruchi Kandoi's avatar Ruchi Kandoi Committed by android-build-merger
Browse files

Merge "Add support for FEATURE_NFC_ANDROID_BEAM" am: 6827785e am: 39845367

am: a7c88692

Change-Id: I08ff3b1bd80e913aeec9800b1c5ddce69543ba3c
parents 5585d5e9 a7c88692
Loading
Loading
Loading
Loading
+5 −0
Original line number Diff line number Diff line
@@ -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;
+12 −0
Original line number Diff line number Diff line
@@ -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);