EA-45750 fix assertion
IDEA-106894 cache parsed Android sdk [rev=yole]
EA-40943 fix ZipException: report error to event log
IDEA-106896 cache the result of getAllAndroidDependencies; compute both lib dependencies and full list in one traverse [rev=yole]
optimization: reverse list after collecting instead of adding items to the head [rev=yole]
IDEA-106895 optimize calculating the validity state of aapt: do not reparse value resource XML files that are not changed since last build session [rev=yole]
extract method
cache the result of parsing value resource XML file, because it may be requested several times. for example in app->lib structure, if strings.xml file in lib module is changed, it'll be used twice [rev=yole]
fix: we need to update state, because it also contains myValueResFilesTimestamps not taking into account by equalsTo() [rev=yole]
cosmetics
IDEA-105941 if we haven't found related dependency, check for artifact of another version [rev=sergey.evdokimov]
refactor move AndroidExternalApklibDependenciesManager.MyResolvedInfo to upper level (MavenArtifactResolvedInfo) [rev=sergey.evdokimov]
renames: MavenArtifactResolvedInfo: myApklibDependencies->myDependencies; AndroidExternalApklibDependenciesManager: setSdkInfoForArtifact->setResolvedInfoForArtifact [rev=sergey.evdokimov]
AndroidExternalApklibDependenciesManager.create() method [rev=sergey.evdokimov]
refactor: pass artifactMavenId to importSdkAndDependenciesForApklibArtifact() instead of artifact [rev=sergey.evdokimov]
avoid SOE: first add empty resolved info and then perform resolve of dependent artifact, after it set correct values for the resolved info; also check if some info added before calling doResolveApklibArtifact() [rev=sergey.evdokimov]
refactor: pass artifact mavenId and path instead of whole artifact to importExternalApklibArtifact() [rev=sergey.evdokimov]
refactor: extract doImportExternalApklibDependency method [rev=sergey.evdokimov]
refactor: create and pass MavenDependencyInfo object to doImportExternalApklibDependency instead of artifact [rev=sergey.evdokimov]
IDEA-105941 import all reachable versions of external apklib artifact: for example if app->ext_apklib_A, app->ext_apklib_B:1.0 and ext_apklib_A->ext_apklib_B:2.0, then we should import both versions of ext_apklib_B: ext_apklib_A autogenerated module will depends on ..._B_2.0 [rev=sergey.evdokimov]