- the "manager" button on the AVD selector (when not in manager
will open the Android SDK window
- the AVD manager in the eclipse toolsbar open the Android SDK
window as well.
Still left to do:
- remove the now obsolete AVD wizard
- figure out what to do with the other pages.
When installing an archive, a "source.properties" file is saved
in the directory that contains all the information from the
source (Source URL, package attributes, archive attributes.)
When loading local packages, these properties are used to
recreate the local package attributes if present. This is
also used to indentify local extra packages.
- Always unzip the archives first and get their root zip dir.
- Try to reusing an existing addon folder first.
- Or the root zip dir.
- Or come up with a better name for the addon folder.
- New/Delete/Info/Refresh/Manager buttons.
- Ability to set any kind of AVD filter
- Self-refresh: Selector knows the AvdManager and can refresh itself.
- Manager mode or simple (selection or checkboxes)
- Manager mode displays broken AVDs.
Updated the SdkUpdate AVD page and the various use of the Selector in ADT.
Note that the setting operates on every source by converting
the https:// links into http:// before fetching the sources
or the archives.
This also reorganize some things: the RepoSourceAdapter now
takes the UpdaterData as parameter (so both Adapters work the
same) and the label/contentProviders are nested classes instead
of static classes. Cleanup some stuff that was no longer useful
such as the RepoSources.TaskFactory (it's in UpdaterData already).
With this change I can install from the dl site over http at home!
There is not any longer any logic in the SettingsPage,
it is handled now by a "SettingsControllers" which is
available via UpdaterData. The page only takes care of
notifying the controller via a callback when settings
have changed in the UI.
One of the rationales behind this was to show
incompatible archives using some icon.
This moves all SDK Updater icons in internal/repository/icons
and create an ImageFactory available to the remote page via
the UpdaterData.
Created a permanent SdkManager in UpdaterData (alongside a new AvdManager).
Pages can request a reload (for example on install/delete of a local package),
and other pages are notified of SDK changes to update their display (local
packages, local AVDs, available packages, etc...)
Removed references to UpdaterWindow from the pages (moved some actions
like installArchives and refreshSources into UpdaterData).
Added a new page for the AVDs. Pretty basic for now (only the current AVD
display).
Clicking refresh on the Local pages causes a reload which triggers a
refresh of the listeners pages which properly reloads the AVD page.
- Change Archive to have a "isLocal" mode.
- In local mode, Archive.getLocalOsPath gives the install folder.
- In remote mode, Archive.getUrl gives the download URL.
- Implement delete on local archive.
- Started refreshing all sources. Need to revamp the progress
dialog to share it accross methods first.
The SDK now contains 32 and 64 bit version of SWT. DDMS and Traceview
use the archquery java app to check the architecture of the VM to decide
which version of SWT should be used to run the apps.
This adds the following:
- unzip archives
- if dest dir already exists (typicaly update case),
unzips in a temp dir then swap dirs then delete
the old install. In case of error, the old archive
has not been lost.
- computes stats for download: percentage, speed, time left.
- compute percent for install, on top of progress bar.
The install code will need to move somewhere
out of the window. I think I'll put in the Archive
itself with the window just looping on all archives
and doing some progress bar bookeeping.
This splits the former ProgressTask in 2 parts:
ProgressDialog is just the SWT dialog and ProgressTask
is the task handling.
This helps avoiding confusing SWT Designer each time
I do a change in the logic. Plus it seems cleaner anyway.
The other thing this CL does is implement the pause/close
I originally wanted: the pause button is greyed once used
by the user whilst the task completes. After, it becomes
a "Close" button if there's a result text displayed.
Closing the window using the close box is now the same as
using the pause/close button (to avoid closing the dialog
with a running thread.)