Skip to content

Commit

Permalink
添加同步项目使用adb同步发布
Browse files Browse the repository at this point in the history
添加开启wifi使用二维码扫描连接
  • Loading branch information
lizhichao committed Jun 4, 2021
1 parent f3f6e2f commit ee2149a
Show file tree
Hide file tree
Showing 14 changed files with 1,260 additions and 1,216 deletions.
Binary file added libs/core-3.3.3.jar
Binary file not shown.
15 changes: 9 additions & 6 deletions resources/META-INF/plugin.xml
Original file line number Diff line number Diff line change
Expand Up @@ -58,17 +58,20 @@
</component>
</application-components>-->
<actions>
<action id="ApicloudRunAction" class="com.apicloud.plugin.run.AndroidApicloudRunAction">
<add-to-group group-id="ToolbarRunGroup" anchor="after" relative-to-action="MainMenu"/><!--添加运行按钮-->
<!-- <action id="ApicloudRunAction" class="com.apicloud.plugin.run.AndroidApicloudRunAction">
<add-to-group group-id="ToolbarRunGroup" anchor="after" relative-to-action="MainMenu"/>&lt;!&ndash;添加运行按钮&ndash;&gt;
<add-to-group group-id="EditorPopupMenu" anchor="last"/>
</action>
<action id="IOSRunAction" class="com.apicloud.plugin.run.IosApicloudRunAction">
<add-to-group group-id="ToolbarRunGroup" anchor="after" relative-to-action="MainMenu"/><!--添加运行按钮-->
</action>-->
<!-- <action id="IOSRunAction" class="com.apicloud.plugin.run.IosApicloudRunAction">
<add-to-group group-id="ToolbarRunGroup" anchor="after" relative-to-action="MainMenu"/>&lt;!&ndash;添加运行按钮&ndash;&gt;
<add-to-group group-id="EditorPopupMenu" anchor="last"/>
</action>
</action>-->
<action id="WifiServiceAction" class="com.apicloud.plugin.run.WifiApicloudRunAction">
<add-to-group group-id="ToolbarRunGroup" anchor="after" relative-to-action="MainMenu"/><!--添加运行按钮-->
</action>
<action id="WifiServiceActionHelp" class="com.apicloud.plugin.run.WifiQrcode">
<add-to-group group-id="HelpMenu" anchor="before" relative-to-action="HelpMenu"/><!--添加运行按钮-->
</action>
<action id="PushRunAction" class="com.apicloud.plugin.run.PushRunAction">
<add-to-group group-id="ToolbarRunGroup" anchor="after" relative-to-action="MainMenu"/><!--添加运行按钮-->
<add-to-group group-id="EditorPopupMenu" anchor="last"/>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -66,25 +66,7 @@ public void generateProject(Project project, VirtualFile file, ProjectData data,
PrintUtil.msg += "开始创建工程\n";
Properties properties = System.getProperties();
String systemPath = properties.getProperty("idea.plugins.path");
WebStorm storm = RunProperties.getWebStorm(project.getName());
String out = (String) storm.runCmd("adb ", false);
if (null != out && !"".equalsIgnoreCase(out) && out.contains("Installed as")) {
RunProperties.setAdbPath("adb");
} else {
if (storm.isMacOS() || storm.isLinux()) {
String chx = "chmod +x " + systemPath + "/ApicloudPlugins/lib/tools/adb-ios";
storm.runCmd(chx, false);
chx = "chmod +x " + systemPath + "/ApicloudPlugins/lib/tools/adb-linux";
storm.runCmd(chx, false);
}
if (storm.isMacOS()) {
RunProperties.setAdbPath(systemPath + "/ApicloudPlugins/lib/tools/adb-ios");
} else if (storm.isLinux()) {
RunProperties.setAdbPath(systemPath + "/ApicloudPlugins/lib/tools/adb-linux");
} else {
RunProperties.setAdbPath(systemPath + "/ApicloudPlugins/lib/tools/adb.exe");
}
}
RunProperties.setAdbPath(data.getAdbPath());
PrintUtil.msg += ("当前选择创建工程类型:" + data.getType() + "\n");
if ("default".equals(data.getType())) {
com.apicloud.plugin.util.FileUtil.copyFolder(systemPath + "/ApicloudPlugins/lib/widget/default/", projectPath + "/");
Expand Down
Binary file added src/com/apicloud/plugin/icons/qrcode.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
2 changes: 0 additions & 2 deletions src/com/apicloud/plugin/run/AndroidApicloudRunAction.java
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,6 @@ public void run() {
try {
Thread.sleep(300);
WebStorm webStorm = RunProperties.getWebStorm(project.getName());
String adbPath = RunProperties.getAdbPath();
Properties properties = System.getProperties();
String systemPath = properties.getProperty("idea.plugins.path");
String projectPath = event.getProject().getBaseDir().getParent().getPath();
Expand All @@ -60,7 +59,6 @@ public void run() {
modulePath = projectPath + "/" + moduleName;
}
webStorm.run(systemPath + "/ApicloudPlugins/lib/", modulePath);
RunProperties.wifiAdb(webStorm,project.getName(),adbPath);
} catch (Exception e) {
e.printStackTrace();
PrintUtil.error(e.getMessage(), project.getName());
Expand Down
185 changes: 95 additions & 90 deletions src/com/apicloud/plugin/run/WifiApicloudRunAction.java
Original file line number Diff line number Diff line change
@@ -1,90 +1,95 @@
package com.apicloud.plugin.run;

import com.apicloud.plugin.util.PrintUtil;
import com.apicloud.plugin.util.RunProperties;
import com.apicloud.wifisyncmanager.WifiSyncManager;
import com.apicloud.wifisyncserver.WifiSyncServer;
import com.intellij.openapi.actionSystem.AnAction;
import com.intellij.openapi.actionSystem.AnActionEvent;
import com.intellij.openapi.project.DumbAware;
import com.intellij.openapi.project.Project;

import javax.swing.*;

/**
* Created with IntelliJ IDEA.
* User: lizhichao
* Date: 2018/1/10 0010
* Time: 10:49:44
* Description:
*/
public class WifiApicloudRunAction extends AnAction implements DumbAware {

public WifiApicloudRunAction() {
super("wifiApicloudRun Run", "点击开启WIFI服务", new ImageIcon(WifiApicloudRunAction.class.getResource("/com/apicloud/plugin/icons/wifiStop.png")));
System.out.println("初始化WiFi运行开关");
}


@Override
public void actionPerformed(AnActionEvent event) {
Project project = event.getProject();

System.out.println(project.getBasePath());
try {
Thread ts = new Thread() {
@Override
public void run() {
try {
Thread.sleep(300);
PrintUtil.error("启动wifi服务----------------", project.getName());
RunProperties.pushType(project.getName(), null);
WifiSyncServer wifiSyncServer = RunProperties.getWifiSyncServer(project.getName());
wifiSyncServer.run(new String[]{event.getProject().getBasePath(), "1"});
PrintUtil.error("wifi服务启动成功", project.getName());
Thread.sleep(300);
WifiSyncManager wifiSyncManager = RunProperties.getWifiSyncManager(project.getName());
wifiSyncManager.main(new String[]{"1"});
System.setProperty("java.net.preferIPv4Stack", "true");
} catch (Exception e) {
PrintUtil.error(e.getMessage(), project.getName());
}
}
};
if (RunProperties.wifiRun(project.getName())) {
event.getPresentation().setText("点击启动wifi服务");
event.getPresentation().setIcon(new ImageIcon(WifiApicloudRunAction.class.getResource("/com/apicloud/plugin/icons/wifiStop.png")));
//event.getPresentation().setIcon(ApicloudIcon.wifiStopIcon);
new Thread() {
@Override
public void run() {
try {

PrintUtil.error("wifi服务停止中,请稍等......", project.getName());
WifiSyncServer wifiSyncServer = RunProperties.getWifiSyncServer(project.getName());
wifiSyncServer.run(new String[]{event.getProject().getBasePath(), "0"});
Thread.sleep(1300);
PrintUtil.error("wifi服务已停止", project.getName());
RunProperties.pushType(project.getName(), null);
System.setProperty("java.net.preferIPv4Stack", "false");
} catch (Exception e) {
PrintUtil.error(e.getMessage(), project.getName());
}
}
}.start();
ts.stop();
RunProperties.wifiRun(project.getName(), false);
} else {
event.getPresentation().setText("点击停止wifi服务");
event.getPresentation().setIcon(new ImageIcon(WifiApicloudRunAction.class.getResource("/com/apicloud/plugin/icons/wifiApicloud.png")));
ts.start();
RunProperties.wifiRun(project.getName(), true);
}

} catch (Exception e) {
e.printStackTrace();
PrintUtil.error(e.getMessage(), project.getName());
}
}

}
package com.apicloud.plugin.run;

import com.apicloud.plugin.util.PrintUtil;
import com.apicloud.plugin.util.RunProperties;
import com.apicloud.wifisyncmanager.WifiSyncManager;
import com.apicloud.wifisyncserver.WifiSyncServer;
import com.intellij.openapi.actionSystem.AnAction;
import com.intellij.openapi.actionSystem.AnActionEvent;
import com.intellij.openapi.project.DumbAware;
import com.intellij.openapi.project.Project;

import javax.swing.*;

/**
* Created with IntelliJ IDEA.
* User: lizhichao
* Date: 2018/1/10 0010
* Time: 10:49:44
* Description:
*/
public class WifiApicloudRunAction extends AnAction implements DumbAware {

public WifiApicloudRunAction() {
super("wifiApicloudRun Run", "点击开启WIFI服务", new ImageIcon(WifiApicloudRunAction.class.getResource("/com/apicloud/plugin/icons/wifiStop.png")));
System.out.println("初始化WiFi运行开关");
}


@Override
public void actionPerformed(AnActionEvent event) {
Project project = event.getProject();

System.out.println(project.getBasePath());
try {
Thread ts = new Thread() {
@Override
public void run() {
try {
Thread.sleep(300);
PrintUtil.error("启动wifi服务----------------", project.getName());
RunProperties.pushType(project.getName(), null);
WifiSyncServer wifiSyncServer = RunProperties.getWifiSyncServer(project.getName());
wifiSyncServer.run(new String[]{event.getProject().getBasePath(), "1"});
PrintUtil.error("wifi服务启动成功", project.getName());
Thread.sleep(300);
WifiSyncManager wifiSyncManager = RunProperties.getWifiSyncManager(project.getName());
wifiSyncManager.main(new String[]{"1"});
System.setProperty("java.net.preferIPv4Stack", "true");
WebStorm webStorm = RunProperties.getWebStorm(project.getName());
RunProperties.wifiAdbConn = true;
RunProperties.wifiAdb(webStorm,project.getName());
} catch (Exception e) {
PrintUtil.error(e.getMessage(), project.getName());
}
}
};
if (RunProperties.wifiRun(project.getName())) {
event.getPresentation().setText("点击启动wifi服务");
event.getPresentation().setIcon(new ImageIcon(WifiApicloudRunAction.class.getResource("/com/apicloud/plugin/icons/wifiStop.png")));
//event.getPresentation().setIcon(ApicloudIcon.wifiStopIcon);
new Thread() {
@Override
public void run() {
try {

PrintUtil.error("wifi服务停止中,请稍等......", project.getName());
WifiSyncServer wifiSyncServer = RunProperties.getWifiSyncServer(project.getName());
wifiSyncServer.run(new String[]{event.getProject().getBasePath(), "0"});
Thread.sleep(1300);
PrintUtil.error("wifi服务已停止", project.getName());
RunProperties.pushType(project.getName(), null);
System.setProperty("java.net.preferIPv4Stack", "false");
RunProperties.wifiAdbConn = false;
WifiQrcode.getInstance().setIcon(new ImageIcon(WifiQrcode.class.getResource("/com/apicloud/plugin/icons/apicloud.png")).getImage());
} catch (Exception e) {
PrintUtil.error(e.getMessage(), project.getName());
}
}
}.start();
ts.stop();
RunProperties.wifiRun(project.getName(), false);
} else {
event.getPresentation().setText("点击停止wifi服务");
event.getPresentation().setIcon(new ImageIcon(WifiApicloudRunAction.class.getResource("/com/apicloud/plugin/icons/wifiApicloud.png")));
ts.start();
RunProperties.wifiRun(project.getName(), true);
}

} catch (Exception e) {
e.printStackTrace();
PrintUtil.error(e.getMessage(), project.getName());
}
}

}
39 changes: 39 additions & 0 deletions src/com/apicloud/plugin/run/WifiQrcode.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
package com.apicloud.plugin.run;

import com.intellij.openapi.actionSystem.AnAction;
import com.intellij.openapi.actionSystem.AnActionEvent;
import com.intellij.openapi.project.DumbAware;

import javax.swing.*;
import java.awt.*;

/**
* Created with IntelliJ IDEA.
* User: lizhichao
* Date: 2018/1/10 0010
* Time: 10:49:44
* Description:
*/
public class WifiQrcode extends AnAction implements DumbAware {

static WifiQrcode instance = null;

public void setIcon(Image icon) {
((ImageIcon)getTemplatePresentation().getIcon()).setImage(icon);
}

public static WifiQrcode getInstance() {
return instance;
}

public WifiQrcode() {
super(" ", "请用手机PP扫码连接", new ImageIcon(WifiQrcode.class.getResource("/com/apicloud/plugin/icons/apicloud.png")));
instance = this;
}


@Override
public void actionPerformed(AnActionEvent event) {
}

}
41 changes: 12 additions & 29 deletions src/com/apicloud/plugin/tail/TailContentExecutor.java
Original file line number Diff line number Diff line change
@@ -1,20 +1,13 @@
package com.apicloud.plugin.tail;

import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.apicloud.console.log.ConsoleLog;
import com.apicloud.plugin.run.WebStorm;
import com.apicloud.plugin.ui.createApp.CreateAppFrom;
import com.apicloud.plugin.util.HttpClientUtil;
import com.apicloud.plugin.util.PrintUtil;
import com.apicloud.plugin.util.RunProperties;
import com.intellij.execution.DefaultExecutionResult;
import com.intellij.execution.ExecutionException;
import com.intellij.execution.Executor;
import com.intellij.execution.configurations.RunProfile;
import com.intellij.execution.configurations.RunProfileState;
import com.intellij.execution.filters.Filter;
import com.intellij.execution.filters.TextConsoleBuilder;
import com.intellij.execution.filters.TextConsoleBuilderFactory;
import com.intellij.execution.runners.ExecutionEnvironment;
Expand All @@ -27,7 +20,6 @@
import com.intellij.openapi.actionSystem.*;
import com.intellij.openapi.project.Project;
import com.intellij.openapi.util.Disposer;
import com.intellij.openapi.util.io.FileUtil;
import com.intellij.openapi.wm.ToolWindow;
import com.intellij.ui.content.Content;
import com.intellij.ui.content.ContentManager;
Expand All @@ -36,14 +28,10 @@

import javax.swing.*;
import java.awt.*;
import java.io.File;
import java.util.ArrayList;
import java.util.List;
import java.util.Properties;

public class TailContentExecutor implements Disposable {
private final Project myProject;
private final List<Filter> myFilterList = new ArrayList<>();
private ConsoleView consoleView = null;

public TailContentExecutor(@NotNull Project project) {
Expand All @@ -60,23 +48,18 @@ public TailContentExecutor(@NotNull Project project) {
Properties properties = System.getProperties();
String systemPath = properties.getProperty("idea.plugins.path");
WebStorm storm = RunProperties.getWebStorm(project.getName());
String out = (String) storm.runCmd("adb ", false);
if (null != out && !"".equalsIgnoreCase(out) && out.contains("Installed as")) {
RunProperties.setAdbPath("adb");
if (storm.isMacOS() || storm.isLinux()) {
String chx = "chmod +x " + systemPath + "/ApicloudPlugins/lib/tools/adb-ios";
storm.runCmd(chx, false);
chx = "chmod +x " + systemPath + "/ApicloudPlugins/lib/tools/adb-linux";
storm.runCmd(chx, false);
}
if (storm.isMacOS()) {
RunProperties.setAdbPath(systemPath + "/ApicloudPlugins/lib/tools/adb-ios");
} else if (storm.isLinux()) {
RunProperties.setAdbPath(systemPath + "/ApicloudPlugins/lib/tools/adb-linux");
} else {
if (storm.isMacOS() || storm.isLinux()) {
String chx = "chmod +x " + systemPath + "/ApicloudPlugins/lib/tools/adb-ios";
storm.runCmd(chx, false);
chx = "chmod +x " + systemPath + "/ApicloudPlugins/lib/tools/adb-linux";
storm.runCmd(chx, false);
}
if (storm.isMacOS()) {
RunProperties.setAdbPath(systemPath + "/ApicloudPlugins/lib/tools/adb-ios");
} else if (storm.isLinux()) {
RunProperties.setAdbPath(systemPath + "/ApicloudPlugins/lib/tools/adb-linux");
} else {
RunProperties.setAdbPath(systemPath + "/ApicloudPlugins/lib/tools/adb.exe");
}
RunProperties.setAdbPath(systemPath + "/ApicloudPlugins/lib/tools/adb.exe");
}
}
} catch (Exception e) {
Expand All @@ -85,8 +68,8 @@ public TailContentExecutor(@NotNull Project project) {
}

private ConsoleView createConsole(@NotNull Project project) {

TextConsoleBuilder consoleBuilder = TextConsoleBuilderFactory.getInstance().createBuilder(project);
consoleBuilder.filters(myFilterList);
ConsoleView console = consoleBuilder.getConsole();
return console;
}
Expand Down
2 changes: 1 addition & 1 deletion src/com/apicloud/plugin/ui/createApp/CreateAppFrom.form
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@
</constraints>
<properties>
<enabled value="true"/>
<visible value="false"/>
<visible value="true"/>
</properties>
<border type="none"/>
<children>
Expand Down
Loading

0 comments on commit ee2149a

Please sign in to comment.