From be403e345ebca10db222a4fcfe63786c9d105c0e Mon Sep 17 00:00:00 2001 From: Sid Soundararajan Date: Wed, 13 Apr 2016 14:50:31 -0700 Subject: [PATCH] Add a dimmed dismiss icon below task card view This should give a clear indication of moving down to dismiss. BUG: 27968917 Change-Id: I49bbc2b071eb176b1af59ce9fd9e75a4b9bf2f56 --- .../res/drawable-hdpi/ic_dismiss_outline.png | Bin 0 -> 557 bytes .../res/drawable-mdpi/ic_dismiss_outline.png | Bin 0 -> 377 bytes .../res/drawable-xhdpi/ic_dismiss_outline.png | Bin 0 -> 755 bytes .../res/drawable/recents_tv_dismiss_icon.xml | 19 +++++ .../recents_tv_card_dismiss.xml | 43 ------------ .../recents_tv_task_card_view.xml | 20 +++++- packages/SystemUI/res/values/dimens_tv.xml | 2 +- packages/SystemUI/res/values/values_tv.xml | 1 + .../animations/DismissAnimationsHolder.java | 66 +++++++++++++++--- .../tv/animations/ViewFocusAnimator.java | 9 ++- 10 files changed, 102 insertions(+), 58 deletions(-) create mode 100755 packages/SystemUI/res/drawable-hdpi/ic_dismiss_outline.png create mode 100755 packages/SystemUI/res/drawable-mdpi/ic_dismiss_outline.png create mode 100755 packages/SystemUI/res/drawable-xhdpi/ic_dismiss_outline.png create mode 100644 packages/SystemUI/res/drawable/recents_tv_dismiss_icon.xml delete mode 100644 packages/SystemUI/res/layout-television/recents_tv_card_dismiss.xml 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 0000000000000000000000000000000000000000..9afd8fa14d3110a72705e5c25155afdec1efa358 GIT binary patch literal 557 zcmV+|0@D47P)NkljK;-PiCgh?0)pU9j5uy)oYxRVP|yJh3jRrSCn9o(c?r?CFh)TV^#OE| z-(+zXr^!j$?dA5j?Bau}uC7Xc!=r4;u?JmWeY)-)SyGl1lPF@=jt@oW-L}eiMQh%S zIvusRXj}upqg_>V%F5s|o2;r(FfDS#*Y7R;OMGjG9xHh`m%>nNk9W7K)I{N0sZu{C7dc5Rx8 vuIzvbi|X!leD>+MQ@5D4UtARD*Ae{>OefpADV3@<00000NkvXXu0mjfaAW?; literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..35737aa704ea5fb7ee21f0b239c0b3bd6a7c770b GIT binary patch literal 377 zcmV-<0fzpGP)4(^w$UH9y+HhQbJ?zo-<^u#LxP zxkWD;1}Non6$a68f$L~F#!wP9KitcsrZDg=Y7!+5qb2i#Zmi)PV`+S{kBOaF!Ef)_ zjYayH=t|;066fCWCzk2xn;SZ_C6n29p)_}?6RX(sY}wdutS5Ek#*?Y3N7oLe@x}fD XCmd%Zf5f;I00000NkvXXu0mjf0}G|f literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..f1bfa891d22928cd05c842447db6d2a5b653ce4a GIT binary patch literal 755 zcmVCku)J3 zFL_-s%nCnf$2o5p3LcPTojP9JQzQ{2V3wcQQX}IpAj$_Ga!rYOQpAZhl^{iyZEko- zk%(M>JF%(h~pSEEyhNBQ4+C4+@^ClW$-0Ty8+x&UgNQ!aDpID+ z?%derFeS0qd$C2>IG|H~vr~F2r&-i$yWY_3W1OH^GM@)S)R74WPyxjqPqhG15ydSd zzU^Pik-6IbOioDMjv4S}Kgf3!7xWtfL>XG_`G^>#N{b1v53eG~Q;gaTNA4cp;dli^ z*acaOJkgHkF$yw!_(It3<5wbpBeL`w&HKo40wDI?wx912iag|o9de{e($!RwG&#zx z*2-|g{(e9*Tw%)v6G48V;;eCx7k8}EAN(iqIm?{Uj#HMTwf+M{A;!p4rphJvOoFj({sOKeZn$QhZIb{1002ovPDHLkV1kIdQT6}; literal 0 HcmV?d00001 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() {