-> Refactored and cleaned up dragging / animations
-> Added methods to generate blue glow  outline
-> Added "res-out" effect
-> Added some influence for dragging left / right

Change-Id: I4bdbe4c3bd843ed5616b1ea359a3b0af1c151814
diff --git a/core/java/android/widget/AdapterViewAnimator.java b/core/java/android/widget/AdapterViewAnimator.java
index 2b723c9..ef00d88 100644
--- a/core/java/android/widget/AdapterViewAnimator.java
+++ b/core/java/android/widget/AdapterViewAnimator.java
@@ -685,14 +685,6 @@
             verticalOffset = 0;
         }
 
-        void setHorizontalOffset(int newHorizontalOffset) {
-            horizontalOffset = newHorizontalOffset;
-            if (mView != null) {
-                mView.requestLayout();
-                mView.invalidate();
-            }
-        }
-
         private Rect parentRect = new Rect();
         void invalidateGlobalRegion(View v, Rect r) {
             View p = v;
@@ -722,5 +714,17 @@
                 invalidateGlobalRegion(mView, invalidateRect);
             }
         }
+
+        public void setHorizontalOffset(int newHorizontalOffset) {
+            int offsetDelta = newHorizontalOffset - horizontalOffset;
+            horizontalOffset = newHorizontalOffset;
+            if (mView != null) {
+                mView.requestLayout();
+                int left = Math.min(mView.getLeft() + offsetDelta, mView.getLeft());
+                int right = Math.max(mView.getRight() + offsetDelta, mView.getRight());
+                invalidateRect.set(left, mView.getTop(), right, mView.getBottom());
+                invalidateGlobalRegion(mView, invalidateRect);
+            }
+        }
     }
 }