diff --git a/.idea/modules.xml b/.idea/modules.xml index 7e950955..4fac18b4 100644 --- a/.idea/modules.xml +++ b/.idea/modules.xml @@ -2,8 +2,8 @@ - + diff --git a/app/build.gradle b/app/build.gradle index 4a864549..81df4211 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -101,7 +101,8 @@ dependencies { compile 'org.apache.commons:commons-lang3:3.6' compile 'com.thoughtbot:expandablerecyclerview:1.3' compile('com.github.hyb1996:FloatingCircularActionMenu:0.0.4') - compile 'com.github.hyb1996:Auto.js-ApkBuilder:1.0.1' + compile(name: 'apkbuilder-release', ext: 'aar') + // RxJava compile "io.reactivex.rxjava2:rxjava:2.1.2" compile 'io.reactivex.rxjava2:rxandroid:2.0.1' diff --git a/app/libs/apkbuilder-release.aar b/app/libs/apkbuilder-release.aar new file mode 100644 index 00000000..d2206627 Binary files /dev/null and b/app/libs/apkbuilder-release.aar differ diff --git a/app/src/main/java/com/stardust/scriptdroid/autojs/build/AutoJsApkBuilder.java b/app/src/main/java/com/stardust/scriptdroid/autojs/build/AutoJsApkBuilder.java index e7093a82..567dca3d 100644 --- a/app/src/main/java/com/stardust/scriptdroid/autojs/build/AutoJsApkBuilder.java +++ b/app/src/main/java/com/stardust/scriptdroid/autojs/build/AutoJsApkBuilder.java @@ -1,15 +1,11 @@ package com.stardust.scriptdroid.autojs.build; import com.stardust.autojs.apkbuilder.ApkBuilder; -import com.stardust.autojs.apkbuilder.ManifestEditor; -import com.stardust.autojs.apkbuilder.util.StreamUtils; import com.stardust.scriptdroid.App; import com.stardust.scriptdroid.ui.build.BuildActivity; import java.io.File; -import java.io.FileInputStream; import java.io.FileNotFoundException; -import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; @@ -36,10 +32,8 @@ public class AutoJsApkBuilder extends ApkBuilder { String versionName; int versionCode; String jsPath; - String packageName; - public AppConfig(String packageName, String appName, String versionName, int versionCode, String jsPath) { - this.packageName = packageName; + public AppConfig(String appName, String versionName, int versionCode, String jsPath) { this.appName = appName; this.versionName = versionName; this.versionCode = versionCode; @@ -48,17 +42,13 @@ public class AutoJsApkBuilder extends ApkBuilder { } private ProgressCallback mProgressCallback; - private ManifestEditor mManifestEditor; - private String mWorkspacePath; public AutoJsApkBuilder(InputStream apkInputStream, File outApkFile, String workspacePath) { super(apkInputStream, outApkFile, workspacePath); - mWorkspacePath = workspacePath; } public AutoJsApkBuilder(File inFile, File outFile, String workspacePath) throws FileNotFoundException { super(inFile, outFile, workspacePath); - mWorkspacePath = workspacePath; } public AutoJsApkBuilder setProgressCallback(ProgressCallback callback) { @@ -79,18 +69,11 @@ public class AutoJsApkBuilder extends ApkBuilder { return this; } - @Override - public ApkBuilder replaceFile(String relativePath, String newFilePath) throws IOException { - StreamUtils.write(new FileInputStream(newFilePath), new FileOutputStream(new File(this.mWorkspacePath, relativePath))); - return this; - } - public AutoJsApkBuilder withConfig(AppConfig config) throws IOException { - mManifestEditor = editManifest().setAppName(config.appName) + editManifest().setAppName(config.appName) .setVersionName(config.versionName) .setVersionCode(config.versionCode) - .setPackageName(config.packageName); - setArscPackageName(config.packageName); + .commit(); setScriptFile(config.jsPath); return this; } @@ -100,8 +83,6 @@ public class AutoJsApkBuilder extends ApkBuilder { if (mProgressCallback != null) { App.getApp().getUiHandler().post(() -> mProgressCallback.onBuild(AutoJsApkBuilder.this)); } - mManifestEditor.commit(); - mManifestEditor = null; return (AutoJsApkBuilder) super.build(); } 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 9c1fee5c..ffedab0a 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 @@ -1,17 +1,17 @@ package com.stardust.scriptdroid.ui.build; import android.content.Intent; -import android.support.design.widget.TextInputEditText; -import android.support.design.widget.TextInputLayout; -import android.text.TextUtils; +import android.support.annotation.NonNull; import android.util.Log; import android.widget.EditText; import android.widget.Toast; +import com.afollestad.materialdialogs.DialogAction; import com.afollestad.materialdialogs.MaterialDialog; import com.stardust.scriptdroid.R; import com.stardust.scriptdroid.autojs.build.AutoJsApkBuilder; import com.stardust.scriptdroid.build.ApkBuilderPluginHelper; +import com.stardust.scriptdroid.network.download.DownloadManager; import com.stardust.scriptdroid.storage.file.StorageFileProvider; import com.stardust.scriptdroid.model.script.ScriptFile; import com.stardust.scriptdroid.ui.BaseActivity; @@ -42,22 +42,22 @@ public class BuildActivity extends BaseActivity implements AutoJsApkBuilder.Prog private static final String LOG_TAG = "BuildActivity"; @ViewById(R.id.source_path) - TextInputEditText mSourcePath; + EditText mSourcePath; @ViewById(R.id.output_path) - TextInputEditText mOutputPath; + EditText mOutputPath; @ViewById(R.id.app_name) - TextInputEditText mAppName; + EditText mAppName; @ViewById(R.id.package_name) - TextInputEditText mPackageName; + EditText mPackageName; @ViewById(R.id.version_name) - TextInputEditText mVersionName; + EditText mVersionName; @ViewById(R.id.version_code) - TextInputEditText mVersionCode; + EditText mVersionCode; private MaterialDialog mProgressDialog; @AfterViews @@ -68,6 +68,7 @@ public class BuildActivity extends BaseActivity implements AutoJsApkBuilder.Prog setupWithSourceFile(new ScriptFile(sourcePath)); } showPluginDownloadDialogIfNeeded(); + } private void showPluginDownloadDialogIfNeeded() { @@ -92,7 +93,6 @@ public class BuildActivity extends BaseActivity implements AutoJsApkBuilder.Prog mSourcePath.setText(file.getPath()); mOutputPath.setText(file.getParent()); mAppName.setText(file.getSimplifiedName()); - mPackageName.setText(getString(R.string.format_default_package_name, System.currentTimeMillis())); } @Override @@ -131,39 +131,14 @@ public class BuildActivity extends BaseActivity implements AutoJsApkBuilder.Prog Toast.makeText(this, R.string.text_apk_builder_plugin_unavailable, Toast.LENGTH_SHORT).show(); return; } - if (!checkInputs()) { - return; - } doBuildingApk(); } - private boolean checkInputs() { - boolean inputValid = true; - inputValid &= checkNotEmpty(mSourcePath); - inputValid &= checkNotEmpty(mOutputPath); - inputValid &= checkNotEmpty(mAppName); - inputValid &= checkNotEmpty(mSourcePath); - inputValid &= checkNotEmpty(mVersionCode); - inputValid &= checkNotEmpty(mVersionName); - inputValid &= checkNotEmpty(mPackageName); - return inputValid; - } - - private boolean checkNotEmpty(TextInputEditText editText) { - if (!TextUtils.isEmpty(editText.getText())) - return true; - // TODO: 2017/12/8 more beautiful ways? - String hint = ((TextInputLayout) editText.getParent().getParent()).getHint().toString(); - editText.setError(hint + getString(R.string.text_should_not_be_empty)); - return false; - } - private void doBuildingApk() { String jsPath = mSourcePath.getText().toString(); String versionName = mVersionName.getText().toString(); int versionCode = Integer.parseInt(mVersionCode.getText().toString()); String appName = mAppName.getText().toString(); - String packageName = mPackageName.getText().toString(); File tmpDir = new File(getCacheDir(), "build/"); File outApk = new File(mOutputPath.getText().toString(), String.format("%s_v%s.apk", appName, versionName)); @@ -173,7 +148,7 @@ public class BuildActivity extends BaseActivity implements AutoJsApkBuilder.Prog return new AutoJsApkBuilder(templateApk, outApk, tmpDir.getPath()) .setProgressCallback(BuildActivity.this) .prepare() - .withConfig(new AutoJsApkBuilder.AppConfig(packageName, appName, versionName, versionCode, jsPath)) + .withConfig(new AutoJsApkBuilder.AppConfig(appName, versionName, versionCode, jsPath)) .build() .sign() .cleanWorkspace(); diff --git a/app/src/main/res/layout/activity_build.xml b/app/src/main/res/layout/activity_build.xml index f9a549d1..7be994c9 100644 --- a/app/src/main/res/layout/activity_build.xml +++ b/app/src/main/res/layout/activity_build.xml @@ -158,7 +158,6 @@ android:id="@+id/package_name" android:layout_width="match_parent" android:layout_height="wrap_content" - android:digits="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890_." android:hint="@string/text_package_name"/> diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index d7de4d51..4834a95f 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -328,6 +328,4 @@ 打开 生成结果 复制 - com.example.script%d - 不能为空