diff --git a/app/build.gradle b/app/build.gradle index 3dd718b8..c2f56685 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -10,8 +10,8 @@ android { applicationId "com.stardust.scriptdroid" minSdkVersion 17 targetSdkVersion 23 - versionCode 212 - versionName "3.0.0 Alpha13" + versionCode 213 + versionName "3.0.0 Alpha14" testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" multiDexEnabled true ndk { diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 5d805d24..e96d6fe1 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -139,6 +139,9 @@ + + + @@ -157,6 +160,9 @@ + + + @@ -176,6 +182,10 @@ + + + + diff --git a/app/src/main/java/com/stardust/scriptdroid/external/open/RunIntentActivity.java b/app/src/main/java/com/stardust/scriptdroid/external/open/RunIntentActivity.java index 4deda444..24f8dc1d 100644 --- a/app/src/main/java/com/stardust/scriptdroid/external/open/RunIntentActivity.java +++ b/app/src/main/java/com/stardust/scriptdroid/external/open/RunIntentActivity.java @@ -1,12 +1,24 @@ package com.stardust.scriptdroid.external.open; import android.app.Activity; +import android.content.Intent; +import android.net.Uri; import android.os.Bundle; import android.support.annotation.Nullable; +import android.text.TextUtils; import android.widget.Toast; +import com.stardust.autojs.script.StringScriptSource; +import com.stardust.pio.PFile; +import com.stardust.pio.PFiles; import com.stardust.scriptdroid.external.CommonUtils; import com.stardust.scriptdroid.R; +import com.stardust.scriptdroid.model.script.ScriptFile; +import com.stardust.scriptdroid.model.script.Scripts; +import com.stardust.scriptdroid.ui.common.ScriptOperations; + +import java.io.FileNotFoundException; +import java.io.InputStream; /** * Created by Stardust on 2017/2/22. @@ -18,11 +30,24 @@ public class RunIntentActivity extends Activity { protected void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); try { - CommonUtils.handleIntent(this, getIntent()); + handleIntent(getIntent()); } catch (Exception e) { e.printStackTrace(); Toast.makeText(this, R.string.edit_and_run_handle_intent_error, Toast.LENGTH_LONG).show(); } finish(); } + + private void handleIntent(Intent intent) throws FileNotFoundException { + Uri uri = intent.getData(); + if (uri != null && "content".equals(uri.getScheme())) { + InputStream stream = getContentResolver().openInputStream(uri); + Scripts.run(new StringScriptSource(PFiles.read(stream))); + } else { + final String path = intent.getData().getPath(); + if (!TextUtils.isEmpty(path)) { + Scripts.run(new ScriptFile(path)); + } + } + } } diff --git a/app/src/main/java/com/stardust/scriptdroid/ui/build/BuildActivity.java b/app/src/main/java/com/stardust/scriptdroid/ui/build/BuildActivity.java index 69cc5923..03897f37 100644 --- a/app/src/main/java/com/stardust/scriptdroid/ui/build/BuildActivity.java +++ b/app/src/main/java/com/stardust/scriptdroid/ui/build/BuildActivity.java @@ -93,7 +93,7 @@ public class BuildActivity extends BaseActivity implements AutoJsApkBuilder.Prog String initialDir = new File(mOutputPath.getText().toString()).exists() ? mOutputPath.getText().toString() : StorageFileProvider.DEFAULT_DIRECTORY_PATH; new FileChooserDialogBuilder(this) - .title(R.string.text_source_file_path) + .title(R.string.text_output_apk_path) .dir(initialDir) .chooseDir() .singleChoice(dir -> mOutputPath.setText(dir.getPath()))