From 24d20725867694ade117690cb0b7e29360f97b87 Mon Sep 17 00:00:00 2001 From: FooIbar <118464521+FooIbar@users.noreply.github.com> Date: Wed, 25 Sep 2024 11:54:34 +0800 Subject: [PATCH] Use Downloads as start screen if device is offline (#1675) --- .../com/hippo/ehviewer/ui/MainActivity.kt | 27 +++++++++++++------ app/src/main/res/values-zh-rCN/strings.xml | 1 + app/src/main/res/values/strings.xml | 1 + 3 files changed, 21 insertions(+), 8 deletions(-) diff --git a/app/src/main/kotlin/com/hippo/ehviewer/ui/MainActivity.kt b/app/src/main/kotlin/com/hippo/ehviewer/ui/MainActivity.kt index 74bdf757b..e1eb6f23d 100644 --- a/app/src/main/kotlin/com/hippo/ehviewer/ui/MainActivity.kt +++ b/app/src/main/kotlin/com/hippo/ehviewer/ui/MainActivity.kt @@ -248,18 +248,24 @@ class MainActivity : EhActivity() { } } + val hasNetwork = remember { connectivityManager.activeNetwork != null } if (!AppConfig.isBenchmark) { + val noNetwork = stringResource(R.string.no_network) LaunchedEffect(Unit) { runCatching { dialogState.checkDownloadLocation() } runCatching { dialogState.checkAppLinkVerify() } - runSuspendCatching { - withIOContext { - AppUpdater.checkForUpdate()?.let { - dialogState.showNewVersion(this@MainActivity, it) + if (hasNetwork) { + runSuspendCatching { + withIOContext { + AppUpdater.checkForUpdate()?.let { + dialogState.showNewVersion(this@MainActivity, it) + } } + }.onFailure { + snackbarState.showSnackbar(getString(R.string.update_failed, it.displayString())) } - }.onFailure { - snackbarState.showSnackbar(getString(R.string.update_failed, it.displayString())) + } else { + snackbarState.showSnackbar(noNetwork) } } } @@ -466,9 +472,14 @@ class MainActivity : EhActivity() { // https://issuetracker.google.com/336140982 // SharedTransitionLayout { CompositionLocalProvider(LocalSharedTransitionScope provides NoopSharedTransitionScope) { + val start = when { + Settings.needSignIn -> SignInScreenDestination + hasNetwork -> StartDestination + else -> DownloadsScreenDestination + } DestinationsNavHost( navGraph = NavGraphs.root, - start = if (Settings.needSignIn) SignInScreenDestination else StartDestination, + start = start, defaultTransitions = rememberEhNavAnim(), navController = navController, ) @@ -526,7 +537,7 @@ class MainActivity : EhActivity() { Uri.parse("package:$packageName"), ) startActivity(intent) - } catch (t: Throwable) { + } catch (_: Throwable) { val intent = Intent( android.provider.Settings.ACTION_APPLICATION_DETAILS_SETTINGS, Uri.parse("package:$packageName"), diff --git a/app/src/main/res/values-zh-rCN/strings.xml b/app/src/main/res/values-zh-rCN/strings.xml index 06385fefe..a87aef173 100644 --- a/app/src/main/res/values-zh-rCN/strings.xml +++ b/app/src/main/res/values-zh-rCN/strings.xml @@ -472,6 +472,7 @@ 添加标签 添加新标签,用逗号「,」分割 %s (上传者) + 无网络 流量计费网络警告 正在使用流量计费网络 从第 %d 页阅读 diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 2764f2f57..9ecc89835 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -489,6 +489,7 @@ Add tag Enter new tags, separated with comma %s (Uploader) + No network Metered network warning Connected to metered networks Read page %d