mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
EA-33676 pass unwrapped resource resolver for legacy sessions
This commit is contained in:
@@ -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 {
|
||||
|
||||
Reference in New Issue
Block a user