mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
Renderer timeout
This commit is contained in:
+8
-3
@@ -320,9 +320,14 @@ public final class AndroidDesignerEditorPanel extends DesignerEditorPanel {
|
||||
float xdpi = deviceConfiguration.getDevice().getXDpi();
|
||||
float ydpi = deviceConfiguration.getDevice().getYDpi();
|
||||
|
||||
mySession = RenderUtil
|
||||
.createRenderSession(getProject(), layoutXmlText, myFile, manager.getSelectedTarget(), facet, config, xdpi, ydpi,
|
||||
manager.getSelectedTheme());
|
||||
while (true) {
|
||||
mySession = RenderUtil
|
||||
.createRenderSession(getProject(), layoutXmlText, myFile, manager.getSelectedTarget(), facet, config, xdpi, ydpi,
|
||||
manager.getSelectedTheme(), 10000);
|
||||
if (mySession.getResult().getStatus() != Result.Status.ERROR_TIMEOUT) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
ApplicationManager.getApplication().invokeLater(new Runnable() {
|
||||
@Override
|
||||
|
||||
@@ -69,7 +69,7 @@ class RenderService {
|
||||
|
||||
@Nullable
|
||||
@SuppressWarnings("IOResourceOpenedButNotSafelyClosed")
|
||||
public RenderSession createRenderSession(@NotNull String layoutXmlText, @NotNull String appLabel)
|
||||
public RenderSession createRenderSession(@NotNull String layoutXmlText, @NotNull String appLabel, long timeout)
|
||||
throws FileNotFoundException, XmlPullParserException {
|
||||
|
||||
final ILayoutPullParser parser = new XmlParser();
|
||||
@@ -102,6 +102,7 @@ class RenderService {
|
||||
|
||||
params.setExtendedViewInfoMode(false);
|
||||
params.setAppLabel(appLabel);
|
||||
params.setTimeout(timeout);
|
||||
|
||||
final ScreenSizeQualifier screenSizeQualifier = myConfig.getScreenSizeQualifier();
|
||||
params.setConfigScreenSize(screenSizeQualifier != null ? screenSizeQualifier.getValue() : ScreenSize.NORMAL);
|
||||
|
||||
@@ -1,8 +1,6 @@
|
||||
package org.jetbrains.android.uipreview;
|
||||
|
||||
import com.android.ide.common.rendering.api.RenderResources;
|
||||
import com.android.ide.common.rendering.api.RenderSession;
|
||||
import com.android.ide.common.rendering.api.Result;
|
||||
import com.android.ide.common.rendering.api.*;
|
||||
import com.android.ide.common.resources.ResourceDeltaKind;
|
||||
import com.android.ide.common.resources.ResourceFolder;
|
||||
import com.android.ide.common.resources.ResourceRepository;
|
||||
@@ -73,7 +71,8 @@ public class RenderUtil {
|
||||
@NotNull FolderConfiguration config,
|
||||
float xdpi,
|
||||
float ydpi,
|
||||
@NotNull ThemeData theme)
|
||||
@NotNull ThemeData theme,
|
||||
long timeout)
|
||||
throws RenderingException, IOException, AndroidSdkNotConfiguredException {
|
||||
final Sdk sdk = ModuleRootManager.getInstance(facet.getModule()).getSdk();
|
||||
if (sdk == null || !(sdk.getSdkType() instanceof AndroidSdkType)) {
|
||||
@@ -121,7 +120,7 @@ public class RenderUtil {
|
||||
final RenderService renderService = factory.createService(pair.getFirst(), pair.getSecond(), config, xdpi, ydpi, callback, minSdkVersion);
|
||||
|
||||
try {
|
||||
return renderService.createRenderSession(layoutXmlText, getAppLabelToShow(facet));
|
||||
return renderService.createRenderSession(layoutXmlText, getAppLabelToShow(facet), timeout);
|
||||
}
|
||||
catch (XmlPullParserException e) {
|
||||
throw new RenderingException(e);
|
||||
@@ -198,7 +197,7 @@ public class RenderUtil {
|
||||
|
||||
final RenderSession session;
|
||||
try {
|
||||
session = renderService.createRenderSession(layoutXmlText, getAppLabelToShow(facet));
|
||||
session = renderService.createRenderSession(layoutXmlText, getAppLabelToShow(facet), RenderParams.DEFAULT_TIMEOUT);
|
||||
}
|
||||
catch (XmlPullParserException e) {
|
||||
throw new RenderingException(e);
|
||||
|
||||
Reference in New Issue
Block a user