From 3a4dcbf48049fe238ecdc814218382086dea506a Mon Sep 17 00:00:00 2001 From: Roshan Pius Date: Fri, 24 Feb 2023 13:54:51 -0800 Subject: [PATCH 1/2] nfc(proto): Create library for nfc protos Will be included in framework-nfc when we create the NFC mainline module. Bug: 270736237 Test: Compiles Change-Id: I4096888b0b624d932710558eca9f321193e5f14a --- core/proto/android/nfc/Android.bp | 43 +++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 core/proto/android/nfc/Android.bp diff --git a/core/proto/android/nfc/Android.bp b/core/proto/android/nfc/Android.bp new file mode 100644 index 0000000000000..6a62c917f2405 --- /dev/null +++ b/core/proto/android/nfc/Android.bp @@ -0,0 +1,43 @@ +// +// Copyright (C) 2023 The Android Open Source Project +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// + +package { + default_applicable_licenses: ["Android-Apache-2.0"], +} + +filegroup { + name: "srcs_nfc_proto", + srcs: [ + "*.proto", + ], +} + +// Will be statically linked by `framework-nfc`. +java_library { + name: "nfc-proto-java-gen", + installable: false, + proto: { + type: "stream", + include_dirs: [ + "external/protobuf/src", + ], + }, + srcs: [ + ":srcs_nfc_proto", + ], + sdk_version: "current", + min_sdk_version: "current", +} From 8c864f7dae12f066972c40fc0b8ab241ded426f6 Mon Sep 17 00:00:00 2001 From: Roshan Pius Date: Mon, 27 Feb 2023 10:10:25 -0800 Subject: [PATCH 2/2] nfc(api): Port over ComponentName#dumpDebug to internal util Bug: 263564478 Test: Compiles Change-Id: Ie8e54fb86d90b3f908273554d0c54b6ebbb0a82a --- .../nfc/cardemulation/ApduServiceInfo.java | 2 +- .../nfc/cardemulation/NfcFServiceInfo.java | 2 +- .../java/android/nfc/cardemulation/Utils.java | 37 +++++++++++++++++++ 3 files changed, 39 insertions(+), 2 deletions(-) create mode 100644 core/java/android/nfc/cardemulation/Utils.java diff --git a/core/java/android/nfc/cardemulation/ApduServiceInfo.java b/core/java/android/nfc/cardemulation/ApduServiceInfo.java index 09540132fe0d4..793a70e93f56c 100644 --- a/core/java/android/nfc/cardemulation/ApduServiceInfo.java +++ b/core/java/android/nfc/cardemulation/ApduServiceInfo.java @@ -660,7 +660,7 @@ public final class ApduServiceInfo implements Parcelable { * @param proto the ProtoOutputStream to write to */ public void dumpDebug(ProtoOutputStream proto) { - getComponent().dumpDebug(proto, ApduServiceInfoProto.COMPONENT_NAME); + Utils.dumpDebugComponentName(getComponent(), proto, ApduServiceInfoProto.COMPONENT_NAME); proto.write(ApduServiceInfoProto.DESCRIPTION, getDescription()); proto.write(ApduServiceInfoProto.ON_HOST, mOnHost); if (!mOnHost) { diff --git a/core/java/android/nfc/cardemulation/NfcFServiceInfo.java b/core/java/android/nfc/cardemulation/NfcFServiceInfo.java index f8f7dfe034b59..7a36b269240cd 100644 --- a/core/java/android/nfc/cardemulation/NfcFServiceInfo.java +++ b/core/java/android/nfc/cardemulation/NfcFServiceInfo.java @@ -340,7 +340,7 @@ public final class NfcFServiceInfo implements Parcelable { * @param proto the ProtoOutputStream to write to */ public void dumpDebug(ProtoOutputStream proto) { - getComponent().dumpDebug(proto, NfcFServiceInfoProto.COMPONENT_NAME); + Utils.dumpDebugComponentName(getComponent(), proto, NfcFServiceInfoProto.COMPONENT_NAME); proto.write(NfcFServiceInfoProto.DESCRIPTION, getDescription()); proto.write(NfcFServiceInfoProto.SYSTEM_CODE, getSystemCode()); proto.write(NfcFServiceInfoProto.NFCID2, getNfcid2()); diff --git a/core/java/android/nfc/cardemulation/Utils.java b/core/java/android/nfc/cardemulation/Utils.java new file mode 100644 index 0000000000000..202e1cfb48f6c --- /dev/null +++ b/core/java/android/nfc/cardemulation/Utils.java @@ -0,0 +1,37 @@ +/* + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package android.nfc.cardemulation; + +import android.annotation.NonNull; +import android.content.ComponentName; +import android.content.ComponentNameProto; +import android.util.proto.ProtoOutputStream; + +/** @hide */ +public final class Utils { + private Utils() { + } + + /** Copied from {@link ComponentName#dumpDebug(ProtoOutputStream, long)} */ + public static void dumpDebugComponentName( + @NonNull ComponentName componentName, @NonNull ProtoOutputStream proto, long fieldId) { + final long token = proto.start(fieldId); + proto.write(ComponentNameProto.PACKAGE_NAME, componentName.getPackageName()); + proto.write(ComponentNameProto.CLASS_NAME, componentName.getClassName()); + proto.end(token); + } +}