History log of /sdk/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/AdtPlugin.java
Revision Date Author Comments
4c68450b4c94ac7fa102b6c62a1028e9b12dca2e 22-Jun-2014 Xavier Ducrohet <xav@google.com> Fix zipalign/hprof-conv issue in ADT.

These files are now in plat-tools. also make tools 23
depend on that new plat-tools and adt/tools 23 require each
other.

Change-Id: Icdcf3b9f7f0787d385a930f7ebecfcf7049eb3e0
723925336525f29f71688259a53077428267e066 17-Mar-2014 Raphael Moll <ralf@android.com> ADT: fix spurious SDK refresh when opening layout editor.

SDK Bug: b.android.com/67084

Reason: we recently switched SDK Manager location to a File
instead of string. ADT tries to automatically refresh the
SDK when it has changed or its path has changed and the
comparison between a File-to-path and the original path
string from the pref now differed by an ending /.

Also renames the legacy method to avoid confusion.

Change-Id: Ie4349075528fb552efe10cac4b4462b4bfd3a13f
a462008893000a00ea8070b463e915c341faa269 28-Aug-2013 Xavier Ducrohet <xav@google.com> RS Support mode in ADT.

Change-Id: Ib8e1e60a972ce99294040c3cb7595927d52b5717
c06307244878b41485b1191ce9b6befb09c363e1 22-May-2013 Tor Norbye <tnorbye@google.com> Ensure that build-tools are installed in IDE version check

Change-Id: I9163ec770179dabfc370b9011870a46f5524d289
5d66afa2ddf3be3dd7066bd1683871a9ece47fd9 25-Apr-2013 Xavier Ducrohet <xav@android.com> Fix issue when fixing classpath on project opening. do not merge.

Bug: 54638

(cherry picked from commit cb00651a1388b745c8e0e15c7cb51838a31bc220)

Change-Id: Id3bea8ba7a90dfe6631a142f10dafab1a38ecf51
cb00651a1388b745c8e0e15c7cb51838a31bc220 25-Apr-2013 Xavier Ducrohet <xav@android.com> Fix issue when fixing classpath on project opening.

Bug: 54638
Change-Id: I568a52132275d3c720650dedae871ee4f1fd3df7
a5a0de47100d63fedf525dfb7d861c0db944a291 20-Mar-2013 Xavier Ducrohet <xav@android.com> Add support for build-tools in ADT.

To be compatible with older projects, the projects do not
have to declare which build-tools to use and instead use the lastest.

Change-Id: Ic09a4a8f53109f36c4fed60b8f848f9b4db686c4
53bee7d7bccef7dda55a979b180d88c782f8ff0c 08-Feb-2013 Tor Norbye <tnorbye@google.com> Update nullness annotations

Also remove test dependency on ddmuilib project

Change-Id: I90c62bcfeca86110a6604ebda4425369aa3cc889
13945169f077dcd1260fae9c532d9c1e57cb98e3 16-Nov-2012 Tor Norbye <tnorbye@google.com> Fix rename package refactoring

This changeset fixes a couple of bugs in the package rename
refactoring code, including
34466: Android refactoring participant gives NPE

It also fixes a bug in the move type refactoring, and adds
unit tests for package rename, move type, and rename type.

Change-Id: I4f43aabbcf1aeddc6c27011bfcffbe5a49c42372
4b4a3cd814560bc51e1e0fb8cb1772bd03c087bc 09-Nov-2012 Tor Norbye <tnorbye@google.com> Add AdtPlugin.getShell()

A lot of SWT and JFace methods require a Shell, and we had a lot of
the following calls sprinkled throughout the codebase:

AdtPlugin.getDisplay().getActiveShell()

