Merge pull request #349 from hyb1996/dev

4.0.1Beta
This commit is contained in:
Stardust 2018-07-09 16:29:27 +08:00 committed by GitHub
commit d0a07f92d0
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
22 changed files with 121 additions and 79 deletions

View File

@ -2,14 +2,14 @@ apply plugin: 'com.android.application'
def AAVersion = '4.3.1'
android {
compileSdkVersion 25
buildToolsVersion '26.0.2'
compileSdkVersion 27
buildToolsVersion '27.0.3'
defaultConfig {
applicationId "org.autojs.autojs"
minSdkVersion 17
targetSdkVersion 23
versionCode 403
versionName "4.0.0 Beta"
versionCode 404
versionName "4.0.1 Beta"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
multiDexEnabled true
ndk {

View File

@ -17,11 +17,11 @@ import java.util.concurrent.TimeUnit;
public class Pref {
private static final SharedPreferences DISPOSABLE_BOOLEAN = GlobalAppContext.get().getSharedPreferences("DISPOSABLE_BOOLEAN", Context.MODE_PRIVATE);
private static final String KEY_SERVER_ADDRESS = "Still love you...17.5.14";
private static final String KEY_SHOULD_SHOW_ANNUNCIATION = "Sing about all the things you forgot, things you are not";
private static final String KEY_FIRST_SHOW_AD = "En, Today is 17.7.7, but, I'm still love you so....";
private static final String KEY_LAST_SHOW_AD_MILLIS = "But... it seems that...you will not come back any more...";
private static final String KEY_FLOATING_MENU_SHOWN = "17.10.28 I have idea of what you think...maybe...I'm overthinking...";
private static final String KEY_SERVER_ADDRESS = "KEY_SERVER_ADDRESS";
private static final String KEY_SHOULD_SHOW_ANNUNCIATION = "KEY_SHOULD_SHOW_ANNUNCIATION";
private static final String KEY_FIRST_SHOW_AD = "KEY_FIRST_SHOW_AD";
private static final String KEY_LAST_SHOW_AD_MILLIS = "KEY_LAST_SHOW_AD_MILLIS";
private static final String KEY_FLOATING_MENU_SHOWN = "KEY_FLOATING_MENU_SHOWN";
private static final String KEY_EDITOR_THEME = "editor.theme";
private static final String KEY_EDITOR_TEXT_SIZE = "editor.textSize";
@ -54,7 +54,7 @@ public class Pref {
}
public static boolean isFirstGoToAccessibilitySetting() {
return getDisposableBoolean("I miss you so much ...", true);
return getDisposableBoolean("isFirstGoToAccessibilitySetting", true);
}
public static int oldVersion() {
@ -82,7 +82,7 @@ public class Pref {
}
public static boolean isEditActivityFirstUsing() {
return getDisposableBoolean("Still Love Eating 17.4.6", true);
return getDisposableBoolean("Love Honmua 18.7.9", true);
}
public static String getServerAddressOrDefault(String defaultAddress) {
@ -98,6 +98,9 @@ public class Pref {
}
public static boolean shouldShowAd() {
if(isFirstDay()){
return false;
}
String adShowingMode = def().getString(getString(R.string.key_ad_showing_mode), "Default");
switch (adShowingMode) {
case "Default":
@ -113,6 +116,15 @@ public class Pref {
return true;
}
private static boolean isFirstDay() {
long firstUsingMillis = def().getLong("firstUsingMillis", -1);
if(firstUsingMillis == -1){
def().edit().putLong("firstUsingMillis", System.currentTimeMillis()).apply();
return true;
}
return System.currentTimeMillis() - firstUsingMillis <= TimeUnit.DAYS.toMillis(1);
}
public static boolean isFirstShowingAd() {
return getDisposableBoolean(KEY_FIRST_SHOW_AD, true);
}

View File

@ -1,21 +1,31 @@
package org.autojs.autojs.external.shortcut;
import android.app.PendingIntent;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.content.pm.ShortcutInfo;
import android.graphics.drawable.Icon;
import android.os.Build;
import android.support.annotation.Nullable;
import android.support.annotation.RequiresApi;
import java.util.Collections;
import java.util.List;
import io.reactivex.Observable;
import io.reactivex.subjects.PublishSubject;
import io.reactivex.subjects.Subject;
/**
* Created by Stardust on 2017/10/25.
*/
@RequiresApi(api = Build.VERSION_CODES.N_MR1)
public class ShortcutManager {
private static ShortcutManager sInstance;
private Context mContext;
private android.content.pm.ShortcutManager mShortcutManager;
@ -33,14 +43,35 @@ public class ShortcutManager {
return sInstance;
}
@RequiresApi(api = Build.VERSION_CODES.N_MR1)
public void addDynamicShortcut(CharSequence label, String id, Icon icon, Intent intent) {
ShortcutInfo shortcut = new ShortcutInfo.Builder(mContext, id)
@RequiresApi(api = Build.VERSION_CODES.O)
public void addPinnedShortcut(CharSequence label, String id, Icon icon, Intent intent) {
if (!mShortcutManager.isRequestPinShortcutSupported()) {
return;
}
ShortcutInfo shortcut = buildShortcutInfo(label, id, icon, intent);
int req = getRequestCode(id);
PendingIntent successCallback = PendingIntent.getBroadcast(mContext, req,
mShortcutManager.createShortcutResultIntent(shortcut), 0);
mShortcutManager.requestPinShortcut(shortcut, successCallback.getIntentSender());
}
private ShortcutInfo buildShortcutInfo(CharSequence label, String id, Icon icon, Intent intent) {
return new ShortcutInfo.Builder(mContext, id)
.setIntent(intent)
.setShortLabel(label)
.setLongLabel(label)
.setIcon(icon)
.build();
}
private int getRequestCode(String id) {
return id.hashCode() >>> 16;
}
@RequiresApi(api = Build.VERSION_CODES.N_MR1)
public void addDynamicShortcut(CharSequence label, String id, Icon icon, Intent intent) {
ShortcutInfo shortcut = buildShortcutInfo(label, id, icon, intent);
try {
addDynamicShortcutUnchecked(shortcut);
} catch (IllegalArgumentException shortcutsExceeded) {

View File

@ -30,10 +30,10 @@ import java.io.File;
public class Scripts {
public static final String ACTION_ON_EXECUTION_FINISHED = "Don't leave me alone...";
public static final String EXTRA_EXCEPTION_MESSAGE = "Say something...Eating...17.5.3";
public static final String EXTRA_EXCEPTION_LINE_NUMBER = "Can we fall in love with each other again...17.9.28";
public static final String EXTRA_EXCEPTION_COLUMN_NUMBER = "I lost myself....";
public static final String ACTION_ON_EXECUTION_FINISHED = "ACTION_ON_EXECUTION_FINISHED";
public static final String EXTRA_EXCEPTION_MESSAGE = "message";
public static final String EXTRA_EXCEPTION_LINE_NUMBER = "lineNumber";
public static final String EXTRA_EXCEPTION_COLUMN_NUMBER = "columnNumber";
private static final ScriptExecutionListener BROADCAST_SENDER_SCRIPT_EXECUTION_LISTENER = new SimpleScriptExecutionListener() {

View File

@ -29,8 +29,8 @@ import retrofit2.converter.gson.GsonConverterFactory;
public class VersionService {
private static final String KEY_DEPRECATED = "Still loving you...Can we go back...";
private static final String KEY_DEPRECATED_VERSION_CODE = "I miss you so much tonight...Baby don't let me cry...";
private static final String KEY_DEPRECATED = "KEY_DEPRECATED";
private static final String KEY_DEPRECATED_VERSION_CODE = "KEY_DEPRECATED_VERSION_CODE";
private static VersionService sInstance = new VersionService();
private boolean mDeprecated = false;

View File

@ -15,6 +15,7 @@ import org.autojs.autojs.autojs.AutoJs;
import org.autojs.autojs.model.script.Scripts;
import org.autojs.autojs.storage.file.StorageFileProvider;
import java.io.File;
import java.util.HashMap;
/**
@ -98,7 +99,7 @@ public class DevPluginResponseHandler implements Handler {
if (!name.endsWith(".js")) {
name = name + ".js";
}
PFiles.write(StorageFileProvider.getDefaultDirectoryPath() + name, script);
PFiles.write(new File(StorageFileProvider.getDefaultDirectoryPath(), name), script);
GlobalAppContext.toast(R.string.text_script_save_successfully);
}
}

View File

@ -22,7 +22,7 @@ public class ImageSelector implements OnActivityResultDelegate {
private static final String TAG = ImageSelector.class.getSimpleName();
private static final int REQUEST_CODE = "LOVE EATING".hashCode() >> 16;
private static final int REQUEST_CODE = "LOVE HONMUA".hashCode() >> 16;
private Activity mActivity;
private ImageSelectorCallback mCallback;
private boolean mDisposable;

View File

@ -1,5 +1,6 @@
package org.autojs.autojs.ui.common;
import android.annotation.SuppressLint;
import android.content.Context;
import android.content.Intent;
import android.os.Environment;
@ -222,6 +223,7 @@ public class ScriptOperations {
.putExtra(ShortcutCreateActivity.EXTRA_FILE, file));
}
@SuppressLint("CheckResult")
public void delete(final ScriptFile scriptFile) {
Observable.fromPublisher(new Publisher<Boolean>() {
@Override

View File

@ -35,6 +35,7 @@ public class DocsFragment extends ViewPagerFragment implements BackPressedHandle
EWebView mEWebView;
WebView mWebView;
private String mIndexUrl;
private String mPreviousQuery;
@ -52,14 +53,11 @@ public class DocsFragment extends ViewPagerFragment implements BackPressedHandle
@AfterViews
void setUpViews() {
mWebView = mEWebView.getWebView();
mEWebView.getSwipeRefreshLayout().setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {
@Override
public void onRefresh() {
if (TextUtils.equals(mWebView.getUrl(), mWebView.getOriginalUrl())) {
loadUrl();
} else {
mEWebView.onRefresh();
}
mEWebView.getSwipeRefreshLayout().setOnRefreshListener(() -> {
if (TextUtils.equals(mWebView.getUrl(), mIndexUrl)) {
loadUrl();
} else {
mEWebView.onRefresh();
}
});
Bundle savedWebViewState = getArguments().getBundle("savedWebViewState");
@ -71,8 +69,8 @@ public class DocsFragment extends ViewPagerFragment implements BackPressedHandle
}
private void loadUrl() {
String url = Pref.getDocumentationUrl() + "index.html";
mWebView.loadUrl(getArguments().getString(ARGUMENT_URL, url));
mIndexUrl = getArguments().getString(ARGUMENT_URL, Pref.getDocumentationUrl() + "index.html");
mWebView.loadUrl(mIndexUrl);
}

View File

@ -64,12 +64,12 @@ import static org.autojs.autojs.model.script.Scripts.ACTION_ON_EXECUTION_FINISHE
@EViewGroup(R.layout.editor_view)
public class EditorView extends FrameLayout implements CodeCompletionBar.OnHintClickListener, FunctionsKeyboardView.ClickCallback {
public static final String EXTRA_PATH = "Still Love Eating 17.4.5";
public static final String EXTRA_NAME = "Still love you 17.6.29 But....(ಥ_ಥ)";
public static final String EXTRA_CONTENT = "It's hard...............";
public static final String EXTRA_READ_ONLY = "Miss you more every day、、、";
public static final String EXTRA_SAVE_ENABLED = "But you won't...but you won't...";
public static final String EXTRA_RUN_ENABLED = "Love you with my life...really...17.9.28";
public static final String EXTRA_PATH = "path";
public static final String EXTRA_NAME = "name";
public static final String EXTRA_CONTENT = "content";
public static final String EXTRA_READ_ONLY = "readOnly";
public static final String EXTRA_SAVE_ENABLED = "saveEnabled";
public static final String EXTRA_RUN_ENABLED = "runEnabled";
@ViewById(R.id.editor)
CodeEditor mEditor;

View File

@ -32,7 +32,7 @@ public class ErrorReportActivity extends BaseActivity {
private static final String TAG = "ErrorReportActivity";
private static final SparseIntArray CRASH_COUNT = new SparseIntArray();
private static final String KEY_CRASH_COUNT = "Eating... you are my halo...";
private static final String KEY_CRASH_COUNT = "crashCount";
static {
CRASH_COUNT.put(2, R.string.text_again);

View File

@ -1,5 +1,6 @@
package org.autojs.autojs.ui.shortcut;
import android.annotation.SuppressLint;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.graphics.Bitmap;
@ -86,9 +87,11 @@ public class ShortcutCreateActivity extends AppCompatActivity {
}
@SuppressLint("NewApi") //for fool android studio
private void createShortcut() {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N_MR1 && mUseAndroidNShortcut.isChecked()) {
createShortcutForAndroidN();
if ((Build.VERSION.SDK_INT >= Build.VERSION_CODES.N_MR1 && mUseAndroidNShortcut.isChecked())
|| Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
createShortcutByShortcutManager();
return;
}
Shortcut shortcut = new Shortcut(this);
@ -105,22 +108,29 @@ public class ShortcutCreateActivity extends AppCompatActivity {
}
@RequiresApi(api = Build.VERSION_CODES.N_MR1)
private void createShortcutForAndroidN() {
private void createShortcutByShortcutManager() {
Icon icon;
if (mIsDefaultIcon) {
icon = Icon.createWithResource(this, R.drawable.ic_node_js_black);
icon = Icon.createWithResource(this, R.drawable.ic_file_type_js);
} else {
Bitmap bitmap = BitmapTool.drawableToBitmap(mIcon.getDrawable());
icon = Icon.createWithBitmap(bitmap);
}
PersistableBundle extras = new PersistableBundle(1);
extras.putString(ScriptIntents.EXTRA_KEY_PATH, mScriptFile.getPath());
ShortcutManager.getInstance(this).addDynamicShortcut(mName.getText(), mScriptFile.getPath(), icon,
new Intent(this, ShortcutActivity.class)
.putExtra(ScriptIntents.EXTRA_KEY_PATH, mScriptFile.getPath())
.setAction(Intent.ACTION_MAIN));
Intent intent = new Intent(this, ShortcutActivity.class)
.putExtra(ScriptIntents.EXTRA_KEY_PATH, mScriptFile.getPath())
.setAction(Intent.ACTION_MAIN);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
ShortcutManager.getInstance(this).addPinnedShortcut(mName.getText(), mScriptFile.getPath(), icon, intent);
} else {
ShortcutManager.getInstance(this).addDynamicShortcut(mName.getText(), mScriptFile.getPath(), icon, intent);
}
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (resultCode != RESULT_OK) {

View File

@ -35,8 +35,8 @@ import org.androidannotations.annotations.ViewById;
@EActivity(R.layout.activity_splash)
public class SplashActivity extends BaseActivity {
public static final String NOT_START_MAIN_ACTIVITY = "Eating...I...really...love...you...";
public static final String FORCE_SHOW_AD = "I will be better but can you take just a glance at me...";
public static final String NOT_START_MAIN_ACTIVITY = "notStartMainActivity";
public static final String FORCE_SHOW_AD = "forceShowAd";
private static final String LOG_TAG = SplashActivity.class.getSimpleName();

View File

@ -2,12 +2,12 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="128dp"
android:height="128dp"
android:viewportWidth="128"
android:viewportHeight="128">
android:viewportHeight="128"
android:viewportWidth="128">
<path
android:fillColor="#46483E"
android:pathData="M64,14c-27.6,0-50,22.4-50,50s22.4,50,50,50s50-22.4,50-50S91.6,14,64,14z" />
android:pathData="M64,14c-27.6,0-50,22.4-50,50s22.4,50,50,50s50-22.4,50-50S91.6,14,64,14z"/>
<path
android:fillColor="#81CF08"
android:pathData="M64,95.9c-0.9,0-1.7-0.2-2.5-0.7l-7.8-4.6c-1.2-0.7-0.6-0.9-0.2-1c1.6-0.6,1.9-0.7,3.5-1.6
@ -15,11 +15,11 @@ c0.2-0.1,0.4-0.1,0.6,0.1l6,3.6c0.2,0.1,0.5,0.1,0.7,0l23.4-13.5c0.2-0.1,0.4-0.4,0
c-0.2-0.1-0.5-0.1-0.7,0L40.3,49.8c-0.2,0.1-0.4,0.4-0.4,0.6v27c0,0.2,0.1,0.5,0.4,0.6l6.4,3.7c3.5,1.7,5.6-0.3,5.6-2.4V52.8
c0-0.4,0.3-0.7,0.7-0.7h3c0.4,0,0.7,0.3,0.7,0.7v26.6c0,4.7-2.5,7.3-6.9,7.3c-1.4,0-2.4,0-5.4-1.5l-6.1-3.5
c-1.5-0.9-2.5-2.5-2.5-4.3v-27c0-1.7,0.9-3.4,2.5-4.3l23.4-13.5c1.5-0.8,3.5-0.8,4.9,0l23.4,13.5c1.5,0.9,2.5,2.5,2.5,4.3v27
c0,1.7-0.9,3.4-2.5,4.3L66.5,95.3C65.7,95.7,64.9,95.9,64,95.9z" />
c0,1.7-0.9,3.4-2.5,4.3L66.5,95.3C65.7,95.7,64.9,95.9,64,95.9z"/>
<path
android:fillColor="#81CF08"
android:pathData="M71.3,77.3c-10.2,0-12.4-4.7-12.4-8.6c0-0.4,0.3-0.7,0.7-0.7h3c0.3,0,0.6,0.2,0.7,0.6c0.4,3.1,1.8,4.6,8,4.6
c4.9,0,7-1.1,7-3.7c0-1.5-0.6-2.6-8.3-3.4c-6.4-0.6-10.4-2-10.4-7.2c0-4.7,4-7.5,10.7-7.5c7.5,0,11.2,2.6,11.7,8.2
c0,0.2-0.1,0.4-0.2,0.5c-0.1,0.1-0.3,0.2-0.5,0.2h-3c-0.3,0-0.6-0.2-0.7-0.5c-0.7-3.2-2.5-4.3-7.3-4.3c-5.4,0-6,1.9-6,3.3
c0,1.7,0.7,2.2,8,3.2c7.2,0.9,10.6,2.3,10.6,7.3C82.9,74.4,78.7,77.3,71.3,77.3z" />
c0,1.7,0.7,2.2,8,3.2c7.2,0.9,10.6,2.3,10.6,7.3C82.9,74.4,78.7,77.3,71.3,77.3z"/>
</vector>

View File

@ -1,8 +1,8 @@
apply plugin: 'com.android.library'
android {
compileSdkVersion 25
buildToolsVersion '26.0.2'
compileSdkVersion 27
buildToolsVersion '27.0.3'
defaultConfig {
minSdkVersion 17

View File

@ -224,9 +224,9 @@ public class ScriptEngineService {
private static class ScriptExecutionEvent {
static final int ON_START = "Eating...".hashCode();
static final int ON_SUCCESS = "I...lov...".hashCode();
static final int ON_EXCEPTION = "...Sorry...I should not have said it...".hashCode();
static final int ON_START = 1001;
static final int ON_SUCCESS = 1002;
static final int ON_EXCEPTION = 1003;
private final int mCode;
private final String mMessage;

View File

@ -227,16 +227,6 @@ public class ScriptCanvas {
return mCanvas.clipPath(path);
}
@Deprecated
public boolean clipRegion(Region region, Region.Op op) {
return mCanvas.clipRegion(region, op);
}
@Deprecated
public boolean clipRegion(Region region) {
return mCanvas.clipRegion(region);
}
public DrawFilter getDrawFilter() {
return mCanvas.getDrawFilter();
}

View File

@ -50,6 +50,7 @@ public class ScriptCanvasView extends SurfaceView implements SurfaceHolder.Callb
private void init() {
mHolder.addCallback(this);
setZOrderOnTop(false);
}
@Override

View File

@ -55,7 +55,7 @@ public interface ScreenCaptureRequester {
@RequiresApi(api = Build.VERSION_CODES.LOLLIPOP)
class ActivityScreenCaptureRequester extends AbstractScreenCaptureRequester implements ScreenCaptureRequester, OnActivityResultDelegate {
private static final int REQUEST_CODE_MEDIA_PROJECTION = "Eating...Today is 17.5.20 yet...The 90 days、、、".hashCode() >> 16;
private static final int REQUEST_CODE_MEDIA_PROJECTION = 17777;
private OnActivityResultDelegate.Mediator mMediator;
private Activity mActivity;

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.8 KiB

View File

@ -1,15 +1,12 @@
{
"versionCode": 163,
"versionName": "2.0.16 Beta2",
"releaseNotes": "* 优化root录制录制脚本接近完美可自行录制游戏脚本\n* 提高部分脚本的运行速度\n* 新增 按键事件、通知事件监听\n*修复 一些问题",
"versionCode": 404,
"versionName": "4.0.1 Beta",
"releaseNotes": "* 全新的文档、界面\n* 更丰富的功能\n期待您的体验~",
"downloadUrl": "http://i.autojs.org/autojs/release-4.0.1Beta.apk",
"downloads" : [
{
"name": "应用宝",
"url": "http://a.app.qq.com/o/simple.jsp?pkgname=org.autojs.autojs"
},
{
"name": "百度手机助手",
"url": "http://shouji.baidu.com/software/22060055.html"
"name": "酷安",
"url": "https://www.coolapk.com/apk/188448"
}
],
"oldVersions": [