aboutsummaryrefslogtreecommitdiffstats
path: root/sdkmanager/libs/sdklib
Commit message (Collapse)AuthorAgeFilesLines
* Projects can now access aidl files from their libraries.Xavier Ducrohet2012-06-051-0/+2
| | | | | | | | | | | Library projects now copy their aidl files into bin/aidl. Aidl is now called with this import path for all referenced library projects. Also added a test project. Change-Id: I7f94489e87450be67a16ed7198f85b8b472f5025
* Fix warningsTor Norbye2012-06-011-0/+5
| | | | | | | | | | | | | | | | | First, update our various project-specific Eclipse compiler settings configuration files to include the new Eclipse 4 flags. Second, turn off the "Unchecked conversion from non-annotated type to @NonNull" warnings; there are hundreds or thousands of these, and there isn't much we can do about them when they're coming from platform and library APIs. Third, make the lint projects warning-clean again by addressing various warnings Eclipse found (such as some unclosed resources and some null handling issues; yesterday's null annotation fixes only addressed errors, not warnings.) Change-Id: If75f7401a1cbeef1bf58b47ccaa9ad17bede7f91
* SDK Manager: support standalone sys-img xml.Raphael Moll2012-05-3123-43/+1285
| | | | | | | | | | This extends the addons_list XSD to support both addons sites and OEM's system-image sites. Then this defines a new schema "sys-img" XSD for a site that offers only system images. Change-Id: I77ff56c4c70f57ab8ea44cf4ea3094125653737b
* Fix "Resource leak: <Foo> is never closed"Tor Norbye2012-05-304-7/+40
| | | | | | | This changeset fixes various code fragments opening resources without closing them. Change-Id: I6ed48a32dc5de4c11cab394dd3883ebbb54d2938
* Fix nullness annotationsTor Norbye2012-05-304-8/+12
| | | | | | | | | | | | | | | | | | | Eclipse 4.2 includes analysis support for @Nullable and @NonNull annotations. However, it requires these annotations to be *repeated* on every single method implementing or overriding a superclass or interface method (!). This changeset basically applies the quickfixes to inline these annotations. It also changes the retention of our nullness annotations from source to class, since without this Eclipse believes that a @NonNull annotation downstream is a redefinition of a @Nullable annotation. Finally, the null analysis revealed a dozen or so places where the nullness annotation was either wrong, or some null checking on parameters or return values needed to be done. Change-Id: I43b4e56e2d025a8a4c92a8873f55c13cdbc4c1cb
* Setting to enable preview packages.Raphael Moll2012-05-221-2/+4
| | | | Change-Id: I7af78e81e5433396c7a1039782ab8ceda35187a0
* SDK Manager: Settings to control download cache.Raphael Moll2012-05-183-1/+102
| | | | | | | | | | | | | | | | | SDK Manager > Tools > Options now has a checkbox to deactivate the download cache. It also indicates the path to the cache directory, its size and a button to clear the cache immediately. This only affects the sdk manager files for the download cache, it doesn't clear other cached files such as the lint binaries. Also restructured the settings controller a tiny bit. There's more that could be restructured here but it's not a priority right now. Change-Id: I474e6155bdc041770f3f7664366d0d92bd96d9b0
* SDK Manager: do not erase default java http proxy properties.Raphael Moll2012-05-172-3/+51
| | | | | | | | | | | | If the sdk manager config file has no proxy port/host info, do not set the corresponding java properties to empty strings. This means if the sdk manager settings are empty, whatever is the default from Java OR from the Eclispe proxy settings will be used by the manager. Change-Id: I17bbc6faed4726fc4b6aa9b29ded7d698ed81283
* SDK Manager: rework package loader.Raphael Moll2012-05-092-0/+29
| | | | | | | | | | | | | | | | | | | | When the SDK Manager window opens, the process is changed to: - first a package loader is created that only checks the local cache xml files. It populates the package list based on what the client last got, essentially. - next a regular package loader is created that will respect the expiration and refresh parameters of the download cache. This means for users, in the majority of cases when remote servers do not change, the package list will be populated as fast as possible and then an asynchronous refresh happens. Change-Id: Ifd1f58412dcc643eaae37257a9bc0a01fc222c90
* SDK: full revision for min-tools-rev.Raphael Moll2012-05-0817-88/+595
| | | | | | | | Support full revision for: - tools: min-platform-tools-rev - platform + sample + extra: min-tools-rev Change-Id: I2c699683c1a3c02c99654dba7c39c7a1e5cd042e
* Fix SDK Build: move unit test to /tests folder instead of /srcRaphael Moll2012-05-071-0/+0
| | | | Change-Id: I6891dcaa42990d80982bbd48859f99709aa62931
* SDK Manager: fix parsing of empty AndroidVersion codename.Raphael Moll2012-05-075-26/+114
| | | | | | | | | | | | | | | | | SDK Bug: 29952 To reproduce the bug, install any system image with the SDK Manager and add the line "AndroidVersion.CodeName=" in the source.properties. When the SDK Manager loads, it will incorrectly flag the system image as "broken" because it can't understand the empty codename. This fixes it by sanitizing the codename when creating an AndroidVersion and using that class when loading the properties instead of hand checking the codename in various places. Change-Id: Ie4a02739e56f576c7644b5539697c943d0082aac
* SDK Manager change format of revision property.Raphael Moll2012-05-0410-39/+229
| | | | | | | | | | | | | Instead of storing the full revision as 4 separate properties, this stores it using the legacy "Pkg.Revision" property with the "1.2.3 rc4" format. It reduces the number of properties to maintain, it's more human-readable and it's easier when we want to have min-tools-rev be a full revision in the next CL (otherwise it means 4 more properties, etc.) Change-Id: I94ebc4786e83c5b565a6d3a33d11efdfda6f72c5
* SDK: cleanup all the Integer.parse(getProperty) calls.Raphael Moll2012-05-039-46/+67
| | | | Change-Id: Iee113eb3341f6aab65d65654505c5fedcfaff9a1
* SDK: Rework repository-7.xsdRaphael Moll2012-05-0328-222/+364
| | | | | | | | | | | This changes the XML schema for repository-7 to put the "full revision" in its own <revision> element with 4 sub-elements (major/minor/micro and preview). Next step is to reuse this for min-[plat-]tools-rev for dependencies. Change-Id: I644f08e7383987682f8b0b31175ce58d02fd8751
* Rework SDK Manager support for major.minor.micro revisions.Raphael Moll2012-05-0321-148/+354
| | | | | | | | | | | | | | | | | | | 2 things in this CL: - There's a bit of refactoring: - PreviewVersion becomes FullVersion (which is a full major.minor.micro.preview) - And I introduce a MajorRevision (which is just a major number) - Package.getRevision() returns one of these revision objects instead of an integer which leads to a multide of small boring changes. - Changed the PackageDiffLogic and its test to adequately use the new revision; "tools preview" packages are placed in their own category and releases can update previews but not the reverse. Change-Id: Ia80fd9a3791919e827ce0d183c0f297f0d27f2e6
* Merge "SDK Tools pkg support for major.minor.micro revisions."Raphael Moll2012-05-0335-88/+2189
|\
| * SDK Tools pkg support for major.minor.micro revisions.Raphael Moll2012-04-3035-88/+2189
| | | | | | | | | | | | | | | | | | | | | | For tools and platform-tools, we'll support a revision in the form "major.minor.micro rc#". The fourth one is a preview/release candidate number. This allows us to have revisions 18, 18.1, 18.0.1 and 18 rc1, etc. Change-Id: I8a41491d4cd8798f1b71ed7f3484d9293fee81bc
* | sdklib: update classpath to get mkidentity from prebuiltsSiva Velusamy2012-04-301-1/+1
|/ | | | Change-Id: Ic0e471830b373b8e46e0c6817f4ccf37aaf2a143
* New env-var to disable SDK Manager cacheRaphael Moll2012-04-271-1/+7
| | | | Change-Id: Ia1c0ae789f173aca0832c1c7c1f6679645611f9b
* SDK: XML to export platform stats.Raphael Moll2012-04-236-0/+1069
| | | | | | This would be used later by the NPW. Change-Id: Iec6f24182f234d83217d83f0087aa92eabb7609d
* Reorganize sdklib.repository packages.Raphael Moll2012-04-2158-150/+313
| | | | | | | | | | | This splits the sdklib repository in 3 sub-packages for archives, packages and sources. There are a lot of files moved around but its just a move refactoring and the only thing changes are imports and a few methods made public. Change-Id: I6ce0e872ac7afea2a6a4eb70ee7bbad0c04b6678
* Fix lib properties on windows.Xavier Ducrohet2012-04-172-4/+10
| | | | | | | This is a very crude first fix while we figure out how to properly escape/unescape all chars. Change-Id: I783f8fdfd802e1a8ff44bbc7f6056fb607a3e523
* SDK: primitive implementation of download cache.Raphael Moll2012-04-168-102/+762
| | | | | | | | | | | | | | It supports: - A local binary cache + a few http headers are saved - If ETag is present, generates a GET with If-None-Match - If Last-Modified is present, generates a GET with If-Modified-Since - Ability to configure the cache to be direct (don't cache), or serve without checkout or serve with a server check. - Doesn't check cached files if newer than 10 minutes. - For servers with no ETag/LastModified support, check files every 4 hours (no pref to change this yet.) Change-Id: I515e77291fb6810453e82e73f6508cfc60b2f422
* Merge "SDK: Use HttpClient from prebuilts/tools"Raphael Moll2012-04-161-5/+5
|\
| * SDK: Use HttpClient from prebuilts/toolsRaphael Moll2012-04-161-5/+5
| | | | | | | | | | | | Requires prebuilts/tools.git change I24a2f1608 Change-Id: I7f128be1acfe585e22b5350ac1b598d4b01dc006
* | Merge "SDK: change proguard.config for Windows."Raphael Moll2012-04-161-3/+4
|\ \
| * | SDK: change proguard.config for Windows.Raphael Moll2012-04-161-3/+4
| |/ | | | | | | | | | | | | | | | | | | | | | | | | | | Change the default to use / dir-separators even for the Windows template. The / will be correctly replaced by \\ by both Ant and our ExportHelper, ensuring a relative path works on all platforms. SDK bug: 28860 (This does not solve the path-separator issue with ; vs : on Windows. That will be addressed later.) Change-Id: Iee3ae9c58aa606aee7943c4e20643164bbf7344b
* | Fix "ant test" + misc clean up / reorganization of build.xmlXavier Ducrohet2012-04-164-9/+32
|/ | | | | | | | | | | | | | | | - Split NewSetupTask in several tasks to make things more flexible. Particularly this allows more targets to get access to the project type (app, lib, test, ...) as it's not so computive intensive. - Fix test project to give them access to the full tested project's classpath. - Fix support for projects that test themselves. - Make sure library projects are instrumented when using the emma target. Change-Id: Ia0c9564eacee2521e7cbd5154b8a85ea287ad4fd
* SDK: unit test for SdkSourceProperties.Raphael Moll2012-04-042-32/+215
| | | | | | Also fix a name changed in the SdkUiLib test. Change-Id: I30fa83ac607fc4735af161604514f09c2aff6a93
* SDK Manager: Remember last seen source names.Raphael Moll2012-04-032-85/+216
| | | | | | | | | | | | | | | One issue in the SDK Manager is that sources that are partially installed first are loaded first. However we used to remember the source URL but not its name, resulting in some sources having no visible name when loaded from installed packages. This solves the issue by storing the known source names locally. This expands on the local settings file that stores whether a source is enable/disable to add more attributes. Change-Id: Ideca00820ccad01b4cacd997b1e43b53270fa1bc
* SDK Manager dialog to enable 3rd party addons.Raphael Moll2012-04-032-60/+264
| | | | | | | | | | | | | | | - Change AddonUser dialog: transform current dialog in 2 pages. One is for user to add custom addon site URLs (like the dialog was doing before, unchanged.) - Other tab is to select which official addon sites should be enabled. - Support enable/disable state for each source. - Display disabled sources as such in the tree when in "per-repository" view. - Persist the enable bit state via local pref file. - Refactor a few inner classes out of PackagesPage. Change-Id: Icc8e392d90550e53f1c76dd7aefb31669219973b
* Use our own signing code in Ant and don't rely on Jarsigner.Xavier Ducrohet2012-03-273-2/+37
| | | | | | | | | | JDK7 changes the default signing algorithm and breaks release builds where the ant script does the signing after building the apk. This changes the Ant script to use a custom task that uses the same code that is already used to sign debug apps. Change-Id: I0df7378a7a59b54ef6a17db363a2127736f4434e
* SDK Manager: fix doc updates not being visible.Raphael2012-03-091-20/+20
| | | | Change-Id: I993de075c265745d1db0732ae7936ce23dfd333e
* SDK Manager: Add Mips support.Raphael2012-03-099-8/+36
| | | | | | | (based on ae7878a5426e5df22634b449a76d59626d038713 and adapted to tools_r17.) Change-Id: If8312af7f385cbe6e066657ef7e63ab8fd758424
* Merge "NPW: Find samples in extras."Raphael2012-03-094-76/+261
|\
| * NPW: Find samples in extras.Raphael2012-03-094-76/+261
| | | | | | | | | | | | | | | | | | | | | | | | Changes: - the SdkManager can now list extras that contain a "samples" directory. - The NPW uses that to list samples from extras that match the requested API level. The name of the sample in the list also indicates the extra's display name. Change-Id: Id6609f53b9ba84126e36bc33e5675ec6a0284814
* | Ant build now sanitize jar files in setup task.Xavier Ducrohet2012-03-071-3/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Previously the list of jar files was sanitized (to remove duplicates) in the dex task, but this meant the full list (with duplicates) was passed to proguard when building in release mode. This changeset move the sanitization of the jar files in the Setup Task so that the script later only deals with a sanitized list. The means the content of libs/*.jar for the current project must be looked at in the task instead of later in the XML script. Change-Id: Ib5253b80ee7c1ded004bcdad6184e0900b7a7543
* | Merge "Figure out DX input path based on actual classpath."Xavier Ducrohet2012-03-071-5/+20
|\ \
| * | Figure out DX input path based on actual classpath.Xavier Ducrohet2012-03-071-5/+20
| |/ | | | | | | | | | | | | | | | | | | | | | | | | This synchronizes the previous work on figuring out the actual classpath for the library container and reuse this to figure out what goes into dex. Also use the classpath to figure out the java resources that should be packaged in the apk. Additionally, only add java resources by reading the output folder instead of the source folders as this ensure that exclusion patterns are respected. Change-Id: Iac742f4bdefab370ec3cf7d955736e84d58ead9c
* | Merge "SDK: generate repo using latest schemas."Raphael Moll2012-03-072-3/+16
|\ \
| * | SDK: generate repo using latest schemas.Raphael Moll2012-03-012-3/+16
| | | | | | | | | | | | | | | | | | | | | Requires dev.git change I250fe7a3 to build properly. Also requires Change Ia307af09 for addon. Change-Id: Ib0363f06ce2754c58b5f2ba31c4f0720b933f0d8
* | | SDK Manager: tweak addon comparison to support new schema.Raphael2012-03-071-23/+34
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This slightly tweaks the comparison between addons so that the SDK Manager list can properly support a list containing addons with solely <vendor> vs similar ones that have <vendor-id> and <vendor-display> without creating duplicates. Change-Id: Id1639f73466d7e3f9912e3a0d730bfc74444e27e
* | | SDK Manager: display tooltip for update packages.Raphael2012-03-061-0/+11
| |/ |/| | | | | | | | | | | | | | | When an item is both installed AND has an update available, this changes the SDK Manager tooltip to show info for both packages. This becomes particularly helpful when an extra or addon can suddenly change names after an update. Change-Id: Id96f161c0c4b3ace39cb00b6910f26080e6c15a4
* | Automatically add dependencies to Eclipse project.Xavier Ducrohet2012-03-021-15/+33
|/ | | | | | | | | add libs/*.jar from Library Projects, add Java-only projects only that referenced in Library Projects (recursively so that Java projects that reference other Java projects pull those in too). Also add jar files referenced by Java-only projects. Change-Id: Ic2b10107153e0576f5e6ba34d50bd3fef95c3fea
* Fix issue when a project and its libraries use the same jar files.Xavier Ducrohet2012-02-241-0/+442
| | | | | | | | | | | | | | | | | | | | | | | | | | This is only an issue in Ant because in Eclipse we don't automatically pull the jar files from libraries into the main project (we should somehow now that we have the Library Projects jar container that is dynamic). Right now we do a simple size/sha1 check on libraries that have the same name to figure out if they are the same version. If they are we only use one in the dex step (that notoriously fails to add the same class twice). If they are different we stop the build as it's an error (having two library projects depending on two different versions of a jar file should be an error as we can be sure the two versions are API compatible). For later: not use the file name only? find a way to version the libraries and to have them declare whether they are API compatible with older versions? Also added a hard-coded case for the Android Support Library. If both the v4 and the v13 are detected, use the v13 only as it includes the v4 already. New test apps. Three cases: - main and library projects with duplicate jar files that are identical - main and library projects with duplicate jar files that are NOT identical - main and library projects with v4 and v13 in the dependency list. Change-Id: I3a9abdcbec635d7c9d3228bdd105120f77178b27
* SDK Repository: add "beta release candidate" tag to XSDRaphael2012-02-222-5/+62
| | | | | | | | | This adds an optional integer>0 as "beta release candiate" to repository packages. This will be used in tools 18 to allow us to push beta versions of packages and still know how to update them compared to non-beta packages. Change-Id: I2f0d3cb75171bc23bce1eb511a4e3b86ca97245b
* Merge "ADT: Suggest solution to ADT version check error."Raphael2012-02-225-7/+44
|\
| * ADT: Suggest solution to ADT version check error.Raphael2012-02-225-7/+44
| | | | | | | | | | | | | | | | | | | | | | | | | | This amends the ADT version check to help the user either: - open the SDK Manager - open the P2 Updater - open the Android Preference On Windows the launch the *external* SDK Manager since eventually we know that ADT will lock something that would prevent the update from working in the first place. Change-Id: Ib20e4e1411b36e3cd794cccbc02518db0a40ced9
* | Split ProGuard file into two halvesTor Norbye2012-02-213-10/+25
|/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This changeset splits the proguard.cfg into two halves: (1) All the general Android settings go into $ANDROID_SDK/proguard/proguard-android.txt. This defines shrinking rules like keep custom views, etc. The crucial point is that this information is maintained and updated by Tools updates, so whenever new APIs are added to Android, or whenever bugs are found in the configuration such as flags needed to work with Dalvik, we can make the updates - we don't have old snapshots living on in projects. (2) Any project specific settings go to proguard-project.txt in the project. (3) The proguard.config property in project.properties now refers to a *path* of configuration files, which are all passed to ProGuard in the given order. The code which processes this setting will substitute android.sdk.home and user.home variables, so the path does not have to be hardcoded to point to the project-android.txt file. The default project templates have been updated to include a commented out configuration setting up proguard as described above. The default proguard file name was changed from proguard.cfg to proguard-project.txt such that it can be directly opened in Eclipse and to make it clear it's an editable text file. Lint was updated to find the Proguard file via the proguard.config property as well as via the old and new default names for projects not enabled with ProGuard. A subsequent CL will add a lint check which identifies projects containing the old setup (full local configuration) and offer to replace it with the new setup. Change-Id: I44b4c97a160114c2382f02f843c95486a0dc9d6b