Skip to content
This repository has been archived by the owner on Jul 16, 2024. It is now read-only.

Customize chrome custom tabs #425

Merged
merged 8 commits into from
Jul 21, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ class MainHomeFragment : BaseBindingFragment<MainHomeFragmentBinding>() {

private val listener = View.OnClickListener {
when (it) {
binding.bt1 -> RouterManager.goWeb(requireContext(), "bilibili.com")
binding.bt1 -> RouterManager.goWeb(requireContext(), "https://bilibili.com", true)
binding.bt4 -> vm.countDown()
binding.bt6 -> FullScreenDialogFragment.show(childFragmentManager)
binding.bt7 -> RouterManager.goAudioPlay(requireContext())
Expand Down
35 changes: 27 additions & 8 deletions biz/web/src/main/kotlin/io/goooler/demoapp/web/WebActivity.kt
Original file line number Diff line number Diff line change
Expand Up @@ -3,12 +3,16 @@ package io.goooler.demoapp.web
import android.content.Intent
import android.os.Bundle
import android.view.View
import androidx.browser.customtabs.CustomTabColorSchemeParams
import androidx.browser.customtabs.CustomTabsIntent
import androidx.core.net.toUri
import com.blankj.utilcode.util.BarUtils
import io.goooler.demoapp.base.util.addFragment
import io.goooler.demoapp.common.base.binding.BaseBindingActivity
import io.goooler.demoapp.common.router.RouterManager
import io.goooler.demoapp.common.util.getColor
import io.goooler.demoapp.common.util.getDrawable
import io.goooler.demoapp.common.util.toBitmap
import io.goooler.demoapp.web.databinding.WebActivityBinding

class WebActivity : BaseBindingActivity<WebActivityBinding>() {
Expand All @@ -21,19 +25,34 @@ class WebActivity : BaseBindingActivity<WebActivityBinding>() {
binding.listener = listener
intent.extras?.getString(RouterManager.PARAMS)?.let { url ->
if (intent.action == RouterManager.USE_CHROME) {
CustomTabsIntent.Builder()
.build()
.launchUrl(this, url.toUri())
finish()
useChrome(url)
} else {
webFragment = WebFragment(url).also {
it.onEventListener = listener
addFragment(it, R.id.fragment_container)
}
useWebView(url)
}
}
}

private fun useChrome(url: String) {
val colorSchemeParams = CustomTabColorSchemeParams.Builder()
.setToolbarColor(io.goooler.demoapp.common.R.color.common_3F9FE0.getColor())
.build()
val closeButtonIcon = io.goooler.demoapp.common.R.drawable.common_ic_back.getDrawable()?.toBitmap()
CustomTabsIntent.Builder()
.setDefaultColorSchemeParams(colorSchemeParams)
.apply { closeButtonIcon?.let { setCloseButtonIcon(it) } }
.setShareState(CustomTabsIntent.SHARE_STATE_OFF)
.build()
.launchUrl(this, url.toUri())
finish()
}

private fun useWebView(uri: String) {
webFragment = WebFragment(uri).also {
it.onEventListener = listener
addFragment(it, R.id.fragment_container)
}
}

private val listener = object : View.OnClickListener, WebFragment.OnEventListener {
override fun onClick(v: View) {
when (v) {
Expand Down