Skip to content

Commit bca19ff

Browse files
committed
[1.2.0]版本优化
1 parent f99cf0a commit bca19ff

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

51 files changed

+1364
-1094
lines changed

.idea/dictionaries/pengwei08.xml

+9
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

.idea/misc.xml

+1-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

AndroidSourceViewer.iml

+2-2
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,8 @@
44
<component name="NewModuleRootManager" inherit-compiler-output="true">
55
<exclude-output />
66
<content url="file://$MODULE_DIR$">
7-
<excludeFolder url="file://$MODULE_DIR$/.gradle" />
8-
<excludeFolder url="file://$MODULE_DIR$/build" />
7+
<sourceFolder url="file://$MODULE_DIR$/src" isTestSource="false" />
8+
<sourceFolder url="file://$MODULE_DIR$/resources" type="java-resource" />
99
</content>
1010
<orderEntry type="inheritedJdk" />
1111
<orderEntry type="sourceFolder" forTests="false" />

resources/META-INF/plugin.xml

+58-59
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,15 @@
11
<idea-plugin>
2-
<id>com.apkfuns.androidsourceviewer</id>
3-
<name>AndroidSourceViewer</name>
4-
<version>1.0.2</version>
5-
<vendor email="[email protected]" url="https://github.com/pengwei1024/AndroidSourceViewer">舞影凌风</vendor>
2+
<id>com.apkfuns.androidsourceviewer</id>
3+
<name>AndroidSourceViewer</name>
4+
<version>1.2.0</version>
5+
<vendor email="[email protected]" url="https://github.com/pengwei1024/AndroidSourceViewer">舞影凌风</vendor>
66

