Merge "Notify data-set changed when new items are added/removed." into ub-launcher3-burnaby

This commit is contained in:
Winson Chung
2015-04-20 04:40:41 +00:00
committed by Android (Google) Code Review
@@ -239,17 +239,9 @@ public class AlphabeticalAppsList {
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,34 +270,10 @@ public class AlphabeticalAppsList {
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.
*/