diff --git a/app/src/main/java/com/futo/platformplayer/activities/LoginActivity.kt b/app/src/main/java/com/futo/platformplayer/activities/LoginActivity.kt index 1dc4376e..f072c549 100644 --- a/app/src/main/java/com/futo/platformplayer/activities/LoginActivity.kt +++ b/app/src/main/java/com/futo/platformplayer/activities/LoginActivity.kt @@ -76,6 +76,10 @@ class LoginActivity : AppCompatActivity() { }; var isFirstLoad = true; val loginWarnings = authConfig.loginWarnings?.toMutableList() ?: mutableListOf(); + val uiMods = authConfig.uiMods?.toMutableList() ?: mutableListOf(); + var currentScale = 100; + var currentDesktop = false; + _webView.setInitialScale(50); webViewClient.onPageLoaded.subscribe { view, url -> _textUrl.setText(url ?: ""); @@ -89,9 +93,9 @@ class LoginActivity : AppCompatActivity() { view?.evaluateJavascript("setTimeout(()=> document.querySelector(\"${authConfig.loginButton}\")?.click(), 1000)", {}); } - if(loginWarnings.size > 0) { + if(loginWarnings.size > 0 && url != null) { synchronized(loginWarnings) { - val warning = loginWarnings.find { it.url.matches(it.getRegex()) }; + val warning = loginWarnings.find { url.matches(it.getRegex()) }; if(warning != null) { if(warning.once == true) loginWarnings.remove(warning); @@ -101,6 +105,35 @@ class LoginActivity : AppCompatActivity() { } } } + + /* + var specifiedScale = false; + var specifiedDesktop = false; + if(uiMods.size > 0 && url != null) { + synchronized(uiMods) { + val uimod = uiMods.find { url.matches(it.getRegex()) }; + if(uimod != null) { + if(uimod.scale != null) { + currentScale =(uimod.scale * 100).toInt(); + _webView.setInitialScale(currentScale); + specifiedScale = true; + } + if(uimod.desktop != null && uimod.desktop) { + _webView.settings.useWideViewPort = true; + specifiedDesktop = true; + } + } + } + } + if(!specifiedScale && currentScale != 100) { + currentScale = (100).toInt(); + _webView.setInitialScale(currentScale); + } + if(!specifiedDesktop && currentDesktop) { + _webView.settings.useWideViewPort = false; + currentDesktop = false; + } + */ } _webView.settings.domStorageEnabled = true; diff --git a/app/src/main/java/com/futo/platformplayer/api/media/platforms/js/SourcePluginAuthConfig.kt b/app/src/main/java/com/futo/platformplayer/api/media/platforms/js/SourcePluginAuthConfig.kt index 8821c79e..4a05a720 100644 --- a/app/src/main/java/com/futo/platformplayer/api/media/platforms/js/SourcePluginAuthConfig.kt +++ b/app/src/main/java/com/futo/platformplayer/api/media/platforms/js/SourcePluginAuthConfig.kt @@ -16,7 +16,8 @@ class SourcePluginAuthConfig( val loginButton: String? = null, val domainHeadersToFind: Map>? = null, val loginWarning: String? = null, - val loginWarnings: List? = null + val loginWarnings: List? = null, + val uiMods: List? = null ) { @Serializable @@ -29,6 +30,23 @@ class SourcePluginAuthConfig( @Contextual private var _regex: Regex? = null; + fun getRegex(): Regex { + return _regex ?: url.let { + val reg = Regex(it); + _regex = reg; + return reg; + } + } + } + @Serializable + class UIMod( + val url: String, + val scale: Float?, + val desktop: Boolean? + ) { + @Contextual + private var _regex: Regex? = null; + fun getRegex(): Regex { return _regex ?: url.let { val reg = Regex(it);