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

Commit 6827785e authored by Treehugger Robot's avatar Treehugger Robot Committed by Gerrit Code Review
Browse files

Merge "Add support for FEATURE_NFC_ANDROID_BEAM"

parents 66d28c3e b7251fa6
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.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;
+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;
@@ -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);