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

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

Snap for 11772614 from b19bd235 to 24Q3-release

Change-Id: I0e1f4dcb59ff5ff472a5c4c0714a38c9f0af81bb
parents 7e8cb3c2 b19bd235
Loading
Loading
Loading
Loading
+28 −0
Original line number Diff line number Diff line
@@ -34,6 +34,7 @@ java_genrule {

        "--debug-log $(location hoststubgen_framework-minus-apex.log) " +
        "--stats-file $(location hoststubgen_framework-minus-apex_stats.csv) " +
        "--supported-api-list-file $(location hoststubgen_framework-minus-apex_apis.csv) " +

        "--out-impl-jar $(location ravenwood.jar) " +

@@ -58,6 +59,7 @@ java_genrule {

        "hoststubgen_framework-minus-apex.log",
        "hoststubgen_framework-minus-apex_stats.csv",
        "hoststubgen_framework-minus-apex_apis.csv",
    ],
    visibility: ["//visibility:private"],
}
@@ -90,6 +92,18 @@ genrule {
    ],
}

genrule {
    name: "framework-minus-apex.ravenwood.apis",
    defaults: ["ravenwood-internal-only-visibility-genrule"],
    cmd: "cp $(in) $(out)",
    srcs: [
        ":framework-minus-apex.ravenwood-base{hoststubgen_framework-minus-apex_apis.csv}",
    ],
    out: [
        "hoststubgen_framework-minus-apex_apis.csv",
    ],
}

java_library {
    name: "services.core-for-hoststubgen",
    installable: false, // host only jar.
@@ -108,6 +122,7 @@ java_genrule {

        "--debug-log $(location hoststubgen_services.core.log) " +
        "--stats-file $(location hoststubgen_services.core_stats.csv) " +
        "--supported-api-list-file $(location hoststubgen_services.core_apis.csv) " +

        "--out-impl-jar $(location ravenwood.jar) " +

@@ -132,6 +147,7 @@ java_genrule {

        "hoststubgen_services.core.log",
        "hoststubgen_services.core_stats.csv",
        "hoststubgen_services.core_apis.csv",
    ],
    visibility: ["//visibility:private"],
}
@@ -161,6 +177,18 @@ genrule {
    ],
}

genrule {
    name: "services.core.ravenwood.apis",
    defaults: ["ravenwood-internal-only-visibility-genrule"],
    cmd: "cp $(in) $(out)",
    srcs: [
        ":services.core.ravenwood-base{hoststubgen_services.core_apis.csv}",
    ],
    out: [
        "hoststubgen_services.core_apis.csv",
    ],
}

