fix: files.join(); RootShell.isRootAvailable() crash

This commit is contained in:
hyb1996
2018-01-27 09:18:42 +08:00
parent 76f02863f7
commit 1e8183f756
9 changed files with 33 additions and 48 deletions

View File

@@ -8,8 +8,8 @@ android {
applicationId "com.stardust.scriptdroid" applicationId "com.stardust.scriptdroid"
minSdkVersion 17 minSdkVersion 17
targetSdkVersion 23 targetSdkVersion 23
versionCode 242 versionCode 243
versionName "3.0.0 Alpha42" versionName "3.0.0 Alpha43"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
multiDexEnabled true multiDexEnabled true
ndk { ndk {

View File

@@ -1 +1 @@
[{"outputType":{"type":"APK"},"apkInfo":{"type":"MAIN","splits":[],"versionCode":242},"path":"release-3.0.0 Alpha42.apk","properties":{"packageId":"com.stardust.scriptdroid","split":"","minSdkVersion":"17"}}] [{"outputType":{"type":"APK"},"apkInfo":{"type":"MAIN","splits":[],"versionCode":34},"path":"inrt-release.apk","properties":{"packageId":"com.stardust.auojs.inrt","split":"","minSdkVersion":"17"}}]

View File

@@ -0,0 +1,19 @@
package com.stardust.scriptdroid.tool;
import com.stericson.RootShell.RootShell;
/**
* Created by Stardust on 2018/1/26.
*/
public class RootTool {
public static boolean isRootAvailable() {
try {
return RootShell.isRootAvailable();
} catch (Exception e) {
e.printStackTrace();
return false;
}
}
}

View File

@@ -12,6 +12,7 @@ import com.afollestad.materialdialogs.MaterialDialog;
import com.stardust.app.DialogUtils; import com.stardust.app.DialogUtils;
import com.stardust.app.OperationDialogBuilder; import com.stardust.app.OperationDialogBuilder;
import com.stardust.autojs.core.record.Recorder; import com.stardust.autojs.core.record.Recorder;
import com.stardust.autojs.runtime.api.Dialogs;
import com.stardust.enhancedfloaty.FloatyService; import com.stardust.enhancedfloaty.FloatyService;
import com.stardust.floatingcircularactionmenu.CircularActionMenu; import com.stardust.floatingcircularactionmenu.CircularActionMenu;
import com.stardust.floatingcircularactionmenu.CircularActionMenuFloatingWindow; import com.stardust.floatingcircularactionmenu.CircularActionMenuFloatingWindow;
@@ -23,6 +24,7 @@ import com.stardust.scriptdroid.autojs.record.GlobalActionRecorder;
import com.stardust.scriptdroid.model.script.Scripts; import com.stardust.scriptdroid.model.script.Scripts;
import com.stardust.scriptdroid.storage.file.StorageFileProvider; import com.stardust.scriptdroid.storage.file.StorageFileProvider;
import com.stardust.scriptdroid.tool.AccessibilityServiceTool; import com.stardust.scriptdroid.tool.AccessibilityServiceTool;
import com.stardust.scriptdroid.tool.RootTool;
import com.stardust.scriptdroid.ui.common.NotAskAgainDialog; import com.stardust.scriptdroid.ui.common.NotAskAgainDialog;
import com.stardust.scriptdroid.ui.floating.layoutinspector.LayoutBoundsFloatyWindow; import com.stardust.scriptdroid.ui.floating.layoutinspector.LayoutBoundsFloatyWindow;
import com.stardust.scriptdroid.ui.floating.layoutinspector.LayoutHierarchyFloatyWindow; import com.stardust.scriptdroid.ui.floating.layoutinspector.LayoutHierarchyFloatyWindow;
@@ -148,14 +150,14 @@ public class CircularMenu implements Recorder.OnStateChangedListener, LayoutInsp
@OnClick(R.id.record) @OnClick(R.id.record)
void startRecord() { void startRecord() {
mWindow.collapse(); mWindow.collapse();
if (!RootShell.isRootAvailable()) { if (!RootTool.isRootAvailable()) {
new NotAskAgainDialog.Builder(mContext, "CircularMenu.root") DialogUtils.showDialog(new NotAskAgainDialog.Builder(mContext, "CircularMenu.root")
.title(R.string.text_device_not_rooted) .title(R.string.text_device_not_rooted)
.content(R.string.prompt_device_not_rooted) .content(R.string.prompt_device_not_rooted)
.neutralText(R.string.text_device_rooted) .neutralText(R.string.text_device_rooted)
.positiveText(R.string.ok) .positiveText(R.string.ok)
.onNeutral(((dialog, which) -> mRecorder.start())) .onNeutral(((dialog, which) -> mRecorder.start()))
.show(); .build());
} else { } else {
mRecorder.start(); mRecorder.start();

View File

@@ -10,6 +10,7 @@ import android.webkit.ValueCallback;
import android.webkit.WebView; import android.webkit.WebView;
import com.stardust.scriptdroid.R; import com.stardust.scriptdroid.R;
import com.stardust.scriptdroid.network.NodeBB;
import com.stardust.scriptdroid.storage.file.StorageFileProvider; import com.stardust.scriptdroid.storage.file.StorageFileProvider;
import com.stardust.scriptdroid.model.script.Scripts; import com.stardust.scriptdroid.model.script.Scripts;
import com.stardust.scriptdroid.network.download.DownloadManager; import com.stardust.scriptdroid.network.download.DownloadManager;
@@ -99,7 +100,7 @@ public class CommunityWebView extends EWebView {
private class MyWebViewClient extends EWebView.MyWebViewClient { private class MyWebViewClient extends EWebView.MyWebViewClient {
private final Pattern UPLOAD_FILE_PATTERN = Pattern.compile("http://www.autojs.org/assets/uploads/files/.+(\\.js|\\.auto)"); private final Pattern UPLOAD_FILE_PATTERN = Pattern.compile(NodeBB.url("assets/uploads/files/.+(\\.js|\\.auto)"));
@Override @Override
public boolean shouldOverrideUrlLoading(WebView view, String url) { public boolean shouldOverrideUrlLoading(WebView view, String url) {

View File

@@ -72,7 +72,7 @@ public class DrawerMenuItemViewHolder extends BindableViewHolder<DrawerMenuItem>
mSwitchCompat.setVisibility(VISIBLE); mSwitchCompat.setVisibility(VISIBLE);
int prefKey = item.getPrefKey(); int prefKey = item.getPrefKey();
if (prefKey == 0) { if (prefKey == 0) {
mSwitchCompat.setChecked(item.isChecked()); mSwitchCompat.setChecked(item.isChecked(), false);
mSwitchCompat.setPrefKey(null); mSwitchCompat.setPrefKey(null);
} else { } else {
mSwitchCompat.setPrefKey(itemView.getResources().getString(prefKey)); mSwitchCompat.setPrefKey(itemView.getResources().getString(prefKey));

View File

@@ -3,7 +3,7 @@ module.exports = function(__runtime__, scope){
var fs = __runtime__.files; var fs = __runtime__.files;
var files = Object.create(fs); var files = Object.create(fs);
files.join = function(base){ files.join = function(base){
var paths = Array.prototype.slice.call(arguments, 0); var paths = Array.prototype.slice.call(arguments, 1);
return fs.join(base, paths); return fs.join(base, paths);
} }
scope.files = files; scope.files = files;

View File

@@ -1,32 +1 @@
"ui"; console.error("打包出错啦~ 使用文件夹打包请把主脚本改名为main.js");
ui.layout(
<scroll>
<vertical bg="#707070" padding="16">
<text text="网络图片" textColor="black" textSize="16sp" marginTop="16"/>
<img src="file://auto.js.png"
w="100" h="100"/>
<text text="带边框的图片" textColor="black" textSize="16sp" marginTop="16"/>
<img src="http://www.autojs.org/assets/uploads/profile/1-profileavatar.jpeg"
w="100" h="100" borderWidth="2dp" borderColor="#202020"/>
<text text="圆形图片" textColor="black" textSize="16sp" marginTop="16"/>
<img src="http://www.autojs.org/assets/uploads/profile/1-profileavatar.jpeg"
w="100" h="100" circle="true"/>
<text text="带边框的圆形图片" textColor="black" textSize="16sp" marginTop="16"/>
<img src="http://www.autojs.org/assets/uploads/profile/1-profileavatar.jpeg"
w="100" h="100" circle="true" borderWidth="2dp" borderColor="#202020"/>
<text text="圆角图片" textColor="black" textSize="16sp" marginTop="16"/>
<img id="rounded_img" src="http://www.autojs.org/assets/uploads/profile/1-profileavatar.jpeg"
w="100" h="100" radius="20dp" scaleType="fitXY"/>
<button id="change_img" text="更改图片"/>
</vertical>
</scroll>
);
ui.change_img.click(()=>{
ui.rounded_img.setSource("http://www.autojs.org/assets/uploads/profile/1-profilecover.jpeg");
});

View File

@@ -3,11 +3,5 @@
"versionName": "1.0.0", "versionName": "1.0.0",
"versionCode": 1, "versionCode": 1,
"packageName": "org.autojs.example", "packageName": "org.autojs.example",
"main": "main.js", "main": "main.js"
"assets" : [
"auto.js.png"
],
"launchConfig": {
"hideLogs": true
}
} }