Avoid unnecessary layout passes from insets callbacks if they haven't changed

Change-Id: Ia7560bd466ff47103811a1a1795af5a5a25abb59
diff --git a/src/com/android/launcher3/InsettableFrameLayout.java b/src/com/android/launcher3/InsettableFrameLayout.java
index db4d855..154641c 100644
--- a/src/com/android/launcher3/InsettableFrameLayout.java
+++ b/src/com/android/launcher3/InsettableFrameLayout.java
@@ -43,6 +43,10 @@
 
     @Override
     public void setInsets(Rect insets) {
+        // If the insets haven't changed, this is a no-op. Avoid unnecessary layout caused by
+        // modifying child layout params.
+        if (insets.equals(mInsets)) return;
+
         final int n = getChildCount();
         for (int i = 0; i < n; i++) {
             final View child = getChildAt(i);