Add markup format to error messages

Lint already supports marked up text; issue explanations can already
contain markup like *bold* and `symbol`, and it can convert this to
plain text or HTML markup. The latter is used not just in HTML reports
but in IDE reports.

Now that we support HTML markup in IDE tooltip messages, this CL
extends this facility from issue descriptions and explanations to the
lint error messages and location descriptions as well, and formalizes
the concept a bit more. Rather than the output format being an enum
inside the Issue class specialized as parameters to the getDescription
and getExplanation methods, it is now a top-level class itself,
TextFormat, which has methods to convert between the different formats
(raw, text, tml) and the text format is passed along to the reporting
clients.

These changes are pretty small; most of the changes in this CL simply
mark up symbols in error messages, so instead of saying
 Overriding method should call super.onDetachedFromWindow
it now says
 Overriding method should call `super.onDetachedFromWindow`
which in the IDE will be rendered as
 Overriding method should call <code>super.onDetachedFromWindow</code>

Change-Id: Ifb87c3cd1e9f0fd68854fd1e6a0c136c083da5d1
Remove lint issue descriptions

We no longer need the issue medium descriptions (we only
use the brief summaries and the full explanations), so I deleted those
to remove the size of the string pool (and to avoid having to keep
writing these when adding new lint rules.)

Change-Id: Ib0cc1904ecb7e34940bff41428795ab3335abf97
75879: Don't force full translation for regional strings

If your base strings in the values/ folder are in English,
and you customize a few of these in (for example) values-en-rGB,
lint currently flags these strings as missing from the values-en
locale, so you'd need to go and duplicate all the strings in values/
over in values-en/.

Lint already has a way to let you specify what your default language
is (e.g. tools:locale="es" on the root element in one of your strings.xml
files), but if it's not specified anywhere, default this to English.

Change-Id: I5b95d2d5f0a408f67adc5330d20e838c028745ba
Add lint JavaScanner API to support specific subclasses

Many lint checks apply only to specific subclasses; e.g. views related
to custom view only apply to classes that extend android.view.View.

This CL adds more direct support for this, where at detector can
declare the superclasses that it is interested in, and it will then
only get called for classes that extend one of those
superclasses. This not only makes the lint detectors simpler (since
they don't have to provide their own visitor) but it's also more
efficient, since we don't have to have each and every detector do
their own type resolution from the AST class declaration followed by
their own inheritance chain search.

Change-Id: Id72f377219438061d093e1d2b72113229d800b65
Remove the optional data attribute for lint errors

Lint has a concept of "additional data" in its reporting API.  The
intent here was to support IDE quickfixes such that they don't have to
go and dig details out of error messages. For example, if you are
reporting that the class CalendarView requires API 11, in addition to
the error message reported to the user, the lint detector would pass
"android.widget.CalendarView" and "11" as optional data. That way an
IDE quickfix doesn't have to dig this out of the error message (which
can be sensitive to the exact format of the error message).

However, this did not work out in practice. In Eclipse for example
each lint error is turned into an IMarker, which is then managed and
persisted with the IDE and there is no easy way to store additional
attributes for these. Therefore, quickfixes had to rely on strings
anyway, so none of the 200 lint rules supply this optional data at
this point. However, it's part of the API so every since report call
has an extra null parameter.

Since we're making a couple of other API changes to the reporting API
(to support markup) this seemed like the right time to also clean this
up.

Change-Id: Idc957f1170015fde7c12f709312f0fd5ba4a5151
Merge "Add markup format to error messages" into idea133
Merge "Remove lint issue descriptions" into idea133
Merge "75879: Don't force full translation for regional strings" into idea133
Merge "Add lint JavaScanner API to support specific subclasses" into idea133
Merge "Remove the optional data attribute for lint errors" into idea133
Fix aar output names.

All variants used the same name and overwrote each other.

Change-Id: I632110c3ebf87fb840cc7839da0a50305c4ca177
Fix install story for multi-output variants.

Make running tests and install app on device support
multi-output variant.

The installation process now dynamically match an
output to each connected devices.

Removed install task from each output as the variant
based one can handle the different output now.

Change-Id: Ifb32257d8f61329fc552112d1cdfc17a0651508d
Merge "Fix install story for multi-output variants." into idea133
Merge "Fix aar output names." into idea133
Fix misc issue with report merging and dex.

Change-Id: I82e535c7e08f6cdc565e4601ef91d8721bd7ddee
Merge "Fix misc issue with report merging and dex." into idea133
Write test to check debug/release file name.

This is to test the fix done in c6ee0e where
I fixed the name of the debug/release library to not
be the same.

This test looks at both app and lib projects and compare
the filename of the debug and release output file to make
sure they are not the same.

Change-Id: Ie5891c73bce9804df31d3c40087f4e9b5b8db79c
Merge "Write test to check debug/release file name." into idea133
Fix issue with with proguard config from aar.

This was a timing issue between configuring the proguard
task with config files coming from aars and unzipping the aars.

The configuration only included the config files from aars
if the files already existed, which is not possible on first
run when the aars haven't been unzipped yet.

Since proguard does not care about file existence during
configuration, we can include the files even if they
don't exist.

Issue 69625

Change-Id: Ic77c70c686f67863f88004d57ded867f74b81c38
Merge "Fix issue with with proguard config from aar." into idea133