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

Commit c3278660 authored by Philip P. Moltmann's avatar Philip P. Moltmann
Browse files

Pipe through attributionTag for package installation

Test: atest CtsAppOpsTestCases
Bug: 136595429
Change-Id: Ifda7464911faf505cd5287dbf48859e17452d3e5
parent ce7c34fe
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -11871,6 +11871,7 @@ package android.content.pm {
    method public long getCreatedMillis();
    method public int getInstallLocation();
    method public int getInstallReason();
    method @Nullable public String getInstallerAttributionTag();
    method @Nullable public String getInstallerPackageName();
    method public int getMode();
    method public int getOriginatingUid();
+1 −1
Original line number Diff line number Diff line
@@ -2937,7 +2937,7 @@ public class ApplicationPackageManager extends PackageManager {
            if (mInstaller == null) {
                try {
                    mInstaller = new PackageInstaller(mPM.getPackageInstaller(),
                            mContext.getPackageName(), getUserId());
                            mContext.getPackageName(), mContext.getAttributionTag(), getUserId());
                } catch (RemoteException e) {
                    throw e.rethrowFromSystemServer();
                }
+4 −0
Original line number Diff line number Diff line
@@ -18,6 +18,10 @@
            "file_patterns": ["(/|^)AppOpsManager.java"],
            "name": "CtsAppOpsTestCases"
        },
        {
            "file_patterns": ["(/|^)AppOpsManager.java"],
            "name": "CtsAppOps2TestCases"
        },
        {
            "file_patterns": ["(/|^)AppOpsManager.java"],
            "name": "FrameworksServicesTests",
+2 −1
Original line number Diff line number Diff line
@@ -28,7 +28,8 @@ import android.graphics.Bitmap;

/** {@hide} */
interface IPackageInstaller {
    int createSession(in PackageInstaller.SessionParams params, String installerPackageName, int userId);
    int createSession(in PackageInstaller.SessionParams params, String installerPackageName,
            String installerAttributionTag, int userId);

    void updateSessionAppIcon(int sessionId, in Bitmap appIcon);
    void updateSessionAppLabel(int sessionId, String appLabel);
+17 −2
Original line number Diff line number Diff line
@@ -406,14 +406,16 @@ public class PackageInstaller {
    private final IPackageInstaller mInstaller;
    private final int mUserId;
    private final String mInstallerPackageName;
    private final String mAttributionTag;

    private final ArrayList<SessionCallbackDelegate> mDelegates = new ArrayList<>();

    /** {@hide} */
    public PackageInstaller(IPackageInstaller installer,
            String installerPackageName, int userId) {
            String installerPackageName, String installerAttributionTag, int userId) {
        mInstaller = installer;
        mInstallerPackageName = installerPackageName;
        mAttributionTag = installerAttributionTag;
        mUserId = userId;
    }

@@ -437,7 +439,8 @@ public class PackageInstaller {
     */
    public int createSession(@NonNull SessionParams params) throws IOException {
        try {
            return mInstaller.createSession(params, mInstallerPackageName, mUserId);
            return mInstaller.createSession(params, mInstallerPackageName, mAttributionTag,
                    mUserId);
        } catch (RuntimeException e) {
            ExceptionUtils.maybeUnwrapIOException(e);
            throw e;
@@ -2079,6 +2082,8 @@ public class PackageInstaller {
        @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.P, trackingBug = 115609023)
        public String installerPackageName;
        /** {@hide} */
        public String installerAttributionTag;
        /** {@hide} */
        @UnsupportedAppUsage
        public String resolvedBaseCodePath;
        /** {@hide} */
@@ -2167,6 +2172,7 @@ public class PackageInstaller {
            sessionId = source.readInt();
            userId = source.readInt();
            installerPackageName = source.readString();
            installerAttributionTag = source.readString();
            resolvedBaseCodePath = source.readString();
            progress = source.readFloat();
            sealed = source.readInt() != 0;
@@ -2227,6 +2233,14 @@ public class PackageInstaller {
            return installerPackageName;
        }

        /**
         * @return {@link android.content.Context#getAttributionTag attribution tag} of the context
         * that created this session
         */
        public @Nullable String getInstallerAttributionTag() {
            return installerAttributionTag;
        }

        /**
         * Return current overall progress of this session, between 0 and 1.
         * <p>
@@ -2699,6 +2713,7 @@ public class PackageInstaller {
            dest.writeInt(sessionId);
            dest.writeInt(userId);
            dest.writeString(installerPackageName);
            dest.writeString(installerAttributionTag);
            dest.writeString(resolvedBaseCodePath);
            dest.writeFloat(progress);
            dest.writeInt(sealed ? 1 : 0);
Loading