summaryrefslogtreecommitdiffstats
path: root/src/com/android
diff options
context:
space:
mode:
authorWinson Chung <winsonc@google.com>2010-11-01 11:57:06 -0700
committerWinson Chung <winsonc@google.com>2010-11-01 12:10:25 -0700
commit10fefb18c4f227f6a08fc24966800e49ce743be8 (patch)
tree7a94020c093bf24631c34d3a387025db4c9eb412 /src/com/android
parent27ebab6ff9999098938044101bec1e40e7f89b13 (diff)
downloadpackages_apps_trebuchet-10fefb18c4f227f6a08fc24966800e49ce743be8.zip
packages_apps_trebuchet-10fefb18c4f227f6a08fc24966800e49ce743be8.tar.gz
packages_apps_trebuchet-10fefb18c4f227f6a08fc24966800e49ce743be8.tar.bz2
Fixing issues in Launcher
- Now ending choice mode if a selected application is removed - Only updating apps in the customization drawer if the applications change - Adding null check when determining scrolling in PagedView Change-Id: I0b23d1383649626dc012bd70a5e8087885b77c17
Diffstat (limited to 'src/com/android')
-rw-r--r--src/com/android/launcher2/AllAppsPagedView.java20
-rw-r--r--src/com/android/launcher2/CustomizePagedView.java16
-rw-r--r--src/com/android/launcher2/PagedView.java4
3 files changed, 29 insertions, 11 deletions
diff --git a/src/com/android/launcher2/AllAppsPagedView.java b/src/com/android/launcher2/AllAppsPagedView.java
index 4dcdb81..149f9fb 100644
--- a/src/com/android/launcher2/AllAppsPagedView.java
+++ b/src/com/android/launcher2/AllAppsPagedView.java
@@ -18,14 +18,13 @@ package com.android.launcher2;
import java.util.ArrayList;
import java.util.Collections;
+import java.util.HashSet;
import android.content.ComponentName;
import android.content.Context;
import android.content.res.TypedArray;
-import android.graphics.drawable.Drawable;
import android.util.AttributeSet;
import android.view.ActionMode;
-import android.view.Gravity;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuItem;
@@ -294,7 +293,22 @@ public class AllAppsPagedView extends PagedView
}
private void removeAppsWithoutInvalidate(ArrayList<ApplicationInfo> list) {
- // loop through all the apps and remove apps that have the same component
+ // End the choice mode if any of the items in the list that are being removed are
+ // currently selected
+ ArrayList<Checkable> checkedList = getCheckedGrandchildren();
+ HashSet<ApplicationInfo> checkedAppInfos = new HashSet<ApplicationInfo>();
+ for (Checkable checked : checkedList) {
+ PagedViewIcon icon = (PagedViewIcon) checked;
+ checkedAppInfos.add((ApplicationInfo) icon.getTag());
+ }
+ for (ApplicationInfo info : list) {
+ if (checkedAppInfos.contains(info)) {
+ endChoiceMode();
+ break;
+ }
+ }
+
+ // Loop through all the apps and remove apps that have the same component
final int length = list.size();
for (int i = 0; i < length; ++i) {
final ApplicationInfo info = list.get(i);
diff --git a/src/com/android/launcher2/CustomizePagedView.java b/src/com/android/launcher2/CustomizePagedView.java
index 5cfc38f..a475a50 100644
--- a/src/com/android/launcher2/CustomizePagedView.java
+++ b/src/com/android/launcher2/CustomizePagedView.java
@@ -144,7 +144,7 @@ public class CustomizePagedView extends PagedView
Collections.sort(mApps, LauncherModel.APP_NAME_COMPARATOR);
// Update the widgets/shortcuts to reflect changes in the set of available apps
- update();
+ invalidatePageDataAndIconCache();
}
/**
@@ -170,7 +170,7 @@ public class CustomizePagedView extends PagedView
addAppsWithoutInvalidate(list);
// Update the widgets/shortcuts to reflect changes in the set of available apps
- update();
+ invalidatePageDataAndIconCache();
}
/**
@@ -197,7 +197,7 @@ public class CustomizePagedView extends PagedView
removeAppsWithoutInvalidate(list);
// Update the widgets/shortcuts to reflect changes in the set of available apps
- update();
+ invalidatePageDataAndIconCache();
}
/**
@@ -212,7 +212,7 @@ public class CustomizePagedView extends PagedView
addAppsWithoutInvalidate(list);
// Update the widgets/shortcuts to reflect changes in the set of available apps
- update();
+ invalidatePageDataAndIconCache();
}
/**
@@ -231,8 +231,6 @@ public class CustomizePagedView extends PagedView
}
public void update() {
- Context context = getContext();
-
// get the list of widgets
mWidgetList = AppWidgetManager.getInstance(mLauncher).getInstalledProviders();
Collections.sort(mWidgetList, new Comparator<AppWidgetProviderInfo>() {
@@ -260,7 +258,11 @@ public class CustomizePagedView extends PagedView
mWallpaperList = mPackageManager.queryIntentActivities(wallpapersIntent, 0);
Collections.sort(mWallpaperList, resolveInfoComparator);
- // reset the icon cache
+ invalidatePageDataAndIconCache();
+ }
+
+ private void invalidatePageDataAndIconCache() {
+ // Reset the icon cache
mPageViewIconCache.clear();
// Refresh all the tabs
diff --git a/src/com/android/launcher2/PagedView.java b/src/com/android/launcher2/PagedView.java
index 9739b15..c125696 100644
--- a/src/com/android/launcher2/PagedView.java
+++ b/src/com/android/launcher2/PagedView.java
@@ -755,7 +755,9 @@ public abstract class PagedView extends ViewGroup {
// by a distant descendant, so use the mAllowLongPress flag to block
// everything
final View currentPage = getPageAt(mCurrentPage);
- currentPage.cancelLongPress();
+ if (currentPage != null) {
+ currentPage.cancelLongPress();
+ }
}
}
}