| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182 |
- package com.adealink.weparty
- import android.content.Intent
- import android.graphics.drawable.ColorDrawable
- import android.os.Bundle
- import android.view.WindowManager
- import androidx.fragment.app.FragmentContainerView
- import com.adealink.frame.aab.util.getCompatColor
- import com.adealink.frame.log.Log
- import com.adealink.frame.push.data.KEY_PUSH_DEEPLINK
- import com.adealink.frame.push.data.KEY_PUSH_ID
- import com.adealink.frame.push.data.KEY_PUSH_MESSAGE_TYPE
- import com.adealink.frame.router.Router
- import com.adealink.frame.router.annotation.BindExtra
- import com.adealink.frame.router.annotation.RouterUri
- import com.adealink.frame.router.manager.deeplinkRouterManager
- import com.adealink.weparty.commonui.BaseActivity
- import com.adealink.weparty.module.account.Account
- import com.adealink.weparty.module.account.AccountModule
- import com.adealink.weparty.push.PushStatEvent
- import com.adealink.weparty.storage.AppPref
- import com.adealink.weparty.ui.MainStartUpFragment
- import com.adealink.weparty.ui.home.HomeFragment
- import com.adealink.weparty.update.updateManager
- import com.adealink.weparty.util.goLocalLinkPage
- import com.qmuiteam.qmui.widget.util.QMUIStatusBarHelper
- @RouterUri(path = [AppModule.Main.PATH], desc = "首页")
- class MainActivity : BaseActivity() {
- companion object {
- private const val TAG = "MainActivity"
- }
- enum class DispatchFrom {
- ON_CREATE,
- ON_NEW_INTENT
- }
- @BindExtra(AppModule.Main.EXTRA_MAIN_TAB)
- var mainTabKey: String? = ""
- @BindExtra(AppModule.Main.EXTRA_MAIN_SUB_TAB)
- var subTabKey: String? = ""
- private var dispatchRouter = false
- override val routeSubPage: Boolean
- get() = !dispatchRouter
- override val forceFitNavigationBar: Boolean
- get() = true
- override fun onBeforeCreate() {
- super.onBeforeCreate()
- android.util.Log.d(TAG, "onCreate")
- Router.bind(this)
- }
- override fun onAfterSuperCreate(): Boolean {
- if (!isTaskRoot) {
- finish()
- return false
- }
- return true
- }
- override fun initViews() {
- super.initViews()
- //还原启动图背景,清除全屏模式
- window.setBackgroundDrawable(ColorDrawable(getCompatColor(R.color.white)))
- window.clearFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN)
- QMUIStatusBarHelper.setStatusBarLightMode(this)
- setContentView(FragmentContainerView(this).apply {
- id = R.id.fl_content
- })
- dispatch(intent, DispatchFrom.ON_CREATE)
- }
- override fun initOthers() {
- super.initOthers()
- // reportAppOpenIfNeed(false)
- // serveReportManager.reportFirebaseAppInstanceId()
- }
- override fun onResume() {
- super.onResume()
- updateManager.checkUpdate(this)
- }
- override fun handleNewIntent(intent: Intent?) {
- super.handleNewIntent(intent)
- setIntent(intent)
- intent?.extras?.let {
- mainTabKey = it.getString(AppModule.Main.EXTRA_MAIN_TAB)
- subTabKey = it.getString(AppModule.Main.EXTRA_MAIN_SUB_TAB)
- }
- dispatch(intent, DispatchFrom.ON_NEW_INTENT)
- }
- private fun dispatch(intent: Intent?, from: DispatchFrom) {
- when {
- needGoLoginActivity() -> {
- Log.d(TAG, "needGoLoginActivity")
- Router.build(this, Account.Login.PATH)
- .putExtras(intent?.extras ?: Bundle())
- .start()
- finish()
- return
- }
- needGoRegisterActivity() -> {
- Log.d(TAG, "needGoRegisterActivity")
- Router.build(this, Account.Register.PATH)
- .putExtras(intent?.extras ?: Bundle())
- .start()
- finish()
- return
- }
- }
- inflateHomeFragment(from)
- intent ?: return
- val pushDeeplink = intent.getStringExtra(KEY_PUSH_DEEPLINK)
- if (!pushDeeplink.isNullOrEmpty()) {
- Log.d(TAG, "dispatchPath, pushDeeplink:$pushDeeplink")
- PushStatEvent(PushStatEvent.Action.CLICK).apply {
- type to (intent.extras?.getString(KEY_PUSH_MESSAGE_TYPE) ?: "1")
- pushId to (intent.extras?.getString(KEY_PUSH_ID) ?: "1")
- source to "new_fcm_push"
- deeplink to pushDeeplink
- }.send()
- goLocalLinkPage(this, pushDeeplink)
- return
- }
- val dispatchPath = intent.getStringExtra(deeplinkRouterManager.getDispatchPathKey())
- if (!dispatchPath.isNullOrEmpty()) {
- Log.d(TAG, "dispatchPath, path:$dispatchPath")
- if (dispatchPath.startsWith(Router.getDeepLink(AppModule.Main.PATH))) {
- return
- }
- dispatchRouter = true
- Router.build(this, dispatchPath).putExtras(intent).start()
- return
- }
- val splashBannerUrl = intent.getStringExtra(AppModule.Main.EXTRA_SPLASH_JUMP_URL)
- if (!splashBannerUrl.isNullOrEmpty()) {
- Log.d(TAG, "dispatchPath, splashBannerUrl:$splashBannerUrl")
- goLocalLinkPage(this, splashBannerUrl)
- return
- }
- }
- private fun needGoLoginActivity(): Boolean {
- return true
- //return !AccountModule.isLogin()
- }
- private fun needGoRegisterActivity(): Boolean {
- return AppPref.needRegister
- }
- private fun inflateHomeFragment(from: DispatchFrom) {
- var homeFragment =
- supportFragmentManager.findFragmentByTag(HomeFragment.TAG) as? HomeFragment
- if (homeFragment?.isAdded == true && from == DispatchFrom.ON_CREATE) {
- return
- }
- homeFragment = homeFragment ?: HomeFragment.newInstance(
- mainTabKey, subTabKey
- )
- supportFragmentManager.beginTransaction()
- .replace(R.id.fl_content, homeFragment, HomeFragment.TAG)
- .commitAllowingStateLoss()
- MainStartUpFragment.inject(this)
- }
- }
|