diff options
author | Jerome Gaillard <jgaillard@google.com> | 2021-05-04 19:30:56 +0100 |
---|---|---|
committer | Jerome Gaillard <jgaillard@google.com> | 2021-05-10 13:56:53 +0000 |
commit | 7ee3b509fe7fccc27948bc68d2ceec397d4d810e (patch) | |
tree | 55c66c0848a3941725c4c02eee27ca94749ae42a | |
parent | 2c8b7c55cd16e88c58b24e9ad5d995f90ac1424b (diff) | |
download | idea-7ee3b509fe7fccc27948bc68d2ceec397d4d810e.tar.gz |
Create a design tools plugin
This new plugin is contains:
- the designer module
- the nav-editor module
- the compose-designer module
- the customview module
- the layoutlib module
- the layoutlib jar
That corresponds to everything that needs direct access to layoutlib
classes.
It depends on the android plugin, and implements a new extension point,
layoutLibraryProvider, defined in LayoutLibraryLoader. That allows the
android plugin to still have access to a LayoutLibrary, while preventing
it from accessing the internals of layoutlib.
Bug: 187316741
Test: existing tests
Change-Id: I264d82e14cb206fa7e1443cb85a0e2bc1f79c200
45 files changed, 456 insertions, 379 deletions
diff --git a/.idea/modules.xml b/.idea/modules.xml index ecff51908c9..e01ffabd6f3 100644 --- a/.idea/modules.xml +++ b/.idea/modules.xml @@ -132,6 +132,7 @@ <module fileurl="file://$PROJECT_DIR$/debuggers/intellij.android.debuggers.iml" filepath="$PROJECT_DIR$/debuggers/intellij.android.debuggers.iml" /> <module fileurl="file://$PROJECT_DIR$/debuggers/intellij.android.debuggers.tests.iml" filepath="$PROJECT_DIR$/debuggers/intellij.android.debuggers.tests.iml" /> <module fileurl="file://$PROJECT_DIR$/deploy/intellij.android.deploy.iml" filepath="$PROJECT_DIR$/deploy/intellij.android.deploy.iml" /> + <module fileurl="file://$PROJECT_DIR$/design-plugin/intellij.android.design-plugin.iml" filepath="$PROJECT_DIR$/design-plugin/intellij.android.design-plugin.iml" /> <module fileurl="file://$PROJECT_DIR$/designer/intellij.android.designer.iml" filepath="$PROJECT_DIR$/designer/intellij.android.designer.iml" /> <module fileurl="file://$PROJECT_DIR$/designer-perf-tests/intellij.android.designer-perf-tests.iml" filepath="$PROJECT_DIR$/designer-perf-tests/intellij.android.designer-perf-tests.iml" /> <module fileurl="file://$PROJECT_DIR$/designer/customview/intellij.android.designer.customview.iml" filepath="$PROJECT_DIR$/designer/customview/intellij.android.designer.customview.iml" /> @@ -162,8 +163,8 @@ <module fileurl="file://$PROJECT_DIR$/layout-inspector/intellij.android.layout-inspector.tests.iml" filepath="$PROJECT_DIR$/layout-inspector/intellij.android.layout-inspector.tests.iml" /> <module fileurl="file://$PROJECT_DIR$/layout-ui/intellij.android.layout-ui.iml" filepath="$PROJECT_DIR$/layout-ui/intellij.android.layout-ui.iml" /> <module fileurl="file://$PROJECT_DIR$/layoutlib/intellij.android.layoutlib.iml" filepath="$PROJECT_DIR$/layoutlib/intellij.android.layoutlib.iml" /> + <module fileurl="file://$PROJECT_DIR$/layoutlib/intellij.android.layoutlib.tests.iml" filepath="$PROJECT_DIR$/layoutlib/intellij.android.layoutlib.tests.iml" /> <module fileurl="file://$PROJECT_DIR$/layoutlib-loader/intellij.android.layoutlib-loader.iml" filepath="$PROJECT_DIR$/layoutlib-loader/intellij.android.layoutlib-loader.iml" /> - <module fileurl="file://$PROJECT_DIR$/layoutlib-loader/intellij.android.layoutlib-loader.tests.iml" filepath="$PROJECT_DIR$/layoutlib-loader/intellij.android.layoutlib-loader.tests.iml" /> <module fileurl="file://$PROJECT_DIR$/mlkit/intellij.android.mlkit.iml" filepath="$PROJECT_DIR$/mlkit/intellij.android.mlkit.iml" /> <module fileurl="file://$PROJECT_DIR$/mlkit/intellij.android.mlkit.tests.iml" filepath="$PROJECT_DIR$/mlkit/intellij.android.mlkit.tests.iml" /> <module fileurl="file://$PROJECT_DIR$/nav/editor/intellij.android.nav.editor.iml" filepath="$PROJECT_DIR$/nav/editor/intellij.android.nav.editor.iml" /> diff --git a/android-plugin/BUILD b/android-plugin/BUILD index 366424900d5..81e9a822a53 100644 --- a/android-plugin/BUILD +++ b/android-plugin/BUILD @@ -18,7 +18,6 @@ iml_module( "//tools/adt/idea/android:intellij.android.core[module]", "//tools/adt/idea/emulator:intellij.android.emulator[module]", "//tools/adt/idea/sdk-updates:intellij.android.sdkUpdates[module]", - "//tools/adt/idea/designer:intellij.android.designer[module]", "//tools/adt/idea/app-inspection/ide:intellij.android.app-inspection.ide[module]", "//tools/adt/idea/profilers-android:intellij.android.profilersAndroid[module]", "//tools/adt/idea/android-adb:intellij.android.adb[module]", @@ -35,10 +34,7 @@ iml_module( "//tools/adt/idea/android-lang-databinding:intellij.android.lang-databinding[module]", "//tools/adt/idea/databinding:intellij.android.databinding[module]", "//tools/adt/idea/mlkit:intellij.android.mlkit[module]", - "//tools/adt/idea/nav/editor:intellij.android.nav.editor[module]", "//tools/adt/idea/layout-inspector:intellij.android.layout-inspector[module]", - "//tools/adt/idea/compose-designer:intellij.android.compose-designer[module]", - "//tools/adt/idea/designer/customview:intellij.android.designer.customview[module]", "//tools/adt/idea/room:intellij.android.room[module]", "//tools/base/wizard/template-impl:studio.intellij.android.wizardTemplate.impl[module]", "//tools/adt/idea/build-attribution:intellij.android.build-attribution[module]", diff --git a/android-plugin/intellij.android.plugin.iml b/android-plugin/intellij.android.plugin.iml index 320147a059c..c1d55f9127b 100644 --- a/android-plugin/intellij.android.plugin.iml +++ b/android-plugin/intellij.android.plugin.iml @@ -12,7 +12,6 @@ <orderEntry type="module" module-name="intellij.android.core" /> <orderEntry type="module" module-name="intellij.android.emulator" /> <orderEntry type="module" module-name="intellij.android.sdkUpdates" /> - <orderEntry type="module" module-name="intellij.android.designer" /> <orderEntry type="module" module-name="intellij.android.app-inspection.ide" /> <orderEntry type="module" module-name="intellij.android.profilersAndroid" /> <orderEntry type="module" module-name="intellij.android.adb" /> @@ -29,10 +28,7 @@ <orderEntry type="module" module-name="intellij.android.lang-databinding" /> <orderEntry type="module" module-name="intellij.android.databinding" /> <orderEntry type="module" module-name="intellij.android.mlkit" /> - <orderEntry type="module" module-name="intellij.android.nav.editor" /> <orderEntry type="module" module-name="intellij.android.layout-inspector" /> - <orderEntry type="module" module-name="intellij.android.compose-designer" /> - <orderEntry type="module" module-name="intellij.android.designer.customview" /> <orderEntry type="module" module-name="intellij.android.room" /> <orderEntry type="module" module-name="intellij.android.wizardTemplate.impl" /> <orderEntry type="module" module-name="intellij.android.build-attribution" /> diff --git a/android-plugin/src/META-INF/plugin.xml b/android-plugin/src/META-INF/plugin.xml index 7091239a89e..bfe1e7b2476 100755 --- a/android-plugin/src/META-INF/plugin.xml +++ b/android-plugin/src/META-INF/plugin.xml @@ -24,8 +24,6 @@ <xi:include href="/META-INF/databinding.xml" xpointer="xpointer(/idea-plugin/*)"/> <xi:include href="/META-INF/mlkit.xml" xpointer="xpointer(/idea-plugin/*)"/> <xi:include href="/META-INF/sdk-updates.xml" xpointer="xpointer(/idea-plugin/*)"/> - <xi:include href="/META-INF/designer.xml" xpointer="xpointer(/idea-plugin/*)"/> - <xi:include href="/META-INF/naveditor.xml" xpointer="xpointer(/idea-plugin/*)"/> <xi:include href="/META-INF/safeargs.xml" xpointer="xpointer(/idea-plugin/*)"/> <xi:include href="/META-INF/pipeline.xml" xpointer="xpointer(/idea-plugin/*)"/> <xi:include href="/META-INF/profilers.xml" xpointer="xpointer(/idea-plugin/*)"/> @@ -37,8 +35,6 @@ <xi:include href="/META-INF/connection-assistant.xml" xpointer="xpointer(/idea-plugin/*)"/> <xi:include href="/META-INF/whats-new-assistant.xml" xpointer="xpointer(/idea-plugin/*)"/> <xi:include href="/META-INF/layout-inspector.xml" xpointer="xpointer(/idea-plugin/*)"/> - <xi:include href="/META-INF/compose-designer.xml" xpointer="xpointer(/idea-plugin/*)"/> - <xi:include href="/META-INF/customview.xml" xpointer="xpointer(/idea-plugin/*)"/> <xi:include href="/META-INF/app-inspection.xml" xpointer="xpointer(/idea-plugin/*)"/> <xi:include href="/META-INF/app-inspector.xml" xpointer="xpointer(/idea-plugin/*)"/> <xi:include href="/META-INF/workmanager-inspector.xml" xpointer="xpointer(/idea-plugin/*)"/> diff --git a/android/BUILD b/android/BUILD index 117cac95571..c0dc8208289 100644 --- a/android/BUILD +++ b/android/BUILD @@ -68,6 +68,7 @@ iml_module( "//tools/adt/idea/gradle-tooling/studio-gradle-tooling-api:intellij.android.gradle-tooling.api[module]", "//tools/adt/idea/gradle-tooling/studio-gradle-tooling-impl:intellij.android.gradle-tooling.impl[module]", "//tools/base/sdk-common:studio.android.sdktools.sdk-common[module]", + "//tools/base/layoutlib-api:studio.android.sdktools.layoutlib-api[module]", "//tools/base/flags:studio.android.sdktools.flags[module]", "//tools/adt/idea/observable-ui:intellij.android.observable.ui[module]", "//tools/adt/idea/artwork:intellij.android.artwork[module]", @@ -87,7 +88,6 @@ iml_module( "//tools/adt/idea/resources-base:intellij.android.resources-base[module]", "//tools/adt/idea/.idea/libraries:studio-proto", "//tools/adt/idea/.idea/libraries:perfetto-proto", - "//tools/adt/idea/.idea/libraries:layoutlib", "//tools/base/wizard/template-plugin:studio.intellij.android.wizardTemplate.plugin[module]", "//tools/adt/idea/lint:intellij.lint[module]", "//tools/adt/idea/gradle-dsl:intellij.android.gradle.dsl[module]", @@ -370,6 +370,8 @@ iml_module( "//tools/adt/idea/project-system-gradle-repository-search:intellij.android.projectSystem.gradle.repositorySearch[module, test]", "//tools/adt/idea/project-system-gradle-sync:intellij.android.projectSystem.gradle.sync[module, test]", "//tools/adt/idea/utp[module, test]", + "//tools/adt/idea/layoutlib:intellij.android.layoutlib[module, test]", + "//tools/adt/idea/.idea/libraries:layoutlib[test]", ], ) diff --git a/android/intellij.android.core.iml b/android/intellij.android.core.iml index b84866de1f3..7d61b7f840b 100755 --- a/android/intellij.android.core.iml +++ b/android/intellij.android.core.iml @@ -74,6 +74,7 @@ <orderEntry type="module" module-name="intellij.android.gradle-tooling.api" /> <orderEntry type="module" module-name="intellij.android.gradle-tooling.impl" /> <orderEntry type="module" module-name="android.sdktools.sdk-common" /> + <orderEntry type="module" module-name="android.sdktools.layoutlib-api" /> <orderEntry type="module" module-name="android.sdktools.flags" /> <orderEntry type="module" module-name="intellij.android.observable.ui" /> <orderEntry type="module" module-name="intellij.android.artwork" /> @@ -109,7 +110,6 @@ <orderEntry type="module" module-name="intellij.android.resources-base" /> <orderEntry type="library" name="studio-proto" level="project" /> <orderEntry type="library" name="perfetto-proto" level="project" /> - <orderEntry type="library" scope="PROVIDED" name="layoutlib" level="project" /> <orderEntry type="module" module-name="intellij.android.wizardTemplate.plugin" /> <orderEntry type="module" module-name="intellij.lint" /> <orderEntry type="module" module-name="intellij.android.gradle.dsl" /> diff --git a/android/intellij.android.core.tests.iml b/android/intellij.android.core.tests.iml index 967f6d94b57..1bcfe99e379 100644 --- a/android/intellij.android.core.tests.iml +++ b/android/intellij.android.core.tests.iml @@ -135,5 +135,7 @@ <orderEntry type="module" module-name="intellij.android.projectSystem.gradle.repositorySearch" scope="TEST" /> <orderEntry type="module" module-name="intellij.android.projectSystem.gradle.sync" scope="TEST" /> <orderEntry type="module" module-name="utp" scope="TEST" /> + <orderEntry type="module" module-name="intellij.android.layoutlib" scope="TEST" /> + <orderEntry type="library" scope="TEST" name="layoutlib" level="project" /> </component> </module>
\ No newline at end of file diff --git a/android/src/META-INF/android-plugin.xml b/android/src/META-INF/android-plugin.xml index c25a5e4e45f..f84bd93f06e 100644 --- a/android/src/META-INF/android-plugin.xml +++ b/android/src/META-INF/android-plugin.xml @@ -24,8 +24,6 @@ <depends>com.android.tools.idea.smali</depends> <depends>org.jetbrains.kotlin</depends> - <depends optional="true" config-file="layoutlib.xml">com.android.layoutlib</depends> - <depends optional="true" config-file="androidstudio.xml">com.intellij.modules.androidstudio</depends> <depends optional="true" config-file="database-support.xml">com.intellij.database</depends> @@ -97,9 +95,6 @@ <action id="Android.CreateResourceDirectory" class="org.jetbrains.android.actions.CreateResourceDirectoryAction"> <add-to-group group-id="NewGroup" anchor="after" relative-to-action="Android.CreateResourcesActionGroup"/> </action> - <action id="Android.CreateSampleDataDirectory" class="com.android.tools.idea.actions.CreateSampleDataDirectory"> - <add-to-group group-id="NewGroup" anchor="after" relative-to-action="Android.CreateResourceDirectory"/> - </action> <action id="Android.ConvertToNinePatch" class="com.android.tools.idea.actions.ConvertToNinePatchAction"> <add-to-group group-id="ProjectViewPopupMenu" anchor="last" /> </action> @@ -148,7 +143,6 @@ <action internal="true" id="Android.StopGradleDaemons" class="com.android.tools.idea.gradle.actions.StopGradleDaemonsAction" /> <action internal="true" id="Android.GetAdbAction" class="com.android.tools.idea.ddms.actions.GetAdbAction" /> <action internal="true" id="Android.TerminateAdbAction" class="com.android.tools.idea.ddms.actions.TerminateAdbAction" /> - <action internal="true" id="Android.GenerateLayoutTestSkeletonAction" class="com.android.tools.idea.uibuilder.actions.GenerateLayoutTestSkeletonAction"/> <action internal="true" id="StatisticsViewer" class="com.android.tools.idea.stats.ShowStatisticsViewerAction" text="Show statistics viewer"/> <action internal="true" id="Android.EditFlags" class="com.android.tools.idea.flags.ShowStudioFlagsDialogAction"/> <action internal="true" id="Android.ServerFlags" class="com.android.tools.idea.serverflags.ServerFlagsMenuAction" /> @@ -267,8 +261,6 @@ overrides="true" text="Submit _Feedback" description="Submit feedback to the Android Studio team"/> - <action id="StoreDefaultLayout" class="com.android.tools.idea.common.actions.StoreDefaultWindowLayoutAction" overrides="true"/> - <action id="RestoreDefaultLayout" class="com.android.tools.idea.common.actions.RestoreDefaultWindowLayoutAction" overrides="true"/> <action class="com.android.tools.idea.rendering.webp.ConvertToWebpAction" id="ConvertToWebp" text="Convert to WebP..."> <add-to-group group-id="ProjectViewPopupMenu"/> <add-to-group group-id="Images.EditorPopupMenu" relative-to-action="RefactoringMenu" anchor="after"/> @@ -386,9 +378,6 @@ <applicationService serviceImplementation="com.android.tools.idea.run.DeploymentApplicationService" /> <applicationService serviceImplementation="com.android.tools.idea.gradle.repositories.RepositoryUrlManager"/> <applicationService serviceImplementation="org.jetbrains.android.uipreview.AndroidEditorSettings"/> - <projectService serviceImplementation="com.android.tools.idea.common.surface.DesignSurfaceSettings"/> - <applicationService serviceImplementation="com.android.tools.idea.uibuilder.visual.VisualizationToolSettings"/> - <projectService serviceImplementation="com.android.tools.idea.uibuilder.visual.VisualizationToolProjectSettings"/> <applicationService serviceImplementation="com.android.tools.idea.profiling.capture.CaptureTypeService"/> <applicationService serviceInterface="org.jetbrains.android.facet.AndroidFacetConfiguration$EditorTabProvider" serviceImplementation="org.jetbrains.android.facet.AndroidFacetEditorTab$Provider"/> @@ -405,8 +394,6 @@ provider="com.android.tools.idea.explorer.options.DeviceFileExplorerConfigurableProvider"/> <applicationService serviceImplementation="com.android.tools.idea.explorer.options.DeviceFileExplorerSettings"/> - <applicationConfigurable groupId="editor" groupWeight="115" id="nele.options" - provider="com.android.tools.idea.uibuilder.options.NlOptionsConfigurableProvider"/> <applicationConfigurable groupId="build" id="instant.run" provider="com.android.tools.idea.deploy.DeploymentConfigurableProvider"/> <applicationService serviceImplementation="com.android.tools.idea.deploy.DeploymentConfiguration"/> @@ -944,6 +931,8 @@ interface="com.android.tools.idea.ndk.NativeWorkspaceProvider"/> <extensionPoint qualifiedName="com.android.tools.idea.analytics.ideBrandProvider" interface="com.android.tools.idea.analytics.IdeBrandProvider" /> + <extensionPoint qualifiedName="com.android.tools.idea.layoutlib.layoutLibraryProvider" + interface="com.android.tools.idea.layoutlib.LayoutLibraryLoader$LayoutLibraryProvider" /> </extensionPoints> <extensions defaultExtensionNs="com.android"> diff --git a/android/src/META-INF/layoutlib.xml b/android/src/META-INF/layoutlib.xml deleted file mode 100644 index add10e390f9..00000000000 --- a/android/src/META-INF/layoutlib.xml +++ /dev/null @@ -1,21 +0,0 @@ -<!-- - ~ Copyright (C) 2019 The Android Open Source Project - ~ - ~ Licensed under the Apache License, Version 2.0 (the "License"); - ~ you may not use this file except in compliance with the License. - ~ You may obtain a copy of the License at - ~ - ~ http://www.apache.org/licenses/LICENSE-2.0 - ~ - ~ Unless required by applicable law or agreed to in writing, software - ~ distributed under the License is distributed on an "AS IS" BASIS, - ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - ~ See the License for the specific language governing permissions and - ~ limitations under the License. - --> -<idea-plugin> - - <!-- Required config file for optional plugin - It is empty as layoutlib does not need any particular configuration --> - -</idea-plugin>
\ No newline at end of file diff --git a/android/src/com/android/tools/idea/res/ResourceIdManager.kt b/android/src/com/android/tools/idea/res/ResourceIdManager.kt index f78345a96d3..1ee9c10390b 100644 --- a/android/src/com/android/tools/idea/res/ResourceIdManager.kt +++ b/android/src/com/android/tools/idea/res/ResourceIdManager.kt @@ -34,6 +34,7 @@ import com.android.resources.ResourceType.STRING import com.android.resources.ResourceType.STYLE import com.android.resources.ResourceType.STYLEABLE import com.android.tools.idea.experimental.codeanalysis.datastructs.Modifier +import com.android.tools.idea.layoutlib.LayoutLibraryLoader import com.android.tools.idea.model.Namespacing import com.intellij.openapi.module.Module import gnu.trove.TIntObjectHashMap @@ -207,7 +208,10 @@ class ResourceIdManager private constructor(val module: Module) : ResourceClassG toIdMap[STYLE] = TObjectIntHashMap(781) } - loadIdsFromResourceClass(com.android.internal.R::class.java, into = frameworkIds, lookForAttrsInStyleables = true) + val rClass = LayoutLibraryLoader.LayoutLibraryProvider.EP_NAME.computeSafeIfAny { provider -> provider.frameworkRClass } + if (rClass != null) { + loadIdsFromResourceClass(rClass, into = frameworkIds, lookForAttrsInStyleables = true) + } return frameworkIds } diff --git a/android/src/org/jetbrains/android/uipreview/ViewLoader.java b/android/src/org/jetbrains/android/uipreview/ViewLoader.java index a580457e40e..6c1a1a029f4 100644 --- a/android/src/org/jetbrains/android/uipreview/ViewLoader.java +++ b/android/src/org/jetbrains/android/uipreview/ViewLoader.java @@ -20,16 +20,13 @@ import static com.android.SdkConstants.CLASS_ATTRIBUTE_SET; import static com.android.SdkConstants.CLASS_RECYCLER_VIEW_ADAPTER; import static com.android.SdkConstants.R_CLASS; import static com.android.SdkConstants.VIEW_FRAGMENT; -import static com.android.SdkConstants.VIEW_INCLUDE; import static com.android.tools.idea.LogAnonymizerUtil.anonymize; import static com.android.tools.idea.LogAnonymizerUtil.anonymizeClassName; import static com.intellij.lang.annotation.HighlightSeverity.WARNING; -import android.view.Gravity; import com.android.annotations.NonNull; import com.google.common.annotations.VisibleForTesting; import com.android.ide.common.rendering.api.ILayoutLog; -import com.android.layoutlib.bridge.MockView; import com.android.tools.idea.layoutlib.LayoutLibrary; import com.android.tools.idea.rendering.IRenderLogger; import com.android.tools.idea.rendering.classloading.InconvertibleClassError; @@ -155,9 +152,9 @@ public class ViewLoader { if (o != null) { return o; } - return createMockView(className, constructorSignature, constructorArgs); + return myLayoutLibrary.createMockView(getShortClassName(className), constructorSignature, constructorArgs); } - catch (ClassNotFoundException | InvocationTargetException | IllegalAccessException | InstantiationException | NoSuchFieldException | NoSuchMethodException e) { + catch (InvocationTargetException | IllegalAccessException | InstantiationException | NoSuchMethodException e) { throw new ClassNotFoundException(className, e); } } @@ -263,35 +260,6 @@ public class ViewLoader { } @NotNull - private MockView createMockView(@NotNull String className, @Nullable Class<?>[] constructorSignature, @Nullable Object[] constructorArgs) - throws - ClassNotFoundException, - InvocationTargetException, - NoSuchMethodException, - InstantiationException, - IllegalAccessException, - NoSuchFieldException { - MockView mockView = (MockView)createNewInstance(MockView.class, constructorSignature, constructorArgs, true); - String label = getShortClassName(className); - switch (label) { - case VIEW_FRAGMENT: - label = "<fragment>"; - // TODO: - // Append "\nPick preview layout from the \"Fragment Layout\" context menu" - // when used from the layout editor - break; - case VIEW_INCLUDE: - label = "Text"; - break; - } - - mockView.setText(label); - mockView.setGravity(Gravity.CENTER); - - return mockView; - } - - @NotNull public Module getModule() { return myModule; } diff --git a/android/testSrc/META-INF/plugin.xml b/android/testSrc/META-INF/plugin.xml index c95a0cad192..320717d97db 100644 --- a/android/testSrc/META-INF/plugin.xml +++ b/android/testSrc/META-INF/plugin.xml @@ -28,4 +28,5 @@ <xi:include href="/META-INF/project-system-gradle-plugin.xml" xpointer="xpointer(/idea-plugin/*)"/> <xi:include href="/META-INF/project-system-gradle-psd-plugin.xml" xpointer="xpointer(/idea-plugin/*)"/> <xi:include href="/META-INF/lint-plugin.xml" xpointer="xpointer(/idea-plugin/*)"/> + <xi:include href="/META-INF/layoutlib.xml" xpointer="xpointer(/idea-plugin/*)"/> </idea-plugin> diff --git a/design-plugin/BUILD b/design-plugin/BUILD new file mode 100644 index 00000000000..a85e3989585 --- /dev/null +++ b/design-plugin/BUILD @@ -0,0 +1,18 @@ +load("//tools/base/bazel:bazel.bzl", "iml_module") + +# managed by go/iml_to_build +iml_module( + name = "intellij.android.design-plugin", + srcs = ["src"], + iml_files = ["intellij.android.design-plugin.iml"], + visibility = ["//visibility:public"], + # do not sort: must match IML order + deps = [ + "//tools/adt/idea/designer:intellij.android.designer[module]", + "//tools/adt/idea/nav/editor:intellij.android.nav.editor[module]", + "//tools/adt/idea/compose-designer:intellij.android.compose-designer[module]", + "//tools/adt/idea/designer/customview:intellij.android.designer.customview[module]", + "//tools/adt/idea/layoutlib:intellij.android.layoutlib[module]", + "//tools/adt/idea/.idea/libraries:layoutlib", + ], +) diff --git a/design-plugin/intellij.android.design-plugin.iml b/design-plugin/intellij.android.design-plugin.iml new file mode 100644 index 00000000000..466a4066360 --- /dev/null +++ b/design-plugin/intellij.android.design-plugin.iml @@ -0,0 +1,17 @@ +<?xml version="1.0" encoding="UTF-8"?> +<module type="JAVA_MODULE" version="4"> + <component name="NewModuleRootManager" inherit-compiler-output="true"> + <exclude-output /> + <content url="file://$MODULE_DIR$"> + <sourceFolder url="file://$MODULE_DIR$/src" isTestSource="false" /> + </content> + <orderEntry type="inheritedJdk" /> + <orderEntry type="sourceFolder" forTests="false" /> + <orderEntry type="module" module-name="intellij.android.designer" /> + <orderEntry type="module" module-name="intellij.android.nav.editor" /> + <orderEntry type="module" module-name="intellij.android.compose-designer" /> + <orderEntry type="module" module-name="intellij.android.designer.customview" /> + <orderEntry type="module" module-name="intellij.android.layoutlib" /> + <orderEntry type="library" name="layoutlib" level="project" /> + </component> +</module>
\ No newline at end of file diff --git a/design-plugin/src/META-INF/plugin.xml b/design-plugin/src/META-INF/plugin.xml new file mode 100644 index 00000000000..90216591545 --- /dev/null +++ b/design-plugin/src/META-INF/plugin.xml @@ -0,0 +1,34 @@ +<!-- + ~ Copyright (C) 2021 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License. + --> +<idea-plugin xmlns:xi="http://www.w3.org/2001/XInclude"> + <id>com.android.tools.design</id> + <name>Design Tools</name> + <version>1.0</version> + <vendor>Google</vendor> + + <description>Provides a suite of design tools for Android Studio</description> + + <depends>com.intellij.platform.images</depends> + <depends>org.jetbrains.android</depends> + <depends>org.jetbrains.kotlin</depends> + + <xi:include href="/META-INF/designer.xml" xpointer="xpointer(/idea-plugin/*)"/> + <xi:include href="/META-INF/naveditor.xml" xpointer="xpointer(/idea-plugin/*)"/> + <xi:include href="/META-INF/compose-designer.xml" xpointer="xpointer(/idea-plugin/*)"/> + <xi:include href="/META-INF/customview.xml" xpointer="xpointer(/idea-plugin/*)"/> + <xi:include href="/META-INF/layoutlib.xml" xpointer="xpointer(/idea-plugin/*)"/> + +</idea-plugin>
\ No newline at end of file diff --git a/designer-perf-tests/BUILD b/designer-perf-tests/BUILD index 1a555346b0b..ccb3dae0756 100644 --- a/designer-perf-tests/BUILD +++ b/designer-perf-tests/BUILD @@ -52,8 +52,9 @@ iml_module( "//tools/adt/idea/android-kotlin:intellij.android.kotlin.extensions[module, test]", "//tools/adt/idea/compose-designer:intellij.android.compose-designer[module, test]", "//tools/adt/idea/android-test-framework:intellij.android.testFramework[module, test]", - "//tools/adt/idea/.idea/libraries:layoutlib", + "//tools/adt/idea/.idea/libraries:layoutlib[test]", "//tools/adt/idea/intellij.android.compose-common[module]", "//tools/adt/idea/designer:intellij.android.designer[module, test]", + "//tools/adt/idea/layoutlib:intellij.android.layoutlib[module, test]", ], ) diff --git a/designer-perf-tests/intellij.android.designer-perf-tests.iml b/designer-perf-tests/intellij.android.designer-perf-tests.iml index 8312f0fdcee..2dc89bc5f10 100644 --- a/designer-perf-tests/intellij.android.designer-perf-tests.iml +++ b/designer-perf-tests/intellij.android.designer-perf-tests.iml @@ -20,8 +20,9 @@ <orderEntry type="module" module-name="intellij.android.kotlin.extensions" scope="TEST" /> <orderEntry type="module" module-name="intellij.android.compose-designer" scope="TEST" /> <orderEntry type="module" module-name="intellij.android.testFramework" scope="TEST" /> - <orderEntry type="library" scope="PROVIDED" name="layoutlib" level="project" /> + <orderEntry type="library" scope="TEST" name="layoutlib" level="project" /> <orderEntry type="module" module-name="intellij.android.compose-common" /> <orderEntry type="module" module-name="intellij.android.designer" scope="TEST" /> + <orderEntry type="module" module-name="intellij.android.layoutlib" scope="TEST" /> </component> </module>
\ No newline at end of file diff --git a/designer-perf-tests/testSrc/META-INF/plugin.xml b/designer-perf-tests/testSrc/META-INF/plugin.xml index db8f8958a29..c7d48441bed 100644 --- a/designer-perf-tests/testSrc/META-INF/plugin.xml +++ b/designer-perf-tests/testSrc/META-INF/plugin.xml @@ -20,4 +20,5 @@ <xi:include href="/META-INF/android-plugin.xml" xpointer="xpointer(/idea-plugin/*)"/> <xi:include href="/META-INF/project-system-plugin.xml" xpointer="xpointer(/idea-plugin/*)"/> <xi:include href="/META-INF/project-system-gradle-plugin.xml" xpointer="xpointer(/idea-plugin/*)"/> + <xi:include href="/META-INF/layoutlib.xml" xpointer="xpointer(/idea-plugin/*)"/> </idea-plugin> diff --git a/designer/BUILD b/designer/BUILD index 07121bc77f6..4c81be4c270 100644 --- a/designer/BUILD +++ b/designer/BUILD @@ -108,5 +108,6 @@ iml_module( "//tools/adt/idea/.idea/libraries:layoutlib[test]", "//tools/adt/idea/lint:intellij.lint[module, test]", "//prebuilts/studio/intellij-sdk:studio-sdk-plugin-Kotlin", + "//tools/adt/idea/layoutlib:intellij.android.layoutlib[module, test]", ], ) diff --git a/designer/intellij.android.designer.iml b/designer/intellij.android.designer.iml index 7e47f8a18b5..647b8c04aee 100644 --- a/designer/intellij.android.designer.iml +++ b/designer/intellij.android.designer.iml @@ -31,7 +31,7 @@ <orderEntry type="module" module-name="intellij.android.layout-ui" /> <orderEntry type="module" module-name="intellij.android.wizardTemplate.plugin" /> <orderEntry type="module" module-name="intellij.android.wizardTemplate.impl" /> - <orderEntry type="library" scope="PROVIDED" name="layoutlib" level="project" /> + <orderEntry type="library" name="layoutlib" level="project" /> <orderEntry type="module" module-name="intellij.lint" /> <orderEntry type="module" module-name="android.sdktools.lint-checks" /> <orderEntry type="module" module-name="intellij.android.compose-common" /> diff --git a/designer/intellij.android.designer.tests.iml b/designer/intellij.android.designer.tests.iml index 33a64f0145b..a02fda630cb 100644 --- a/designer/intellij.android.designer.tests.iml +++ b/designer/intellij.android.designer.tests.iml @@ -38,5 +38,6 @@ <orderEntry type="library" scope="TEST" name="layoutlib" level="project" /> <orderEntry type="module" module-name="intellij.lint" scope="TEST" /> <orderEntry type="library" name="studio-plugin-Kotlin" level="project" /> + <orderEntry type="module" module-name="intellij.android.layoutlib" scope="TEST" /> </component> </module>
\ No newline at end of file diff --git a/designer/src/META-INF/designer.xml b/designer/src/META-INF/designer.xml index 6fb89022d06..619ff78f9fa 100644 --- a/designer/src/META-INF/designer.xml +++ b/designer/src/META-INF/designer.xml @@ -56,12 +56,20 @@ <extensions defaultExtensionNs="com.intellij"> <applicationService serviceImplementation="com.android.tools.idea.common.model.NlDependencyManager"/> + <applicationConfigurable groupId="editor" groupWeight="115" id="nele.options" + provider="com.android.tools.idea.uibuilder.options.NlOptionsConfigurableProvider"/> </extensions> <extensions defaultExtensionNs="com.intellij"> <keymapExtension implementation="com.android.tools.idea.DesignerKeymapExtension"/> </extensions> + <extensions defaultExtensionNs="com.intellij"> + <projectService serviceImplementation="com.android.tools.idea.common.surface.DesignSurfaceSettings"/> + <applicationService serviceImplementation="com.android.tools.idea.uibuilder.visual.VisualizationToolSettings"/> + <projectService serviceImplementation="com.android.tools.idea.uibuilder.visual.VisualizationToolProjectSettings"/> + </extensions> + <module-components> <component> <implementation-class>com.android.tools.idea.uibuilder.palette.NlPaletteModel</implementation-class> @@ -174,6 +182,16 @@ <add-to-group group-id="Android.Designer.ToolsActions"/> </group> + + <action id="Android.CreateSampleDataDirectory" class="com.android.tools.idea.actions.CreateSampleDataDirectory"> + <add-to-group group-id="NewGroup" anchor="after" relative-to-action="Android.CreateResourceDirectory"/> + </action> + <action id="StoreDefaultLayout" class="com.android.tools.idea.common.actions.StoreDefaultWindowLayoutAction" overrides="true"/> + <action id="RestoreDefaultLayout" class="com.android.tools.idea.common.actions.RestoreDefaultWindowLayoutAction" overrides="true"/> + + <action internal="true" id="Android.GenerateLayoutTestSkeletonAction" class="com.android.tools.idea.uibuilder.actions.GenerateLayoutTestSkeletonAction"> + <add-to-group group-id="Internal.Android" anchor="after" relative-to-action="Android.TerminateAdbAction"/> + </action> </actions> <extensions defaultExtensionNs="com.android.tools.idea.assistant"> diff --git a/designer/testSrc/META-INF/plugin.xml b/designer/testSrc/META-INF/plugin.xml index 6e7b5b33371..53603ed4eed 100644 --- a/designer/testSrc/META-INF/plugin.xml +++ b/designer/testSrc/META-INF/plugin.xml @@ -25,4 +25,5 @@ <xi:include href="/META-INF/project-system-gradle-plugin.xml" xpointer="xpointer(/idea-plugin/*)"/> <xi:include href="/META-INF/android-lang-databinding.xml" xpointer="xpointer(/idea-plugin/*)"/> <xi:include href="/META-INF/lint-plugin.xml" xpointer="xpointer(/idea-plugin/*)"/> + <xi:include href="/META-INF/layoutlib.xml" xpointer="xpointer(/idea-plugin/*)"/> </idea-plugin> diff --git a/layoutlib-loader/BUILD b/layoutlib-loader/BUILD index 36a55d16e4f..8cb88ce0086 100644 --- a/layoutlib-loader/BUILD +++ b/layoutlib-loader/BUILD @@ -14,21 +14,5 @@ iml_module( "//tools/base/sdk-common:studio.android.sdktools.sdk-common[module]", "//tools/adt/idea/android-common:intellij.android.common[module]", "//tools/base/layoutlib-api:studio.android.sdktools.layoutlib-api[module]", - "//tools/adt/idea/.idea/libraries:layoutlib", - ], -) - -# managed by go/iml_to_build -iml_module( - name = "intellij.android.layoutlib-loader.tests", - iml_files = ["intellij.android.layoutlib-loader.tests.iml"], - test_srcs = ["testSrc"], - visibility = ["//visibility:public"], - # do not sort: must match IML order - deps = [ - "//prebuilts/studio/intellij-sdk:studio-sdk", - "//prebuilts/studio/intellij-sdk:studio-sdk-plugin-gradle", - "//tools/adt/idea/layoutlib-loader:intellij.android.layoutlib-loader[module, test]", - "//tools/adt/idea/.idea/libraries:layoutlib[test]", ], ) diff --git a/layoutlib-loader/intellij.android.layoutlib-loader.iml b/layoutlib-loader/intellij.android.layoutlib-loader.iml index d5ef9d0d9fd..3fc7f6e85fa 100644 --- a/layoutlib-loader/intellij.android.layoutlib-loader.iml +++ b/layoutlib-loader/intellij.android.layoutlib-loader.iml @@ -12,6 +12,5 @@ <orderEntry type="module" module-name="android.sdktools.sdk-common" /> <orderEntry type="module" module-name="intellij.android.common" /> <orderEntry type="module" module-name="android.sdktools.layoutlib-api" /> - <orderEntry type="library" scope="PROVIDED" name="layoutlib" level="project" /> </component> </module>
\ No newline at end of file diff --git a/layoutlib-loader/src/com/android/tools/idea/layoutlib/LayoutLibrary.java b/layoutlib-loader/src/com/android/tools/idea/layoutlib/LayoutLibrary.java index da5a05e26b5..7a040773a00 100644 --- a/layoutlib-loader/src/com/android/tools/idea/layoutlib/LayoutLibrary.java +++ b/layoutlib-loader/src/com/android/tools/idea/layoutlib/LayoutLibrary.java @@ -29,6 +29,7 @@ import com.intellij.openapi.Disposable; import java.awt.image.BufferedImage; import java.io.File; +import java.lang.reflect.InvocationTargetException; import java.util.Map; /** @@ -58,7 +59,7 @@ public class LayoutLibrary implements Disposable { /** * Returns a {@link LayoutLibrary} instance using the given {@link Bridge} and {@link ClassLoader} */ - static LayoutLibrary load(Bridge bridge, ClassLoader classLoader) { + public static LayoutLibrary load(Bridge bridge, ClassLoader classLoader) { return new LayoutLibrary(bridge, classLoader); } @@ -206,6 +207,18 @@ public class LayoutLibrary implements Disposable { return mBridge != null && mBridge.isRtl(locale); } + /** + * Returns a mock view displaying the given label. This mock view should be created by passing + * the provided arguments to its constructor. + */ + public Object createMockView(String label, Class<?>[] constructorSignature, Object[] constructorArgs) + throws InvocationTargetException, NoSuchMethodException, InstantiationException, IllegalAccessException { + if (mBridge != null) { + return mBridge.createMockView(label, constructorSignature, constructorArgs); + } + return null; + } + @VisibleForTesting protected LayoutLibrary() { mBridge = null; diff --git a/layoutlib-loader/src/com/android/tools/idea/layoutlib/LayoutLibraryLoader.java b/layoutlib-loader/src/com/android/tools/idea/layoutlib/LayoutLibraryLoader.java index b2e7926fad5..a5385a91bcd 100644 --- a/layoutlib-loader/src/com/android/tools/idea/layoutlib/LayoutLibraryLoader.java +++ b/layoutlib-loader/src/com/android/tools/idea/layoutlib/LayoutLibraryLoader.java @@ -24,6 +24,7 @@ import com.android.sdklib.internal.project.ProjectProperties; import com.android.tools.idea.io.BufferingFileWrapper; import com.android.utils.ILogger; import com.intellij.openapi.diagnostic.Logger; +import com.intellij.openapi.extensions.ExtensionPointName; import com.intellij.openapi.util.SystemInfo; import com.intellij.openapi.util.io.FileUtil; import com.intellij.openapi.vfs.LocalFileSystem; @@ -78,9 +79,8 @@ public class LayoutLibraryLoader { String dataPath = FileUtil.toSystemIndependentName(target.getPath(IAndroidTarget.DATA).toString()); // We instantiate the local Bridge implementation and pass it to the LayoutLibrary instance - library = - LayoutLibrary.load(new com.android.layoutlib.bridge.Bridge(), new LayoutlibClassLoader(LayoutLibraryLoader.class.getClassLoader())); - if (!library.init(buildPropMap, new File(fontFolder.getPath()), getNativeLibraryPath(dataPath), dataPath + "/icu/icudt66l.dat", enumMap, layoutLog)) { + library = LayoutLibraryProvider.EP_NAME.computeSafeIfAny(LayoutLibraryProvider::getLibrary); + if (library == null || !library.init(buildPropMap, new File(fontFolder.getPath()), getNativeLibraryPath(dataPath), dataPath + "/icu/icudt66l.dat", enumMap, layoutLog)) { throw new RenderingException(LayoutlibBundle.message("layoutlib.init.failed")); } return library; @@ -116,4 +116,18 @@ public class LayoutLibraryLoader { return library; } + + /** + * Extension point for the Android plugin to have access to layoutlib in a separate plugin. + */ + public static abstract class LayoutLibraryProvider { + public static final ExtensionPointName<LayoutLibraryProvider> EP_NAME = + new ExtensionPointName<>("com.android.tools.idea.layoutlib.layoutLibraryProvider"); + + @NotNull + public abstract LayoutLibrary getLibrary(); + + @NotNull + public abstract Class<?> getFrameworkRClass(); + } } diff --git a/layoutlib/BUILD b/layoutlib/BUILD index 1aefed9ec93..7e56559133a 100644 --- a/layoutlib/BUILD +++ b/layoutlib/BUILD @@ -10,6 +10,21 @@ iml_module( deps = [ "//prebuilts/studio/intellij-sdk:studio-sdk", "//tools/base/layoutlib-api:studio.android.sdktools.layoutlib-api[module]", + "//tools/adt/idea/layoutlib-loader:intellij.android.layoutlib-loader[module]", "//tools/adt/idea/.idea/libraries:layoutlib", ], ) + +# managed by go/iml_to_build +iml_module( + name = "intellij.android.layoutlib.tests", + iml_files = ["intellij.android.layoutlib.tests.iml"], + test_srcs = ["testSrc"], + visibility = ["//visibility:public"], + # do not sort: must match IML order + deps = [ + "//prebuilts/studio/intellij-sdk:studio-sdk", + "//tools/adt/idea/layoutlib:intellij.android.layoutlib[module, test]", + "//tools/adt/idea/.idea/libraries:layoutlib[test]", + ], +) diff --git a/layoutlib/intellij.android.layoutlib.iml b/layoutlib/intellij.android.layoutlib.iml index d6ed5c8a505..070e027727f 100644 --- a/layoutlib/intellij.android.layoutlib.iml +++ b/layoutlib/intellij.android.layoutlib.iml @@ -9,6 +9,7 @@ <orderEntry type="library" name="studio-sdk" level="project" /> <orderEntry type="sourceFolder" forTests="false" /> <orderEntry type="module" module-name="android.sdktools.layoutlib-api" /> + <orderEntry type="module" module-name="intellij.android.layoutlib-loader" /> <orderEntry type="library" name="layoutlib" level="project" /> </component> </module>
\ No newline at end of file diff --git a/layoutlib-loader/intellij.android.layoutlib-loader.tests.iml b/layoutlib/intellij.android.layoutlib.tests.iml index 51a0d1edc09..a4ef8d3eeaa 100644 --- a/layoutlib-loader/intellij.android.layoutlib-loader.tests.iml +++ b/layoutlib/intellij.android.layoutlib.tests.iml @@ -6,10 +6,9 @@ <sourceFolder url="file://$MODULE_DIR$/testSrc" isTestSource="true" /> </content> <orderEntry type="inheritedJdk" /> - <orderEntry type="library" name="studio-sdk" level="project" /> - <orderEntry type="library" name="studio-plugin-gradle" level="project" /> <orderEntry type="sourceFolder" forTests="false" /> - <orderEntry type="module" module-name="intellij.android.layoutlib-loader" scope="TEST" /> + <orderEntry type="library" name="studio-sdk" level="project" /> + <orderEntry type="module" module-name="intellij.android.layoutlib" scope="TEST" /> <orderEntry type="library" scope="TEST" name="layoutlib" level="project" /> </component> </module>
\ No newline at end of file diff --git a/layoutlib/src/META-INF/plugin.xml b/layoutlib/src/META-INF/layoutlib.xml index 5b0b1b975f7..3cb64d86951 100644 --- a/layoutlib/src/META-INF/plugin.xml +++ b/layoutlib/src/META-INF/layoutlib.xml @@ -1,5 +1,5 @@ <!-- - ~ Copyright (C) 2019 The Android Open Source Project + ~ Copyright (C) 2021 The Android Open Source Project ~ ~ Licensed under the Apache License, Version 2.0 (the "License"); ~ you may not use this file except in compliance with the License. @@ -14,12 +14,9 @@ ~ limitations under the License. --> <idea-plugin> - <id>com.android.layoutlib</id> - <name>Layoutlib</name> - <version>1.0</version> - <vendor>Google</vendor> - - <description>Provides a library for rendering Android resources</description> + <extensions defaultExtensionNs="com.android.tools.idea.layoutlib"> + <layoutLibraryProvider implementation="com.android.layoutlib.LayoutlibProvider"/> + </extensions> <application-components> <component> @@ -27,5 +24,4 @@ <headless-implementation-class/> </component> </application-components> - </idea-plugin>
\ No newline at end of file diff --git a/layoutlib-loader/src/com/android/tools/idea/layoutlib/LayoutlibClassLoader.java b/layoutlib/src/com/android/layoutlib/LayoutlibClassLoader.java index 559d2083692..35790f71062 100644 --- a/layoutlib-loader/src/com/android/tools/idea/layoutlib/LayoutlibClassLoader.java +++ b/layoutlib/src/com/android/layoutlib/LayoutlibClassLoader.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.android.tools.idea.layoutlib; +package com.android.layoutlib; import android.os._Original_Build; import com.google.common.annotations.VisibleForTesting; diff --git a/layoutlib/src/com/android/layoutlib/LayoutlibProvider.kt b/layoutlib/src/com/android/layoutlib/LayoutlibProvider.kt new file mode 100644 index 00000000000..93d531ee89f --- /dev/null +++ b/layoutlib/src/com/android/layoutlib/LayoutlibProvider.kt @@ -0,0 +1,30 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.android.layoutlib + +import com.android.layoutlib.bridge.Bridge +import com.android.tools.idea.layoutlib.LayoutLibrary +import com.android.tools.idea.layoutlib.LayoutLibraryLoader + +class LayoutlibProvider : LayoutLibraryLoader.LayoutLibraryProvider() { + override fun getLibrary(): LayoutLibrary { + return LayoutLibrary.load(Bridge(), LayoutlibClassLoader(LayoutlibProvider::class.java.classLoader)) + } + + override fun getFrameworkRClass(): Class<*> { + return com.android.internal.R::class.java + } +}
\ No newline at end of file diff --git a/layoutlib-loader/testSrc/com/android/tools/idea/layoutlib/LayoutlibClassLoaderTest.java b/layoutlib/testSrc/com/android/layoutlib/LayoutlibClassLoaderTest.java index 43be07cd830..f7919e750be 100644 --- a/layoutlib-loader/testSrc/com/android/tools/idea/layoutlib/LayoutlibClassLoaderTest.java +++ b/layoutlib/testSrc/com/android/layoutlib/LayoutlibClassLoaderTest.java @@ -13,11 +13,12 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.android.tools.idea.layoutlib; +package com.android.layoutlib; import com.google.common.io.CharSource; import org.jetbrains.org.objectweb.asm.ClassReader; import org.jetbrains.org.objectweb.asm.util.TraceClassVisitor; +import org.junit.Assert; import org.junit.Test; import java.io.IOException; @@ -27,8 +28,6 @@ import java.util.HashMap; import java.util.Map; import java.util.stream.Collectors; -import static org.junit.Assert.assertEquals; - public class LayoutlibClassLoaderTest { /** @@ -47,7 +46,7 @@ public class LayoutlibClassLoaderTest { @Test - public void generateBuildFile() throws Exception { + public void generateBuildFile() { Map<String, String> definedClasses = new HashMap<>(); LayoutlibClassLoader.generate(TestBuild.class, (name, classBytes) -> { StringWriter writer = new StringWriter(); @@ -58,31 +57,31 @@ public class LayoutlibClassLoaderTest { definedClasses.put(name, simplify(writer.toString())); }); - assertEquals(3, definedClasses.size()); // Outer class + 2 inner classes - assertEquals("public class android/os/Build {\n" + - " public static INNERCLASS android/os/Build$InnerClass2 android/os/Build InnerClass2\n" + - " public static INNERCLASS android/os/Build$InnerClass android/os/Build InnerClass\n" + - " public final static Ljava/lang/String; TEST_FIELD = \"TestValue\"\n" + - " public <init>()V\n" + - " private static privateMethod()Ljava/lang/String;\n" + - " public static getSerial()Ljava/lang/String;\n" + - "}", - definedClasses.get("android.os.Build")); + Assert.assertEquals(3, definedClasses.size()); // Outer class + 2 inner classes + Assert.assertEquals("public class android/os/Build {\n" + + " public static INNERCLASS android/os/Build$InnerClass2 android/os/Build InnerClass2\n" + + " public static INNERCLASS android/os/Build$InnerClass android/os/Build InnerClass\n" + + " public final static Ljava/lang/String; TEST_FIELD = \"TestValue\"\n" + + " public <init>()V\n" + + " private static privateMethod()Ljava/lang/String;\n" + + " public static getSerial()Ljava/lang/String;\n" + + "}", + definedClasses.get("android.os.Build")); - assertEquals("public class android/os/Build$InnerClass {\n" + - " public static INNERCLASS android/os/Build$InnerClass android/os/Build InnerClass\n" + - " public final static Ljava/lang/String; TEST_INNER_FIELD = \"TestInnerValue\"\n" + - " public final static I INNER_VALUE = 1\n" + - " public <init>()V\n" + - "}", - definedClasses.get("android.os.Build$InnerClass")); + Assert.assertEquals("public class android/os/Build$InnerClass {\n" + + " public static INNERCLASS android/os/Build$InnerClass android/os/Build InnerClass\n" + + " public final static Ljava/lang/String; TEST_INNER_FIELD = \"TestInnerValue\"\n" + + " public final static I INNER_VALUE = 1\n" + + " public <init>()V\n" + + "}", + definedClasses.get("android.os.Build$InnerClass")); - assertEquals("public class android/os/Build$InnerClass2 {\n" + - " public static INNERCLASS android/os/Build$InnerClass2 android/os/Build InnerClass2\n" + - " public final static Ljava/lang/String; TEST_INNER_FIELD2\n" + - " public <init>()V\n" + - " static <clinit>()V\n" + - "}", - definedClasses.get("android.os.Build$InnerClass2")); + Assert.assertEquals("public class android/os/Build$InnerClass2 {\n" + + " public static INNERCLASS android/os/Build$InnerClass2 android/os/Build InnerClass2\n" + + " public final static Ljava/lang/String; TEST_INNER_FIELD2\n" + + " public <init>()V\n" + + " static <clinit>()V\n" + + "}", + definedClasses.get("android.os.Build$InnerClass2")); } }
\ No newline at end of file diff --git a/layoutlib-loader/testSrc/com/android/tools/idea/layoutlib/LayoutlibPrebuiltTest.kt b/layoutlib/testSrc/com/android/layoutlib/LayoutlibPrebuiltTest.kt index 21204a05cbf..9d646de7e1c 100644 --- a/layoutlib-loader/testSrc/com/android/tools/idea/layoutlib/LayoutlibPrebuiltTest.kt +++ b/layoutlib/testSrc/com/android/layoutlib/LayoutlibPrebuiltTest.kt @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.android.tools.idea.layoutlib +package com.android.layoutlib import com.android.layoutlib.bridge.BridgeConstants import org.junit.Test diff --git a/layoutlib-loader/testSrc/com/android/tools/idea/layoutlib/TestBuild.java b/layoutlib/testSrc/com/android/layoutlib/TestBuild.java index d8575a69059..5b03c78381b 100644 --- a/layoutlib-loader/testSrc/com/android/tools/idea/layoutlib/TestBuild.java +++ b/layoutlib/testSrc/com/android/layoutlib/TestBuild.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.android.tools.idea.layoutlib; +package com.android.layoutlib; public class TestBuild { public static final String TEST_FIELD = "TestValue"; diff --git a/searchable-options/android/android.jar/search/android.jar.searchableOptions.xml b/searchable-options/android/android.jar/search/android.jar.searchableOptions.xml index 9ab298f571f..d2ba1239f21 100644 --- a/searchable-options/android/android.jar/search/android.jar.searchableOptions.xml +++ b/searchable-options/android/android.jar/search/android.jar.searchableOptions.xml @@ -5,8 +5,6 @@ <option name="agp" path="ActionManager" hit="AGP Upgrade Assistant..." /> <option name="assistant" path="ActionManager" hit="AGP Upgrade Assistant..." /> <option name="upgrade" path="ActionManager" hit="AGP Upgrade Assistant..." /> - <option name="action" path="ActionManager" hit="Add Action" /> - <option name="add" path="ActionManager" hit="Add Action" /> <option name="add" path="ActionManager" hit="Add As Library..." /> <option name="as" path="ActionManager" hit="Add As Library..." /> <option name="library" path="ActionManager" hit="Add As Library..." /> @@ -25,26 +23,10 @@ <option name="this" path="ActionManager" hit="Add C/C++ code built with CMake or ndk-build to this module" /> <option name="to" path="ActionManager" hit="Add C/C++ code built with CMake or ndk-build to this module" /> <option name="with" path="ActionManager" hit="Add C/C++ code built with CMake or ndk-build to this module" /> - <option name="add" path="ActionManager" hit="Add Deep Link" /> - <option name="deep" path="ActionManager" hit="Add Deep Link" /> - <option name="link" path="ActionManager" hit="Add Deep Link" /> <option name="add" path="ActionManager" hit="Add Right-to-Left (RTL) Support..." /> <option name="right-to-left" path="ActionManager" hit="Add Right-to-Left (RTL) Support..." /> <option name="rtl" path="ActionManager" hit="Add Right-to-Left (RTL) Support..." /> <option name="support" path="ActionManager" hit="Add Right-to-Left (RTL) Support..." /> - <option name="action" path="ActionManager" hit="Add action to the selected item" /> - <option name="add" path="ActionManager" hit="Add action to the selected item" /> - <option name="item" path="ActionManager" hit="Add action to the selected item" /> - <option name="selected" path="ActionManager" hit="Add action to the selected item" /> - <option name="the" path="ActionManager" hit="Add action to the selected item" /> - <option name="to" path="ActionManager" hit="Add action to the selected item" /> - <option name="add" path="ActionManager" hit="Add deep link to the selected item" /> - <option name="deep" path="ActionManager" hit="Add deep link to the selected item" /> - <option name="item" path="ActionManager" hit="Add deep link to the selected item" /> - <option name="link" path="ActionManager" hit="Add deep link to the selected item" /> - <option name="selected" path="ActionManager" hit="Add deep link to the selected item" /> - <option name="the" path="ActionManager" hit="Add deep link to the selected item" /> - <option name="to" path="ActionManager" hit="Add deep link to the selected item" /> <option name="add" path="ActionManager" hit="Add right-to-left (RTL) support where possible" /> <option name="possible" path="ActionManager" hit="Add right-to-left (RTL) support where possible" /> <option name="right-to-left" path="ActionManager" hit="Add right-to-left (RTL) support where possible" /> @@ -92,16 +74,6 @@ <option name="apply" path="ActionManager" hit="Apply Code Changes" /> <option name="changes" path="ActionManager" hit="Apply Code Changes" /> <option name="code" path="ActionManager" hit="Apply Code Changes" /> - <option name="assign" path="ActionManager" hit="Assign Start Destination" /> - <option name="destination" path="ActionManager" hit="Assign Start Destination" /> - <option name="start" path="ActionManager" hit="Assign Start Destination" /> - <option name="assign" path="ActionManager" hit="Assign the start point of navigation graph" /> - <option name="graph" path="ActionManager" hit="Assign the start point of navigation graph" /> - <option name="navigation" path="ActionManager" hit="Assign the start point of navigation graph" /> - <option name="of" path="ActionManager" hit="Assign the start point of navigation graph" /> - <option name="point" path="ActionManager" hit="Assign the start point of navigation graph" /> - <option name="start" path="ActionManager" hit="Assign the start point of navigation graph" /> - <option name="the" path="ActionManager" hit="Assign the start point of navigation graph" /> <option name="android" path="ActionManager" hit="Attach Debugger to Android Process" /> <option name="attach" path="ActionManager" hit="Attach Debugger to Android Process" /> <option name="debugger" path="ActionManager" hit="Attach Debugger to Android Process" /> @@ -125,8 +97,6 @@ <option name="resource" path="ActionManager" hit="Attempt to apply resource and code changes and restart activity." /> <option name="restart" path="ActionManager" hit="Attempt to apply resource and code changes and restart activity." /> <option name="to" path="ActionManager" hit="Attempt to apply resource and code changes and restart activity." /> - <option name="arrange" path="ActionManager" hit="Auto Arrange" /> - <option name="auto" path="ActionManager" hit="Auto Arrange" /> <option name="available" path="ActionManager" hit="Available devices" /> <option name="devices" path="ActionManager" hit="Available devices" /> <option name="back" path="ActionManager" hit="Back" /> @@ -140,30 +110,12 @@ <option name="build" path="ActionManager" hit="Build Bundle(s) / APK(s)" /> <option name="bundle" path="ActionManager" hit="Build Bundle(s) / APK(s)" /> <option name="s" path="ActionManager" hit="Build Bundle(s) / APK(s)" /> - <option name="change" path="ActionManager" hit="Change to next device in the device menu" /> - <option name="device" path="ActionManager" hit="Change to next device in the device menu" /> - <option name="in" path="ActionManager" hit="Change to next device in the device menu" /> - <option name="menu" path="ActionManager" hit="Change to next device in the device menu" /> - <option name="next" path="ActionManager" hit="Change to next device in the device menu" /> - <option name="the" path="ActionManager" hit="Change to next device in the device menu" /> - <option name="to" path="ActionManager" hit="Change to next device in the device menu" /> - <option name="change" path="ActionManager" hit="Change to previous device in the device menu" /> - <option name="device" path="ActionManager" hit="Change to previous device in the device menu" /> - <option name="in" path="ActionManager" hit="Change to previous device in the device menu" /> - <option name="menu" path="ActionManager" hit="Change to previous device in the device menu" /> - <option name="previous" path="ActionManager" hit="Change to previous device in the device menu" /> - <option name="the" path="ActionManager" hit="Change to previous device in the device menu" /> - <option name="to" path="ActionManager" hit="Change to previous device in the device menu" /> <option name="and" path="ActionManager" hit="Choose and profile configuration" /> <option name="choose" path="ActionManager" hit="Choose and profile configuration" /> <option name="configuration" path="ActionManager" hit="Choose and profile configuration" /> <option name="profile" path="ActionManager" hit="Choose and profile configuration" /> <option name="clean" path="ActionManager" hit="Clean Project" /> <option name="project" path="ActionManager" hit="Clean Project" /> - <option name="constraint" path="ActionManager" hit="Constraint Layout Help Panel" /> - <option name="help" path="ActionManager" hit="Constraint Layout Help Panel" /> - <option name="layout" path="ActionManager" hit="Constraint Layout Help Panel" /> - <option name="panel" path="ActionManager" hit="Constraint Layout Help Panel" /> <option name="convert" path="ActionManager" hit="Convert to PNG..." /> <option name="png" path="ActionManager" hit="Convert to PNG..." /> <option name="to" path="ActionManager" hit="Convert to PNG..." /> @@ -173,20 +125,6 @@ <option name="9-patch" path="ActionManager" hit="Create 9-Patch file..." /> <option name="create" path="ActionManager" hit="Create 9-Patch file..." /> <option name="file" path="ActionManager" hit="Create 9-Patch file..." /> - <option name="constraint" path="ActionManager" hit="Create Help Panel for Constraint Layout Editor" /> - <option name="create" path="ActionManager" hit="Create Help Panel for Constraint Layout Editor" /> - <option name="editor" path="ActionManager" hit="Create Help Panel for Constraint Layout Editor" /> - <option name="for" path="ActionManager" hit="Create Help Panel for Constraint Layout Editor" /> - <option name="help" path="ActionManager" hit="Create Help Panel for Constraint Layout Editor" /> - <option name="layout" path="ActionManager" hit="Create Help Panel for Constraint Layout Editor" /> - <option name="panel" path="ActionManager" hit="Create Help Panel for Constraint Layout Editor" /> - <option name="create" path="ActionManager" hit="Create Help Panel for Motion Layout Editor" /> - <option name="editor" path="ActionManager" hit="Create Help Panel for Motion Layout Editor" /> - <option name="for" path="ActionManager" hit="Create Help Panel for Motion Layout Editor" /> - <option name="help" path="ActionManager" hit="Create Help Panel for Motion Layout Editor" /> - <option name="layout" path="ActionManager" hit="Create Help Panel for Motion Layout Editor" /> - <option name="motion" path="ActionManager" hit="Create Help Panel for Motion Layout Editor" /> - <option name="panel" path="ActionManager" hit="Create Help Panel for Motion Layout Editor" /> <option name="a" path="ActionManager" hit="Create a new Android object from the Other category" /> <option name="android" path="ActionManager" hit="Create a new Android object from the Other category" /> <option name="category" path="ActionManager" hit="Create a new Android object from the Other category" /> @@ -196,11 +134,6 @@ <option name="object" path="ActionManager" hit="Create a new Android object from the Other category" /> <option name="other" path="ActionManager" hit="Create a new Android object from the Other category" /> <option name="the" path="ActionManager" hit="Create a new Android object from the Other category" /> - <option name="create" path="ActionManager" hit="Create new Sample Data directory" /> - <option name="data" path="ActionManager" hit="Create new Sample Data directory" /> - <option name="directory" path="ActionManager" hit="Create new Sample Data directory" /> - <option name="new" path="ActionManager" hit="Create new Sample Data directory" /> - <option name="sample" path="ActionManager" hit="Create new Sample Data directory" /> <option name="create" path="ActionManager" hit="Create new resource file" /> <option name="file" path="ActionManager" hit="Create new resource file" /> <option name="new" path="ActionManager" hit="Create new resource file" /> @@ -255,14 +188,6 @@ <option name="resource" path="ActionManager" hit="Enable Resource Update Tracing" /> <option name="tracing" path="ActionManager" hit="Enable Resource Update Tracing" /> <option name="update" path="ActionManager" hit="Enable Resource Update Tracing" /> - <option name="disable" path="ActionManager" hit="Enable or disable the Night mode of preview" /> - <option name="enable" path="ActionManager" hit="Enable or disable the Night mode of preview" /> - <option name="mode" path="ActionManager" hit="Enable or disable the Night mode of preview" /> - <option name="night" path="ActionManager" hit="Enable or disable the Night mode of preview" /> - <option name="of" path="ActionManager" hit="Enable or disable the Night mode of preview" /> - <option name="or" path="ActionManager" hit="Enable or disable the Night mode of preview" /> - <option name="preview" path="ActionManager" hit="Enable or disable the Night mode of preview" /> - <option name="the" path="ActionManager" hit="Enable or disable the Night mode of preview" /> <option name="a" path="ActionManager" hit="Enables Instant Apps Support for a Module" /> <option name="apps" path="ActionManager" hit="Enables Instant Apps Support for a Module" /> <option name="enables" path="ActionManager" hit="Enables Instant Apps Support for a Module" /> @@ -287,9 +212,6 @@ <option name="views" path="ActionManager" hit="Extracts one or more views into a separate layout" /> <option name="fold" path="ActionManager" hit="Fold/Unfold" /> <option name="unfold" path="ActionManager" hit="Fold/Unfold" /> - <option name="force" path="ActionManager" hit="Force Refresh Layout" /> - <option name="layout" path="ActionManager" hit="Force Refresh Layout" /> - <option name="refresh" path="ActionManager" hit="Force Refresh Layout" /> <option name="apk" path="ActionManager" hit="Generate Signed Bundle / APK..." /> <option name="bundle" path="ActionManager" hit="Generate Signed Bundle / APK..." /> <option name="generate" path="ActionManager" hit="Generate Signed Bundle / APK..." /> @@ -426,10 +348,6 @@ <option name="to" path="ActionManager" hit="Migrates to resource namespaces" /> <option name="modularize" path="ActionManager" hit="Modularize..." /> <option name="module" path="ActionManager" hit="Module" /> - <option name="help" path="ActionManager" hit="Motion Layout Help Panel" /> - <option name="layout" path="ActionManager" hit="Motion Layout Help Panel" /> - <option name="motion" path="ActionManager" hit="Motion Layout Help Panel" /> - <option name="panel" path="ActionManager" hit="Motion Layout Help Panel" /> <option name="and" path="ActionManager" hit="Moves classes and their associated resources to another module" /> <option name="another" path="ActionManager" hit="Moves classes and their associated resources to another module" /> <option name="associated" path="ActionManager" hit="Moves classes and their associated resources to another module" /> @@ -554,12 +472,6 @@ <option name="the" path="ActionManager" hit="Press the Volume Up button" /> <option name="up" path="ActionManager" hit="Press the Volume Up button" /> <option name="volume" path="ActionManager" hit="Press the Volume Up button" /> - <option name="device" path="ActionManager" hit="Preview Next Device" /> - <option name="next" path="ActionManager" hit="Preview Next Device" /> - <option name="preview" path="ActionManager" hit="Preview Next Device" /> - <option name="device" path="ActionManager" hit="Preview Previous Device" /> - <option name="preview" path="ActionManager" hit="Preview Previous Device" /> - <option name="previous" path="ActionManager" hit="Preview Previous Device" /> <option name="apk" path="ActionManager" hit="Profile or Debug APK" /> <option name="debug" path="ActionManager" hit="Profile or Debug APK" /> <option name="or" path="ActionManager" hit="Profile or Debug APK" /> @@ -578,18 +490,12 @@ <option name="style" path="ActionManager" hit="Pulls out style-related attributes from layout and extract them as a new style" /> <option name="style-related" path="ActionManager" hit="Pulls out style-related attributes from layout and extract them as a new style" /> <option name="them" path="ActionManager" hit="Pulls out style-related attributes from layout and extract them as a new style" /> - <option name="items" path="ActionManager" hit="Rearrange the items" /> - <option name="rearrange" path="ActionManager" hit="Rearrange the items" /> - <option name="the" path="ActionManager" hit="Rearrange the items" /> <option name="project" path="ActionManager" hit="Rebuild Project" /> <option name="rebuild" path="ActionManager" hit="Rebuild Project" /> <option name="c" path="ActionManager" hit="Refresh Linked C++ Projects" /> <option name="linked" path="ActionManager" hit="Refresh Linked C++ Projects" /> <option name="projects" path="ActionManager" hit="Refresh Linked C++ Projects" /> <option name="refresh" path="ActionManager" hit="Refresh Linked C++ Projects" /> - <option name="preview" path="ActionManager" hit="Refresh preview(s)" /> - <option name="refresh" path="ActionManager" hit="Refresh preview(s)" /> - <option name="s" path="ActionManager" hit="Refresh preview(s)" /> <option name="remove" path="ActionManager" hit="Remove Unused Resources..." /> <option name="resources" path="ActionManager" hit="Remove Unused Resources..." /> <option name="unused" path="ActionManager" hit="Remove Unused Resources..." /> @@ -606,9 +512,6 @@ <option name="where" path="ActionManager" hit="Replaces attributes by Android style reference where possible" /> <option name="manager" path="ActionManager" hit="Resource Manager" /> <option name="resource" path="ActionManager" hit="Resource Manager" /> - <option name="default" path="ActionManager" hit="Restore Default Layout" /> - <option name="layout" path="ActionManager" hit="Restore Default Layout" /> - <option name="restore" path="ActionManager" hit="Restore Default Layout" /> <option name="left" path="ActionManager" hit="Rotate Left" /> <option name="rotate" path="ActionManager" hit="Rotate Left" /> <option name="right" path="ActionManager" hit="Rotate Right" /> @@ -635,9 +538,6 @@ <option name="running" path="ActionManager" hit="Running devices" /> <option name="manager" path="ActionManager" hit="SDK Manager" /> <option name="sdk" path="ActionManager" hit="SDK Manager" /> - <option name="data" path="ActionManager" hit="Sample Data Directory" /> - <option name="directory" path="ActionManager" hit="Sample Data Directory" /> - <option name="sample" path="ActionManager" hit="Sample Data Directory" /> <option name="build" path="ActionManager" hit="Select Build Variant..." /> <option name="select" path="ActionManager" hit="Select Build Variant..." /> <option name="variant" path="ActionManager" hit="Select Build Variant..." /> @@ -651,15 +551,6 @@ <option name="set" path="ActionManager" hit="Set up Android Test Retention" /> <option name="test" path="ActionManager" hit="Set up Android Test Retention" /> <option name="up" path="ActionManager" hit="Set up Android Test Retention" /> - <option name="help" path="ActionManager" hit="Show Help Panel" /> - <option name="panel" path="ActionManager" hit="Show Help Panel" /> - <option name="show" path="ActionManager" hit="Show Help Panel" /> - <option name="editor" path="ActionManager" hit="Show Help Panel for Navigation Editor" /> - <option name="for" path="ActionManager" hit="Show Help Panel for Navigation Editor" /> - <option name="help" path="ActionManager" hit="Show Help Panel for Navigation Editor" /> - <option name="navigation" path="ActionManager" hit="Show Help Panel for Navigation Editor" /> - <option name="panel" path="ActionManager" hit="Show Help Panel for Navigation Editor" /> - <option name="show" path="ActionManager" hit="Show Help Panel for Navigation Editor" /> <option name="in" path="ActionManager" hit="Show In Resource Manager" /> <option name="manager" path="ActionManager" hit="Show In Resource Manager" /> <option name="resource" path="ActionManager" hit="Show In Resource Manager" /> @@ -670,19 +561,7 @@ <option name="controls" path="ActionManager" hit="Show folding controls" /> <option name="folding" path="ActionManager" hit="Show folding controls" /> <option name="show" path="ActionManager" hit="Show folding controls" /> - <option name="editor" path="ActionManager" hit="Show/Hide Help Panel for Layout Editor" /> - <option name="for" path="ActionManager" hit="Show/Hide Help Panel for Layout Editor" /> - <option name="help" path="ActionManager" hit="Show/Hide Help Panel for Layout Editor" /> - <option name="hide" path="ActionManager" hit="Show/Hide Help Panel for Layout Editor" /> - <option name="layout" path="ActionManager" hit="Show/Hide Help Panel for Layout Editor" /> - <option name="panel" path="ActionManager" hit="Show/Hide Help Panel for Layout Editor" /> - <option name="show" path="ActionManager" hit="Show/Hide Help Panel for Layout Editor" /> <option name="snapshots" path="ActionManager" hit="Snapshots" /> - <option name="as" path="ActionManager" hit="Store Current Layout as Default" /> - <option name="current" path="ActionManager" hit="Store Current Layout as Default" /> - <option name="default" path="ActionManager" hit="Store Current Layout as Default" /> - <option name="layout" path="ActionManager" hit="Store Current Layout as Default" /> - <option name="store" path="ActionManager" hit="Store Current Layout as Default" /> <option name="style" path="ActionManager" hit="Style..." /> <option name="feedback" path="ActionManager" hit="Submit Feedback" /> <option name="submit" path="ActionManager" hit="Submit Feedback" /> @@ -693,17 +572,6 @@ <option name="team" path="ActionManager" hit="Submit feedback to the Android Studio team" /> <option name="the" path="ActionManager" hit="Submit feedback to the Android Studio team" /> <option name="to" path="ActionManager" hit="Submit feedback to the Android Studio team" /> - <option name="design" path="ActionManager" hit="Switch Design Mode" /> - <option name="mode" path="ActionManager" hit="Switch Design Mode" /> - <option name="switch" path="ActionManager" hit="Switch Design Mode" /> - <option name="and" path="ActionManager" hit="Switch the design mode cycling within Design, Blueprint, and Design + Blueprint" /> - <option name="blueprint" path="ActionManager" hit="Switch the design mode cycling within Design, Blueprint, and Design + Blueprint" /> - <option name="cycling" path="ActionManager" hit="Switch the design mode cycling within Design, Blueprint, and Design + Blueprint" /> - <option name="design" path="ActionManager" hit="Switch the design mode cycling within Design, Blueprint, and Design + Blueprint" /> - <option name="mode" path="ActionManager" hit="Switch the design mode cycling within Design, Blueprint, and Design + Blueprint" /> - <option name="switch" path="ActionManager" hit="Switch the design mode cycling within Design, Blueprint, and Design + Blueprint" /> - <option name="the" path="ActionManager" hit="Switch the design mode cycling within Design, Blueprint, and Design + Blueprint" /> - <option name="within" path="ActionManager" hit="Switch the design mode cycling within Design, Blueprint, and Design + Blueprint" /> <option name="files" path="ActionManager" hit="Sync Project with Gradle Files" /> <option name="gradle" path="ActionManager" hit="Sync Project with Gradle Files" /> <option name="project" path="ActionManager" hit="Sync Project with Gradle Files" /> @@ -716,16 +584,6 @@ <option name="take" path="ActionManager" hit="Take a screenshot" /> <option name="history" path="ActionManager" hit="Test History" /> <option name="test" path="ActionManager" hit="Test History" /> - <option name="device" path="ActionManager" hit="Toggle Device Night Mode" /> - <option name="mode" path="ActionManager" hit="Toggle Device Night Mode" /> - <option name="night" path="ActionManager" hit="Toggle Device Night Mode" /> - <option name="toggle" path="ActionManager" hit="Toggle Device Night Mode" /> - <option name="device" path="ActionManager" hit="Toggle Device Orientation" /> - <option name="orientation" path="ActionManager" hit="Toggle Device Orientation" /> - <option name="toggle" path="ActionManager" hit="Toggle Device Orientation" /> - <option name="issue" path="ActionManager" hit="Toggle Issue Panel" /> - <option name="panel" path="ActionManager" hit="Toggle Issue Panel" /> - <option name="toggle" path="ActionManager" hit="Toggle Issue Panel" /> <option name="decorations" path="ActionManager" hit="Toggle literals decorations" /> <option name="literals" path="ActionManager" hit="Toggle literals decorations" /> <option name="toggle" path="ActionManager" hit="Toggle literals decorations" /> @@ -735,20 +593,6 @@ <option name="literals" path="ActionManager" hit="Toggle literals decorations in the editor" /> <option name="the" path="ActionManager" hit="Toggle literals decorations in the editor" /> <option name="toggle" path="ActionManager" hit="Toggle literals decorations in the editor" /> - <option name="and" path="ActionManager" hit="Toggle the preview orientation between portrait and landscape" /> - <option name="between" path="ActionManager" hit="Toggle the preview orientation between portrait and landscape" /> - <option name="landscape" path="ActionManager" hit="Toggle the preview orientation between portrait and landscape" /> - <option name="orientation" path="ActionManager" hit="Toggle the preview orientation between portrait and landscape" /> - <option name="portrait" path="ActionManager" hit="Toggle the preview orientation between portrait and landscape" /> - <option name="preview" path="ActionManager" hit="Toggle the preview orientation between portrait and landscape" /> - <option name="the" path="ActionManager" hit="Toggle the preview orientation between portrait and landscape" /> - <option name="toggle" path="ActionManager" hit="Toggle the preview orientation between portrait and landscape" /> - <option name="issue" path="ActionManager" hit="Toggle the visibility of Issue Panel" /> - <option name="of" path="ActionManager" hit="Toggle the visibility of Issue Panel" /> - <option name="panel" path="ActionManager" hit="Toggle the visibility of Issue Panel" /> - <option name="the" path="ActionManager" hit="Toggle the visibility of Issue Panel" /> - <option name="toggle" path="ActionManager" hit="Toggle the visibility of Issue Panel" /> - <option name="visibility" path="ActionManager" hit="Toggle the visibility of Issue Panel" /> <option name="connections" path="ActionManager" hit="Troubleshoot Device Connections" /> <option name="device" path="ActionManager" hit="Troubleshoot Device Connections" /> <option name="troubleshoot" path="ActionManager" hit="Troubleshoot Device Connections" /> @@ -895,35 +739,6 @@ <option name="download" hit="Download location" /> <option name="location" hit="Download location" /> </configurable> - <configurable id="nele.options" configurable_name="Design Tools"> - <option name="code" hit="Code" /> - <option name="compose" hit="Compose files:" /> - <option name="files" hit="Compose files:" /> - <option name="default" hit="Default Editor Mode" /> - <option name="editor" hit="Default Editor Mode" /> - <option name="mode" hit="Default Editor Mode" /> - <option name="design" hit="Design" /> - <option name="design" hit="Design Tools" /> - <option name="tools" hit="Design Tools" /> - <option name="drawables" hit="Drawables:" /> - <option name="files" hit="Other Kotlin files:" /> - <option name="kotlin" hit="Other Kotlin files:" /> - <option name="other" hit="Other Kotlin files:" /> - <option name="e" hit="Other Resources (e.g. Layout, Menu, Navigation):" /> - <option name="g" hit="Other Resources (e.g. Layout, Menu, Navigation):" /> - <option name="layout" hit="Other Resources (e.g. Layout, Menu, Navigation):" /> - <option name="menu" hit="Other Resources (e.g. Layout, Menu, Navigation):" /> - <option name="navigation" hit="Other Resources (e.g. Layout, Menu, Navigation):" /> - <option name="other" hit="Other Resources (e.g. Layout, Menu, Navigation):" /> - <option name="resources" hit="Other Resources (e.g. Layout, Menu, Navigation):" /> - <option name="design" hit="Show lint icons on design surface" /> - <option name="icons" hit="Show lint icons on design surface" /> - <option name="lint" hit="Show lint icons on design surface" /> - <option name="on" hit="Show lint icons on design surface" /> - <option name="show" hit="Show lint icons on design surface" /> - <option name="surface" hit="Show lint icons on design surface" /> - <option name="split" hit="Split" /> - </configurable> <configurable id="instant.run" configurable_name="Deployment"> <option name="apply" hit="Automatically perform "Run" when Apply Changes fails" /> <option name="automatically" hit="Automatically perform "Run" when Apply Changes fails" /> diff --git a/searchable-options/design-tools/design-tools.jar/search/design-tools.jar.searchableOptions.xml b/searchable-options/design-tools/design-tools.jar/search/design-tools.jar.searchableOptions.xml new file mode 100644 index 00000000000..ab20d9882cc --- /dev/null +++ b/searchable-options/design-tools/design-tools.jar/search/design-tools.jar.searchableOptions.xml @@ -0,0 +1,191 @@ +<?xml version="1.0" encoding="UTF-8"?> +<options> + <configurable id="preferences.keymap" configurable_name="Keymap"> + <option name="action" path="ActionManager" hit="Add Action" /> + <option name="add" path="ActionManager" hit="Add Action" /> + <option name="add" path="ActionManager" hit="Add Deep Link" /> + <option name="deep" path="ActionManager" hit="Add Deep Link" /> + <option name="link" path="ActionManager" hit="Add Deep Link" /> + <option name="action" path="ActionManager" hit="Add action to the selected item" /> + <option name="add" path="ActionManager" hit="Add action to the selected item" /> + <option name="item" path="ActionManager" hit="Add action to the selected item" /> + <option name="selected" path="ActionManager" hit="Add action to the selected item" /> + <option name="the" path="ActionManager" hit="Add action to the selected item" /> + <option name="to" path="ActionManager" hit="Add action to the selected item" /> + <option name="add" path="ActionManager" hit="Add deep link to the selected item" /> + <option name="deep" path="ActionManager" hit="Add deep link to the selected item" /> + <option name="item" path="ActionManager" hit="Add deep link to the selected item" /> + <option name="link" path="ActionManager" hit="Add deep link to the selected item" /> + <option name="selected" path="ActionManager" hit="Add deep link to the selected item" /> + <option name="the" path="ActionManager" hit="Add deep link to the selected item" /> + <option name="to" path="ActionManager" hit="Add deep link to the selected item" /> + <option name="assign" path="ActionManager" hit="Assign Start Destination" /> + <option name="destination" path="ActionManager" hit="Assign Start Destination" /> + <option name="start" path="ActionManager" hit="Assign Start Destination" /> + <option name="assign" path="ActionManager" hit="Assign the start point of navigation graph" /> + <option name="graph" path="ActionManager" hit="Assign the start point of navigation graph" /> + <option name="navigation" path="ActionManager" hit="Assign the start point of navigation graph" /> + <option name="of" path="ActionManager" hit="Assign the start point of navigation graph" /> + <option name="point" path="ActionManager" hit="Assign the start point of navigation graph" /> + <option name="start" path="ActionManager" hit="Assign the start point of navigation graph" /> + <option name="the" path="ActionManager" hit="Assign the start point of navigation graph" /> + <option name="arrange" path="ActionManager" hit="Auto Arrange" /> + <option name="auto" path="ActionManager" hit="Auto Arrange" /> + <option name="change" path="ActionManager" hit="Change to next device in the device menu" /> + <option name="device" path="ActionManager" hit="Change to next device in the device menu" /> + <option name="in" path="ActionManager" hit="Change to next device in the device menu" /> + <option name="menu" path="ActionManager" hit="Change to next device in the device menu" /> + <option name="next" path="ActionManager" hit="Change to next device in the device menu" /> + <option name="the" path="ActionManager" hit="Change to next device in the device menu" /> + <option name="to" path="ActionManager" hit="Change to next device in the device menu" /> + <option name="change" path="ActionManager" hit="Change to previous device in the device menu" /> + <option name="device" path="ActionManager" hit="Change to previous device in the device menu" /> + <option name="in" path="ActionManager" hit="Change to previous device in the device menu" /> + <option name="menu" path="ActionManager" hit="Change to previous device in the device menu" /> + <option name="previous" path="ActionManager" hit="Change to previous device in the device menu" /> + <option name="the" path="ActionManager" hit="Change to previous device in the device menu" /> + <option name="to" path="ActionManager" hit="Change to previous device in the device menu" /> + <option name="constraint" path="ActionManager" hit="Constraint Layout Help Panel" /> + <option name="help" path="ActionManager" hit="Constraint Layout Help Panel" /> + <option name="layout" path="ActionManager" hit="Constraint Layout Help Panel" /> + <option name="panel" path="ActionManager" hit="Constraint Layout Help Panel" /> + <option name="constraint" path="ActionManager" hit="Create Help Panel for Constraint Layout Editor" /> + <option name="create" path="ActionManager" hit="Create Help Panel for Constraint Layout Editor" /> + <option name="editor" path="ActionManager" hit="Create Help Panel for Constraint Layout Editor" /> + <option name="for" path="ActionManager" hit="Create Help Panel for Constraint Layout Editor" /> + <option name="help" path="ActionManager" hit="Create Help Panel for Constraint Layout Editor" /> + <option name="layout" path="ActionManager" hit="Create Help Panel for Constraint Layout Editor" /> + <option name="panel" path="ActionManager" hit="Create Help Panel for Constraint Layout Editor" /> + <option name="create" path="ActionManager" hit="Create Help Panel for Motion Layout Editor" /> + <option name="editor" path="ActionManager" hit="Create Help Panel for Motion Layout Editor" /> + <option name="for" path="ActionManager" hit="Create Help Panel for Motion Layout Editor" /> + <option name="help" path="ActionManager" hit="Create Help Panel for Motion Layout Editor" /> + <option name="layout" path="ActionManager" hit="Create Help Panel for Motion Layout Editor" /> + <option name="motion" path="ActionManager" hit="Create Help Panel for Motion Layout Editor" /> + <option name="panel" path="ActionManager" hit="Create Help Panel for Motion Layout Editor" /> + <option name="create" path="ActionManager" hit="Create new Sample Data directory" /> + <option name="data" path="ActionManager" hit="Create new Sample Data directory" /> + <option name="directory" path="ActionManager" hit="Create new Sample Data directory" /> + <option name="new" path="ActionManager" hit="Create new Sample Data directory" /> + <option name="sample" path="ActionManager" hit="Create new Sample Data directory" /> + <option name="disable" path="ActionManager" hit="Enable or disable the Night mode of preview" /> + <option name="enable" path="ActionManager" hit="Enable or disable the Night mode of preview" /> + <option name="mode" path="ActionManager" hit="Enable or disable the Night mode of preview" /> + <option name="night" path="ActionManager" hit="Enable or disable the Night mode of preview" /> + <option name="of" path="ActionManager" hit="Enable or disable the Night mode of preview" /> + <option name="or" path="ActionManager" hit="Enable or disable the Night mode of preview" /> + <option name="preview" path="ActionManager" hit="Enable or disable the Night mode of preview" /> + <option name="the" path="ActionManager" hit="Enable or disable the Night mode of preview" /> + <option name="force" path="ActionManager" hit="Force Refresh Layout" /> + <option name="layout" path="ActionManager" hit="Force Refresh Layout" /> + <option name="refresh" path="ActionManager" hit="Force Refresh Layout" /> + <option name="help" path="ActionManager" hit="Motion Layout Help Panel" /> + <option name="layout" path="ActionManager" hit="Motion Layout Help Panel" /> + <option name="motion" path="ActionManager" hit="Motion Layout Help Panel" /> + <option name="panel" path="ActionManager" hit="Motion Layout Help Panel" /> + <option name="device" path="ActionManager" hit="Preview Next Device" /> + <option name="next" path="ActionManager" hit="Preview Next Device" /> + <option name="preview" path="ActionManager" hit="Preview Next Device" /> + <option name="device" path="ActionManager" hit="Preview Previous Device" /> + <option name="preview" path="ActionManager" hit="Preview Previous Device" /> + <option name="previous" path="ActionManager" hit="Preview Previous Device" /> + <option name="items" path="ActionManager" hit="Rearrange the items" /> + <option name="rearrange" path="ActionManager" hit="Rearrange the items" /> + <option name="the" path="ActionManager" hit="Rearrange the items" /> + <option name="preview" path="ActionManager" hit="Refresh preview(s)" /> + <option name="refresh" path="ActionManager" hit="Refresh preview(s)" /> + <option name="s" path="ActionManager" hit="Refresh preview(s)" /> + <option name="default" path="ActionManager" hit="Restore Default Layout" /> + <option name="layout" path="ActionManager" hit="Restore Default Layout" /> + <option name="restore" path="ActionManager" hit="Restore Default Layout" /> + <option name="data" path="ActionManager" hit="Sample Data Directory" /> + <option name="directory" path="ActionManager" hit="Sample Data Directory" /> + <option name="sample" path="ActionManager" hit="Sample Data Directory" /> + <option name="help" path="ActionManager" hit="Show Help Panel" /> + <option name="panel" path="ActionManager" hit="Show Help Panel" /> + <option name="show" path="ActionManager" hit="Show Help Panel" /> + <option name="editor" path="ActionManager" hit="Show Help Panel for Navigation Editor" /> + <option name="for" path="ActionManager" hit="Show Help Panel for Navigation Editor" /> + <option name="help" path="ActionManager" hit="Show Help Panel for Navigation Editor" /> + <option name="navigation" path="ActionManager" hit="Show Help Panel for Navigation Editor" /> + <option name="panel" path="ActionManager" hit="Show Help Panel for Navigation Editor" /> + <option name="show" path="ActionManager" hit="Show Help Panel for Navigation Editor" /> + <option name="editor" path="ActionManager" hit="Show/Hide Help Panel for Layout Editor" /> + <option name="for" path="ActionManager" hit="Show/Hide Help Panel for Layout Editor" /> + <option name="help" path="ActionManager" hit="Show/Hide Help Panel for Layout Editor" /> + <option name="hide" path="ActionManager" hit="Show/Hide Help Panel for Layout Editor" /> + <option name="layout" path="ActionManager" hit="Show/Hide Help Panel for Layout Editor" /> + <option name="panel" path="ActionManager" hit="Show/Hide Help Panel for Layout Editor" /> + <option name="show" path="ActionManager" hit="Show/Hide Help Panel for Layout Editor" /> + <option name="as" path="ActionManager" hit="Store Current Layout as Default" /> + <option name="current" path="ActionManager" hit="Store Current Layout as Default" /> + <option name="default" path="ActionManager" hit="Store Current Layout as Default" /> + <option name="layout" path="ActionManager" hit="Store Current Layout as Default" /> + <option name="store" path="ActionManager" hit="Store Current Layout as Default" /> + <option name="design" path="ActionManager" hit="Switch Design Mode" /> + <option name="mode" path="ActionManager" hit="Switch Design Mode" /> + <option name="switch" path="ActionManager" hit="Switch Design Mode" /> + <option name="and" path="ActionManager" hit="Switch the design mode cycling within Design, Blueprint, and Design + Blueprint" /> + <option name="blueprint" path="ActionManager" hit="Switch the design mode cycling within Design, Blueprint, and Design + Blueprint" /> + <option name="cycling" path="ActionManager" hit="Switch the design mode cycling within Design, Blueprint, and Design + Blueprint" /> + <option name="design" path="ActionManager" hit="Switch the design mode cycling within Design, Blueprint, and Design + Blueprint" /> + <option name="mode" path="ActionManager" hit="Switch the design mode cycling within Design, Blueprint, and Design + Blueprint" /> + <option name="switch" path="ActionManager" hit="Switch the design mode cycling within Design, Blueprint, and Design + Blueprint" /> + <option name="the" path="ActionManager" hit="Switch the design mode cycling within Design, Blueprint, and Design + Blueprint" /> + <option name="within" path="ActionManager" hit="Switch the design mode cycling within Design, Blueprint, and Design + Blueprint" /> + <option name="device" path="ActionManager" hit="Toggle Device Night Mode" /> + <option name="mode" path="ActionManager" hit="Toggle Device Night Mode" /> + <option name="night" path="ActionManager" hit="Toggle Device Night Mode" /> + <option name="toggle" path="ActionManager" hit="Toggle Device Night Mode" /> + <option name="device" path="ActionManager" hit="Toggle Device Orientation" /> + <option name="orientation" path="ActionManager" hit="Toggle Device Orientation" /> + <option name="toggle" path="ActionManager" hit="Toggle Device Orientation" /> + <option name="issue" path="ActionManager" hit="Toggle Issue Panel" /> + <option name="panel" path="ActionManager" hit="Toggle Issue Panel" /> + <option name="toggle" path="ActionManager" hit="Toggle Issue Panel" /> + <option name="and" path="ActionManager" hit="Toggle the preview orientation between portrait and landscape" /> + <option name="between" path="ActionManager" hit="Toggle the preview orientation between portrait and landscape" /> + <option name="landscape" path="ActionManager" hit="Toggle the preview orientation between portrait and landscape" /> + <option name="orientation" path="ActionManager" hit="Toggle the preview orientation between portrait and landscape" /> + <option name="portrait" path="ActionManager" hit="Toggle the preview orientation between portrait and landscape" /> + <option name="preview" path="ActionManager" hit="Toggle the preview orientation between portrait and landscape" /> + <option name="the" path="ActionManager" hit="Toggle the preview orientation between portrait and landscape" /> + <option name="toggle" path="ActionManager" hit="Toggle the preview orientation between portrait and landscape" /> + <option name="issue" path="ActionManager" hit="Toggle the visibility of Issue Panel" /> + <option name="of" path="ActionManager" hit="Toggle the visibility of Issue Panel" /> + <option name="panel" path="ActionManager" hit="Toggle the visibility of Issue Panel" /> + <option name="the" path="ActionManager" hit="Toggle the visibility of Issue Panel" /> + <option name="toggle" path="ActionManager" hit="Toggle the visibility of Issue Panel" /> + <option name="visibility" path="ActionManager" hit="Toggle the visibility of Issue Panel" /> + </configurable> + <configurable id="nele.options" configurable_name="Design Tools"> + <option name="code" hit="Code" /> + <option name="compose" hit="Compose files:" /> + <option name="files" hit="Compose files:" /> + <option name="default" hit="Default Editor Mode" /> + <option name="editor" hit="Default Editor Mode" /> + <option name="mode" hit="Default Editor Mode" /> + <option name="design" hit="Design" /> + <option name="design" hit="Design Tools" /> + <option name="tools" hit="Design Tools" /> + <option name="drawables" hit="Drawables:" /> + <option name="files" hit="Other Kotlin files:" /> + <option name="kotlin" hit="Other Kotlin files:" /> + <option name="other" hit="Other Kotlin files:" /> + <option name="e" hit="Other Resources (e.g. Layout, Menu, Navigation):" /> + <option name="g" hit="Other Resources (e.g. Layout, Menu, Navigation):" /> + <option name="layout" hit="Other Resources (e.g. Layout, Menu, Navigation):" /> + <option name="menu" hit="Other Resources (e.g. Layout, Menu, Navigation):" /> + <option name="navigation" hit="Other Resources (e.g. Layout, Menu, Navigation):" /> + <option name="other" hit="Other Resources (e.g. Layout, Menu, Navigation):" /> + <option name="resources" hit="Other Resources (e.g. Layout, Menu, Navigation):" /> + <option name="design" hit="Show lint icons on design surface" /> + <option name="icons" hit="Show lint icons on design surface" /> + <option name="lint" hit="Show lint icons on design surface" /> + <option name="on" hit="Show lint icons on design surface" /> + <option name="show" hit="Show lint icons on design surface" /> + <option name="surface" hit="Show lint icons on design surface" /> + <option name="split" hit="Split" /> + </configurable> +</options> + diff --git a/studio/BUILD b/studio/BUILD index 314de00ce8b..f494ab10364 100644 --- a/studio/BUILD +++ b/studio/BUILD @@ -28,6 +28,7 @@ studio_plugin( "//tools/adt/idea/.idea/libraries:dexlib2", "//tools/adt/idea/.idea/libraries:emulator-proto", "//tools/adt/idea/.idea/libraries:javax-inject", + "//tools/adt/idea/.idea/libraries:kxml2", "//tools/adt/idea/.idea/libraries:layoutinspector-compose-proto", "//tools/adt/idea/.idea/libraries:layoutinspector-skia-proto", "//tools/adt/idea/.idea/libraries:layoutinspector-view-proto", @@ -109,7 +110,6 @@ studio_plugin( "//tools/adt/idea/app-inspection/inspectors/workmanager/model:intellij.android.app-inspection.inspectors.workmanager.model", "//tools/adt/idea/app-inspection/inspectors/workmanager/view:intellij.android.app-inspection.inspectors.workmanager.view", "//tools/adt/idea/build-attribution:intellij.android.build-attribution", - "//tools/adt/idea/compose-designer:intellij.android.compose-designer", "//tools/adt/idea/intellij.android.compose-common:intellij.android.compose-common", "//tools/adt/idea/android:intellij.android.core", "//tools/adt/idea/dagger:intellij.android.dagger", @@ -117,8 +117,6 @@ studio_plugin( "//tools/adt/idea/app-inspection/inspectors/database:intellij.android.app-inspection.inspectors.database", "//tools/adt/idea/debuggers:intellij.android.debuggers", "//tools/adt/idea/deploy:intellij.android.deploy", - "//tools/adt/idea/designer/customview:intellij.android.designer.customview", - "//tools/adt/idea/designer:intellij.android.designer", "//tools/adt/idea/emulator:intellij.android.emulator", "//tools/adt/idea/gradle-tooling/studio-gradle-tooling-api:intellij.android.gradle-tooling.api", "//tools/adt/idea/gradle-tooling/studio-gradle-tooling-impl:intellij.android.gradle-tooling.impl", @@ -128,7 +126,6 @@ studio_plugin( "//tools/adt/idea/layout-inspector:intellij.android.layout-inspector", "//tools/adt/idea/layout-ui:intellij.android.layout-ui", "//tools/adt/idea/mlkit:intellij.android.mlkit", - "//tools/adt/idea/nav/editor:intellij.android.nav.editor", "//tools/adt/idea/nav/safeargs:intellij.android.nav.safeargs", "//tools/adt/idea/android-npw:intellij.android.newProjectWizard", "//tools/adt/idea/observable-ui:intellij.android.observable.ui", @@ -238,14 +235,13 @@ studio_plugin( "android-base-common.jar": [ "//tools/base/common:studio.android.sdktools.common", ], + "layoutlib-api.jar": [ + "//tools/base/layoutlib-api:studio.android.sdktools.layoutlib-api", + ], }, # List of modules and libraries we expect to be provided by the platform provided = [ - "//tools/adt/idea/.idea/libraries:layoutlib", # Plugins :com.android.layoutlib.*" are optional - "//tools/adt/idea/.idea/libraries:kxml2", "//tools/adt/idea/android-kotlin:dx", # TODO - "//tools/base/annotations:studio.android.sdktools.android-annotations", - "//tools/base/layoutlib-api:studio.android.sdktools.layoutlib-api", # Plugins :com.android.layoutlib.*" are optional ], resources = { "resources": [ @@ -314,23 +310,28 @@ studio_plugin( ) studio_plugin( - name = "com.android.layoutlib", - directory = "android-layoutlib", + name = "com.android.tools.design", + directory = "design-tools", libs = [ "//tools/adt/idea/.idea/libraries:layoutlib", - "//tools/adt/idea/.idea/libraries:kxml2", ], licenses = [ "//prebuilts/studio/layoutlib:licenses", ], modules = { - "android-layoutlib.jar": ["//tools/adt/idea/layoutlib:intellij.android.layoutlib"], - "layoutlib-api.jar": ["//tools/base/layoutlib-api:studio.android.sdktools.layoutlib-api"], - "android-annotations.jar": ["//tools/base/annotations:studio.android.sdktools.android-annotations"], + "design-tools.jar": [ + "//tools/adt/idea/compose-designer:intellij.android.compose-designer", + "//tools/adt/idea/design-plugin:intellij.android.design-plugin", + "//tools/adt/idea/designer/customview:intellij.android.designer.customview", + "//tools/adt/idea/designer:intellij.android.designer", + "//tools/adt/idea/layoutlib:intellij.android.layoutlib", + "//tools/adt/idea/nav/editor:intellij.android.nav.editor", + ], }, - provided = [ - "//tools/adt/idea/.idea/libraries:kxml2", - "//tools/base/annotations:studio.android.sdktools.android-annotations", + deps = [ + ":org.jetbrains.android", + "//prebuilts/studio/intellij-sdk:studio-sdk-plugin-Kotlin", + "//prebuilts/studio/intellij-sdk:studio-sdk-plugin-platform-images", ], ) @@ -338,9 +339,6 @@ studio_plugin( name = "androidx.compose.plugins.idea", directory = "android-compose-ide-plugin", modules = {"android-compose-ide-plugin.jar": ["//tools/adt/idea/compose-ide-plugin:intellij.android.compose-ide-plugin"]}, - provided = [ - "//tools/base/layoutlib-api:studio.android.sdktools.layoutlib-api", # layout plugins are optional. - ], deps = [ ":org.jetbrains.android", "//prebuilts/studio/intellij-sdk:studio-sdk-plugin-Kotlin", @@ -516,7 +514,7 @@ android_studio( ":org.jetbrains.android", ":com.android.tools.apk", ":com.android.tools.ndk", - ":com.android.layoutlib", + ":com.android.tools.design", ":androidx.compose.plugins.idea", ":com.google.services.firebase", ":com.google.gct.testing", @@ -639,7 +637,7 @@ iml_module( "//tools/adt/idea/android-plugin:intellij.android.plugin[module]", "//tools/vendor/google/android-apk[module]", "//tools/adt/idea/compose-ide-plugin:intellij.android.compose-ide-plugin[module]", - "//tools/adt/idea/layoutlib:intellij.android.layoutlib[module]", + "//tools/adt/idea/design-plugin:intellij.android.design-plugin[module]", "//tools/vendor/google/android-ndk[module]", "//tools/studio/google/cloud/tools/android-studio-plugin:google-cloud-tools-as[module]", "//tools/vendor/google/firebase[module]", diff --git a/studio/studio.iml b/studio/studio.iml index 7f523aab22f..fcb707b180f 100644 --- a/studio/studio.iml +++ b/studio/studio.iml @@ -10,7 +10,7 @@ <orderEntry type="module" module-name="intellij.android.plugin" /> <orderEntry type="module" module-name="android-apk" /> <orderEntry type="module" module-name="intellij.android.compose-ide-plugin" /> - <orderEntry type="module" module-name="intellij.android.layoutlib" /> + <orderEntry type="module" module-name="intellij.android.design-plugin" /> <orderEntry type="module" module-name="android-ndk" /> <orderEntry type="module" module-name="google-cloud-tools-as" /> <orderEntry type="module" module-name="firebase" /> diff --git a/studio/tests/expected_linux.txt b/studio/tests/expected_linux.txt index 107f2c860b1..652668436be 100644 --- a/studio/tests/expected_linux.txt +++ b/studio/tests/expected_linux.txt @@ -1001,11 +1001,6 @@ android-studio/plugins/Kotlin/lib/parcelize-compiler-plugin-for-ide.jar android-studio/plugins/Kotlin/lib/sam-with-receiver-compiler-plugin-for-ide.jar android-studio/plugins/android-apk/lib/android-apk.jar android-studio/plugins/android-compose-ide-plugin/lib/android-compose-ide-plugin.jar -android-studio/plugins/android-layoutlib/lib/android-annotations.jar -android-studio/plugins/android-layoutlib/lib/android-layoutlib.jar -android-studio/plugins/android-layoutlib/lib/kxml2-2.3.0.jar -android-studio/plugins/android-layoutlib/lib/layoutlib-api.jar -android-studio/plugins/android-layoutlib/lib/layoutlib.jar android-studio/plugins/android-ndk/lib/android-ndk.jar android-studio/plugins/android-ndk/lib/org.eclipse.cdt.core_6.8.1.201907021957.jar android-studio/plugins/android-ndk/lib/org.eclipse.equinox.common_3.10.500.v20190621-0852.jar @@ -2063,9 +2058,11 @@ android-studio/plugins/android/lib/jetifier-core-1.0.0-beta09.jar android-studio/plugins/android/lib/jps/android-jps-plugin.jar android-studio/plugins/android/lib/juniversalchardet-1.0.3.jar android-studio/plugins/android/lib/kotlinx-coroutines-guava-1.3.9.jar +android-studio/plugins/android/lib/kxml2-2.3.0.jar android-studio/plugins/android/lib/layout_inspector_compose_java_proto.jar android-studio/plugins/android/lib/layout_inspector_skia_java_proto.jar android-studio/plugins/android/lib/layout_inspector_view_java_proto.jar +android-studio/plugins/android/lib/layoutlib-api.jar android-studio/plugins/android/lib/layoutlib-loader.jar android-studio/plugins/android/lib/libam-instrumentation-data-proto.jar android-studio/plugins/android/lib/libandroid-core-proto.jar @@ -2776,6 +2773,8 @@ android-studio/plugins/coverage/lib/freemarker.jar android-studio/plugins/coverage/lib/jacocoagent.jar android-studio/plugins/coverage/lib/jacocoant.jar android-studio/plugins/coverage/lib/resources_en.jar +android-studio/plugins/design-tools/lib/design-tools.jar +android-studio/plugins/design-tools/lib/layoutlib.jar android-studio/plugins/editorconfig/lib/editorconfig-core-java.jar android-studio/plugins/editorconfig/lib/editorconfig.jar android-studio/plugins/editorconfig/lib/resources_en.jar diff --git a/studio/tests/expected_mac.txt b/studio/tests/expected_mac.txt index 663d41fbcec..0d02be87cfc 100644 --- a/studio/tests/expected_mac.txt +++ b/studio/tests/expected_mac.txt @@ -987,11 +987,6 @@ Android Studio Preview.app/Contents/plugins/Kotlin/lib/parcelize-compiler-plugin Android Studio Preview.app/Contents/plugins/Kotlin/lib/sam-with-receiver-compiler-plugin-for-ide.jar Android Studio Preview.app/Contents/plugins/android-apk/lib/android-apk.jar Android Studio Preview.app/Contents/plugins/android-compose-ide-plugin/lib/android-compose-ide-plugin.jar -Android Studio Preview.app/Contents/plugins/android-layoutlib/lib/android-annotations.jar -Android Studio Preview.app/Contents/plugins/android-layoutlib/lib/android-layoutlib.jar -Android Studio Preview.app/Contents/plugins/android-layoutlib/lib/kxml2-2.3.0.jar -Android Studio Preview.app/Contents/plugins/android-layoutlib/lib/layoutlib-api.jar -Android Studio Preview.app/Contents/plugins/android-layoutlib/lib/layoutlib.jar Android Studio Preview.app/Contents/plugins/android-ndk/lib/android-ndk.jar Android Studio Preview.app/Contents/plugins/android-ndk/lib/org.eclipse.cdt.core_6.8.1.201907021957.jar Android Studio Preview.app/Contents/plugins/android-ndk/lib/org.eclipse.equinox.common_3.10.500.v20190621-0852.jar @@ -2059,9 +2054,11 @@ Android Studio Preview.app/Contents/plugins/android/lib/jetifier-core-1.0.0-beta Android Studio Preview.app/Contents/plugins/android/lib/jps/android-jps-plugin.jar Android Studio Preview.app/Contents/plugins/android/lib/juniversalchardet-1.0.3.jar Android Studio Preview.app/Contents/plugins/android/lib/kotlinx-coroutines-guava-1.3.9.jar +Android Studio Preview.app/Contents/plugins/android/lib/kxml2-2.3.0.jar Android Studio Preview.app/Contents/plugins/android/lib/layout_inspector_compose_java_proto.jar Android Studio Preview.app/Contents/plugins/android/lib/layout_inspector_skia_java_proto.jar Android Studio Preview.app/Contents/plugins/android/lib/layout_inspector_view_java_proto.jar +Android Studio Preview.app/Contents/plugins/android/lib/layoutlib-api.jar Android Studio Preview.app/Contents/plugins/android/lib/layoutlib-loader.jar Android Studio Preview.app/Contents/plugins/android/lib/libam-instrumentation-data-proto.jar Android Studio Preview.app/Contents/plugins/android/lib/libandroid-core-proto.jar @@ -2769,6 +2766,8 @@ Android Studio Preview.app/Contents/plugins/coverage/lib/freemarker.jar Android Studio Preview.app/Contents/plugins/coverage/lib/jacocoagent.jar Android Studio Preview.app/Contents/plugins/coverage/lib/jacocoant.jar Android Studio Preview.app/Contents/plugins/coverage/lib/resources_en.jar +Android Studio Preview.app/Contents/plugins/design-tools/lib/design-tools.jar +Android Studio Preview.app/Contents/plugins/design-tools/lib/layoutlib.jar Android Studio Preview.app/Contents/plugins/editorconfig/lib/editorconfig-core-java.jar Android Studio Preview.app/Contents/plugins/editorconfig/lib/editorconfig.jar Android Studio Preview.app/Contents/plugins/editorconfig/lib/resources_en.jar diff --git a/studio/tests/expected_mac_arm.txt b/studio/tests/expected_mac_arm.txt index ac92a574d93..689931a1ebb 100644 --- a/studio/tests/expected_mac_arm.txt +++ b/studio/tests/expected_mac_arm.txt @@ -1011,11 +1011,6 @@ Android Studio Preview.app/Contents/plugins/Kotlin/lib/parcelize-compiler-plugin Android Studio Preview.app/Contents/plugins/Kotlin/lib/sam-with-receiver-compiler-plugin-for-ide.jar Android Studio Preview.app/Contents/plugins/android-apk/lib/android-apk.jar Android Studio Preview.app/Contents/plugins/android-compose-ide-plugin/lib/android-compose-ide-plugin.jar -Android Studio Preview.app/Contents/plugins/android-layoutlib/lib/android-annotations.jar -Android Studio Preview.app/Contents/plugins/android-layoutlib/lib/android-layoutlib.jar -Android Studio Preview.app/Contents/plugins/android-layoutlib/lib/kxml2-2.3.0.jar -Android Studio Preview.app/Contents/plugins/android-layoutlib/lib/layoutlib-api.jar -Android Studio Preview.app/Contents/plugins/android-layoutlib/lib/layoutlib.jar Android Studio Preview.app/Contents/plugins/android-ndk/lib/android-ndk.jar Android Studio Preview.app/Contents/plugins/android-ndk/lib/org.eclipse.cdt.core_6.8.1.201907021957.jar Android Studio Preview.app/Contents/plugins/android-ndk/lib/org.eclipse.equinox.common_3.10.500.v20190621-0852.jar @@ -1066,9 +1061,11 @@ Android Studio Preview.app/Contents/plugins/android/lib/jetifier-core-1.0.0-beta Android Studio Preview.app/Contents/plugins/android/lib/jps/android-jps-plugin.jar Android Studio Preview.app/Contents/plugins/android/lib/juniversalchardet-1.0.3.jar Android Studio Preview.app/Contents/plugins/android/lib/kotlinx-coroutines-guava-1.3.9.jar +Android Studio Preview.app/Contents/plugins/android/lib/kxml2-2.3.0.jar Android Studio Preview.app/Contents/plugins/android/lib/layout_inspector_compose_java_proto.jar Android Studio Preview.app/Contents/plugins/android/lib/layout_inspector_skia_java_proto.jar Android Studio Preview.app/Contents/plugins/android/lib/layout_inspector_view_java_proto.jar +Android Studio Preview.app/Contents/plugins/android/lib/layoutlib-api.jar Android Studio Preview.app/Contents/plugins/android/lib/layoutlib-loader.jar Android Studio Preview.app/Contents/plugins/android/lib/libam-instrumentation-data-proto.jar Android Studio Preview.app/Contents/plugins/android/lib/libandroid-core-proto.jar @@ -1773,6 +1770,8 @@ Android Studio Preview.app/Contents/plugins/coverage/lib/freemarker.jar Android Studio Preview.app/Contents/plugins/coverage/lib/jacocoagent.jar Android Studio Preview.app/Contents/plugins/coverage/lib/jacocoant.jar Android Studio Preview.app/Contents/plugins/coverage/lib/resources_en.jar +Android Studio Preview.app/Contents/plugins/design-tools/lib/design-tools.jar +Android Studio Preview.app/Contents/plugins/design-tools/lib/layoutlib.jar Android Studio Preview.app/Contents/plugins/editorconfig/lib/editorconfig-core-java.jar Android Studio Preview.app/Contents/plugins/editorconfig/lib/editorconfig.jar Android Studio Preview.app/Contents/plugins/editorconfig/lib/resources_en.jar diff --git a/studio/tests/expected_win.txt b/studio/tests/expected_win.txt index 7b5784ac1b2..fa403f7ddf6 100644 --- a/studio/tests/expected_win.txt +++ b/studio/tests/expected_win.txt @@ -1010,11 +1010,6 @@ android-studio/plugins/Kotlin/lib/parcelize-compiler-plugin-for-ide.jar android-studio/plugins/Kotlin/lib/sam-with-receiver-compiler-plugin-for-ide.jar android-studio/plugins/android-apk/lib/android-apk.jar android-studio/plugins/android-compose-ide-plugin/lib/android-compose-ide-plugin.jar -android-studio/plugins/android-layoutlib/lib/android-annotations.jar -android-studio/plugins/android-layoutlib/lib/android-layoutlib.jar -android-studio/plugins/android-layoutlib/lib/kxml2-2.3.0.jar -android-studio/plugins/android-layoutlib/lib/layoutlib-api.jar -android-studio/plugins/android-layoutlib/lib/layoutlib.jar android-studio/plugins/android-ndk/lib/android-ndk.jar android-studio/plugins/android-ndk/lib/org.eclipse.cdt.core_6.8.1.201907021957.jar android-studio/plugins/android-ndk/lib/org.eclipse.equinox.common_3.10.500.v20190621-0852.jar @@ -1591,9 +1586,11 @@ android-studio/plugins/android/lib/jetifier-core-1.0.0-beta09.jar android-studio/plugins/android/lib/jps/android-jps-plugin.jar android-studio/plugins/android/lib/juniversalchardet-1.0.3.jar android-studio/plugins/android/lib/kotlinx-coroutines-guava-1.3.9.jar +android-studio/plugins/android/lib/kxml2-2.3.0.jar android-studio/plugins/android/lib/layout_inspector_compose_java_proto.jar android-studio/plugins/android/lib/layout_inspector_skia_java_proto.jar android-studio/plugins/android/lib/layout_inspector_view_java_proto.jar +android-studio/plugins/android/lib/layoutlib-api.jar android-studio/plugins/android/lib/layoutlib-loader.jar android-studio/plugins/android/lib/libam-instrumentation-data-proto.jar android-studio/plugins/android/lib/libandroid-core-proto.jar @@ -2307,6 +2304,8 @@ android-studio/plugins/coverage/lib/freemarker.jar android-studio/plugins/coverage/lib/jacocoagent.jar android-studio/plugins/coverage/lib/jacocoant.jar android-studio/plugins/coverage/lib/resources_en.jar +android-studio/plugins/design-tools/lib/design-tools.jar +android-studio/plugins/design-tools/lib/layoutlib.jar android-studio/plugins/editorconfig/lib/editorconfig-core-java.jar android-studio/plugins/editorconfig/lib/editorconfig.jar android-studio/plugins/editorconfig/lib/resources_en.jar diff --git a/studio/tests/startup_test.py b/studio/tests/startup_test.py index 09f27337f59..f1df76a29b3 100644 --- a/studio/tests/startup_test.py +++ b/studio/tests/startup_test.py @@ -112,6 +112,7 @@ class StartUpTest(unittest.TestCase): "Compose", "Configuration Script", "Copyright", + "Design Tools", "EditorConfig", "Emoji Picker", "Firebase App Indexing", @@ -137,7 +138,6 @@ class StartUpTest(unittest.TestCase): "JetBrains Repository Search", "JetBrains maven model api classes", "Kotlin", - "Layoutlib", "Machine Learning Code Completion", "Machine Learning Code Completion Models", "Mercurial", |