Use AttributionSource Builder

Attribution source constructor are hidden api
Add a Builder option to take a AttributionSource as parameter

Test: atest BluetoothInstrumentationTests
Bug: 195144968
Tag: #refactor
Ignore-AOSP-First: No such thing on aosp
Change-Id: I901c8afff6a40bd8484fd8e10baf290aa483c280
This commit is contained in:
William Escande
2021-09-22 20:22:36 +02:00
parent c010164844
commit c05e55ffbf
3 changed files with 16 additions and 2 deletions

View File

@@ -9975,6 +9975,7 @@ package android.content {
public static final class AttributionSource.Builder {
ctor public AttributionSource.Builder(int);
ctor public AttributionSource.Builder(@NonNull android.content.AttributionSource);
method @NonNull public android.content.AttributionSource build();
method @NonNull public android.content.AttributionSource.Builder setAttributionTag(@Nullable String);
method @NonNull public android.content.AttributionSource.Builder setNext(@Nullable android.content.AttributionSource);

View File

@@ -88,8 +88,9 @@ public final class BluetoothManager {
uid = android.os.Process.SYSTEM_UID;
}
try {
res = new AttributionSource(uid,
AppGlobals.getPackageManager().getPackagesForUid(uid)[0], null);
res = new AttributionSource.Builder(uid)
.setPackageName(AppGlobals.getPackageManager().getPackagesForUid(uid)[0])
.build();
} catch (RemoteException ignored) {
}
}

View File

@@ -474,6 +474,18 @@ public final class AttributionSource implements Parcelable {
mAttributionSourceState.uid = uid;
}
public Builder(@NonNull AttributionSource current) {
if (current == null) {
throw new IllegalArgumentException("current AttributionSource can not be null");
}
mAttributionSourceState.uid = current.getUid();
mAttributionSourceState.packageName = current.getPackageName();
mAttributionSourceState.attributionTag = current.getAttributionTag();
mAttributionSourceState.token = current.getToken();
mAttributionSourceState.renouncedPermissions =
current.mAttributionSourceState.renouncedPermissions;
}
/**
* The package that is accessing the permission protected data.
*/