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

Commit 53850061 authored by Songchun Fan's avatar Songchun Fan Committed by Android (Google) Code Review
Browse files

Merge "[pm] move firstInstallTime to PackageUserState"

parents 11b0e08e 8352d6a6
Loading
Loading
Loading
Loading
+3 −2
Original line number Diff line number Diff line
@@ -112,6 +112,8 @@ message PackageProto {
        optional string last_disabled_app_caller = 8;
        repeated string suspending_package = 9;
        optional int32 distraction_flags = 10;
        // UTC timestamp of first install for the user
        optional int32 first_install_time_ms = 11;
    }

    message InstallSourceProto {
@@ -147,8 +149,7 @@ message PackageProto {
    optional int32 version_code = 3;
    // Package's reported version string (what's displayed to the user).
    optional string version_string = 4;
    // UTC timestamp of install
    optional int64 install_time_ms = 5;
    reserved 5;
    // Millisecond UTC timestamp of latest update adjusted to Google's server clock.
    optional int64 update_time_ms = 6;
    // From "dumpsys package" - name of package which installed this one.
+7 −8
Original line number Diff line number Diff line
@@ -1560,7 +1560,7 @@ public class ComputerEngine implements Computer {
                    : mPermissionManager.getGrantedPermissions(ps.getPackageName(), userId);

            PackageInfo packageInfo = PackageInfoUtils.generate(p, gids, flags,
                    ps.getFirstInstallTime(), ps.getLastUpdateTime(), permissions, state, userId,
                    state.getFirstInstallTime(), ps.getLastUpdateTime(), permissions, state, userId,
                    ps);

            if (packageInfo == null) {
@@ -1577,7 +1577,7 @@ public class ComputerEngine implements Computer {
            pi.packageName = ps.getPackageName();
            pi.setLongVersionCode(ps.getVersionCode());
            pi.sharedUserId = (ps.getSharedUser() != null) ? ps.getSharedUser().name : null;
            pi.firstInstallTime = ps.getFirstInstallTime();
            pi.firstInstallTime = state.getFirstInstallTime();
            pi.lastUpdateTime = ps.getLastUpdateTime();

            ApplicationInfo ai = new ApplicationInfo();
@@ -5436,12 +5436,11 @@ public class ComputerEngine implements Computer {
            }
            PackageDexUsage.PackageUseInfo packageUseInfo =
                    mDexManager.getPackageUseInfoOrDefault(packageState.getPackageName());
            if (PackageManagerServiceUtils
                    .isUnusedSinceTimeInMillis(packageState.getFirstInstallTime(),
            if (PackageManagerServiceUtils.isUnusedSinceTimeInMillis(
                    PackageStateUtils.getEarliestFirstInstallTime(packageState.getUserStates()),
                    currentTimeInMillis, downgradeTimeThresholdMillis, packageUseInfo,
                    packageState.getTransientState().getLatestPackageUseTimeInMills(),
                            packageState.getTransientState()
                                    .getLatestForegroundPackageUseTimeInMills())) {
                    packageState.getTransientState().getLatestForegroundPackageUseTimeInMills())) {
                unusedPackages.add(packageState.getPackageName());
            }
        }
+2 −1
Original line number Diff line number Diff line
@@ -556,7 +556,8 @@ final class DeletePackageHelper {
                    PackageManager.INSTALL_REASON_UNKNOWN,
                    PackageManager.UNINSTALL_REASON_UNKNOWN,
                    null /*harmfulAppWarning*/,
                    null /*splashScreenTheme*/);
                    null /*splashScreenTheme*/,
                    0 /*firstInstallTime*/);
        }
        mPm.mSettings.writeKernelMappingLPr(ps);
    }
+2 −1
Original line number Diff line number Diff line
@@ -561,6 +561,7 @@ final class InstallPackageHelper {
                    pkgSetting.setHidden(false, userId);
                    pkgSetting.setInstallReason(installReason, userId);
                    pkgSetting.setUninstallReason(PackageManager.UNINSTALL_REASON_UNKNOWN, userId);
                    pkgSetting.setFirstInstallTime(System.currentTimeMillis(), userId);
                    mPm.mSettings.writePackageRestrictionsLPr(userId);
                    mPm.mSettings.writeKernelMappingLPr(pkgSetting);
                    installed = true;
@@ -1902,7 +1903,7 @@ final class InstallPackageHelper {
                PackageStateInternal deletedPkgSetting = mPm.getPackageStateInternal(
                        oldPackage.getPackageName());
                reconciledPkg.mPkgSetting
                        .setFirstInstallTime(deletedPkgSetting.getFirstInstallTime())
                        .setFirstInstallTimeFromReplaced(deletedPkgSetting, request.mAllUsers)
                        .setLastUpdateTime(System.currentTimeMillis());

                res.mRemovedInfo.mBroadcastAllowList = mPm.mAppsFilter.getVisibilityAllowList(
+5 −1
Original line number Diff line number Diff line
@@ -59,6 +59,7 @@ import com.android.server.pm.parsing.pkg.AndroidPackage;
import com.android.server.pm.parsing.pkg.AndroidPackageUtils;
import com.android.server.pm.permission.PermissionManagerServiceInternal;
import com.android.server.pm.pkg.PackageStateInternal;
import com.android.server.pm.pkg.PackageStateUtils;
import com.android.server.pm.pkg.PackageUserStateInternal;
import com.android.server.utils.Snappable;
import com.android.server.utils.SnapshotCache;
@@ -854,7 +855,10 @@ class InstantAppRegistry implements Watchable, Snappable {
                        } else if (lhsPs.getTransientState().getLatestPackageUseTimeInMills() <
                                rhsPs.getTransientState().getLatestPackageUseTimeInMills()) {
                            return -1;
                        } else if (lhsPs.getFirstInstallTime() > rhsPs.getFirstInstallTime()) {
                        } else if (
                                PackageStateUtils.getEarliestFirstInstallTime(lhsPs.getUserStates())
                                > PackageStateUtils.getEarliestFirstInstallTime(
                                        rhsPs.getUserStates())) {
                            return 1;
                        } else {
                            return -1;
Loading