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

Commit 7caa5f8a authored by Songchun Fan's avatar Songchun Fan Committed by Automerger Merge Worker
Browse files

Merge "[metrics] implement callbacks for InstalledIncrementalPackage pulled...

Merge "[metrics] implement callbacks for InstalledIncrementalPackage pulled atom" into sc-dev am: 7e5a53a0

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/14719306

Change-Id: I50f8d894ad68b7c3861b3239dda7e4f05e76d7e9
parents d3833727 7e5a53a0
Loading
Loading
Loading
Loading
+32 −0
Original line number Diff line number Diff line
@@ -126,6 +126,7 @@ import android.os.Trace;
import android.os.UserHandle;
import android.os.UserManager;
import android.os.connectivity.WifiActivityEnergyInfo;
import android.os.incremental.IncrementalManager;
import android.os.storage.DiskInfo;
import android.os.storage.StorageManager;
import android.os.storage.VolumeInfo;
@@ -426,6 +427,7 @@ public class StatsPullAtomService extends SystemService {
    private final Object mHealthHalLock = new Object();
    private final Object mAttributedAppOpsLock = new Object();
    private final Object mSettingsStatsLock = new Object();
    private final Object mInstalledIncrementalPackagesLock = new Object();

    public StatsPullAtomService(Context context) {
        super(context);
@@ -695,6 +697,10 @@ public class StatsPullAtomService extends SystemService {
                        synchronized (mSettingsStatsLock) {
                            return pullSettingsStatsLocked(atomTag, data);
                        }
                    case FrameworkStatsLog.INSTALLED_INCREMENTAL_PACKAGE:
                        synchronized (mInstalledIncrementalPackagesLock) {
                            return pullInstalledIncrementalPackagesLocked(atomTag, data);
                        }
                    default:
                        throw new UnsupportedOperationException("Unknown tagId=" + atomTag);
                }
@@ -877,6 +883,7 @@ public class StatsPullAtomService extends SystemService {
        registerBatteryVoltage();
        registerBatteryCycleCount();
        registerSettingsStats();
        registerInstalledIncrementalPackages();
    }

    private void initAndRegisterNetworkStatsPullers() {
@@ -3949,6 +3956,31 @@ public class StatsPullAtomService extends SystemService {
        return StatsManager.PULL_SUCCESS;
    }

    private void registerInstalledIncrementalPackages() {
        int tagId = FrameworkStatsLog.INSTALLED_INCREMENTAL_PACKAGE;
        mStatsManager.setPullAtomCallback(
                tagId,
                null, // use default PullAtomMetadata values
                DIRECT_EXECUTOR,
                mStatsCallbackImpl
        );
    }

    int pullInstalledIncrementalPackagesLocked(int atomTag, List<StatsEvent> pulledData) {
        final PackageManager pm = mContext.getPackageManager();
        if (!pm.hasSystemFeature(PackageManager.FEATURE_INCREMENTAL_DELIVERY)) {
            // Incremental is not enabled on this device. The result list will be empty.
            return StatsManager.PULL_SUCCESS;
        }
        List<PackageInfo> installedPackages = pm.getInstalledPackages(0);
        for (PackageInfo pi : installedPackages) {
            if (IncrementalManager.isIncrementalPath(pi.applicationInfo.getBaseCodePath())) {
                pulledData.add(FrameworkStatsLog.buildStatsEvent(atomTag, pi.applicationInfo.uid));
            }
        }
        return StatsManager.PULL_SUCCESS;
    }

    // Thermal event received from vendor thermal management subsystem
    private static final class ThermalEventListener extends IThermalEventListener.Stub {
        @Override