The UI workflow:
- user selects the new "Create project from existingsample" radio button
- user selects an SDK target in the NPW
- a popup is filled with all available samples
This also fixes 2 edge cases:
- when the selected sample contains a build|default.propertie that is
a base of the currently selected SDK target, don't reset it.
- when the user manually changes the project name or the app name for
the sample, simply empty the fields and the next selected sample
will recompute the adequate names. Any non-empty user input is never
overridden.
SDK BUG 2121819
Change-Id: I69afafa460b86942046ef6baca3d4c7ee7dbe97d
While the test is in the java package as the parser, it's in a different
plug-in and this prevents accessing package-protected methods.
Change-Id: Ib17765095e4da518d62ee65cb9e1987d0e22be6e
It was a display issue only, meaning the actual XML node was
being deleted but the Ui model was not updated properly. The
actual cause is that this is a mandatory node, and mandatory
nodes must stay as "fake nodes" in the Ui model. However
only one such node needs to stay in the hierarchy.
SDK BUG 2147112
Change-Id: I68e3d343bb95169865ad8dcad77004cbd51fafc3
The icon in the templates of ADT was medium density only.
I added new densities (high and low), as well as updated to
the new Eclair style. Also added a version for Ant project.
Updated ADT and sdklib to deal with creating new projects
with all 3 icons.
In case of Ant project, this is done only if the icons
are present in the target platforms.
For ADT, this is done only if the project target donut
or later. Older project still have only one icon located
in drawable/
Change-Id: I77069a1e4902ef395d490526aabc40a26e33d4ca
It correctly only refuses to edit @string/blah now.
This CL also does a bit of refactoring; I extracted some methods
and a class to make it a bit easier to read.
BUG 2066460
Change-Id: I95a34d28d6390ab0cc075f05ea83ceec04993ae9
When adding the parsing of the device XML files, I mostly tested with a
layout file already opened when Eclipse launched.
Well it turns out there's a slightly different code path when opening a file
*after* Eclipse has launched. The load of the device UI in the config
selected caused a rendering before the XML model was loaded which ended
up in an NPE in the recomputeLayout method.
Additionnally, I hadn't finalized the code for the GLE2, so this brings it
in line with the GLE1.
Change-Id: Ic86de6e91ca13793aceecb5706bc963edddb9241
The issue came from a lack of device configuration and
missing default versions of some resources. We know use
an ADP1 configuration to choose the resources used by
the rendering.
Change-Id: I097b444e4fdc5572cfc53293a3215f1382f5d49c
Add-ons are expected to provide a file called devices.xml in their root
folder. The XML schema for this file is
eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/sdk/layout-configs.xsd
I slightly fixed the schema so that normal screen size use the token
"normal" instead of "medium" to match the resource qualifier.
To round up the feature, the following changes are included:
- getEnum in the resource qualifier enum has been made public. There's no
sense in keeping it private and it'll help with people possibly using
valueOf which behaves differently (case sensitive so
ScreenSize.valueOf("normal") fails, while getEnum on the same string succeed.
- Updated the device configuration UI to deal with missing list of
devices while the SDK loads.
Change-Id: Ib1b01007d2ae7fd6398172c3549b2686c33d48be
- Make the distinction between the activity class name, manifest entry,
fully-qualified name, and tested activity for the template place-holders.
Test activity names now directly contain the full name (including the
"Test" prefix) instead of the template adding it.
This is required by the new 'create test-project'
- New action: create test-project
This requires a path to the main project. It reads the package, activity
name and target from the main project.
The activity is read from the manifest and can be in a more complex form
than previously expected (for instance .subpackage.MyClass, instead of
simply MyClass). This is what required the re-work the activity related
template place holders.
Options:
-m --main Location path of the project to test, relative to the new
project [required]
-n --name Project name
-p --path Location path of the new project [required]
Example: for 2 projects MyProject and MyTests located in the same folder,
calling from their parent folder.
android create test-project -p MyTests -m ../MyProject
- build.properties now only gets application.package for older targets
as the new one get it directly from XPath
- Remove AndroidXPathFactory from the anttasks project as it was already
in sdklib which is a dependency.
- Removed IntelliJ templates for the SDK. We haven't supported them for
a while, and now that IntelliJ has built-in support for Android, it's
not that useful anymore.
While there is the command line parameters for 'update test-project'
it's not yet implemented.
Change-Id: I663d4cb7f439bb2abfe866f893e58f4d13aff975
The only changes to the original XML sample:
- the root element is called "layout-configs" (plural for container).
- the <default> and <config> elements must be defined in that order:
- 0..1 of <default>
folowed by
- 1..n of <config>
It's invalid for the <device> node to be empty.
default/config are defined by a <xsd:sequence>, which imposes the
strict ordering. At first I used an <xsd:choice> which does not
impose any ordering but then it becomes possible to define an
empty <device> element. I'd rather live with the strict ordering
(which also makes sense anyway) and enforce non-empty <device>
elements in the schema.
BUG 2138329
Change-Id: I581afb1d72825ae79df00d81c74c80a2a18680ad
This is only supported in Eclair+, so the toggle button
is disable if the edited file is donut or before.
Change-Id: I8bf1f8a8aa3604f269cb226d788c5e1438a5ae0b
This is for both Ant and ADT.
For Ant, also added a check for non-integer values when the platform
is not a preview.
BUG:2118374
Change-Id: Ic8ec533d66a31d9e4b51c9c38b5eaab97bca7414
This will let the layoutlib know when to scale bitmaps
that are not in the native density of the rendering.
Change-Id: I08c99666460b5b5a3ed8d0aac7fa1b7c0136fd6b
New button allows to start/stop tracing. When clicking stop, DDMS downloads
the trace file and starts Traceview.
Also refactored some common parts of the HPROF and tracing handlers into a
common class. The goal is to have a default, extensible implementation
of the HPROF handler that DDMS and the plug-in can reuse. This will reduce
duplicated code.
Change-Id: Ifc48926c7f6f1c3ea49a4aa94053664be83cbb06
The action taken on successful HPROF dump can now be configured from
the plug-in preference to be either "save to disk" or "open in eclipse".
If a plug-in supporting .hprof files (such as Eclipse Memory Analyzer Tool)
is present then the file will just be opened in the tool.
"save to disk" does not convert the file, "open in eclipse" does convert
the hprof file (using hprof-conv present in the SDK)
Change-Id: Iceb347abb2af5a2979b6028c22dcbdc3bc7250ca
This allows GEP to display both the latest error and the latest
successful rendering. The error still needs an icon and the
canvas will need to be grayed or something.
Also the LayoutCanvas will directly use the ILayoutResult and we
won't need to custom EditData in UiElementNode so the correspond
method is @deprecated (but obviously still supported for GLE1.)
Change-Id: Ia3afed836755dbd84a4511eaed0782c85a383ac9
This uses the (new in cupcake) VM command through JDWP.
Older VMs are detected through the (also new) 'FEAT' command that notifies
which features the VM supports.
The hprof file is right now saved in /sdcard. Due to donut+ apps not having
the SD Card permission by default, we may need to change this in the (near)
future.
Upon completion of the dump by the VM, DDMS will give the user a file selector
to choose a place to save the file on the host machine.
Future improvements: run (our own) hat, or hprof-conv and a standard hprof
tool (Eclipse MAT integration for instance). This should be configurable
by the user.
Change-Id: I33696b0263e3d0788ad5d90cedf3cd17393d2f9b
This CL represents the base for the new "Graphical Editor Part".
First, GLE2 has been renamed in GraphicalEditorPart. That's the
final name, I swear I won't change it again (until next month that is.)
The editor part has 3 composites: the top ConfigConfiguration
(same as usual, reused as-is), a new PaletteComposite and a new
LayoutCanavas. This last one displays the rendering image and
will deal with interactivity.
The LayoutCanvas is actually stacked with a label which displays
the rendering error. After a rendering, either the error or the
canvas is visible, depending on the success of the operation.
That would make it easier to have a different mechanism, for example
the error could be next to the last known rendering, they don't
have to be mutually exclusive.
It is worth noting that GraphicalEditorPart is 95% similar to
the GLE1, reusing all the glue code that we had to handle
layout requestes, refresh requests, sdk/framework load listeners,
configuration and file input changes, etc.
Both PaletteComposite and LayoutCanvas are currently embryonic
at best, just to make sure the editor part is structured correctly.
Change-Id: I36c2ae4d85a68e68a349adc63a718f06375e12c5
Resource filters are used when generating additional APK containing only
specific resources.
The previous UI allowed for any type of filters, but we are moving to a
simpler way with fixed filters.
The first one is the density. Selecting the filter will generate 4 APKs per
application: default (all resources), hdpi (only hdpi/nodpi and default
resources), mdpi, ldpi.
This is just based on Eclipse static analysis of potential null pointers.
It doesn't mean we were ever going to have any NPE there.
Change-Id: I2a326048d2eb6afff7598f9300f48e35495ff3c2