Merge "Reset Cards as they come into view" into nyc-dev

This commit is contained in:
Sid Soundararajan
2016-05-06 21:16:54 +00:00
committed by Android (Google) Code Review
3 changed files with 25 additions and 12 deletions

View File

@@ -350,13 +350,6 @@ public class RecentsTvActivity extends Activity implements OnPreDrawListener {
} else { } else {
mRecentsView.getViewTreeObserver().addOnPreDrawListener(this); mRecentsView.getViewTreeObserver().addOnPreDrawListener(this);
} }
if(mTaskStackHorizontalGridView.getStack().getTaskCount() > 1 && !mLaunchedFromHome) {
// If there are 2 or more tasks, and we are not launching from home
// set the selected position to the 2nd task to allow for faster app switching
mTaskStackHorizontalGridView.setSelectedPosition(1);
} else {
mTaskStackHorizontalGridView.setSelectedPosition(0);
}
// If this is a new instance from a configuration change, then we have to manually trigger // If this is a new instance from a configuration change, then we have to manually trigger
// the enter animation state, or if recents was relaunched by AM, without going through // the enter animation state, or if recents was relaunched by AM, without going through
@@ -382,6 +375,7 @@ public class RecentsTvActivity extends Activity implements OnPreDrawListener {
if(mLaunchedFromHome) { if(mLaunchedFromHome) {
mHomeRecentsEnterExitAnimationHolder.startEnterAnimation(mPipManager.isPipShown()); mHomeRecentsEnterExitAnimationHolder.startEnterAnimation(mPipManager.isPipShown());
} }
mTaskStackViewAdapter.setResetAddedCards(true);
EventBus.getDefault().send(new EnterRecentsWindowAnimationCompletedEvent()); EventBus.getDefault().send(new EnterRecentsWindowAnimationCompletedEvent());
} }
@@ -389,12 +383,20 @@ public class RecentsTvActivity extends Activity implements OnPreDrawListener {
public void onResume() { public void onResume() {
super.onResume(); super.onResume();
mPipRecentsOverlayManager.onRecentsResumed(); mPipRecentsOverlayManager.onRecentsResumed();
if(mTaskStackHorizontalGridView.getStack().getTaskCount() > 1 && !mLaunchedFromHome) {
// If there are 2 or more tasks, and we are not launching from home
// set the selected position to the 2nd task to allow for faster app switching
mTaskStackHorizontalGridView.setSelectedPosition(1);
} else {
mTaskStackHorizontalGridView.setSelectedPosition(0);
}
} }
@Override @Override
public void onPause() { public void onPause() {
super.onPause(); super.onPause();
mPipRecentsOverlayManager.onRecentsPaused(); mPipRecentsOverlayManager.onRecentsPaused();
mTaskStackViewAdapter.setResetAddedCards(false);
} }
@Override @Override

View File

@@ -18,7 +18,6 @@ package com.android.systemui.recents.tv.animations;
import android.animation.Animator.AnimatorListener; import android.animation.Animator.AnimatorListener;
import android.content.res.Resources; import android.content.res.Resources;
import android.graphics.drawable.TransitionDrawable; import android.graphics.drawable.TransitionDrawable;
import android.util.TypedValue;
import android.view.View; import android.view.View;
import android.widget.ImageView; import android.widget.ImageView;
import android.widget.LinearLayout; import android.widget.LinearLayout;
@@ -39,7 +38,7 @@ public class DismissAnimationsHolder {
private TransitionDrawable mDismissDrawable; private TransitionDrawable mDismissDrawable;
private TextView mDismissText; private TextView mDismissText;
private float mDismissUnselectedAlpha; private float mDismissIconNotInDismissStateAlpha;
private long mShortDuration; private long mShortDuration;
private long mLongDuration; private long mLongDuration;
@@ -57,7 +56,7 @@ public class DismissAnimationsHolder {
mDismissStartYDelta = mDismissEnterYDelta * 2; mDismissStartYDelta = mDismissEnterYDelta * 2;
mShortDuration = res.getInteger(R.integer.dismiss_short_duration); mShortDuration = res.getInteger(R.integer.dismiss_short_duration);
mLongDuration = res.getInteger(R.integer.dismiss_long_duration); mLongDuration = res.getInteger(R.integer.dismiss_long_duration);
mDismissUnselectedAlpha = res.getFloat(R.integer.dismiss_unselected_alpha); mDismissIconNotInDismissStateAlpha = res.getFloat(R.integer.dismiss_unselected_alpha);
} }
public void startEnterAnimation() { public void startEnterAnimation() {
@@ -94,7 +93,7 @@ public class DismissAnimationsHolder {
mCardDismissIcon.animate() mCardDismissIcon.animate()
.setDuration(mShortDuration) .setDuration(mShortDuration)
.setInterpolator(Interpolators.FAST_OUT_SLOW_IN) .setInterpolator(Interpolators.FAST_OUT_SLOW_IN)
.alpha(mDismissUnselectedAlpha) .alpha(mDismissIconNotInDismissStateAlpha)
.withEndAction(new Runnable() { .withEndAction(new Runnable() {
@Override @Override
public void run() { public void run() {
@@ -157,7 +156,7 @@ public class DismissAnimationsHolder {
mInfoField.animate().setListener(null); mInfoField.animate().setListener(null);
mThumbnailView.setAlpha(1.0f); mThumbnailView.setAlpha(1.0f);
mThumbnailView.setTranslationY(0); mThumbnailView.setTranslationY(0);
mCardDismissIcon.setAlpha(mDismissUnselectedAlpha); mCardDismissIcon.setAlpha(0.0f);
mDismissText.setAlpha(0.0f); mDismissText.setAlpha(0.0f);
} }
} }

View File

@@ -42,6 +42,7 @@ public class TaskStackHorizontalViewAdapter extends
private static final String TAG = "TaskStackViewAdapter"; private static final String TAG = "TaskStackViewAdapter";
private List<Task> mTaskList; private List<Task> mTaskList;
private TaskStackHorizontalGridView mGridView; private TaskStackHorizontalGridView mGridView;
private boolean mResetAddedCards;
public class ViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener{ public class ViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener{
private TaskCardView mTaskCardView; private TaskCardView mTaskCardView;
@@ -125,6 +126,13 @@ public class TaskStackHorizontalViewAdapter extends
holder.init(mTaskList.get(position)); holder.init(mTaskList.get(position));
} }
@Override
public void onViewAttachedToWindow(ViewHolder holder) {
if (mResetAddedCards) {
holder.mTaskCardView.reset();
}
}
@Override @Override
public void onViewDetachedFromWindow(ViewHolder holder) { public void onViewDetachedFromWindow(ViewHolder holder) {
// We only want to reset on view detach if this is the last task being dismissed. // We only want to reset on view detach if this is the last task being dismissed.
@@ -171,4 +179,8 @@ public class TaskStackHorizontalViewAdapter extends
mTaskList.add(position, task); mTaskList.add(position, task);
notifyItemInserted(position); notifyItemInserted(position);
} }
public void setResetAddedCards(boolean reset) {
mResetAddedCards = reset;
}
} }