am 12dac0b1: am e7ff49b8: SDK Manager: properly reset tree when changing updates only

Merge commit '12dac0b13bce0aa19cdc933107e1a733bc62e116' into eclair-mr2-plus-aosp

* commit '12dac0b13bce0aa19cdc933107e1a733bc62e116':
  SDK Manager: properly reset tree when changing updates only
This commit is contained in:
Raphael
2009-10-23 14:06:59 -07:00
committed by Android Git Automerger

View File

@@ -283,7 +283,32 @@ public class RemotePackagesPage extends Composite implements ISdkListener {
SettingsController controller = mUpdaterData.getSettingsController(); SettingsController controller = mUpdaterData.getSettingsController();
controller.setShowUpdateOnly(mUpdateOnlyCheckBox.getSelection()); controller.setShowUpdateOnly(mUpdateOnlyCheckBox.getSelection());
controller.saveSettings(); controller.saveSettings();
// Get the list of selected archives
ArrayList<Archive> archives = new ArrayList<Archive>();
for (Object element : mTreeViewerSources.getCheckedElements()) {
if (element instanceof Archive) {
archives.add((Archive) element);
}
// Deselect them all
mTreeViewerSources.setChecked(element, false);
}
mTreeViewerSources.refresh(); mTreeViewerSources.refresh();
// Now reselect those that still exist in the tree but only if they
// are compatible archives
for (Archive a : archives) {
if (a.isCompatible() && mTreeViewerSources.setChecked(a, true)) {
// If we managed to select the archive, also select the parent package.
// Technically we should only select the parent package if *all* the
// compatible archives children are selected. In practice we'll rarely
// have more than one compatible archive per package.
mTreeViewerSources.setChecked(a.getParentPackage(), true);
}
}
updateButtonsState();
} }
private void onInstallSelectedArchives() { private void onInstallSelectedArchives() {