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

Commit 404ece54 authored by Android Build Coastguard Worker's avatar Android Build Coastguard Worker
Browse files

Snap for 11059422 from cafac050 to 24Q1-release

Change-Id: Iacdb6f8d5cfa823866e1656604f516277198f46a
parents a3bed45d cafac050
Loading
Loading
Loading
Loading
+8 −0
Original line number Diff line number Diff line
@@ -34,6 +34,7 @@ aconfig_srcjars = [
    ":com.android.window.flags.window-aconfig-java{.generated_srcjars}",
    ":android.hardware.biometrics.flags-aconfig-java{.generated_srcjars}",
    ":com.android.hardware.input-aconfig-java{.generated_srcjars}",
    ":com.android.input.flags-aconfig-java{.generated_srcjars}",
    ":com.android.text.flags-aconfig-java{.generated_srcjars}",
    ":telecom_flags_core_java_lib{.generated_srcjars}",
    ":telephony_flags_core_java_lib{.generated_srcjars}",
@@ -57,6 +58,7 @@ aconfig_srcjars = [
    ":android.service.autofill.flags-aconfig-java{.generated_srcjars}",
    ":com.android.net.flags-aconfig-java{.generated_srcjars}",
    ":device_policy_aconfig_flags_lib{.generated_srcjars}",
    ":service-jobscheduler-deviceidle.flags-aconfig-java{.generated_srcjars}",
    ":surfaceflinger_flags_java_lib{.generated_srcjars}",
]

@@ -129,6 +131,12 @@ java_aconfig_library {
    defaults: ["framework-minus-apex-aconfig-java-defaults"],
}

java_aconfig_library {
    name: "com.android.input.flags-aconfig-java",
    aconfig_declarations: "com.android.input.flags-aconfig",
    defaults: ["framework-minus-apex-aconfig-java-defaults"],
}

// Text
aconfig_declarations {
    name: "com.android.text.flags-aconfig",
+19 −3
Original line number Diff line number Diff line
@@ -13,7 +13,7 @@
// limitations under the License.

// We need this "trampoline" rule to force soong to give a host-side jar to
// framework-minus-apex.ravenwood. Otherwise, soong would mix up the arch (?) and we'd get
// framework-minus-apex.ravenwood-base. Otherwise, soong would mix up the arch (?) and we'd get
// a dex jar.
java_library {
    name: "framework-minus-apex-for-hoststubgen",
@@ -26,7 +26,7 @@ java_library {
}

// Generate the stub/impl from framework-all, with hidden APIs.
java_genrule_host {
java_genrule {
    name: "framework-minus-apex.ravenwood-base",
    tools: ["hoststubgen"],
    cmd: "$(location hoststubgen) " +
@@ -57,7 +57,9 @@ java_genrule_host {
}

// Extract the impl jar from "framework-minus-apex.ravenwood-base" for subsequent build rules.
java_genrule_host {
// Note this emits a "device side" output, so that ravenwood tests can (implicitly)
// depend on it.
java_genrule {
    name: "framework-minus-apex.ravenwood",
    defaults: ["hoststubgen-for-prototype-only-genrule"],
    cmd: "cp $(in) $(out)",
@@ -68,3 +70,17 @@ java_genrule_host {
        "framework-minus-apex.ravenwood.jar",
    ],
}

android_ravenwood_libgroup {
    name: "ravenwood-runtime",
    libs: [
        "framework-minus-apex.ravenwood",
        "hoststubgen-helper-runtime.ravenwood",
        "hoststubgen-helper-framework-runtime.ravenwood",
    ],
}

android_ravenwood_libgroup {
    name: "ravenwood-utils",
    libs: [],
}
+17 −0
Original line number Diff line number Diff line
// Device Idle
aconfig_declarations {
    name: "service-deviceidle.flags-aconfig",
    package: "com.android.server.deviceidle",
    srcs: [
        "device_idle.aconfig",
    ],
}

java_aconfig_library {
    name: "service-jobscheduler-deviceidle.flags-aconfig-java",
    aconfig_declarations: "service-deviceidle.flags-aconfig",
    defaults: ["framework-minus-apex-aconfig-java-defaults"],
    visibility: ["//frameworks/base:__subpackages__"],
}

// JobScheduler
aconfig_declarations {
    name: "service-job.flags-aconfig",
@@ -15,6 +31,7 @@ java_aconfig_library {
}

service_jobscheduler_aconfig_srcjars = [
    ":service-jobscheduler-deviceidle.flags-aconfig-java{.generated_srcjars}",
    ":service-jobscheduler-job.flags-aconfig-java{.generated_srcjars}",
]

+8 −0
Original line number Diff line number Diff line
package: "com.android.server.deviceidle"

flag {
    name: "disable_wakelocks_in_light_idle"
    namespace: "backstage_power"
    description: "Disable wakelocks for background apps while Light Device Idle is active"
    bug: "299329948"
}
+29 −13
Original line number Diff line number Diff line
@@ -82,6 +82,10 @@ public final class DeviceIdlenessTracker extends BroadcastReceiver implements Id
     * be a negative value if the device is not in state to be considered idle.
     */
    private long mIdlenessCheckScheduledElapsed = -1;
    /**
     * Time (in the elapsed realtime timebase) when the device can be considered idle.
     */
    private long mIdleStartElapsed = Long.MAX_VALUE;

    private IdlenessListener mIdleListener;
    private final UiModeManager.OnProjectionStateChangedListener mOnProjectionStateChangedListener =
@@ -191,11 +195,7 @@ public final class DeviceIdlenessTracker extends BroadcastReceiver implements Id
        }
        mProjectionActive = projectionActive;
        if (mProjectionActive) {
            cancelIdlenessCheck();
            if (mIdle) {
                mIdle = false;
                mIdleListener.reportNewIdleState(mIdle);
            }
            exitIdle();
        } else {
            maybeScheduleIdlenessCheck("Projection ended");
        }
@@ -209,6 +209,7 @@ public final class DeviceIdlenessTracker extends BroadcastReceiver implements Id
        pw.print("  mDockIdle: "); pw.println(mDockIdle);
        pw.print("  mProjectionActive: "); pw.println(mProjectionActive);
        pw.print("  mIdlenessCheckScheduledElapsed: "); pw.println(mIdlenessCheckScheduledElapsed);
        pw.print("  mIdleStartElapsed: "); pw.println(mIdleStartElapsed);
    }

    @Override
@@ -270,11 +271,7 @@ public final class DeviceIdlenessTracker extends BroadcastReceiver implements Id
                if (DEBUG) {
                    Slog.v(TAG, "exiting idle");
                }
                cancelIdlenessCheck();
                if (mIdle) {
                    mIdle = false;
                    mIdleListener.reportNewIdleState(mIdle);
                }
                exitIdle();
                break;
            case Intent.ACTION_SCREEN_OFF:
            case Intent.ACTION_DREAMING_STARTED:
@@ -302,6 +299,12 @@ public final class DeviceIdlenessTracker extends BroadcastReceiver implements Id
    }

    private void maybeScheduleIdlenessCheck(String reason) {
        if (mIdle) {
            if (DEBUG) {
                Slog.w(TAG, "Already idle. Redundant reason=" + reason);
            }
            return;
        }
        if ((!mScreenOn || mDockIdle) && !mProjectionActive) {
            final long nowElapsed = sElapsedRealtimeClock.millis();
            final long inactivityThresholdMs = mIsStablePower
@@ -319,19 +322,32 @@ public final class DeviceIdlenessTracker extends BroadcastReceiver implements Id
                mIdlenessCheckScheduledElapsed = nowElapsed;
            }
            final long when = mIdlenessCheckScheduledElapsed + inactivityThresholdMs;
            if (when == mIdleStartElapsed) {
                if (DEBUG) {
                    Slog.i(TAG, "No change to idle start time");
                }
                return;
            }
            mIdleStartElapsed = when;
            if (DEBUG) {
                Slog.v(TAG, "Scheduling idle : " + reason + " now:" + nowElapsed
                        + " checkElapsed=" + mIdlenessCheckScheduledElapsed + " when=" + when);
                        + " checkElapsed=" + mIdlenessCheckScheduledElapsed
                        + " when=" + mIdleStartElapsed);
            }
            mAlarm.setWindow(AlarmManager.ELAPSED_REALTIME_WAKEUP,
                    when, mIdleWindowSlop, "JS idleness",
                    mIdleStartElapsed, mIdleWindowSlop, "JS idleness",
                    AppSchedulingModuleThread.getExecutor(), mIdleAlarmListener);
        }
    }

    private void cancelIdlenessCheck() {
    private void exitIdle() {
        mAlarm.cancel(mIdleAlarmListener);
        mIdlenessCheckScheduledElapsed = -1;
        mIdleStartElapsed = Long.MAX_VALUE;
        if (mIdle) {
            mIdle = false;
            mIdleListener.reportNewIdleState(false);
        }
    }

    private void handleIdleTrigger() {
Loading