diff --git a/app/build.gradle b/app/build.gradle
index 49f5ce1..45330a8 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -18,8 +18,8 @@
applicationId "com.casic.br.operationsite"
minSdkVersion 23
targetSdkVersion 33
- versionCode 1010
- versionName "1.0.1.0"
+ versionCode 1020
+ versionName "1.0.2.0"
}
buildTypes {
diff --git a/app/build.gradle b/app/build.gradle
index 49f5ce1..45330a8 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -18,8 +18,8 @@
applicationId "com.casic.br.operationsite"
minSdkVersion 23
targetSdkVersion 33
- versionCode 1010
- versionName "1.0.1.0"
+ versionCode 1020
+ versionName "1.0.2.0"
}
buildTypes {
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 911bb69..b45866e 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -20,6 +20,8 @@
+
+
@@ -72,6 +74,7 @@
+
+
+
@@ -72,6 +74,7 @@
+
+
+
@@ -72,6 +74,7 @@
+
() {
+
+ private lateinit var agentWeb: AgentWeb
+
+ override fun initEvent() {
+
+ }
+
+ override fun initOnCreate(savedInstanceState: Bundle?) {
+ ActivityStackManager.addActivity(this)
+
+ val userHelmetCode = intent.getStringExtra(Constant.INTENT_PARAM)
+
+ agentWeb = AgentWeb.with(this)
+ .setAgentWebParent(
+ binding.containerView, LinearLayout.LayoutParams(
+ ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT
+ )
+ )
+ .useDefaultIndicator()
+ .setWebChromeClient(object : WebChromeClient() {
+ override fun onPermissionRequest(request: PermissionRequest?) {
+ request?.grant(request.resources)
+ }
+ })
+ .setWebViewClient(object : WebViewClient() {
+ override fun onPageStarted(view: WebView?, url: String?, favicon: Bitmap?) {
+
+ }
+
+ override fun onPageFinished(view: WebView?, url: String?) {
+
+ }
+ })
+ .setSecurityType(AgentWeb.SecurityType.STRICT_CHECK)
+ .interceptUnkownUrl()
+ .createAgentWeb()
+ .ready()
+ .go(
+ "https://jls.huaweisoft.com/#/realvideo?" +
+ "id=${userHelmetCode}&" +
+ "appKey=${LocaleConstant.HELMET_VIDEO_APP_KEY}&" +
+ "secretKey=${LocaleConstant.HELMET_VIDEO_SECRET_KEY}"
+ )
+ val webView = agentWeb.webCreator.webView
+ webView.settings.useWideViewPort = true
+ webView.settings.builtInZoomControls = true
+ webView.settings.setSupportZoom(true)
+ webView.settings.displayZoomControls = false
+ webView.setInitialScale(4)
+ }
+
+ override fun initViewBinding(): ActivityHelmetVideoBinding {
+ return ActivityHelmetVideoBinding.inflate(layoutInflater)
+ }
+
+ override fun observeRequestState() {
+
+ }
+
+ override fun setupTopBarLayout() {
+ binding.rootView.initImmersionBar(this, false, R.color.mainThemeColor)
+ binding.titleView.setOnClickListener(object : TitleBarView.OnClickListener {
+ override fun onLeftClick() {
+ finish()
+ }
+
+ override fun onRightClick() {
+
+ }
+ })
+ }
+
+ override fun onResume() {
+ super.onResume()
+ agentWeb.webLifeCycle.onResume()
+ }
+
+ override fun onPause() {
+ agentWeb.webLifeCycle.onPause()
+ super.onPause()
+ }
+
+ override fun onDestroy() {
+ agentWeb.webLifeCycle.onDestroy()
+ super.onDestroy()
+ }
+}
\ No newline at end of file
diff --git a/app/build.gradle b/app/build.gradle
index 49f5ce1..45330a8 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -18,8 +18,8 @@
applicationId "com.casic.br.operationsite"
minSdkVersion 23
targetSdkVersion 33
- versionCode 1010
- versionName "1.0.1.0"
+ versionCode 1020
+ versionName "1.0.2.0"
}
buildTypes {
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 911bb69..b45866e 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -20,6 +20,8 @@
+
+
@@ -72,6 +74,7 @@
+
() {
+
+ private lateinit var agentWeb: AgentWeb
+
+ override fun initEvent() {
+
+ }
+
+ override fun initOnCreate(savedInstanceState: Bundle?) {
+ ActivityStackManager.addActivity(this)
+
+ val userHelmetCode = intent.getStringExtra(Constant.INTENT_PARAM)
+
+ agentWeb = AgentWeb.with(this)
+ .setAgentWebParent(
+ binding.containerView, LinearLayout.LayoutParams(
+ ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT
+ )
+ )
+ .useDefaultIndicator()
+ .setWebChromeClient(object : WebChromeClient() {
+ override fun onPermissionRequest(request: PermissionRequest?) {
+ request?.grant(request.resources)
+ }
+ })
+ .setWebViewClient(object : WebViewClient() {
+ override fun onPageStarted(view: WebView?, url: String?, favicon: Bitmap?) {
+
+ }
+
+ override fun onPageFinished(view: WebView?, url: String?) {
+
+ }
+ })
+ .setSecurityType(AgentWeb.SecurityType.STRICT_CHECK)
+ .interceptUnkownUrl()
+ .createAgentWeb()
+ .ready()
+ .go(
+ "https://jls.huaweisoft.com/#/realvideo?" +
+ "id=${userHelmetCode}&" +
+ "appKey=${LocaleConstant.HELMET_VIDEO_APP_KEY}&" +
+ "secretKey=${LocaleConstant.HELMET_VIDEO_SECRET_KEY}"
+ )
+ val webView = agentWeb.webCreator.webView
+ webView.settings.useWideViewPort = true
+ webView.settings.builtInZoomControls = true
+ webView.settings.setSupportZoom(true)
+ webView.settings.displayZoomControls = false
+ webView.setInitialScale(4)
+ }
+
+ override fun initViewBinding(): ActivityHelmetVideoBinding {
+ return ActivityHelmetVideoBinding.inflate(layoutInflater)
+ }
+
+ override fun observeRequestState() {
+
+ }
+
+ override fun setupTopBarLayout() {
+ binding.rootView.initImmersionBar(this, false, R.color.mainThemeColor)
+ binding.titleView.setOnClickListener(object : TitleBarView.OnClickListener {
+ override fun onLeftClick() {
+ finish()
+ }
+
+ override fun onRightClick() {
+
+ }
+ })
+ }
+
+ override fun onResume() {
+ super.onResume()
+ agentWeb.webLifeCycle.onResume()
+ }
+
+ override fun onPause() {
+ agentWeb.webLifeCycle.onPause()
+ super.onPause()
+ }
+
+ override fun onDestroy() {
+ agentWeb.webLifeCycle.onDestroy()
+ super.onDestroy()
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/br/operationsite/view/WorkSiteTabActivity.kt b/app/src/main/java/com/casic/br/operationsite/view/WorkSiteTabActivity.kt
index 5eccd98..1429d68 100644
--- a/app/src/main/java/com/casic/br/operationsite/view/WorkSiteTabActivity.kt
+++ b/app/src/main/java/com/casic/br/operationsite/view/WorkSiteTabActivity.kt
@@ -37,7 +37,8 @@
import com.pengxh.kt.lite.widget.dialog.AlertControlDialog
class WorkSiteTabActivity : KotlinBaseActivity(),
- AMap.OnMarkerClickListener, AMap.InfoWindowAdapter, AMap.OnMapClickListener {
+ AMap.OnMarkerClickListener, AMap.InfoWindowAdapter, AMap.OnMapClickListener,
+ AMap.OnInfoWindowClickListener {
private val kTag = "WorkSiteTabActivity"
private val context = this
@@ -46,6 +47,7 @@
private lateinit var deviceViewModel: DeviceViewModel
private lateinit var loginViewModel: LoginViewModel
private lateinit var projectId: String
+ private lateinit var userHelmetCode: String
private val polygonOptions by lazy { PolygonOptions() }
private val latLngArray: MutableList = ArrayList()
private val workers: MutableList = ArrayList()
@@ -107,7 +109,8 @@
aMap.setInfoWindowAdapter(this)
//地图点击事件,用于隐藏infoWindow
aMap.setOnMapClickListener(this)
-
+ //点击InfoWindow
+ aMap.setOnInfoWindowClickListener(this)
/**
* 数据初始化
* */
@@ -310,6 +313,7 @@
val workerId = marker.options.title
workers.forEach {
if (it.workerId == workerId) {
+ userHelmetCode = it.hatCode
workerNameView.text = "名称:${it.workerName}"
heartRateView.text = "心率:${it.heartRate}BPM"
bloodOxygenView.text = "血氧:${it.bloodOxygen}%"
@@ -322,6 +326,25 @@
}
}
+ override fun onInfoWindowClick(marker: Marker?) {
+ marker?.apply {
+ AlertControlDialog.Builder()
+ .setContext(context)
+ .setTitle("视频通话")
+ .setMessage("确定开始视频通话?")
+ .setNegativeButton("取消")
+ .setPositiveButton("确定")
+ .setOnDialogButtonClickListener(object :
+ AlertControlDialog.OnDialogButtonClickListener {
+ override fun onConfirmClick() {
+ navigatePageTo(userHelmetCode)
+ }
+
+ override fun onCancelClick() {}
+ }).build().show()
+ }
+ }
+
/**
* 此方法不能修改整个 InfoWindow 的背景和边框,无论自定义的样式是什么样,SDK 都会在最外层添加一个默认的边框
* */
diff --git a/app/build.gradle b/app/build.gradle
index 49f5ce1..45330a8 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -18,8 +18,8 @@
applicationId "com.casic.br.operationsite"
minSdkVersion 23
targetSdkVersion 33
- versionCode 1010
- versionName "1.0.1.0"
+ versionCode 1020
+ versionName "1.0.2.0"
}
buildTypes {
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 911bb69..b45866e 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -20,6 +20,8 @@
+
+
@@ -72,6 +74,7 @@
+
() {
+
+ private lateinit var agentWeb: AgentWeb
+
+ override fun initEvent() {
+
+ }
+
+ override fun initOnCreate(savedInstanceState: Bundle?) {
+ ActivityStackManager.addActivity(this)
+
+ val userHelmetCode = intent.getStringExtra(Constant.INTENT_PARAM)
+
+ agentWeb = AgentWeb.with(this)
+ .setAgentWebParent(
+ binding.containerView, LinearLayout.LayoutParams(
+ ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT
+ )
+ )
+ .useDefaultIndicator()
+ .setWebChromeClient(object : WebChromeClient() {
+ override fun onPermissionRequest(request: PermissionRequest?) {
+ request?.grant(request.resources)
+ }
+ })
+ .setWebViewClient(object : WebViewClient() {
+ override fun onPageStarted(view: WebView?, url: String?, favicon: Bitmap?) {
+
+ }
+
+ override fun onPageFinished(view: WebView?, url: String?) {
+
+ }
+ })
+ .setSecurityType(AgentWeb.SecurityType.STRICT_CHECK)
+ .interceptUnkownUrl()
+ .createAgentWeb()
+ .ready()
+ .go(
+ "https://jls.huaweisoft.com/#/realvideo?" +
+ "id=${userHelmetCode}&" +
+ "appKey=${LocaleConstant.HELMET_VIDEO_APP_KEY}&" +
+ "secretKey=${LocaleConstant.HELMET_VIDEO_SECRET_KEY}"
+ )
+ val webView = agentWeb.webCreator.webView
+ webView.settings.useWideViewPort = true
+ webView.settings.builtInZoomControls = true
+ webView.settings.setSupportZoom(true)
+ webView.settings.displayZoomControls = false
+ webView.setInitialScale(4)
+ }
+
+ override fun initViewBinding(): ActivityHelmetVideoBinding {
+ return ActivityHelmetVideoBinding.inflate(layoutInflater)
+ }
+
+ override fun observeRequestState() {
+
+ }
+
+ override fun setupTopBarLayout() {
+ binding.rootView.initImmersionBar(this, false, R.color.mainThemeColor)
+ binding.titleView.setOnClickListener(object : TitleBarView.OnClickListener {
+ override fun onLeftClick() {
+ finish()
+ }
+
+ override fun onRightClick() {
+
+ }
+ })
+ }
+
+ override fun onResume() {
+ super.onResume()
+ agentWeb.webLifeCycle.onResume()
+ }
+
+ override fun onPause() {
+ agentWeb.webLifeCycle.onPause()
+ super.onPause()
+ }
+
+ override fun onDestroy() {
+ agentWeb.webLifeCycle.onDestroy()
+ super.onDestroy()
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/br/operationsite/view/WorkSiteTabActivity.kt b/app/src/main/java/com/casic/br/operationsite/view/WorkSiteTabActivity.kt
index 5eccd98..1429d68 100644
--- a/app/src/main/java/com/casic/br/operationsite/view/WorkSiteTabActivity.kt
+++ b/app/src/main/java/com/casic/br/operationsite/view/WorkSiteTabActivity.kt
@@ -37,7 +37,8 @@
import com.pengxh.kt.lite.widget.dialog.AlertControlDialog
class WorkSiteTabActivity : KotlinBaseActivity(),
- AMap.OnMarkerClickListener, AMap.InfoWindowAdapter, AMap.OnMapClickListener {
+ AMap.OnMarkerClickListener, AMap.InfoWindowAdapter, AMap.OnMapClickListener,
+ AMap.OnInfoWindowClickListener {
private val kTag = "WorkSiteTabActivity"
private val context = this
@@ -46,6 +47,7 @@
private lateinit var deviceViewModel: DeviceViewModel
private lateinit var loginViewModel: LoginViewModel
private lateinit var projectId: String
+ private lateinit var userHelmetCode: String
private val polygonOptions by lazy { PolygonOptions() }
private val latLngArray: MutableList = ArrayList()
private val workers: MutableList = ArrayList()
@@ -107,7 +109,8 @@
aMap.setInfoWindowAdapter(this)
//地图点击事件,用于隐藏infoWindow
aMap.setOnMapClickListener(this)
-
+ //点击InfoWindow
+ aMap.setOnInfoWindowClickListener(this)
/**
* 数据初始化
* */
@@ -310,6 +313,7 @@
val workerId = marker.options.title
workers.forEach {
if (it.workerId == workerId) {
+ userHelmetCode = it.hatCode
workerNameView.text = "名称:${it.workerName}"
heartRateView.text = "心率:${it.heartRate}BPM"
bloodOxygenView.text = "血氧:${it.bloodOxygen}%"
@@ -322,6 +326,25 @@
}
}
+ override fun onInfoWindowClick(marker: Marker?) {
+ marker?.apply {
+ AlertControlDialog.Builder()
+ .setContext(context)
+ .setTitle("视频通话")
+ .setMessage("确定开始视频通话?")
+ .setNegativeButton("取消")
+ .setPositiveButton("确定")
+ .setOnDialogButtonClickListener(object :
+ AlertControlDialog.OnDialogButtonClickListener {
+ override fun onConfirmClick() {
+ navigatePageTo(userHelmetCode)
+ }
+
+ override fun onCancelClick() {}
+ }).build().show()
+ }
+ }
+
/**
* 此方法不能修改整个 InfoWindow 的背景和边框,无论自定义的样式是什么样,SDK 都会在最外层添加一个默认的边框
* */
diff --git a/app/src/main/res/layout/activity_helmet_video.xml b/app/src/main/res/layout/activity_helmet_video.xml
new file mode 100644
index 0000000..bdef923
--- /dev/null
+++ b/app/src/main/res/layout/activity_helmet_video.xml
@@ -0,0 +1,33 @@
+
+
+
+
+
+
+
+
+
\ No newline at end of file