diff --git a/app/src/main/java/io/legado/app/ui/config/otherConfig/OtherConfigScreen.kt b/app/src/main/java/io/legado/app/ui/config/otherConfig/OtherConfigScreen.kt index 8d1253c43..84d9f5481 100644 --- a/app/src/main/java/io/legado/app/ui/config/otherConfig/OtherConfigScreen.kt +++ b/app/src/main/java/io/legado/app/ui/config/otherConfig/OtherConfigScreen.kt @@ -287,7 +287,7 @@ fun OtherConfigScreen( SwitchSettingItem( title = stringResource(R.string.add_to_text_context_menu_t), description = stringResource(R.string.add_to_text_context_menu_s), - checked = viewModel.isProcessTextEnabled(), + checked = OtherConfig.processText, onCheckedChange = { viewModel.setProcessTextEnable(it) } ) diff --git a/app/src/main/java/io/legado/app/ui/config/otherConfig/OtherConfigViewModel.kt b/app/src/main/java/io/legado/app/ui/config/otherConfig/OtherConfigViewModel.kt index 29a46ebb8..5728afac2 100644 --- a/app/src/main/java/io/legado/app/ui/config/otherConfig/OtherConfigViewModel.kt +++ b/app/src/main/java/io/legado/app/ui/config/otherConfig/OtherConfigViewModel.kt @@ -18,6 +18,7 @@ import io.legado.app.ui.config.downloadCacheConfig.DownloadCacheConfig import io.legado.app.utils.FileUtils import io.legado.app.utils.putPrefString import io.legado.app.utils.restart +import io.legado.app.utils.toastOnUi import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.delay import kotlinx.coroutines.launch @@ -31,6 +32,12 @@ class OtherConfigViewModel : ViewModel() { SharedReceiverActivity::class.java.name ) + init { + viewModelScope.launch(Dispatchers.IO) { + OtherConfig.processText = isProcessTextEnabled() + } + } + fun isProcessTextEnabled(): Boolean { return packageManager.getComponentEnabledSetting(componentName) != PackageManager.COMPONENT_ENABLED_STATE_DISABLED } @@ -41,11 +48,18 @@ class OtherConfigViewModel : ViewModel() { } else { PackageManager.COMPONENT_ENABLED_STATE_DISABLED } - packageManager.setComponentEnabledSetting( - componentName, - state, - PackageManager.DONT_KILL_APP - ) + viewModelScope.launch(Dispatchers.IO) { + runCatching { + packageManager.setComponentEnabledSetting( + componentName, + state, + PackageManager.DONT_KILL_APP + ) + OtherConfig.processText = enable + }.onFailure { + appCtx.toastOnUi(it.localizedMessage) + } + } } fun clearWebViewData(context: Context) {