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

Commit 98f15b43 authored by Chris Li's avatar Chris Li
Browse files

Cleanup scheduleTransactionAndLifecycleItems

We no longer need to distinguish ActivityLifecycleItem

Bug: 323801078
Test: pass presubmit for refactor
Flag: EXEMPT refactor
Change-Id: I7472e3a1319ed5f7419d501fd3786fe66f84566a
parent f58acb9f
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -4916,7 +4916,7 @@ final class ActivityRecord extends WindowToken implements WindowManagerService.A
            final ActivityLifecycleItem lifecycleItem = getLifecycleItemForCurrentStateForResult();
            try {
                if (lifecycleItem != null) {
                    mAtmService.getLifecycleManager().scheduleTransactionAndLifecycleItems(
                    mAtmService.getLifecycleManager().scheduleTransactionItems(
                            app.getThread(), activityResultItem, lifecycleItem);
                } else {
                    Slog.w(TAG, "Unable to get the lifecycle item for state " + mState
@@ -9628,7 +9628,7 @@ final class ActivityRecord extends WindowToken implements WindowManagerService.A
            } else {
                lifecycleItem = new PauseActivityItem(token);
            }
            mAtmService.getLifecycleManager().scheduleTransactionAndLifecycleItems(
            mAtmService.getLifecycleManager().scheduleTransactionItems(
                    app.getThread(), callbackItem, lifecycleItem);
            startRelaunching();
            // Note: don't need to call pauseIfSleepingLocked() here, because the caller will only
+1 −1
Original line number Diff line number Diff line
@@ -89,7 +89,7 @@ class ActivityRefresher {
        final ResumeActivityItem resumeActivityItem = new ResumeActivityItem(
                activity.token, /* isForward */ false, /* shouldSendCompatFakeFocus */ false);
        try {
            activity.mAtmService.getLifecycleManager().scheduleTransactionAndLifecycleItems(
            activity.mAtmService.getLifecycleManager().scheduleTransactionItems(
                    activity.app.getThread(), refreshCallbackItem, resumeActivityItem);
            mHandler.postDelayed(() -> {
                synchronized (mWmService.mGlobalLock) {
+4 −3
Original line number Diff line number Diff line
@@ -964,11 +964,12 @@ public class ActivityTaskSupervisor implements RecentTasks.Callbacks {
                    // transaction.
                    mService.getLifecycleManager().dispatchPendingTransaction(proc.getThread());
                }
                mService.getLifecycleManager().scheduleTransactionAndLifecycleItems(
                        proc.getThread(), launchActivityItem, lifecycleItem,
                mService.getLifecycleManager().scheduleTransactionItems(
                        proc.getThread(),
                        // Immediately dispatch the transaction, so that if it fails, the server can
                        // restart the process and retry now.
                        true /* shouldDispatchImmediately */);
                        true /* shouldDispatchImmediately */,
                        launchActivityItem, lifecycleItem);

                if (procConfig.seq > mRootWindowContainer.getConfiguration().seq) {
                    // If the seq is increased, there should be something changed (e.g. registered
+23 −19
Original line number Diff line number Diff line
@@ -19,7 +19,6 @@ package com.android.server.wm;
import android.annotation.NonNull;
import android.app.IApplicationThread;
import android.app.compat.CompatChanges;
import android.app.servertransaction.ActivityLifecycleItem;
import android.app.servertransaction.ClientTransaction;
import android.app.servertransaction.ClientTransactionItem;
import android.app.servertransaction.LaunchActivityItem;
@@ -97,31 +96,34 @@ class ClientLifecycleManager {
    }

    /**
     * Schedules a single transaction item, either a callback or a lifecycle request, delivery to
     * client application.
     * Schedules a transaction with the given item, delivery to client application.
     *
     * @throws RemoteException
     * @see ClientTransactionItem
     */
    void scheduleTransactionItem(@NonNull IApplicationThread client,
            @NonNull ClientTransactionItem transactionItem) throws RemoteException {
            @NonNull ClientTransactionItem item) throws RemoteException {
        // Wait until RootWindowContainer#performSurfacePlacementNoTrace to dispatch all pending
        // transactions at once.
        final ClientTransaction clientTransaction = getOrCreatePendingTransaction(client);
        clientTransaction.addTransactionItem(transactionItem);
        clientTransaction.addTransactionItem(item);

        onClientTransactionItemScheduled(clientTransaction,
                false /* shouldDispatchImmediately */);
        onClientTransactionItemScheduled(clientTransaction, false /* shouldDispatchImmediately */);
    }

    void scheduleTransactionAndLifecycleItems(@NonNull IApplicationThread client,
            @NonNull ClientTransactionItem transactionItem,
            @NonNull ActivityLifecycleItem lifecycleItem) throws RemoteException {
        scheduleTransactionAndLifecycleItems(client, transactionItem, lifecycleItem,
                false /* shouldDispatchImmediately */);
    /**
     * Schedules a transaction with the given items, delivery to client application.
     *
     * @throws RemoteException
     * @see ClientTransactionItem
     */
    void scheduleTransactionItems(@NonNull IApplicationThread client,
            @NonNull ClientTransactionItem... items) throws RemoteException {
        scheduleTransactionItems(client, false /* shouldDispatchImmediately */, items);
    }

    /**
     * Schedules a single transaction item with a lifecycle request, delivery to client application.
     * Schedules a transaction with the given items, delivery to client application.
     *
     * @param shouldDispatchImmediately whether or not to dispatch the transaction immediately. This
     *                                  should only be {@code true} when it is important to know the
@@ -133,15 +135,17 @@ class ClientLifecycleManager {
     * @throws RemoteException
     * @see ClientTransactionItem
     */
    void scheduleTransactionAndLifecycleItems(@NonNull IApplicationThread client,
            @NonNull ClientTransactionItem transactionItem,
            @NonNull ActivityLifecycleItem lifecycleItem,
            boolean shouldDispatchImmediately) throws RemoteException {
    void scheduleTransactionItems(@NonNull IApplicationThread client,
            boolean shouldDispatchImmediately,
            @NonNull ClientTransactionItem... items) throws RemoteException {
        // Wait until RootWindowContainer#performSurfacePlacementNoTrace to dispatch all pending
        // transactions at once.
        final ClientTransaction clientTransaction = getOrCreatePendingTransaction(client);
        clientTransaction.addTransactionItem(transactionItem);
        clientTransaction.addTransactionItem(lifecycleItem);

        final int size = items.length;
        for (int i = 0; i < size; i++) {
            clientTransaction.addTransactionItem(items[i]);
        }

        onClientTransactionItemScheduled(clientTransaction, shouldDispatchImmediately);
    }
+1 −1
Original line number Diff line number Diff line
@@ -197,7 +197,7 @@ public class ActivityRefresherTests extends WindowTestsBase {
                /* isForward */ false, /* shouldSendCompatFakeFocus */ false);

        verify(mActivity.mAtmService.getLifecycleManager(), times(refreshRequested ? 1 : 0))
                .scheduleTransactionAndLifecycleItems(mActivity.app.getThread(),
                .scheduleTransactionItems(mActivity.app.getThread(),
                        refreshCallbackItem, resumeActivityItem);
    }

Loading