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

Commit 233c1c57 authored by Filip Gruszczynski's avatar Filip Gruszczynski Committed by Android (Google) Code Review
Browse files

Merge "Only add noDisplay activities to freeform source tasks."

parents a6d4744e 3d026714
Loading
Loading
Loading
Loading
+1 −2
Original line number Original line Diff line number Diff line
@@ -5300,8 +5300,7 @@ public class Activity extends ContextThemeWrapper
     */
     */
    public boolean isTaskRoot() {
    public boolean isTaskRoot() {
        try {
        try {
            return ActivityManagerNative.getDefault()
            return ActivityManagerNative.getDefault().getTaskForActivity(mToken, true) >= 0;
                .getTaskForActivity(mToken, true) >= 0;
        } catch (RemoteException e) {
        } catch (RemoteException e) {
            return false;
            return false;
        }
        }
+28 −15
Original line number Original line Diff line number Diff line
@@ -16,22 +16,21 @@


package com.android.server.am;
package com.android.server.am;


import static com.android.server.am.ActivityManagerDebugConfig.*;
import static android.app.ActivityManager.StackId.FREEFORM_WORKSPACE_STACK_ID;
import static com.android.server.am.ActivityManagerDebugConfig.DEBUG_CONFIGURATION;
import static com.android.server.am.ActivityManagerDebugConfig.DEBUG_SAVED_STATE;
import static com.android.server.am.ActivityManagerDebugConfig.DEBUG_SWITCH;
import static com.android.server.am.ActivityManagerDebugConfig.DEBUG_THUMBNAILS;
import static com.android.server.am.ActivityManagerDebugConfig.POSTFIX_STATES;
import static com.android.server.am.ActivityManagerDebugConfig.POSTFIX_SWITCH;
import static com.android.server.am.ActivityManagerDebugConfig.POSTFIX_THUMBNAILS;
import static com.android.server.am.ActivityManagerDebugConfig.TAG_AM;
import static com.android.server.am.ActivityManagerDebugConfig.TAG_WITH_CLASS_NAME;
import static com.android.server.am.TaskRecord.INVALID_TASK_ID;
import static com.android.server.am.TaskRecord.INVALID_TASK_ID;


import android.app.ActivityManager.TaskDescription;
import android.app.ActivityManager.TaskDescription;
import android.app.PendingIntent;
import android.os.PersistableBundle;
import android.os.Trace;

import com.android.internal.app.ResolverActivity;
import com.android.internal.content.ReferrerIntent;
import com.android.internal.util.XmlUtils;
import com.android.server.AttributeCache;
import com.android.server.am.ActivityStack.ActivityState;
import com.android.server.am.ActivityStackSupervisor.ActivityContainer;

import android.app.ActivityOptions;
import android.app.ActivityOptions;
import android.app.PendingIntent;
import android.app.ResultInfo;
import android.app.ResultInfo;
import android.content.ComponentName;
import android.content.ComponentName;
import android.content.Intent;
import android.content.Intent;
@@ -45,9 +44,11 @@ import android.os.Build;
import android.os.Bundle;
import android.os.Bundle;
import android.os.IBinder;
import android.os.IBinder;
import android.os.Message;
import android.os.Message;
import android.os.PersistableBundle;
import android.os.Process;
import android.os.Process;
import android.os.RemoteException;
import android.os.RemoteException;
import android.os.SystemClock;
import android.os.SystemClock;
import android.os.Trace;
import android.os.UserHandle;
import android.os.UserHandle;
import android.util.EventLog;
import android.util.EventLog;
import android.util.Log;
import android.util.Log;
@@ -57,9 +58,12 @@ import android.view.AppTransitionAnimationSpec;
import android.view.IApplicationToken;
import android.view.IApplicationToken;
import android.view.WindowManager;
import android.view.WindowManager;


import org.xmlpull.v1.XmlPullParser;
import com.android.internal.app.ResolverActivity;
import org.xmlpull.v1.XmlPullParserException;
import com.android.internal.content.ReferrerIntent;
import org.xmlpull.v1.XmlSerializer;
import com.android.internal.util.XmlUtils;
import com.android.server.AttributeCache;
import com.android.server.am.ActivityStack.ActivityState;
import com.android.server.am.ActivityStackSupervisor.ActivityContainer;


import java.io.File;
import java.io.File;
import java.io.IOException;
import java.io.IOException;
@@ -69,6 +73,10 @@ import java.util.ArrayList;
import java.util.HashSet;
import java.util.HashSet;
import java.util.Objects;
import java.util.Objects;


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

/**
/**
 * An entry in the history stack, representing an activity.
 * An entry in the history stack, representing an activity.
 */
 */
@@ -398,6 +406,11 @@ final class ActivityRecord {
        }
        }
    }
    }


    boolean isFreeform() {
        return task != null && task.stack != null
                && task.stack.mStackId == FREEFORM_WORKSPACE_STACK_ID;
    }

    static class Token extends IApplicationToken.Stub {
    static class Token extends IApplicationToken.Stub {
        private final WeakReference<ActivityRecord> weakActivity;
        private final WeakReference<ActivityRecord> weakActivity;
        private final ActivityManagerService mService;
        private final ActivityManagerService mService;
+2 −1
Original line number Original line Diff line number Diff line
@@ -2260,7 +2260,8 @@ public final class ActivityStackSupervisor implements DisplayListener {
            // Also put noDisplay activities in the source task. These by itself can
            // Also put noDisplay activities in the source task. These by itself can
            // be placed in any task/stack, however it could launch other activities
            // be placed in any task/stack, however it could launch other activities
            // like ResolverActivity, and we want those to stay in the original task.
            // like ResolverActivity, and we want those to stay in the original task.
            if (r.isResolverActivity() || r.noDisplay) {
            if ((r.isResolverActivity() || r.noDisplay) && sourceRecord != null
                    && sourceRecord.isFreeform())  {
                addingToTask = true;
                addingToTask = true;
            }
            }
        }
        }