From 306cf4c5d30f3350f5f24901c2e5915354804137 Mon Sep 17 00:00:00 2001
From: hyb1996 <946994919@qq.com>
Date: Sun, 2 Jul 2017 15:28:30 +0800
Subject: [PATCH 1/2] fix flash when launch a shortcut
---
app/src/main/AndroidManifest.xml | 9 +++--
.../scriptdroid/external/CommonUtils.java | 1 -
.../external/shortcut/Shortcut.java | 1 +
.../external/shortcut/ShortcutActivity.java | 4 --
.../scriptdroid/script/ScriptFile.java | 2 +-
.../stardust/autojs/runtime/api/AppUtils.java | 40 ++++++++++++++++++-
.../src/main/java/com/stardust/pio/PFile.java | 8 ++--
7 files changed, 51 insertions(+), 14 deletions(-)
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index fda5ea51..5cf01c7a 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -38,10 +38,11 @@
+ android:taskAffinity="com.stardust.scriptdroid.external.shortcut.ShortcutActivity"
+ android:theme="@android:style/Theme.NoDisplay">
-
+
@@ -151,7 +152,9 @@
+ android:label="运行脚本"
+ android:taskAffinity="com.stardust.scriptdroid.external.open.RunIntentActivity"
+ android:theme="@android:style/Theme.NoDisplay">
diff --git a/app/src/main/java/com/stardust/scriptdroid/external/CommonUtils.java b/app/src/main/java/com/stardust/scriptdroid/external/CommonUtils.java
index 9f20196a..1b8e850a 100644
--- a/app/src/main/java/com/stardust/scriptdroid/external/CommonUtils.java
+++ b/app/src/main/java/com/stardust/scriptdroid/external/CommonUtils.java
@@ -33,7 +33,6 @@ public class CommonUtils {
String directoryPath = null;
String script = intent.getStringExtra(CommonUtils.EXTRA_KEY_PRE_EXECUTE_SCRIPT);
ScriptSource source = null;
- Toast.makeText(context, path, Toast.LENGTH_SHORT).show();
if (path == null && script != null) {
source = new StringScriptSource(script);
} else if (path != null && new PathChecker(context).checkAndToastError(path)) {
diff --git a/app/src/main/java/com/stardust/scriptdroid/external/shortcut/Shortcut.java b/app/src/main/java/com/stardust/scriptdroid/external/shortcut/Shortcut.java
index b82d7eca..ce00f41a 100644
--- a/app/src/main/java/com/stardust/scriptdroid/external/shortcut/Shortcut.java
+++ b/app/src/main/java/com/stardust/scriptdroid/external/shortcut/Shortcut.java
@@ -2,6 +2,7 @@ package com.stardust.scriptdroid.external.shortcut;
import android.content.Context;
import android.content.Intent;
+import android.content.pm.PackageManager;
import android.os.Bundle;
/**
diff --git a/app/src/main/java/com/stardust/scriptdroid/external/shortcut/ShortcutActivity.java b/app/src/main/java/com/stardust/scriptdroid/external/shortcut/ShortcutActivity.java
index 40dffed6..866e181f 100644
--- a/app/src/main/java/com/stardust/scriptdroid/external/shortcut/ShortcutActivity.java
+++ b/app/src/main/java/com/stardust/scriptdroid/external/shortcut/ShortcutActivity.java
@@ -23,10 +23,6 @@ public class ShortcutActivity extends Activity {
if (new PathChecker(this).checkAndToastError(path)) {
runScriptFile(path);
}
- }
-
- public void onStart() {
- super.onStart();
finish();
}
diff --git a/app/src/main/java/com/stardust/scriptdroid/script/ScriptFile.java b/app/src/main/java/com/stardust/scriptdroid/script/ScriptFile.java
index 04f75c23..0a247555 100644
--- a/app/src/main/java/com/stardust/scriptdroid/script/ScriptFile.java
+++ b/app/src/main/java/com/stardust/scriptdroid/script/ScriptFile.java
@@ -40,7 +40,7 @@ public class ScriptFile extends File {
if (isDirectory())
return renameTo(new File(getParent(), newName));
else
- return renameTo(new File(getParent(), newName + getExtension()));
+ return renameTo(new File(getParent(), newName + "." + getExtension()));
}
private String getExtension() {
diff --git a/autojs/src/main/java/com/stardust/autojs/runtime/api/AppUtils.java b/autojs/src/main/java/com/stardust/autojs/runtime/api/AppUtils.java
index 28b7e5e5..3a9d4047 100644
--- a/autojs/src/main/java/com/stardust/autojs/runtime/api/AppUtils.java
+++ b/autojs/src/main/java/com/stardust/autojs/runtime/api/AppUtils.java
@@ -7,7 +7,9 @@ import android.content.pm.ApplicationInfo;
import android.content.pm.PackageManager;
import android.net.Uri;
import android.support.annotation.Nullable;
+import android.text.TextUtils;
import android.util.Log;
+import android.webkit.MimeTypeMap;
import com.stardust.autojs.runtime.ScriptInterface;
import com.stardust.util.IntentUtil;
@@ -15,6 +17,8 @@ import com.stardust.util.IntentUtil;
import java.lang.ref.WeakReference;
import java.util.List;
+import static com.stardust.pio.PFile.getExtension;
+
/**
* Created by Stardust on 2017/4/2.
*/
@@ -55,7 +59,7 @@ public class AppUtils {
return applicationInfo.processName;
}
}
- return "";
+ return null;
}
@ScriptInterface
@@ -75,6 +79,40 @@ public class AppUtils {
.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK));
}
+ @ScriptInterface
+ public void viewFile(String path) {
+ if (path == null)
+ throw new NullPointerException("path == null");
+ path = "file://" + path;
+ String ext = getExtension(path);
+ String mimeType = TextUtils.isEmpty(ext) ? "*/*" : MimeTypeMap.getSingleton().getMimeTypeFromExtension(ext);
+ mContext.startActivity(new Intent(Intent.ACTION_VIEW)
+ .setDataAndType(Uri.parse(path), mimeType)
+ .addFlags(Intent.FLAG_ACTIVITY_NEW_TASK));
+ }
+
+ @ScriptInterface
+ public void editFile(String path) {
+ if (path == null)
+ throw new NullPointerException("path == null");
+ path = "file://" + path;
+ String ext = getExtension(path);
+ String mimeType = TextUtils.isEmpty(ext) ? "*/*" : MimeTypeMap.getSingleton().getMimeTypeFromExtension(ext);
+ mContext.startActivity(new Intent(Intent.ACTION_EDIT)
+ .setDataAndType(Uri.parse(path), mimeType)
+ .addFlags(Intent.FLAG_ACTIVITY_NEW_TASK));
+ }
+
+ @ScriptInterface
+ public void openUrl(String url) {
+ if (!url.startsWith("http://") || !url.startsWith("https://")) {
+ url = "http://" + url;
+ }
+ mContext.startActivity(new Intent(Intent.ACTION_VIEW)
+ .setData(Uri.parse(url))
+ .addFlags(Intent.FLAG_ACTIVITY_NEW_TASK));
+ }
+
public void setCurrentActivity(Activity currentActivity) {
mCurrentActivity = new WeakReference<>(currentActivity);
Log.d("App", "setCurrentActivity: " + currentActivity);
diff --git a/common/src/main/java/com/stardust/pio/PFile.java b/common/src/main/java/com/stardust/pio/PFile.java
index cf7b85da..3aea3c8b 100644
--- a/common/src/main/java/com/stardust/pio/PFile.java
+++ b/common/src/main/java/com/stardust/pio/PFile.java
@@ -171,16 +171,16 @@ public class PFile {
public static String renameWithoutExtension(String path, String newName) {
File file = new File(path);
- File newFile = new File(file.getParent(), newName + getExtension(file.getName()));
+ File newFile = new File(file.getParent(), newName + "." + getExtension(file.getName()));
file.renameTo(newFile);
return newFile.getAbsolutePath();
}
public static String getExtension(String fileName) {
int i = fileName.lastIndexOf('.');
- if (i < 0 || i == fileName.length() - 1)
+ if (i < 0 || i + 1 >= fileName.length() - 1)
return "";
- return fileName.substring(i);
+ return fileName.substring(i + 1);
}
public static boolean write(String path, String text) {
@@ -233,7 +233,7 @@ public class PFile {
}
public static File copyAssetToTmpFile(Context context, String path) {
- String extension = getExtension(path);
+ String extension = "." + getExtension(path);
String name = getNameWithoutExtension(path);
if (name.length() < 5) {
name += name.hashCode();
From e97744d7f2540a03b689016ba2104972cb23a25b Mon Sep 17 00:00:00 2001
From: hyb1996 <946994919@qq.com>
Date: Sun, 2 Jul 2017 16:41:33 +0800
Subject: [PATCH 2/2] release 2.0.13Beta
---
app/build.gradle | 4 +--
app/src/main/AndroidManifest.xml | 1 +
.../assets/help/documentation/shell命令.md | 32 ++++++-------------
.../help/documentation/图片与图色处理.md | 4 ++-
.../assets/help/documentation/控制台与输出.md | 3 +-
.../layout_inspector/LayoutInspector.java | 7 +++-
.../tasker/TaskerScriptEditActivity.java | 3 ++
.../scriptdroid/tool/VersionInfo.java | 10 +-----
.../scriptdroid/ui/main/MainActivity.java | 3 +-
.../script_list/MyScriptListFragment.java | 6 ----
autojs/src/main/AndroidManifest.xml | 6 ++--
.../stardust/autojs/runtime/api/Shell.java | 2 +-
autojs/src/main/res/values/strings.xml | 1 +
13 files changed, 32 insertions(+), 50 deletions(-)
diff --git a/app/build.gradle b/app/build.gradle
index 8d4b0ae2..09a48dc2 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -9,8 +9,8 @@ android {
applicationId "com.stardust.scriptdroid"
minSdkVersion 19
targetSdkVersion 23
- versionCode 140
- versionName "2.0.13 Alpha3"
+ versionCode 141
+ versionName "2.0.13 Beta"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
multiDexEnabled true
ndk {
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 5cf01c7a..7e892673 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -79,6 +79,7 @@
android:name=".ui.error.IssueReporterActivity"
android:theme="@style/IssueReporterTheme"/>
+
diff --git a/app/src/main/assets/help/documentation/shell命令.md b/app/src/main/assets/help/documentation/shell命令.md
index 49bcc133..4c65520b 100644
--- a/app/src/main/assets/help/documentation/shell命令.md
+++ b/app/src/main/assets/help/documentation/shell命令.md
@@ -3,23 +3,23 @@ shell命令是通过shell函数运行的命令。等同于"adb shell"。shell函
* cmd \ 要执行的命令
* root \ 是否以root权限运行,默认为false。
返回运行一个执行结果。该返回值一般不会用到,其属性如下:
- * code \ 返回码。执行成功时为1,失败时为非1的数字,一般为0。
+ * code \ 返回码。执行成功时为0,失败时为非0的数字。
* result \ 运行结果。
* error \ 运行的错误信息。例如执行需要root权限的命令但没有授予root权限会返回错误信息"Permission denied"。
示例(强制停止微信) :
```
var result = shell("am force-stop com.tencent.mm", true);
-if(result.code == 1){
+log(result);
+openConsole();
+if(result.code == 0){
toast("执行成功");
}else{
toast("执行失败!请到控制台查看错误信息");
- err(result.error);
- openConsole();
}
```
-以下关于shell命令的资料来自[AndroidStudio用户指南:Sehll命令](https://developer.android.com/studio/command-line/adb.html#shellcommands)。
+以下关于shell命令的资料来自[AndroidStudio用户指南:Shell命令](https://developer.android.com/studio/command-line/adb.html#shellcommands)。
目录:
* [am命令](#am命令)
@@ -367,31 +367,19 @@ log(shell("ls /system/bin"));
Shell类的构造函数。
-### Shell.execute(cmd)
+### Shell.exec(cmd)
* cmd \ 要执行的命令
+该命令没有返回值。
+
执行命令cmd,例如:
```
-var sh = Shell(true);
-sh.execute("rm /sdcard/1.txt"); //删除SD卡上的1.txt文件
+var sh = new Shell(true);
+sh.exec("rm -f /sdcard/1.txt"); //删除SD卡上的1.txt文件
```
-### Shell.exitAndWaitFor()
-退出Shell,并等待所有命令执行完成。
-一个完整的例子如下:
-```
-var sh = Shell(true);
-sh.execute("rm /sdcard/1.txt");
-sh.execute("input keyevent 26");
-sh.exitAndWaitFor();
-```
-
-### Shell.waitFor()
-等待当前所有命令执行完成。返回一个整数作为返回码,1为执行成功,其他数字为错误。
-
### Shell.exit()
退出Shell。调用该函数后再执行的命令无效。
-
除以上命令之外, Shell也包含自动操作的命令,例如Shell.Tap,参见《需要Root权限的自动操作函数》。
\ No newline at end of file
diff --git a/app/src/main/assets/help/documentation/图片与图色处理.md b/app/src/main/assets/help/documentation/图片与图色处理.md
index d63fae4c..d2d88e3b 100644
--- a/app/src/main/assets/help/documentation/图片与图色处理.md
+++ b/app/src/main/assets/help/documentation/图片与图色处理.md
@@ -1,3 +1,5 @@
### requestScreenCapture(\[width, height\])
-参数width和height用于指定截图的分辨率,默认为屏幕宽高。
\ No newline at end of file
+参数width和height用于指定截图的分辨率,默认为屏幕宽高。
+
+未完待续。
\ No newline at end of file
diff --git a/app/src/main/assets/help/documentation/控制台与输出.md b/app/src/main/assets/help/documentation/控制台与输出.md
index b437681c..0754e680 100644
--- a/app/src/main/assets/help/documentation/控制台与输出.md
+++ b/app/src/main/assets/help/documentation/控制台与输出.md
@@ -1,5 +1,4 @@
控制台通常用来输出一些调试信息和运算结果。
-而Toast是安卓上一种显示信息的机制,即使应用在后台运行也能显示。
### openConsole()
显示控制台。
@@ -30,4 +29,4 @@ try{
### toast(message)
* message \ | \