From 4dfc7ec1a1c025ec7106169575d22dfedaff9b8c Mon Sep 17 00:00:00 2001 From: Phillip Thelen Date: Tue, 15 Nov 2022 13:59:49 +0100 Subject: [PATCH] fix crash # Conflicts: # Habitica/src/main/java/com/habitrpg/android/habitica/helpers/AppConfigManager.kt --- Habitica/AndroidManifest.xml | 1 - .../habitica/helpers/AppConfigManager.kt | 16 ++++++---- .../habitica/helpers/TaskAlarmManager.kt | 6 +++- .../habitica/ui/fragments/NewsFragment.kt | 32 +++++++++++++++++-- 4 files changed, 45 insertions(+), 10 deletions(-) diff --git a/Habitica/AndroidManifest.xml b/Habitica/AndroidManifest.xml index 447f79bdd..39e9edf19 100644 --- a/Habitica/AndroidManifest.xml +++ b/Habitica/AndroidManifest.xml @@ -30,7 +30,6 @@ android:value="@string/application_ad_id"/> () { @@ -29,13 +32,38 @@ class NewsFragment : BaseMainFragment() { return super.onCreateView(inflater, container, savedInstanceState) } + private val webviewClient = object : WebViewClient() { + + override fun shouldOverrideUrlLoading(view: WebView?, url: String?): Boolean { + if (url?.contains("/static/new-stuff") == true) { + view?.loadUrl(url) + } else if (url != null) { + MainNavigationController.navigate(url) + } + return true + } + + override fun shouldOverrideUrlLoading( + view: WebView?, + request: WebResourceRequest? + ): Boolean { + if (request?.url?.path == "/static/new-stuff") { + view?.loadUrl(request.url.toString()) + } else { + request?.url?.let { MainNavigationController.navigate(it) } + } + return true + } + } + @SuppressLint("SetJavaScriptEnabled") override fun onViewCreated(view: View, savedInstanceState: Bundle?) { super.onViewCreated(view, savedInstanceState) - val address = if (BuildConfig.DEBUG) BuildConfig.BASE_URL else context?.getString(R.string.base_url) + val address = context?.getString(R.string.base_url) val webSettings = binding?.newsWebview?.settings webSettings?.javaScriptEnabled = true webSettings?.domStorageEnabled = true + binding?.newsWebview?.webViewClient = webviewClient binding?.newsWebview?.webChromeClient = object : WebChromeClient() { } binding?.newsWebview?.loadUrl("$address/static/new-stuff")