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

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

Snap for 12829911 from 936c43b4 to 25Q2-release

Change-Id: I49a53b5437d12939f09c97102d79864e23c872f1
parents 943cbd5e 936c43b4
Loading
Loading
Loading
Loading
+13 −0
Original line number Diff line number Diff line
@@ -1809,11 +1809,24 @@ aconfig_declarations {
    name: "aconfig_settingslib_flags",
    package: "com.android.settingslib.flags",
    container: "system",
    exportable: true,
    srcs: [
        "packages/SettingsLib/aconfig/settingslib.aconfig",
    ],
}

java_aconfig_library {
    name: "aconfig_settingslib_exported_flags_java_lib",
    aconfig_declarations: "aconfig_settingslib_flags",
    defaults: ["framework-minus-apex-aconfig-java-defaults"],
    mode: "exported",
    min_sdk_version: "30",
    apex_available: [
        "//apex_available:platform",
        "com.android.permission",
    ],
}

java_aconfig_library {
    name: "aconfig_settingslib_flags_java_lib",
    aconfig_declarations: "aconfig_settingslib_flags",
+0 −1
Original line number Diff line number Diff line
@@ -2,5 +2,4 @@ surenb@google.com
tjmercier@google.com
kaleshsingh@google.com
jyescas@google.com
carlosgalo@google.com
jji@google.com
+11 −0
Original line number Diff line number Diff line
@@ -55,3 +55,14 @@ flag {
    description: "Introduce a new getPendingJobReasonsHistory() API which returns a limited historical view of getPendingJobReasons()."
    bug: "372031023"
}


flag {
    name: "add_type_info_to_wakelock_tag"
    namespace: "backstage_power"
    description: "Append the job type info to wakelock tag"
    bug: "381880530"
    metadata {
        purpose: PURPOSE_BUGFIX
    }
}
+38 −0
Original line number Diff line number Diff line
@@ -5766,6 +5766,41 @@ public class JobSchedulerService extends com.android.server.SystemService
    }

    // Shell command infrastructure
    int getJobWakelockTag(PrintWriter pw, String pkgName, int userId, @Nullable String namespace,
            int jobId) {
        try {
            final int uid = AppGlobals.getPackageManager().getPackageUid(pkgName, 0,
                    userId != UserHandle.USER_ALL ? userId : UserHandle.USER_SYSTEM);
            if (uid < 0) {
                pw.print("unknown(");
                pw.print(pkgName);
                pw.println(")");
                return JobSchedulerShellCommand.CMD_ERR_NO_PACKAGE;
            }

            synchronized (mLock) {
                final JobStatus js = mJobs.getJobByUidAndJobId(uid, namespace, jobId);
                if (DEBUG) {
                    Slog.d(TAG, "get-job-wakelock-tag " + namespace
                            + "/" + uid + "/" + jobId + ": " + js);
                }
                if (js == null) {
                    pw.print("unknown(");
                    UserHandle.formatUid(pw, uid);
                    pw.print("/jid");
                    pw.print(jobId);
                    pw.println(")");
                    return JobSchedulerShellCommand.CMD_ERR_NO_JOB;
                }

                pw.println(js.getWakelockTag());
            }
        } catch (RemoteException e) {
            // can't happen
        }
        return 0;
    }

    int getJobState(PrintWriter pw, String pkgName, int userId, @Nullable String namespace,
            int jobId) {
        try {
@@ -5945,6 +5980,9 @@ public class JobSchedulerService extends com.android.server.SystemService
            pw.print(android.app.job.Flags.FLAG_GET_PENDING_JOB_REASONS_HISTORY_API,
                    android.app.job.Flags.getPendingJobReasonsHistoryApi());
            pw.println();
            pw.print(android.app.job.Flags.FLAG_ADD_TYPE_INFO_TO_WAKELOCK_TAG,
                    android.app.job.Flags.addTypeInfoToWakelockTag());
            pw.println();
            pw.decreaseIndent();
            pw.println();

+48 −0
Original line number Diff line number Diff line
@@ -86,6 +86,8 @@ public final class JobSchedulerShellCommand extends BasicShellCommandHandler {
                    return getTransferredNetworkBytes(pw, BYTE_OPTION_DOWNLOAD);
                case "get-transferred-upload-bytes":
                    return getTransferredNetworkBytes(pw, BYTE_OPTION_UPLOAD);
                case "get-job-wakelock-tag":
                    return getJobWakelockTag(pw);
                case "get-job-state":
                    return getJobState(pw);
                case "heartbeat":
@@ -424,6 +426,9 @@ public final class JobSchedulerShellCommand extends BasicShellCommandHandler {
            case android.app.job.Flags.FLAG_JOB_DEBUG_INFO_APIS:
                pw.println(android.app.job.Flags.jobDebugInfoApis());
                break;
            case android.app.job.Flags.FLAG_ADD_TYPE_INFO_TO_WAKELOCK_TAG:
                pw.println(android.app.job.Flags.addTypeInfoToWakelockTag());
                break;
            case com.android.server.job.Flags.FLAG_BATCH_ACTIVE_BUCKET_JOBS:
                pw.println(com.android.server.job.Flags.batchActiveBucketJobs());
                break;
@@ -581,6 +586,49 @@ public final class JobSchedulerShellCommand extends BasicShellCommandHandler {
        }
    }

    private int getJobWakelockTag(PrintWriter pw) throws Exception {
        checkPermission("get job wakelock tag");

        int userId = UserHandle.USER_SYSTEM;
        String namespace = null;

        String opt;
        while ((opt = getNextOption()) != null) {
            switch (opt) {
                case "-u":
                case "--user":
                    userId = UserHandle.parseUserArg(getNextArgRequired());
                    break;

                case "-n":
                case "--namespace":
                    namespace = getNextArgRequired();
                    break;

                default:
                    pw.println("Error: unknown option '" + opt + "'");
                    return -1;
            }
        }

        if (userId == UserHandle.USER_CURRENT) {
            userId = ActivityManager.getCurrentUser();
        }

        final String pkgName = getNextArgRequired();
        final String jobIdStr = getNextArgRequired();
        final int jobId = Integer.parseInt(jobIdStr);

        final long ident = Binder.clearCallingIdentity();
        try {
            int ret = mInternal.getJobWakelockTag(pw, pkgName, userId, namespace, jobId);
            printError(ret, pkgName, userId, namespace, jobId);
            return ret;
        } finally {
            Binder.restoreCallingIdentity(ident);
        }
    }

    private int getJobState(PrintWriter pw) throws Exception {
        checkPermission("get job state");

Loading