Move updates check to MainActivity

This commit is contained in:
FooIbar committed 2023-11-08 16:09:45 +08:00
1 parent 5b450ff18f
commit 2ae3effc0e
5 files changed
+21 -15

No files matched your search

@@ -98,14 +98,19 @@ import com.hippo.ehviewer.ui.scene.GalleryListScene.Companion.toStartArgs
import com.hippo.ehviewer.ui.scene.ProgressFragment
import com.hippo.ehviewer.ui.scene.navAnimated
import com.hippo.ehviewer.ui.scene.navWithUrl
import com.hippo.ehviewer.ui.settings.showNewVersion
import com.hippo.ehviewer.ui.tools.LocalDialogState
import com.hippo.ehviewer.ui.tools.LocalTouchSlopProvider
import com.hippo.ehviewer.updater.AppUpdater
import com.hippo.ehviewer.util.AppConfig
import com.hippo.ehviewer.util.ExceptionUtils
import com.hippo.ehviewer.util.addTextToClipboard
import com.hippo.ehviewer.util.buildWindowInsets
import com.hippo.ehviewer.util.getParcelableExtraCompat
import com.hippo.ehviewer.util.getUrlFromClipboard
import com.hippo.ehviewer.util.set
import eu.kanade.tachiyomi.util.lang.launchUI
import eu.kanade.tachiyomi.util.lang.withIOContext
import eu.kanade.tachiyomi.util.lang.withUIContext
import java.io.File
import java.io.FileOutputStream
@@ -115,6 +120,7 @@ import kotlinx.coroutines.flow.MutableStateFlow
import kotlinx.coroutines.flow.collectLatest
import kotlinx.coroutines.flow.first
import kotlinx.coroutines.launch
import moe.tarsin.coroutines.runSuspendCatching
import splitties.systemservices.clipboardManager
import splitties.systemservices.connectivityManager
@@ -226,11 +232,23 @@ class MainActivity : EhActivity() {
WindowCompat.setDecorFitsSystemWindows(window, false)
setMD3Content {
val configuration = LocalConfiguration.current
val dialogState = LocalDialogState.current
val drawerState = rememberDrawerState(DrawerValue.Closed)
val scope = rememberCoroutineScope()
val recomposeScope = currentRecomposeScope
fun isSelected(id: Int) = ::navController.isInitialized && id == navController.currentDestination?.id
fun closeDrawer() = scope.launch { drawerState.close() }
LaunchedEffect(Unit) {
runSuspendCatching {
withIOContext {
AppUpdater.checkForUpdate()?.let {
dialogState.showNewVersion(this@MainActivity, it)
}
}
}.onFailure {
showTip(getString(R.string.update_failed, ExceptionUtils.getReadableString(it)), BaseScene.LENGTH_LONG)
}
}
LaunchedEffect(Unit) {
openDrawerFlow.collectLatest {
drawerState.open()
@@ -92,9 +92,7 @@ import com.hippo.ehviewer.ui.legacy.HandlerDrawable
import com.hippo.ehviewer.ui.legacy.LayoutManagerUtils.firstVisibleItemPosition
import com.hippo.ehviewer.ui.legacy.ViewTransition
import com.hippo.ehviewer.ui.legacy.WindowInsetsAnimationHelper
import com.hippo.ehviewer.ui.settings.showNewVersion
import com.hippo.ehviewer.ui.tools.DialogState
import com.hippo.ehviewer.updater.AppUpdater
import com.hippo.ehviewer.util.AnimationUtils
import com.hippo.ehviewer.util.ExceptionUtils
import com.hippo.ehviewer.util.SimpleAnimatorListener
@@ -297,17 +295,6 @@ class GalleryListScene : SearchBarScene() {
private val dialogState = DialogState()
// TODO: Move this out
private fun checkForUpdates() {
lifecycleScope.launchIO {
runSuspendCatching {
AppUpdater.checkForUpdate()?.let {
dialogState.showNewVersion(requireContext(), it)
}
}
}
}
private val SceneGalleryListBinding.fastScroller get() = contentLayout.fastScroller
private val SceneGalleryListBinding.refreshLayout get() = contentLayout.refreshLayout
private val SceneGalleryListBinding.recyclerView get() = contentLayout.recyclerView
@@ -321,7 +308,6 @@ class GalleryListScene : SearchBarScene() {
): View {
_binding = SceneGalleryListBinding.inflate(inflater, container!!)
container.addView(ComposeWithMD3 { dialogState.Intercept() })
checkForUpdates()
requireActivity().onBackPressedDispatcher.addCallback(stateBackPressedCallback)
mHideActionFabSlop = ViewConfiguration.get(requireContext()).scaledTouchSlop
mShowActionFab = true
@@ -123,7 +123,7 @@ fun AboutScreen(navigator: DestinationsNavigator) {
dialogState.showNewVersion(context, it)
} ?: launchSnackBar(context.getString(R.string.already_latest_version))
}.onFailure {
launchSnackBar(ExceptionUtils.getReadableString(it))
launchSnackBar(context.getString(R.string.update_failed, ExceptionUtils.getReadableString(it)))
}
}
}
@@ -531,6 +531,7 @@
<string name="update_frequency_weekly">每周</string>
<string name="update_frequency_biweekly">每两周</string>
<string name="update_frequency_monthly">每月</string>
<string name="update_failed">更新失败:%s</string>
<string name="new_version_available">有新版本!</string>
<string name="already_latest_version">已是最新版本</string>
<string name="permission_denied">权限被拒</string>
+1
View File
@@ -595,6 +595,7 @@
<string name="update_frequency_weekly">Weekly</string>
<string name="update_frequency_biweekly">Biweekly</string>
<string name="update_frequency_monthly">Monthly</string>
<string name="update_failed">Update failed: %s</string>
<string name="new_version_available">New version available!</string>
<string name="already_latest_version">Already the latest version</string>
<string name="permission_denied">Permission denied</string>