aboutsummaryrefslogtreecommitdiffstats
path: root/ide_common/src/com/android/ide/common/resources/MultiResourceFile.java
Commit message (Collapse)AuthorAgeFilesLines
* Rename ide_common to sdk_commonSiva Velusamy2012-09-181-223/+0
| | | | Change-Id: I1b39ee439a532f3f6758be35b569948e2e906665
* Fix handling of @id/ resourcesTor Norbye2012-07-251-0/+6
| | | | | | | | | | | | | | | | | | | If you create a relative layout where one of the widgets create a new id such as @+id/button1, and then a later widget references this widget in a layout constraint using @id instead of @+id, such as layout_below="@id/button1", then it's possible for the resource repository to not update itself properly, and a subsequent layout editor render will generate error messages (can't find @id/button1). The problem is that the id parser was only looking up the resource repository for the @id reference, it was not also looking up the current resource file, to see if an @id reference is valid. This made it erroneously mark an error, and therefore return false from the parse method. This then had the cascaded effect of not updating the repository information from the parse, so the newly added id didn't get added to the maps. Change-Id: Iae3d215897525582579faf1c8ba64260215fec9d
* Update SDK codebase to JDK 6Tor Norbye2011-12-211-0/+1
| | | | | | | | | | | | | | | | | | | | | This changeset makes the SDK codebase compile with source=1.6 (which means it also requires JDK 6). This means that methods implementing an interface requires @Override's. It also means we can start using APIs like the ArrayDeque class and methods like String#isEmpty(). This changeset looks big but the change is trivial: it's basically adding @Override in all the places that need it, along with some other automatic Eclipse cleanup in certain files (such as reordering imports where they were incorrectly ordered (because older versions of Eclipse didn't always handle inner classes right)), as well as cleaning up trailing whitespace and removing some $NON-NLS-1$ markers on lines where there aren't any string literals anymore. This changeset also sets the source and target JDK level to 6 in the Eclipse compiler .settings file, and synchronizes this file to all the other Eclipse SDK projects. Change-Id: I6a9585aa44c3dee9a5c00739ab22fbdbcb9f8275
* Clean up layout and menu file scanning codeTor Norbye2011-09-021-8/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This changeset fixes some issues around the new lazy scanning of layout and menu files. First, it partly fixes "19657: AAPT errors aren't shown when adding an error to a valid XML file". With the new optimization of not running aapt on layout files where no ids have changed, we would no longer pick up changes where an invalid or nonexistent resource is added. We now perform some basic validation of resources as well as XML parsing errors. Second, it fixes a bug in the id before and after comparison used to determine if aapt needs to run: The code would call map.keySet() before and after the ids were added, but this resolved to the same keyset so the equals comparison was always true regardless of the content. Third, it fixes an infinite loop issue with library projects, and avoids doing unnecessary classpath modifications when there are no changed projects. Finally, it changes the "needsId" flag. The state of whether aapt needs to be run was stored per repository, and there is a bug where it does not get cleared properly which can yield a compilation loop. This changeset introduces a new "ScanningContext" object which is passed down to the various resource file updater methods. This context object now holds the needsId state object (which is renamed to "needsFullAapt"), and it is also the object where errors can be registered. Change-Id: I5632612c2d93e2f10f0803e9223921adb67602be
* Precompilation only executes AAPT when necessaryJosiah Gaskin2011-08-181-3/+43
| | | | | | | | | | | | | | | | | | | This change adds resource tracking to the ResourceManager. Each ResourceRepository now has new methods: void markForIdRefresh() to set the repository as "dirty" boolean needsIdRefresh() to check whether the repository is dirty void setIdsRefreshed() to set the repository as "clean" During the precompilation step, the PreCompiler will query the ResourceManager to see if any of the repositories included in the build are marked as dirty. AAPT will only be run if one or more dirty repositories are found. Repositories are marked as clean when R.java is regenerated and IDs are set in ProjectResources. Change-Id: I575ab819702508eacd247b282c3de8979f2f0ab9
* Fix value parser to handle attr values not in declare-styleable.Xavier Ducrohet2011-06-241-2/+3
| | | | | | | Also change the layoutlib sample code to properly get the list of framework attr flag/enum values. Change-Id: Ie0bf126a0fab574d94d0f86b7b2f8581cf4eaae3
* Move classes to ide-commonXavier Ducrohet2011-03-171-0/+175
ResourceFolder/File and children classes (single/multi file) ResourceItem and children classes ResourceRepository (base and framework, project stays in ADT for now) All the ResourceQualifiers and FolderConfiguration Change-Id: I5adc9bdc4886a8fa0ab44860763d594cf7af4bd5