Merge changes I0d44e948,I1db7a972 into eclair

* changes:
  Fix 2260199 - App icons placed in folder widget are doubled after rebooting phone.
  Fix bug 2261637 - Workspace previews home screens on long pressing at the bottom of app drawer
diff --git a/src/com/android/launcher2/Launcher.java b/src/com/android/launcher2/Launcher.java
index c04176f..a8235a2 100644
--- a/src/com/android/launcher2/Launcher.java
+++ b/src/com/android/launcher2/Launcher.java
@@ -55,6 +55,7 @@
 import android.text.method.TextKeyListener;
 import android.util.Log;
 import android.view.Display;
+import android.view.HapticFeedbackConstants;
 import android.view.KeyEvent;
 import android.view.LayoutInflater;
 import android.view.Menu;
@@ -563,7 +564,9 @@
         Drawable next = mNextView.getDrawable();
         mWorkspace.setIndicators(previous, next);
 
+        mPreviousView.setHapticFeedbackEnabled(false);
         mPreviousView.setOnLongClickListener(this);
+        mNextView.setHapticFeedbackEnabled(false);
         mNextView.setOnLongClickListener(this);
 
         workspace.setOnLongClickListener(this);
@@ -1469,10 +1472,18 @@
     public boolean onLongClick(View v) {
         switch (v.getId()) {
             case R.id.previous_screen:
-                showPreviousPreview(v);
+                if (!isAllAppsVisible()) {
+                    mWorkspace.performHapticFeedback(HapticFeedbackConstants.LONG_PRESS,
+                            HapticFeedbackConstants.FLAG_IGNORE_VIEW_SETTING);
+                    showPreviousPreview(v);
+                }
                 return true;
             case R.id.next_screen:
-                showNextPreview(v);
+                if (!isAllAppsVisible()) {
+                    mWorkspace.performHapticFeedback(HapticFeedbackConstants.LONG_PRESS,
+                            HapticFeedbackConstants.FLAG_IGNORE_VIEW_SETTING);
+                    showNextPreview(v);
+                }
                 return true;
         }
 
@@ -1501,6 +1512,8 @@
             } else {
                 if (!(cellInfo.cell instanceof Folder)) {
                     // User long pressed on an item
+                    mWorkspace.performHapticFeedback(HapticFeedbackConstants.LONG_PRESS,
+                            HapticFeedbackConstants.FLAG_IGNORE_VIEW_SETTING);
                     mWorkspace.startDrag(cellInfo);
                 }
             }
diff --git a/src/com/android/launcher2/LauncherModel.java b/src/com/android/launcher2/LauncherModel.java
index a796831..262190d 100644
--- a/src/com/android/launcher2/LauncherModel.java
+++ b/src/com/android/launcher2/LauncherModel.java
@@ -616,6 +616,7 @@
 
                 mItems.clear();
                 mAppWidgets.clear();
+                mFolders.clear();
 
                 final Cursor c = contentResolver.query(
                         LauncherSettings.Favorites.CONTENT_URI, null, null, null, null);
diff --git a/src/com/android/launcher2/Workspace.java b/src/com/android/launcher2/Workspace.java
index 8853158..d0cec8a 100644
--- a/src/com/android/launcher2/Workspace.java
+++ b/src/com/android/launcher2/Workspace.java
@@ -139,6 +139,7 @@
         mDefaultScreen = a.getInt(R.styleable.Workspace_defaultScreen, 1);
         a.recycle();
 
+        setHapticFeedbackEnabled(false);
         initWorkspace();
     }
 
@@ -352,6 +353,7 @@
         }
         group.addView(child, insert ? 0 : -1, lp);
         if (!(child instanceof Folder)) {
+            child.setHapticFeedbackEnabled(false);
             child.setOnLongClickListener(mLongClickListener);
         }
         if (child instanceof DropTarget) {
@@ -426,10 +428,8 @@
         if (vacant) {
             group.addView(child,
                     new CellLayout.LayoutParams(mTempCell[0], mTempCell[1], spanX, spanY));
+            child.setHapticFeedbackEnabled(false);
             child.setOnLongClickListener(mLongClickListener);
-            if (!(child instanceof Folder)) {
-                child.setOnLongClickListener(mLongClickListener);
-            }
             if (child instanceof DropTarget) {
                 mDragController.addDropTarget((DropTarget)child);
             }
@@ -1094,6 +1094,7 @@
         }
 
         cellLayout.addView(view, insertAtFirst ? 0 : -1);
+        view.setHapticFeedbackEnabled(false);
         view.setOnLongClickListener(mLongClickListener);
         if (view instanceof DropTarget) {
             mDragController.addDropTarget((DropTarget) view);