Commit 248de6ee authored by shiyl's avatar shiyl

BDemo组件中新建测试页面,供模拟测试使用

parent 25e85cf4
...@@ -9,10 +9,12 @@ class XRouterPathConstants { ...@@ -9,10 +9,12 @@ class XRouterPathConstants {
// ⚠️ 即将废弃 // ⚠️ 即将废弃
const val NEWS_MAIN = "/MainActivity" const val NEWS_MAIN = "/MainActivity"
const val NEWS_CONTENT = "/news"
const val SUPPORT = "/b/setting/productSupport" const val SUPPORT = "/b/setting/productSupport"
const val ID_CARD_TEST = "/idCardTest"
const val LIFE_ACCOUNT_ENTERPRISE_CERTIFICATION = "/lifeAccountEnterpriseCertification" /**
* BDemo组件内的页面
*/
const val DEMO_TEST_ACTIVITY = "/b/demo/demo_test"
/** /**
......
...@@ -47,6 +47,7 @@ android { ...@@ -47,6 +47,7 @@ android {
} }
} }
buildFeatures { buildFeatures {
viewBinding true
dataBinding true dataBinding true
} }
kapt { kapt {
......
...@@ -2,4 +2,7 @@ ...@@ -2,4 +2,7 @@
<manifest xmlns:android="http://schemas.android.com/apk/res/android" <manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.yidian.shenghuoquan.bdemo"> package="com.yidian.shenghuoquan.bdemo">
<application>
<activity android:name=".ui.DemoTestActivity" />
</application>
</manifest> </manifest>
\ No newline at end of file
package com.yidian.shenghuoquan.bdemo.app package com.yidian.shenghuoquan.bdemo.app
import android.content.Intent
import com.yidian.bcommon.app.YdBaseApplication import com.yidian.bcommon.app.YdBaseApplication
import com.yidian.bcommon.constant.XRouterPathConstants
import com.yidian.bcommon.services.ZapServiceNameConstants import com.yidian.bcommon.services.ZapServiceNameConstants
import com.yidian.news.util.ProcessUtil import com.yidian.news.util.ProcessUtil
import com.yidian.shenghuoquan.bdemo.service.ClientInfoService import com.yidian.shenghuoquan.bdemo.service.ClientInfoService
import com.yidian.xpage.XPageManager
import com.yidian.xpage.node.XPageHandler
import com.yidian.xpage.node.XPageNode
import com.yidian.xpage.node.XPageNodePageType
import com.yidian.yac.core.core.YacModuleSpec import com.yidian.yac.core.core.YacModuleSpec
import com.yidian.yac.core.zap.Zap import com.yidian.yac.core.zap.Zap
...@@ -13,6 +19,7 @@ class BDemoApplication : YdBaseApplication() { ...@@ -13,6 +19,7 @@ class BDemoApplication : YdBaseApplication() {
override fun onCreate() { override fun onCreate() {
super.onCreate() super.onCreate()
if (ProcessUtil.isMainProcess(this)) { if (ProcessUtil.isMainProcess(this)) {
registerXPage()
initService() initService()
} }
} }
...@@ -21,4 +28,21 @@ class BDemoApplication : YdBaseApplication() { ...@@ -21,4 +28,21 @@ class BDemoApplication : YdBaseApplication() {
Zap.addService(ZapServiceNameConstants.ClientInfoService, ClientInfoService()) Zap.addService(ZapServiceNameConstants.ClientInfoService, ClientInfoService())
} }
private fun registerXPage() {
ClassMapUtil.xPageNodeMap.forEach {
val node = XPageNode(it.key, XPageNodePageType.NATIVE, object : XPageHandler {
override fun handler(params: Map<String, Any?>?) {
val intent = Intent()
if (params != null) {
intent.putExtra(XRouterPathConstants.ParamsKey, params as HashMap)
}
intent.setClass(context, it.value)
intent.flags = Intent.FLAG_ACTIVITY_NEW_TASK
context.startActivity(intent)
}
})
XPageManager.registeredNode(node)
}
}
} }
package com.yidian.shenghuoquan.bdemo.app
import com.yidian.bcommon.constant.XRouterPathConstants
import com.yidian.shenghuoquan.bdemo.ui.DemoTestActivity
/**
* 注册XPageNode工具类
*/
object ClassMapUtil {
val xPageNodeMap = mapOf(
XRouterPathConstants.Companion.DEMO_TEST_ACTIVITY to DemoTestActivity::class.java
)
}
package com.yidian.shenghuoquan.bdemo.ui
import android.os.Bundle
import com.yidian.bcommon.base.BaseActivity
import com.yidian.bcommon.constant.XRouterPathConstants
import com.yidian.bcommon.extensions.clickAntiShake
import com.yidian.shenghuoquan.bdemo.databinding.ActivityDemoTestBinding
import com.yidian.xpage.XPageManager
/**
* 新车测试厂,地板油走起
*/
class DemoTestActivity : BaseActivity<ActivityDemoTestBinding>() {
override fun createViewBinding(): ActivityDemoTestBinding {
return ActivityDemoTestBinding.inflate(layoutInflater)
}
override fun getXPageName(): String {
return XRouterPathConstants.DEMO_TEST_ACTIVITY
}
override fun init(savedInstanceState: Bundle?) {
super.init(savedInstanceState)
initClick()
}
private fun initClick() {
// 模拟h5进入确认订单的参数和逻辑
viewBind.btnOrderConfirm.clickAntiShake {
val hashMap = HashMap<String, Any?>()
hashMap["marketing_id"] = 121231321// 活动id
XPageManager.push(XRouterPathConstants.CONFIRM_ORDER_ACTIVITY, hashMap)
}
}
}
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent">
<Button
android:id="@+id/btn_order_confirm"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="确认订单"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.3" />
</androidx.constraintlayout.widget.ConstraintLayout>
\ No newline at end of file
package com.yidian.shenghuoquan.border.ui package com.yidian.shenghuoquan.border.ui
import android.content.Intent
import androidx.activity.viewModels import androidx.activity.viewModels
import com.yidian.bcommon.constant.XRouterPathConstants
import com.yidian.bcommon.mvvm.BaseMvvmActivity import com.yidian.bcommon.mvvm.BaseMvvmActivity
import com.yidian.bcommon.utils.SensitiveInfoUtil
import com.yidian.bcommon.utils.ToastUtils
import com.yidian.shenghuoquan.border.R import com.yidian.shenghuoquan.border.R
import com.yidian.shenghuoquan.border.databinding.BorderActivityConfirmOrderBinding import com.yidian.shenghuoquan.border.databinding.BorderActivityConfirmOrderBinding
/**
* 确认订单
*/
class ConfirmOrderActivity : BaseMvvmActivity<BorderActivityConfirmOrderBinding, ConfirmOrderViewModel>() { class ConfirmOrderActivity : BaseMvvmActivity<BorderActivityConfirmOrderBinding, ConfirmOrderViewModel>() {
override val layoutId: Int = R.layout.border_activity_confirm_order override val layoutId: Int = R.layout.border_activity_confirm_order
...@@ -13,6 +20,16 @@ class ConfirmOrderActivity : BaseMvvmActivity<BorderActivityConfirmOrderBinding, ...@@ -13,6 +20,16 @@ class ConfirmOrderActivity : BaseMvvmActivity<BorderActivityConfirmOrderBinding,
override fun initView() { override fun initView() {
initClick() initClick()
getIntentData(intent)
}
private fun getIntentData(intent: Intent?) {
val paramsMap = intent?.getSerializableExtra(XRouterPathConstants.ParamsKey)
if (paramsMap != null) {
paramsMap as HashMap<*, *>
val marketingId = paramsMap["marketing_id"]
ToastUtils.showLongSafe("活动id: $marketingId")
}
} }
private fun initClick() { private fun initClick() {
......
...@@ -14,7 +14,9 @@ import com.yidian.bcommon.base.BaseActivity ...@@ -14,7 +14,9 @@ import com.yidian.bcommon.base.BaseActivity
import com.yidian.bcommon.bean.HintOptionBean import com.yidian.bcommon.bean.HintOptionBean
import com.yidian.bcommon.constant.IntentConstants import com.yidian.bcommon.constant.IntentConstants
import com.yidian.bcommon.extensions.clickAntiShake import com.yidian.bcommon.extensions.clickAntiShake
import com.yidian.bcommon.extensions.hide
import com.yidian.bcommon.extensions.initTitleBar import com.yidian.bcommon.extensions.initTitleBar
import com.yidian.bcommon.extensions.show
import com.yidian.bcommon.http.bean.GetCommonConfigBean import com.yidian.bcommon.http.bean.GetCommonConfigBean
import com.yidian.bcommon.services.AppUpgradeService import com.yidian.bcommon.services.AppUpgradeService
import com.yidian.bcommon.utils.SensitiveInfoUtil import com.yidian.bcommon.utils.SensitiveInfoUtil
...@@ -22,6 +24,7 @@ import com.yidian.bcommon.utils.SystemSettingUtils ...@@ -22,6 +24,7 @@ import com.yidian.bcommon.utils.SystemSettingUtils
import com.yidian.bcommon.webview.PublicWebViewActivity import com.yidian.bcommon.webview.PublicWebViewActivity
import com.yidian.bcommon.widget.CommonInfoDialog import com.yidian.bcommon.widget.CommonInfoDialog
import com.yidian.bcommon.widget.dialog.HintDialog import com.yidian.bcommon.widget.dialog.HintDialog
import com.yidian.shenghuoquan.bsetting.BuildConfig
import com.yidian.shenghuoquan.bsetting.R import com.yidian.shenghuoquan.bsetting.R
import com.yidian.shenghuoquan.bsetting.databinding.ActivitySystemSettingBinding import com.yidian.shenghuoquan.bsetting.databinding.ActivitySystemSettingBinding
import com.yidian.shenghuoquan.bsetting.http.SettingRemoteDataSource import com.yidian.shenghuoquan.bsetting.http.SettingRemoteDataSource
...@@ -74,6 +77,14 @@ class SystemSettingActivity : BaseActivity<ActivitySystemSettingBinding>() { ...@@ -74,6 +77,14 @@ class SystemSettingActivity : BaseActivity<ActivitySystemSettingBinding>() {
} }
private fun initClick() { private fun initClick() {
if (BuildConfig.DEBUG) {
viewBind.tvTest.show()
viewBind.tvTest.clickAntiShake {
XPageManager.push(XRouterPathConstants.DEMO_TEST_ACTIVITY, null)
}
} else {
viewBind.tvTest.hide()
}
// 通知设置 // 通知设置
viewBind.clNotice.clickAntiShake { viewBind.clNotice.clickAntiShake {
SystemSettingUtils.openNotifySetting(this) SystemSettingUtils.openNotifySetting(this)
......
...@@ -271,5 +271,17 @@ ...@@ -271,5 +271,17 @@
android:textColor="@color/color_333333" android:textColor="@color/color_333333"
android:textSize="@dimen/sp16" /> android:textSize="@dimen/sp16" />
<TextView
android:id="@+id/tv_test"
android:layout_width="match_parent"
android:layout_height="@dimen/dp60"
android:layout_marginTop="@dimen/dp10"
android:visibility="gone"
android:background="@color/white"
android:gravity="center"
android:text="测试页面"
android:textColor="@color/color_333333"
android:textSize="@dimen/sp16" />
</LinearLayout> </LinearLayout>
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment