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

Merge commit 'ccddf0ac0b0b56169b546b36183594688959561f'

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

View File

@@ -283,7 +283,32 @@ public class RemotePackagesPage extends Composite implements ISdkListener {
SettingsController controller = mUpdaterData.getSettingsController();
controller.setShowUpdateOnly(mUpdateOnlyCheckBox.getSelection());
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();
// 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() {