Move updates check to MainActivity
This commit is contained in:
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>
|
||||
|
||||
@@ -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>
|
||||
|
||||
Reference in new issue
Block a user