Merge "Remove TaskFragmentAppearedInfo" into sc-v2-dev am: 552551dd3d

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/16303819

Change-Id: Iab8b1046e6951386789d69ceea9ed5989fd6e0f7
This commit is contained in:
Chris Li
2021-11-23 03:14:21 +00:00
committed by Automerger Merge Worker
8 changed files with 13 additions and 153 deletions

View File

@@ -3210,12 +3210,6 @@ package android.window {
field @NonNull public static final android.os.Parcelable.Creator<android.window.TaskAppearedInfo> CREATOR; field @NonNull public static final android.os.Parcelable.Creator<android.window.TaskAppearedInfo> CREATOR;
} }
public final class TaskFragmentAppearedInfo implements android.os.Parcelable {
method @NonNull public android.view.SurfaceControl getLeash();
method @NonNull public android.window.TaskFragmentInfo getTaskFragmentInfo();
field @NonNull public static final android.os.Parcelable.Creator<android.window.TaskFragmentAppearedInfo> CREATOR;
}
public final class TaskFragmentCreationParams implements android.os.Parcelable { public final class TaskFragmentCreationParams implements android.os.Parcelable {
method @NonNull public android.os.IBinder getFragmentToken(); method @NonNull public android.os.IBinder getFragmentToken();
method @NonNull public android.graphics.Rect getInitialBounds(); method @NonNull public android.graphics.Rect getInitialBounds();
@@ -3252,7 +3246,7 @@ package android.window {
ctor public TaskFragmentOrganizer(@NonNull java.util.concurrent.Executor); ctor public TaskFragmentOrganizer(@NonNull java.util.concurrent.Executor);
method @NonNull public java.util.concurrent.Executor getExecutor(); method @NonNull public java.util.concurrent.Executor getExecutor();
method @NonNull public android.window.TaskFragmentOrganizerToken getOrganizerToken(); method @NonNull public android.window.TaskFragmentOrganizerToken getOrganizerToken();
method public void onTaskFragmentAppeared(@NonNull android.window.TaskFragmentAppearedInfo); method public void onTaskFragmentAppeared(@NonNull android.window.TaskFragmentInfo);
method public void onTaskFragmentError(@NonNull android.os.IBinder, @NonNull Throwable); method public void onTaskFragmentError(@NonNull android.os.IBinder, @NonNull Throwable);
method public void onTaskFragmentInfoChanged(@NonNull android.window.TaskFragmentInfo); method public void onTaskFragmentInfoChanged(@NonNull android.window.TaskFragmentInfo);
method public void onTaskFragmentParentInfoChanged(@NonNull android.os.IBinder, @NonNull android.content.res.Configuration); method public void onTaskFragmentParentInfoChanged(@NonNull android.os.IBinder, @NonNull android.content.res.Configuration);

View File

@@ -19,12 +19,11 @@ package android.window;
import android.content.res.Configuration; import android.content.res.Configuration;
import android.os.Bundle; import android.os.Bundle;
import android.os.IBinder; import android.os.IBinder;
import android.window.TaskFragmentAppearedInfo;
import android.window.TaskFragmentInfo; import android.window.TaskFragmentInfo;
/** @hide */ /** @hide */
oneway interface ITaskFragmentOrganizer { oneway interface ITaskFragmentOrganizer {
void onTaskFragmentAppeared(in TaskFragmentAppearedInfo taskFragmentAppearedInfo); void onTaskFragmentAppeared(in TaskFragmentInfo taskFragmentInfo);
void onTaskFragmentInfoChanged(in TaskFragmentInfo taskFragmentInfo); void onTaskFragmentInfoChanged(in TaskFragmentInfo taskFragmentInfo);
void onTaskFragmentVanished(in TaskFragmentInfo taskFragmentInfo); void onTaskFragmentVanished(in TaskFragmentInfo taskFragmentInfo);

View File

@@ -1,23 +0,0 @@
/*
* 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;
/**
* Data object for the TaskFragment info provided when a TaskFragment is presented to an organizer.
* @hide
*/
parcelable TaskFragmentAppearedInfo;

View File

@@ -1,93 +0,0 @@
/*
* 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.TestApi;
import android.os.Parcel;
import android.os.Parcelable;
import android.view.SurfaceControl;
/**
* Data object for the TaskFragment info provided when a TaskFragment is presented to an organizer.
* @hide
*/
@TestApi
public final class TaskFragmentAppearedInfo implements Parcelable {
@NonNull
private final TaskFragmentInfo mTaskFragmentInfo;
@NonNull
private final SurfaceControl mLeash;
/** @hide */
public TaskFragmentAppearedInfo(
@NonNull TaskFragmentInfo taskFragmentInfo, @NonNull SurfaceControl leash) {
mTaskFragmentInfo = taskFragmentInfo;
mLeash = leash;
}
@NonNull
public TaskFragmentInfo getTaskFragmentInfo() {
return mTaskFragmentInfo;
}
@NonNull
public SurfaceControl getLeash() {
return mLeash;
}
private TaskFragmentAppearedInfo(Parcel in) {
mTaskFragmentInfo = in.readTypedObject(TaskFragmentInfo.CREATOR);
mLeash = in.readTypedObject(SurfaceControl.CREATOR);
}
/** @hide */
@Override
public void writeToParcel(@NonNull Parcel dest, int flags) {
dest.writeTypedObject(mTaskFragmentInfo, flags);
dest.writeTypedObject(mLeash, flags);
}
@NonNull
public static final Creator<TaskFragmentAppearedInfo> CREATOR =
new Creator<TaskFragmentAppearedInfo>() {
@Override
public TaskFragmentAppearedInfo createFromParcel(Parcel in) {
return new TaskFragmentAppearedInfo(in);
}
@Override
public TaskFragmentAppearedInfo[] newArray(int size) {
return new TaskFragmentAppearedInfo[size];
}
};
@Override
public String toString() {
return "TaskFragmentAppearedInfo{"
+ " taskFragmentInfo=" + mTaskFragmentInfo
+ "}";
}
/** @hide */
@Override
public int describeContents() {
return 0;
}
}

View File

@@ -120,8 +120,7 @@ public class TaskFragmentOrganizer extends WindowOrganizer {
} }
/** Called when a TaskFragment is created and organized by this organizer. */ /** Called when a TaskFragment is created and organized by this organizer. */
public void onTaskFragmentAppeared( public void onTaskFragmentAppeared(@NonNull TaskFragmentInfo taskFragmentInfo) {}
@NonNull TaskFragmentAppearedInfo taskFragmentAppearedInfo) {}
/** Called when the status of an organized TaskFragment is changed. */ /** Called when the status of an organized TaskFragment is changed. */
public void onTaskFragmentInfoChanged(@NonNull TaskFragmentInfo taskFragmentInfo) {} public void onTaskFragmentInfoChanged(@NonNull TaskFragmentInfo taskFragmentInfo) {}
@@ -169,7 +168,7 @@ public class TaskFragmentOrganizer extends WindowOrganizer {
private final ITaskFragmentOrganizer mInterface = new ITaskFragmentOrganizer.Stub() { private final ITaskFragmentOrganizer mInterface = new ITaskFragmentOrganizer.Stub() {
@Override @Override
public void onTaskFragmentAppeared(@NonNull TaskFragmentAppearedInfo taskFragmentInfo) { public void onTaskFragmentAppeared(@NonNull TaskFragmentInfo taskFragmentInfo) {
mExecutor.execute( mExecutor.execute(
() -> TaskFragmentOrganizer.this.onTaskFragmentAppeared(taskFragmentInfo)); () -> TaskFragmentOrganizer.this.onTaskFragmentAppeared(taskFragmentInfo));
} }

View File

@@ -27,8 +27,6 @@ import android.graphics.Rect;
import android.os.Bundle; import android.os.Bundle;
import android.os.IBinder; import android.os.IBinder;
import android.util.ArrayMap; import android.util.ArrayMap;
import android.view.SurfaceControl;
import android.window.TaskFragmentAppearedInfo;
import android.window.TaskFragmentCreationParams; import android.window.TaskFragmentCreationParams;
import android.window.TaskFragmentInfo; import android.window.TaskFragmentInfo;
import android.window.TaskFragmentOrganizer; import android.window.TaskFragmentOrganizer;
@@ -51,9 +49,6 @@ class JetpackTaskFragmentOrganizer extends TaskFragmentOrganizer {
/** Mapping from the client assigned unique token to the {@link TaskFragmentInfo}. */ /** Mapping from the client assigned unique token to the {@link TaskFragmentInfo}. */
private final Map<IBinder, TaskFragmentInfo> mFragmentInfos = new ArrayMap<>(); private final Map<IBinder, TaskFragmentInfo> mFragmentInfos = new ArrayMap<>();
/** Mapping from the client assigned unique token to the TaskFragment {@link SurfaceControl}. */
private final Map<IBinder, SurfaceControl> mFragmentLeashes = new ArrayMap<>();
/** /**
* Mapping from the client assigned unique token to the TaskFragment parent * Mapping from the client assigned unique token to the TaskFragment parent
* {@link Configuration}. * {@link Configuration}.
@@ -67,7 +62,7 @@ class JetpackTaskFragmentOrganizer extends TaskFragmentOrganizer {
* Callback that notifies the controller about changes to task fragments. * Callback that notifies the controller about changes to task fragments.
*/ */
interface TaskFragmentCallback { interface TaskFragmentCallback {
void onTaskFragmentAppeared(@NonNull TaskFragmentAppearedInfo taskFragmentAppearedInfo); void onTaskFragmentAppeared(@NonNull TaskFragmentInfo taskFragmentInfo);
void onTaskFragmentInfoChanged(@NonNull TaskFragmentInfo taskFragmentInfo); void onTaskFragmentInfoChanged(@NonNull TaskFragmentInfo taskFragmentInfo);
void onTaskFragmentVanished(@NonNull TaskFragmentInfo taskFragmentInfo); void onTaskFragmentVanished(@NonNull TaskFragmentInfo taskFragmentInfo);
void onTaskFragmentParentInfoChanged(@NonNull IBinder fragmentToken, void onTaskFragmentParentInfoChanged(@NonNull IBinder fragmentToken,
@@ -259,15 +254,12 @@ class JetpackTaskFragmentOrganizer extends TaskFragmentOrganizer {
} }
@Override @Override
public void onTaskFragmentAppeared(@NonNull TaskFragmentAppearedInfo taskFragmentAppearedInfo) { public void onTaskFragmentAppeared(@NonNull TaskFragmentInfo taskFragmentInfo) {
final TaskFragmentInfo info = taskFragmentAppearedInfo.getTaskFragmentInfo(); final IBinder fragmentToken = taskFragmentInfo.getFragmentToken();
final IBinder fragmentToken = info.getFragmentToken(); mFragmentInfos.put(fragmentToken, taskFragmentInfo);
final SurfaceControl leash = taskFragmentAppearedInfo.getLeash();
mFragmentInfos.put(fragmentToken, info);
mFragmentLeashes.put(fragmentToken, leash);
if (mCallback != null) { if (mCallback != null) {
mCallback.onTaskFragmentAppeared(taskFragmentAppearedInfo); mCallback.onTaskFragmentAppeared(taskFragmentInfo);
} }
} }
@@ -284,7 +276,6 @@ class JetpackTaskFragmentOrganizer extends TaskFragmentOrganizer {
@Override @Override
public void onTaskFragmentVanished(@NonNull TaskFragmentInfo taskFragmentInfo) { public void onTaskFragmentVanished(@NonNull TaskFragmentInfo taskFragmentInfo) {
mFragmentInfos.remove(taskFragmentInfo.getFragmentToken()); mFragmentInfos.remove(taskFragmentInfo.getFragmentToken());
mFragmentLeashes.remove(taskFragmentInfo.getFragmentToken());
mFragmentParentConfigs.remove(taskFragmentInfo.getFragmentToken()); mFragmentParentConfigs.remove(taskFragmentInfo.getFragmentToken());
if (mCallback != null) { if (mCallback != null) {

View File

@@ -37,7 +37,6 @@ import android.os.Bundle;
import android.os.Handler; import android.os.Handler;
import android.os.IBinder; import android.os.IBinder;
import android.os.Looper; import android.os.Looper;
import android.window.TaskFragmentAppearedInfo;
import android.window.TaskFragmentInfo; import android.window.TaskFragmentInfo;
import android.window.WindowContainerTransaction; import android.window.WindowContainerTransaction;
@@ -110,14 +109,13 @@ public class SplitController implements JetpackTaskFragmentOrganizer.TaskFragmen
} }
@Override @Override
public void onTaskFragmentAppeared(@NonNull TaskFragmentAppearedInfo taskFragmentAppearedInfo) { public void onTaskFragmentAppeared(@NonNull TaskFragmentInfo taskFragmentInfo) {
TaskFragmentContainer container = getContainer( TaskFragmentContainer container = getContainer(taskFragmentInfo.getFragmentToken());
taskFragmentAppearedInfo.getTaskFragmentInfo().getFragmentToken());
if (container == null) { if (container == null) {
return; return;
} }
container.setInfo(taskFragmentAppearedInfo.getTaskFragmentInfo()); container.setInfo(taskFragmentInfo);
if (container.isFinished()) { if (container.isFinished()) {
mPresenter.cleanupContainer(container, false /* shouldFinishDependent */); mPresenter.cleanupContainer(container, false /* shouldFinishDependent */);
} }

View File

@@ -31,10 +31,8 @@ import android.os.RemoteException;
import android.util.ArrayMap; import android.util.ArrayMap;
import android.util.Slog; import android.util.Slog;
import android.view.RemoteAnimationDefinition; import android.view.RemoteAnimationDefinition;
import android.view.SurfaceControl;
import android.window.ITaskFragmentOrganizer; import android.window.ITaskFragmentOrganizer;
import android.window.ITaskFragmentOrganizerController; import android.window.ITaskFragmentOrganizerController;
import android.window.TaskFragmentAppearedInfo;
import android.window.TaskFragmentInfo; import android.window.TaskFragmentInfo;
import com.android.internal.protolog.common.ProtoLog; import com.android.internal.protolog.common.ProtoLog;
@@ -135,11 +133,8 @@ public class TaskFragmentOrganizerController extends ITaskFragmentOrganizerContr
void onTaskFragmentAppeared(ITaskFragmentOrganizer organizer, TaskFragment tf) { void onTaskFragmentAppeared(ITaskFragmentOrganizer organizer, TaskFragment tf) {
ProtoLog.v(WM_DEBUG_WINDOW_ORGANIZER, "TaskFragment appeared name=%s", tf.getName()); ProtoLog.v(WM_DEBUG_WINDOW_ORGANIZER, "TaskFragment appeared name=%s", tf.getName());
final TaskFragmentInfo info = tf.getTaskFragmentInfo(); final TaskFragmentInfo info = tf.getTaskFragmentInfo();
final SurfaceControl outSurfaceControl = new SurfaceControl(tf.getSurfaceControl(),
"TaskFragmentOrganizerController.onTaskFragmentInfoAppeared");
try { try {
organizer.onTaskFragmentAppeared( organizer.onTaskFragmentAppeared(info);
new TaskFragmentAppearedInfo(info, outSurfaceControl));
mLastSentTaskFragmentInfos.put(tf, info); mLastSentTaskFragmentInfos.put(tf, info);
tf.mTaskFragmentAppearedSent = true; tf.mTaskFragmentAppearedSent = true;
} catch (RemoteException e) { } catch (RemoteException e) {