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

Commit 7d7d09ff authored by Brad Lassey's avatar Brad Lassey
Browse files

Implement polling loop filter register to route custom polling loop

annotations to services that can handle them.

Bug: b/294217286
Test: Tested with new CTS tests run manually
Change-Id: I68f988369ee3a801873863c0118921e0caad365f
parent 3ea82ea3
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -9984,6 +9984,7 @@ package android.nfc.cardemulation {
  @FlaggedApi("android.nfc.enable_nfc_mainline") public final class ApduServiceInfo implements android.os.Parcelable {
    ctor @FlaggedApi("android.nfc.enable_nfc_mainline") public ApduServiceInfo(@NonNull android.content.pm.PackageManager, @NonNull android.content.pm.ResolveInfo, boolean) throws java.io.IOException, org.xmlpull.v1.XmlPullParserException;
    method @FlaggedApi("android.nfc.nfc_read_polling_loop") public void addPollingLoopFilter(@NonNull String);
    method @FlaggedApi("android.nfc.enable_nfc_mainline") public int describeContents();
    method @FlaggedApi("android.nfc.enable_nfc_mainline") public void dump(@NonNull android.os.ParcelFileDescriptor, @NonNull java.io.PrintWriter, @NonNull String[]);
    method @FlaggedApi("android.nfc.enable_nfc_mainline") public void dumpDebug(@NonNull android.util.proto.ProtoOutputStream);
@@ -9994,6 +9995,7 @@ package android.nfc.cardemulation {
    method @FlaggedApi("android.nfc.enable_nfc_mainline") @NonNull public String getDescription();
    method @FlaggedApi("android.nfc.enable_nfc_mainline") @NonNull public android.nfc.cardemulation.AidGroup getDynamicAidGroupForCategory(@NonNull String);
    method @FlaggedApi("android.nfc.enable_nfc_mainline") @Nullable public String getOffHostSecureElement();
    method @FlaggedApi("android.nfc.nfc_read_polling_loop") @NonNull public java.util.List<java.lang.String> getPollingLoopFilters();
    method @FlaggedApi("android.nfc.enable_nfc_mainline") @NonNull public java.util.List<java.lang.String> getPrefixAids();
    method @FlaggedApi("android.nfc.enable_nfc_mainline") @NonNull public String getSettingsActivityName();
    method @FlaggedApi("android.nfc.enable_nfc_mainline") @NonNull public java.util.List<java.lang.String> getSubsetAids();
@@ -10006,6 +10008,7 @@ package android.nfc.cardemulation {
    method @FlaggedApi("android.nfc.enable_nfc_mainline") @NonNull public android.graphics.drawable.Drawable loadIcon(@NonNull android.content.pm.PackageManager);
    method @FlaggedApi("android.nfc.enable_nfc_mainline") @NonNull public CharSequence loadLabel(@NonNull android.content.pm.PackageManager);
    method @FlaggedApi("android.nfc.enable_nfc_mainline") @NonNull public boolean removeDynamicAidGroupForCategory(@NonNull String);
    method @FlaggedApi("android.nfc.nfc_read_polling_loop") public void removePollingLoopFilter(@NonNull String);
    method @FlaggedApi("android.nfc.enable_nfc_mainline") public boolean requiresScreenOn();
    method @FlaggedApi("android.nfc.enable_nfc_mainline") public boolean requiresUnlock();
    method @FlaggedApi("android.nfc.enable_nfc_mainline") public void resetOffHostSecureElement();
+8 −0
Original line number Diff line number Diff line
@@ -4372,6 +4372,14 @@
        <attr name="name" />
    </declare-styleable>
    <!-- Specify one or more <code>polling-loop-filter</code> elements inside a
         <code>host-apdu-service</code> to indicate polling loop frames that
         your service can handle. -->
    <declare-styleable name="PollingLoopFilter">
        <!-- The polling loop frame. This attribute is mandatory. -->
        <attr name="name" />
    </declare-styleable>
    <!-- Use <code>host-nfcf-service</code> as the root tag of the XML resource that
         describes an {@link android.nfc.cardemulation.HostNfcFService} service, which
         is referenced from its {@link android.nfc.cardemulation.HostNfcFService#SERVICE_META_DATA}
+1 −0
Original line number Diff line number Diff line
@@ -204,6 +204,7 @@ package android.nfc.cardemulation {
    method public boolean isDefaultServiceForAid(android.content.ComponentName, String);
    method public boolean isDefaultServiceForCategory(android.content.ComponentName, String);
    method public boolean registerAidsForService(android.content.ComponentName, String, java.util.List<java.lang.String>);
    method @FlaggedApi("android.nfc.nfc_read_polling_loop") public boolean registerPollingLoopFilterForService(@NonNull android.content.ComponentName, @NonNull String);
    method public boolean removeAidsForService(android.content.ComponentName, String);
    method @NonNull @RequiresPermission(android.Manifest.permission.NFC) public boolean setOffHostForService(@NonNull android.content.ComponentName, @NonNull String);
    method public boolean setPreferredService(android.app.Activity, android.content.ComponentName);
+1 −0
Original line number Diff line number Diff line
@@ -99,4 +99,5 @@ interface INfcAdapter
    void updateDiscoveryTechnology(IBinder b, int pollFlags, int listenFlags);

    void notifyPollingLoop(in Bundle frame);
    void notifyHceDeactivated();
}
+1 −0
Original line number Diff line number Diff line
@@ -32,6 +32,7 @@ interface INfcCardEmulation
    boolean setDefaultForNextTap(int userHandle, in ComponentName service);
    boolean setServiceObserveModeDefault(int userId, in android.content.ComponentName service, boolean enable);
    boolean registerAidGroupForService(int userHandle, in ComponentName service, in AidGroup aidGroup);
    boolean registerPollingLoopFilterForService(int userHandle, in ComponentName service, in String pollingLoopFilter);
    boolean setOffHostForService(int userHandle, in ComponentName service, in String offHostSecureElement);
    boolean unsetOffHostForService(int userHandle, in ComponentName service);
    AidGroup getAidGroupForService(int userHandle, in ComponentName service, String category);
Loading