diff --git a/app/build.gradle b/app/build.gradle index 6aeabc8d..d344fcdb 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -96,7 +96,7 @@ android { reset() // Specifies a list of ABIs that Gradle should create APKs for. - include "armeabi-v7a", "arm64-v8a" + include "armeabi-v7a", "arm64-v8a", "x86", "x86_64" // include "x86", "armeabi-v7a" // Specifies that we do not want to also generate a universal APK that includes all ABIs. @@ -141,7 +141,7 @@ dependencies { }) kapt 'com.jakewharton:butterknife-compiler:10.2.3' // Android supports - implementation 'androidx.appcompat:appcompat:1.2.0' + implementation 'androidx.appcompat:appcompat:1.4.0' implementation 'androidx.cardview:cardview:1.0.0' implementation 'com.google.android.material:material:1.4.0' implementation 'androidx.multidex:multidex:2.0.1' @@ -201,10 +201,10 @@ dependencies { exclude group: 'com.android.support' }) // WorkManager - implementation 'androidx.work:work-runtime:2.5.0' + implementation 'androidx.work:work-runtime:2.7.1' // Android job implementation 'com.evernote:android-job:1.4.2' - debugImplementation 'com.squareup.leakcanary:leakcanary-android:1.6.3' + debugImplementation 'com.squareup.leakcanary:leakcanary-android:2.8.1' releaseImplementation 'com.squareup.leakcanary:leakcanary-android-no-op:1.6.3' // Optional, if you use support library fragments: debugImplementation 'com.squareup.leakcanary:leakcanary-support-fragment:1.6.3' diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index ae02bd74..239957a7 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -4,13 +4,15 @@ package="org.autojs.autojs"> - + - + @@ -19,6 +21,7 @@ + @@ -26,7 +29,6 @@ + tools:replace="android:label, android:icon, android:allowBackup" + tools:targetApi="m"> + android:theme="@style/AppTheme.Splash" + android:exported="true"> @@ -57,12 +61,14 @@ android:hardwareAccelerated="true" android:label="@string/app_name" android:launchMode="singleTask" - android:theme="@style/AppTheme.FullScreen"> + android:theme="@style/AppTheme.FullScreen" + android:exported="true"> + android:theme="@android:style/Theme.NoDisplay" + android:exported="true"> @@ -86,37 +92,39 @@ android:launchMode="standard" android:multiprocess="true" android:taskAffinity="org.autojs.autojs.edit" + android:exported="false" android:theme="@style/EditorTheme"> - + - + - + - + - - - - - + android:configChanges="orientation|screenSize" android:exported="false"/> + + + + + - + android:theme="@style/AppTheme.Transparent" android:exported="false"/> + @@ -127,20 +135,21 @@ - - + + - + + android:permission="android.permission.BIND_QUICK_SETTINGS_TILE" + android:exported="true"> @@ -153,7 +162,8 @@ android:name="org.autojs.autojs.external.tile.LayoutHierarchyTile" android:icon="@drawable/ic_circular_menu_hierarchy" android:label="@string/text_inspect_layout_hierarchy" - android:permission="android.permission.BIND_QUICK_SETTINGS_TILE"> + android:permission="android.permission.BIND_QUICK_SETTINGS_TILE" + android:exported="true"> - + @@ -199,7 +210,8 @@ - + @@ -227,7 +239,8 @@ + android:label="@string/text_edit_script" + android:exported="true"> @@ -246,7 +259,8 @@ android:icon="@drawable/autojs_material" android:label="@string/text_run_script" android:taskAffinity="org.autojs.autojs.external.open.RunIntentActivity" - android:theme="@android:style/Theme.NoDisplay"> + android:theme="@android:style/Theme.NoDisplay" + android:exported="true"> @@ -264,7 +278,8 @@ android:name="org.autojs.autojs.external.open.ImportIntentActivity" android:icon="@drawable/autojs_material" android:label="@string/text_import_script" - android:theme="@style/AppTheme.Transparent"> + android:theme="@style/AppTheme.Transparent" + android:exported="true"> @@ -282,13 +297,15 @@ + android:permission="android.permission.BIND_NOTIFICATION_LISTENER_SERVICE" + android:exported="false"> - + @@ -298,13 +315,15 @@ android:resource="@xml/script_widget_config"/> - + - + diff --git a/app/src/main/java/org/autojs/autojs/App.kt b/app/src/main/java/org/autojs/autojs/App.kt index 1486503b..aad28460 100644 --- a/app/src/main/java/org/autojs/autojs/App.kt +++ b/app/src/main/java/org/autojs/autojs/App.kt @@ -13,7 +13,6 @@ import com.bumptech.glide.Glide import com.bumptech.glide.request.target.SimpleTarget import com.bumptech.glide.request.transition.Transition import com.flurry.android.FlurryAgent -import com.squareup.leakcanary.LeakCanary import com.stardust.app.GlobalAppContext import com.stardust.autojs.core.ui.inflater.ImageLoader import com.stardust.autojs.core.ui.inflater.util.Drawables @@ -67,12 +66,6 @@ class App : MultiDexApplication() { crashHandler.setBuglyHandler(Thread.getDefaultUncaughtExceptionHandler()) Thread.setDefaultUncaughtExceptionHandler(crashHandler) - if (LeakCanary.isInAnalyzerProcess(this)) { - // This process is dedicated to LeakCanary for heap analysis. - // You should not init your app in this process. - return - } - //LeakCanary.install(this); } diff --git a/autojs/src/main/AndroidManifest.xml b/autojs/src/main/AndroidManifest.xml index b5ec60b4..39906041 100644 --- a/autojs/src/main/AndroidManifest.xml +++ b/autojs/src/main/AndroidManifest.xml @@ -3,37 +3,44 @@ xmlns:tools="http://schemas.android.com/tools" package="com.stardust.autojs"> + + + - - + + + android:permission="android.permission.BIND_ACCESSIBILITY_SERVICE" + android:exported="false"> diff --git a/autojs/src/main/java/com/stardust/autojs/core/accessibility/SimpleActionAutomator.kt b/autojs/src/main/java/com/stardust/autojs/core/accessibility/SimpleActionAutomator.kt index b8d643d2..59604685 100644 --- a/autojs/src/main/java/com/stardust/autojs/core/accessibility/SimpleActionAutomator.kt +++ b/autojs/src/main/java/com/stardust/autojs/core/accessibility/SimpleActionAutomator.kt @@ -206,7 +206,7 @@ class SimpleActionAutomator( ScriptRuntime.requiresApi(24) if (!::mGlobalActionAutomator.isInitialized) { mGlobalActionAutomator = - GlobalActionAutomator(Handler(mScriptRuntime.get()?.loopers?.servantLooper)) { + GlobalActionAutomator(mScriptRuntime.get()?.loopers?.servantLooper?.let { Handler(it) }) { ensureAccessibilityServiceEnabled() return@GlobalActionAutomator mAccessibilityBridge.service!! } diff --git a/autojs/src/main/java/com/stardust/autojs/core/graphics/ScriptCanvasView.kt b/autojs/src/main/java/com/stardust/autojs/core/graphics/ScriptCanvasView.kt index 21e6d65c..cbc2a179 100644 --- a/autojs/src/main/java/com/stardust/autojs/core/graphics/ScriptCanvasView.kt +++ b/autojs/src/main/java/com/stardust/autojs/core/graphics/ScriptCanvasView.kt @@ -63,7 +63,9 @@ class ScriptCanvasView(context: Context, scriptRuntime: ScriptRuntime) : Texture canvas = lockCanvas() scriptCanvas.setCanvas(canvas) emit("draw", scriptCanvas, this@ScriptCanvasView) - unlockCanvasAndPost(canvas) + if (canvas != null) { + unlockCanvasAndPost(canvas) + } canvas = null val dt = mTimePerDraw - (SystemClock.uptimeMillis() - time) if (dt > 0) { diff --git a/automator/src/main/java/com/stardust/automator/GlobalActionAutomator.kt b/automator/src/main/java/com/stardust/automator/GlobalActionAutomator.kt index 0d6fa416..9ef2e91f 100644 --- a/automator/src/main/java/com/stardust/automator/GlobalActionAutomator.kt +++ b/automator/src/main/java/com/stardust/automator/GlobalActionAutomator.kt @@ -117,7 +117,7 @@ class GlobalActionAutomator(private val mHandler: Handler?, private val serviceP private fun gesturesWithoutHandler(description: GestureDescription): Boolean { prepareLooperIfNeeded() val result = VolatileBox(false) - val handler = Handler(Looper.myLooper()) + val handler = Looper.myLooper()?.let { Handler(it) } service.dispatchGesture(description, object : AccessibilityService.GestureResultCallback() { override fun onCompleted(gestureDescription: GestureDescription) { result.set(true) diff --git a/automator/src/main/java/com/stardust/view/accessibility/AccessibilityNodeInfoAllocator.kt b/automator/src/main/java/com/stardust/view/accessibility/AccessibilityNodeInfoAllocator.kt index fa3ede4f..7fac406e 100644 --- a/automator/src/main/java/com/stardust/view/accessibility/AccessibilityNodeInfoAllocator.kt +++ b/automator/src/main/java/com/stardust/view/accessibility/AccessibilityNodeInfoAllocator.kt @@ -84,7 +84,7 @@ open class AccessibilityNodeInfoAllocator { key.recycle() notRecycledCount++ if (DEBUG) - Log.w(TAG, value) + value?.let { Log.w(TAG, it) } } catch (ignored: IllegalStateException) { } diff --git a/inrt/src/main/AndroidManifest.xml b/inrt/src/main/AndroidManifest.xml index be85b30c..22d5e96c 100644 --- a/inrt/src/main/AndroidManifest.xml +++ b/inrt/src/main/AndroidManifest.xml @@ -15,7 +15,8 @@ - + + @@ -30,13 +31,14 @@ tools:ignore="GoogleAppIndexingWarning" tools:replace="android:label, android:allowBackup" tools:targetApi="m"> - + + android:theme="@style/AppTheme.Splash" + android:exported="true"> @@ -44,12 +46,13 @@ - + + android:permission="android.permission.BIND_NOTIFICATION_LISTENER_SERVICE" + android:exported="false"> diff --git a/project-versions.json b/project-versions.json index 4b0b00e7..744019f9 100644 --- a/project-versions.json +++ b/project-versions.json @@ -1,8 +1,8 @@ { - "appVersionCode": 470, - "appVersionName": "4.1.22.0108 Modify", - "target": 28, + "appVersionCode": 471, + "appVersionName": "4.1.22.0115.alpha Modify", + "target": 31, "mini": 21, - "compile": 28, + "compile": 31, "buildTool": "30.0.3" }