EA-33676 pass unwrapped resource resolver for legacy sessions

This commit is contained in:
Eugene Kudelevsky
2012-03-15 22:35:29 +04:00
parent ea06cf4311
commit 252620cac3
3 changed files with 19 additions and 12 deletions
@@ -42,6 +42,7 @@ class RenderService {
private final IProjectCallback myProjectCallback;
private final RenderResources myResourceResolver;
private final RenderResources myLegacyResourceResolver;
private final LayoutLibrary myLayoutLib;
private final FolderConfiguration myConfig;
private final int myMinSdkVersion;
@@ -50,6 +51,7 @@ class RenderService {
RenderService(LayoutLibrary layoutLibrary,
@NotNull RenderResources resourceResolver,
@NotNull RenderResources legacyResourceResolver,
FolderConfiguration config,
float xdpi,
float ydpi,
@@ -57,6 +59,7 @@ class RenderService {
int minSdkVersion) {
myLayoutLib = layoutLibrary;
myResourceResolver = resourceResolver;
myLegacyResourceResolver = legacyResourceResolver;
myConfig = config;
myProjectCallback = projectCallback;
myMinSdkVersion = minSdkVersion;
@@ -91,8 +94,10 @@ class RenderService {
final float xdpi = Float.isNaN(myXdpi) ? density.getDpiValue() : myXdpi;
final float ydpi = Float.isNaN(myYdpi) ? density.getDpiValue() : myYdpi;
final RenderResources resolver = myLayoutLib.getRevision() > 0 ? myResourceResolver : myLegacyResourceResolver;
final SessionParams params =
new SessionParams(parser, RenderingMode.NORMAL, this, dimension.width, dimension.height, density, xdpi, ydpi, myResourceResolver,
new SessionParams(parser, RenderingMode.NORMAL, this, dimension.width, dimension.height, density, xdpi, ydpi, resolver,
myProjectCallback, minSdkVersion, targetSdkVersion, new SimpleLogger(LOG));
params.setExtendedViewInfoMode(false);
@@ -35,6 +35,7 @@ import com.intellij.openapi.application.ApplicationNamesInfo;
import com.intellij.openapi.diagnostic.Logger;
import com.intellij.openapi.project.DumbService;
import com.intellij.openapi.util.Computable;
import com.intellij.openapi.util.Pair;
import com.intellij.openapi.util.io.FileUtil;
import com.intellij.openapi.vfs.LocalFileSystem;
import com.intellij.openapi.vfs.VirtualFile;
@@ -75,11 +76,11 @@ public class RenderServiceFactory {
return null;
}
public RenderResources createResourceResolver(final AndroidFacet facet,
FolderConfiguration config,
ProjectResources projectResources,
String themeName,
boolean isProjectTheme) {
public Pair<RenderResources, RenderResources> createResourceResolver(final AndroidFacet facet,
FolderConfiguration config,
ProjectResources projectResources,
String themeName,
boolean isProjectTheme) {
final Map<ResourceType, Map<String, ResourceValue>> configedProjectRes = projectResources.getConfiguredResources(config);
DumbService.getInstance(facet.getModule().getProject()).waitForSmartMode();
@@ -99,16 +100,17 @@ public class RenderServiceFactory {
final Map<ResourceType, Map<String, ResourceValue>> configedFrameworkRes = myResources.getConfiguredResources(config);
final ResourceResolver resolver = ResourceResolver.create(configedProjectRes, configedFrameworkRes, themeName, isProjectTheme);
return new ResourceResolverDecorator(resolver);
return new Pair<RenderResources, RenderResources>(new ResourceResolverDecorator(resolver), resolver);
}
public RenderService createService(RenderResources resources,
RenderResources legacyResources,
FolderConfiguration config,
float xdpi,
float ydpi,
IProjectCallback projectCallback,
int minSdkVersion) {
return new RenderService(myLibrary, resources, config, xdpi, ydpi, projectCallback, minSdkVersion);
return new RenderService(myLibrary, resources, legacyResources, config, xdpi, ydpi, projectCallback, minSdkVersion);
}
private RenderServiceFactory(@NotNull Map<String, Map<String, Integer>> enumMap) {
@@ -116,9 +116,9 @@ public class RenderUtil {
LOG.debug(e);
}
final RenderResources resolver =
final Pair<RenderResources, RenderResources> pair =
factory.createResourceResolver(facet, config, projectResources, theme.getName(), theme.isProjectTheme());
final RenderService renderService = factory.createService(resolver, config, xdpi, ydpi, callback, minSdkVersion);
final RenderService renderService = factory.createService(pair.getFirst(), pair.getSecond(), config, xdpi, ydpi, callback, minSdkVersion);
try {
return renderService.createRenderSession(layoutXmlText, getAppLabelToShow(facet));
@@ -192,9 +192,9 @@ public class RenderUtil {
rClassName = e.getClassName();
}
final RenderResources resolver =
final Pair<RenderResources, RenderResources> pair =
factory.createResourceResolver(facet, config, projectResources, theme.getName(), theme.isProjectTheme());
final RenderService renderService = factory.createService(resolver, config, xdpi, ydpi, callback, minSdkVersion);
final RenderService renderService = factory.createService(pair.getFirst(), pair.getSecond(), config, xdpi, ydpi, callback, minSdkVersion);
final RenderSession session;
try {