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

Commit

Permalink
Customize chrome custom tabs (#425)
Browse files Browse the repository at this point in the history
  • Loading branch information
Goooler authored Jul 21, 2023
1 parent f68b4f7 commit dce1277
Show file tree
Hide file tree
Showing 2 changed files with 28 additions and 9 deletions.
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

0 comments on commit dce1277

Please sign in to comment.