diff --git a/build.gradle b/build.gradle index e807037..11d4ec0 100644 --- a/build.gradle +++ b/build.gradle @@ -1,56 +1,45 @@ -buildscript { - repositories { - maven { url 'http://dl.bintray.com/jetbrains/intellij-plugin-service' } - maven { url "https://plugins.gradle.org/m2/" } - } - - dependencies { - classpath "gradle.plugin.org.jetbrains.intellij.plugins:gradle-intellij-plugin:0.4.2" - } -} plugins { - id 'java' - id 'org.jetbrains.intellij' version '0.4.1' + id 'org.jetbrains.intellij' version '1.17.3' + id 'org.jetbrains.changelog' version '2.2.0' } -sourceCompatibility = JavaVersion.VERSION_1_8 -targetCompatibility = JavaVersion.VERSION_1_8 repositories { mavenCentral() } dependencies { - testCompile group: 'junit', name: 'junit', version: '4.12' - compile ('com.tinify:tinify:1.6.2') { + implementation('com.tinify:tinify:1.6.2') { // exclude group: 'com.google.code.gson', module: 'gson' // exclude group: 'com.squareup.okhttp3', module: 'okhttp' // exclude group: 'com.squareup.okio', module: 'okio' } - compile ('io.sentry:sentry:1.7.16') { - exclude group: 'org.slf4j', module: 'slf4j-api' - exclude group: 'com.fasterxml.jackson.core', module: 'jackson-core' - } } intellij { - version ideVersion - updateSinceUntilBuild false - plugins = [ - "coverage", - "java-i18n", - "remote-run", - "properties", - ] -} + version = ideVersion + type = "IC" + plugins = [] -group 'com.nvlad' -version '1.0.9' + buildSearchableOptions.enabled = false + + patchPluginXml { + sinceBuild.set("203.*") + untilBuild.set("300") -patchPluginXml { - changeNotes """ + changeNotes = """ - Update "Usage this month" value on Open plugin settings or press Apply - Catch TinyPNG service errors. """ + } +} + +runIde { + ideDir = file('/Applications/Android Studio.app/Contents') } + +group 'com.nvlad' +version '1.1.0' + + diff --git a/gradle.properties b/gradle.properties index d83aef9..ca5b7c2 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1 +1 @@ -ideVersion=IU-182.4892.20 +ideVersion=2022.2.2 diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 21f7da1..9750dc8 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -3,4 +3,4 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-4.10-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.4-all.zip diff --git a/gradlew b/gradlew old mode 100644 new mode 100755 diff --git a/src/main/java/com/nvlad/tinypng/Icons.java b/src/main/java/com/nvlad/tinypng/Icons.java index 30266fe..c929f67 100644 --- a/src/main/java/com/nvlad/tinypng/Icons.java +++ b/src/main/java/com/nvlad/tinypng/Icons.java @@ -5,5 +5,5 @@ import javax.swing.*; public interface Icons { - Icon ACTION = IconLoader.getIcon("/icons/action.png"); + Icon ACTION = IconLoader.getIcon("/icons/action.png", Icons.class); } diff --git a/src/main/java/com/nvlad/tinypng/actions/BaseCompressAction.java b/src/main/java/com/nvlad/tinypng/actions/BaseCompressAction.java index a9a687b..31367ad 100644 --- a/src/main/java/com/nvlad/tinypng/actions/BaseCompressAction.java +++ b/src/main/java/com/nvlad/tinypng/actions/BaseCompressAction.java @@ -16,7 +16,7 @@ import java.util.List; public abstract class BaseCompressAction extends AnAction { - private static final String[] supportedExtensions = {"png", "jpg", "jpeg"}; + private static final String[] supportedExtensions = {"png", "jpg", "jpeg", "webp"}; @Override public void actionPerformed(AnActionEvent e) { diff --git a/src/main/java/com/nvlad/tinypng/diagnostic/ErrorReportHandler.java b/src/main/java/com/nvlad/tinypng/diagnostic/ErrorReportHandler.java deleted file mode 100644 index d6bd246..0000000 --- a/src/main/java/com/nvlad/tinypng/diagnostic/ErrorReportHandler.java +++ /dev/null @@ -1,33 +0,0 @@ -package com.nvlad.tinypng.diagnostic; - -import com.intellij.diagnostic.AbstractMessage; -import com.intellij.openapi.diagnostic.ErrorReportSubmitter; -import com.intellij.openapi.diagnostic.IdeaLoggingEvent; -import com.intellij.openapi.diagnostic.SubmittedReportInfo; -import com.intellij.util.Consumer; -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; - -import java.awt.*; - -public class ErrorReportHandler extends ErrorReportSubmitter { - @NotNull - @Override - public String getReportActionText() { - return "Report to TinyPNG Optimizer"; - } - - @Override - public boolean submit(@NotNull IdeaLoggingEvent[] events, @Nullable String additionalInfo, @NotNull Component parentComponent, @NotNull Consumer consumer) { - for (IdeaLoggingEvent event : events) { - Throwable throwable = event.getThrowable(); - if (event.getData() instanceof AbstractMessage) { - throwable = ((AbstractMessage) event.getData()).getThrowable(); - } - - SentryErrorReporter.submitErrorReport(throwable, additionalInfo, consumer); - } - - return true; - } -} diff --git a/src/main/java/com/nvlad/tinypng/diagnostic/SentryErrorReporter.java b/src/main/java/com/nvlad/tinypng/diagnostic/SentryErrorReporter.java deleted file mode 100644 index 4357023..0000000 --- a/src/main/java/com/nvlad/tinypng/diagnostic/SentryErrorReporter.java +++ /dev/null @@ -1,114 +0,0 @@ -package com.nvlad.tinypng.diagnostic; - -import com.intellij.ide.plugins.IdeaPluginDescriptor; -import com.intellij.ide.plugins.PluginManager; -import com.intellij.openapi.application.ApplicationInfo; -import com.intellij.openapi.application.ApplicationNamesInfo; -import com.intellij.openapi.application.impl.ApplicationInfoImpl; -import com.intellij.openapi.diagnostic.SubmittedReportInfo; -import com.intellij.openapi.extensions.PluginId; -import com.intellij.openapi.util.SystemInfo; -import com.intellij.openapi.util.text.StringUtil; -import com.intellij.util.Consumer; -import com.nvlad.tinypng.PluginApplicationComponent; -import com.nvlad.tinypng.PluginGlobalSettings; -import io.sentry.SentryClient; -import io.sentry.SentryClientFactory; -import io.sentry.connection.EventSendCallback; -import io.sentry.context.Context; -import io.sentry.event.Event; -import io.sentry.event.UserBuilder; -import org.jetbrains.annotations.Nullable; - -import java.util.HashMap; -import java.util.Map; - -class SentryErrorReporter { - static void submitErrorReport(Throwable error, String description, Consumer consumer) { - final SentryClient sentry = SentryClientFactory.sentryClient("https://f6b3a5fb9f11461ab70f481eb68ed237@sentry.nvlad.com/6"); - sentry.addEventSendCallback(new EventSendCallback() { - @Override - public void onFailure(Event event, Exception exception) { - consumer.consume(new SubmittedReportInfo(SubmittedReportInfo.SubmissionStatus.FAILED)); - } - - @Override - public void onSuccess(Event event) { - consumer.consume(new SubmittedReportInfo(SubmittedReportInfo.SubmissionStatus.NEW_ISSUE)); - } - }); - - final ApplicationInfoImpl applicationInfo = (ApplicationInfoImpl) ApplicationInfo.getInstance(); - sentry.addBuilderHelper(eventBuilder -> { - final Map os = new HashMap<>(); - os.put("name", SystemInfo.OS_NAME); - os.put("version", SystemInfo.OS_VERSION); - os.put("kernel_version", SystemInfo.OS_ARCH); - - final Map runtime = new HashMap<>(); - final String ideName = ApplicationNamesInfo.getInstance().getFullProductName(); - runtime.put("name", ideName); - runtime.put("version", applicationInfo.getFullVersion()); - - final Map> contexts = new HashMap<>(); - contexts.put("os", os); - contexts.put("runtime", runtime); - SentryErrorReporter.fillActivePlugins(contexts); - - eventBuilder.withContexts(contexts); - - if (!StringUtil.isEmptyOrSpaces(description)) { - eventBuilder.withMessage(description); - eventBuilder.withTag("with-description", "true"); - } - }); - - final PluginGlobalSettings settings = PluginGlobalSettings.getInstance(); - final Context context = sentry.getContext(); - context.setUser(new UserBuilder().setId(settings.uuid).setUsername(settings.username).build()); - - context.addTag("java", SystemInfo.JAVA_RUNTIME_VERSION); - - final IdeaPluginDescriptor plugin = PluginManager.getPlugin(PluginApplicationComponent.PLUGIN_ID); - if (plugin != null) { - sentry.setRelease(plugin.getVersion()); - } - - sentry.sendException(error); - } - - @Nullable - private static String getPluginVersion(String pluginKey) { - final PluginId pluginId = PluginId.getId(pluginKey); - final IdeaPluginDescriptor plugin = PluginManager.getPlugin(pluginId); - if (plugin == null) { - return null; - } - - return plugin.getVersion(); - } - - private static void fillActivePlugins(Map> contexts) { - final Map bundledPlugins = new HashMap<>(); - final Map activePlugins = new HashMap<>(); - for (IdeaPluginDescriptor plugin : PluginManager.getPlugins()) { - if (!plugin.isEnabled()) { - continue; - } - - if (plugin.isBundled()) { - bundledPlugins.put(plugin.getName(), plugin.getVersion()); - } else { - activePlugins.put(plugin.getName(), plugin.getVersion()); - } - } - - if (!bundledPlugins.isEmpty()) { - contexts.put("bundled plugins", bundledPlugins); - } - - if (!activePlugins.isEmpty()) { - contexts.put("active plugins", activePlugins); - } - } -} diff --git a/src/main/java/com/nvlad/tinypng/ui/dialogs/Toolbar.java b/src/main/java/com/nvlad/tinypng/ui/dialogs/Toolbar.java index ef6d425..6be7554 100644 --- a/src/main/java/com/nvlad/tinypng/ui/dialogs/Toolbar.java +++ b/src/main/java/com/nvlad/tinypng/ui/dialogs/Toolbar.java @@ -1,9 +1,7 @@ package com.nvlad.tinypng.ui.dialogs; -import com.intellij.icons.AllIcons; import com.intellij.ide.actions.AboutAction; import com.intellij.openapi.actionSystem.*; -import org.intellij.images.actions.ToggleTransparencyChessboardAction; import javax.swing.*; import java.awt.*; diff --git a/src/main/resources/META-INF/plugin.xml b/src/main/resources/META-INF/plugin.xml index e9efe32..beee581 100644 --- a/src/main/resources/META-INF/plugin.xml +++ b/src/main/resources/META-INF/plugin.xml @@ -14,7 +14,6 @@ -