Fix title in BrowserActivity

pull/26/head
Koitharu 5 years ago
parent 0e384c134d
commit 33296217a4

@ -7,7 +7,6 @@
<option name="testRunner" value="GRADLE" /> <option name="testRunner" value="GRADLE" />
<option name="distributionType" value="DEFAULT_WRAPPED" /> <option name="distributionType" value="DEFAULT_WRAPPED" />
<option name="externalProjectPath" value="$PROJECT_DIR$" /> <option name="externalProjectPath" value="$PROJECT_DIR$" />
<option name="gradleJvm" value="1.8" />
<option name="modules"> <option name="modules">
<set> <set>
<option value="$PROJECT_DIR$" /> <option value="$PROJECT_DIR$" />

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<project version="4"> <project version="4">
<component name="ProjectRootManager" version="2" languageLevel="JDK_11" default="false" project-jdk-name="1.8" project-jdk-type="JavaSDK"> <component name="ProjectRootManager" version="2" languageLevel="JDK_11" default="true" project-jdk-name="1.8" project-jdk-type="JavaSDK">
<output url="file://$PROJECT_DIR$/build/classes" /> <output url="file://$PROJECT_DIR$/build/classes" />
</component> </component>
<component name="ProjectType"> <component name="ProjectType">

@ -1,12 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="RunConfigurationProducerService">
<option name="ignoredProducers">
<set>
<option value="org.jetbrains.plugins.gradle.execution.test.runner.AllInPackageGradleConfigurationProducer" />
<option value="org.jetbrains.plugins.gradle.execution.test.runner.TestClassGradleConfigurationProducer" />
<option value="org.jetbrains.plugins.gradle.execution.test.runner.TestMethodGradleConfigurationProducer" />
</set>
</option>
</component>
</project>

@ -33,6 +33,10 @@ class BrowserActivity : BaseActivity<ActivityBrowserBinding>(), BrowserCallback
if (url.isNullOrEmpty()) { if (url.isNullOrEmpty()) {
finishAfterTransition() finishAfterTransition()
} else { } else {
onTitleChanged(
intent?.getStringExtra(EXTRA_TITLE) ?: getString(R.string.loading_),
url
)
binding.webView.loadUrl(url) binding.webView.loadUrl(url)
} }
} }
@ -94,7 +98,12 @@ class BrowserActivity : BaseActivity<ActivityBrowserBinding>(), BrowserCallback
companion object { companion object {
fun newIntent(context: Context, url: String) = Intent(context, BrowserActivity::class.java) 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)) .setData(Uri.parse(url))
.putExtra(EXTRA_TITLE, title)
}
} }
} }

@ -1,16 +1,15 @@
package org.koitharu.kotatsu.browser package org.koitharu.kotatsu.browser
import android.graphics.Bitmap import android.graphics.Bitmap
import android.webkit.WebResourceRequest
import android.webkit.WebResourceResponse import android.webkit.WebResourceResponse
import android.webkit.WebView import android.webkit.WebView
import android.webkit.WebViewClient
import okhttp3.OkHttpClient import okhttp3.OkHttpClient
import okhttp3.Request import okhttp3.Request
import org.koin.core.component.KoinComponent import org.koin.core.component.KoinComponent
import org.koin.core.component.inject 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<OkHttpClient>() private val okHttp by inject<OkHttpClient>()
@ -29,22 +28,8 @@ class BrowserClient(private val callback: BrowserCallback) : WebViewClient(), Ko
callback.onTitleChanged(view.title.orEmpty(), url) callback.onTitleChanged(view.title.orEmpty(), url)
} }
override fun shouldOverrideUrlLoading(view: WebView?, request: WebResourceRequest?) = false override fun shouldInterceptRequestCompat(view: WebView, url: String): WebResourceResponse? {
return runCatching {
override fun shouldOverrideUrlLoading(view: WebView, url: String) = false
override fun shouldInterceptRequest(view: WebView?, url: String?): WebResourceResponse? {
return url?.let(::doRequest)
}
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() val request = Request.Builder()
.url(url) .url(url)
.build() .build()
@ -56,4 +41,5 @@ class BrowserClient(private val callback: BrowserCallback) : WebViewClient(), Ko
response.body?.byteStream() response.body?.byteStream()
) )
}.getOrNull() }.getOrNull()
}
} }

@ -183,7 +183,7 @@ class DetailsActivity : BaseActivity<ActivityDetailsBinding>(),
} }
R.id.action_browser -> { R.id.action_browser -> {
viewModel.manga.value?.let { viewModel.manga.value?.let {
startActivity(BrowserActivity.newIntent(this, it.url)) startActivity(BrowserActivity.newIntent(this, it.url, it.title))
} }
true true
} }

@ -80,8 +80,10 @@ class MainActivity : BaseActivity<ActivityMainBinding>(),
} ?: run { } ?: run {
openDefaultSection() openDefaultSection()
} }
if (savedInstanceState == null) {
TrackWorker.setup(applicationContext) TrackWorker.setup(applicationContext)
AppUpdateChecker(this).launchIfNeeded() AppUpdateChecker(this).launchIfNeeded()
}
viewModel.onOpenReader.observe(this, this::onOpenReader) viewModel.onOpenReader.observe(this, this::onOpenReader)
viewModel.onError.observe(this, this::onError) viewModel.onError.observe(this, this::onError)

Loading…
Cancel
Save