summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorMichael Jurka <mikejurka@google.com>2011-08-05 15:58:53 -0700
committerAndroid (Google) Code Review <android-gerrit@google.com>2011-08-05 15:58:53 -0700
commit57e0ae249038ed9fda446ae45d0b916110eca50f (patch)
treee77368bfdb6b2d23943d13371151a39477efcaa6 /src
parentbacd9efce7acbde09cc28b7d449887959165a7a3 (diff)
parent4554ee16f122a3dbd9a8d3b828f1c8c7e7b7fe99 (diff)
downloadandroid_packages_apps_Trebuchet-57e0ae249038ed9fda446ae45d0b916110eca50f.tar.gz
android_packages_apps_Trebuchet-57e0ae249038ed9fda446ae45d0b916110eca50f.tar.bz2
android_packages_apps_Trebuchet-57e0ae249038ed9fda446ae45d0b916110eca50f.zip
Merge "Small code cleanup in folders, prevent crash issue 5082899"
Diffstat (limited to 'src')
-rw-r--r--src/com/android/launcher2/Folder.java10
-rw-r--r--src/com/android/launcher2/Launcher.java50
2 files changed, 29 insertions, 31 deletions
diff --git a/src/com/android/launcher2/Folder.java b/src/com/android/launcher2/Folder.java
index 641e0f70f..15a0642e2 100644
--- a/src/com/android/launcher2/Folder.java
+++ b/src/com/android/launcher2/Folder.java
@@ -292,13 +292,6 @@ public class Folder extends LinearLayout implements DragSource, View.OnClickList
return mInfo;
}
- void onOpen() {
- // When the folder opens, we need to refresh the GridView's selection by
- // forcing a layout
- // TODO: find out if this is still necessary
- mContent.requestLayout();
- }
-
void bind(FolderInfo info) {
mInfo = info;
ArrayList<ShortcutInfo> children = info.contents;
@@ -849,7 +842,8 @@ public class Folder extends LinearLayout implements DragSource, View.OnClickList
private void onCloseComplete() {
DragLayer parent = (DragLayer) getParent();
- parent.removeView(Folder.this);
+ parent.removeView(this);
+ mDragController.removeDropTarget((DropTarget) this);
clearFocus();
if (mRearrangeOnClose) {
diff --git a/src/com/android/launcher2/Launcher.java b/src/com/android/launcher2/Launcher.java
index 6d8fd4da2..1af3f71d2 100644
--- a/src/com/android/launcher2/Launcher.java
+++ b/src/com/android/launcher2/Launcher.java
@@ -1460,25 +1460,6 @@ public final class Launcher extends Activity
}
}
- public void closeFolder() {
- Folder folder = mWorkspace.getOpenFolder();
- if (folder != null) {
- closeFolder(folder);
- }
- }
-
- void closeFolder(Folder folder) {
- folder.getInfo().opened = false;
-
- ViewGroup parent = (ViewGroup) folder.getParent().getParent();
- if (parent != null) {
- FolderIcon fi = (FolderIcon) mWorkspace.getViewForTag(folder.mInfo);
- shrinkAndFadeInFolderIcon(fi);
- mDragController.removeDropTarget((DropTarget)folder);
- }
- folder.animateClosed();
- }
-
/**
* Re-listen when widgets are reset.
*/
@@ -1724,11 +1705,34 @@ public final class Launcher extends Activity
growAndFadeOutFolderIcon(folderIcon);
info.opened = true;
- mDragLayer.addView(folder);
- mDragController.addDropTarget((DropTarget) folder);
-
+ // Just verify that the folder hasn't already been added to the DragLayer.
+ // There was a one-off crash where the folder had a parent already.
+ if (folder.getParent() == null) {
+ mDragLayer.addView(folder);
+ mDragController.addDropTarget((DropTarget) folder);
+ } else {
+ Log.w(TAG, "Opening folder (" + folder + ") which already has a parent (" +
+ folder.getParent() + ").");
+ }
folder.animateOpen();
- folder.onOpen();
+ }
+
+ public void closeFolder() {
+ Folder folder = mWorkspace.getOpenFolder();
+ if (folder != null) {
+ closeFolder(folder);
+ }
+ }
+
+ void closeFolder(Folder folder) {
+ folder.getInfo().opened = false;
+
+ ViewGroup parent = (ViewGroup) folder.getParent().getParent();
+ if (parent != null) {
+ FolderIcon fi = (FolderIcon) mWorkspace.getViewForTag(folder.mInfo);
+ shrinkAndFadeInFolderIcon(fi);
+ }
+ folder.animateClosed();
}
public boolean onLongClick(View v) {