diff --git a/packages/SystemUI/res/drawable-hdpi/ic_dismiss_outline.png b/packages/SystemUI/res/drawable-hdpi/ic_dismiss_outline.png new file mode 100755 index 0000000000000..9afd8fa14d311 Binary files /dev/null and b/packages/SystemUI/res/drawable-hdpi/ic_dismiss_outline.png differ diff --git a/packages/SystemUI/res/drawable-mdpi/ic_dismiss_outline.png b/packages/SystemUI/res/drawable-mdpi/ic_dismiss_outline.png new file mode 100755 index 0000000000000..35737aa704ea5 Binary files /dev/null and b/packages/SystemUI/res/drawable-mdpi/ic_dismiss_outline.png differ diff --git a/packages/SystemUI/res/drawable-xhdpi/ic_dismiss_outline.png b/packages/SystemUI/res/drawable-xhdpi/ic_dismiss_outline.png new file mode 100755 index 0000000000000..f1bfa891d2292 Binary files /dev/null and b/packages/SystemUI/res/drawable-xhdpi/ic_dismiss_outline.png differ diff --git a/packages/SystemUI/res/drawable/recents_tv_dismiss_icon.xml b/packages/SystemUI/res/drawable/recents_tv_dismiss_icon.xml new file mode 100644 index 0000000000000..7fb67a2db2a0f --- /dev/null +++ b/packages/SystemUI/res/drawable/recents_tv_dismiss_icon.xml @@ -0,0 +1,19 @@ + + + + + + \ No newline at end of file diff --git a/packages/SystemUI/res/layout-television/recents_tv_card_dismiss.xml b/packages/SystemUI/res/layout-television/recents_tv_card_dismiss.xml deleted file mode 100644 index 186a0589e6d08..0000000000000 --- a/packages/SystemUI/res/layout-television/recents_tv_card_dismiss.xml +++ /dev/null @@ -1,43 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/packages/SystemUI/res/layout-television/recents_tv_task_card_view.xml b/packages/SystemUI/res/layout-television/recents_tv_task_card_view.xml index 9b89aa0a90f15..d2ec52d2e638a 100644 --- a/packages/SystemUI/res/layout-television/recents_tv_task_card_view.xml +++ b/packages/SystemUI/res/layout-television/recents_tv_task_card_view.xml @@ -42,5 +42,23 @@ android:gravity="center" /> - + + \ No newline at end of file diff --git a/packages/SystemUI/res/values/dimens_tv.xml b/packages/SystemUI/res/values/dimens_tv.xml index 367dd1dfe7d31..c2de1500a3151 100644 --- a/packages/SystemUI/res/values/dimens_tv.xml +++ b/packages/SystemUI/res/values/dimens_tv.xml @@ -46,7 +46,7 @@ 48dip 356dip - 24dip + 19dip 38dip 1dip 12sp diff --git a/packages/SystemUI/res/values/values_tv.xml b/packages/SystemUI/res/values/values_tv.xml index bd72c5115566f..dc0483f4c9886 100644 --- a/packages/SystemUI/res/values/values_tv.xml +++ b/packages/SystemUI/res/values/values_tv.xml @@ -16,4 +16,5 @@ limitations under the License. 1.0 1.259 + 0.1 diff --git a/packages/SystemUI/src/com/android/systemui/recents/tv/animations/DismissAnimationsHolder.java b/packages/SystemUI/src/com/android/systemui/recents/tv/animations/DismissAnimationsHolder.java index 66d857630005f..084fc874b7b96 100644 --- a/packages/SystemUI/src/com/android/systemui/recents/tv/animations/DismissAnimationsHolder.java +++ b/packages/SystemUI/src/com/android/systemui/recents/tv/animations/DismissAnimationsHolder.java @@ -15,38 +15,64 @@ */ package com.android.systemui.recents.tv.animations; - -import android.animation.Animator; +import android.animation.Animator.AnimatorListener; import android.content.res.Resources; +import android.graphics.drawable.TransitionDrawable; +import android.util.TypedValue; import android.view.View; +import android.widget.ImageView; import android.widget.LinearLayout; +import android.widget.TextView; import com.android.systemui.Interpolators; import com.android.systemui.recents.tv.views.TaskCardView; import com.android.systemui.R; public class DismissAnimationsHolder { - private LinearLayout mDismissArea; private LinearLayout mInfoField; private View mThumbnailView; + private int mDismissEnterYDelta; private int mDismissStartYDelta; + + private ImageView mCardDismissIcon; + private TransitionDrawable mDismissDrawable; + private TextView mDismissText; + + private float mDismissUnselectedAlpha; private long mShortDuration; private long mLongDuration; public DismissAnimationsHolder(TaskCardView taskCardView) { + mInfoField = (LinearLayout) taskCardView.findViewById(R.id.card_info_field); - mDismissArea = (LinearLayout) taskCardView.findViewById(R.id.card_dismiss); mThumbnailView = taskCardView.findViewById(R.id.card_view_thumbnail); + mCardDismissIcon = (ImageView) taskCardView.findViewById(R.id.dismiss_icon); + mDismissDrawable = (TransitionDrawable) mCardDismissIcon.getDrawable(); + mDismissDrawable.setCrossFadeEnabled(true); + mDismissText = (TextView) taskCardView.findViewById(R.id.card_dismiss_text); + Resources res = taskCardView.getResources(); mDismissEnterYDelta = res.getDimensionPixelOffset(R.dimen.recents_tv_dismiss_shift_down); mDismissStartYDelta = mDismissEnterYDelta * 2; mShortDuration = res.getInteger(R.integer.dismiss_short_duration); mLongDuration = res.getInteger(R.integer.dismiss_long_duration); + mDismissUnselectedAlpha = res.getFloat(R.integer.dismiss_unselected_alpha); } public void startEnterAnimation() { - mDismissArea.animate() + mCardDismissIcon.animate() + .setDuration(mShortDuration) + .setInterpolator(Interpolators.FAST_OUT_SLOW_IN) + .alpha(1.0f) + .withStartAction(new Runnable() { + @Override + public void run() { + mDismissDrawable.startTransition(0); + } + }); + + mDismissText.animate() .setDuration(mShortDuration) .setInterpolator(Interpolators.FAST_OUT_SLOW_IN) .alpha(1.0f); @@ -65,7 +91,18 @@ public class DismissAnimationsHolder { } public void startExitAnimation() { - mDismissArea.animate() + mCardDismissIcon.animate() + .setDuration(mShortDuration) + .setInterpolator(Interpolators.FAST_OUT_SLOW_IN) + .alpha(mDismissUnselectedAlpha) + .withEndAction(new Runnable() { + @Override + public void run() { + mDismissDrawable.reverseTransition(0); + } + }); + + mDismissText.animate() .setDuration(mShortDuration) .setInterpolator(Interpolators.FAST_OUT_SLOW_IN) .alpha(0.0f); @@ -83,8 +120,19 @@ public class DismissAnimationsHolder { .alpha(1.0f); } - public void startDismissAnimation(Animator.AnimatorListener listener) { - mDismissArea.animate() + public void startDismissAnimation(AnimatorListener listener) { + mCardDismissIcon.animate() + .setDuration(mShortDuration) + .setInterpolator(Interpolators.FAST_OUT_SLOW_IN) + .alpha(0.0f) + .withEndAction(new Runnable() { + @Override + public void run() { + mDismissDrawable.reverseTransition(0); + } + }); + + mDismissText.animate() .setDuration(mShortDuration) .setInterpolator(Interpolators.FAST_OUT_SLOW_IN) .alpha(0.0f); @@ -109,5 +157,7 @@ public class DismissAnimationsHolder { mInfoField.animate().setListener(null); mThumbnailView.setAlpha(1.0f); mThumbnailView.setTranslationY(0); + mCardDismissIcon.setAlpha(mDismissUnselectedAlpha); + mDismissText.setAlpha(0.0f); } } diff --git a/packages/SystemUI/src/com/android/systemui/recents/tv/animations/ViewFocusAnimator.java b/packages/SystemUI/src/com/android/systemui/recents/tv/animations/ViewFocusAnimator.java index 9edd5af487cc1..be69552622ecf 100644 --- a/packages/SystemUI/src/com/android/systemui/recents/tv/animations/ViewFocusAnimator.java +++ b/packages/SystemUI/src/com/android/systemui/recents/tv/animations/ViewFocusAnimator.java @@ -39,12 +39,12 @@ public class ViewFocusAnimator implements View.OnFocusChangeListener { private final int mAnimDuration; private final Interpolator mFocusInterpolator; - protected View mTargetView; + protected TaskCardView mTargetView; private float mFocusProgress; ObjectAnimator mFocusAnimation; - public ViewFocusAnimator(View view) { + public ViewFocusAnimator(TaskCardView view) { mTargetView = view; final Resources res = view.getResources(); @@ -99,9 +99,8 @@ public class ViewFocusAnimator implements View.OnFocusChangeListener { mTargetView.setPadding((int) spacing, mTargetView.getPaddingTop(), (int) spacing, mTargetView.getPaddingBottom()); - if (mTargetView instanceof TaskCardView) { - ((TaskCardView) mTargetView).getThumbnailView().setZ(z); - } + + mTargetView.getThumbnailView().setZ(z); } public float getFocusProgress() {