Merge "Don't use a More Apps folder." into jb-ub-gel-agar
diff --git a/src/com/android/launcher3/DeleteDropTarget.java b/src/com/android/launcher3/DeleteDropTarget.java
index c98f761..01edb9e 100644
--- a/src/com/android/launcher3/DeleteDropTarget.java
+++ b/src/com/android/launcher3/DeleteDropTarget.java
@@ -253,7 +253,7 @@
return AppsCustomizePagedView.DISABLE_ALL_APPS && isWorkspaceOrFolderApplication(d);
}
- private void completeDrop(final DragObject d) {
+ private void completeDrop(DragObject d) {
ItemInfo item = (ItemInfo) d.dragInfo;
boolean wasWaitingForUninstall = mWaitingForUninstall;
mWaitingForUninstall = false;
@@ -264,11 +264,32 @@
} else if (AppsCustomizePagedView.DISABLE_ALL_APPS && isWorkspaceOrFolderApplication(d)) {
ShortcutInfo shortcut = (ShortcutInfo) item;
if (shortcut.intent != null && shortcut.intent.getComponent() != null) {
- ComponentName componentName = shortcut.intent.getComponent();
+ final ComponentName componentName = shortcut.intent.getComponent();
+ final DragSource dragSource = d.dragSource;
int flags = ApplicationInfo.initFlags(
ShortcutInfo.getPackageInfo(getContext(), componentName.getPackageName()));
mWaitingForUninstall =
mLauncher.startApplicationUninstallActivity(componentName, flags);
+ if (mWaitingForUninstall) {
+ final Runnable checkIfUninstallWasSuccess = new Runnable() {
+ @Override
+ public void run() {
+ mWaitingForUninstall = false;
+ String packageName = componentName.getPackageName();
+ List<ResolveInfo> activities =
+ AllAppsList.findActivitiesForPackage(getContext(), packageName);
+ boolean uninstallSuccessful = activities.size() == 0;
+ if (dragSource instanceof Folder) {
+ ((Folder) dragSource).
+ onUninstallActivityReturned(uninstallSuccessful);
+ } else if (dragSource instanceof Workspace) {
+ ((Workspace) dragSource).
+ onUninstallActivityReturned(uninstallSuccessful);
+ }
+ }
+ };
+ mLauncher.addOnResumeCallback(checkIfUninstallWasSuccess);
+ }
}
} else if (isWorkspaceOrFolderApplication(d)) {
LauncherModel.deleteItemFromDatabase(mLauncher, item);
@@ -301,30 +322,6 @@
((Workspace) d.dragSource).onUninstallActivityReturned(false);
}
}
- if (mWaitingForUninstall) {
- final Runnable checkIfUninstallWasSuccess = new Runnable() {
- @Override
- public void run() {
- mWaitingForUninstall = false;
- ShortcutInfo shortcut = (ShortcutInfo) d.dragInfo;
- if (shortcut.intent != null && shortcut.intent.getComponent() != null) {
- String packageName = shortcut.intent.getComponent().getPackageName();
- List<ResolveInfo> activities =
- AllAppsList.findActivitiesForPackage(getContext(), packageName);
- boolean uninstallSuccessful = activities.size() == 0;
- mLauncher.removeOnResumeCallback(this);
- if (d.dragSource instanceof Folder) {
- ((Folder) d.dragSource).
- onUninstallActivityReturned(uninstallSuccessful);
- } else if (d.dragSource instanceof Workspace) {
- ((Workspace) d.dragSource).
- onUninstallActivityReturned(uninstallSuccessful);
- }
- }
- }
- };
- mLauncher.addOnResumeCallback(checkIfUninstallWasSuccess);
- }
}
public void onDrop(DragObject d) {
diff --git a/src/com/android/launcher3/Folder.java b/src/com/android/launcher3/Folder.java
index f23e1bb..d428abc 100644
--- a/src/com/android/launcher3/Folder.java
+++ b/src/com/android/launcher3/Folder.java
@@ -725,6 +725,7 @@
public void onDropCompleted(final View target, final DragObject d,
final boolean isFlingToDelete, final boolean success) {
if (mDeferDropAfterUninstall) {
+ Log.d(TAG, "Deferred handling drop because waiting for uninstall.");
mDeferredAction = new Runnable() {
public void run() {
onDropCompleted(target, d, isFlingToDelete, success);
diff --git a/src/com/android/launcher3/Launcher.java b/src/com/android/launcher3/Launcher.java
index b7d7a2a..d91fee8 100644
--- a/src/com/android/launcher3/Launcher.java
+++ b/src/com/android/launcher3/Launcher.java
@@ -3457,10 +3457,6 @@
mOnResumeCallbacks.add(run);
}
- public void removeOnResumeCallback(Runnable run) {
- mOnResumeCallbacks.remove(run);
- }
-
/**
* If the activity is currently paused, signal that we need to re-run the loader
* in onResume.