diff --git a/platform/core-impl/src/com/intellij/openapi/application/ex/ApplicationInfoEx.java b/platform/core-impl/src/com/intellij/openapi/application/ex/ApplicationInfoEx.java index 8e805f91cb41..d0d7b52750bf 100644 --- a/platform/core-impl/src/com/intellij/openapi/application/ex/ApplicationInfoEx.java +++ b/platform/core-impl/src/com/intellij/openapi/application/ex/ApplicationInfoEx.java @@ -114,4 +114,17 @@ public abstract class ApplicationInfoEx extends ApplicationInfo { @Nullable public abstract String getCustomizeIDEWizardStepsProvider(); + + public abstract String getSubscriptionFormId(); + + public abstract String getSubscriptionNewsKey(); + + public abstract String getSubscriptionNewsValue(); + + public abstract String getSubscriptionTipsKey(); + + public abstract boolean areSubscriptionTipsAvailable(); + + @Nullable + public abstract String getSubscriptionAdditionalFormData(); } diff --git a/platform/core-impl/src/com/intellij/openapi/application/impl/ApplicationInfoImpl.java b/platform/core-impl/src/com/intellij/openapi/application/impl/ApplicationInfoImpl.java index 30e81f2b7411..be8d164a98eb 100644 --- a/platform/core-impl/src/com/intellij/openapi/application/impl/ApplicationInfoImpl.java +++ b/platform/core-impl/src/com/intellij/openapi/application/impl/ApplicationInfoImpl.java @@ -112,6 +112,13 @@ public class ApplicationInfoImpl extends ApplicationInfoEx { private String myEvalLicenseUrl = "https://www.jetbrains.com/store/license.html"; private String myKeyConversionUrl = "https://www.jetbrains.com/shop/eform/keys-exchange"; + private String mySubscriptionFormId; + private String mySubscriptionNewsKey; + private String mySubscriptionNewsValue; + private String mySubscriptionTipsKey; + private boolean mySubscriptionTipsAvailable; + private String mySubscriptionAdditionalFormData; + private Rectangle myAboutLogoRect; private static final String IDEA_PATH = "/idea/"; @@ -193,6 +200,14 @@ public class ApplicationInfoImpl extends ApplicationInfoEx { private static final String ATTRIBUTE_KEY_CONVERSION_URL = "key-conversion-url"; private static final String ESSENTIAL_PLUGIN = "essential-plugin"; + private static final String ELEMENT_SUBSCRIPTIONS = "subscriptions"; + private static final String ATTRIBUTE_SUBSCRIPTIONS_FORM_ID = "formid"; + private static final String ATTRIBUTE_SUBSCRIPTIONS_NEWS_KEY = "news-key"; + private static final String ATTRIBUTE_SUBSCRIPTIONS_NEWS_VALUE = "news-value"; + private static final String ATTRIBUTE_SUBSCRIPTIONS_TIPS_KEY = "tips-key"; + private static final String ATTRIBUTE_SUBSCRIPTIONS_TIPS_AVAILABLE = "tips-available"; + private static final String ATTRIBUTE_SUBSCRIPTIONS_ADDITIONAL_FORM_DATA = "additional-form-data"; + private static final String DEFAULT_PLUGINS_HOST = "http://plugins.jetbrains.com"; ApplicationInfoImpl() { @@ -554,6 +569,37 @@ public class ApplicationInfoImpl extends ApplicationInfoEx { return myAboutLogoRect; } + @Override + public String getSubscriptionFormId() { + return mySubscriptionFormId; + } + + @Override + public String getSubscriptionNewsKey() { + return mySubscriptionNewsKey; + } + + @Override + public String getSubscriptionNewsValue() { + return mySubscriptionNewsValue; + } + + @Override + public String getSubscriptionTipsKey() { + return mySubscriptionTipsKey; + } + + @Override + public boolean areSubscriptionTipsAvailable() { + return mySubscriptionTipsAvailable; + } + + @Nullable + @Override + public String getSubscriptionAdditionalFormData() { + return mySubscriptionAdditionalFormData; + } + private static ApplicationInfoImpl ourShadowInstance; public boolean isBetaOrRC() { @@ -866,6 +912,15 @@ public class ApplicationInfoImpl extends ApplicationInfoEx { } } + Element subscriptionsElement = parentNode.getChild(ELEMENT_SUBSCRIPTIONS); + if (subscriptionsElement != null) { + mySubscriptionFormId = subscriptionsElement.getAttributeValue(ATTRIBUTE_SUBSCRIPTIONS_FORM_ID); + mySubscriptionNewsKey = subscriptionsElement.getAttributeValue(ATTRIBUTE_SUBSCRIPTIONS_NEWS_KEY); + mySubscriptionNewsValue = subscriptionsElement.getAttributeValue(ATTRIBUTE_SUBSCRIPTIONS_NEWS_VALUE, "yes"); + mySubscriptionTipsKey = subscriptionsElement.getAttributeValue(ATTRIBUTE_SUBSCRIPTIONS_TIPS_KEY); + mySubscriptionTipsAvailable = Boolean.parseBoolean(subscriptionsElement.getAttributeValue(ATTRIBUTE_SUBSCRIPTIONS_TIPS_AVAILABLE)); + mySubscriptionAdditionalFormData = subscriptionsElement.getAttributeValue(ATTRIBUTE_SUBSCRIPTIONS_ADDITIONAL_FORM_DATA); + } } private static void setBuildNumber(String apiVersion, String buildNumber) {