From 09abdf86a56bc2e24f5b708b51e8c2783be0f6a7 Mon Sep 17 00:00:00 2001
From: luo_dong <44437337@qq.com>
Date: Fri, 17 Apr 2020 17:11:34 +0800
Subject: [PATCH 1/4] =?UTF-8?q?1.=E5=A2=9E=E5=8A=A0=E4=BF=9D=E6=B4=BB?=
=?UTF-8?q?=E5=8A=9F=E8=83=BD?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
src/main/java/org/qpython/qsl4a/QPyScriptService.java | 3 +++
1 file changed, 3 insertions(+)
diff --git a/src/main/java/org/qpython/qsl4a/QPyScriptService.java b/src/main/java/org/qpython/qsl4a/QPyScriptService.java
index 8122ba0..ffc95b5 100644
--- a/src/main/java/org/qpython/qsl4a/QPyScriptService.java
+++ b/src/main/java/org/qpython/qsl4a/QPyScriptService.java
@@ -10,6 +10,7 @@ import android.os.IBinder;
import android.util.Log;
import org.qpython.qsl4a.qsl4a.AndroidProxy;
+import org.qpython.qsl4a.qsl4a.LogUtil;
import org.qpython.qsl4a.qsl4a.interpreter.InterpreterConfiguration;
import org.qpython.qsl4a.qsl4a.jsonrpc.RpcReceiverManager;
import org.qpython.qsl4a.qsl4a.util.SPFUtils;
@@ -62,6 +63,7 @@ public class QPyScriptService extends Service {
@Override
public void onDestroy() {
Log.d(TAG, "onDestroy");
+ LogUtil.e("doWork444444");
if (mProxy != null) {
mProxy.shutdown();
@@ -91,6 +93,7 @@ public class QPyScriptService extends Service {
@Override
public void onCreate() {
Log.d(TAG, "onCreate");
+ LogUtil.e("doWork3333333");
super.onCreate();
// clear before run
/*File logFile = new File( Environment.getExternalStorageDirectory()+"/"+CONF.BASE_PATH+"/"+scriptName.substring(scriptName.lastIndexOf("/")+1)+".log" );
--
Gitee
From 4b8a53733ba687ac96ec929a69c809927870f985 Mon Sep 17 00:00:00 2001
From: luo_dong <44437337@qq.com>
Date: Thu, 19 Aug 2021 13:58:34 +0800
Subject: [PATCH 2/4] =?UTF-8?q?1.=E6=9B=B4=E6=96=B0build=E5=88=B029?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
src/main/AndroidManifest.xml | 1 +
.../qpython/qsl4a/qsl4a/facade/PhoneFacade.java | 17 +++++++++++++----
2 files changed, 14 insertions(+), 4 deletions(-)
diff --git a/src/main/AndroidManifest.xml b/src/main/AndroidManifest.xml
index 9e42bbc..d867991 100644
--- a/src/main/AndroidManifest.xml
+++ b/src/main/AndroidManifest.xml
@@ -8,4 +8,5 @@
+
diff --git a/src/main/java/org/qpython/qsl4a/qsl4a/facade/PhoneFacade.java b/src/main/java/org/qpython/qsl4a/qsl4a/facade/PhoneFacade.java
index 09a5a26..40fdf82 100644
--- a/src/main/java/org/qpython/qsl4a/qsl4a/facade/PhoneFacade.java
+++ b/src/main/java/org/qpython/qsl4a/qsl4a/facade/PhoneFacade.java
@@ -16,6 +16,7 @@
package org.qpython.qsl4a.qsl4a.facade;
+import android.Manifest;
import android.app.Service;
import android.content.ContentResolver;
import android.content.Context;
@@ -24,6 +25,7 @@ import android.database.Cursor;
import android.net.Uri;
import android.os.Bundle;
import android.provider.Contacts.PhonesColumns;
+import android.support.annotation.RequiresPermission;
import android.telephony.CellLocation;
import android.telephony.NeighboringCellInfo;
import android.telephony.PhoneStateListener;
@@ -161,6 +163,7 @@ public class PhoneFacade extends RpcReceiver {
}
@Rpc(description = "Returns the current cell location.")
+ @RequiresPermission(android.Manifest.permission.ACCESS_FINE_LOCATION)
public CellLocation getCellLocation() {
return mTelephonyManager.getCellLocation();
}
@@ -221,6 +224,7 @@ public class PhoneFacade extends RpcReceiver {
}
@Rpc(description = "Returns the serial number of the SIM, if applicable. Return null if it is unavailable.")
+ @RequiresPermission(android.Manifest.permission.READ_PHONE_STATE)
public String getSimSerialNumber() {
return mTelephonyManager.getSimSerialNumber();
}
@@ -246,16 +250,19 @@ public class PhoneFacade extends RpcReceiver {
}
@Rpc(description = "Returns the unique subscriber ID, for example, the IMSI for a GSM phone. Return null if it is unavailable.")
+ @RequiresPermission(android.Manifest.permission.READ_PHONE_STATE)
public String getSubscriberId() {
return mTelephonyManager.getSubscriberId();
}
@Rpc(description = "Retrieves the alphabetic identifier associated with the voice mail number.")
+ @RequiresPermission(android.Manifest.permission.READ_PHONE_STATE)
public String getVoiceMailAlphaTag() {
return mTelephonyManager.getVoiceMailAlphaTag();
}
@Rpc(description = "Returns the voice mail number. Return null if it is unavailable.")
+ @RequiresPermission(android.Manifest.permission.READ_PHONE_STATE)
public String getVoiceMailNumber() {
return mTelephonyManager.getVoiceMailNumber();
}
@@ -271,17 +278,19 @@ public class PhoneFacade extends RpcReceiver {
}
@Rpc(description = "Returns the software version number for the device, for example, the IMEI/SV for GSM phones. Return null if the software version is not available.")
+ @RequiresPermission(android.Manifest.permission.READ_PHONE_STATE)
public String getDeviceSoftwareVersion() {
return mTelephonyManager.getDeviceSoftwareVersion();
}
@Rpc(description = "Returns the phone number string for line 1, for example, the MSISDN for a GSM phone. Return null if it is unavailable.")
+ @RequiresPermission(Manifest.permission.READ_PHONE_NUMBERS)
public String getLine1Number() {
return mTelephonyManager.getLine1Number();
}
- @Rpc(description = "Returns the neighboring cell information of the device.")
- public List getNeighboringCellInfo() {
- return mTelephonyManager.getNeighboringCellInfo();
- }
+// @Rpc(description = "Returns the neighboring cell information of the device.")
+// public List getNeighboringCellInfo() {
+// return mTelephonyManager.getNeighboringCellInfo();
+// }
}
--
Gitee
From 2d03143d1160884c22e5769f92b33492aad3d983 Mon Sep 17 00:00:00 2001
From: luo_dong <44437337@qq.com>
Date: Wed, 1 Dec 2021 13:42:56 +0800
Subject: [PATCH 3/4] =?UTF-8?q?1.=E5=A4=84=E7=90=86=E6=89=80=E6=9C=89getEx?=
=?UTF-8?q?ternalStorageDirectory=202.=E8=A7=A3=E5=86=B3=E8=B0=B7=E6=AD=8C?=
=?UTF-8?q?fire=E5=BA=93build=E4=B8=8D=E8=B5=B7=E6=9D=A5=E7=9A=84bug?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
src/main/AndroidManifest.xml | 1 +
.../org/qpython/qsl4a/qsl4a/FileUtils.java | 33 +++++++++++++------
.../java/org/qpython/qsl4a/qsl4a/Process.java | 14 +++++---
.../qpython/qsl4a/qsl4a/ScriptLauncher.java | 13 ++++----
.../qsl4a/qsl4a/ScriptStorageAdapter.java | 22 ++++++++-----
.../qsl4a/qsl4a/facade/AndroidFacade.java | 3 +-
.../qsl4a/facade/QPyInterfaceFacade.java | 8 +++--
.../interpreter/InterpreterConstants.java | 13 ++++----
.../qsl4a/interpreter/InterpreterProcess.java | 13 +++++---
.../interpreter/html/HtmlActivityTask.java | 11 +++++--
10 files changed, 83 insertions(+), 48 deletions(-)
diff --git a/src/main/AndroidManifest.xml b/src/main/AndroidManifest.xml
index d867991..4006845 100644
--- a/src/main/AndroidManifest.xml
+++ b/src/main/AndroidManifest.xml
@@ -9,4 +9,5 @@
+
diff --git a/src/main/java/org/qpython/qsl4a/qsl4a/FileUtils.java b/src/main/java/org/qpython/qsl4a/qsl4a/FileUtils.java
index bf59c87..1f9cbf5 100644
--- a/src/main/java/org/qpython/qsl4a/qsl4a/FileUtils.java
+++ b/src/main/java/org/qpython/qsl4a/qsl4a/FileUtils.java
@@ -48,6 +48,18 @@ public class FileUtils {
|| Environment.MEDIA_MOUNTED_READ_ONLY.equals(state);
}
+ public static String getRootPath(Context context){
+ return com.quseit.util.FileUtils.getQyPath(context) + "/sl4a/";
+ }
+
+ public static String getScriptsRootPath(Context context){
+ return getRootPath(context) + "scripts/";
+ }
+
+ public static String getBasePath(Context context){
+ return "file://" + getScriptsRootPath(context);
+ }
+
public static String getFileContents(String filename) {
File scriptFile = new File( filename );
@@ -184,15 +196,16 @@ public class FileUtils {
return true;
}
- public static File getExternalDownload() {
- try {
- Class> c = Class.forName("android.os.Environment");
- Method m = c.getDeclaredMethod("getExternalStoragePublicDirectory", String.class);
- String download = c.getDeclaredField("DIRECTORY_DOWNLOADS").get(null).toString();
- return (File) m.invoke(null, download);
- } catch (Exception e) {
- return new File(Environment.getExternalStorageDirectory(), "Download");
- }
+ public static File getExternalDownload(Context context) {
+// try {
+// Class> c = Class.forName("android.os.Environment");
+// Method m = c.getDeclaredMethod("getExternalStoragePublicDirectory", String.class);
+// String download = c.getDeclaredField("DIRECTORY_DOWNLOADS").get(null).toString();
+// return (File) m.invoke(null, download);
+// } catch (Exception e) {
+// return new File(Environment.getExternalStorageDirectory(), "Download");
+// }
+ return context.getExternalFilesDir(Environment.DIRECTORY_DOWNLOADS);
}
public static boolean rename(File file, String name) {
@@ -226,4 +239,4 @@ public class FileUtils {
return builder.toString();
}
-}
+}
\ No newline at end of file
diff --git a/src/main/java/org/qpython/qsl4a/qsl4a/Process.java b/src/main/java/org/qpython/qsl4a/qsl4a/Process.java
index 67becf3..68ab107 100644
--- a/src/main/java/org/qpython/qsl4a/qsl4a/Process.java
+++ b/src/main/java/org/qpython/qsl4a/qsl4a/Process.java
@@ -16,6 +16,8 @@
package org.qpython.qsl4a.qsl4a;
+import android.content.Context;
+
import org.qpython.qsl4a.codec.StreamGobbler;
import org.qpython.qsl4a.qsl4a.interpreter.InterpreterConstants;
@@ -106,7 +108,7 @@ public class Process {
return mIn;
}
- public void start(final Runnable shutdownHook) {
+ public void start(Context context, final Runnable shutdownHook) {
if (isAlive()) {
throw new RuntimeException("Attempted to start process that is already running.");
}
@@ -117,17 +119,19 @@ public class Process {
int[] pid = new int[1];
String[] argumentsArray = mArguments.toArray(new String[mArguments.size()]);
- mLog = new File(String.format("%s/%s.log", InterpreterConstants.SDCARD_SL4A_ROOT, getName()));
+// mLog = new File(String.format("%s/%s.log", InterpreterConstants.SDCARD_SL4A_ROOT, getName()));
+ mLog = new File(String.format("%s/%s.log", FileUtils.getRootPath(context.getApplicationContext()), getName()));
mFd =
Exec.createSubprocess(binaryPath, argumentsArray, getEnvironmentArray(),
- getWorkingDirectory(), pid);
+ getWorkingDirectory(context), pid);
mPid.set(pid[0]);
mOut = new FileOutputStream(mFd);
mIn = new StreamGobbler(new FileInputStream(mFd), mLog, DEFAULT_BUFFER_SIZE);
mStartTime = System.currentTimeMillis();
new Thread(new Runnable() {
+ @Override
public void run() {
int result = Exec.waitFor(mPid.get());
mEndTime = System.currentTimeMillis();
@@ -199,7 +203,7 @@ public class Process {
mName = name;
}
- public String getWorkingDirectory() {
+ public String getWorkingDirectory(Context context) {
return null;
}
-}
+}
\ No newline at end of file
diff --git a/src/main/java/org/qpython/qsl4a/qsl4a/ScriptLauncher.java b/src/main/java/org/qpython/qsl4a/qsl4a/ScriptLauncher.java
index 4bb294b..45dd43c 100644
--- a/src/main/java/org/qpython/qsl4a/qsl4a/ScriptLauncher.java
+++ b/src/main/java/org/qpython/qsl4a/qsl4a/ScriptLauncher.java
@@ -17,6 +17,7 @@
package org.qpython.qsl4a.qsl4a;
import android.app.Service;
+import android.content.Context;
import android.content.Intent;
@@ -59,7 +60,7 @@ public class ScriptLauncher {
return task;
}
- public static InterpreterProcess launchInterpreter(final AndroidProxy proxy, Intent intent,
+ public static InterpreterProcess launchInterpreter(Context context, final AndroidProxy proxy, Intent intent,
InterpreterConfiguration config, Runnable shutdownHook) {
Interpreter interpreter;
String interpreterName;
@@ -67,33 +68,33 @@ public class ScriptLauncher {
interpreter = config.getInterpreterByName(interpreterName);
InterpreterProcess process = new InterpreterProcess(interpreter, proxy);
if (shutdownHook == null) {
- process.start(new Runnable() {
+ process.start(context,new Runnable() {
@Override
public void run() {
proxy.shutdown();
}
});
} else {
- process.start(shutdownHook);
+ process.start(context,shutdownHook);
}
return process;
}
- public static ScriptProcess launchScript(File script, InterpreterConfiguration configuration,
+ public static ScriptProcess launchScript(Context context,File script, InterpreterConfiguration configuration,
final AndroidProxy proxy, Runnable shutdownHook) {
if (!script.exists()) {
throw new RuntimeException("No such script to launch.");
}
ScriptProcess process = new ScriptProcess(script, configuration, proxy);
if (shutdownHook == null) {
- process.start(new Runnable() {
+ process.start(context,new Runnable() {
@Override
public void run() {
proxy.shutdown();
}
});
} else {
- process.start(shutdownHook);
+ process.start(context,shutdownHook);
}
return process;
}
diff --git a/src/main/java/org/qpython/qsl4a/qsl4a/ScriptStorageAdapter.java b/src/main/java/org/qpython/qsl4a/qsl4a/ScriptStorageAdapter.java
index b9919a4..527a20f 100644
--- a/src/main/java/org/qpython/qsl4a/qsl4a/ScriptStorageAdapter.java
+++ b/src/main/java/org/qpython/qsl4a/qsl4a/ScriptStorageAdapter.java
@@ -16,6 +16,10 @@
package org.qpython.qsl4a.qsl4a;
+import android.content.Context;
+
+import com.quseit.util.FileUtils;
+
import org.qpython.qsl4a.qsl4a.interpreter.Interpreter;
import org.qpython.qsl4a.qsl4a.interpreter.InterpreterConfiguration;
import org.qpython.qsl4a.qsl4a.interpreter.InterpreterConstants;
@@ -46,9 +50,9 @@ public class ScriptStorageAdapter {
/**
* Writes data to the script by name and overwrites any existing data.
*/
- public static void writeScript(File script, String data) {
+ public static void writeScript(Context context, File script, String data) {
if (script.getParent() == null) {
- script = new File(InterpreterConstants.SCRIPTS_ROOT, script.getPath());
+ script = new File(FileUtils.getScriptsRootPath(context), script.getPath());
}
try {
FileWriter stream = new FileWriter(script, false /* overwrite */);
@@ -63,9 +67,9 @@ public class ScriptStorageAdapter {
/**
* Returns a list of all available script {@link File}s.
*/
- public static List listAllScripts(File dir) {
+ public static List listAllScripts(Context context,File dir) {
if (dir == null) {
- dir = new File(InterpreterConstants.SCRIPTS_ROOT);
+ dir = new File(FileUtils.getScriptsRootPath(context));
}
if (dir.exists()) {
List scripts = Arrays.asList(dir.listFiles());
@@ -89,10 +93,10 @@ public class ScriptStorageAdapter {
* Returns a list of script {@link File}s from the given folder for which there is an interpreter
* installed.
*/
- public static List listExecutableScripts(File directory, InterpreterConfiguration config) {
+ public static List listExecutableScripts(Context context,File directory, InterpreterConfiguration config) {
// NOTE(damonkohler): Creating a LinkedList here is necessary in order to be able to filter it
// later.
- List scripts = new LinkedList(listAllScripts(directory));
+ List scripts = new LinkedList<>(listAllScripts(context,directory));
// Filter out any files that don't have interpreters installed.
for (Iterator it = scripts.iterator(); it.hasNext();) {
File script = it.next();
@@ -111,18 +115,18 @@ public class ScriptStorageAdapter {
* Returns a list of all (including subfolders) script {@link File}s for which there is an
* interpreter installed.
*/
- public static List listExecutableScriptsRecursively(File directory,
+ public static List listExecutableScriptsRecursively(Context context,File directory,
InterpreterConfiguration config) {
// NOTE(damonkohler): Creating a LinkedList here is necessary in order to be able to filter it
// later.
List scripts = new LinkedList();
- List files = listAllScripts(directory);
+ List files = listAllScripts(context,directory);
// Filter out any files that don't have interpreters installed.
for (Iterator it = files.iterator(); it.hasNext();) {
File file = it.next();
if (file.isDirectory()) {
- scripts.addAll(listExecutableScriptsRecursively(file, config));
+ scripts.addAll(listExecutableScriptsRecursively(context,file, config));
}
Interpreter interpreter = config.getInterpreterForScript(file.getName());
if (interpreter != null && interpreter.isInstalled()) {
diff --git a/src/main/java/org/qpython/qsl4a/qsl4a/facade/AndroidFacade.java b/src/main/java/org/qpython/qsl4a/qsl4a/facade/AndroidFacade.java
index 571039d..c574cb6 100644
--- a/src/main/java/org/qpython/qsl4a/qsl4a/facade/AndroidFacade.java
+++ b/src/main/java/org/qpython/qsl4a/qsl4a/facade/AndroidFacade.java
@@ -526,6 +526,7 @@ public class AndroidFacade extends RpcReceiver {
@Rpc(description = "Displays a short-duration Toast notification.")
public void makeToast(@RpcParameter(name = "message") final String message) {
mHandler.post(new Runnable() {
+ @Override
public void run() {
Toast.makeText(mService, message, Toast.LENGTH_SHORT).show();
}
@@ -726,7 +727,7 @@ public class AndroidFacade extends RpcReceiver {
zone.put("offset", tz.getOffset((new Date()).getTime()));
result.put("TZ", zone);
result.put("SDK", android.os.Build.VERSION.SDK);
- result.put("download", FileUtils.getExternalDownload().getAbsolutePath());
+ result.put("download", FileUtils.getExternalDownload(mService.getApplicationContext()).getAbsolutePath());
result.put("appcache", mService.getCacheDir().getAbsolutePath());
try {
StatFs fs = new StatFs("/sdcard");
diff --git a/src/main/java/org/qpython/qsl4a/qsl4a/facade/QPyInterfaceFacade.java b/src/main/java/org/qpython/qsl4a/qsl4a/facade/QPyInterfaceFacade.java
index 87bc88c..774b692 100644
--- a/src/main/java/org/qpython/qsl4a/qsl4a/facade/QPyInterfaceFacade.java
+++ b/src/main/java/org/qpython/qsl4a/qsl4a/facade/QPyInterfaceFacade.java
@@ -1,6 +1,7 @@
package org.qpython.qsl4a.qsl4a.facade;
import android.app.Service;
+import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.os.Environment;
@@ -118,7 +119,7 @@ public class QPyInterfaceFacade extends RpcReceiver {
}
@Rpc(description = "Get last QPython execute log", returns = "LogUtil string")
- public String getLastLog(@RpcParameter(name = "QPython script path") @RpcOptional String path) {
+ public String getLastLog(@RpcParameter(name = "QPython script path") @RpcOptional String path, Context context) {
String content;
content = FileUtils.getFileContents(path, 64);
boolean isQApp = content.contains("#qpy:qpyapp");
@@ -142,7 +143,8 @@ public class QPyInterfaceFacade extends RpcReceiver {
} else if (isWeb || isQApp) {
//File script = new File(path);
- String log = Environment.getExternalStorageDirectory()+ "/qpython/log/last.log";
+// String log = Environment.getExternalStorageDirectory()+ "/qpython/log/last.log";
+ String log = com.quseit.util.FileUtils.getQyPath(context) + "/qpython/log/last.log";
File lf = new File(log);
if (lf.exists()) {
return "# QPython:getLastLog(ok)\n"
@@ -164,4 +166,4 @@ public class QPyInterfaceFacade extends RpcReceiver {
}
-}
+}
\ No newline at end of file
diff --git a/src/main/java/org/qpython/qsl4a/qsl4a/interpreter/InterpreterConstants.java b/src/main/java/org/qpython/qsl4a/qsl4a/interpreter/InterpreterConstants.java
index 27b0aad..ebeb4c1 100644
--- a/src/main/java/org/qpython/qsl4a/qsl4a/interpreter/InterpreterConstants.java
+++ b/src/main/java/org/qpython/qsl4a/qsl4a/interpreter/InterpreterConstants.java
@@ -18,6 +18,8 @@ package org.qpython.qsl4a.qsl4a.interpreter;
import android.os.Environment;
+import com.quseit.util.FileUtils;
+
/**
* A collection of constants required for installation/removal of an interpreter.
*
@@ -26,16 +28,15 @@ import android.os.Environment;
*/
public interface InterpreterConstants {
- public static final String SDCARD_ROOT =
- Environment.getExternalStorageDirectory().getAbsolutePath() + "/";
+// public static final String SDCARD_ROOT = Environment.getExternalStorageDirectory().getAbsolutePath() + "/";
- public static final String SDCARD_SL4A_ROOT = SDCARD_ROOT + "sl4a/";
+// public static final String SDCARD_SL4A_ROOT = SDCARD_ROOT + "sl4a/";
- public static final String SCRIPTS_ROOT = SDCARD_SL4A_ROOT + "scripts/";
+// public static final String SCRIPTS_ROOT = SDCARD_SL4A_ROOT + "scripts/";
- public static final String SDCARD_SL4A_DOC = SDCARD_SL4A_ROOT + "doc/";
+// public static final String SDCARD_SL4A_DOC = SDCARD_SL4A_ROOT + "doc/";
- public static final String SL4A_DALVIK_CACHE_ROOT = "/dalvik-cache/";
+// public static final String SL4A_DALVIK_CACHE_ROOT = "/dalvik-cache/";
public static final String INTERPRETER_EXTRAS_ROOT = "/extras/";
diff --git a/src/main/java/org/qpython/qsl4a/qsl4a/interpreter/InterpreterProcess.java b/src/main/java/org/qpython/qsl4a/qsl4a/interpreter/InterpreterProcess.java
index 4a00b5c..fa563d8 100644
--- a/src/main/java/org/qpython/qsl4a/qsl4a/interpreter/InterpreterProcess.java
+++ b/src/main/java/org/qpython/qsl4a/qsl4a/interpreter/InterpreterProcess.java
@@ -16,8 +16,11 @@
package org.qpython.qsl4a.qsl4a.interpreter;
+import android.content.Context;
+
import org.qpython.qsl4a.qsl4a.Analytics;
import org.qpython.qsl4a.qsl4a.AndroidProxy;
+import org.qpython.qsl4a.qsl4a.FileUtils;
import org.qpython.qsl4a.qsl4a.LogUtil;
import org.qpython.qsl4a.qsl4a.Process;
import org.qpython.qsl4a.qsl4a.SimpleServer;
@@ -103,13 +106,13 @@ public class InterpreterProcess extends Process {
}
@Override
- public void start(final Runnable shutdownHook) {
+ public void start(Context context, final Runnable shutdownHook) {
Analytics.track(mInterpreter.getName());
// NOTE(damonkohler): String.isEmpty() doesn't work on Cupcake.
if (!mCommand.equals("")) {
addArgument(mCommand);
}
- super.start(shutdownHook);
+ super.start(context,shutdownHook);
}
@Override
@@ -119,7 +122,7 @@ public class InterpreterProcess extends Process {
}
@Override
- public String getWorkingDirectory() {
- return InterpreterConstants.SDCARD_SL4A_ROOT;
+ public String getWorkingDirectory(Context context) {
+ return FileUtils.getScriptsRootPath(context);
}
-}
+}
\ No newline at end of file
diff --git a/src/main/java/org/qpython/qsl4a/qsl4a/interpreter/html/HtmlActivityTask.java b/src/main/java/org/qpython/qsl4a/qsl4a/interpreter/html/HtmlActivityTask.java
index b08b9f1..15bfaf7 100644
--- a/src/main/java/org/qpython/qsl4a/qsl4a/interpreter/html/HtmlActivityTask.java
+++ b/src/main/java/org/qpython/qsl4a/qsl4a/interpreter/html/HtmlActivityTask.java
@@ -18,6 +18,7 @@ package org.qpython.qsl4a.qsl4a.interpreter.html;
import android.annotation.SuppressLint;
import android.app.Activity;
+import android.content.Context;
import android.content.res.Resources;
import android.graphics.Bitmap;
import android.graphics.drawable.BitmapDrawable;
@@ -74,7 +75,7 @@ public class HtmlActivityTask extends FutureActivityTask {
+ "return this._call(\"%1$s\", Array.prototype.slice.call(arguments)); };";
private static final String PREFIX = "file://";
- private static final String BASE_URL = PREFIX + InterpreterConstants.SCRIPTS_ROOT;
+// private static final String BASE_URL = PREFIX + InterpreterConstants.SCRIPTS_ROOT;
private final RpcReceiverManager mReceiverManager;
private final String mJsonSource;
@@ -139,7 +140,7 @@ public class HtmlActivityTask extends FutureActivityTask {
source = source.replace("{{QPYBUILTIN}}","" + ""
+ "");
- mView.loadDataWithBaseURL(BASE_URL, source, "text/html", "utf-8", null);
+ mView.loadDataWithBaseURL(getBaseUrl(mView.getContext().getApplicationContext()), source, "text/html", "utf-8", null);
Log.d("MyWebViewClient", source);
@@ -150,6 +151,10 @@ public class HtmlActivityTask extends FutureActivityTask {
}
}
+ private String getBaseUrl(Context context){
+ return PREFIX + com.quseit.util.FileUtils.getScriptsRootPath(context);
+ }
+
@SuppressLint({"SetJavaScriptEnabled", "JavascriptInterface"})
@Override
public void onCreate() {
@@ -196,7 +201,7 @@ public class HtmlActivityTask extends FutureActivityTask {
+ "");
//Log.d(TAG, "source:"+source);
- mView.loadDataWithBaseURL(BASE_URL, source, "text/html", "utf-8", null);
+ mView.loadDataWithBaseURL(getBaseUrl(mView.getContext().getApplicationContext()), source, "text/html", "utf-8", null);
} else {
mView.loadUrl(mUrl);
}
--
Gitee
From 166d72af4a90cd904ca3fa981c70061f19452b0c Mon Sep 17 00:00:00 2001
From: jianxiang
Date: Wed, 29 Dec 2021 15:20:24 +0800
Subject: [PATCH 4/4] =?UTF-8?q?update:=E4=BF=AE=E6=94=B9=E5=90=8C=E6=84=8F?=
=?UTF-8?q?=E6=9C=8D=E5=8A=A1=E5=8D=8F=E8=AE=AE=E4=BA=A4=E4=BA=92?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
src/main/java/org/qpython/qsl4a/QSL4APP.java | 5 ++---
1 file changed, 2 insertions(+), 3 deletions(-)
diff --git a/src/main/java/org/qpython/qsl4a/QSL4APP.java b/src/main/java/org/qpython/qsl4a/QSL4APP.java
index 2063e4a..49298b4 100644
--- a/src/main/java/org/qpython/qsl4a/QSL4APP.java
+++ b/src/main/java/org/qpython/qsl4a/QSL4APP.java
@@ -42,13 +42,12 @@ public class QSL4APP extends MyApp implements InterpreterConfiguration.Configura
@Override
public void onCreate() {
super.onCreate();
+ }
+ public void initConfiguration() {
mConfiguration = new InterpreterConfiguration(this);
mConfiguration.registerObserver(this);
mConfiguration.startDiscovering(InterpreterConstants.MIME + QSL4AScript.getFileExtension(this));
-
- //注册crashHandler类
- int xq = 30;
}
public FutureActivityTaskExecutor getTaskExecutor() {
--
Gitee