Add sources for API 34
https://dl.google.com/android/repository/sources-34_r01.zip
Test: None
Change-Id: I254306ce746dcadecd8f756a445c667d8fecbd2a
diff --git a/android-34/com/android/server/wm/LocalAnimationAdapter.java b/android-34/com/android/server/wm/LocalAnimationAdapter.java
new file mode 100644
index 0000000..d7e725b
--- /dev/null
+++ b/android-34/com/android/server/wm/LocalAnimationAdapter.java
@@ -0,0 +1,182 @@
+/*
+ * Copyright (C) 2017 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 com.android.server.wm;
+
+import static com.android.server.wm.AnimationAdapterProto.LOCAL;
+import static com.android.server.wm.LocalAnimationAdapterProto.ANIMATION_SPEC;
+
+import android.annotation.NonNull;
+import android.os.SystemClock;
+import android.util.proto.ProtoOutputStream;
+import android.view.SurfaceControl;
+import android.view.SurfaceControl.Transaction;
+
+import com.android.server.wm.SurfaceAnimator.AnimationType;
+import com.android.server.wm.SurfaceAnimator.OnAnimationFinishedCallback;
+
+import java.io.PrintWriter;
+
+/**
+ * Animation that can be executed without holding the window manager lock. See
+ * {@link SurfaceAnimationRunner}.
+ */
+class LocalAnimationAdapter implements AnimationAdapter {
+
+ private final AnimationSpec mSpec;
+
+ private final SurfaceAnimationRunner mAnimator;
+
+ LocalAnimationAdapter(AnimationSpec spec, SurfaceAnimationRunner animator) {
+ mSpec = spec;
+ mAnimator = animator;
+ }
+
+ @Override
+ public boolean getShowWallpaper() {
+ return mSpec.getShowWallpaper();
+ }
+
+ @Override
+ public boolean getShowBackground() {
+ return mSpec.getShowBackground();
+ }
+
+ @Override
+ public int getBackgroundColor() {
+ return mSpec.getBackgroundColor();
+ }
+
+ @Override
+ public void startAnimation(SurfaceControl animationLeash, Transaction t,
+ @AnimationType int type, @NonNull OnAnimationFinishedCallback finishCallback) {
+ mAnimator.startAnimation(mSpec, animationLeash, t,
+ () -> finishCallback.onAnimationFinished(type, this));
+ }
+
+ @Override
+ public void onAnimationCancelled(SurfaceControl animationLeash) {
+ mAnimator.onAnimationCancelled(animationLeash);
+ }
+
+ @Override
+ public long getDurationHint() {
+ return mSpec.getDuration();
+ }
+
+ @Override
+ public long getStatusBarTransitionsStartTime() {
+ return mSpec.calculateStatusBarTransitionStartTime();
+ }
+
+ @Override
+ public void dump(PrintWriter pw, String prefix) {
+ mSpec.dump(pw, prefix);
+ }
+
+ @Override
+ public void dumpDebug(ProtoOutputStream proto) {
+ final long token = proto.start(LOCAL);
+ mSpec.dumpDebug(proto, ANIMATION_SPEC);
+ proto.end(token);
+ }
+
+ /**
+ * Describes how to apply an animation.
+ */
+ interface AnimationSpec {
+
+ /**
+ * @see AnimationAdapter#getShowWallpaper
+ */
+ default boolean getShowWallpaper() {
+ return false;
+ }
+
+ /**
+ * @see AnimationAdapter#getShowBackground
+ */
+ default boolean getShowBackground() {
+ return false;
+ }
+
+ /**
+ * @see AnimationAdapter#getBackgroundColor
+ */
+ default int getBackgroundColor() {
+ return 0;
+ }
+
+ /**
+ * @see AnimationAdapter#getStatusBarTransitionsStartTime
+ */
+ default long calculateStatusBarTransitionStartTime() {
+ return SystemClock.uptimeMillis();
+ }
+
+ /**
+ * @return The duration of the animation.
+ */
+ long getDuration();
+
+ /**
+ * Called when the spec needs to apply the current animation state to the leash.
+ *
+ * @param t The transaction to use to apply a transform.
+ * @param leash The leash to apply the state to.
+ * @param currentPlayTime The current time of the animation.
+ */
+ void apply(Transaction t, SurfaceControl leash, long currentPlayTime);
+
+ /**
+ * @see AppTransition#canSkipFirstFrame
+ */
+ default boolean canSkipFirstFrame() {
+ return false;
+ }
+
+ /**
+ * @return {@code true} if we need to wake-up SurfaceFlinger earlier during this animation.
+ *
+ * @see Transaction#setEarlyWakeupStart and Transaction#setEarlyWakeupEnd
+ */
+ default boolean needsEarlyWakeup() { return false; }
+
+ /**
+ * @return The fraction of the animation, returns 1 if duration is 0.
+ *
+ * @param currentPlayTime The current play time.
+ */
+ default float getFraction(float currentPlayTime) {
+ final float duration = getDuration();
+ return duration > 0 ? currentPlayTime / duration : 1.0f;
+ }
+
+ void dump(PrintWriter pw, String prefix);
+
+ default void dumpDebug(ProtoOutputStream proto, long fieldId) {
+ final long token = proto.start(fieldId);
+ dumpDebugInner(proto);
+ proto.end(token);
+ }
+
+ void dumpDebugInner(ProtoOutputStream proto);
+
+ default WindowAnimationSpec asWindowAnimationSpec() {
+ return null;
+ }
+ }
+}