7-
<description><![CDATA[
7+
<description><![CDATA[
88
Android Source Viewer Plugin for Android Studio <br/>
99
<img src='http://qiniu.apkfuns.com/ic-AndroidSourceViewer-plugin.png' width='310' height='254'/> <br/>
1010
]]></description>
1111

12-
<change-notes><![CDATA[
12+
<change-notes><![CDATA[
1313
<ul>
1414
<li>
1515
<b>1.0.3</b><br>
@@ -27,63 +27,62 @@
2727
</li>
2828
</ul>
2929
]]>
30-
</change-notes>
30+
</change-notes>
3131

32-
<!-- please see http://www.jetbrains.org/intellij/sdk/docs/basics/getting_started/build_number_ranges.html for description -->
33-
<idea-version since-build="173.0"/>
32+
<idea-version since-build="173.0"/>
3433

35-
<extensions defaultExtensionNs="com.intellij">
36-
<!-- Add your extensions here -->
37-
<codeInsight.lineMarkerProvider
38-
language="JAVA"
39-
implementationClass="com.apkfuns.androidsourceviewer.provider.NativeMethodProvider"/>
40-
</extensions>
34+
<extensions defaultExtensionNs="com.intellij">
35+
<codeInsight.lineMarkerProvider
36+
language="JAVA"
37+
implementationClass="com.apkfuns.androidsourceviewer.provider.NativeMethodProvider"/>
38+
</extensions>
4139

42-
<depends>com.intellij.modules.java</depends>
40+
<depends>com.intellij.modules.java</depends>
4341

44-
<extensions defaultExtensionNs="com.intellij">
45-
<!-- Add your extensions here -->
46-
</extensions>
42+
<extensions defaultExtensionNs="com.intellij">
43+
</extensions>
4744

48-
<actions>
49-
<group>
50-
<separator/>
51-
<add-to-group group-id="EditorPopupMenu" anchor="last"/>
52-
</group>
53-
<action id="SourceViewerAction" class="com.apkfuns.androidsourceviewer.action.SourceViewerAction"
54-
text="View Android Source" icon="/icons/java.png"
55-
description="View Android Source Code">
56-
<add-to-group group-id="EditorPopupMenu" anchor="last"/>
57-
<keyboard-shortcut keymap="$default" first-keystroke="ctrl alt 1"/>
58-
</action>
59-
<action id="DiffSourceAction" class="com.apkfuns.androidsourceviewer.action.DiffSourceAction"
60-
text="Diff Android Source" icon="/icons/diff.png"
61-
description="Diff Android Source Code">
62-
<add-to-group group-id="EditorPopupMenu" anchor="last"/>
63-
<keyboard-shortcut keymap="$default" first-keystroke="ctrl alt 2"/>
64-
</action>
65-
<action id="AndroidDeveloperAction" class="com.apkfuns.androidsourceviewer.action.AndroidDeveloperAction"
66-
text="Android Developer Reference" icon="/icons/android.png"
67-
description="Android Developer Viewer">
68-
<add-to-group group-id="EditorPopupMenu" anchor="last"/>
69-
<keyboard-shortcut keymap="$default" first-keystroke="ctrl alt 3"/>
70-
</action>
71-
<action id="GlobalSearchAction" class="com.apkfuns.androidsourceviewer.action.GlobalSearchAction"
72-
text="Android Source Search" icon="/icons/findPlain.png"
73-
description="Android Source Search">
74-
<add-to-group group-id="EditorPopupMenu" anchor="last"/>
75-
<keyboard-shortcut keymap="$default" first-keystroke="ctrl alt 4"/>
76-
</action>
77-
<group>
78-
<separator/>
79-
<add-to-group group-id="EditorPopupMenu" anchor="last"/>
80-
</group>
81-
<group text="Android Source Viewer" popup="true" id="CleanActionGroup">
82-
<action id="CleanAction" class="com.apkfuns.androidsourceviewer.action.CleanAction" text="Clean Cache"
83-
description="Clean Cache File" icon="/icons/java.png">
84-
</action>
85-
<add-to-group group-id="ToolsMenu" anchor="last"/>
86-
</group>
87-
</actions>
45+
<actions>
46+
<group>
47+
<separator/>
48+
<add-to-group group-id="EditorPopupMenu" anchor="last"/>
49+
</group>
50+
<action id="SourceViewerAction" class="com.apkfuns.androidsourceviewer.action.SourceViewerAction"
51+
text="View Android Source" icon="/icons/java.png"
52+
description="View Android Source Code">
53+
<add-to-group group-id="EditorPopupMenu" anchor="last"/>
54+
<keyboard-shortcut keymap="$default" first-keystroke="ctrl alt 1"/>
55+
</action>
56+
<action id="DiffSourceAction" class="com.apkfuns.androidsourceviewer.action.DiffSourceAction"
57+
text="Diff Android Source" icon="/icons/diff.png"
58+
description="Diff Android Source Code">
59+
<add-to-group group-id="EditorPopupMenu" anchor="last"/>
60+
<keyboard-shortcut keymap="$default" first-keystroke="ctrl alt 2"/>
61+
</action>
62+
<action id="AndroidDeveloperAction" class="com.apkfuns.androidsourceviewer.action.AndroidDeveloperAction"
63+
text="Android Developer Reference" icon="/icons/android.png"
64+
description="Android Developer Viewer">
65+
<add-to-group group-id="EditorPopupMenu" anchor="last"/>
66+
<keyboard-shortcut keymap="$default" first-keystroke="ctrl alt 3"/>
67+
</action>
68+
<action id="GlobalSearchAction" class="com.apkfuns.androidsourceviewer.action.CodeSearchAction"
69+
text="Android Source Search" icon="/icons/findPlain.png"
70+
description="Android Source Search">
71+
<add-to-group group-id="EditorPopupMenu" anchor="last"/>
72+
<keyboard-shortcut keymap="$default" first-keystroke="ctrl alt 4"/>
73+
</action>
74+
<group>
75+
<separator/>
76+
<add-to-group group-id="EditorPopupMenu" anchor="last"/>
77+
</group>
78+
<group>
79+
<separator/>
80+
<add-to-group group-id="HelpMenu" anchor="last"/>
81+
</group>
82+
<action id="ASVHelpAction" class="com.apkfuns.androidsourceviewer.action.HelpAction" text="Android Source Viewer Setting"
83+
description="Android Source Viewer Setting">
84+
<add-to-group group-id="HelpMenu" anchor="last"/>
85+
</action>
86+
</actions>
8887

8988
</idea-plugin>

src/com/apkfuns/androidsourceviewer/action/AndroidDeveloperAction.java

+5-4
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,11 @@
11
package com.apkfuns.androidsourceviewer.action;
22

33
import com.apkfuns.androidsourceviewer.action.base.BaseSourceAction;
4+
import com.apkfuns.androidsourceviewer.util.Log;
45
import com.apkfuns.androidsourceviewer.util.NotificationUtils;
56
import com.apkfuns.androidsourceviewer.util.Utils;
7+
import com.intellij.ide.BrowserUtil;
68
import com.intellij.openapi.actionSystem.AnActionEvent;
7-
import com.intellij.openapi.diagnostic.Logger;
89
import com.intellij.psi.PsiClass;
910
import com.intellij.psi.PsiElement;
1011
import com.intellij.psi.PsiMethod;
@@ -17,7 +18,7 @@
1718
* https://developer.android.google.cn/reference/android/app/Activity.html#onRestoreInstanceState(android.os.Bundle)
1819
*/
1920
public class AndroidDeveloperAction extends BaseSourceAction {
20-
private static final Logger LOG = Logger.getInstance(AndroidDeveloperAction.class);
21+
// 文档链接
2122
private static final String BASE_URL = "https://developer.android.google.cn/reference/";
2223

2324
@Override
@@ -45,8 +46,8 @@ protected void selectActionPerformed(AnActionEvent event, PsiElement element, St
4546
PsiClass psiClass = (PsiClass) element;
4647
linkUrl += getRealPackage(psiClass);
4748
}
48-
LOG.info("linkUrl= " + linkUrl);
49-
Utils.openUrl(linkUrl);
49+
Log.debug("linkUrl= " + linkUrl);
50+
BrowserUtil.open(linkUrl);
5051
}
5152

5253
@Override

src/com/apkfuns/androidsourceviewer/action/CleanAction.java

-57
This file was deleted.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
package com.apkfuns.androidsourceviewer.action;
2+
3+
import com.apkfuns.androidsourceviewer.action.base.BaseAction;
4+
import com.apkfuns.androidsourceviewer.action.view.SettingDialog;
5+
import com.apkfuns.androidsourceviewer.util.NotificationUtils;
6+
import com.intellij.ide.BrowserUtil;
7+
import com.intellij.openapi.actionSystem.AnActionEvent;
8+
import com.intellij.openapi.actionSystem.CommonDataKeys;
9+
import com.intellij.openapi.actionSystem.LangDataKeys;
10+
import com.intellij.openapi.editor.Editor;
11+
import com.intellij.openapi.util.text.StringUtil;
12+
import com.intellij.psi.PsiElement;
13+
14+
/**
15+
* 使用搜索引擎进行源代码搜索
16+
* 进行站内搜索: site:android.googlesource.com <源码关键词>
17+
* 如: https://www.google.com/search?q=site%3Aandroid.googlesource.com+ActivityThread
18+
*/
19+
public class CodeSearchAction extends BaseAction {
20+
21+
@Override
22+
public void actionPerformed(AnActionEvent event) {
23+
super.actionPerformed(event);
24+
final Editor editor = event.getRequiredData(CommonDataKeys.EDITOR);
25+
String selectText = editor.getSelectionModel().getSelectedText();
26+
if (StringUtil.isEmpty(selectText)) {
27+
PsiElement element = event.getData(LangDataKeys.PSI_ELEMENT);
28+
if (element == null) {
29+
NotificationUtils.infoNotification("selected code empty");
30+
return;
31+
}
32+
String[] result = element.toString().split(":");
33+
if (result.length == 2) {
34+
selectText = result[1];
35+
} else {
36+
selectText = element.toString();
37+
}
38+
}
39+
selectText = selectText.trim().replaceAll("\\s+", "+");
40+
String url = "https://cn.bing.com/search?q=site%3Aandroid.googlesource.com+" + selectText;
41+
if (SettingDialog.configAccessExternalNetwork()) {
42+
url = "https://www.google.com/search?q=site%3Aandroid.googlesource.com+" + selectText;
43+
}
44+
BrowserUtil.browse(url);
45+
}
46+
}

src/com/apkfuns/androidsourceviewer/action/DiffSourceAction.java

+20-18
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
package com.apkfuns.androidsourceviewer.action;
22

33
import com.apkfuns.androidsourceviewer.action.base.BaseSourceAction;
4-
import com.apkfuns.androidsourceviewer.download.DownloadManager;
4+
import com.apkfuns.androidsourceviewer.util.DownloadManager;
55
import com.apkfuns.androidsourceviewer.app.Constant;
6-
import com.apkfuns.androidsourceviewer.entity.ClassEntity;
7-
import com.apkfuns.androidsourceviewer.entity.DownloadResult;
6+
import com.apkfuns.androidsourceviewer.entity.DownloadTask;
7+
import com.apkfuns.androidsourceviewer.util.DownloadResult;
88
import com.apkfuns.androidsourceviewer.util.Log;
99
import com.apkfuns.androidsourceviewer.util.NotificationUtils;
1010
import com.apkfuns.androidsourceviewer.widget.PopListView;
@@ -32,7 +32,9 @@
3232
*/
3333
public class DiffSourceAction extends BaseSourceAction implements PopListView.OnItemClickListener {
3434

35+
// PopListView
3536
private PopListView popListView;
37+
// 选中的第一个版本
3638
private String firstValue;
3739

3840
@Override
@@ -61,39 +63,39 @@ public void OnItemClick(int position, final String value) {
6163
ProgressManager.getInstance().run(new Task.Backgroundable(project, title) {
6264
@Override
6365
public void run(@NotNull ProgressIndicator progressIndicator) {
64-
final ClassEntity entity1 = new ClassEntity(packageName, firstValue);
65-
ClassEntity entity2 = new ClassEntity(packageName, value);
66-
DownloadManager.getInstance().downloadFile(new ClassEntity[]{entity1, entity2},
67-
new File(Constant.CACHE_PATH + entity1.getParentPath()),
66+
final DownloadTask task1 = new DownloadTask(packageName, firstValue);
67+
DownloadTask task2 = new DownloadTask(packageName, value);
68+
DownloadManager.getInstance().downloadFile(new DownloadTask[]{task1, task2},
69+
new File(Constant.CACHE_PATH + task1.getParentPath()),
6870
new DownloadResult<File>() {
6971
@Override
70-
public void onSuccess(List<File> output) {
71-
Log.debug("success: length=" + output.size());
72-
if (output == null || output.size() < 2) {
73-
NotificationUtils.errorNotification("Error: Download " + entity1.getPackageName()
74-
+ " Failure");
72+
public void onSuccess(@NotNull List<File> output) {
73+
Log.debug("DownloadResult=" + output);
74+
if (output.size() < 2) {
75+
NotificationUtils.errorNotification("Error: Download " + task1);
7576
return;
7677
}
7778
diff(project, output.get(0), output.get(1));
7879
}
7980

8081
@Override
81-
public void onFailure(String msg, Throwable throwable) {
82+
public void onFailure(@NotNull String msg, Throwable throwable) {
8283
NotificationUtils.errorNotification("Error:" + msg);
8384
}
84-
});
85+
}, true);
8586
}
8687
});
8788
}
8889
}
8990

9091
/**
9192
* 调用 Android 文件对比
92-
* @param project
93-
* @param f1
94-
* @param f2
93+
*
94+
* @param project project
95+
* @param f1 对比的第一个文件
96+
* @param f2 对比的第二个文件
9597
*/
96-
public static void diff(final Project project, final File f1, final File f2) {
98+
private void diff(final Project project, final File f1, final File f2) {
9799
ApplicationManager.getApplication().invokeLater(new Runnable() {
98100
@Override
99101
public void run() {

0 commit comments

Comments
 (0)