package com.vpedak.testsrecorder.plugin.actions;
import com.intellij.ide.plugins.PluginManager;
import com.intellij.openapi.application.ApplicationManager;
import com.intellij.openapi.extensions.PluginId;
import com.vpedak.testsrecorder.plugin.ui.EventsList;
import javax.swing.*;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.MalformedURLException;
import java.net.URL;
public class CheckNewVersionThread extends Thread {
private ToolsTestsRecorderAction recorderAction;
public CheckNewVersionThread(ToolsTestsRecorderAction recorderAction) {
this.recorderAction = recorderAction;
}
@Override
public void run() {
String line = null;
BufferedReader reader = null;
try {
URL url = new URL("http://droidtestlab.com/check_version.html");
InputStream inputStream = url.openStream();
reader = new BufferedReader(new InputStreamReader(inputStream));
String str = reader.readLine();
while (str != null) {
if (str.startsWith("last version:")) {
line = str.substring(14).trim();
break;
}
str = reader.readLine();
}
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
if (reader != null) {
try {
reader.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
if (line != null && line.length() > 0) {
String current = PluginManager.getPlugin(PluginId.getId("com.vpedak.testsrecorder.plugin.id")).getVersion();
if (!current.equals(line)) {
final String finalLine = line;
ApplicationManager.getApplication().invokeLater(new Runnable() {
@Override
public void run() {
recorderAction.showNewVersionAvailable(finalLine);
}
});
}
}
}
}