Use the recommended Gradle plugin version, not the latest version

Change-Id: I31c83dc951b69c46c8952bab9e9ce09b6973caa1
(cherry picked from commit 514bf0266fb6f71d37bba59927bcfd5abcf90faf)
Merge "Use the recommended Gradle plugin version, not the latest version" into idea133-milestone
navigator: Add jniLibs as an additional source type.

jniLibs was already part of the SourceProvider interface, but not
IdeaSourceProvider.

Fixes https://code.google.com/p/android/issues/detail?id=74068

Change-Id: Ic39b093ef98df25598f49f915bc314ea5281666a
(cherry picked from commit 9fcacefb0ebdc4ea70f15d850f3f7ac3625f65bd)
Merge "navigator: Add jniLibs as an additional source type." into idea133-milestone
navigator: Show instrumentation test sources

Android instrumentation test sources are provided as part of
an extra source set. This CL incorporates those source sets when
computing the list of files to the Android Navigator view.

Currently, the test sources are actually merged along with
the regular sources. In a future CL, we can investigate making
this an option (possibly pulling out the tests and all source types
to be a separate node).

Fixes https://code.google.com/p/android/issues/detail?id=74063

Change-Id: I93c7ef15af98e05c96bd15a6ed85f47bf843bc2b
(cherry picked from commit 600805094902a8fabc3b07003c1f23edd9bbbb04)
Merge "navigator: Show instrumentation test sources" into idea133-milestone
navigator: Fix NPE that occurs when a psiFile becomes invalid

Fixes https://code.google.com/p/android/issues/detail?id=74047

Change-Id: I62db28b2307599992ca11be192a781b681dead4b
(cherry picked from commit ddbece6261f85f02f8f37ac7f1d6bcd0aa7d4e99)
Merge "navigator: Fix NPE that occurs when a psiFile becomes invalid" into idea133-milestone
device panel and process chooser: Show user id if applicable

On a multi user device, append the user id to the process name
so as to allow distinguishing between the same packages running
on different accounts.

Fix for b/16701966

Change-Id: I247d7fa50845feda88a3040537e13ab167750b5e
(cherry picked from commit 03045f423409f340f0fa3f5fa2e2fbd85d044b66)
Merge "device panel and process chooser: Show user id if applicable" into idea133-milestone
Replace treeStructureProvider with nodeDecorator

We introduced a treeStructureProvider earlier (1c68971dea0) in order
to change the displayed name for the build folder in cases where it
is outside the project root. This provider was then enhanced
(in 49af431c) to customize the icons displayed for modules.

Both these use cases can be handled using node decorator instead of
a full tree provider. This CL removes that tree structure provider
and replaces it with two node decorators: one that updates the build
folder name and another for the module icons.

Change-Id: I8f41e699cddd0384c93f17e10ad9dfbcc7fd03f9
(cherry picked from commit 6ec816c056bb6aeedac6139903202c2f312c6a1d)
Merge "Replace treeStructureProvider with nodeDecorator" into idea133-milestone
navigator: Provide VIRTUAL_FILE_ARRAY context data

This is required for certain actions that look at the list of
selected files. e.g. Synchronize selected files needs to know
the list of files that have been selected.

Fixes https://code.google.com/p/android/issues/detail?id=74054

Change-Id: Ib763729af4d5d3c3aad43e21833dbcae758eb7ab
(cherry picked from commit c9c25dc9c8ba90caab24f4447f01252c64033fde)
Merge "navigator: Provide VIRTUAL_FILE_ARRAY context data" into idea133-milestone
navigator: Show source providers for java packages

When multiple Java sourcesets are present (from different source
providers), the android view simply puts them all inside the java
source type. This results in a view like:
 - java
   -- com.foo.pkg
   -- com.foo.pkg
where the two packages come from two different source sets, and
are physically present in different folders (src/main/java and
src/debug/java for example).

In order to distinguish between these two, this CL appends the
name of the source set to those packages.

Fixes https://code.google.com/p/android/issues/detail?id=74149

Change-Id: I3afd24b9f52064e1aad17d4ae9b6582cb8d9b345
(cherry picked from commit 6d4225e7468f36042d2b169f3b7cf95758b51d66)
Merge "navigator: Show source providers for java packages" into idea133-milestone
Apply node decorators only in the project has an Android Facet.

This CL re-implements commit 89a83f764 done by Jetbrains in
the master branch. We don't use a tree structure provider anymore,
but we include the same checks in the node decorators.

Change-Id: I95a9103abfaf4fd38f531414f9c744e8a8e07d25
(cherry picked from commit c9fdfce7b3808f7ce28f6fbe5d3dd4131fe5b70a)
Merge "Apply node decorators only in the project has an Android Facet." into idea133-milestone
Fixed issue where resources in AAR dependencies were not found.

Apparently Android Gradle plug-in v0.12.2 broke this
functionality. The folder 'exploded-aar' used to be in the
top-level 'build' directory and now it is in the module's
'build' directory, where it was excluded from the project.

Fixes issue
https://code.google.com/p/android/issues/detail?id=74341

UI test in
https://android-review.googlesource.com/103192

Change-Id: I17437180396406215f9dcb17430e8ee3ca095ce6
(cherry picked from commit 2e4028deab6d5e061fb364c2fad066add43dccfb)
Merge "Fixed issue where resources in AAR dependencies were not found." into idea133-milestone