Fixing crash in empty folders. (Bug 11627191)
Change-Id: I7a0e23e16a7546a9612d3406257e15be758d4c52 Signed-off-by: Winson Chung <winsonc@google.com>
This commit is contained in:
parent
fe2fb82657
commit
33231f587e
|
@ -408,6 +408,15 @@ public class Folder extends LinearLayout implements DragSource, View.OnClickList
|
|||
mFolderName.setText("");
|
||||
}
|
||||
updateItemLocationsInDatabase();
|
||||
|
||||
// In case any children didn't come across during loading, clean up the folder accordingly
|
||||
mFolderIcon.post(new Runnable() {
|
||||
public void run() {
|
||||
if (getItemCount() <= 1) {
|
||||
replaceFolderWithFinalItem();
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -826,7 +835,7 @@ public class Folder extends LinearLayout implements DragSource, View.OnClickList
|
|||
View v = list.get(i);
|
||||
ItemInfo info = (ItemInfo) v.getTag();
|
||||
LauncherModel.moveItemInDatabase(mLauncher, info, mInfo.id, 0,
|
||||
info.cellX, info.cellY);
|
||||
info.cellX, info.cellY);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1075,7 +1084,7 @@ public class Folder extends LinearLayout implements DragSource, View.OnClickList
|
|||
public void run() {
|
||||
CellLayout cellLayout = mLauncher.getCellLayout(mInfo.container, mInfo.screenId);
|
||||
|
||||
View child = null;
|
||||
View child = null;
|
||||
// Move the item from the folder to the workspace, in the position of the folder
|
||||
if (getItemCount() == 1) {
|
||||
ShortcutInfo finalItem = mInfo.contents.get(0);
|
||||
|
@ -1105,6 +1114,8 @@ public class Folder extends LinearLayout implements DragSource, View.OnClickList
|
|||
View finalChild = getItemAt(0);
|
||||
if (finalChild != null) {
|
||||
mFolderIcon.performDestroyAnimation(finalChild, onCompleteRunnable);
|
||||
} else {
|
||||
onCompleteRunnable.run();
|
||||
}
|
||||
mDestroyed = true;
|
||||
}
|
||||
|
|
|
@ -16,10 +16,10 @@
|
|||
|
||||
package com.android.launcher3;
|
||||
|
||||
import java.util.ArrayList;
|
||||
|
||||
import android.content.ContentValues;
|
||||
|
||||
import java.util.ArrayList;
|
||||
|
||||
/**
|
||||
* Represents a folder containing shortcuts or apps.
|
||||
*/
|
||||
|
|
|
@ -584,8 +584,9 @@ public class LauncherModel extends BroadcastReceiver {
|
|||
// as in Workspace.onDrop. Here, we just add/remove them from the list of items
|
||||
// that are on the desktop, as appropriate
|
||||
ItemInfo modelItem = sBgItemsIdMap.get(itemId);
|
||||
if (modelItem.container == LauncherSettings.Favorites.CONTAINER_DESKTOP ||
|
||||
modelItem.container == LauncherSettings.Favorites.CONTAINER_HOTSEAT) {
|
||||
if (modelItem != null &&
|
||||
(modelItem.container == LauncherSettings.Favorites.CONTAINER_DESKTOP ||
|
||||
modelItem.container == LauncherSettings.Favorites.CONTAINER_HOTSEAT)) {
|
||||
switch (modelItem.itemType) {
|
||||
case LauncherSettings.Favorites.ITEM_TYPE_APPLICATION:
|
||||
case LauncherSettings.Favorites.ITEM_TYPE_SHORTCUT:
|
||||
|
|
Loading…
Reference in New Issue