|
@@ -2,15 +2,70 @@ package com.develop.router
|
|
|
|
|
|
import android.app.Activity
|
|
|
import android.app.Application
|
|
|
+import android.content.Context
|
|
|
+import android.content.res.Configuration
|
|
|
+import android.util.Log
|
|
|
import androidx.fragment.app.Fragment
|
|
|
import com.alibaba.android.arouter.facade.Postcard
|
|
|
+import com.alibaba.android.arouter.facade.annotation.Autowired
|
|
|
import com.alibaba.android.arouter.facade.callback.NavigationCallback
|
|
|
import com.alibaba.android.arouter.launcher.ARouter
|
|
|
+import com.develop.router.init.ModuleInit
|
|
|
|
|
|
object ARouterUtils {
|
|
|
|
|
|
- fun init(application: Application) {
|
|
|
- ARouter.init(application)
|
|
|
+ @JvmField
|
|
|
+ @Autowired(name = Screens.InitRouter.MODULE_AUTH)
|
|
|
+ var mAuthInit: ModuleInit? = null
|
|
|
+
|
|
|
+ @JvmField
|
|
|
+ @Autowired(name = Screens.InitRouter.MODULE_SETTING)
|
|
|
+ var mSettingInit: ModuleInit? = null
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 负责初始化
|
|
|
+ *
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ val initService: ModuleInit
|
|
|
+
|
|
|
+ init {
|
|
|
+ initService = InInit()
|
|
|
+ }
|
|
|
+
|
|
|
+ private class InInit : ModuleInit {
|
|
|
+ override fun init(context: Context) {}
|
|
|
+ override fun onApplicationCreate() {
|
|
|
+ if (mAuthInit != null) {
|
|
|
+ Log.i("AppInit", "proxy auth init")
|
|
|
+ mAuthInit?.onApplicationCreate()
|
|
|
+ }
|
|
|
+ if (mSettingInit != null) {
|
|
|
+ Log.i("AppInit", "proxy setting init")
|
|
|
+ mSettingInit?.onApplicationCreate()
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ override fun onApplicationConfigChange(newConfig: Configuration?) {
|
|
|
+ if (mAuthInit != null) {
|
|
|
+ Log.i("AppInit", "proxy main config init")
|
|
|
+ mAuthInit?.onApplicationConfigChange(newConfig)
|
|
|
+ }
|
|
|
+ if (mSettingInit != null) {
|
|
|
+ Log.i("AppInit", "proxy setting config init")
|
|
|
+ mSettingInit?.onApplicationConfigChange(newConfig)
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ fun init(application: Application,isDebug :Boolean) {
|
|
|
+ ARouter.openLog() // 打印日志
|
|
|
+ if (isDebug) {
|
|
|
+ ARouter.openDebug() // 开启调试模式(如果在InstantRun模式下运行,必须开启调试模式!线上版本需要关闭,否则有安全风险)
|
|
|
+ }
|
|
|
+ ARouter.init(application) // 尽可能早,推荐在Application中初始化
|
|
|
+ ARouter.getInstance().inject(this)
|
|
|
}
|
|
|
|
|
|
}
|