However, getActiveShell() can return null in quite a few cases (where
it's not necessary), for example during focus transfers.

This CL adds a new method, AdtPlugin.getShell(), which first tries the
above call, but if that fails, will try harder to find another valid
shell (e.g. the first shell in Display.getShells()).

Change-Id: I3214ad56042be6eaf9b0fe0843c820e973fba8c0
1c811c9bbfd08e511ccd95cddbee5f6b857f4d3e 26-Oct-2012 Tor Norbye <tnorbye@google.com> Update compiler flags.

Turns off the ability to use @SuppressWarnings with optional
errors is available, but off by default (see Eclipse issue 392875).
This turns that off, makes missing enums in switch statements a
warning, and synchronizes the settings file to all projects (except
tests.)

Change-Id: Iad7060523b6ee2cbbca97e0a6ffedb264b185222
a8b2efe8cda5dd75adea2dc29dfcfb11c27ef427 24-Oct-2012 Siva Velusamy <vsiva@google.com> Start parsing SDK after the workbench is loaded.

This CL moves the initial parsing of the SDK to after
the workbench has been loaded. This allows early startup
code to specify the location of bundled SDK if necessary.

Change-Id: I21d98531dc6ddee0a615cbfc78c5aa470a6770ef
2403ebca5b60cf0c21bfc64a8588102028187349 23-Oct-2012 Tor Norbye <tnorbye@google.com> Revert "Don't warn about missing SDK when bundled"

This reverts commit df23dac52a3af6e7e4dd485072a125ab3794d9ac.
df23dac52a3af6e7e4dd485072a125ab3794d9ac 22-Oct-2012 Tor Norbye <tnorbye@google.com> Don't warn about missing SDK when bundled

Change-Id: I88d76329ab5f3afa4fda338c170a78bef1939165
a39da6f152565726aaea41bc90d7e86f8759ba19 21-Oct-2012 Raphaƫl Moll <ralf@android.com> SDK Manager: fix SWTMenuBar crash on MacOS X Mountain Lion.

The bug happens when the SDK Manager is open using the embedded
class from within Eclipse 4.2 -- the SWT used is then the newer
3.7 which doesn't have the same cocoa interface for menus.

The fix is threefold:
- If the cocoa enhancer fails, revert to the generic one. This doesn't
quite help here since the crash is actually when the native handler
is invoked but the setup is fine.
- Implement a new enhancer on top of the newer SWT 3.7 APIs that lets
us access the About and Preference menus on Mac. That was the whole
point of the enhancer workaround since SWT 3.5 an 3.6 don't have
access to these menus directly. This new enhancer is used if SWT
version 3700+ is used on Mac.
- Finally the crash only happens when using the embedded version of the
SDK Manager within ADT. When possible this uses the forked
standalone version. It will still revert to the embedded one if ADT
is started without any tools.

The new enhancer for 3.7 on Mac is sub-optimal: since it *adds*
a listener to the about/preference Mac menus, that means when it is
invoked from within Eclipse these menus will generate 2 events,
e.g. bringing both the Eclipse preferences and then the SDK Manager
preferences. To support this case properly, we should detect this
runs from within Eclipse, not change the about menu and instead
integrate the sdk manager pref as a panel in eclipse's prefs. A
cheaper workaround is to revert to the default generic enhancer
that will create an options menu. Maybe for a later CL.

SDK Bug: 38640

Change-Id: Ib1588e401616548a5dc9eb216d3c35b579d3950b
db787b23ecb6f88cf9eca29b9bd91450075fc75c 04-Oct-2012 Xavier Ducrohet <xav@android.com> Change the global monitor to handle non android project.

Project listeners don't receive notifications on non-android
projects.
file/folder listener have a boolean to tell them what the
project is.
Raw listeners have to check it manually so the only
user now does so.

Change-Id: I7068176099d28d979d31070854a2a646bca1204e
fe51dba2aa25e559786e5da315d4db714ffe7559 12-Sep-2012 Tor Norbye <tnorbye@google.com> Support separate layout editors for a single layout resource

This changeset changes the "reuse" behavior of the layout editor to no
longer reuse the same layout editor when you are switching between
alternate layout files for the same layout resource, such as
layout/foo.xml and layout-land/foo.xml. This lets you more quickly
switch back and forth and inspect differences between the layouts,
etc. There is also an option in the Android > Editors panel to turn on
single editor sharing again.

The biggest part of the changeset, by far, is a cleanup of the
ConfigurationComposite class and associated code. This was necessary
not just to support the above feature (where we need to "back out" UI
changes when you've made a configuration edit which results in a
different file getting opened), but it's also an important preparation
for multi configuration editing, where we need to be able to switch
configuration settings in and out of a single configuration editor,
etc.

The configuration data itself is now in a separate Configuration
class; the UI is in ConfigurationChooser, and the configuration
matching code is in ConfigurationMatcher. There's also a new Locale
class to track language/region pairs instead of using 2-element
ResourceQualifier arrays. The various menu listeners are also in
separate UI classes now. While there are new classes, most of the
configuration matching algorithm is unchanged, just moved to a new
class and the UI syncing and configuration data lookup replaced.

Bitmasks are used to handle configuration changes, such that updating
multiple related attributes (e.g. a rendering target change also
causes a theme change if say Holo isn't available) can now be processed
just once with a single change call.

(Various other cleanup too.)

Change-Id: I04ac969f46824321be3db0c487ef077c03cc6012
12d4581faa6438941e65a9dc83213be34c6ca970 13-Sep-2012 Tor Norbye <tnorbye@google.com> Constants refactoring.

This changeset moves most constants into the SdkConstants
class, and gets rid of AndroidConstants and LintConstants.
It also migrates all non-ADT specific constants from
AdtConstants into SdkConstants. It furthermore moves various
other constants (such as those in XmlUtils and ValuesDescriptors)
into the constants class. It also fixes the modifier order
to be the canonical modifier order (JLS 8.x).

Finally, it removes redundancy and combines various constant
aliases such that we don't have both NAME_ATTR and ATTR_NAME
pointing to "name", etc.

Change-Id: Ifd1755016f62ce2dd80e5c76130d6de4b0e32161
09c422e18af7e454a42c1ef71d6dd8dd2528ea61 01-Sep-2012 Tor Norbye <tnorbye@google.com> Improve render exception error messages

When exceptions are encountered during layout rendering, the user
experience isn't very good - the exceptions are sent to the IDE log,
and the layout editor view adds the error message from the exception
(which can sometimes be something like just "2", which is the case for
an ArrayIndexOutOfBoundsException for example).

This changeset improves this a bit:

* First, when the error message is just an exception error message,
it's prefixed by a message stating that an exception was raised
during layout rendering.

* Second, the first exception encountered is now shown in the layout
editor itself. Only the frames that are part of the android view
hierarchy is shown; all the frames from layoutlib and on down into
the IDE are omitted. Frames that are probably part of the user's
code (meaning they're not in the android.* or java.* namespaces) are
hyperlinkable.

* This also includes exceptions encountered during class
initialization. In this case, the tip message that View#isInEditMode
can be used to do conditional code is displayed in bold.

This changeset also fixes some bugs in the SourceRevealer such that it
can handle constructors, and such that it will use the line number to
pinpoint a line within a method (as long as the line number is in the
correct range).

Change-Id: I43b635eb24b8e0e64988958c56bdb7dbc1af7221
ec0dfbb255330df32eaafb5d785af458ef9a660c 31-Aug-2012 Tor Norbye <tnorbye@google.com> Close XML editors when files are deleted or projects are closed

The existing hooks for closing the editor when the underlying file is
deleted was not working correctly, and was inefficient (since each
editor added their own global resource listener, so every editor would
find out about every other editor's file changes).

Instead, this generalizes the single editor listener which was used to
initialize editor types such that it also listens for deletion, and
then finds any open editor mapped to that file. It also hooks up to
the pre-close events for projects and closes all files related to the
project as well.

This will hopefully fix this issue as well:
20836: Can't delete a layout XML via Package Explorer > Delete if it
has an error

Finally, it removes a bunch of now obsolete logging code for an issue
which seems to be permanently fixed.

Change-Id: I90b38984639a605755f2d67ca2413cc925f730d1
09407f74000f057774f85cfd414e86909022eca0 21-Aug-2012 Tor Norbye <tnorbye@google.com> Fix nullability annotations

Eclipse 3.8/4.2 requires that any method which overrides another
method with a @NonNull parameter (see
https://bugs.eclipse.org/bugs/show_bug.cgi?id=381443).

This changeset adds @NonNull on various overriding methods in newly
added code such that Eclispe 4.2 doesn't show errors.

Change-Id: Ice4a4b4dc31ba68c4e0911bb37c15da090076a0d
ae6a209f6f4030e1ebe20118f9455547e4cd50fc 17-Aug-2012 Xavier Ducrohet <xav@android.com> Unify all loggers in the sdk tools.

Removed ILogger from ide_common
Removed ISdkLog (and implementations) from sdklib

Moved all existing code to com.android.utils.ILogger
which is located in common.

Change-Id: Icd674d4b8d10f6ae8b60a83acb43cc53c7a52137
86f78976ed9cd29c76dea973b6a2b6262f7cd98d 16-Aug-2012 Raphael Moll <ralf@android.com> ADT: Detect when SDK platforms/addons might have changed.

This adds a new functionality in SdkManager to keep
track of the existing platforms/addons folder and
detect later whether they might have changed.

The check is a quick sanity check done on the presence
of the target directory, its last-modified timestamp
as well as the one of the source.properties.
Whenever an SDK Manager instance updates an existing
target or add/removes a new one, a change will be detected.

Non-goal: this does not trigger when a user manually
modifies the content of a target (e.g. its data files).

A method is added in AdtPlugin to reload the SDK if the
above method detects the targets have potentially changed.
This is then used when there's a user interaction with
something that depends on the latest state of the SDK,
namely: opening XML files (layout, manifest, etc.) or
opening a wizard (AVD manager, new project, new template.)
These wizards already register for sdk/target change
listeners and are notified asynchronously if the SDK has
changed and is refreshed.

Change-Id: Ia343c26321c0cb39c28a7c5d570c94e543344401
81cefe2a26dd6db8a878e30874d12cdcbff0e83b 11-Aug-2012 Xavier Ducrohet <xav@android.com> More refactoring.

Move stuff out of sdklib into common and ide_common.
Remove androidprefs and move the one class into common.

Change-Id: I71d126a13cf2ba413692e29616f4968a37d7b33a
dc7f5fb6871fb6f36ec4fec397bf2946a98f937f 10-Aug-2012 Raphael Moll <ralf@android.com> ADT: run external SDK Manager.

When the user invokes the SdkManagerAction (via the icon toolbar)
this now runs the external SDK Manager (instead of the direct
Java version).

If the SDK isn't set properly, this triggers the SDK check
in AdtPlugin. This check tries to display some help to setup
the SDK -- typically opening preferences. If for some
reason this check were to suggest to run the sdk manager
there's a fallback to using the internal version.

Also when starting the sdk manager as an external app on
windows there's a 2-3 seconds delay before the SDK Manager
window appears. To give some feedback to the user that the
action is on-going a jface progress dialog is shown that
will automatically close 3 seconds later.

Change-Id: I1aae5dbc5ede6299fc95f81d8c3a94288861d55c
8dcd0726088eee54368e032e7dc6b31a450b4ee1 01-Aug-2012 Tor Norbye <tnorbye@google.com> Fix lint-on-save for .class file detectors in Java files

This changeset fixes the lint-on-save behavior in Java files such that
the classfile based checks are run after the .class files are up to
date.

It also makes lint-on-save work when Project > Build Automatically is
turned off, by adding a new resource listener, and it modifies the
IFileListener interface to make resource listening more efficient; in
particular, it passes the flag mask such that listeners can ignore
events such as markers getting added or removed from a file without
the content changing.

It also makes some improvements to the lint infrastructure. First, it
adds an indirection in the LintClient such that reading bytes from
files can be customized by the client (to for example add caching or
to read contents from memory not yet flushed to disk). It also allows
inner classes to share the contents of the source file between each
context (while debugging the above I noticed that each inner class
node had its own class context and therefore would re-read the source
file repeatedly.)

Change-Id: Ib9572cebe1269fe05c3af1369610525ea3b44061
6eac1e70c837ce315ba9443dc73887a8e40d4d98 20-Jul-2012 Tor Norbye <tnorbye@google.com> Prevent NPE at shutdown if targets haven't finished loading

Change-Id: I54c3adee5ff85a91d13740796ef6809707f00333
802de810020fba3f86282cd1d66597a2a41698e3 16-Jun-2012 Tor Norbye <tnorbye@google.com> Preview support in the templates

This changeset adds a Preview page to the end of the template wizards
which shows the changes to be applied to the project - first the files
which were edited (merged), such as the manifest file in the case of a
new activity, and second the text files to be created, and third the
binary files to be created.

In addition, the user can now uncheck any of these changes, if for
example the manifest file edit isn't wanted. Furthermore, the now that
the changes are computed up front, the phase of applying the changes
is run in the background with a progress bar in the New-wizard.
There's also some consolidation of the various template wizards to
handle things like the upgrade-page and the dependency-page in one
place.

Infrastructure wise this changes the template instantiation from being
based on File manipulation to using the refactoring infrastructure's
change support, which should be more reliable. It also fixes a bug
where projects were marked as library projects which should not have
be.

Change-Id: I496761f01c7ec28bf9170e4d1041211e3ebe285b
a5d04270a81ba88756ab800fa1376dc5c959c380 02-Jun-2012 Tor Norbye <tnorbye@google.com> Fix potential NPE

Change-Id: Ied6d4b2e03cf13078f0468c6203ca1c8bac71499
f47baf1439853c55aef67fd93fe2dc132df0af50 31-May-2012 Tor Norbye <tnorbye@google.com> Eclipse 4.x fix: Don't attempt to get display too early

Also fix a couple of potential NPEs.

Change-Id: I80d6b625d672ad2e7b96f2fce311aa4347a45a33
7dd444ea0125e50a5e88604afb6de43e80b7c270 08-May-2012 Tor Norbye <tnorbye@google.com> New Template Wizard support

This changeset adds several new templates, to create a new project, a
new activity, a new custom view, etc.

More importantly, it contains support for these wizards (and the
corresponding code generation) to be driven by templates.

A wizard contains metadata which provides a name, description and icon
for the template, as well as a list of parameters, along with type and
constraint metadata for those parameters. When a wizard is created for
this template, it automatically adds UI elements to input the
parameters and to validate the input. Parameters can also specify
their default values as templated expressions using the other
variables on the page, so in the New Blank Activity wizard for
example, editing the activity name automatically updates the suggested
layout name, by repeatedly evaluating a template expression to compute
a layout name from an activity name.

There's a recipe file for each template which states what actions to
take to create the template. In addition to obviously copying
resources (such as icons and jar files) and instantiating templates
(to rewrite text using variables and FreeMarker logic), it can also
merge XML contents (to for example insert activity registration
metadata into the manifest file, or add string definitions to the
strings.xml file), and it can cause files to be opened when the
template is created.

Tne new wizards also use JFace's decorator support to provide help and
to mark text fields that contain errors, when one or more of the page
fields do not validate, as well as to show tip text along the bottom
of the page. One example of this is that it explains what a "package
name" is when the package field has focus.

This changeset also contains a "Template Development Wizard" which
lets you point to a local directory containing a template definition,
and run a test wizard from there. This is useful for developing,
debugging and testing templates.

Change-Id: I08e7d2464a1ef00d09517f0154c42681249a7ff6
9bd06947302ca6ca3e0b90eef894e553c6c3e067 05-Apr-2012 Tor Norbye <tnorbye@google.com> Add support for the WindowBuilder Property Sheet

This reverts commit 27dac06bfc4297dc9a018edc534f44ecf96cd724.

Change-Id: I6708bd4091f0cb677484669479357d479b9db5fa
27dac06bfc4297dc9a018edc534f44ecf96cd724 03-Apr-2012 Tor Norbye <tnorbye@google.com> Revert "Add support for the WindowBuilder Property Sheet"

This reverts commit a7621238bf0202419677380ee3a268142358df83.
a7621238bf0202419677380ee3a268142358df83 20-Mar-2012 Tor Norbye <tnorbye@google.com> Add support for the WindowBuilder Property Sheet

The WindowBuilder propertysheet has been extracted and added as a
library in external/eclipse-windowbuilder/.

This changeset removes the old propertysheet code (which used the
builtin Eclipse property sheet page), and replaces it with the
WindowBuilder one, along with new code to aggregate the properties
into some categories, as well as tagging some of the properties as
advanced. (This was computed by running the same analysis scripts used
to produce the most-frequent attributes (sdk/attribute_stats) and
instead computing which attributes are used very infrequently or not
at all in some representative sample code.)

The WindowBuilder propertysheet gives us the following new features:
- Highlighting (bold) of important attributes
- Masking (and when included, shown in gray italic) of advanced
attributes
- "Complex" attributes with nesting, used to for example aggregate all
the layout parameters into a single node, and the margin layout
attributes within those
- Tooltips over the attribute names, not values, so they never obscure
content

In addition, this changeset adds custom implementations of properties,
property editors and property dialogs for the core Android property
types (XML strings, flags and booleans), which adds the following new
features:

- Preview rendering of color and image resources inline

- Display of -default- attributes (those not specified in XML) using
the layoutlib facility getDefaultProperties() to render the implied
attributes. For example, if you look at a Button, it will show you
that the implied value of "Text Color Link" is
"@android:color/holo_blue_light" even though it is not set.

NOTE: This only happens for attributes that were actually queried by
the widget during rendering. Attributes that are not used by the
widget have no (displayed) value. Thus, EditText-specific attributes
in a TextView are not shown when a non-EditText TextView is
selected.

- Evaluation of the attributes. In the above example, in addition to
showing @android:color/holo_blue_light, it will chase down the value
of this to for example render a blue square next to the value. For
drawables it will render a thumbnail, and for String resources it
will display the actual value in parentheses.

- Field completion in text fields, completing all resource strings
(@string, @android:string, etc), as well as flag values. Enum values
are chosen in a dropdown.

- Checkbox support for boolean values, allowing you to click through
the three values true, false and null.

- Our custom version of the Property Sheet Page allows you to
expand/collapse all properties, and it also has an option letting
you switch between Alphabetical Sort (where all attributes are in a
flat table, sorted alphabetically by property value), or
hierarchical sorted "by category". Currently the categories are
simply the defining views, plus 2 more (layout parameters and
deprecated attributes). When we get more metadata, it would be nice
to switch these to more logical categories, such as "text",
"scrolling", "focus", etc. (There is some preliminary support for
this in the code, but since the defining-view categories seem to
work better those are used instead right now.)

Change-Id: Ie4959a3a2c36c083dcc1ba19a70f24b33739fe2f
e27bbc4d1cf9c9d6b23344b977331bed0a3357a5 22-Feb-2012 Raphael <raphael@google.com> ADT: Suggest solution to ADT version check error.

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
47beb2fa7bbc1fb3e2f73f9fe1334d7844d25cf7 03-Feb-2012 Xavier Ducrohet <xav@android.com> Ensures that opening projects adds annotations.jar if needed.

The issue was that launching eclipse opens projects before
the sdk was fully loaded. Now, whenever the framework container
is updated (sdk finishes loading, target changes, ...) we update
the library container to add/remove annotations.jar

Change-Id: Ic442970cbcbd9e537e3c1129934b27e6bb3b1ae2
734d947687f3f3a761f404dbb0bf3dfe8f3f5843 21-Jan-2012 Raphael <raphael@google.com> ADT: Refactor CommonXmlEditor in its own package.

Change-Id: I0ee61ade9ea15335268fa313b74d9a949ecb189f
91069c28195ca0ed5e64f36714cf359f63743710 18-Jan-2012 Raphael <raphael@google.com> ADT: adjust default-editor id for existing legacy editors.

Note that this changes the "default editor" id associated
by a file but not actually close an existing editor (trying
to do so from the editor fails.) Also, unless the editor
is put in focus, it is not initialized and thus will not
change.

To compensate, when opening a project we'll visit all the
XML files from the /res folder and associate them to our
new editor ID.
On top of that, we'll try to find existing open editors
using a legacy id and close/reopen them using the new
common editor id. We only do that when upgrading a project
via fixEditorAssiociations, which means if the user then
manually forces a file to open using a legacy editor
by using the Open With > Other, it will keep using the
old editor id and we won't open/close it a second time.

Change-Id: Ia5f7e960515500a0ad07d401124578477ed70859
e50549f54810c29bffc681e39d33158ab2a8f26e 10-Jan-2012 Raphael <raphael@google.com> ADT: Change LayoutEditor to use new editor delegates.

Change-Id: I5624d8f5c393a74a808d98e465f0ebc6db91d741
4c07263da057b6014342089097a3a4c6ebe993d2 10-Jan-2012 Raphael <raphael@google.com> ADT: single base class for XML editors.

This re-architecture the way the various XML editors are
handled by ADT.

Before, we had various classes all deriving from AndroidXmlEditor,
all listed in the plugin.xml as handled the "xml" extension. The
right one was set by AdtPlugin when monitoring changed resources.

The new structure is to have a single AndroidXmlCommonEditor.
This derives from AndroidXmlEditor right now, but in phase 2 will
merge them back in a single class.

Each XML editor implements an XmlEditDelegate. The
delegator iterates through the delegates to find the correct
one that can handle a given file and then uses it.

After this CL, we'll need a few extra passes:
- Understand what all editors delegates are doing
and merge it in the base class. There's currently a bit
of code duplicationg we could avoid.
- Change the ManifestEditor to the new structure.
- Change LayoutEditor to the new structure (already prepared
but in a different CL)

Change-Id: I6cb045a8fa39386fcc0ce854b45fa8580fae411e
ab36f4e7488358dea4ab6b54ee2b7bef3da0232b 21-Dec-2011 Tor Norbye <tnorbye@google.com> Update SDK codebase to JDK 6

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
939fcf8c656eadcfe325bb877f824b5c74068167 20-Dec-2011 Siva Velusamy <vsiva@google.com> Do not initialize DDMS Console from ADT plugin.

When ADT plugin starts up, it attempts to set the console to be used
for certain parts of DDMS to be the Android console.

Doing this however causes the DDMS plugin to be activated, which
launches adb server if it is not already there.

Removing this enables us to not touch adb unnecessarily.

This patch moves the initialization of the DDMS console into the
DDMS plugin, and uses the DDMS console as opposed to the Android
console for messages from DDMS.

Change-Id: I010a7028a2f22ac4da1c55903e001dcdd329d91f
b45957a134d6fd6184348387fd0f0b14ffa7021c 09-Dec-2011 Tor Norbye <tnorbye@google.com> A few misc lint fixes

Change-Id: Idc81f7a2d033675a03209eeabda0216babc35ebe
e560cc00de6e514e04fc618981d9f8857692d250 23-Nov-2011 Tor Norbye <tnorbye@google.com> Automatically fix up editor bindings on project load (once)

This changeset adds a follow-up fix for 21124. The fix for that issue
fixes the problem where newly discovered files aren't assigned an
editor binding. However, it does not *retroactively* fix up editor
bindings for files that it didn't correctly initialize.

This changeset fixes that. It adds a project open hook which scans
through the resource folders and reassigns the editor type of any .xml
files based on the resource type. This hook is only run once - it uses
a project persistent property to ensure that it only performs this
check once (or whenever we rev the version number associated with the
scan.)

Change-Id: Id843a8a174c84e3794e88a1c108b67d4000a3e69
2126cd224332d7e577e2d077de46510e24a0b5b0 23-Nov-2011 Xavier Ducrohet <xav@android.com> Fix issue where new files aren't getting the correct editor.

This happens becausethe resource change listener that sets the editors
expects the new files and folders to have been added to the resource
repository first. However the recent change to have the resource
repository be updated during build makes it be updated after the
resource change listener.

Bug http://b.android.com/21124

Change-Id: I1deb54fd0b5a8361e503f18d376c906f90044ef7
d0357c27e602d6bec239897b8375d642bc590a62 22-Sep-2011 Tor Norbye <tnorbye@google.com> Welcome Wizard. Do not merge.

This changeset adds a new "Welcome Wizard" which is shown the first
time a user runs Eclipse with the ADT plugin.

The welcome wizard asks for two pieces of information:

(1) The location of the SDK.
(2) Whether the user agrees to gathering usage statistics.

We've needed this information before, but collection of the data had
been more ad-hoc: The usage data permission dialog would show up on
its own, and the SDK information would be requested the first time
some code path touched it (e.g. opening a layout or opening the
preference dialog's Android page etc).

In addition, the wizard also offers to *install* SDKs if you don't
already have one. It gives the option between the latest available
platform, and one supported by a large majority of devices (currently
API level 7), or both. If you select this option, then when finishing
the wizard the SDK manager is run in a special mode where it installs
the required packages with a progress dialog.

This changeset also starts recording the chosen SDK location in the
~/.android settings file. This allows us to detect when you're running
Eclipse in a brand new workspace and you've already gone through the
SDK selection before, and we don't need to ask again -- we'll just use
the most recently known location.

The wizard will only be shown once. If you bypass or cancel out of the
wizard, you can still configure your SDK the old way - via the
Preference dialog. Note also that the usage permission page is only
shown if the user has not already opted in via say ddms.

NOTE: If you want to test this, make sure you haven't set the
environment variable ADT_TEST_SDK_PATH (as some of us do for running
unit tests) since it is treated as the user having selected the given
SDK root, and in particular it means the wizard won't be shown even if
you've wiped adtUsed=true from your ~/.android/ddms.cfg etc.

(cherry picked from commit 292eefb8faa2f75ddbc5d6e20084c9f9a762da29)

Change-Id: Idb3f8775ef62a84905cde95b25eeb8691ef0afab
292eefb8faa2f75ddbc5d6e20084c9f9a762da29 22-Sep-2011 Tor Norbye <tnorbye@google.com> Welcome Wizard

This changeset adds a new "Welcome Wizard" which is shown the first
time a user runs Eclipse with the ADT plugin.

The welcome wizard asks for two pieces of information:

(1) The location of the SDK.
(2) Whether the user agrees to gathering usage statistics.

We've needed this information before, but collection of the data had
been more ad-hoc: The usage data permission dialog would show up on
its own, and the SDK information would be requested the first time
some code path touched it (e.g. opening a layout or opening the
preference dialog's Android page etc).

In addition, the wizard also offers to *install* SDKs if you don't
already have one. It gives the option between the latest available
platform, and one supported by a large majority of devices (currently
API level 7), or both. If you select this option, then when finishing
the wizard the SDK manager is run in a special mode where it installs
the required packages with a progress dialog.

This changeset also starts recording the chosen SDK location in the
~/.android settings file. This allows us to detect when you're running
Eclipse in a brand new workspace and you've already gone through the
SDK selection before, and we don't need to ask again -- we'll just use
the most recently known location.

The wizard will only be shown once. If you bypass or cancel out of the
wizard, you can still configure your SDK the old way - via the
Preference dialog. Note also that the usage permission page is only
shown if the user has not already opted in via say ddms.

NOTE: If you want to test this, make sure you haven't set the
environment variable ADT_TEST_SDK_PATH (as some of us do for running
unit tests) since it is treated as the user having selected the given
SDK root, and in particular it means the wizard won't be shown even if
you've wiped adtUsed=true from your ~/.android/ddms.cfg etc.

Change-Id: I0a4e2c4efce84aca9beae394ce67e4c145cbb000
294c05e0bb0d1589ba1bb7d0cfff0286d05526bf 23-Sep-2011 Raphael <raphael@google.com> Fix ADT build. Do not merge.

(cherry picked from commit c75ae5bac912229d8168efb91b117823959bc79d)

Change-Id: I14f62f892eac7168d38f787089525d989bf625e4
c75ae5bac912229d8168efb91b117823959bc79d 23-Sep-2011 Raphael <raphael@google.com> Fix ADT build.

Change-Id: I329115eff351ffd4875c018c71d77c6699f61d68
b3ab7ef8a24a64bcd6f347e8e03bc647c12eb24b 29-Aug-2011 Tor Norbye <tnorbye@google.com> A few warnings fixes

Change-Id: Ie230236444a5e1288d98feea208df5ce6508803d
bbd4f1dff7c6940bf4439569f19e8705cd2c3818 22-Aug-2011 Siva Velusamy <vsiva@google.com> Open SDK stats dialog from an existing shell.

This patch addresses Issue #15267. The primary issue is that the SDK
stats permission dialog was opened from a separate Job, and this
dialog shows up when the user opens the preference page for the
first time. Since both of them happen to be modal dialogs, the
behavior is inconsistent, and many times results in a blocked UI.

The patch fixes this issue by opening up the stats dialog as a child
of the preference page dialog within ADT, and as a child of a new
shell within DDMS.

Change-Id: I8c9ed9e9bbfac855435690f287b4f60975f336fb
4674055b588bdb0588a8ef9cc5a96cf346ed976e 20-Aug-2011 Raphael Moll <ralf@android.com> Change way we report Eclipse version in stat ping.

This reverts the way Change I14dba0dd was sending
the Eclipse version. Instead of passing a new attribute,
we reuse the existing "app=>version" format, with a
specific app name of "eclipse". Since versions are
reformated in 4 parts, it will report something like
"3.5.0.0" (only major+minor and 2 zero sub parts).
We don't send more details than that (e.g. Milestones).

Change-Id: Id01e3ed6b96ea4ce4e1b4f643d08a050291a6e7b
3a3014271dbad0d8e0ad2b6a96064909fe331598 05-Aug-2011 Tor Norbye <tnorbye@google.com> Format newly created files

This changeset hooks the XML formatter up to the New XML File and New
Android Project wizards such that the newly created XML files are run
through the formatter, thereby picking up whatever formatting
customizations the user has made.

It also makes it such that when you finish the New XML File wizard for
a file that does not have a graphical editor, the caret position is
shown and the view receives focus so you can start editing at the
appropriate position.

Finally, it tweaks the defaut root element for color-lists.

Change-Id: I19606a085d6df132009679ddfb4c91152cbdc453
328c71952d7004f9307424c4d36ffc348f78d641 05-Aug-2011 Xavier Ducrohet <xav@android.com> Add eclipse version to usage stat ping.

Change-Id: I14dba0dd7cb900c2e700e4da055aee7bb7d1f9cd
79f12a297bdb8a94d870062c4ed86be4ecfa59bb 11-Jun-2011 Xavier Ducrohet <xav@android.com> Merge 050bcb67 from master into r12. do not merge.

Properly handle CPU Arch/ABI in AVDs.

When we introduced x86 support in the tree there was no
generic emulator exe able to act as a launcher to the -arm and
-x86 versions of the emulator.

This exe is now present and packaged with the SDK, so we remove the
code to launch either arch specific version and instead make the AVD
Manager and ADT simply launch the normal emulator once again.
(This has the side effect of making ADT 12 able to run on Tools r11
and below.)

For this to run though, hw.cpu.arch must be set in the AVD if the
arch is not arm. The new AVD manager sets this properly.

Also fixed some issues from my previous fix to the hardware property.
Now the list contains all of them but there's a isValidForUi that's used
to not show up some prop in the UI.

Change-Id: I4187a8f973ee82762b430c9a3c709169c92d6b99
050bcb67487a8d84263799a49599a149f419d3ad 11-Jun-2011 Xavier Ducrohet <xav@android.com> Properly handle CPU Arch/ABI in AVDs.

When we introduced x86 support in the tree there was no
generic emulator exe able to act as a launcher to the -arm and
-x86 versions of the emulator.

This exe is now present and packaged with the SDK, so we remove the
code to launch either arch specific version and instead make the AVD
Manager and ADT simply launch the normal emulator once again.
(This has the side effect of making ADT 12 able to run on Tools r11
and below.)

For this to run though, hw.cpu.arch must be set in the AVD if the
arch is not arm. The new AVD manager sets this properly.

Also fixed some issues from my previous fix to the hardware property.
Now the list contains all of them but there's a isValidForUi that's used
to not show up some prop in the UI.

Change-Id: I7a264a59cb3c5051ff62f6103da9663c7b7eb22f
3a0de834ccd2b4f89462fcb2d075823597c347ab 22-Apr-2011 Tor Norbye <tnorbye@google.com> Merge "Add code completion support for drawables, animations and colors"

This changeset adds in descriptor metadata and XML editors for:
- Drawables (res/drawable/)
- Animations (res/anim/)
- Animators (res/animator/)
- Colors (res/color)

These types have also been added to the New XML File wizard.

There is some specialized completion support for animators:
- Completing on the propertyName property of <objectAnimator> will
offer the various integer and float properties in views
- Completion for the interpolator property shows the framework
interpolators immediately and on top (instead of having to complete
the individual resource paths @android: and anim/ first

There is also a new quickfix and marker resolution for the AAPT error
which complains about an unbound prefix. This will insert a
xmlns:android="http://schemas.android.com/apk/res/android" attribute
declaration on the root element.

This CL also includes a fix to make the New XML File Wizard preselect
the current project in more scenarios.

NOTE: This changeset adds new XML editors for these resource types.
It does not attempt to update previous editor bindings for files of
the given type, so to test this you may need to use "Open With" in the
package explorer to pick the right file type.

A subsequent CL will try to migrate settings over to these editors,
but that work will tie into another effort: merging all these
different editors into a single editor class that does its own content
type switching and different viewparts for the other tabs.

(cherry picked from commit aaa917c9c5e6f974ca20b94adfd53d1bf01bb54e)

Change-Id: Iddc2405c4802d43126d9b2172f86869de80bef10
aaa917c9c5e6f974ca20b94adfd53d1bf01bb54e 22-Apr-2011 Tor Norbye <tnorbye@google.com> Add code completion support for drawables, animations and colors

This changeset adds in descriptor metadata and XML editors for:
- Drawables (res/drawable/)
- Animations (res/anim/)
- Animators (res/animator/)
- Colors (res/color)

These types have also been added to the New XML File wizard.

There is some specialized completion support for animators:
- Completing on the propertyName property of <objectAnimator> will
offer the various integer and float properties in views
- Completion for the interpolator property shows the framework
interpolators immediately and on top (instead of having to complete
the individual resource paths @android: and anim/ first

There is also a new quickfix and marker resolution for the AAPT error
which complains about an unbound prefix. This will insert a
xmlns:android="http://schemas.android.com/apk/res/android" attribute
declaration on the root element.

This CL also includes a fix to make the New XML File Wizard preselect
the current project in more scenarios.

NOTE: This changeset adds new XML editors for these resource types.
It does not attempt to update previous editor bindings for files of
the given type, so to test this you may need to use "Open With" in the
package explorer to pick the right file type.

A subsequent CL will try to migrate settings over to these editors,
but that work will tie into another effort: merging all these
different editors into a single editor class that does its own content
type switching and different viewparts for the other tabs.

Change-Id: I4b12bafd8fd068176c41bac1e345bb74ccdb8b6f
96cdd2f6dfde2c70eb401367e9106bcd4ba7ea9f 30-Mar-2011 Tor Norbye <tnorbye@google.com> Make sure files opened from XML wizard go to the WYSIWYG editor

Change-Id: I51a0d96564b5fa896eb4daef50f193df7cadfa20
3c02010fa4f0ca27629bf627a5b3cf0297b40f2b 21-Mar-2011 Tor Norbye <tnorbye@google.com> NPE fix

Change-Id: I35d0407ef20557c19b6eca5324075de9fbbf8583
842b0eb9e2d530c19b9af3981e2d688411c1e554 18-Mar-2011 Tor Norbye <tnorbye@google.com> Add newline inside new root elements, and some move code around

Tweak the "New XML File" creation code to insert a new line inside the
created root element, indent, and place the cursor there. This means
that you end up with:

<LinearLayout>
|
</LinearLayout>

instead of (where | denotes the initial caret position):

|<LinearLayout>
</LinearLayout>

This means you can instantly press Ctrl-Space to complete on the
elements, etc., and is similar to how Eclipse creates new method
bodies from templates, adding newlines such that you can instantly
write code there instead of having to "open them up".

All the diffs for this are in NewXmlFileWizard.java; the other
modifications in this changeset are simple move refactoring
operations as described next:

The second change in this changeset is moving some code around such
that common utility methods live in more natural places rather than
where they were first needed.

In particular:
Hyperlinks.openUrl => AdtPlugin
Hyperlinks.openJavaClass => AdtPlugin
Hyperlinks.openFile => AdtPlugin
AndroidContentAssist.getAndroidXmlEditor => AndroidXmlEditor
ResourceChooser.canCreateResource => ResourceHelper
ResourceChooser.createResource => ResourceHelper
Hyperlinks.parseResource => ResourceHelper
ResourceNameValidator.isValueBasedResourceType => ResourceHelper
ResourceNameValidator.isFileBasedResourceType => ResourceHelper

Change-Id: If7690df9ce59c709c1d909ffd9f74c2684f3dd46
026ba97e98e0527d910e15c4e1512893a777a8d2 18-Mar-2011 Xavier Ducrohet <xav@android.com> Move classes to ide-common

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
ff8c2115e1a036038b7379e548f2eb012dcdf199 09-Mar-2011 Raphael Moll <ralf@android.com> Deactive the logging code used for issue 15003.

This doesn't quite remove the logging code,
just deactivate it for right now.

Change-Id: I9a471926f6575bce117bf6079200f7939457fb57
083cc71b4c133a6d0707d0168ee33b6f1bd5c154 04-Mar-2011 Tor Norbye <tnorbye@google.com> Add logging to help track down issue #15003 in the wild

Change-Id: I3b7fb370e7e4b018d02b3986d81b14e89086c191
38b72b64c1c066658266e07fdb1ea0717025183b 04-Feb-2011 Johnnie Birch <johnnie.l.birch.jr@intel.com> AVD and ADT eclipse plugin to support processor-specific platform images and emulators.

This is a first (and largest) patch in a series of patches over the next month to extend the
AVD and ADT eclipse plugin to support processor-specific platform images and emulators. This
patch is intended to co-exist with patches to create x86 emulator environments and overall
SDK support.

There is an overall expectation that the sdk building process will be updated to meet the
following expectations... It is not in the scope of these UI patches to change the overall
sdk building structure.

expectation #1:
tools/emulator[.exe] -- ARM
tools/emulator-x86[.exe] -- x86
tools/emulator-foo[.exe] -- an arbitrary additional architecture (extensible)

expectation #2:
platforms/android-XXX/images/arm - location of kernel/images for ARM
platforms/android-XXX/images/x86 - location of kernel/images for x86
platforms/android-XXX/images/foo - location of kernel/images for arbitrary architecture

expectation #3
In the event that add-ons are in the SDK,
add-ons/addon_XXX/images/arm - location of kernel/images for ARM
add-ons/addon_XXX/images/x86 - location of kernel/images for x86
add-ons/addon_XXX/images/foo - location of kernel/images for arbitrary architecture

NOTE: For "earlier"/legacy api levels, it is assumed that it is ARM only and the images will
be in platforms/android-XXX/images and add-ons/addon_XXX/images

When an API level is chosen in AVD, it scans the appropriate API directories and determines
if the image directory is "legacy" or if it has subdirectories. In the latter case, it
populates the list of potential processors using these directory names (and some
prettyprinting for well known architectures)

tested using "android" command line to start AVD on linux and windows
tested using Eclipse plugin AVD integration on linux and windows
REMINDER: You need to change the directory layout of images and add the right
emulator-XXX[.exe] to test it

If one uses the "android" command line to create an AVD from the command line, the
processor type is assumed to be arm today. A future patch will be needed to add
command line processor type selectivity

Change-Id: Ifd7c39bf93c6e926f62407bfed024d2789efb41a
868a7bbe7c5862c02483ef8f71276fc551d40d60 25-Feb-2011 Xavier Ducrohet <xav@android.com> Move ResourceFolderType into common.

Moved some constants from sdklib (which is not a dependency
of common but instead depends on common) into common.

Change-Id: I6fdfbad4e77813a9f2a2ca9ea0d740692d8bce5b
c3105b949cd2a0f6cbf8a12ec4f30e49b5b5a502 25-Feb-2011 Xavier Ducrohet <xav@android.com> Rename AndroidConstants -> AdtConstants.

These are constants specific to ADT.

There'll be an AndroidConstants class in common.jar with
more generic android constant values.

Change-Id: I8368920f92c28cbfb87098087bf01f2d2cdee095
9aa538ffaf7abdcf4fe56c51da75666e60c67a90 25-Feb-2011 Xavier Ducrohet <xav@android.com> Move the sdk io classes to common.jar

Change-Id: I59a7b770071707ed058aa104bab8a16aa8950d56
3fe0fe2645bc79b991c5696f2d236e3326bca83e 08-Feb-2011 Tor Norbye <tnorbye@google.com> Make zoom level persistent

Make the zoom level of the layout editor persistent across IDE
sessions. This is particularly useful now that we are dealing with
larger screens, such as WXGA, where you typically need to zoom out
(zoom to fit) in order to see the whole layout, and it's annoying to
have to do this every time you open the IDE.

Change-Id: Ib062a6a9f9291445978b3cfae03c120e4f2bf386
a7da09b74d5f41667823ddf36c0cd7f145f54a2d 01-Feb-2011 Tor Norbye <tnorbye@google.com> Add Layout Actions toolbar

Add a new toolbar above the layout canvas (and to the right of the
palette). This toolbar shows various layout-related actions on its
left, and the canvas zoom controls on the right. The zoom controls
have been moved from the configuration panel, which has also been
reorganized a little with three of the dropdowns moved up to make more
horizontal width and take the place of the old zoom controls.

The toolbar items vary based on which layout is "active". The active
layout is the parent layout of the selection, or the root layout in
the canvas if there is no selection.

Some examples:

- In a LinearLayout, there are radio-button icons for switching
between horizontal and vertical orientation, and for toggling
baseline alignment

- There are toggle buttons for toggling between wrap_content and
match_parent (or fill_parent) for the layout_width and layout_height
properties

- There is a dropdown menu in LinearLayout and RelativeLayout which
lets you set the layout_gravity to one of the dozen gravity settings

- There is an action button which brings up a margin chooser dialog
where you can configure the margin settings for the currently
selected elements for layouts that support margins

There will be additional actions here in the future.

This changeset also adds a few new MenuAction subclasses and factories
to make it possible to do ordered lists of choices. It also adds
sorting keys to make it easier for parents and children to interleave
their actions with simple sorting keys rather than having to append,
prepend or merge their respective result lists. In a follow-up
changeset I will replace the context menu code to use these, as well
as attempt to make all actions stateless such that they can be cached
and reapplied for different targets.

Some misc cleanup.

Change-Id: I6a87144fcfd1d359e5561829bd5d63c852f16970
0ac475d29f793079783f501126239ed6ce8aa31d 21-Jan-2011 Tor Norbye <tnorbye@google.com> Palette with previews, categories and view modes

This changeset contains the following improvements to the palette:

1. Display modes. The palette now supports several different view
modes, and you can switch these via the context menu. The modes
are:

a. Previews. This renders previews for all the views using the
current SDK platform, theme, screen density, etc.
b. Small Previews. This is like (a), but scaled down to 75% size.
c. Tiny Previews. Like (a), but scaled down to 50% size.
d. Text + Icon. This shows an icon and the name of the view; this
is the same as what the palette has looked like before this
changeset.
e. Icons only.

All the modes, except for the Text+Icon mode, will lay out the
views in a row (with vertical centering) to fit as much as possible
in the available space for that category.

The view mode, along with other view flags described below, are
preserved across IDE sessions.

2. An accordion view. The palette is now using an Accordion control,
which means it by default will keep a single category open, and it
will always ensure that ALL the category labels are visible in the
current view without scrolling. Via the context menu you can turn
off the auto-close of the previous category. The accordion view
uses vertical scrollbars within each category content area, if
necessary.

The accordion view renders the category headers using open/close
folder icons, a bold font, and a background gradient which varies
between the normal and hovered states.

3. Categories. The category metadata is now used to organize the views
into a handful of different categories. The categories can be
enabled and disabled via the context menu. When you turn off
categories, you get all the views in a single large list.

4. Alphabetical sorting. By default, the views are now sorted
"naturally" (e.g. the metadata provided order, where important
views are listed first). You can switch it to alphabetical order
via the context menu, in which case the items are listed in
alphabetical order, either within their individual categories, or
if categories are turned off, the global view list.

This changeset also adds a new SWT ImageControl. This is necessary to
display the preview images, because the CLabel, which is usually used
to display images in SWT, is hardcoded to hide the icon if there is
not enough horizontal space to display the full label (even when it
has no text label), so for wide preview images the images would simply
disappear when the palette was resized.

Change-Id: I1e1fe051947809206ef9f3a2dfa2fbeae0341107
6d93979134c2e89bae1596141a270ea56c8dde91 03-Jan-2011 Xavier Ducrohet <xav@android.com> Add log to layout lib init method.

Change-Id: I28efe429925a77fd10b76bb54519ae9d42900e52
c628731aff0ceaef8deee198f8e9956396ff7855 18-Dec-2010 Raphael Moll <ralf@android.com> Fix NPE when deleting a layout resource file.

The IncludeFinder tries to read the file, but the workspace
is not in sync so although the resource exists in the
workspace there is no XML file to read anymore.

Change-Id: If0ca5cca8e6978f1777531d6413d7c30a54c9d7d
f16b3d794c9a79f5c91ecb4b6311b7bd139ecc6c 17-Dec-2010 Tor Norbye <tnorbye@google.com> Hyperlink improvements

Fix Java hyperlink navigation such that it works with android.R
resources too, not just project local R fields.

Fix navigation into @android values (this was already supported for
file-based resources in the framework, but it did not search for
values, and did not navigate into specific portions of the (possibly
large) XML files.

Fix such that opening an XML file shows the editor tab, not the
name/value pair editor.

Fix hyperlink modifier key combination and target name (to make them
uniform and match the other items listed in the Preferences dialog's
"Hyperlinking" category.

Change-Id: Iabbb8e65964c824d8e8e649da77c2e7af809c373
2f70fafe0bc1cf6d14cb35241ca252ca3cbe5674 16-Dec-2010 Tor Norbye <tnorbye@google.com> Fix non-externalized-string references

I had accidentally used //NON-NLS- instead of //$NON-NLS- in some
code. That explains why Eclipse would sometimes insert a space
between the // and the NON part...

This changeset replaces these with proper //$NON-NLS- entries.

Change-Id: Icf4251a352895293ebe82d8207a4dbfe7d8126d5
2a58932d3c4e2642cbdbfc161b4f7b884b3d7ea6 04-Dec-2010 Tor Norbye <tnorbye@google.com> Add a hyperlink resolved for Android XML files

This changeset adds basic hyperlink handling to Android XML files
(such as AndroidManifest.xml and layout xml files).

It registers a hyperlink detector for our XML files, and the hyperlink
detector looks up the XML model and finds the node and attributes
under the cursor. If found. it then checks these attributes for a set
of patterns that it can link to:

* If it finds an <activity> element, it looks up the activity name and
the package on the root element, and lets you jump to the activity.
Ditto for services.
* If it finds a @layout attribute value, it attempts to open the
corresponding layout file in the res/ folder in the project. Ditto
for other per-file resources like @drawable, etc.
* If it finds a value resource, like @string, @dimen, etc, it will
search through the various XML files in values/ and open up the
corresponding XML declaration in the editor with the declaration
selected.

Note that the resolver does NOT use proper full resource resolution
based on the SDK parsing that we have in use within the layout editor
etc. That's the natural next step.

Change-Id: I5880878fe67f26fb8d3b08b808c02baa1049f2c5
4517a1f5f4f9fd21b6a611d8a40ac8b81a7bb9c5 29-Nov-2010 Tor Norbye <tnorbye@google.com> Include View Support

Add improved support for includes. You can now view and edit a layout
within another containing layout. On a page with includes, you can
double click to warp into the included layout, and it will be shown
within the container layout (but with a semi-translucent mask to make
it obvious that you are editing only the included content, not the
container.)

You can also right click on a view and choose "Show Included In",
which is a pull-right which lists all the other layouts that are
including this view. (If there are no such views, the menu item will
be empty).

In addition, this changeset adds code to detect if there are cycles in
the includes, and if so adds a problem marker in the Problems view
listing the offending chain of includes.

This is all managed by a new "IncludeFinder" class, which listens for
resource file edits (so it only kicks in when you save an XML file,
not after each XML edit). It scans layout XML files for includes and
maintains a map of file includes. This is done such that it can very
quickly provide a list of all files that are including a given target
file. This list is also persisted across IDE sessions via a project
property.

Also fixes outline-expansion to ensure that the outline always shows
the top level children.

Note: The include-relationships are based on the base layouts (the
ones in layouts/, not in customized versions in layout-land,
layout-port, etc.)

Change-Id: I710560f03f7e214219669af8ffba91874d9881b9
ad11cf8ec9e9efcbfdb42e426a08af5423d28a3f 12-Nov-2010 Xavier Ducrohet <xav@android.com> Change the adbLocation ddms extension to provide more tools location.

Previously DDMS used the adb location to find the location of other tools,
but adb moved to a different tool folder.

adbLocator extension changed to toolsLocation and provide explicit
locations for all the tools DDMS cares about. This way the logic
of the tools location is only in ADT instead of being duplicated
in DDMS.

Change-Id: I87f19c7705cb822dc793264f11e680ba09eb7f40
f29be828de51dbe2f55508cd620142e35cd19cbd 11-Nov-2010 Xavier Ducrohet <xav@android.com> Make ADT use the new layoutlib API.

ADT now exclusively use the new API.
The older platforms that still use the old API are
accessed through a compatibility layer provided by the class
LayoutBridgeWrapper that converts the old to the new API (both
input and output).

The wrapper and the loading code for the bridge have moved
to layoutlib_utils, but into the ide.common package.
Layoutlib_utils is to be renamed ide-common later.

.sdk.LoadStatus has moved into .ide.common too since
it's used by the bridge loading code. As we'll move
more code into ide-common it's ok to have it there anyway.

Also did some minor fix to the API:
- missing implementation of ViewInfo
- Made a singleton for SUCCESS state of SceneResult.

Change-Id: I5e7130ca03b92ad71dc9c293b2ffc40566df645c
84e757e5988baa0e60379573fb462d1dd41aaf96 25-Oct-2010 Raphael Moll <ralf@android.com> ADT: Separate manifest test for AttrsXmlParser.

Change-Id: I8ea1a31fd7db849fffb9043c58a91f82444d98d4
0433222f1351b565d78952e1bb8809528c0e352a 27-Oct-2010 Tor Norbye <tnorbye@google.com> Add dictionary to codebase

Eclipse has the ability to spellcheck comments, and it ships with an
English dictionary. However, many valid terms in our codebase is not
in this dictionary. This checkin adds a dictionary file which contains
many of the valid spelling words used in our codebase.

(Unfortunately, Eclipse does not support "project dictionaries" like
some other IDEs where individual user dictionaries are merged with
shared project dictionaries. However, this new dictionary should be
useful for developers who use a dedicated workspace for Android
development.)

This changeset also fixes some typos.

Change-Id: Ied6647f6cb550460c0087498f8c94fa6624e3b4e
923d5bfbd8348dcc5b2c9169bd948d75e3c8773d 18-Oct-2010 Xavier Ducrohet <xav@android.com> Missing platform toosl doesn't mean the SDK is invalid.

Change-Id: I623edf5df8bcc9b0b1f806c49e863879fcd4fda4
6e8566df26c3a3b89194c4e19b330b057b060a2c 13-Oct-2010 Xavier Ducrohet <xav@android.com> Check for platform-tools presence.

Change-Id: Ieaf6e42bc67829b01ebb0fa799bc615f85fc1a6d
2af6007ca92b98f844378e31807f22d237fe481e 09-Oct-2010 Xavier Ducrohet <xav@android.com> Display SDK/plug-in incompatibility messages.

Hmm this used to work. But the lines displaying the error
messages are gone...

Change-Id: I83cf7d3e8a471fe6b2166818db9fad4f60d3d392
edeea1c711e0fd692df97f284594b59921e35b1a 01-Oct-2010 Xavier Ducrohet <xav@android.com> Add proguard support in the release build mode of ADT.

This is only activated if default.properties contains a proguard.config
property.

Change-Id: I9921b2796a423330bffa37e795399cf5cec948ab
020a428e1dd0231555e5ef855e3e6eca38e59c48 27-Sep-2010 Xavier Ducrohet <xav@android.com> Make the tools work with the new location of adb.

adb has been moved to the platform-tools folder.

This changes ADT, DDMS, HierarchyViewer which all care
where adb is (to launch it).

Also fixed the local SDK parser of the SDK Updater to find
the platform-tools package.

Change-Id: I3c869159d7b0e0ad9aaea06f376b7ba3e53bfc7f
70f06667d8a0d73920fcc38ca722c2591607e5e4 08-Sep-2010 Xavier Ducrohet <xav@android.com> Open the debug perspective when showing hprof files.

This prevents the creation of an editor area in the
ddms perspective (the only way to get rid of it later
seems to be to reset the perspective).

Change-Id: I1eb4a3f6a77f27cc462b18b9db43d27cfef09337
0662cb950e8e8a5e33ef8a6870f331d5ea452e1d 08-Sep-2010 Xavier Ducrohet <xav@android.com> New extension points for DDMS

debugger connector is used by the "debug running app" button in the
device list view.

source revealer is used by the thread panel when double clicking
on an entry of the stack trace.

Change-Id: Ida07617a24d37f1d769d86859fd35d5bb19f5fd2
8eea9330bc386e47e586eb751286bfac1a21010f 04-Sep-2010 Xavier Ducrohet <xav@android.com> First version of the PDT.

PDT stands for (Android) Platform Development Tools.

The first version is pretty basic. A single pref page
to give the location of the dev tree. From this it
finds the location of adb and provides it to ddms through
its extension point.

Change-Id: Ibed895852bc46b83ac6bf749d0ea37f0a54fad08
0b21937765ca5307a6a7e244ba4eddd36954b9cf 04-Sep-2010 Xavier Ducrohet <xav@android.com> DDMS now receives the adb location through an extension point.

Previously DDMS received the adb location through a normal Java API
which requires the other plug-in to be actually running (This
was done in the the start method of ADT).

The new change allows DDMS to start a plug-in (by loading
an extension provided by the plug-in) to query for the location
of adb.

This allows us to have plug-ins with no UI able to provide
the location of ADB (ie a "platform" plug-in that has no UI
besides a pref page, that is started by DDMS indirectly).

Also cleaned up how HierarchyViewer use the AndroidDebugBridge.

Change-Id: I8e842a294eea94c06417149144a2ce435e719cfd
3d3c3c3a3e4e05f7ae7a0dff440fe500f90b785c 31-Aug-2010 Xavier Ducrohet <xav@android.com> ADT: Make release and debug builds really different.

Release export should not be debug builds that are
stripped of their signature and (optionnaly) resigned.
Instead they should actually build the apk in "release"
mode.

Refactor PostCompilerHelper to be easier to use for
export feature (moved all error handling into the
actual IncrementalBuilder since we don't want the
helper to put error/warning marker during release
export).

Update the API of ApkBuilder and PostCompilerHelper
to deal better with signing key:
- option to package with a "sign with debug" flag.
- new option to package/sign with given keys.

Debug build (through incremental builder) use the new
aapt option --debug-mode that automatically insert
debuggable=true in the manifest. This allows for the
same source code to generate debug and release builds.

Currently, only the "export unsigned release apk"
action use the new "release" build. Need to update
the export wizard. Also need to add support for this
in Ant.

New folder in sdk.git/testapps for test projects
to be used in upcoming automated build tests.
Simple "basicProject" to start with.

Change-Id: I3041312bc817153603656de2aa355f8fcaf00b5b
99bd6912e7b5b97fc6d4bb787e76b2d9dfffd7ae 27-Aug-2010 Konstantin Lopyrev <klopyrev@google.com> Refactoring and integrating into Eclipse

Change-Id: I1fd3c3828fb2474f2f7394ee2831fcd7eb675878
db05dbb06540945bec90819658aa520b660f550b 10-Jul-2010 Xavier Ducrohet <xav@android.com> Remove the modal dialog that showed when ADT start with no SDK setup.

Change-Id: Ibb2085fbbb59216f73da376b8283d2ccc1652c08
4c24025f920fead65af603b58cefc1856bc9f037 29-Jun-2010 Xavier Ducrohet <xav@android.com> Allow for platform projects to be used with the "debug running app" button.

Since there's no way to figure out automatically which project is valid
for a given running app, we read the name of the project through an
environment variable.

NOTE: The goal of this new feature is for people working on the
platform but who still want to use the DDMS plugin and some of its
features.

Change-Id: I6f124c0413dab5c9f1fb240a3b311ba7234c4378
e312b2800018fcfe7fad0b1c883127f1364a17d0 23-Jun-2010 Xavier Ducrohet <xav@android.com> Make ddmlib/ddmuilib jar files inside the ddms plug-in instead of symlinks.

Also cleaned up the abstraction layer to load images from ddmuilib since
its image are now always located inside ddmuilib jar.

Change-Id: Id9d283df18a05b7b5593e4593e90dac6e5548b94
033a85dd05a72c2017c00eedf94c97169de58c06 01-Apr-2010 Raphael <raphael@google.com> ADT NPW and GLE: fix AdtPlugin.getEmbeddedFileUrl

The method was always adding an initial slash to the path.
This is only needed if the requested path doesn't have one.

This fixes the NPW templates and the GLE scripts usage.

SDK Bug: 2546962

Change-Id: If19eb0a5b931eeb1d160c980f950eb0a974246e8
94049bef1ac2fc28fb56544eed6d1f3b58d6c0dd 01-Apr-2010 Raphael <raphael@google.com> ADT NPW: logging for missing templates.

This does not solve the NPE, it adds even more logging
which will warn users when something goes horribly wrong.
Basically these logs should never happen.

SDK Bug: 2546962

Change-Id: Ibcd4f6fc9efc478d84236003cabde5ccf520a378
549f9917a342048bad555cae00412c7c6c1239aa 01-Apr-2010 Raphael <raphael@google.com> ADT NPW and GLE: fix AdtPlugin.getEmbeddedFileUrl

The method was always adding an initial slash to the path.
This is only needed if the requested path doesn't have one.

This fixes the NPW templates and the GLE scripts usage.

SDK Bug: 2546962

Change-Id: I27c51fa23d968dacccd3d810d522f80504f899cc
19cae15f6c245f277714d84d8a02bc81703ef715 01-Apr-2010 Raphael <raphael@google.com> ADT NPW: logging for missing templates.

This does not solve the NPE, it adds even more logging
which will warn users when something goes horribly wrong.
Basically these logs should never happen.

SDK Bug: 2546962

Change-Id: Id7da9a976535d297dfddb60d9a53899351f9561f
7641cd7668c2dda9d198cc660d58d845de677029 16-Mar-2010 Xavier Ducrohet <xav@android.com> ADT: New project properties panel for libraries.

Change-Id: I21efbcfd4bfcb552e1ecceee7cc611efa6b737f3
83971b0d8b7031bdf1c782e59ebf4bd1301ae013 05-Mar-2010 Xavier Ducrohet <xav@android.com> ADT: reload libraries when default.properties is edited.

Misc: add a folder decorator for library source folders.

Change-Id: I8c9d8abba2341c0caca09ad1bd706613103cee05
d4963dc4347c871be5faa76920709001490e1d2a 24-Feb-2010 The Android Open Source Project <initial-contribution@android.com> snapshot
610a7584cd2ede40772dbe95bd59e525a3859837 19-Feb-2010 Xavier Ducrohet <xav@android.com> ADT: Library support: source folder and pre-compiler.

This is the first step in the library support.
For each library, create a source folder in the main project that
is linked to the source folder of the library project.

The linked resources use a path variable named after the library
in the format: _android_<library name>.
These variables are always created when the link is created.

For now the link is recreated all the time, but we could
do a check and not redo it if it's already done.

Additionally, the pre-compiler creates the R class from
the res folders of the main and library projects.

Some misc fixes/clean-ups:
* Fix an issue with the new ProjectState where opening a
project would not trigger a load of its target data.

* Changed the lock for all SDK operation:
- moved the lock in Sdk accessible as Sdk.getLock()
- made the few Sdk method that used their own synchronize
block use the same lock as all others.

* removed the builders project and moved its content to sdklib
This was meant as a way to share code between the Eclipse
builders and the Ant tasks but sdklib is already used by
both, so it's better to put the code in sdklib than
have yet another project.

Change-Id: Ibfa449c7a809f28e428c03bbda8215969717ecde
d315a6c76d627b5a9d4392dd5cec7bf200d88c68 10-Feb-2010 Raphael <raphael@google.com> ADT GRE: Resolve gscripts groovy imports.

This reconfigures the Groovy engine:
- The user projects /gscripts folder is added to the groovy class path
(so user can import their own local classes.)
- The IViewRule package is added as a default import (using the
import .* syntax), which means the scripts don't have the specify
every single import anymore.
- Our scripts can now extend each others -- as long as the classes are
in our package they will be resolved and loaded.

Change-Id: I79dabf7d1317a1bf4a0fc04ee8ba0987dca7da15
e13151727c63786342cddc3ea355425582bd4e7a 13-Jan-2010 The Android Open Source Project <initial-contribution@android.com> android-2.1_r1 snapshot
cff0d285d79844c31be56ae49837d83e8742e512 08-Jan-2010 Xavier Ducrohet <xav@android.com> ADT/GLE: Fix issue with the locale list refresh in the ConfigComposite

One of the problem stemmed from the ResourceMonitor sending removed
resource events to the ResourceManager first and then to other listeners.
Other listeners then failed to get a corresponding ResourceFolder
or ResourceFile since it was deleted by the ResourceManager.

Solution: add a resource-specific change listener in the ResourceManager.
Using this listener is much more efficient as the ResourceFolder/File
do not need to be figured out by the listener from the IFolder/IFile.

Also renamed the ResourceMonitor as it's confusing (it listens to
Eclipse resource changes, not Android project resource changes).
Since it deals mostly with projects and their resources, and is
global and used by other monitor, it's now called GlobalProjectMonitor.

Also cleaned up the ResourceManager and LayoutReloadMonitor to
implements their interface as internal classes so that the
methods do not show up in their public API.

Change-Id: I1967a48364fd946c98d9eee5bd4a333fc01bea2d
26ecc760b9abbd827c6587a9bb61ca29a6bc95ae 04-Jan-2010 Raphael <raphael@google.com> ADT GRE: move scripts to ADT /gscripts.

So right now we have:
- some GRE/GLE code in internal that uses the scripts
- the "public" bases client classes in ADT src/gscripts (not internal)
- the "client scripts" in ADT /gscripts.
- projects use their own /gscripts folder.

Change-Id: I899d272233f35f493317a56fde60eb7e4a257c7a
8fbb33e21e7b6c0d13c9b368c4a24f6c13809027 02-Jan-2010 Raphael <raphael@google.com> ADT GRE (Groovy Rules Engine), drag'n'drop.

Start support for drag'n'drop. with visual feedback.

Change-Id: I27f896c2e954dec0cb43103417d888d8df5a288e
4b26e04436587890f9245eda631f643d21f28d0d 26-Dec-2009 Raphael <raphael@google.com> ADT GRE (Groovy Rules Engine), part 1.

This CL adds the new "Groovy Rules Engine" (GRE) to the GLE2.

The rules engine can load groovy files located in the ADT
namespace or the project associated with the current GLE2.
Each groovy file defines a class with callbacks invoked
by the LayoutCanvas.
Project rules are reloaded when they change.

Change-Id: I168234da739b2120374d3eb4552169f7dd36439d
c19f3f1b80167dfef357b1bd1db05a02aa6d43af 20-Dec-2009 Raphael <raphael@google.com> ADT: Fix potential NPE.

Workbench.getActiveWorkbenchWindows() can potentially return null.
That just happened to me when trying to update an SVN project.

Change-Id: Iaadf3b84778f2f556b66fbc94fd8a59c7cb14b3d
9e2ff90642669592f832d9f1cb56cc6871d5aaab 16-Dec-2009 Xavier Ducrohet <xav@android.com> Prevent project from building before their target data has been loaded.

Projects that attempts to build before their target data has been loaded
are put in a list of project to be recompile upon load completion.

Bug: 2303254
Change-Id: Iad9a652ac5455432b2616334bcc8536e169c2adb
b26699c2e42ff60ce56a07e2550e42223c5cc361 11-Dec-2009 Xavier Ducrohet <xav@android.com> Update builder to check for native libs in 3rd party jar.

- Apkbuilder now look for .jnilib / .so libs in 3rd party jars files
and complain if any are found
- preferences to set error/warning on libraries that don't interfer with
NDK native lib path

- refactoring of the Preferences into AdtPrefs as too much was getting
in AdtPlugin. Merged the PreferenceInitializer into AdtPrefs.

- merged AdtConstants and AndroidConstants, as there were remnants of
the common/adt/editor merge.

- Looks like there are issues with some markers. I did some changes
but I'll clean it up in the next commit.

BUG 2242132

Change-Id: I21c4911e9c8bd32fcff17a7788b37d920b7acbf5
2fb27a8d7f3c4636c775377cd09fa6b00c077440 08-Dec-2009 Xavier Ducrohet <xav@android.com> Load the SDK target data dynamically when a project requires it.

BUG 2303254

Change-Id: Iba88d526f50218bb57c41109ca1777bad441bb00
312c9ed171a7fff530b3b7a4e6a87ead9b0d6522 13-Nov-2009 Jean-Baptiste Queru <jbq@google.com> eclair snapshot
635e7791a5840d95212a0b62a4e3ec5eae0e16fa 19-Oct-2009 Xavier Ducrohet <xav@android.com> Fix a deadlock when ADT starts, starts building projects, and load the SDK at the same time.
9c4bc5cdb4d124544003bfbd9177cc4033f8d446 01-Oct-2009 Xavier Ducrohet <xav@android.com> UI to manage/create custom Layout Devices.

Change-Id: Idc447b4136a6f709d7a665321af68de552ec613a
581d5a47537a7e7fde6f347f5478194c04ca4957 28-Sep-2009 Xavier Ducrohet <xav@android.com> Parse add-on supplied layout devices.

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
54ac27c96fb439b4d61e3182f3ef998ac1198515 27-Aug-2009 Raphael <raphael@google.com> ADT: GraphicalEditorPart is the new GLE2.

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
84a86abc6eac3f7a179614b6e3f1fbc09cf05940 17-Aug-2009 Xavier Ducrohet <xav@android.com> ADT Export wizard now calls ZipAlign
2c4f84d0b623be5e5ad2878f0be76c111c871134 30-Jul-2009 Xavier Ducrohet <xav@android.com> Adds call back to the SDK updater for SDK content notifications.

Make ADT reload the SDK when a new package is installed/removed through the
SDK Updater.
71ee649b52634b28fa14355b57dd0b3536b09504 05-Jun-2009 Raphael <raphael@google.com> ADT: make sure to log exceptions that might happen when
loading the SDK.
830580fc7fd8e954118c1160a8484e242d73651c 14-May-2009 Xavier Ducrohet <xav@android.com> Remove duplicate initialization in AdtPlugin.

The is a remnant of the old #start() method of the Editors Plugin class.
60a544ae112b5b6a7bba76e3357f143bc207ce6b 14-May-2009 Xavier Ducrohet <xav@android.com> ADT: Refactoring classes dealing with android resources out of the editor.

Basically:
editors.resources.manager -> resources.manager
editors.resources.configurations -> resources.configurations

This is to make it less confusing between the "Resources editors" and the
class parsing/handling Android resources (either in a project or in the
framework).
Also moved the ResourceExplorerView out of the resources editors, and clean
up a few other misc classes.
69425d803b34589309a69eddc53a338e1409b30c 14-May-2009 Xavier Ducrohet <xav@android.com> ADT: Move more packages into internal:

editors -> adt.internal.editors.

This also marks the final refactoring of combining previous editors/common
plugin under the adt package.
f2880494706ad8dfd43e21471096216be4ca7c69 14-May-2009 Xavier Ducrohet <xav@android.com> ADT: Move more packages into internal.

common.project -> adt.internal.project
adt.resources -> adt.internal.resources
adt.wizards.* -> adt.internal.wizards
adt.ui -> adt.internal.ui
99b9ad2143e5e9e626879309ecc6f883403bdcae 14-May-2009 Xavier Ducrohet <xav@android.com> ADT: Move more packages into internal

project.*
refactorings.*

Also: moved the export wizard from project.export to wizards.export, moved some
actions out of project into the new internal package actions.
2cbd4af191586dedcb05e5ade868ba5bab848ad3 14-May-2009 Xavier Ducrohet <xav@android.com> ADT: Remove StreamHelper and integrate it in AdtPlugin.

StreamHelper was used before by AdtPlugin, DdmsPlugin and EditorsPlugin. It's now
only used by AdtPlugin, so the only 2 methods in it can go in AdtPlugin.
I merged the externalized string in the messages.properties file used by AdtPlugin.
85211cd176c655f245e46b753926089adaf2a6fd 14-May-2009 Xavier Ducrohet <xav@android.com> Moved more ADT packages into internal.

adt.build
adt.launch.*
adt.preferences

Also started combining adt and common.
b6f840bdf6243d580594caaa7b54865a2313a25b 29-Apr-2009 Raphael <raphael@google.com> ADT #1820114: Provide a quick UI to edit AVD.

This is temporary and will be replaced once we get the standalone AVD UI.
ff9c21ab084afbe147b0f7fff71cfb90f250e966 27-Apr-2009 Xavier Ducrohet <xav@android.com> Fix the opt-in window for usage stat so that it works when running from ADT.
05ae257f5559e4db06a8b5b4f89b03f7e2321cb0 19-Apr-2009 Raphael Moll <> AI 146600: am: CL 146597 am: CL 146595 ADT #1794560: prevent from loading more than one SDK at once.
Original author: raphael
Merged from: //branches/cupcake/...
Original author: android-build

Automated import of CL 146600
bacd7355b08936f53dc0d0fd3a8d803b05d60208 16-Apr-2009 Raphael Moll <> AI 146597: am: CL 146595 ADT #1794560: prevent from loading more than one SDK at once.
Original author: raphael
Merged from: //branches/cupcake/...

Automated import of CL 146597
d9a90cfa5941b4039feb04b92201b85b02856ccc 16-Apr-2009 Raphael Moll <> AI 146595: ADT #1794560: prevent from loading more than one SDK at once.
BUG=1794560

Automated import of CL 146595
ee76a2912fa5611f18dd6d46d7ed4c7b6037bbb8 01-Apr-2009 Raphael Moll <> AI 143886: am: CL 143882 ADT #1743364: Refactor misc UI widgets together in package adt.ui.
Original author: raphael
Merged from: //branches/cupcake/...

Automated import of CL 143886
1389a6b5f99f79e9eb2a1ff2b2a8dff24bc0d817 01-Apr-2009 Raphael Moll <> AI 143887: am: CL 143886 am: CL 143882 ADT #1743364: Refactor misc UI widgets together in package adt.ui.
Original author: raphael
Merged from: //branches/cupcake/...
Original author: android-build
Merged from: //branches/donutburger/...

Automated import of CL 143887
0b98ec74ff26f922ef99c4acf1431f6e8d3dac27 01-Apr-2009 Raphael Moll <> AI 143882: ADT #1743364: Refactor misc UI widgets together in package adt.ui.
BUG=1743364

Automated import of CL 143882
7be809ab69a6d931793ce1ede742a0763e413243 25-Mar-2009 Ricky Ng-Adam <> Automated import from //branches/master/...@141511,141511
0cae8d05fb387d895254779475fe15d39fe322ab 25-Mar-2009 Ricky Ng-Adam <> Automated import from //branches/donutburger/...@141508,141508
41373ab8b25e9f6cbc88c367de753d7c5bfa1752 20-Mar-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //branches/cupcake_rel/...@141571
1c8fdff64e5cb89e687925812ea0b372e0db72bc 19-Mar-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //branches/cupcake_rel/...@140373
67dc23a61d888ba1b39fe6ed23d9f4d1a3df80ee 09-Mar-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //branches/cupcake/...@137197
55a2c71f27d3e0b8344597c7f281e687cb7aeb1b 04-Mar-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //depot/cupcake/@135843
82ea7a177797b844b252effea5c7c7c5d63ea4ac 04-Mar-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //depot/cupcake/@135843
c9432be76d50a527da232d518f633add2f76242b 03-Mar-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //depot/cupcake/@132589
382f18c205f459fdd9ff6c0657beadcbfe3c5b01 03-Mar-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //depot/cupcake/@137055
4fd2474506c1ea3cb96e128d72db2a18ec1e258d 19-Feb-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //branches/cupcake/...@132276
b58a893bf9ba96db9a544cd33af4828826b73061 13-Feb-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //branches/cupcake/...@131421
a1514dae8668c48feae5436285e3db0ba2133ec3 10-Jan-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //branches/cupcake/...@125939
9ca1c0b33cc3fc28c21a915730797ec01e71a152 18-Dec-2008 The Android Open Source Project <initial-contribution@android.com> Code drop from //branches/cupcake/...@124589
1506a206c0a5e3b593c4c61a62b8805b64e98daf 21-Oct-2008 The Android Open Source Project <initial-contribution@android.com> Initial Contribution