Commit 248de6ee authored by shiyl's avatar shiyl

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

parent 25e85cf4
......@@ -9,10 +9,12 @@ class XRouterPathConstants {
// ⚠️ 即将废弃
const val NEWS_MAIN = "/MainActivity"
const val NEWS_CONTENT = "/news"
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 {
}
}
buildFeatures {
viewBinding true
dataBinding true
}
kapt {
......
......@@ -2,4 +2,7 @@
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.yidian.shenghuoquan.bdemo">
<application>
<activity android:name=".ui.DemoTestActivity" />
</application>
</manifest>
\ No newline at end of file
package com.yidian.shenghuoquan.bdemo.app
import android.content.Intent
import com.yidian.bcommon.app.YdBaseApplication
import com.yidian.bcommon.constant.XRouterPathConstants
import com.yidian.bcommon.services.ZapServiceNameConstants
import com.yidian.news.util.ProcessUtil
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.zap.Zap
......@@ -13,6 +19,7 @@ class BDemoApplication : YdBaseApplication() {
override fun onCreate() {
super.onCreate()
if (ProcessUtil.isMainProcess(this)) {
registerXPage()
initService()
}
}
......@@ -21,4 +28,21 @@ class BDemoApplication : YdBaseApplication() {
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
import android.content.Intent
import androidx.activity.viewModels
import com.yidian.bcommon.constant.XRouterPathConstants
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.databinding.BorderActivityConfirmOrderBinding
/**
* 确认订单
*/
class ConfirmOrderActivity : BaseMvvmActivity<BorderActivityConfirmOrderBinding, ConfirmOrderViewModel>() {
override val layoutId: Int = R.layout.border_activity_confirm_order
......@@ -13,6 +20,16 @@ class ConfirmOrderActivity : BaseMvvmActivity<BorderActivityConfirmOrderBinding,
override fun initView() {
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() {
......
......@@ -14,7 +14,9 @@ import com.yidian.bcommon.base.BaseActivity
import com.yidian.bcommon.bean.HintOptionBean
import com.yidian.bcommon.constant.IntentConstants
import com.yidian.bcommon.extensions.clickAntiShake
import com.yidian.bcommon.extensions.hide
import com.yidian.bcommon.extensions.initTitleBar
import com.yidian.bcommon.extensions.show
import com.yidian.bcommon.http.bean.GetCommonConfigBean
import com.yidian.bcommon.services.AppUpgradeService
import com.yidian.bcommon.utils.SensitiveInfoUtil
......@@ -22,6 +24,7 @@ import com.yidian.bcommon.utils.SystemSettingUtils
import com.yidian.bcommon.webview.PublicWebViewActivity
import com.yidian.bcommon.widget.CommonInfoDialog
import com.yidian.bcommon.widget.dialog.HintDialog
import com.yidian.shenghuoquan.bsetting.BuildConfig
import com.yidian.shenghuoquan.bsetting.R
import com.yidian.shenghuoquan.bsetting.databinding.ActivitySystemSettingBinding
import com.yidian.shenghuoquan.bsetting.http.SettingRemoteDataSource
......@@ -74,6 +77,14 @@ class SystemSettingActivity : BaseActivity<ActivitySystemSettingBinding>() {
}
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 {
SystemSettingUtils.openNotifySetting(this)
......
......@@ -271,5 +271,17 @@
android:textColor="@color/color_333333"
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>
\ 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