Notify data-set changed when new items are added/removed.
- Temporarily use the full data-set changed call, when possible, we'll moved
to the SortedList in the support lib which will take care of most of this
for us.
Bug: 20363676
diff --git a/src/com/android/launcher3/AlphabeticalAppsList.java b/src/com/android/launcher3/AlphabeticalAppsList.java
index 8d1db63..2ee5a62 100644
--- a/src/com/android/launcher3/AlphabeticalAppsList.java
+++ b/src/com/android/launcher3/AlphabeticalAppsList.java
@@ -239,17 +239,9 @@
for (AppInfo info : apps) {
int removeIndex = findAppByComponent(mApps, info);
if (removeIndex != -1) {
- int sectionedIndex = mSectionedFilteredApps.indexOf(info);
- int numAppsInSection = numAppsInSection(info);
mApps.remove(removeIndex);
onAppsUpdated();
- if (numAppsInSection == 1) {
- // Remove the section and the icon
- mAdapter.notifyItemRemoved(sectionedIndex - 1);
- mAdapter.notifyItemRemoved(sectionedIndex - 1);
- } else {
- mAdapter.notifyItemRemoved(sectionedIndex);
- }
+ mAdapter.notifyDataSetChanged();
}
}
}
@@ -278,35 +270,11 @@
if (index < 0) {
mApps.add(-(index + 1), info);
onAppsUpdated();
-
- int sectionedIndex = mSectionedFilteredApps.indexOf(info);
- int numAppsInSection = numAppsInSection(info);
- if (numAppsInSection == 1) {
- // New section added along with icon
- mAdapter.notifyItemInserted(sectionedIndex - 1);
- mAdapter.notifyItemInserted(sectionedIndex - 1);
- } else {
- mAdapter.notifyItemInserted(sectionedIndex);
- }
+ mAdapter.notifyDataSetChanged();
}
}
/**
- * Returns the number of apps in the section that the given info is in.
- */
- private int numAppsInSection(AppInfo info) {
- int appIndex = mFilteredApps.indexOf(info);
- int appCount = 0;
- for (SectionInfo section : mSections) {
- if (appCount + section.numAppsInSection > appIndex) {
- return section.numAppsInSection;
- }
- appCount += section.numAppsInSection;
- }
- return 1;
- }
-
- /**
* Updates internals when the set of apps are updated.
*/
private void onAppsUpdated() {