Fix offsetTopAndBottom/LeftAndRight on ICS

On API Level 14-19, ViewCompat.offsetTopAndBottom/LeftAndRight was
invoking redraw even when the view is not visible. This caused
CoordinatorLayout to redraw itself every frame in some cases, such as
when an invisible FAB is anchored to some other view.

Bug: 30403598
Change-Id: I984df0fe958727ffefc7d3d9c08298292578c3bd
diff --git a/compat/honeycomb/android/support/v4/view/ViewCompatHC.java b/compat/honeycomb/android/support/v4/view/ViewCompatHC.java
index 7d17bde..5d0467c 100644
--- a/compat/honeycomb/android/support/v4/view/ViewCompatHC.java
+++ b/compat/honeycomb/android/support/v4/view/ViewCompatHC.java
@@ -169,21 +169,25 @@
 
     static void offsetTopAndBottom(View view, int offset) {
         view.offsetTopAndBottom(offset);
-        tickleInvalidationFlag(view);
+        if (view.getVisibility() == View.VISIBLE) {
+            tickleInvalidationFlag(view);
 
-        ViewParent parent = view.getParent();
-        if (parent instanceof View) {
-            tickleInvalidationFlag((View) parent);
+            ViewParent parent = view.getParent();
+            if (parent instanceof View) {
+                tickleInvalidationFlag((View) parent);
+            }
         }
     }
 
     static void offsetLeftAndRight(View view, int offset) {
         view.offsetLeftAndRight(offset);
-        tickleInvalidationFlag(view);
+        if (view.getVisibility() == View.VISIBLE) {
+            tickleInvalidationFlag(view);
 
-        ViewParent parent = view.getParent();
-        if (parent instanceof View) {
-            tickleInvalidationFlag((View) parent);
+            ViewParent parent = view.getParent();
+            if (parent instanceof View) {
+                tickleInvalidationFlag((View) parent);
+            }
         }
     }