java_library {
    name: "services.core.ravenwood-jarjar",
    installable: false,
+15 −20
Original line number Diff line number Diff line
@@ -36,10 +36,9 @@ import com.android.server.AppSchedulingModuleThread;
import com.android.server.job.JobSchedulerService;
import com.android.server.job.StateControllerProto;

import java.util.Comparator;
import java.util.Iterator;
import java.util.LinkedList;
import java.util.List;
import java.util.ListIterator;
import java.util.PriorityQueue;
import java.util.function.Predicate;

/**
@@ -64,8 +63,17 @@ public final class TimeController extends StateController {
    private volatile long mLastFiredDelayExpiredElapsedMillis;

    private AlarmManager mAlarmService = null;
    /** List of tracked jobs, sorted asc. by deadline */
    private final List<JobStatus> mTrackedJobs = new LinkedList<>();

    /** List of tracked jobs, ordered by deadline (lowest i.e. earliest first) */
    private final PriorityQueue<JobStatus> mTrackedJobs =
            new PriorityQueue<>(
                    new Comparator<JobStatus>() {
                        public int compare(JobStatus left, JobStatus right) {
                            return Long.compare(
                                    left.getLatestRunTimeElapsed(),
                                    right.getLatestRunTimeElapsed());
                        }
                    });

    public TimeController(JobSchedulerService service) {
        super(service);
@@ -102,20 +110,7 @@ public final class TimeController extends StateController {
                }
            }

            boolean isInsert = false;
            ListIterator<JobStatus> it = mTrackedJobs.listIterator(mTrackedJobs.size());
            while (it.hasPrevious()) {
                JobStatus ts = it.previous();
                if (ts.getLatestRunTimeElapsed() < job.getLatestRunTimeElapsed()) {
                    // Insert
                    isInsert = true;
                    break;
                }
            }
            if (isInsert) {
                it.next();
            }
            it.add(job);
            mTrackedJobs.add(job);

            job.setTrackingController(JobStatus.TRACKING_TIME);
            WorkSource ws =
@@ -226,7 +221,7 @@ public final class TimeController extends StateController {
            String nextExpiryPackageName = null;
            final long nowElapsedMillis = sElapsedRealtimeClock.millis();

            ListIterator<JobStatus> it = mTrackedJobs.listIterator();
            Iterator<JobStatus> it = mTrackedJobs.iterator();
            while (it.hasNext()) {
                JobStatus job = it.next();
                if (!job.hasDeadlineConstraint()) {
+40 −0
Original line number Diff line number Diff line
@@ -84,6 +84,7 @@ import android.content.pm.parsing.ApkLiteParseUtils;
import android.content.res.ApkAssets;
import android.content.res.Configuration;
import android.content.res.Resources;
import android.content.res.TypedArray;
import android.content.res.XmlResourceParser;
import android.graphics.Bitmap;
import android.graphics.Canvas;
@@ -118,9 +119,11 @@ import android.system.StructStat;
import android.text.TextUtils;
import android.util.ArrayMap;
import android.util.ArraySet;
import android.util.AttributeSet;
import android.util.LauncherIcons;
import android.util.Log;
import android.util.Slog;
import android.util.Xml;

import com.android.internal.annotations.GuardedBy;
import com.android.internal.annotations.Immutable;
@@ -132,6 +135,9 @@ import dalvik.system.VMRuntime;

import libcore.util.EmptyArray;

import org.xmlpull.v1.XmlPullParser;
import org.xmlpull.v1.XmlPullParserException;

import java.io.File;
import java.io.IOException;
import java.io.InputStream;
@@ -4090,4 +4096,38 @@ public class ApplicationPackageManager extends PackageManager {
            }
        }
    }

    @Override
    public TypedArray extractPackageItemInfoAttributes(PackageItemInfo info, String name,
            String rootTag, int[] attributes) {
        if (info == null || info.metaData == null) {
            return null;
        }

        try (XmlResourceParser parser = info.loadXmlMetaData(this, name)) {
            if (parser == null) {
                Log.w(TAG, "No " + name + " metadata");
                return null;
            }

            final AttributeSet attrs = Xml.asAttributeSet(parser);
            while (true) {
                final int type = parser.next();
                if (type == XmlPullParser.END_DOCUMENT || type == XmlPullParser.START_TAG) {
                    break;
                }
            }

            if (!TextUtils.equals(parser.getName(), rootTag)) {
                Log.w(TAG, "Metadata does not start with " + name + " tag");
                return null;
            }

            return getResourcesForApplication(info.getApplicationInfo())
                    .obtainAttributes(attrs, attributes);
        } catch (PackageManager.NameNotFoundException | IOException | XmlPullParserException e) {
            Log.e(TAG, "Error parsing: " + info.packageName, e);
            return null;
        }
    }
}
+30 −15
Original line number Diff line number Diff line
@@ -382,6 +382,10 @@ public final class CompanionDeviceManager {
    @GuardedBy("mListeners")
    private final ArrayList<OnAssociationsChangedListenerProxy> mListeners = new ArrayList<>();

    @GuardedBy("mTransportsChangedListeners")
    private final ArrayList<OnTransportsChangedListenerProxy> mTransportsChangedListeners =
            new ArrayList<>();

    @GuardedBy("mTransports")
    private final SparseArray<Transport> mTransports = new SparseArray<>();

@@ -998,6 +1002,7 @@ public final class CompanionDeviceManager {
            return;
        }

        synchronized (mTransportsChangedListeners) {
            final OnTransportsChangedListenerProxy proxy = new OnTransportsChangedListenerProxy(
                    executor, listener);
            try {
@@ -1005,6 +1010,8 @@ public final class CompanionDeviceManager {
            } catch (RemoteException e) {
                throw e.rethrowFromSystemServer();
            }
            mTransportsChangedListeners.add(proxy);
        }
    }

    /**
@@ -1022,13 +1029,21 @@ public final class CompanionDeviceManager {
            return;
        }

        final OnTransportsChangedListenerProxy proxy = new OnTransportsChangedListenerProxy(
                null, listener);
        synchronized (mTransportsChangedListeners) {
            final Iterator<OnTransportsChangedListenerProxy> iterator =
                    mTransportsChangedListeners.iterator();
            while (iterator.hasNext()) {
                final OnTransportsChangedListenerProxy proxy = iterator.next();
                if (proxy.mListener == listener) {
                    try {
                        mService.removeOnTransportsChangedListener(proxy);
                    } catch (RemoteException e) {
                        throw e.rethrowFromSystemServer();
                    }
                    iterator.remove();
                }
            }
        }
    }

    /**
@@ -1884,7 +1899,7 @@ public final class CompanionDeviceManager {
            mLocalOut = new ParcelFileDescriptor.AutoCloseOutputStream(localFd);

            try {
                mService.attachSystemDataTransport(mContext.getPackageName(),
                mService.attachSystemDataTransport(mContext.getOpPackageName(),
                        mContext.getUserId(), mAssociationId, remoteFd);
            } catch (RemoteException e) {
                throw new IOException("Failed to configure transport", e);
@@ -1921,9 +1936,9 @@ public final class CompanionDeviceManager {
            mStopped = true;

            try {
                mService.detachSystemDataTransport(mContext.getPackageName(),
                mService.detachSystemDataTransport(mContext.getOpPackageName(),
                        mContext.getUserId(), mAssociationId);
            } catch (RemoteException e) {
            } catch (RemoteException | IllegalArgumentException e) {
                Log.w(TAG, "Failed to detach transport", e);
            }

+1 −1
Original line number Diff line number Diff line
@@ -2700,7 +2700,7 @@ public class ApplicationInfo extends PackageItemInfo implements Parcelable {
    /**
     * @hide
     */
    @Override protected ApplicationInfo getApplicationInfo() {
    @Override public ApplicationInfo getApplicationInfo() {
        return this;
    }

Loading