diff --git a/platform/platform-impl/src/com/intellij/ide/plugins/newui/LicensePanel.java b/platform/platform-impl/src/com/intellij/ide/plugins/newui/LicensePanel.java index 18b60f2aaf15..879e3ca3d35e 100644 --- a/platform/platform-impl/src/com/intellij/ide/plugins/newui/LicensePanel.java +++ b/platform/platform-impl/src/com/intellij/ide/plugins/newui/LicensePanel.java @@ -9,7 +9,6 @@ import com.intellij.ide.plugins.PluginManagerConfigurable; import com.intellij.ide.plugins.PluginNode; import com.intellij.openapi.application.IdeUrlTrackingParametersProvider; import com.intellij.openapi.util.NlsSafe; -import com.intellij.openapi.util.Ref; import com.intellij.openapi.util.text.StringUtil; import com.intellij.ui.LicensingFacade; import com.intellij.ui.components.ActionLink; @@ -157,13 +156,11 @@ public final class LicensePanel extends NonOpaquePanel { @NotNull Supplier getPlugin, boolean forUpdate, boolean makePanelVisible) { setText(text, warning, errorColor); - Ref enforceHidingPanel = new Ref<>(null); - showBuyPlugin(getPlugin, forUpdate, enforceHidingPanel); - setVisible(makePanelVisible && !Boolean.TRUE.equals(enforceHidingPanel.get()) ); + showBuyPlugin(getPlugin, forUpdate); + setVisible(makePanelVisible); } - private void showBuyPlugin(@NotNull Supplier getPlugin, boolean forUpdate, - @NotNull Ref enforceHidingPanel) { + private void showBuyPlugin(@NotNull Supplier getPlugin, boolean forUpdate) { IdeaPluginDescriptor plugin = getPlugin.get(); setLink(IdeBundle.message("plugins.configurable.buy.the.license"), () -> @@ -177,9 +174,6 @@ public final class LicensePanel extends NonOpaquePanel { List tags = ((PluginNode)plugin).getTags(); if (tags.contains(Tags.Freemium.name())) { updateLink(IdeBundle.message(forUpdate ? "label.plugin.freemium" : "plugins.configurable.activate.trial.for.full.access"), false); - if (forUpdate && "AIP".equals(plugin.getProductCode())) { - enforceHidingPanel.set(Boolean.TRUE); - } return; } } @@ -198,4 +192,10 @@ public final class LicensePanel extends NonOpaquePanel { LicensingFacade.getInstance() != null && ArrayUtil.contains(productCodeOrPluginId, "DPN", "DC", "DPA", "PDB", "PWS", "PGO", "PPS", "PPC", "PRB", "PSW", "Pythonid"); } + + public static boolean shouldSkipPluginLicenseDescriptionPublishing(@NotNull IdeaPluginDescriptor plugin) { + return "AIP".equals(plugin.getProductCode()) && + (plugin instanceof PluginNode) && + ((PluginNode)plugin).getTags().contains(Tags.Freemium.name()); + } } diff --git a/platform/platform-impl/src/com/intellij/ide/plugins/newui/ListPluginComponent.java b/platform/platform-impl/src/com/intellij/ide/plugins/newui/ListPluginComponent.java index 2b65afe3bfa7..fc09831659ac 100644 --- a/platform/platform-impl/src/com/intellij/ide/plugins/newui/ListPluginComponent.java +++ b/platform/platform-impl/src/com/intellij/ide/plugins/newui/ListPluginComponent.java @@ -559,7 +559,8 @@ public final class ListPluginComponent extends JPanel { myVersion.setText(NewUiUtil.getVersion(plugin, descriptor)); } if (plugin.getProductCode() == null && descriptor.getProductCode() != null && - !plugin.isBundled() && !LicensePanel.isEA2Product(descriptor.getProductCode())) { + !plugin.isBundled() && !LicensePanel.isEA2Product(descriptor.getProductCode()) && + !LicensePanel.shouldSkipPluginLicenseDescriptionPublishing(descriptor)) { if (myUpdateLicensePanel == null) { myLayout.addLineComponent(myUpdateLicensePanel = new LicensePanel(true)); myUpdateLicensePanel.setBorder(JBUI.Borders.emptyTop(3)); diff --git a/platform/platform-impl/src/com/intellij/ide/plugins/newui/PluginDetailsPageComponent.kt b/platform/platform-impl/src/com/intellij/ide/plugins/newui/PluginDetailsPageComponent.kt index 3adf7441a00c..68c3345bfc9d 100644 --- a/platform/platform-impl/src/com/intellij/ide/plugins/newui/PluginDetailsPageComponent.kt +++ b/platform/platform-impl/src/com/intellij/ide/plugins/newui/PluginDetailsPageComponent.kt @@ -1239,11 +1239,13 @@ class PluginDetailsPageComponent @JvmOverloads constructor( return } if (productCode == null) { - if (updateDescriptor != null && updateDescriptor!!.productCode != null && - !LicensePanel.isEA2Product(updateDescriptor!!.productCode) + val update = updateDescriptor + if (update != null && update.productCode != null && + !LicensePanel.isEA2Product(update.productCode) && + !LicensePanel.shouldSkipPluginLicenseDescriptionPublishing(update) ) { licensePanel.showBuyPluginWithText(IdeBundle.message("label.next.plugin.version.is"), true, false, - { updateDescriptor }, true, + { update }, true, true) } else {