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

Commit 41aa421e authored by Android Build Coastguard Worker's avatar Android Build Coastguard Worker
Browse files

Snap for 11869550 from 10ce3491 to 24Q3-release

Change-Id: I1ab1f8fe2ebae3b300cfd03ef233e3601d6358fd
parents 4d8f3ea0 10ce3491
Loading
Loading
Loading
Loading
+1 −0
Original line number Original line Diff line number Diff line
@@ -33,6 +33,7 @@ java_library {
        "modules-utils-fastxmlserializer",
        "modules-utils-fastxmlserializer",
        "service-jobscheduler-alarm.flags-aconfig-java",
        "service-jobscheduler-alarm.flags-aconfig-java",
        "service-jobscheduler-job.flags-aconfig-java",
        "service-jobscheduler-job.flags-aconfig-java",
        "service-jobscheduler-appidle.flags-aconfig-java",
    ],
    ],


    // Rename classes shared with the framework
    // Rename classes shared with the framework
+13 −0
Original line number Original line Diff line number Diff line
@@ -42,3 +42,16 @@ java_aconfig_library {
    name: "service-jobscheduler-alarm.flags-aconfig-java",
    name: "service-jobscheduler-alarm.flags-aconfig-java",
    aconfig_declarations: "alarm_flags",
    aconfig_declarations: "alarm_flags",
}
}

// App Idle
aconfig_declarations {
    name: "app_idle_flags",
    package: "com.android.server.usage",
    container: "system",
    srcs: ["app_idle.aconfig"],
}

java_aconfig_library {
    name: "service-jobscheduler-appidle.flags-aconfig-java",
    aconfig_declarations: "app_idle_flags",
}
+14 −0
Original line number Original line Diff line number Diff line
package: "com.android.server.usage"
container: "system"

flag {
    name: "avoid_idle_check"
    namespace: "backstage_power"
    description: "Postpone app idle check after boot completed"
    is_fixed_read_only: true
    bug: "337864590"
    metadata {
        purpose: PURPOSE_BUGFIX
    }
}
+7 −1
Original line number Original line Diff line number Diff line
@@ -788,7 +788,13 @@ public class AppIdleHistory {
                        }
                        }
                        appUsageHistory.nextEstimatedLaunchTime = getLongValue(parser,
                        appUsageHistory.nextEstimatedLaunchTime = getLongValue(parser,
                                ATTR_NEXT_ESTIMATED_APP_LAUNCH_TIME, 0);
                                ATTR_NEXT_ESTIMATED_APP_LAUNCH_TIME, 0);
                        if (Flags.avoidIdleCheck()) {
                            // Set lastInformedBucket to the same value with the currentBucket
                            // it should have already been informed.
                            appUsageHistory.lastInformedBucket = appUsageHistory.currentBucket;
                        } else {
                            appUsageHistory.lastInformedBucket = -1;
                            appUsageHistory.lastInformedBucket = -1;
                        }
                        userHistory.put(packageName, appUsageHistory);
                        userHistory.put(packageName, appUsageHistory);


                        if (version >= XML_VERSION_ADD_BUCKET_EXPIRY_TIMES) {
                        if (version >= XML_VERSION_ADD_BUCKET_EXPIRY_TIMES) {
+18 −6
Original line number Original line Diff line number Diff line
@@ -707,7 +707,7 @@ public class AppStandbyController
                initializeDefaultsForSystemApps(UserHandle.USER_SYSTEM);
                initializeDefaultsForSystemApps(UserHandle.USER_SYSTEM);
            }
            }


            if (mPendingOneTimeCheckIdleStates) {
            if (!Flags.avoidIdleCheck() && mPendingOneTimeCheckIdleStates) {
                postOneTimeCheckIdleStates();
                postOneTimeCheckIdleStates();
            }
            }


@@ -1021,7 +1021,7 @@ public class AppStandbyController
                                        == REASON_SUB_DEFAULT_APP_RESTORED)) {
                                        == REASON_SUB_DEFAULT_APP_RESTORED)) {
                            newBucket = getBucketForLocked(packageName, userId, elapsedRealtime);
                            newBucket = getBucketForLocked(packageName, userId, elapsedRealtime);
                            if (DEBUG) {
                            if (DEBUG) {
                                Slog.d(TAG, "Evaluated AOSP newBucket = "
                                Slog.d(TAG, "Evaluated " + packageName + " newBucket = "
                                        + standbyBucketToString(newBucket));
                                        + standbyBucketToString(newBucket));
                            }
                            }
                            reason = REASON_MAIN_TIMEOUT;
                            reason = REASON_MAIN_TIMEOUT;
@@ -1990,9 +1990,11 @@ public class AppStandbyController
            }
            }
        }
        }
        if (android.app.admin.flags.Flags.disallowUserControlBgUsageFix()) {
        if (android.app.admin.flags.Flags.disallowUserControlBgUsageFix()) {
            if (!Flags.avoidIdleCheck()) {
                postCheckIdleStates(userId);
                postCheckIdleStates(userId);
            }
            }
        }
        }
    }


    @Override
    @Override
    public void onAdminDataAvailable() {
    public void onAdminDataAvailable() {
@@ -2392,11 +2394,16 @@ public class AppStandbyController
            final boolean isHeadLess = !systemLauncherActivities.contains(pkg);
            final boolean isHeadLess = !systemLauncherActivities.contains(pkg);


            if (updateHeadlessSystemAppCache(pkg, isHeadLess)) {
            if (updateHeadlessSystemAppCache(pkg, isHeadLess)) {
                if (!Flags.avoidIdleCheck()) {
                    // Checking idle state for the each individual headless system app
                    // during the boot up is not necessary, a full idle check for all
                    // usres will be scheduled after boot completed.
                    mHandler.obtainMessage(MSG_CHECK_PACKAGE_IDLE_STATE,
                    mHandler.obtainMessage(MSG_CHECK_PACKAGE_IDLE_STATE,
                                    UserHandle.USER_SYSTEM, -1, pkg)
                                    UserHandle.USER_SYSTEM, -1, pkg)
                            .sendToTarget();
                            .sendToTarget();
                }
                }
            }
            }
        }
        final long end = SystemClock.uptimeMillis();
        final long end = SystemClock.uptimeMillis();
        Slog.d(TAG, "Loaded headless system app cache in " + (end - start) + " ms:"
        Slog.d(TAG, "Loaded headless system app cache in " + (end - start) + " ms:"
                + " appIdleEnabled=" + mAppIdleEnabled);
                + " appIdleEnabled=" + mAppIdleEnabled);
@@ -2438,6 +2445,11 @@ public class AppStandbyController


    @Override
    @Override
    public void dumpState(String[] args, PrintWriter pw) {
    public void dumpState(String[] args, PrintWriter pw) {
        pw.println("Flags: ");
        pw.println("    " + Flags.FLAG_AVOID_IDLE_CHECK
                + ": " + Flags.avoidIdleCheck());
        pw.println();

        synchronized (mCarrierPrivilegedLock) {
        synchronized (mCarrierPrivilegedLock) {
            pw.println("Carrier privileged apps (have=" + mHaveCarrierPrivilegedApps
            pw.println("Carrier privileged apps (have=" + mHaveCarrierPrivilegedApps
                    + "): " + mCarrierPrivilegedApps);
                    + "): " + mCarrierPrivilegedApps);
Loading