diff --git a/app/src/main/java/com/hippo/ehviewer/SettingsCollector.kt b/app/src/main/java/com/hippo/ehviewer/SettingsCollector.kt index 73e02fff0..1f9275575 100644 --- a/app/src/main/java/com/hippo/ehviewer/SettingsCollector.kt +++ b/app/src/main/java/com/hippo/ehviewer/SettingsCollector.kt @@ -3,6 +3,7 @@ package com.hippo.ehviewer import androidx.appcompat.app.AppCompatDelegate import androidx.appcompat.app.AppCompatDelegate.MODE_NIGHT_AUTO_BATTERY import androidx.core.os.LocaleListCompat +import com.hippo.ehviewer.client.EhCookieStore import com.hippo.ehviewer.client.EhEngine import com.hippo.ehviewer.client.EhTagDatabase import com.hippo.ehviewer.dailycheck.updateDailyCheckWork @@ -57,11 +58,13 @@ fun updateWhenRequestNewsChanges() { } fun updateWhenGallerySiteChanges() { - collectScope.launchIO { - runCatching { - EhEngine.getUConfig() - }.onFailure { - it.printStackTrace() + if (!Settings.needSignIn && EhCookieStore.hasSignedIn()) { + collectScope.launchIO { + runCatching { + EhEngine.getUConfig() + }.onFailure { + it.printStackTrace() + } } } } diff --git a/app/src/main/java/com/hippo/ehviewer/client/EhEngine.kt b/app/src/main/java/com/hippo/ehviewer/client/EhEngine.kt index 897c7406b..c8b112218 100644 --- a/app/src/main/java/com/hippo/ehviewer/client/EhEngine.kt +++ b/app/src/main/java/com/hippo/ehviewer/client/EhEngine.kt @@ -156,12 +156,12 @@ object EhEngine { suspend fun getUConfig(url: String = EhUrl.uConfigUrl) { runSuspendCatching { - ehRequest(url).executeAndParsingWith { check(contains(U_CONFIG_TEXT)) { "U_CONFIG_TEXT not found!" } } + ehRequest(url).executeAndParsingWith { check(contains(U_CONFIG_TEXT)) { "Unable to load config from $url!" } } }.onFailure { // It may get redirected when accessing ex for the first time - if (EhUtils.isExHentai) { + if (url == EhUrl.URL_UCONFIG_EX) { it.printStackTrace() - ehRequest(url).executeAndParsingWith { check(contains(U_CONFIG_TEXT)) { "U_CONFIG_TEXT not found!" } } + ehRequest(url).executeAndParsingWith { check(contains(U_CONFIG_TEXT)) { "Unable to load config from $url!" } } } else { throw it } diff --git a/app/src/main/java/com/hippo/ehviewer/ui/ConfigureActivity.kt b/app/src/main/java/com/hippo/ehviewer/ui/ConfigureActivity.kt index af1f15ca8..8848a5a93 100644 --- a/app/src/main/java/com/hippo/ehviewer/ui/ConfigureActivity.kt +++ b/app/src/main/java/com/hippo/ehviewer/ui/ConfigureActivity.kt @@ -15,6 +15,7 @@ import androidx.navigation.compose.NavHost import androidx.navigation.compose.composable import androidx.navigation.compose.rememberNavController import com.hippo.ehviewer.Settings +import com.hippo.ehviewer.client.EhCookieStore import com.hippo.ehviewer.ui.login.CookieSignInScene import com.hippo.ehviewer.ui.login.SelectSiteScreen import com.hippo.ehviewer.ui.login.SignInScreen @@ -40,7 +41,11 @@ class ConfigureActivity : EhActivity() { CompositionLocalProvider(LocalNavController provides navController) { NavHost( navController = navController, - startDestination = if (Settings.needSignIn) SIGN_IN_ROUTE_NAME else BASE_SETTINGS_SCREEN, + startDestination = if (Settings.needSignIn) { + if (EhCookieStore.hasSignedIn()) SELECT_SITE_ROUTE_NAME else SIGN_IN_ROUTE_NAME + } else { + BASE_SETTINGS_SCREEN + }, enterTransition = { slideIntoContainer(AnimatedContentTransitionScope.SlideDirection.Up, tween(200)) }, exitTransition = { ExitTransition.None }, popEnterTransition = { EnterTransition.None }, diff --git a/app/src/main/java/com/hippo/ehviewer/ui/login/PostLogin.kt b/app/src/main/java/com/hippo/ehviewer/ui/login/PostLogin.kt index 8ac502fe2..684227419 100644 --- a/app/src/main/java/com/hippo/ehviewer/ui/login/PostLogin.kt +++ b/app/src/main/java/com/hippo/ehviewer/ui/login/PostLogin.kt @@ -23,17 +23,19 @@ suspend fun postLogin() = coroutineScope { EhEngine.getNews(false) EhCookieStore.copyNecessaryCookies() + // Get cookies for image limits + launch { + runCatching { + EhEngine.getUConfig(EhUrl.URL_UCONFIG_E) + }.onFailure { + it.printStackTrace() + } + } + // Sad panda check Settings.gallerySite = EhUrl.SITE_EX EhEngine.getUConfig() }.onFailure { Settings.gallerySite = EhUrl.SITE_E - launch { - runCatching { - EhEngine.getUConfig() - }.onFailure { - it.printStackTrace() - } - } }.isSuccess } diff --git a/app/src/main/java/com/hippo/ehviewer/ui/login/SelectSiteScreen.kt b/app/src/main/java/com/hippo/ehviewer/ui/login/SelectSiteScreen.kt index 8c5d90de4..683dd5c93 100644 --- a/app/src/main/java/com/hippo/ehviewer/ui/login/SelectSiteScreen.kt +++ b/app/src/main/java/com/hippo/ehviewer/ui/login/SelectSiteScreen.kt @@ -27,7 +27,6 @@ import androidx.compose.runtime.Composable import androidx.compose.runtime.getValue import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.remember -import androidx.compose.runtime.rememberCoroutineScope import androidx.compose.runtime.setValue import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier @@ -37,15 +36,12 @@ import androidx.compose.ui.res.stringResource import androidx.compose.ui.unit.dp import com.hippo.ehviewer.R import com.hippo.ehviewer.Settings -import com.hippo.ehviewer.client.EhEngine import com.hippo.ehviewer.client.EhUrl import com.hippo.ehviewer.ui.FINISH_ROUTE_NAME import com.hippo.ehviewer.ui.LocalNavController -import eu.kanade.tachiyomi.util.lang.launchNonCancellable @Composable fun SelectSiteScreen() { - val coroutineScope = rememberCoroutineScope() var siteEx by remember { mutableStateOf(true) } val navController = LocalNavController.current @@ -101,20 +97,9 @@ fun SelectSiteScreen() { Box(modifier = Modifier.padding(horizontal = 12.dp).padding(top = 4.dp, bottom = 20.dp).fillMaxWidth()) { Button( onClick = { + // Gallery site was set to ex in sad panda check + if (!siteEx) Settings.gallerySite = EhUrl.SITE_E Settings.needSignIn = false - coroutineScope.launchNonCancellable { - runCatching { - if (!siteEx) { - Settings.gallerySite = EhUrl.SITE_E - EhEngine.getUConfig() - } else { - // Get cookies for image limits - EhEngine.getUConfig(EhUrl.URL_UCONFIG_E) - } - }.onFailure { - it.printStackTrace() - } - } navController.navigate(FINISH_ROUTE_NAME) }, modifier = Modifier.fillMaxWidth(), diff --git a/app/src/main/java/com/hippo/ehviewer/ui/login/SignInScreen.kt b/app/src/main/java/com/hippo/ehviewer/ui/login/SignInScreen.kt index d750f778a..115e794ff 100644 --- a/app/src/main/java/com/hippo/ehviewer/ui/login/SignInScreen.kt +++ b/app/src/main/java/com/hippo/ehviewer/ui/login/SignInScreen.kt @@ -117,7 +117,6 @@ fun SignInScreen(windowSizeClass: WindowSizeClass) { runCatching { EhEngine.signIn(username, password) }.onFailure { - it.printStackTrace() withUIContext { focusManager.clearFocus() dialogState.show(