diff options
author | Tyler Gunn <tgunn@google.com> | 2014-05-16 15:39:29 -0700 |
---|---|---|
committer | Tyler Gunn <tgunn@google.com> | 2014-05-16 15:39:29 -0700 |
commit | c26986ec0380030e4938ea29a5535854e5b5bf9e (patch) | |
tree | 44533500a3d1953b31ddb7dde7cab065695d34f2 /src | |
parent | cb782e57c5cb6802584b224911984bddbc85a989 (diff) |
Cleaning up shadowing and animation of call log expansion.
Bug: 13962594
Change-Id: Ifbbf7fa75ffccfb893e6825774565c1e21e86c76
Diffstat (limited to 'src')
-rw-r--r-- | src/com/android/dialer/calllog/CallLogFragment.java | 37 |
1 files changed, 35 insertions, 2 deletions
diff --git a/src/com/android/dialer/calllog/CallLogFragment.java b/src/com/android/dialer/calllog/CallLogFragment.java index 2b2d43c82..6caa25cf3 100644 --- a/src/com/android/dialer/calllog/CallLogFragment.java +++ b/src/com/android/dialer/calllog/CallLogFragment.java @@ -17,6 +17,8 @@ package com.android.dialer.calllog; import android.animation.Animator; +import android.animation.AnimatorSet; +import android.animation.ArgbEvaluator; import android.animation.ValueAnimator; import android.animation.Animator.AnimatorListener; import android.app.Activity; @@ -541,9 +543,33 @@ public class CallLogFragment extends ListFragment if (!isExpand) { viewHolder.actionsView.setVisibility(View.VISIBLE); } + + // Set up the fade effect for the action buttons. + if (isExpand) { + int fadeDuration = getResources().getInteger( + R.integer.call_log_actions_fade_in_duration); + int startDelay = getResources().getInteger( + R.integer.call_log_actions_fade_start); + // Start the fade in after the expansion has partly completed, otherwise it + // will be mostly over before the expansion completes. + viewHolder.actionsView.setAlpha(0f); + viewHolder.actionsView.animate() + .alpha(1f) + .setStartDelay(startDelay) + .setDuration(fadeDuration) + .start(); + } else { + int fadeDuration = getResources().getInteger( + R.integer.call_log_actions_fade_out_duration); + viewHolder.actionsView.setAlpha(1f); + viewHolder.actionsView.animate() + .alpha(0f) + .setDuration(fadeDuration) + .start(); + } view.requestLayout(); - // Set up the animator to animate the expansion. + // Set up the animator to animate the expansion and shadow depth. ValueAnimator animator = isExpand ? ValueAnimator.ofFloat(0f, 1f) : ValueAnimator.ofFloat(1f, 0f); @@ -555,7 +581,8 @@ public class CallLogFragment extends ListFragment // For each value from 0 to 1, animate the various parts of the layout. view.getLayoutParams().height = (int) (value * distance + baseHeight); - view.setElevation(mExpandedItemElevation * value); + viewHolder.callLogEntryView + .setElevation(mExpandedItemElevation * value); view.requestLayout(); } }); @@ -564,6 +591,7 @@ public class CallLogFragment extends ListFragment @Override public void onAnimationEnd(Animator animation) { view.getLayoutParams().height = LayoutParams.WRAP_CONTENT; + if (!isExpand) { viewHolder.actionsView.setVisibility(View.GONE); } @@ -576,6 +604,11 @@ public class CallLogFragment extends ListFragment @Override public void onAnimationStart(Animator animation) { } }); + + final int expandCollapseDuration = getResources().getInteger( + R.integer.call_log_expand_collapse_duration); + + animator.setDuration(expandCollapseDuration); animator.start(); // Return false so this draw does not occur to prevent the final frame from |