| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
|
|
|
| |
Also make it so that older layoutlib that are using API5 return the
value through reflection (done in LayoutLibrary.)
Change-Id: I3a32666e525f0f1d37a13e670d1d1c659b8e2027
|
|
|
|
| |
Change-Id: I29caadc8cb31c4a3aab0863a4fec16534b9bc900
|
|
|
|
|
|
| |
Also update the IProjectCallback to handle expandableListView.
Change-Id: I36ca8733182bbd9d169fee3e709ebc532fef7b1e
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This changeset changes the way the layout editor picks themes when a
layout is opened. It used to just pick the first available theme in
the theme chooser.
Now it performs the following checks, in order:
* Does this layout have a persisted theme setting from a previous run
of the tool? If yes, use it.
* Can the activity for this layout be determined? If so, look at the
manifest registration for the corresponding activity, and if it
specifies a theme, use it.
* If not, does the manifest specify a default theme for the project?
If so, use it.
* If not, is the target SDK version (or the minimum SDK version, if
the target is not specified) at least API level 11 or higher? If so,
the default theme is "Theme.Holo"
* If not, the default theme is "Theme".
* If the file to be opened is included from some other layout, use
the no-decorations versions of the default layouts, e.g.
Theme.NoTitleBar or Theme.Holo.NoActionBar.
* At the end of this resolution, the computed theme is stored as the
persisted theme setting for this layout, so the above algorithm will
only be computed once. We might want to tweak this such that it
distinguishes between a default computation of a theme and a manual
user choice of a theme.
* If the file is opened as "Show Included In" (e.g. rendered within an
outer file) then the theme chosen is the one for the outer file.
During startup, this information will be asked for each and every
layout being reopened, so there is now a "ManifestInfo" class attached
to the project which keeps manifest information around. It checks the
timestamp of the AndroidManifest.xml file and refreshes its
information lazily if necessary.
All themes mentioned in the manifest are listed in a special section
at the top of the theme chooser (below the entry for the default
computed described above).
The code to look up the associated Activity of a layout is using a
simple heuristic: it looks for usages of the corresponding R.layout
field, and prefers references from methods called onCreate or in
classes whose superclass name ends with Activity. I tried a different
approach where I searched for usages of Activity.setContentView(int)
but this failed to identify a number of cases where the activity was
doing some simple logic and didn't pass the layout id directly as a
parameter in setContentView, so I went back to the basic approach.
Change-Id: Ibd3c0f089fefe38e6e6c607d65524990699c86d3
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Adds a new refactoring, "Extract Style", which will show the user the
attributes for the current selected elements (or if invoked from an
editor context, the attributes overlapping the current caret or editor
selection). The user can select which attributes to extract, and these
are then added as a new style in the styles.xml file in the project
(which is created if necessary). The user can optionally replace the
attributes that were extracted, and the user can also optionally set
the style attribute on the elements to the new style. (Both are on by
default.) This is integrated with the refactoring quick assistant as
well.
Change-Id: I0504e86a824b00730482607150a879ff28233618
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This changeset adds support to the Go To Declaration code for styles.
Style strings are a bit different from resource URLs - they can have
an @android: prefix, but they don't specify a resource type. For
example, go to declaration can now jump to the value in the parent
attribute:
<style name="BrowserTheme" parent="@android:Theme.Black">
This will show the Theme.Black style definition in the SDK's
styles.xml document.
In addition, the hyperlink resolver can now also link to fragments of
an attribute value. In particular, in the above, if you point anywhere
to the left of the ".", only the @android:Theme range will be
selected. This lets you go to parents, since styles inherit from other
styles by adding to them with dots.
Third, the hyperlink resolver can now link to resource urls that is in
the content part of XML documents (e.g. a text node, not an element
name or attribute value). As an example, you can now jump to the color
defined inside this style element:
<style name="CustomTheme" parent="android:Theme.Light">
<item name="android:bg">@color/custom_theme_color</item>
</style>
Finally, this changeset adds unit/plugin tests for the hyperlink
resolver, which asserts the expected list of matches, and the expected
editor context when the default link is opened.
Change-Id: I73757ec78405f7c711e13387d0bb046f698799f1
|
|\ |
|
| |
| |
| |
| | |
Change-Id: I464fe3f94e701e619b474f82aaf84ee04d158e71
|
|\ \
| |/ |
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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
|
|\ \
| |/
|/| |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Also fix some makefiles to make sure the notices are
picked up.
- move the makefile outside of the source folder.
- resources are now in the source folder directly instead
of being inside src/resources. It's much simpler.
Change-Id: Ica8ee4c2bc8a9b035d23fc914d4137cdca7e567d
|
|/
|
|
|
|
|
|
| |
This can be a matter of personal taste, but I find it a lot
more readable to write an if {} else {} sometimes, and it's
perfectly valid, so really it shouldn't be marked as a warning.
Change-Id: Iac1b9bd5f9602b5018f7432422e0a083f4836490
|
|
|
|
| |
Change-Id: I9837714c5673d43fa7108b16ab264f1017c4bd3d
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- (I)ResourceRepository is now a common class instead of an
interface. This contains most of the code to control
a repository (which was extracted from ProjectResources)
ProjectResources extends it adding minor features such as
library support, and inline ID definition.
FrameworkResources extends it adding support for public
resources (which used to be duplicated and dispersed
in weird places).
Changed the way resources are reloaded on resource change event.
Instead of marking the resources as modified (using
Resource.touch()), the resources are now parsed as the files are
processed during the resource delta visitor. This makes more sense
as there are now other listeners to the resource changes (hyperlinks)
that access the resource list in their listeners, which wouldn't work
previously.
This also makes the code cleaner as the previous method had to query
the repo for items and return a list of new ones, which was kinda
crappy. The new code is much simpler, as is the post update process.
- ResourceItem is now the base class for resource items. It includes
all the small methods that were added by all the child classes or
interfaces.
Project/ConfigurableResourceItem are merged into the based class.
IIdResourceItem and IdResourceItem are gone and replaced by a
simpler InlineResourceItem.
FrameworkResourceItem is a simple override for framework resources.
- Also improved the API of a bit for the resource repository, making
more use of unmodifiable lists and emptyList/Map()
Change-Id: Ie3ac1995213fed66153c7e7ecbdd170ec257be62
|
|
|
|
| |
Change-Id: Ib12b25d7c7a6630075cfe4f5e757a10673305220
|
|
|
|
| |
Change-Id: I5faa155393466e1bc4b2fc1e9417cde91a8be456
|
|
|
|
|
|
|
|
|
|
|
| |
RenderParams is now a base class. SessionParams extends it
(and contains the layout and the rendering mode which are not
part of the base class).
DrawableParams is used for the new action and adds a reference
to a ResourceValue.
Change-Id: Ieacf4da91fda95df1d25a32ae0953bd9d8028113
|
|
|
|
|
|
|
|
|
|
|
|
| |
This allows the layoutlib to render system/title/action bars
as a window decor like it would look on the device.
This can be disabled with RenderParams.setForceNoDecor().
(BTW, Params was renamed RenderParams too)
Also minor update to the API by replacing an int with Density
since the enum is now accessible to the API and layoutlib.
Change-Id: Ic37770a9276d12af90c60199a84b04cb64e7c3a1
|
|
|
|
| |
Change-Id: I1f56ab470874e39dad8659d15a3699b83f1ac658
|
|
|
|
|
|
|
| |
Move all the resource query methods that returned an array of 2 Strings
to return a pair of ResourceType and String.
Change-Id: I6b8447aa27005de786e2defef81ad88a72363523
|
|
|
|
|
|
|
|
|
| |
Move ResourceType into resources.jar so that it's accessible
to layoutlib.jar
This is cleaner and allows us to us more efficient EnumMap objects.
Change-Id: If11cbc69ae3ca8bd6c96e6d0ef402570a07af16f
|
|
|
|
| |
Change-Id: Iebde7536a0007898387dc7bb5d943e3767140a3c
|
|
|
|
|
|
|
|
|
| |
The build properties are needed to populate android.os.Build
The multi ViewInfo results are needed to access all the top
level children of a merge layout.
Change-Id: I49638ae76aaf9e83dc4a0a73c3e7966d7b0a14a3
|
|
|
|
|
|
|
|
|
|
|
| |
Also move the LayoutLib API to use a new class for all resource
info instead of 2 maps, one string, and a boolean.
The goal is to move resource resolution code into ADT
so that we can use it to better display resource information
in the UI.
Change-Id: Iad1c1719ab0b08d1a7d0987b92d4be1d3a895adf
|
|
|
|
| |
Change-Id: I15ae7efd2d482bd5bc368983a1745d9026f964b2
|
|
|
|
| |
Change-Id: If1a01daa87561f474b4c43d6c404a3c42e98d485
|
|
|
|
| |
Change-Id: I15cc5becdf139a7eeb01309d0d903a35ba773ed9
|
|
|
|
|
|
|
|
|
|
|
|
| |
We should never only log an exception with no associated
message.
Also, I've found several case in the layoutlib where there
is a message in place of the tag.
This new API makes it more clear that there's both a tag and a message
since both are required for error()
Change-Id: I6d5f45c07b1cb8df96311d930170526bb729fae6
|
|
|
|
| |
Change-Id: I23a87efb586d02d571118a6f9e49628fc850d8cb
|
|
|
|
| |
Change-Id: I28efe429925a77fd10b76bb54519ae9d42900e52
|
|
|
|
| |
Change-Id: I40abba4c4f786755c2a1c0e70df4d7bc08e2bcde
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Move (Style/DensityBased)ResourceValue into layoutlib_api
and make the API use that instead of the interface.
We'll get ride of the interfaces once only obsolete platforms
use them.
In ide-commons also got rid of LayoutBridgeWrapper and moved
the code in LayoutLibrary which does not expose the bridge
anymore, and instead expose an API similar to the LayoutBridge
class.
Updated ADT to use LayoutLibrary directly instead of going through
LayoutLibrary.getBridge(). This allows us to hide some
things like querying the API level and relying instead on
Capabilities (with special handle for legacy bridges).
Also added an error message to LayoutLibrary to display why
it may have failed to load.
Added a check to the API level and don't load layoutlib
that are more recent than the client.
Change-Id: Ie4e615d8d32485ee577bb88e95cd3f562bf590cb
|
|
|
|
| |
Change-Id: Ie5cdd59663ef469204f693c888231a2476d954f4
|
|
|
|
| |
Change-Id: I8fe107397c2322cca979e7953d2be5933a59d0bf
|
|
|
|
| |
Change-Id: I1cb80da55f9ff16d0422eb6c4767448a4691b74b
|
|
|
|
|
|
| |
Also add an optional data bundle to SceneResult.
Change-Id: I9f9d4ca1f1f05d536a87a005a7939a6d42d0d8a4
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Previous API was a single on/off to let the layouts expand at
render time depending on how much space they needed.
The new API can now control expansion is horizontal and/or
vertical (or not at all)
Basic implementation in the editor, with a manual detect of
"ScrollView" as top element. We should make the ViewRule handle
this somehow.
Change-Id: Idc503bc0d1d3df98fbf01cc84625952ca55a8afb
|
|
Change-Id: Id243fe66e2ce577bc821ca454bca18444ebb5e7d
|