/* * Copyright (C) 2023 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 static android.window.TransitionInfo.AnimationOptions.DEFAULT_ANIMATION_RESOURCES_ID; import android.annotation.AnimRes; import android.annotation.ColorInt; import android.annotation.NonNull; import android.annotation.Nullable; import android.os.Parcel; import android.os.Parcelable; import java.util.Objects; /** * Data object for animation related override of TaskFragment. * @hide */ public final class TaskFragmentAnimationParams implements Parcelable { /** The default {@link TaskFragmentAnimationParams} to use when there is no app override. */ public static final TaskFragmentAnimationParams DEFAULT = new TaskFragmentAnimationParams.Builder().build(); /** * The default value for animation background color, which means to use the theme window * background color. */ @ColorInt public static final int DEFAULT_ANIMATION_BACKGROUND_COLOR = 0; @ColorInt private final int mAnimationBackgroundColor; @AnimRes private final int mOpenAnimationResId; @AnimRes private final int mChangeAnimationResId; @AnimRes private final int mCloseAnimationResId; private TaskFragmentAnimationParams(@ColorInt int animationBackgroundColor, @AnimRes int openAnimationResId, @AnimRes int changeAnimationResId, @AnimRes int closeAnimationResId) { mAnimationBackgroundColor = animationBackgroundColor; mOpenAnimationResId = openAnimationResId; mChangeAnimationResId = changeAnimationResId; mCloseAnimationResId = closeAnimationResId; } /** * The {@link ColorInt} to use for the background during the animation with this TaskFragment if * the animation requires a background. * * The default value is {@code 0}, which is to use the theme window background. */ @ColorInt public int getAnimationBackgroundColor() { return mAnimationBackgroundColor; } /** * Returns the resources ID of open animation that applies to this TaskFragment. *
* The default value is {@link DEFAULT_ANIMATION_RESOURCES_ID}, which is to use the system * default animation. */ @AnimRes public int getOpenAnimationResId() { return mOpenAnimationResId; } /** * Returns the resources ID of change animation that applies to this TaskFragment. *
* The default value is {@link DEFAULT_ANIMATION_RESOURCES_ID}, which is to use the system * default animation. */ @AnimRes public int getChangeAnimationResId() { return mChangeAnimationResId; } /** * Returns the resources ID of close animation that applies to this TaskFragment. *
* The default value is {@link DEFAULT_ANIMATION_RESOURCES_ID}, which is to use the system
* default animation.
*/
@AnimRes
public int getCloseAnimationResId() {
return mCloseAnimationResId;
}
private TaskFragmentAnimationParams(Parcel in) {
mAnimationBackgroundColor = in.readInt();
mOpenAnimationResId = in.readInt();
mChangeAnimationResId = in.readInt();
mCloseAnimationResId = in.readInt();
}
@Override
public void writeToParcel(@NonNull Parcel dest, int flags) {
dest.writeInt(mAnimationBackgroundColor);
dest.writeInt(mOpenAnimationResId);
dest.writeInt(mChangeAnimationResId);
dest.writeInt(mCloseAnimationResId);
}
@NonNull
public static final Creator