Skip to content

Commit 9a88f8d

Browse files
authored
Merge pull request #1635 from DimensionDev/bugfix/xqt_login
fix xqt login
2 parents b73467e + 750290f commit 9a88f8d

File tree

2 files changed

+17
-9
lines changed

2 files changed

+17
-9
lines changed

app/src/main/java/dev/dimension/flare/ui/screen/serviceselect/VVOLoginScreen.kt

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,5 @@
11
package dev.dimension.flare.ui.screen.serviceselect
22

3-
import android.graphics.Color
4-
import android.view.View
53
import android.view.ViewGroup.LayoutParams
64
import android.webkit.CookieManager
75
import android.widget.FrameLayout
@@ -14,6 +12,7 @@ import androidx.compose.runtime.LaunchedEffect
1412
import androidx.compose.runtime.getValue
1513
import androidx.compose.runtime.remember
1614
import androidx.compose.ui.Modifier
15+
import androidx.compose.ui.draw.alpha
1716
import com.kevinnzou.web.WebView
1817
import com.kevinnzou.web.rememberWebViewState
1918
import dev.dimension.flare.ui.component.FlareScaffold
@@ -55,12 +54,11 @@ internal fun VVOLoginScreen(toHome: () -> Unit) {
5554
),
5655
modifier =
5756
Modifier
57+
.alpha(0.99f)
5858
.background(MaterialTheme.colorScheme.background)
5959
.padding(it)
6060
.fillMaxSize(),
6161
onCreated = {
62-
it.setLayerType(View.LAYER_TYPE_SOFTWARE, null)
63-
it.setBackgroundColor(Color.TRANSPARENT)
6462
// clea all cookies
6563
CookieManager.getInstance().removeAllCookies(null)
6664
with(it.settings) {

app/src/main/java/dev/dimension/flare/ui/screen/serviceselect/XQTLoginScreen.kt

Lines changed: 15 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,9 @@
11
package dev.dimension.flare.ui.screen.serviceselect
22

3-
import android.graphics.Color
4-
import android.view.View
53
import android.view.ViewGroup.LayoutParams
64
import android.webkit.CookieManager
75
import android.webkit.WebSettings
6+
import android.webkit.WebStorage
87
import android.widget.FrameLayout
98
import androidx.compose.foundation.background
109
import androidx.compose.foundation.layout.fillMaxSize
@@ -15,6 +14,7 @@ import androidx.compose.runtime.LaunchedEffect
1514
import androidx.compose.runtime.getValue
1615
import androidx.compose.runtime.remember
1716
import androidx.compose.ui.Modifier
17+
import androidx.compose.ui.draw.alpha
1818
import com.kevinnzou.web.WebView
1919
import com.kevinnzou.web.rememberWebViewState
2020
import dev.dimension.flare.ui.component.FlareScaffold
@@ -25,10 +25,19 @@ import kotlinx.coroutines.delay
2525
import moe.tlaster.precompose.molecule.producePresenter
2626
import kotlin.time.Duration.Companion.seconds
2727

28+
// https://github.com/j-fbriere/squawker/blob/20ab95b1b5cdada080aa8ebd1d5e0f3ad7c719e5/lib/constants.dart#L87-L93
29+
// idk why it works but it works
30+
private val userAgent =
31+
mapOf(
32+
"user-agent" to "Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/123.0.0.0 Mobile Safari/537.3",
33+
"Pragma" to "no-cache",
34+
"Cache-Control" to "no-cache",
35+
)
36+
2837
@Composable
2938
internal fun XQTLoginScreen(toHome: () -> Unit) {
3039
val state by producePresenter { xQtLoginPresenter(toHome) }
31-
val webViewState = rememberWebViewState("https://${UiApplication.XQT.host}")
40+
val webViewState = rememberWebViewState("https://${UiApplication.XQT.host}/i/flow/login")
3241
LaunchedEffect(Unit) {
3342
while (true) {
3443
if (!state.loading) {
@@ -56,15 +65,16 @@ internal fun XQTLoginScreen(toHome: () -> Unit) {
5665
),
5766
modifier =
5867
Modifier
68+
.alpha(0.99f)
5969
.background(MaterialTheme.colorScheme.background)
6070
.padding(it)
6171
.fillMaxSize(),
6272
onCreated = {
63-
it.setLayerType(View.LAYER_TYPE_SOFTWARE, null)
64-
it.setBackgroundColor(Color.TRANSPARENT)
6573
// clea all cookies
74+
WebStorage.getInstance().deleteAllData()
6675
CookieManager.getInstance().removeAllCookies(null)
6776
with(it.settings) {
77+
userAgentString = userAgent.toString()
6878
javaScriptEnabled = true
6979
domStorageEnabled = true
7080
javaScriptCanOpenWindowsAutomatically = false

0 commit comments

Comments
 (0)