fix: files.join(); RootShell.isRootAvailable() crash
This commit is contained in:
@@ -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 {
|
||||||
|
|||||||
@@ -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"}}]
|
||||||
@@ -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;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -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();
|
||||||
|
|
||||||
|
|||||||
@@ -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) {
|
||||||
|
|||||||
@@ -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));
|
||||||
|
|||||||
@@ -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;
|
||||||
|
|||||||
@@ -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");
|
|
||||||
});
|
|
||||||
@@ -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
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user