@@ -65,7 +65,6 @@ import com.ichi2.anki.model.CardStateFilter
6565import com.ichi2.anki.noteeditor.EditCardDestination
6666import com.ichi2.anki.noteeditor.toIntent
6767import com.ichi2.anki.pages.AnkiServer
68- import com.ichi2.anki.pages.AnkiServer.Companion.LOCALHOST
6968import com.ichi2.anki.pages.CongratsPage
7069import com.ichi2.anki.pages.PostRequestHandler
7170import com.ichi2.anki.preferences.sharedPrefs
@@ -232,9 +231,8 @@ abstract class AbstractFlashcardViewer :
232231 @get:VisibleForTesting
233232 var cardContent: String? = null
234233 private set
235- private val baseUrl get() = server.baseUrl()
236- private val webviewDomain
237- get() = " $LOCALHOST :${server.listeningPort} "
234+ private val baseUrl
235+ get() = getMediaBaseUrl(CollectionHelper .getMediaDirectory(this ).path)
238236
239237 private var viewerUrl: String? = null
240238 private val fadeDuration = 300
@@ -994,7 +992,6 @@ abstract class AbstractFlashcardViewer :
994992 }
995993
996994 protected open fun createWebView (): WebView {
997- val resourceHandler = ViewerResourceHandler (this , webviewDomain)
998995 val webView: WebView = MyWebView (this ).apply {
999996 scrollBarStyle = View .SCROLLBARS_OUTSIDE_OVERLAY
1000997 with (settings) {
@@ -1012,7 +1009,7 @@ abstract class AbstractFlashcardViewer :
10121009 isScrollbarFadingEnabled = true
10131010 // Set transparent color to prevent flashing white when night mode enabled
10141011 setBackgroundColor(Color .argb(1 , 0 , 0 , 0 ))
1015- CardViewerWebClient (resourceHandler, this @AbstractFlashcardViewer).apply {
1012+ CardViewerWebClient (this @AbstractFlashcardViewer).apply {
10161013 webViewClient = this
10171014 this @AbstractFlashcardViewer.webViewClient = this
10181015 }
@@ -2235,7 +2232,6 @@ abstract class AbstractFlashcardViewer :
22352232 }
22362233
22372234 inner class CardViewerWebClient internal constructor(
2238- private val loader : ViewerResourceHandler ? ,
22392235 private val onPageFinishedCallback : OnPageFinishedCallback ? = null
22402236 ) : WebViewClient(), JavascriptEvaluator {
22412237 private var pageFinishedFired = true
@@ -2256,14 +2252,16 @@ abstract class AbstractFlashcardViewer :
22562252 override fun onPageStarted (view : WebView ? , url : String? , favicon : Bitmap ? ) {
22572253 pageRenderStopwatch.reset()
22582254 pageFinishedFired = false
2255+ val script = " globalThis.ankidroid = globalThis.ankidroid || {};" +
2256+ " ankidroid.postBaseUrl = `${server.baseUrl()} `"
2257+ view?.evaluateJavascript(script, null )
22592258 }
22602259
22612260 override fun shouldInterceptRequest (
22622261 view : WebView ,
22632262 request : WebResourceRequest
22642263 ): WebResourceResponse ? {
22652264 val url = request.url
2266- loader!! .shouldInterceptRequest(request)?.let { return it }
22672265 if (url.toString().startsWith(" file://" )) {
22682266 url.path?.let { path -> migrationService?.migrateFileImmediately(File (path)) }
22692267 }
0 commit comments