Skip to content

Commit e55cae2

Browse files
BrayanDSOmikehardy
authored andcommitted
feat: use media directory as the Reviewer baseUrl
that makes the baseUrl always the same, so `localStorage` works again also loads media with the `file` scheme by default, which is faster
1 parent 5f6ce47 commit e55cae2

File tree

2 files changed

+6
-117
lines changed

2 files changed

+6
-117
lines changed

AnkiDroid/src/main/java/com/ichi2/anki/AbstractFlashcardViewer.kt

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,6 @@ import com.ichi2.anki.model.CardStateFilter
6565
import com.ichi2.anki.noteeditor.EditCardDestination
6666
import com.ichi2.anki.noteeditor.toIntent
6767
import com.ichi2.anki.pages.AnkiServer
68-
import com.ichi2.anki.pages.AnkiServer.Companion.LOCALHOST
6968
import com.ichi2.anki.pages.CongratsPage
7069
import com.ichi2.anki.pages.PostRequestHandler
7170
import 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
}

AnkiDroid/src/main/java/com/ichi2/anki/ViewerResourceHandler.kt

Lines changed: 0 additions & 109 deletions
This file was deleted.

0 commit comments

Comments
 (0)