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

Commit c7cb310f authored by Achim Thesmann's avatar Achim Thesmann
Browse files

Add target SDK versions to BAL metric

The target SDK version is important to determine which set of rules
applies to an app involved in an activity start.

Flag: EXEMPT bugfix (adding missing fields to metric)
Bug: 339245692
Test: atest BackgroundActivityLaunchTest
Change-Id: I97d0c06250e33c32356bcedb565aad3651a3fe8d
parent cc509e52
Loading
Loading
Loading
Loading
+16 −14
Original line number Diff line number Diff line
@@ -427,19 +427,6 @@ public class BackgroundActivityStartController {
            return name + "[debugOnly]";
        }

        /** @return valid targetSdk or <code>-1</code> */
        private int getTargetSdk(String packageName) {
            if (packageName == null) {
                return -1;
            }
            try {
                PackageManager pm = mService.mContext.getPackageManager();
                return pm.getTargetSdkVersion(packageName);
            } catch (Exception e) {
                return -1;
            }
        }

        private boolean hasRealCaller() {
            return mRealCallingUid != NO_PROCESS_UID;
        }
@@ -1730,7 +1717,9 @@ public class BackgroundActivityStartController {
                state.mResultForRealCaller == null ? BAL_BLOCK
                        : state.mResultForRealCaller.getRawCode(),
                state.mBalAllowedByPiSender.allowsBackgroundActivityStarts(),
                state.realCallerExplicitOptInOrOut()
                state.realCallerExplicitOptInOrOut(),
                getTargetSdk(state.mCallingPackage),
                getTargetSdk(state.mRealCallingPackage)
        );
    }

@@ -1811,6 +1800,19 @@ public class BackgroundActivityStartController {
                + ", taskFragment=" + ar.getTaskFragment();
    }

    /** @return valid targetSdk or <code>-1</code> */
    private int getTargetSdk(String packageName) {
        if (packageName == null) {
            return -1;
        }
        try {
            PackageManager pm = mService.mContext.getPackageManager();
            return pm.getTargetSdkVersion(packageName);
        } catch (Exception e) {
            return -1;
        }
    }

    private class FinishedActivityEntry {
        int mUid;
        int mTaskId;