Minor improvement to pinner header animation

Change-Id: Ia603e53ba3a9fb773bb0ea4046f6419a316808dc
diff --git a/src/com/android/contacts/widget/PinnedHeaderListView.java b/src/com/android/contacts/widget/PinnedHeaderListView.java
index 442ddd3..2867cbb 100644
--- a/src/com/android/contacts/widget/PinnedHeaderListView.java
+++ b/src/com/android/contacts/widget/PinnedHeaderListView.java
@@ -279,10 +279,11 @@
         header.state = BOTTOM;
         if (header.animating) {
             header.targetTime = mAnimationTargetTime;
+            header.sourceY = header.y;
             header.targetY = y;
         } else if (animate && (header.y != y || !header.visible)) {
             if (header.visible) {
-                header.sourceY = y;
+                header.sourceY = header.y;
             } else {
                 header.visible = true;
                 header.sourceY = y + header.height;
@@ -336,10 +337,10 @@
     public void setHeaderInvisible(int viewIndex, boolean animate) {
         PinnedHeader header = mHeaders[viewIndex];
         if (header.visible && (animate || header.animating) && header.state == BOTTOM) {
+            header.sourceY = header.y;
             if (!header.animating) {
                 header.visible = true;
-                header.sourceY = header.y;
-                header.targetY = header.y + header.height;
+                header.targetY = getBottom() + header.height;
             }
             header.animating = true;
             header.targetTime = mAnimationTargetTime;