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

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

Snap for 13538949 from 4df088bd to 25Q3-release

Change-Id: Ib714935e2613c61d6bb72a4678ece9f88b81e371
parents cc97cb65 4df088bd
Loading
Loading
Loading
Loading
+0 −20
Original line number Diff line number Diff line
@@ -107,26 +107,6 @@ public final class VirtualDeviceManager {

    private static final String TAG = "VirtualDeviceManager";

    /**
     * Broadcast Action: A Virtual Device was removed.
     *
     * <p class="note">This is a protected intent that can only be sent by the system.</p>
     *
     * @hide
     */
    @SdkConstant(SdkConstant.SdkConstantType.BROADCAST_INTENT_ACTION)
    public static final String ACTION_VIRTUAL_DEVICE_REMOVED =
            "android.companion.virtual.action.VIRTUAL_DEVICE_REMOVED";

    /**
     * Int intent extra to be used with {@link #ACTION_VIRTUAL_DEVICE_REMOVED}.
     * Contains the identifier of the virtual device, which was removed.
     *
     * @hide
     */
    public static final String EXTRA_VIRTUAL_DEVICE_ID =
            "android.companion.virtual.extra.VIRTUAL_DEVICE_ID";

    /** @hide */
    @Retention(RetentionPolicy.SOURCE)
    @IntDef(
+9 −0
Original line number Diff line number Diff line
@@ -526,3 +526,12 @@ flag {
      purpose: PURPOSE_BUGFIX
    }
}
flag {
    name: "move_set_screen_lock_dialog_to_settings_app"
    namespace: "profile_experiences"
    description: "Move the set screen lock dialog and activity from the platform to the Settings app for theming."
    bug: "407327874"
    metadata {
      purpose: PURPOSE_BUGFIX
    }
}
 No newline at end of file
+4 −5
Original line number Diff line number Diff line
@@ -58,7 +58,6 @@ import static android.view.inputmethod.Flags.FLAG_CONNECTIONLESS_HANDWRITING;
import static android.view.inputmethod.Flags.FLAG_IME_SWITCHER_REVAMP_API;
import static android.view.inputmethod.Flags.FLAG_VERIFY_KEY_EVENT;
import static android.view.inputmethod.Flags.ctrlShiftShortcut;
import static android.view.inputmethod.Flags.predictiveBackIme;

import android.annotation.CallSuper;
import android.annotation.DrawableRes;
@@ -3189,11 +3188,11 @@ public class InputMethodService extends AbstractInputMethodService {
            return;
        }
        if (mWindow != null) {
            if (getApplicationInfo().isOnBackInvokedCallbackEnabled() && predictiveBackIme()) {
            if (getApplicationInfo().isOnBackInvokedCallbackEnabled()) {
                // Register the compat callback as system-callback if IME has opted in for
                // predictive back (and predictiveBackIme feature flag is enabled). This indicates
                // to the receiving process (application process) that a predictive IME dismiss
                // animation may be played instead of invoking the callback.
                // predictive back. This indicates to the receiving process (application process)
                // that a predictive IME dismiss animation may be played instead of invoking the
                // callback.
                mWindow.getOnBackInvokedDispatcher().registerSystemOnBackInvokedCallback(
                        mCompatBackCallback);
            } else {
+11 −1
Original line number Diff line number Diff line
@@ -145,7 +145,8 @@ public final class BugreportParams {
    @IntDef(flag = true, prefix = { "BUGREPORT_FLAG_" }, value = {
            BUGREPORT_FLAG_USE_PREDUMPED_UI_DATA,
            BUGREPORT_FLAG_DEFER_CONSENT,
            BUGREPORT_FLAG_KEEP_BUGREPORT_ON_RETRIEVAL
            BUGREPORT_FLAG_KEEP_BUGREPORT_ON_RETRIEVAL,
            BUGREPORT_FLAG_CAPTURE_MULTI_DISPLAY_SCREENSHOT
    })
    public @interface BugreportFlag {}

@@ -178,4 +179,13 @@ public final class BugreportParams {
    @FlaggedApi(Flags.FLAG_ONBOARDING_BUGREPORT_V2_ENABLED)
    public static final int BUGREPORT_FLAG_KEEP_BUGREPORT_ON_RETRIEVAL =
            IDumpstate.BUGREPORT_FLAG_KEEP_BUGREPORT_ON_RETRIEVAL;

    /**
     * Flag for taking screenshots of all displays.
     * @hide
     */
    @FlaggedApi(android.os.Flags.FLAG_BUGREPORT_MULTI_DISPLAY_SCREENSHOT_ENABLED)
    public static final int BUGREPORT_FLAG_CAPTURE_MULTI_DISPLAY_SCREENSHOT =
            IDumpstate.BUGREPORT_FLAG_CAPTURE_MULTI_DISPLAY_SCREENSHOT;

}
+15 −37
Original line number Diff line number Diff line
@@ -296,23 +296,13 @@ public final class MessageQueue {
            return false;
        }

        MessageNode msgNode = null;
        MessageNode asyncMsgNode = null;

        if (!mPriorityQueue.isEmpty()) {
            try {
                msgNode = mPriorityQueue.first();
            } catch (NoSuchElementException e) { }
        }

        if (!mAsyncPriorityQueue.isEmpty()) {
            try {
                asyncMsgNode = mAsyncPriorityQueue.first();
            } catch (NoSuchElementException e) { }
        final MessageNode msgNode = first(mPriorityQueue);
        if (msgNode != null && msgNode.getWhen() <= now) {
            return false;
        }

        if ((msgNode != null && msgNode.getWhen() <= now)
                || (asyncMsgNode != null && asyncMsgNode.getWhen() <= now)) {
        final MessageNode asyncMsgNode = first(mAsyncPriorityQueue);
        if (asyncMsgNode != null && asyncMsgNode.getWhen() <= now) {
            return false;
        }

@@ -730,10 +720,8 @@ public final class MessageQueue {
             */

            /* Get the first node from each queue */
            Iterator<MessageNode> queueIter = mPriorityQueue.iterator();
            MessageNode msgNode = iterateNext(queueIter);
            Iterator<MessageNode> asyncQueueIter = mAsyncPriorityQueue.iterator();
            MessageNode asyncMsgNode = iterateNext(asyncQueueIter);
            MessageNode msgNode = first(mPriorityQueue);
            MessageNode asyncMsgNode = first(mAsyncPriorityQueue);

            if (DEBUG) {
                if (msgNode != null) {
@@ -1260,16 +1248,10 @@ public final class MessageQueue {

    private void removeSyncBarrierConcurrent(int token) {
        boolean removed;
        MessageNode first;
        final MatchBarrierToken matchBarrierToken = new MatchBarrierToken(token);

        try {
            /* Retain the first element to see if we are currently stuck on a barrier. */
            first = mPriorityQueue.first();
        } catch (NoSuchElementException e) {
            /* The queue is empty */
            first = null;
        }
        // Retain the first element to see if we are currently stuck on a barrier.
        final MessageNode first = first(mPriorityQueue);

        removed = findOrRemoveMessages(null, 0, null, null, 0, matchBarrierToken, true);
        if (removed && first != null) {
@@ -1535,8 +1517,7 @@ public final class MessageQueue {
            // Call nextMessage to get the stack drained into our priority queues
            nextMessage(true, false);

            Iterator<MessageNode> queueIter = mPriorityQueue.iterator();
            MessageNode queueNode = iterateNext(queueIter);
            MessageNode queueNode = first(mPriorityQueue);

            return (queueNode != null && queueNode.isBarrier());
        } else {
@@ -2447,16 +2428,13 @@ public final class MessageQueue {
        return nodeA != null ? nodeA : nodeB;
    }

    private MessageNode iterateNext(Iterator<MessageNode> iter) {
        if (iter.hasNext()) {
    private static MessageNode first(ConcurrentSkipListSet<MessageNode> queue) {
        try {
                return iter.next();
            return queue.first();
        } catch (NoSuchElementException e) {
                /* The queue is empty - this can happen if we race with remove */
            }
        }
            return null;
        }
    }

    /* Move any non-cancelled messages into the priority queue */
    private void drainStack(StackNode oldTop) {
Loading