Fix duplicate getUConfig() call

This commit is contained in:
FooIbar authored and tarsin committed 2023-06-29 07:11:57 +08:00
1 parent 0c560518c8
commit 15696f4e6e
6 files changed
+28 -34

No files matched your search

@@ -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()
}
}
}
}
@@ -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
}
@@ -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 },
@@ -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
}
@@ -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(),
@@ -117,7 +117,6 @@ fun SignInScreen(windowSizeClass: WindowSizeClass) {
runCatching {
EhEngine.signIn(username, password)
}.onFailure {
it.printStackTrace()
withUIContext {
focusManager.clearFocus()
dialogState.show(