Loading core/java/android/app/Service.java +2 −2 Original line number Diff line number Diff line Loading @@ -720,7 +720,7 @@ public abstract class Service extends ContextWrapper implements ComponentCallbac * apps targeting SDK Version {@link android.os.Build.VERSION_CODES#S} * or higher are not allowed to start foreground services from the background. * See * <a href="{@docRoot}/about/versions/12/behavior-changes-12"> * <a href="{@docRoot}about/versions/12/behavior-changes-12"> * Behavior changes: Apps targeting Android 12 * </a> * for more details. Loading Loading @@ -769,7 +769,7 @@ public abstract class Service extends ContextWrapper implements ComponentCallbac * apps targeting SDK Version {@link android.os.Build.VERSION_CODES#S} * or higher are not allowed to start foreground services from the background. * See * <a href="{@docRoot}/about/versions/12/behavior-changes-12"> * <a href="{@docRoot}about/versions/12/behavior-changes-12"> * Behavior changes: Apps targeting Android 12 * </a> * for more details. Loading core/java/android/window/TaskFragmentAnimationParams.aidl 0 → 100644 +23 −0 Original line number Diff line number Diff line /* * 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; /** * Data object for animation related override of TaskFragment. * @hide */ parcelable TaskFragmentAnimationParams; core/java/android/window/TaskFragmentAnimationParams.java 0 → 100644 +129 −0 Original line number Diff line number Diff line /* * 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 android.annotation.ColorInt; import android.annotation.NonNull; import android.annotation.Nullable; import android.os.Parcel; import android.os.Parcelable; /** * Data object for animation related override of TaskFragment. * @hide */ // TODO(b/206557124): Add more animation customization options. 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(); @ColorInt private final int mAnimationBackgroundColor; private TaskFragmentAnimationParams(@ColorInt int animationBackgroundColor) { mAnimationBackgroundColor = animationBackgroundColor; } /** * 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; } private TaskFragmentAnimationParams(Parcel in) { mAnimationBackgroundColor = in.readInt(); } @Override public void writeToParcel(@NonNull Parcel dest, int flags) { dest.writeInt(mAnimationBackgroundColor); } @NonNull public static final Creator<TaskFragmentAnimationParams> CREATOR = new Creator<TaskFragmentAnimationParams>() { @Override public TaskFragmentAnimationParams createFromParcel(Parcel in) { return new TaskFragmentAnimationParams(in); } @Override public TaskFragmentAnimationParams[] newArray(int size) { return new TaskFragmentAnimationParams[size]; } }; @Override public String toString() { return "TaskFragmentAnimationParams{" + " animationBgColor=" + Integer.toHexString(mAnimationBackgroundColor) + "}"; } @Override public int hashCode() { return mAnimationBackgroundColor; } @Override public boolean equals(@Nullable Object obj) { if (!(obj instanceof TaskFragmentAnimationParams)) { return false; } final TaskFragmentAnimationParams other = (TaskFragmentAnimationParams) obj; return mAnimationBackgroundColor == other.mAnimationBackgroundColor; } @Override public int describeContents() { return 0; } /** Builder to construct the {@link TaskFragmentAnimationParams}. */ public static final class Builder { @ColorInt private int mAnimationBackgroundColor = 0; /** * Sets 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. * * @param color a packed color int, {@code AARRGGBB}, for the animation background color. * @return this {@link Builder}. */ @NonNull public Builder setAnimationBackgroundColor(@ColorInt int color) { mAnimationBackgroundColor = color; return this; } /** Constructs the {@link TaskFragmentAnimationParams}. */ @NonNull public TaskFragmentAnimationParams build() { return new TaskFragmentAnimationParams(mAnimationBackgroundColor); } } } core/java/android/window/TaskFragmentOperation.aidl 0 → 100644 +23 −0 Original line number Diff line number Diff line /* * 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; /** * Data object of params for TaskFragment related {@link WindowContainerTransaction} operation. * @hide */ parcelable TaskFragmentOperation; core/java/android/window/TaskFragmentOperation.java 0 → 100644 +168 −0 Original line number Diff line number Diff line /* * 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 android.annotation.IntDef; import android.annotation.NonNull; import android.annotation.Nullable; import android.os.IBinder; import android.os.Parcel; import android.os.Parcelable; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.util.Objects; /** * Data object of params for TaskFragment related {@link WindowContainerTransaction} operation. * * @see WindowContainerTransaction#setTaskFragmentOperation(IBinder, TaskFragmentOperation). * @hide */ // TODO(b/263436063): move other TaskFragment related operation here. public final class TaskFragmentOperation implements Parcelable { /** Sets the {@link TaskFragmentAnimationParams} for the given TaskFragment. */ public static final int OP_TYPE_SET_ANIMATION_PARAMS = 0; @IntDef(prefix = { "OP_TYPE_" }, value = { OP_TYPE_SET_ANIMATION_PARAMS }) @Retention(RetentionPolicy.SOURCE) @interface OperationType {} @OperationType private final int mOpType; @Nullable private final TaskFragmentAnimationParams mAnimationParams; private TaskFragmentOperation(@OperationType int opType, @Nullable TaskFragmentAnimationParams animationParams) { mOpType = opType; mAnimationParams = animationParams; } private TaskFragmentOperation(Parcel in) { mOpType = in.readInt(); mAnimationParams = in.readTypedObject(TaskFragmentAnimationParams.CREATOR); } @Override public void writeToParcel(@NonNull Parcel dest, int flags) { dest.writeInt(mOpType); dest.writeTypedObject(mAnimationParams, flags); } @NonNull public static final Creator<TaskFragmentOperation> CREATOR = new Creator<TaskFragmentOperation>() { @Override public TaskFragmentOperation createFromParcel(Parcel in) { return new TaskFragmentOperation(in); } @Override public TaskFragmentOperation[] newArray(int size) { return new TaskFragmentOperation[size]; } }; /** * Gets the {@link OperationType} of this {@link TaskFragmentOperation}. */ @OperationType public int getOpType() { return mOpType; } /** * Gets the animation related override of TaskFragment. */ @Nullable public TaskFragmentAnimationParams getAnimationParams() { return mAnimationParams; } @Override public String toString() { final StringBuilder sb = new StringBuilder(); sb.append("TaskFragmentOperation{ opType=").append(mOpType); if (mAnimationParams != null) { sb.append(", animationParams=").append(mAnimationParams); } sb.append('}'); return sb.toString(); } @Override public int hashCode() { int result = mOpType; result = result * 31 + mAnimationParams.hashCode(); return result; } @Override public boolean equals(@Nullable Object obj) { if (!(obj instanceof TaskFragmentOperation)) { return false; } final TaskFragmentOperation other = (TaskFragmentOperation) obj; return mOpType == other.mOpType && Objects.equals(mAnimationParams, other.mAnimationParams); } @Override public int describeContents() { return 0; } /** Builder to construct the {@link TaskFragmentOperation}. */ public static final class Builder { @OperationType private final int mOpType; @Nullable private TaskFragmentAnimationParams mAnimationParams; /** * @param opType the {@link OperationType} of this {@link TaskFragmentOperation}. */ public Builder(@OperationType int opType) { mOpType = opType; } /** * Sets the {@link TaskFragmentAnimationParams} for the given TaskFragment. */ @NonNull public Builder setAnimationParams(@Nullable TaskFragmentAnimationParams animationParams) { mAnimationParams = animationParams; return this; } /** * Constructs the {@link TaskFragmentOperation}. */ @NonNull public TaskFragmentOperation build() { return new TaskFragmentOperation(mOpType, mAnimationParams); } } } Loading
core/java/android/app/Service.java +2 −2 Original line number Diff line number Diff line Loading @@ -720,7 +720,7 @@ public abstract class Service extends ContextWrapper implements ComponentCallbac * apps targeting SDK Version {@link android.os.Build.VERSION_CODES#S} * or higher are not allowed to start foreground services from the background. * See * <a href="{@docRoot}/about/versions/12/behavior-changes-12"> * <a href="{@docRoot}about/versions/12/behavior-changes-12"> * Behavior changes: Apps targeting Android 12 * </a> * for more details. Loading Loading @@ -769,7 +769,7 @@ public abstract class Service extends ContextWrapper implements ComponentCallbac * apps targeting SDK Version {@link android.os.Build.VERSION_CODES#S} * or higher are not allowed to start foreground services from the background. * See * <a href="{@docRoot}/about/versions/12/behavior-changes-12"> * <a href="{@docRoot}about/versions/12/behavior-changes-12"> * Behavior changes: Apps targeting Android 12 * </a> * for more details. Loading
core/java/android/window/TaskFragmentAnimationParams.aidl 0 → 100644 +23 −0 Original line number Diff line number Diff line /* * 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; /** * Data object for animation related override of TaskFragment. * @hide */ parcelable TaskFragmentAnimationParams;
core/java/android/window/TaskFragmentAnimationParams.java 0 → 100644 +129 −0 Original line number Diff line number Diff line /* * 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 android.annotation.ColorInt; import android.annotation.NonNull; import android.annotation.Nullable; import android.os.Parcel; import android.os.Parcelable; /** * Data object for animation related override of TaskFragment. * @hide */ // TODO(b/206557124): Add more animation customization options. 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(); @ColorInt private final int mAnimationBackgroundColor; private TaskFragmentAnimationParams(@ColorInt int animationBackgroundColor) { mAnimationBackgroundColor = animationBackgroundColor; } /** * 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; } private TaskFragmentAnimationParams(Parcel in) { mAnimationBackgroundColor = in.readInt(); } @Override public void writeToParcel(@NonNull Parcel dest, int flags) { dest.writeInt(mAnimationBackgroundColor); } @NonNull public static final Creator<TaskFragmentAnimationParams> CREATOR = new Creator<TaskFragmentAnimationParams>() { @Override public TaskFragmentAnimationParams createFromParcel(Parcel in) { return new TaskFragmentAnimationParams(in); } @Override public TaskFragmentAnimationParams[] newArray(int size) { return new TaskFragmentAnimationParams[size]; } }; @Override public String toString() { return "TaskFragmentAnimationParams{" + " animationBgColor=" + Integer.toHexString(mAnimationBackgroundColor) + "}"; } @Override public int hashCode() { return mAnimationBackgroundColor; } @Override public boolean equals(@Nullable Object obj) { if (!(obj instanceof TaskFragmentAnimationParams)) { return false; } final TaskFragmentAnimationParams other = (TaskFragmentAnimationParams) obj; return mAnimationBackgroundColor == other.mAnimationBackgroundColor; } @Override public int describeContents() { return 0; } /** Builder to construct the {@link TaskFragmentAnimationParams}. */ public static final class Builder { @ColorInt private int mAnimationBackgroundColor = 0; /** * Sets 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. * * @param color a packed color int, {@code AARRGGBB}, for the animation background color. * @return this {@link Builder}. */ @NonNull public Builder setAnimationBackgroundColor(@ColorInt int color) { mAnimationBackgroundColor = color; return this; } /** Constructs the {@link TaskFragmentAnimationParams}. */ @NonNull public TaskFragmentAnimationParams build() { return new TaskFragmentAnimationParams(mAnimationBackgroundColor); } } }
core/java/android/window/TaskFragmentOperation.aidl 0 → 100644 +23 −0 Original line number Diff line number Diff line /* * 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; /** * Data object of params for TaskFragment related {@link WindowContainerTransaction} operation. * @hide */ parcelable TaskFragmentOperation;
core/java/android/window/TaskFragmentOperation.java 0 → 100644 +168 −0 Original line number Diff line number Diff line /* * 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 android.annotation.IntDef; import android.annotation.NonNull; import android.annotation.Nullable; import android.os.IBinder; import android.os.Parcel; import android.os.Parcelable; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.util.Objects; /** * Data object of params for TaskFragment related {@link WindowContainerTransaction} operation. * * @see WindowContainerTransaction#setTaskFragmentOperation(IBinder, TaskFragmentOperation). * @hide */ // TODO(b/263436063): move other TaskFragment related operation here. public final class TaskFragmentOperation implements Parcelable { /** Sets the {@link TaskFragmentAnimationParams} for the given TaskFragment. */ public static final int OP_TYPE_SET_ANIMATION_PARAMS = 0; @IntDef(prefix = { "OP_TYPE_" }, value = { OP_TYPE_SET_ANIMATION_PARAMS }) @Retention(RetentionPolicy.SOURCE) @interface OperationType {} @OperationType private final int mOpType; @Nullable private final TaskFragmentAnimationParams mAnimationParams; private TaskFragmentOperation(@OperationType int opType, @Nullable TaskFragmentAnimationParams animationParams) { mOpType = opType; mAnimationParams = animationParams; } private TaskFragmentOperation(Parcel in) { mOpType = in.readInt(); mAnimationParams = in.readTypedObject(TaskFragmentAnimationParams.CREATOR); } @Override public void writeToParcel(@NonNull Parcel dest, int flags) { dest.writeInt(mOpType); dest.writeTypedObject(mAnimationParams, flags); } @NonNull public static final Creator<TaskFragmentOperation> CREATOR = new Creator<TaskFragmentOperation>() { @Override public TaskFragmentOperation createFromParcel(Parcel in) { return new TaskFragmentOperation(in); } @Override public TaskFragmentOperation[] newArray(int size) { return new TaskFragmentOperation[size]; } }; /** * Gets the {@link OperationType} of this {@link TaskFragmentOperation}. */ @OperationType public int getOpType() { return mOpType; } /** * Gets the animation related override of TaskFragment. */ @Nullable public TaskFragmentAnimationParams getAnimationParams() { return mAnimationParams; } @Override public String toString() { final StringBuilder sb = new StringBuilder(); sb.append("TaskFragmentOperation{ opType=").append(mOpType); if (mAnimationParams != null) { sb.append(", animationParams=").append(mAnimationParams); } sb.append('}'); return sb.toString(); } @Override public int hashCode() { int result = mOpType; result = result * 31 + mAnimationParams.hashCode(); return result; } @Override public boolean equals(@Nullable Object obj) { if (!(obj instanceof TaskFragmentOperation)) { return false; } final TaskFragmentOperation other = (TaskFragmentOperation) obj; return mOpType == other.mOpType && Objects.equals(mAnimationParams, other.mAnimationParams); } @Override public int describeContents() { return 0; } /** Builder to construct the {@link TaskFragmentOperation}. */ public static final class Builder { @OperationType private final int mOpType; @Nullable private TaskFragmentAnimationParams mAnimationParams; /** * @param opType the {@link OperationType} of this {@link TaskFragmentOperation}. */ public Builder(@OperationType int opType) { mOpType = opType; } /** * Sets the {@link TaskFragmentAnimationParams} for the given TaskFragment. */ @NonNull public Builder setAnimationParams(@Nullable TaskFragmentAnimationParams animationParams) { mAnimationParams = animationParams; return this; } /** * Constructs the {@link TaskFragmentOperation}. */ @NonNull public TaskFragmentOperation build() { return new TaskFragmentOperation(mOpType, mAnimationParams); } } }