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

Commit e921c7a2 authored by Wei Sheng Shih's avatar Wei Sheng Shih Committed by Android (Google) Code Review
Browse files

Merge "Fix snapshot starting window stuck if the task never gain focus" into sc-v2-dev

parents dcbaaffe 9987513a
Loading
Loading
Loading
Loading
+0 −9
Original line number Diff line number Diff line
@@ -3191,13 +3191,6 @@ package android.window {
    method @Nullable public android.view.View getBrandingView();
  }

  public final class StartingWindowInfo implements android.os.Parcelable {
    ctor public StartingWindowInfo();
    method public int describeContents();
    method public void writeToParcel(@NonNull android.os.Parcel, int);
    field @NonNull public static final android.os.Parcelable.Creator<android.window.StartingWindowInfo> CREATOR;
  }

  public final class TaskAppearedInfo implements android.os.Parcelable {
    ctor public TaskAppearedInfo(@NonNull android.app.ActivityManager.RunningTaskInfo, @NonNull android.view.SurfaceControl);
    method public int describeContents();
@@ -3264,7 +3257,6 @@ package android.window {

  public class TaskOrganizer extends android.window.WindowOrganizer {
    ctor public TaskOrganizer();
    method @BinderThread public void addStartingWindow(@NonNull android.window.StartingWindowInfo, @NonNull android.os.IBinder);
    method @BinderThread public void copySplashScreenView(int);
    method @Nullable @RequiresPermission(android.Manifest.permission.MANAGE_ACTIVITY_TASKS) public void createRootTask(int, int, @Nullable android.os.IBinder);
    method @RequiresPermission(android.Manifest.permission.MANAGE_ACTIVITY_TASKS) public boolean deleteRootTask(@NonNull android.window.WindowContainerToken);
@@ -3277,7 +3269,6 @@ package android.window {
    method @BinderThread public void onTaskInfoChanged(@NonNull android.app.ActivityManager.RunningTaskInfo);
    method @BinderThread public void onTaskVanished(@NonNull android.app.ActivityManager.RunningTaskInfo);
    method @CallSuper @NonNull @RequiresPermission(android.Manifest.permission.MANAGE_ACTIVITY_TASKS) public java.util.List<android.window.TaskAppearedInfo> registerOrganizer();
    method @BinderThread public void removeStartingWindow(int, @Nullable android.view.SurfaceControl, @Nullable android.graphics.Rect, boolean);
    method @RequiresPermission(android.Manifest.permission.MANAGE_ACTIVITY_TASKS) public void setInterceptBackPressedOnTaskRoot(@NonNull android.window.WindowContainerToken, boolean);
    method @CallSuper @RequiresPermission(android.Manifest.permission.MANAGE_ACTIVITY_TASKS) public void unregisterOrganizer();
  }
+3 −5
Original line number Diff line number Diff line
@@ -20,6 +20,7 @@ import android.view.SurfaceControl;
import android.app.ActivityManager;
import android.graphics.Rect;
import android.window.StartingWindowInfo;
import android.window.StartingWindowRemovalInfo;
import android.window.WindowContainerToken;

/**
@@ -39,12 +40,9 @@ oneway interface ITaskOrganizer {

    /**
     * Called when the Task want to remove the starting window.
     * @param leash A persistent leash for the top window in this task.
     * @param frame Window frame of the top window.
     * @param playRevealAnimation Play vanish animation.
     * @param removalInfo The information used to remove the starting window.
     */
    void removeStartingWindow(int taskId, in SurfaceControl leash, in Rect frame,
            in boolean playRevealAnimation);
    void removeStartingWindow(in StartingWindowRemovalInfo removalInfo);

    /**
     * Called when the Task want to copy the splash screen.
+0 −2
Original line number Diff line number Diff line
@@ -19,7 +19,6 @@ package android.window;
import android.annotation.IntDef;
import android.annotation.NonNull;
import android.annotation.Nullable;
import android.annotation.TestApi;
import android.app.ActivityManager;
import android.app.TaskInfo;
import android.content.pm.ActivityInfo;
@@ -34,7 +33,6 @@ import android.view.WindowManager;
 * start in the system.
 * @hide
 */
@TestApi
public final class StartingWindowInfo implements Parcelable {
    /**
     * Prefer nothing or not care the type of starting window.
+20 −0
Original line number Diff line number Diff line
/**
 * Copyright (c) 2021, The Android Open Source Project
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package android.window;

/** @hide */
parcelable StartingWindowRemovalInfo;
 No newline at end of file
+111 −0
Original line number Diff line number Diff line
/*
 * Copyright (C) 2021 The Android Open Source Project
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package android.window;

import android.annotation.NonNull;
import android.annotation.Nullable;
import android.graphics.Rect;
import android.os.Parcel;
import android.os.Parcelable;
import android.view.SurfaceControl;

/**
 * Information when removing a starting window of a particular task.
 * @hide
 */
public final class StartingWindowRemovalInfo implements Parcelable {

    /**
     * The identifier of a task.
     * @hide
     */
    public int taskId;

    /**
     * The animation container layer of the top activity.
     * @hide
     */
    @Nullable
    public SurfaceControl windowAnimationLeash;

    /**
     * The main window frame for the window of the top activity.
     * @hide
     */
    @Nullable
    public Rect mainFrame;

    /**
     * Whether need to play reveal animation.
     * @hide
     */
    public boolean playRevealAnimation;

    /**
     * Whether need to defer removing the starting window for IME.
     * @hide
     */
    public boolean deferRemoveForIme;

    public StartingWindowRemovalInfo() {

    }

    private StartingWindowRemovalInfo(@NonNull Parcel source) {
        readFromParcel(source);
    }

    @Override
    public int describeContents() {
        return 0;
    }

    void readFromParcel(@NonNull Parcel source) {
        taskId = source.readInt();
        windowAnimationLeash = source.readTypedObject(SurfaceControl.CREATOR);
        mainFrame = source.readTypedObject(Rect.CREATOR);
        playRevealAnimation = source.readBoolean();
        deferRemoveForIme = source.readBoolean();
    }

    @Override
    public void writeToParcel(@NonNull Parcel dest, int flags) {
        dest.writeInt(taskId);
        dest.writeTypedObject(windowAnimationLeash, flags);
        dest.writeTypedObject(mainFrame, flags);
        dest.writeBoolean(playRevealAnimation);
        dest.writeBoolean(deferRemoveForIme);
    }

    @Override
    public String toString() {
        return "StartingWindowRemovalInfo{taskId=" + taskId
                + " frame=" + mainFrame
                + " playRevealAnimation=" + playRevealAnimation
                + " deferRemoveForIme=" + deferRemoveForIme + "}";
    }

    public static final @android.annotation.NonNull Creator<StartingWindowRemovalInfo> CREATOR =
            new Creator<StartingWindowRemovalInfo>() {
                public StartingWindowRemovalInfo createFromParcel(@NonNull Parcel source) {
                    return new StartingWindowRemovalInfo(source);
                }
                public StartingWindowRemovalInfo[] newArray(int size) {
                    return new StartingWindowRemovalInfo[size];
                }
            };
}
Loading