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] 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();