History log of /sdk/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/editors/layout/configuration/ConfigurationMatcher.java
Revision Date Author Comments
48461e4e266740d8720b0c37e2aec0281a1b4ac0 22-Jul-2013 Siva Velusamy <vsiva@google.com> Change import path to sparse array

Change-Id: I9862a6ebc25b4c13488b9fe0451bdfd8f5a6ef26
b5b78c0ae5fb49867e9e4458bd95d7a60baf0eca 06-Dec-2012 Tor Norbye <tnorbye@google.com> Support layout aliases properly

Change-Id: I3c1dac7809a225118b69f1557a42051e96011198
48ba7d81c125b6d46eb76719b62cafcd3dec3f97 18-Oct-2012 Tor Norbye <tnorbye@google.com> Multi-configuration editing bug fixes

This changeset fixes a number of bugs with multi configuration
editing; especially around configuration switching and inheritance, as
well as some memory improvements.

It also synchronizes values between layout variations. If you for
example have layout-land/foo.xml and layout-port/foo.xml and you
change the Theme to Theme.Holo or the device to Galaxy Nexus, the
configurations for both files will be updated (whether or not the
files are open), and provided of course the layout folder doesn't
contradict it; layout-xlarge/foo.xml would be unaffected by the above
edit since Galaxy Nexus doesn't match the layout-xlarge folder.

Change-Id: I5c01555aad8339f68788d8aed1f707d30993ae1b
ec7301a7433cf89c399fa3c507afe8a147adbcba 28-Sep-2012 Tor Norbye <tnorbye@google.com> Multi-Configuration Layout Editing

This changeset adds support for previewing other
configurations (as well as including contexts)
for a layout, with live updates.

Change-Id: Iff3523d6f5749b3287716e563330fb18c8576611
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