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

Commit 2df58a47 authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge changes from topic "activity-embedding-finish-tests-1" into sc-v2-dev

* changes:
  Do Not Report Activities that are Finishing
  Create HandlerThread for TaskFragmentAnimationRunner
parents 31801ae6 32e05082
Loading
Loading
Loading
Loading
+7 −2
Original line number Diff line number Diff line
@@ -16,6 +16,7 @@

package androidx.window.extensions.embedding;

import static android.os.Process.THREAD_PRIORITY_DISPLAY;
import static android.view.RemoteAnimationTarget.MODE_CLOSING;
import static android.view.WindowManager.TRANSIT_OLD_ACTIVITY_CLOSE;
import static android.view.WindowManager.TRANSIT_OLD_ACTIVITY_OPEN;
@@ -29,7 +30,7 @@ import android.animation.Animator;
import android.animation.ValueAnimator;
import android.graphics.Rect;
import android.os.Handler;
import android.os.Looper;
import android.os.HandlerThread;
import android.os.RemoteException;
import android.util.Log;
import android.view.IRemoteAnimationFinishedCallback;
@@ -50,10 +51,14 @@ import java.util.function.BiFunction;
class TaskFragmentAnimationRunner extends IRemoteAnimationRunner.Stub {

    private static final String TAG = "TaskFragAnimationRunner";
    private final Handler mHandler = new Handler(Looper.myLooper());
    private final Handler mHandler;
    private final TaskFragmentAnimationSpec mAnimationSpec;

    TaskFragmentAnimationRunner() {
        HandlerThread animationThread = new HandlerThread(
                "androidx.window.extensions.embedding", THREAD_PRIORITY_DISPLAY);
        animationThread.start();
        mHandler = animationThread.getThreadHandler();
        mAnimationSpec = new TaskFragmentAnimationSpec(mHandler);
    }

+1 −1
Original line number Diff line number Diff line
@@ -103,7 +103,7 @@ class TaskFragmentContainer {
        ActivityThread activityThread = ActivityThread.currentActivityThread();
        for (IBinder token : mInfo.getActivities()) {
            Activity activity = activityThread.getActivity(token);
            if (activity != null && !allActivities.contains(activity)) {
            if (activity != null && !activity.isFinishing() && !allActivities.contains(activity)) {
                allActivities.add(activity);
            }
        }
+6 −7
Original line number Diff line number Diff line
@@ -2191,14 +2191,13 @@ class TaskFragment extends WindowContainer<WindowContainer> {
    TaskFragmentInfo getTaskFragmentInfo() {
        List<IBinder> childActivities = new ArrayList<>();
        for (int i = 0; i < getChildCount(); i++) {
            WindowContainer wc = getChildAt(i);
            if (mTaskFragmentOrganizerUid != INVALID_UID
                    && wc.asActivityRecord() != null
                    && wc.asActivityRecord().info.processName.equals(
                            mTaskFragmentOrganizerProcessName)
                    && wc.asActivityRecord().getUid() == mTaskFragmentOrganizerUid) {
            final WindowContainer wc = getChildAt(i);
            final ActivityRecord ar = wc.asActivityRecord();
            if (mTaskFragmentOrganizerUid != INVALID_UID && ar != null
                    && ar.info.processName.equals(mTaskFragmentOrganizerProcessName)
                    && ar.getUid() == mTaskFragmentOrganizerUid && !ar.finishing) {
                // Only includes Activities that belong to the organizer process for security.
                childActivities.add(wc.asActivityRecord().appToken);
                childActivities.add(ar.appToken);
            }
        }
        final Point positionInParent = new Point();