diff --git a/.idea/gradle.xml b/.idea/gradle.xml index 2c7e03473..526b4c25c 100644 --- a/.idea/gradle.xml +++ b/.idea/gradle.xml @@ -7,7 +7,6 @@ - diff --git a/.idea/misc.xml b/.idea/misc.xml index 470028385..860da66a5 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -1,6 +1,6 @@ - + diff --git a/.idea/runConfigurations.xml b/.idea/runConfigurations.xml deleted file mode 100644 index 7f68460d8..000000000 --- a/.idea/runConfigurations.xml +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - - - - - - \ No newline at end of file diff --git a/app/src/main/java/org/koitharu/kotatsu/browser/BrowserActivity.kt b/app/src/main/java/org/koitharu/kotatsu/browser/BrowserActivity.kt index da6a65805..867c5e3fc 100644 --- a/app/src/main/java/org/koitharu/kotatsu/browser/BrowserActivity.kt +++ b/app/src/main/java/org/koitharu/kotatsu/browser/BrowserActivity.kt @@ -33,6 +33,10 @@ class BrowserActivity : BaseActivity(), BrowserCallback if (url.isNullOrEmpty()) { finishAfterTransition() } else { + onTitleChanged( + intent?.getStringExtra(EXTRA_TITLE) ?: getString(R.string.loading_), + url + ) binding.webView.loadUrl(url) } } @@ -94,7 +98,12 @@ class BrowserActivity : BaseActivity(), BrowserCallback companion object { - fun newIntent(context: Context, url: String) = Intent(context, BrowserActivity::class.java) - .setData(Uri.parse(url)) + private const val EXTRA_TITLE = "title" + + fun newIntent(context: Context, url: String, title: String?): Intent { + return Intent(context, BrowserActivity::class.java) + .setData(Uri.parse(url)) + .putExtra(EXTRA_TITLE, title) + } } } \ No newline at end of file diff --git a/app/src/main/java/org/koitharu/kotatsu/browser/BrowserClient.kt b/app/src/main/java/org/koitharu/kotatsu/browser/BrowserClient.kt index 683893bba..d6d5f2de6 100644 --- a/app/src/main/java/org/koitharu/kotatsu/browser/BrowserClient.kt +++ b/app/src/main/java/org/koitharu/kotatsu/browser/BrowserClient.kt @@ -1,16 +1,15 @@ package org.koitharu.kotatsu.browser import android.graphics.Bitmap -import android.webkit.WebResourceRequest import android.webkit.WebResourceResponse import android.webkit.WebView -import android.webkit.WebViewClient import okhttp3.OkHttpClient import okhttp3.Request import org.koin.core.component.KoinComponent import org.koin.core.component.inject +import org.koitharu.kotatsu.core.network.WebViewClientCompat -class BrowserClient(private val callback: BrowserCallback) : WebViewClient(), KoinComponent { +class BrowserClient(private val callback: BrowserCallback) : WebViewClientCompat(), KoinComponent { private val okHttp by inject() @@ -29,31 +28,18 @@ class BrowserClient(private val callback: BrowserCallback) : WebViewClient(), Ko callback.onTitleChanged(view.title.orEmpty(), url) } - override fun shouldOverrideUrlLoading(view: WebView?, request: WebResourceRequest?) = false - - override fun shouldOverrideUrlLoading(view: WebView, url: String) = false - - override fun shouldInterceptRequest(view: WebView?, url: String?): WebResourceResponse? { - return url?.let(::doRequest) + override fun shouldInterceptRequestCompat(view: WebView, url: String): WebResourceResponse? { + return runCatching { + val request = Request.Builder() + .url(url) + .build() + val response = okHttp.newCall(request).execute() + val ct = response.body?.contentType() + WebResourceResponse( + "${ct?.type}/${ct?.subtype}", + ct?.charset()?.name() ?: "utf-8", + response.body?.byteStream() + ) + }.getOrNull() } - - override fun shouldInterceptRequest( - view: WebView?, - request: WebResourceRequest? - ): WebResourceResponse? { - return request?.url?.toString()?.let(::doRequest) - } - - private fun doRequest(url: String): WebResourceResponse? = runCatching { - val request = Request.Builder() - .url(url) - .build() - val response = okHttp.newCall(request).execute() - val ct = response.body?.contentType() - WebResourceResponse( - "${ct?.type}/${ct?.subtype}", - ct?.charset()?.name() ?: "utf-8", - response.body?.byteStream() - ) - }.getOrNull() } \ No newline at end of file diff --git a/app/src/main/java/org/koitharu/kotatsu/details/ui/DetailsActivity.kt b/app/src/main/java/org/koitharu/kotatsu/details/ui/DetailsActivity.kt index 1c91d09e5..e431d232b 100644 --- a/app/src/main/java/org/koitharu/kotatsu/details/ui/DetailsActivity.kt +++ b/app/src/main/java/org/koitharu/kotatsu/details/ui/DetailsActivity.kt @@ -183,7 +183,7 @@ class DetailsActivity : BaseActivity(), } R.id.action_browser -> { viewModel.manga.value?.let { - startActivity(BrowserActivity.newIntent(this, it.url)) + startActivity(BrowserActivity.newIntent(this, it.url, it.title)) } true } diff --git a/app/src/main/java/org/koitharu/kotatsu/main/ui/MainActivity.kt b/app/src/main/java/org/koitharu/kotatsu/main/ui/MainActivity.kt index a0e90f9dc..e86308b7d 100644 --- a/app/src/main/java/org/koitharu/kotatsu/main/ui/MainActivity.kt +++ b/app/src/main/java/org/koitharu/kotatsu/main/ui/MainActivity.kt @@ -80,8 +80,10 @@ class MainActivity : BaseActivity(), } ?: run { openDefaultSection() } - TrackWorker.setup(applicationContext) - AppUpdateChecker(this).launchIfNeeded() + if (savedInstanceState == null) { + TrackWorker.setup(applicationContext) + AppUpdateChecker(this).launchIfNeeded() + } viewModel.onOpenReader.observe(this, this::onOpenReader) viewModel.onError.observe(this, this::onError)