6.7.0 - Alpha10 - 新增 autojs.(restart/exit) 方法, 用于重启或退出 AutoJs6 应用
This commit is contained in:
@@ -10,7 +10,6 @@
|
|||||||
"cvt.bytes 方法, 用于字节数据单位转换 (参阅 项目文档 > [单位转换](https://docs.autojs6.com/#/cvt))",
|
"cvt.bytes 方法, 用于字节数据单位转换 (参阅 项目文档 > [单位转换](https://docs.autojs6.com/#/cvt))",
|
||||||
"fmt.bytes 方法, 用于字节数据格式化 (参阅 项目文档 > [数据格式化](https://docs.autojs6.com/#/fmt))",
|
"fmt.bytes 方法, 用于字节数据格式化 (参阅 项目文档 > [数据格式化](https://docs.autojs6.com/#/fmt))",
|
||||||
"s13n.bytes 方法, 用于标准化字节数据 (参阅 项目文档 > [标准化](https://docs.autojs6.com/#/s13n))",
|
"s13n.bytes 方法, 用于标准化字节数据 (参阅 项目文档 > [标准化](https://docs.autojs6.com/#/s13n))",
|
||||||
"UiObject#isShifted 方法, 用于检测控件位置变化",
|
|
||||||
"device.getSharedDeviceId 方法, 用于跨应用获取统一共享设备 ID _[`issue #455`](http://issues.autojs6.com/455)_",
|
"device.getSharedDeviceId 方法, 用于跨应用获取统一共享设备 ID _[`issue #455`](http://issues.autojs6.com/455)_",
|
||||||
"ui.navigationBarHeight 属性 (getter), 用于获取导航栏高度 _[`issue #456`](http://issues.autojs6.com/456)_",
|
"ui.navigationBarHeight 属性 (getter), 用于获取导航栏高度 _[`issue #456`](http://issues.autojs6.com/456)_",
|
||||||
"http 模块请求相关方法获取的 body 对象增加 stream/saveToFile/close 方法 _[`issue #452`](http://issues.autojs6.com/452)_",
|
"http 模块请求相关方法获取的 body 对象增加 stream/saveToFile/close 方法 _[`issue #452`](http://issues.autojs6.com/452)_",
|
||||||
@@ -18,6 +17,8 @@
|
|||||||
"http 模块请求相关方法支持不安全选项参数 (isInsecure/insecure), 用于忽略证书相关异常 _[`issue #417`](http://issues.autojs6.com/417)_",
|
"http 模块请求相关方法支持不安全选项参数 (isInsecure/insecure), 用于忽略证书相关异常 _[`issue #417`](http://issues.autojs6.com/417)_",
|
||||||
"http 模块请求相关方法支持 options.client 选项, 用于配置 OkHttpClient.Builder (如 followRedirects 等) _[`issue #454`](http://issues.autojs6.com/454)_",
|
"http 模块请求相关方法支持 options.client 选项, 用于配置 OkHttpClient.Builder (如 followRedirects 等) _[`issue #454`](http://issues.autojs6.com/454)_",
|
||||||
"runtime.(set/is)JavaPrimitiveWrap 方法, 用于设置或获取 Java 原始类型包装策略 _[`issue #435`](http://issues.autojs6.com/435)_",
|
"runtime.(set/is)JavaPrimitiveWrap 方法, 用于设置或获取 Java 原始类型包装策略 _[`issue #435`](http://issues.autojs6.com/435)_",
|
||||||
|
"autojs.(restart/exit) 方法, 用于重启或退出 AutoJs6 应用",
|
||||||
|
"UiObject#isShifted 方法, 用于检测控件位置变化",
|
||||||
"structuredClone 全局方法, 用于深拷贝 JavaScript 对象 (参阅 [MDN](https://developer.mozilla.org/zh-CN/docs/Web/API/Window/structuredClone))",
|
"structuredClone 全局方法, 用于深拷贝 JavaScript 对象 (参阅 [MDN](https://developer.mozilla.org/zh-CN/docs/Web/API/Window/structuredClone))",
|
||||||
"设置页面增加 \"Java 原始类型包装\" 设置选项 _[`issue #435`](http://issues.autojs6.com/435)_",
|
"设置页面增加 \"Java 原始类型包装\" 设置选项 _[`issue #435`](http://issues.autojs6.com/435)_",
|
||||||
"设置页面增加 \"定时任务调度引擎\" 设置选项, 支持 AlarmManager/WorkManager/JobScheduler _[`issue #457`](http://issues.autojs6.com/457)_ _[`issue #388`](http://issues.autojs6.com/388)_ _[`issue #163`](http://issues.autojs6.com/163)_ _[`issue #53`](http://issues.autojs6.com/53)_ _[`issue #21`](http://issues.autojs6.com/21)_",
|
"设置页面增加 \"定时任务调度引擎\" 设置选项, 支持 AlarmManager/WorkManager/JobScheduler _[`issue #457`](http://issues.autojs6.com/457)_ _[`issue #388`](http://issues.autojs6.com/388)_ _[`issue #163`](http://issues.autojs6.com/163)_ _[`issue #53`](http://issues.autojs6.com/53)_ _[`issue #21`](http://issues.autojs6.com/21)_",
|
||||||
|
|||||||
@@ -1,39 +1,41 @@
|
|||||||
package org.autojs.autojs.runtime.api.augment.autojs
|
package org.autojs.autojs.runtime.api.augment.autojs
|
||||||
|
|
||||||
import org.autojs.autojs.rhino.ProxyObject
|
|
||||||
import org.autojs.autojs.rhino.ProxyObject.Companion.PROXY_GETTER_KEY
|
|
||||||
import org.autojs.autojs.runtime.ScriptRuntime
|
|
||||||
import org.autojs.autojs.runtime.api.augment.Augmentable
|
|
||||||
import org.autojs.autojs.util.RhinoUtils.NOT_CONSTRUCTABLE
|
|
||||||
import org.autojs.autojs.util.RhinoUtils.coerceString
|
|
||||||
import org.autojs.autojs.util.RhinoUtils.newBaseFunction
|
|
||||||
import org.mozilla.javascript.BaseFunction
|
|
||||||
import org.mozilla.javascript.NativeObject
|
|
||||||
import org.mozilla.javascript.Scriptable
|
|
||||||
import java.util.function.Supplier
|
|
||||||
import android.Manifest
|
import android.Manifest
|
||||||
import org.autojs.autojs6.BuildConfig
|
|
||||||
import android.content.pm.PackageManager
|
import android.content.pm.PackageManager
|
||||||
import org.autojs.autojs.util.RootUtils
|
|
||||||
import org.autojs.autojs.util.RootUtils.RootMode
|
|
||||||
import android.provider.Settings
|
import android.provider.Settings
|
||||||
import android.provider.Settings.System
|
import android.provider.Settings.System
|
||||||
import org.autojs.autojs.annotation.RhinoSingletonFunctionInterface
|
import org.autojs.autojs.annotation.RhinoSingletonFunctionInterface
|
||||||
import org.autojs.autojs.extension.AnyExtensions.isJsNullish
|
import org.autojs.autojs.extension.AnyExtensions.isJsNullish
|
||||||
import org.autojs.autojs.extension.FlexibleArray
|
import org.autojs.autojs.extension.FlexibleArray
|
||||||
import org.autojs.autojs.extension.ScriptableExtensions.prop
|
|
||||||
import org.autojs.autojs.extension.ScriptableExtensions.defineProp
|
import org.autojs.autojs.extension.ScriptableExtensions.defineProp
|
||||||
|
import org.autojs.autojs.extension.ScriptableExtensions.prop
|
||||||
|
import org.autojs.autojs.rhino.ProxyObject
|
||||||
|
import org.autojs.autojs.rhino.ProxyObject.Companion.PROXY_GETTER_KEY
|
||||||
|
import org.autojs.autojs.runtime.ScriptRuntime
|
||||||
import org.autojs.autojs.runtime.api.ScreenMetrics
|
import org.autojs.autojs.runtime.api.ScreenMetrics
|
||||||
|
import org.autojs.autojs.runtime.api.augment.Augmentable
|
||||||
import org.autojs.autojs.runtime.api.augment.util.Util.checkStringArgument
|
import org.autojs.autojs.runtime.api.augment.util.Util.checkStringArgument
|
||||||
import org.autojs.autojs.runtime.exception.WrappedIllegalArgumentException
|
import org.autojs.autojs.runtime.exception.WrappedIllegalArgumentException
|
||||||
import org.autojs.autojs.theme.ThemeColorManager
|
import org.autojs.autojs.theme.ThemeColorManager
|
||||||
|
import org.autojs.autojs.util.IntentUtils
|
||||||
|
import org.autojs.autojs.util.RhinoUtils.NOT_CONSTRUCTABLE
|
||||||
import org.autojs.autojs.util.RhinoUtils.UNDEFINED
|
import org.autojs.autojs.util.RhinoUtils.UNDEFINED
|
||||||
import org.autojs.autojs.util.RhinoUtils.coerceIntNumber
|
import org.autojs.autojs.util.RhinoUtils.coerceIntNumber
|
||||||
|
import org.autojs.autojs.util.RhinoUtils.coerceString
|
||||||
|
import org.autojs.autojs.util.RhinoUtils.newBaseFunction
|
||||||
import org.autojs.autojs.util.RhinoUtils.newNativeObject
|
import org.autojs.autojs.util.RhinoUtils.newNativeObject
|
||||||
|
import org.autojs.autojs.util.RhinoUtils.undefined
|
||||||
|
import org.autojs.autojs.util.RootUtils
|
||||||
|
import org.autojs.autojs.util.RootUtils.RootMode
|
||||||
|
import org.autojs.autojs6.BuildConfig
|
||||||
import org.autojs.autojs6.R
|
import org.autojs.autojs6.R
|
||||||
|
import org.mozilla.javascript.BaseFunction
|
||||||
import org.mozilla.javascript.Context
|
import org.mozilla.javascript.Context
|
||||||
|
import org.mozilla.javascript.NativeObject
|
||||||
|
import org.mozilla.javascript.Scriptable
|
||||||
import org.mozilla.javascript.Undefined
|
import org.mozilla.javascript.Undefined
|
||||||
import java.util.*
|
import java.util.*
|
||||||
|
import java.util.function.Supplier
|
||||||
import android.content.Context as AndroidContext
|
import android.content.Context as AndroidContext
|
||||||
|
|
||||||
class Autojs(private val scriptRuntime: ScriptRuntime) : Augmentable() {
|
class Autojs(private val scriptRuntime: ScriptRuntime) : Augmentable() {
|
||||||
@@ -77,6 +79,8 @@ class Autojs(private val scriptRuntime: ScriptRuntime) : Augmentable() {
|
|||||||
::canDisplayOverOtherApps.name,
|
::canDisplayOverOtherApps.name,
|
||||||
::getLanguage.name,
|
::getLanguage.name,
|
||||||
::getLanguageTag.name,
|
::getLanguageTag.name,
|
||||||
|
::restart.name,
|
||||||
|
::exit.name,
|
||||||
)
|
)
|
||||||
|
|
||||||
override val selfAssignmentGetters = listOf<Pair<String, Supplier<Any?>>>(
|
override val selfAssignmentGetters = listOf<Pair<String, Supplier<Any?>>>(
|
||||||
@@ -198,6 +202,18 @@ class Autojs(private val scriptRuntime: ScriptRuntime) : Augmentable() {
|
|||||||
getLanguage(arrayOf()).toLanguageTag()
|
getLanguage(arrayOf()).toLanguageTag()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@JvmStatic
|
||||||
|
@RhinoSingletonFunctionInterface
|
||||||
|
fun restart(args: Array<out Any?>): Undefined = ensureArgumentsIsEmpty(args) {
|
||||||
|
undefined { IntentUtils.App.restart(globalContext) }
|
||||||
|
}
|
||||||
|
|
||||||
|
@JvmStatic
|
||||||
|
@RhinoSingletonFunctionInterface
|
||||||
|
fun exit(args: Array<out Any?>): Undefined = ensureArgumentsIsEmpty(args) {
|
||||||
|
undefined { IntentUtils.App.exit(globalContext) }
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -8,7 +8,6 @@ import android.content.pm.PackageManager
|
|||||||
import android.os.Bundle
|
import android.os.Bundle
|
||||||
import android.os.Handler
|
import android.os.Handler
|
||||||
import android.os.Looper
|
import android.os.Looper
|
||||||
import android.os.Process
|
|
||||||
import android.view.Gravity
|
import android.view.Gravity
|
||||||
import android.view.Menu
|
import android.view.Menu
|
||||||
import android.view.MenuItem
|
import android.view.MenuItem
|
||||||
@@ -21,17 +20,11 @@ import androidx.fragment.app.Fragment
|
|||||||
import androidx.viewpager.widget.ViewPager
|
import androidx.viewpager.widget.ViewPager
|
||||||
import androidx.viewpager.widget.ViewPager.SimpleOnPageChangeListener
|
import androidx.viewpager.widget.ViewPager.SimpleOnPageChangeListener
|
||||||
import com.google.android.material.tabs.TabLayout
|
import com.google.android.material.tabs.TabLayout
|
||||||
import com.huaban.analysis.jieba.CharsDictionaryDatabase
|
|
||||||
import com.huaban.analysis.jieba.PhrasesDictionaryDatabase
|
|
||||||
import com.huaban.analysis.jieba.WordDictionaryDatabase
|
|
||||||
import org.autojs.autojs.App
|
|
||||||
import org.autojs.autojs.AutoJs
|
|
||||||
import org.autojs.autojs.app.FragmentPagerAdapterBuilder
|
import org.autojs.autojs.app.FragmentPagerAdapterBuilder
|
||||||
import org.autojs.autojs.app.FragmentPagerAdapterBuilder.StoredFragmentPagerAdapter
|
import org.autojs.autojs.app.FragmentPagerAdapterBuilder.StoredFragmentPagerAdapter
|
||||||
import org.autojs.autojs.app.OnActivityResultDelegate
|
import org.autojs.autojs.app.OnActivityResultDelegate
|
||||||
import org.autojs.autojs.app.OnActivityResultDelegate.DelegateHost
|
import org.autojs.autojs.app.OnActivityResultDelegate.DelegateHost
|
||||||
import org.autojs.autojs.core.accessibility.AccessibilityTool
|
import org.autojs.autojs.core.accessibility.AccessibilityTool
|
||||||
import org.autojs.autojs.core.image.capture.ScreenCapturerForegroundService
|
|
||||||
import org.autojs.autojs.core.permission.RequestPermissionCallbacks
|
import org.autojs.autojs.core.permission.RequestPermissionCallbacks
|
||||||
import org.autojs.autojs.core.pref.Pref
|
import org.autojs.autojs.core.pref.Pref
|
||||||
import org.autojs.autojs.event.BackPressedHandler
|
import org.autojs.autojs.event.BackPressedHandler
|
||||||
@@ -50,7 +43,6 @@ import org.autojs.autojs.theme.widget.ThemeColorFloatingActionButton
|
|||||||
import org.autojs.autojs.theme.widget.ThemeColorToolbar
|
import org.autojs.autojs.theme.widget.ThemeColorToolbar
|
||||||
import org.autojs.autojs.ui.BaseActivity
|
import org.autojs.autojs.ui.BaseActivity
|
||||||
import org.autojs.autojs.ui.doc.DocumentationFragment
|
import org.autojs.autojs.ui.doc.DocumentationFragment
|
||||||
import org.autojs.autojs.ui.enhancedfloaty.FloatyService
|
|
||||||
import org.autojs.autojs.ui.explorer.ExplorerView
|
import org.autojs.autojs.ui.explorer.ExplorerView
|
||||||
import org.autojs.autojs.ui.floating.FloatyWindowManger
|
import org.autojs.autojs.ui.floating.FloatyWindowManger
|
||||||
import org.autojs.autojs.ui.log.LogActivity
|
import org.autojs.autojs.ui.log.LogActivity
|
||||||
@@ -305,33 +297,9 @@ class MainActivity : BaseActivity(), DelegateHost, HostActivity {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fun rebirth() {
|
fun beforeExit() {
|
||||||
packageManager.getLaunchIntentForPackage(packageName)?.let {
|
|
||||||
startActivity(Intent.makeRestartActivityTask(it.component))
|
|
||||||
}
|
|
||||||
exitCompletely()
|
|
||||||
}
|
|
||||||
|
|
||||||
fun exitCompletely() {
|
|
||||||
FloatyWindowManger.hideCircularMenuAndSaveState()
|
|
||||||
|
|
||||||
FloatyService.stopService()
|
|
||||||
ScreenCapturerForegroundService.stopService()
|
|
||||||
|
|
||||||
AutoJs.instance.scriptEngineService.stopAll()
|
|
||||||
AutoJs.instance.clear()
|
|
||||||
|
|
||||||
App.app.clear()
|
|
||||||
|
|
||||||
WordDictionaryDatabase.getInstance(applicationContext).close()
|
|
||||||
CharsDictionaryDatabase.getInstance(applicationContext).close()
|
|
||||||
PhrasesDictionaryDatabase.getInstance(applicationContext).close()
|
|
||||||
|
|
||||||
mA11yTool.stopService(false)
|
mA11yTool.stopService(false)
|
||||||
mForeGroundService.stopIfNeeded()
|
mForeGroundService.stopIfNeeded()
|
||||||
WrappedShizuku.onDestroy()
|
|
||||||
|
|
||||||
Process.killProcess(Process.myPid())
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Suppress("OVERRIDE_DEPRECATION")
|
@Suppress("OVERRIDE_DEPRECATION")
|
||||||
|
|||||||
@@ -39,6 +39,8 @@ import org.autojs.autojs.ui.main.MainActivity
|
|||||||
import org.autojs.autojs.ui.settings.AboutActivity
|
import org.autojs.autojs.ui.settings.AboutActivity
|
||||||
import org.autojs.autojs.ui.settings.PreferencesActivity
|
import org.autojs.autojs.ui.settings.PreferencesActivity
|
||||||
import org.autojs.autojs.util.DisplayUtils
|
import org.autojs.autojs.util.DisplayUtils
|
||||||
|
import org.autojs.autojs.util.IntentUtils.App.exit
|
||||||
|
import org.autojs.autojs.util.IntentUtils.App.restart
|
||||||
import org.autojs.autojs.util.NetworkUtils
|
import org.autojs.autojs.util.NetworkUtils
|
||||||
import org.autojs.autojs.util.ViewUtils
|
import org.autojs.autojs.util.ViewUtils
|
||||||
import org.autojs.autojs.util.ViewUtils.MODE
|
import org.autojs.autojs.util.ViewUtils.MODE
|
||||||
@@ -414,8 +416,8 @@ open class DrawerFragment : Fragment() {
|
|||||||
.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
|
.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
binding.restart.setOnClickListener { mActivity.rebirth() }
|
binding.restart.setOnClickListener { restart(mActivity, mActivity::beforeExit) }
|
||||||
binding.exit.setOnClickListener { mActivity.exitCompletely() }
|
binding.exit.setOnClickListener { exit(mActivity, mActivity::beforeExit) }
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun onResume() {
|
override fun onResume() {
|
||||||
|
|||||||
@@ -1,17 +1,31 @@
|
|||||||
package org.autojs.autojs.util
|
package org.autojs.autojs.util
|
||||||
|
|
||||||
|
import android.app.AlarmManager
|
||||||
|
import android.app.PendingIntent
|
||||||
import android.content.ActivityNotFoundException
|
import android.content.ActivityNotFoundException
|
||||||
import android.content.Context
|
import android.content.Context
|
||||||
|
import android.content.Context.ALARM_SERVICE
|
||||||
import android.content.Intent
|
import android.content.Intent
|
||||||
import android.net.Uri
|
import android.net.Uri
|
||||||
|
import android.os.Process
|
||||||
|
import android.os.SystemClock
|
||||||
import android.provider.OpenableColumns
|
import android.provider.OpenableColumns
|
||||||
import android.provider.Settings
|
import android.provider.Settings
|
||||||
import android.view.View
|
import android.view.View
|
||||||
|
import androidx.appcompat.app.AppCompatActivity
|
||||||
import androidx.core.content.FileProvider
|
import androidx.core.content.FileProvider
|
||||||
import androidx.core.net.toUri
|
import androidx.core.net.toUri
|
||||||
import com.google.android.material.snackbar.Snackbar
|
import com.google.android.material.snackbar.Snackbar
|
||||||
|
import com.huaban.analysis.jieba.CharsDictionaryDatabase
|
||||||
|
import com.huaban.analysis.jieba.PhrasesDictionaryDatabase
|
||||||
|
import com.huaban.analysis.jieba.WordDictionaryDatabase
|
||||||
|
import org.autojs.autojs.AutoJs
|
||||||
|
import org.autojs.autojs.core.image.capture.ScreenCapturerForegroundService
|
||||||
import org.autojs.autojs.external.fileprovider.AppFileProvider
|
import org.autojs.autojs.external.fileprovider.AppFileProvider
|
||||||
import org.autojs.autojs.runtime.api.Mime
|
import org.autojs.autojs.runtime.api.Mime
|
||||||
|
import org.autojs.autojs.runtime.api.WrappedShizuku
|
||||||
|
import org.autojs.autojs.ui.enhancedfloaty.FloatyService
|
||||||
|
import org.autojs.autojs.ui.floating.FloatyWindowManger
|
||||||
import org.autojs.autojs6.R
|
import org.autojs.autojs6.R
|
||||||
import java.io.File
|
import java.io.File
|
||||||
|
|
||||||
@@ -314,4 +328,62 @@ object IntentUtils {
|
|||||||
fun show(messageRes: Int)
|
fun show(messageRes: Int)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
object App {
|
||||||
|
|
||||||
|
@JvmStatic
|
||||||
|
@JvmOverloads
|
||||||
|
fun restart(context: Context, extraActions: (() -> Unit)? = null) {
|
||||||
|
val launchIntent = context.packageManager.getLaunchIntentForPackage(context.packageName)?.apply {
|
||||||
|
addFlags(Intent.FLAG_ACTIVITY_NEW_TASK or Intent.FLAG_ACTIVITY_CLEAR_TOP or Intent.FLAG_ACTIVITY_CLEAR_TASK)
|
||||||
|
}
|
||||||
|
|
||||||
|
when (context) {
|
||||||
|
is AppCompatActivity -> {
|
||||||
|
context.startActivity(launchIntent)
|
||||||
|
}
|
||||||
|
else -> {
|
||||||
|
val pendingIntent = PendingIntent.getActivity(
|
||||||
|
/* context = */ context,
|
||||||
|
/* requestCode = */ 1001,
|
||||||
|
/* intent = */ launchIntent,
|
||||||
|
/* flags = */ PendingIntent.FLAG_CANCEL_CURRENT or PendingIntent.FLAG_IMMUTABLE,
|
||||||
|
)
|
||||||
|
val am = context.getSystemService(ALARM_SERVICE) as AlarmManager
|
||||||
|
am.setExactAndAllowWhileIdle(
|
||||||
|
/* type = */ AlarmManager.ELAPSED_REALTIME,
|
||||||
|
/* triggerAtMillis = */ SystemClock.elapsedRealtime() + 300L,
|
||||||
|
/* operation = */ pendingIntent,
|
||||||
|
)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
exit(context, extraActions)
|
||||||
|
}
|
||||||
|
|
||||||
|
@JvmStatic
|
||||||
|
@JvmOverloads
|
||||||
|
fun exit(context: Context, extraActions: (() -> Unit)? = null) {
|
||||||
|
FloatyWindowManger.hideCircularMenuAndSaveState()
|
||||||
|
|
||||||
|
FloatyService.stopService()
|
||||||
|
ScreenCapturerForegroundService.stopService()
|
||||||
|
|
||||||
|
AutoJs.instance.scriptEngineService.stopAll()
|
||||||
|
AutoJs.instance.clear()
|
||||||
|
|
||||||
|
org.autojs.autojs.App.app.clear()
|
||||||
|
|
||||||
|
WordDictionaryDatabase.getInstance(context.applicationContext).close()
|
||||||
|
CharsDictionaryDatabase.getInstance(context.applicationContext).close()
|
||||||
|
PhrasesDictionaryDatabase.getInstance(context.applicationContext).close()
|
||||||
|
|
||||||
|
WrappedShizuku.onDestroy()
|
||||||
|
|
||||||
|
extraActions?.invoke()
|
||||||
|
|
||||||
|
Process.killProcess(Process.myPid())
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -1,5 +1,5 @@
|
|||||||
#Fri Oct 31 09:54:36 CST 2025
|
#Sat Nov 01 13:14:47 CST 2025
|
||||||
BUILD_TIME=1761875676837
|
BUILD_TIME=1761974087315
|
||||||
COMPILE_SDK_VERSION=36
|
COMPILE_SDK_VERSION=36
|
||||||
IMAGE_QUANT_CMAKE_VERSION=3.22.1
|
IMAGE_QUANT_CMAKE_VERSION=3.22.1
|
||||||
IMAGE_QUANT_NDK_VERSION=26.1.10909125
|
IMAGE_QUANT_NDK_VERSION=26.1.10909125
|
||||||
@@ -27,6 +27,6 @@ RAPID_OCR_OPENCV_MOBILE_LABEL_VERSION=13
|
|||||||
RAPID_OCR_OPENCV_MOBILE_VERSION=4.5.3
|
RAPID_OCR_OPENCV_MOBILE_VERSION=4.5.3
|
||||||
TARGET_SDK_VERSION=36
|
TARGET_SDK_VERSION=36
|
||||||
TARGET_SDK_VERSION_INRT=29
|
TARGET_SDK_VERSION_INRT=29
|
||||||
VERSION_BUILD=3455
|
VERSION_BUILD=3458
|
||||||
VERSION_NAME=6.7.0 Alpha10
|
VERSION_NAME=6.7.0 Alpha10
|
||||||
VSCODE_EXT_REQUIRED_VERSION=1.0.8
|
VSCODE_EXT_REQUIRED_VERSION=1.0.8
|
||||||
|
|||||||
Reference in New Issue
Block a user