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

Commit 2bf6529b authored by Martijn Coenen's avatar Martijn Coenen Committed by Android (Google) Code Review
Browse files

Merge "Verify NFC permission immediately on API calls." into lmp-mr1-dev

parents ac4af18b d8bcfbad
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -60,4 +60,6 @@ interface INfcAdapter

    void addNfcUnlockHandler(INfcUnlockHandler unlockHandler, in int[] techList);
    void removeNfcUnlockHandler(INfcUnlockHandler unlockHandler);

    void verifyNfcPermission();
}
+28 −0
Original line number Diff line number Diff line
@@ -254,7 +254,11 @@ public final class NfcActivityManager extends IAppCallback.Stub
            isResumed = state.resumed;
        }
        if (isResumed) {
            // requestNfcServiceCallback() verifies permission also
            requestNfcServiceCallback();
        } else {
            // Crash API calls early in case NFC permission is missing
            verifyNfcPermission();
        }
    }

@@ -268,7 +272,11 @@ public final class NfcActivityManager extends IAppCallback.Stub
            isResumed = state.resumed;
        }
        if (isResumed) {
            // requestNfcServiceCallback() verifies permission also
            requestNfcServiceCallback();
        } else {
            // Crash API calls early in case NFC permission is missing
            verifyNfcPermission();
        }
    }

@@ -281,7 +289,11 @@ public final class NfcActivityManager extends IAppCallback.Stub
            isResumed = state.resumed;
        }
        if (isResumed) {
            // requestNfcServiceCallback() verifies permission also
            requestNfcServiceCallback();
        } else {
            // Crash API calls early in case NFC permission is missing
            verifyNfcPermission();
        }
    }

@@ -295,7 +307,11 @@ public final class NfcActivityManager extends IAppCallback.Stub
            isResumed = state.resumed;
        }
        if (isResumed) {
            // requestNfcServiceCallback() verifies permission also
            requestNfcServiceCallback();
        } else {
            // Crash API calls early in case NFC permission is missing
            verifyNfcPermission();
        }
    }

@@ -308,7 +324,11 @@ public final class NfcActivityManager extends IAppCallback.Stub
            isResumed = state.resumed;
        }
        if (isResumed) {
            // requestNfcServiceCallback() verifies permission also
            requestNfcServiceCallback();
        } else {
            // Crash API calls early in case NFC permission is missing
            verifyNfcPermission();
        }
    }

@@ -324,6 +344,14 @@ public final class NfcActivityManager extends IAppCallback.Stub
        }
    }

    void verifyNfcPermission() {
        try {
            NfcAdapter.sService.verifyNfcPermission();
        } catch (RemoteException e) {
            mAdapter.attemptDeadServiceRecovery(e);
        }
    }

    /** Callback from NFC service, usually on binder thread */
    @Override
    public BeamShareData createBeamShareData() {