blob: 92718a3b5ac1651922a1425d2f63cedd2e829619 [file] [log] [blame]
/*
* Copyright (C) 2016 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.systemui.recents.tv.animations;
import android.content.Context;
import com.android.systemui.Interpolators;
import com.android.systemui.R;
import com.android.systemui.recents.events.activity.DismissRecentsToHomeAnimationStarted;
import com.android.systemui.recents.tv.views.TaskCardView;
import com.android.systemui.recents.tv.views.TaskStackHorizontalGridView;
public class HomeRecentsEnterExitAnimationHolder {
private Context mContext;
private TaskStackHorizontalGridView mGridView;
private float mDimAlpha;
private long mDelay;
private int mDuration;
private int mTranslationX;
public HomeRecentsEnterExitAnimationHolder(Context context,
TaskStackHorizontalGridView gridView) {
mContext = context;
mGridView = gridView;
mDimAlpha = mContext.getResources().getFloat(R.dimen.recents_recents_row_dim_alpha);
mTranslationX = mContext.getResources()
.getDimensionPixelSize(R.dimen.recents_tv_home_recents_shift);
mDelay = mContext.getResources().getInteger(R.integer.recents_home_delay);
mDuration = mContext.getResources().getInteger(R.integer.recents_home_duration);
}
public void startEnterAnimation(boolean isPipShown) {
for(int i = 0; i < mGridView.getChildCount(); i++) {
TaskCardView view = (TaskCardView) mGridView.getChildAt(i);
view.setTranslationX(-mTranslationX);
view.animate()
.alpha(isPipShown ? mDimAlpha : 1.0f)
.translationX(0)
.setDuration(mDuration)
.setStartDelay(mDelay * i)
.setInterpolator(Interpolators.FAST_OUT_SLOW_IN);
}
}
public void startExitAnimation(DismissRecentsToHomeAnimationStarted dismissEvent) {
for(int i = mGridView.getChildCount() - 1; i >= 0; i--) {
TaskCardView view = (TaskCardView) mGridView.getChildAt(i);
view.animate()
.alpha(0.0f)
.translationXBy(-mTranslationX)
.setDuration(mDuration)
.setStartDelay(mDelay * (mGridView.getChildCount() - 1 - i))
.setInterpolator(Interpolators.FAST_OUT_SLOW_IN);
if(i == 0) {
view.animate().setListener(dismissEvent.getAnimationTrigger()
.decrementOnAnimationEnd());
dismissEvent.getAnimationTrigger().increment();
}
}
}
public void setEnterFromHomeStartingAnimationValues() {
for(int i = 0; i < mGridView.getChildCount(); i++) {
TaskCardView view = (TaskCardView) mGridView.getChildAt(i);
view.setTranslationX(0);
view.setAlpha(0.0f);
}
}
public void setEnterFromAppStartingAnimationValues() {
for(int i = 0; i < mGridView.getChildCount(); i++) {
TaskCardView view = (TaskCardView) mGridView.getChildAt(i);
view.setTranslationX(0);
view.setAlpha(1.0f);
}
}
}