Fixed bug: newly added apps didn't show up immediately 

Now, whenever apps change visibility or are removed, we invalidate the bitmap cache for CellLayout

Change-Id: I883ea6cc07b1b09775bb7d262417acb34fbec3de
diff --git a/src/com/android/launcher2/LauncherAppWidgetHostView.java b/src/com/android/launcher2/LauncherAppWidgetHostView.java
index c45140e..85a80f9 100644
--- a/src/com/android/launcher2/LauncherAppWidgetHostView.java
+++ b/src/com/android/launcher2/LauncherAppWidgetHostView.java
@@ -28,13 +28,13 @@
 /**
  * {@inheritDoc}
  */
-public class LauncherAppWidgetHostView extends AppWidgetHostView {
+public class LauncherAppWidgetHostView extends AppWidgetHostView
+    implements VisibilityChangedBroadcaster {
     private boolean mHasPerformedLongPress;
-    
     private CheckForLongPress mPendingCheckForLongPress;
-    
     private LayoutInflater mInflater;
-    
+    private VisibilityChangedListener mOnVisibilityChangedListener;
+
     public LauncherAppWidgetHostView(Context context) {
         super(context);
         mInflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
@@ -110,4 +110,16 @@
             removeCallbacks(mPendingCheckForLongPress);
         }
     }
+
+    public void setVisibilityChangedListener(VisibilityChangedListener listener) {
+        mOnVisibilityChangedListener = listener;
+    }
+
+    @Override
+    protected void onVisibilityChanged(View changedView, int visibility) {
+        if (mOnVisibilityChangedListener != null) {
+            mOnVisibilityChangedListener.receiveVisibilityChangedMessage(this);
+        }
+        super.onVisibilityChanged(changedView, visibility);
+    }
 }