diff --git a/app/build.gradle b/app/build.gradle
index d3ec387..9b32fed 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -2,12 +2,11 @@
apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
-apply plugin: 'kotlin-android-extensions'
android {
signingConfigs {
release {
- storeFile file('/Users/a203/Desktop/AndroidProjects/OperationSite/app/OperationSite.jks')
+ storeFile file('OperationSite.jks')
storePassword '123456789'
keyAlias 'key0'
keyPassword '123456789'
@@ -54,6 +53,7 @@
coroutines 'enable'
}
}
+
viewBinding {
enabled true
}
@@ -73,7 +73,7 @@
dependencies {
implementation fileTree(include: ['*.jar'], dir: 'libs')
//基础依赖库
- implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.0.4.9'
+ implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.0.5'
implementation 'androidx.appcompat:appcompat:1.6.1'
implementation 'androidx.core:core-ktx:1.9.0'
implementation 'com.google.android.material:material:1.6.1'
diff --git a/app/build.gradle b/app/build.gradle
index d3ec387..9b32fed 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -2,12 +2,11 @@
apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
-apply plugin: 'kotlin-android-extensions'
android {
signingConfigs {
release {
- storeFile file('/Users/a203/Desktop/AndroidProjects/OperationSite/app/OperationSite.jks')
+ storeFile file('OperationSite.jks')
storePassword '123456789'
keyAlias 'key0'
keyPassword '123456789'
@@ -54,6 +53,7 @@
coroutines 'enable'
}
}
+
viewBinding {
enabled true
}
@@ -73,7 +73,7 @@
dependencies {
implementation fileTree(include: ['*.jar'], dir: 'libs')
//基础依赖库
- implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.0.4.9'
+ implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.0.5'
implementation 'androidx.appcompat:appcompat:1.6.1'
implementation 'androidx.core:core-ktx:1.9.0'
implementation 'com.google.android.material:material:1.6.1'
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index f1a68ec..cde8f45 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -80,7 +80,7 @@
+ android:value="d26ed926cccc5042898237679d65ae26" />
+ android:value="d26ed926cccc5042898237679d65ae26" />
() {
private lateinit var weakReferenceHandler: WeakReferenceHandler
private lateinit var workingListAdapter: NormalRecyclerAdapter
@@ -44,13 +44,17 @@
private var isLoadMore = false
private var keywords = ""
- override fun initLayoutView(): Int = R.layout.fragment_completed
+ override fun initViewBinding(
+ inflater: LayoutInflater, container: ViewGroup?
+ ): FragmentCompletedBinding {
+ return FragmentCompletedBinding.inflate(inflater, container, false)
+ }
override fun setupTopBarLayout() {
}
- override fun initData(savedInstanceState: Bundle?) {
+ override fun initOnCreate(savedInstanceState: Bundle?) {
weakReferenceHandler = WeakReferenceHandler(callback)
workSiteViewModel = ViewModelProvider(this)[WorkSiteViewModel::class.java]
workSiteViewModel.worksiteModel.observe(this) {
@@ -59,7 +63,7 @@
when {
isRefresh -> {
workingListAdapter.setRefreshData(dataRows)
- completedRefreshLayout.finishRefresh()
+ binding.completedRefreshLayout.finishRefresh()
isRefresh = false
}
@@ -68,7 +72,7 @@
"到底了,别拉了".show(requireContext())
}
workingListAdapter.setLoadMoreData(dataRows)
- completedRefreshLayout.finishLoadMore()
+ binding.completedRefreshLayout.finishLoadMore()
isLoadMore = false
}
@@ -104,13 +108,13 @@
}
override fun initEvent() {
- completedRefreshLayout.setOnRefreshListener {
+ binding.completedRefreshLayout.setOnRefreshListener {
isRefresh = true
//刷新之后页码重置
pageIndex = 1
obtainProjectListByPage()
}
- completedRefreshLayout.setOnLoadMoreListener {
+ binding.completedRefreshLayout.setOnLoadMoreListener {
isLoadMore = true
pageIndex++
obtainProjectListByPage()
@@ -124,12 +128,12 @@
private val callback = Handler.Callback {
if (it.what == 2022071502) {
if (dataBeans.size == 0) {
- emptyView.showEmptyPage {
+ binding.emptyInclude.emptyView.showEmptyPage {
pageIndex = 1
obtainProjectListByPage()
}
} else {
- emptyView.hide()
+ binding.emptyInclude.emptyView.hide()
workingListAdapter = object :
NormalRecyclerAdapter(
R.layout.item_working_rv, dataBeans
@@ -155,10 +159,10 @@
.setText(R.id.workSiteView, "现场描述:${item.workSiteDesc}")
}
}
- completedRecyclerView.addItemDecoration(
+ binding.completedRecyclerView.addItemDecoration(
ItemDecoration(95f.dp2px(requireContext()).toFloat(), 0f)
)
- completedRecyclerView.adapter = workingListAdapter
+ binding.completedRecyclerView.adapter = workingListAdapter
workingListAdapter.setOnItemClickedListener(object :
NormalRecyclerAdapter.OnItemClickedListener {
override fun onItemClicked(
diff --git a/app/build.gradle b/app/build.gradle
index d3ec387..9b32fed 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -2,12 +2,11 @@
apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
-apply plugin: 'kotlin-android-extensions'
android {
signingConfigs {
release {
- storeFile file('/Users/a203/Desktop/AndroidProjects/OperationSite/app/OperationSite.jks')
+ storeFile file('OperationSite.jks')
storePassword '123456789'
keyAlias 'key0'
keyPassword '123456789'
@@ -54,6 +53,7 @@
coroutines 'enable'
}
}
+
viewBinding {
enabled true
}
@@ -73,7 +73,7 @@
dependencies {
implementation fileTree(include: ['*.jar'], dir: 'libs')
//基础依赖库
- implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.0.4.9'
+ implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.0.5'
implementation 'androidx.appcompat:appcompat:1.6.1'
implementation 'androidx.core:core-ktx:1.9.0'
implementation 'com.google.android.material:material:1.6.1'
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index f1a68ec..cde8f45 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -80,7 +80,7 @@
+ android:value="d26ed926cccc5042898237679d65ae26" />
() {
private lateinit var weakReferenceHandler: WeakReferenceHandler
private lateinit var workingListAdapter: NormalRecyclerAdapter
@@ -44,13 +44,17 @@
private var isLoadMore = false
private var keywords = ""
- override fun initLayoutView(): Int = R.layout.fragment_completed
+ override fun initViewBinding(
+ inflater: LayoutInflater, container: ViewGroup?
+ ): FragmentCompletedBinding {
+ return FragmentCompletedBinding.inflate(inflater, container, false)
+ }
override fun setupTopBarLayout() {
}
- override fun initData(savedInstanceState: Bundle?) {
+ override fun initOnCreate(savedInstanceState: Bundle?) {
weakReferenceHandler = WeakReferenceHandler(callback)
workSiteViewModel = ViewModelProvider(this)[WorkSiteViewModel::class.java]
workSiteViewModel.worksiteModel.observe(this) {
@@ -59,7 +63,7 @@
when {
isRefresh -> {
workingListAdapter.setRefreshData(dataRows)
- completedRefreshLayout.finishRefresh()
+ binding.completedRefreshLayout.finishRefresh()
isRefresh = false
}
@@ -68,7 +72,7 @@
"到底了,别拉了".show(requireContext())
}
workingListAdapter.setLoadMoreData(dataRows)
- completedRefreshLayout.finishLoadMore()
+ binding.completedRefreshLayout.finishLoadMore()
isLoadMore = false
}
@@ -104,13 +108,13 @@
}
override fun initEvent() {
- completedRefreshLayout.setOnRefreshListener {
+ binding.completedRefreshLayout.setOnRefreshListener {
isRefresh = true
//刷新之后页码重置
pageIndex = 1
obtainProjectListByPage()
}
- completedRefreshLayout.setOnLoadMoreListener {
+ binding.completedRefreshLayout.setOnLoadMoreListener {
isLoadMore = true
pageIndex++
obtainProjectListByPage()
@@ -124,12 +128,12 @@
private val callback = Handler.Callback {
if (it.what == 2022071502) {
if (dataBeans.size == 0) {
- emptyView.showEmptyPage {
+ binding.emptyInclude.emptyView.showEmptyPage {
pageIndex = 1
obtainProjectListByPage()
}
} else {
- emptyView.hide()
+ binding.emptyInclude.emptyView.hide()
workingListAdapter = object :
NormalRecyclerAdapter(
R.layout.item_working_rv, dataBeans
@@ -155,10 +159,10 @@
.setText(R.id.workSiteView, "现场描述:${item.workSiteDesc}")
}
}
- completedRecyclerView.addItemDecoration(
+ binding.completedRecyclerView.addItemDecoration(
ItemDecoration(95f.dp2px(requireContext()).toFloat(), 0f)
)
- completedRecyclerView.adapter = workingListAdapter
+ binding.completedRecyclerView.adapter = workingListAdapter
workingListAdapter.setOnItemClickedListener(object :
NormalRecyclerAdapter.OnItemClickedListener {
override fun onItemClicked(
diff --git a/app/src/main/java/com/casic/br/operationsite/fragment/NotStartFragment.kt b/app/src/main/java/com/casic/br/operationsite/fragment/NotStartFragment.kt
index e927d86..a1776fb 100644
--- a/app/src/main/java/com/casic/br/operationsite/fragment/NotStartFragment.kt
+++ b/app/src/main/java/com/casic/br/operationsite/fragment/NotStartFragment.kt
@@ -5,8 +5,11 @@
import android.content.Intent
import android.os.Bundle
import android.os.Handler
+import android.view.LayoutInflater
+import android.view.ViewGroup
import androidx.lifecycle.ViewModelProvider
import com.casic.br.operationsite.R
+import com.casic.br.operationsite.databinding.FragmentNotStartBinding
import com.casic.br.operationsite.extensions.combineImagePath
import com.casic.br.operationsite.extensions.showEmptyPage
import com.casic.br.operationsite.model.BroadcastDataModel
@@ -26,11 +29,8 @@
import com.pengxh.kt.lite.utils.BroadcastManager
import com.pengxh.kt.lite.utils.Constant
import com.pengxh.kt.lite.utils.WeakReferenceHandler
-import kotlinx.android.synthetic.main.fragment_not_start.notStartRecyclerView
-import kotlinx.android.synthetic.main.fragment_not_start.notStartRefreshLayout
-import kotlinx.android.synthetic.main.include_empty_view.emptyView
-class NotStartFragment : KotlinBaseFragment() {
+class NotStartFragment : KotlinBaseFragment() {
private lateinit var weakReferenceHandler: WeakReferenceHandler
private lateinit var workingListAdapter: NormalRecyclerAdapter
@@ -44,13 +44,17 @@
private var isLoadMore = false
private var keywords = ""
- override fun initLayoutView(): Int = R.layout.fragment_not_start
+ override fun initViewBinding(
+ inflater: LayoutInflater, container: ViewGroup?
+ ): FragmentNotStartBinding {
+ return FragmentNotStartBinding.inflate(inflater, container, false)
+ }
override fun setupTopBarLayout() {
}
- override fun initData(savedInstanceState: Bundle?) {
+ override fun initOnCreate(savedInstanceState: Bundle?) {
weakReferenceHandler = WeakReferenceHandler(callback)
workSiteViewModel = ViewModelProvider(this)[WorkSiteViewModel::class.java]
workSiteViewModel.worksiteModel.observe(this) {
@@ -59,7 +63,7 @@
when {
isRefresh -> {
workingListAdapter.setRefreshData(dataRows)
- notStartRefreshLayout.finishRefresh()
+ binding.notStartRefreshLayout.finishRefresh()
isRefresh = false
}
@@ -68,7 +72,7 @@
"到底了,别拉了".show(requireContext())
}
workingListAdapter.setLoadMoreData(dataRows)
- notStartRefreshLayout.finishLoadMore()
+ binding.notStartRefreshLayout.finishLoadMore()
isLoadMore = false
}
@@ -104,13 +108,13 @@
}
override fun initEvent() {
- notStartRefreshLayout.setOnRefreshListener {
+ binding.notStartRefreshLayout.setOnRefreshListener {
isRefresh = true
//刷新之后页码重置
pageIndex = 1
obtainProjectListByPage()
}
- notStartRefreshLayout.setOnLoadMoreListener {
+ binding.notStartRefreshLayout.setOnLoadMoreListener {
isLoadMore = true
pageIndex++
obtainProjectListByPage()
@@ -124,12 +128,12 @@
private val callback = Handler.Callback {
if (it.what == 2022071501) {
if (dataBeans.size == 0) {
- emptyView.showEmptyPage {
+ binding.emptyInclude.emptyView.showEmptyPage {
pageIndex = 1
obtainProjectListByPage()
}
} else {
- emptyView.hide()
+ binding.emptyInclude.emptyView.hide()
workingListAdapter = object :
NormalRecyclerAdapter(
R.layout.item_working_rv, dataBeans
@@ -156,10 +160,10 @@
.setText(R.id.workSiteView, "现场描述:${item.workSiteDesc}")
}
}
- notStartRecyclerView.addItemDecoration(
+ binding.notStartRecyclerView.addItemDecoration(
ItemDecoration(95f.dp2px(requireContext()).toFloat(), 0f)
)
- notStartRecyclerView.adapter = workingListAdapter
+ binding.notStartRecyclerView.adapter = workingListAdapter
workingListAdapter.setOnItemClickedListener(object :
NormalRecyclerAdapter.OnItemClickedListener {
override fun onItemClicked(
diff --git a/app/build.gradle b/app/build.gradle
index d3ec387..9b32fed 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -2,12 +2,11 @@
apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
-apply plugin: 'kotlin-android-extensions'
android {
signingConfigs {
release {
- storeFile file('/Users/a203/Desktop/AndroidProjects/OperationSite/app/OperationSite.jks')
+ storeFile file('OperationSite.jks')
storePassword '123456789'
keyAlias 'key0'
keyPassword '123456789'
@@ -54,6 +53,7 @@
coroutines 'enable'
}
}
+
viewBinding {
enabled true
}
@@ -73,7 +73,7 @@
dependencies {
implementation fileTree(include: ['*.jar'], dir: 'libs')
//基础依赖库
- implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.0.4.9'
+ implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.0.5'
implementation 'androidx.appcompat:appcompat:1.6.1'
implementation 'androidx.core:core-ktx:1.9.0'
implementation 'com.google.android.material:material:1.6.1'
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index f1a68ec..cde8f45 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -80,7 +80,7 @@
+ android:value="d26ed926cccc5042898237679d65ae26" />
() {
private lateinit var weakReferenceHandler: WeakReferenceHandler
private lateinit var workingListAdapter: NormalRecyclerAdapter
@@ -44,13 +44,17 @@
private var isLoadMore = false
private var keywords = ""
- override fun initLayoutView(): Int = R.layout.fragment_completed
+ override fun initViewBinding(
+ inflater: LayoutInflater, container: ViewGroup?
+ ): FragmentCompletedBinding {
+ return FragmentCompletedBinding.inflate(inflater, container, false)
+ }
override fun setupTopBarLayout() {
}
- override fun initData(savedInstanceState: Bundle?) {
+ override fun initOnCreate(savedInstanceState: Bundle?) {
weakReferenceHandler = WeakReferenceHandler(callback)
workSiteViewModel = ViewModelProvider(this)[WorkSiteViewModel::class.java]
workSiteViewModel.worksiteModel.observe(this) {
@@ -59,7 +63,7 @@
when {
isRefresh -> {
workingListAdapter.setRefreshData(dataRows)
- completedRefreshLayout.finishRefresh()
+ binding.completedRefreshLayout.finishRefresh()
isRefresh = false
}
@@ -68,7 +72,7 @@
"到底了,别拉了".show(requireContext())
}
workingListAdapter.setLoadMoreData(dataRows)
- completedRefreshLayout.finishLoadMore()
+ binding.completedRefreshLayout.finishLoadMore()
isLoadMore = false
}
@@ -104,13 +108,13 @@
}
override fun initEvent() {
- completedRefreshLayout.setOnRefreshListener {
+ binding.completedRefreshLayout.setOnRefreshListener {
isRefresh = true
//刷新之后页码重置
pageIndex = 1
obtainProjectListByPage()
}
- completedRefreshLayout.setOnLoadMoreListener {
+ binding.completedRefreshLayout.setOnLoadMoreListener {
isLoadMore = true
pageIndex++
obtainProjectListByPage()
@@ -124,12 +128,12 @@
private val callback = Handler.Callback {
if (it.what == 2022071502) {
if (dataBeans.size == 0) {
- emptyView.showEmptyPage {
+ binding.emptyInclude.emptyView.showEmptyPage {
pageIndex = 1
obtainProjectListByPage()
}
} else {
- emptyView.hide()
+ binding.emptyInclude.emptyView.hide()
workingListAdapter = object :
NormalRecyclerAdapter(
R.layout.item_working_rv, dataBeans
@@ -155,10 +159,10 @@
.setText(R.id.workSiteView, "现场描述:${item.workSiteDesc}")
}
}
- completedRecyclerView.addItemDecoration(
+ binding.completedRecyclerView.addItemDecoration(
ItemDecoration(95f.dp2px(requireContext()).toFloat(), 0f)
)
- completedRecyclerView.adapter = workingListAdapter
+ binding.completedRecyclerView.adapter = workingListAdapter
workingListAdapter.setOnItemClickedListener(object :
NormalRecyclerAdapter.OnItemClickedListener {
override fun onItemClicked(
diff --git a/app/src/main/java/com/casic/br/operationsite/fragment/NotStartFragment.kt b/app/src/main/java/com/casic/br/operationsite/fragment/NotStartFragment.kt
index e927d86..a1776fb 100644
--- a/app/src/main/java/com/casic/br/operationsite/fragment/NotStartFragment.kt
+++ b/app/src/main/java/com/casic/br/operationsite/fragment/NotStartFragment.kt
@@ -5,8 +5,11 @@
import android.content.Intent
import android.os.Bundle
import android.os.Handler
+import android.view.LayoutInflater
+import android.view.ViewGroup
import androidx.lifecycle.ViewModelProvider
import com.casic.br.operationsite.R
+import com.casic.br.operationsite.databinding.FragmentNotStartBinding
import com.casic.br.operationsite.extensions.combineImagePath
import com.casic.br.operationsite.extensions.showEmptyPage
import com.casic.br.operationsite.model.BroadcastDataModel
@@ -26,11 +29,8 @@
import com.pengxh.kt.lite.utils.BroadcastManager
import com.pengxh.kt.lite.utils.Constant
import com.pengxh.kt.lite.utils.WeakReferenceHandler
-import kotlinx.android.synthetic.main.fragment_not_start.notStartRecyclerView
-import kotlinx.android.synthetic.main.fragment_not_start.notStartRefreshLayout
-import kotlinx.android.synthetic.main.include_empty_view.emptyView
-class NotStartFragment : KotlinBaseFragment() {
+class NotStartFragment : KotlinBaseFragment() {
private lateinit var weakReferenceHandler: WeakReferenceHandler
private lateinit var workingListAdapter: NormalRecyclerAdapter
@@ -44,13 +44,17 @@
private var isLoadMore = false
private var keywords = ""
- override fun initLayoutView(): Int = R.layout.fragment_not_start
+ override fun initViewBinding(
+ inflater: LayoutInflater, container: ViewGroup?
+ ): FragmentNotStartBinding {
+ return FragmentNotStartBinding.inflate(inflater, container, false)
+ }
override fun setupTopBarLayout() {
}
- override fun initData(savedInstanceState: Bundle?) {
+ override fun initOnCreate(savedInstanceState: Bundle?) {
weakReferenceHandler = WeakReferenceHandler(callback)
workSiteViewModel = ViewModelProvider(this)[WorkSiteViewModel::class.java]
workSiteViewModel.worksiteModel.observe(this) {
@@ -59,7 +63,7 @@
when {
isRefresh -> {
workingListAdapter.setRefreshData(dataRows)
- notStartRefreshLayout.finishRefresh()
+ binding.notStartRefreshLayout.finishRefresh()
isRefresh = false
}
@@ -68,7 +72,7 @@
"到底了,别拉了".show(requireContext())
}
workingListAdapter.setLoadMoreData(dataRows)
- notStartRefreshLayout.finishLoadMore()
+ binding.notStartRefreshLayout.finishLoadMore()
isLoadMore = false
}
@@ -104,13 +108,13 @@
}
override fun initEvent() {
- notStartRefreshLayout.setOnRefreshListener {
+ binding.notStartRefreshLayout.setOnRefreshListener {
isRefresh = true
//刷新之后页码重置
pageIndex = 1
obtainProjectListByPage()
}
- notStartRefreshLayout.setOnLoadMoreListener {
+ binding.notStartRefreshLayout.setOnLoadMoreListener {
isLoadMore = true
pageIndex++
obtainProjectListByPage()
@@ -124,12 +128,12 @@
private val callback = Handler.Callback {
if (it.what == 2022071501) {
if (dataBeans.size == 0) {
- emptyView.showEmptyPage {
+ binding.emptyInclude.emptyView.showEmptyPage {
pageIndex = 1
obtainProjectListByPage()
}
} else {
- emptyView.hide()
+ binding.emptyInclude.emptyView.hide()
workingListAdapter = object :
NormalRecyclerAdapter(
R.layout.item_working_rv, dataBeans
@@ -156,10 +160,10 @@
.setText(R.id.workSiteView, "现场描述:${item.workSiteDesc}")
}
}
- notStartRecyclerView.addItemDecoration(
+ binding.notStartRecyclerView.addItemDecoration(
ItemDecoration(95f.dp2px(requireContext()).toFloat(), 0f)
)
- notStartRecyclerView.adapter = workingListAdapter
+ binding.notStartRecyclerView.adapter = workingListAdapter
workingListAdapter.setOnItemClickedListener(object :
NormalRecyclerAdapter.OnItemClickedListener {
override fun onItemClicked(
diff --git a/app/src/main/java/com/casic/br/operationsite/fragment/WorkingFragment.kt b/app/src/main/java/com/casic/br/operationsite/fragment/WorkingFragment.kt
index dcb240c..09a5e1b 100644
--- a/app/src/main/java/com/casic/br/operationsite/fragment/WorkingFragment.kt
+++ b/app/src/main/java/com/casic/br/operationsite/fragment/WorkingFragment.kt
@@ -5,8 +5,11 @@
import android.content.Intent
import android.os.Bundle
import android.os.Handler
+import android.view.LayoutInflater
+import android.view.ViewGroup
import androidx.lifecycle.ViewModelProvider
import com.casic.br.operationsite.R
+import com.casic.br.operationsite.databinding.FragmentWorkingBinding
import com.casic.br.operationsite.extensions.combineImagePath
import com.casic.br.operationsite.extensions.showEmptyPage
import com.casic.br.operationsite.model.BroadcastDataModel
@@ -26,12 +29,9 @@
import com.pengxh.kt.lite.utils.BroadcastManager
import com.pengxh.kt.lite.utils.Constant
import com.pengxh.kt.lite.utils.WeakReferenceHandler
-import kotlinx.android.synthetic.main.fragment_working.workingRecyclerView
-import kotlinx.android.synthetic.main.fragment_working.workingRefreshLayout
-import kotlinx.android.synthetic.main.include_empty_view.emptyView
-class WorkingFragment : KotlinBaseFragment() {
+class WorkingFragment : KotlinBaseFragment() {
private lateinit var weakReferenceHandler: WeakReferenceHandler
private lateinit var workingListAdapter: NormalRecyclerAdapter
@@ -45,13 +45,17 @@
private var isLoadMore = false
private var keywords = ""
- override fun initLayoutView(): Int = R.layout.fragment_working
+ override fun initViewBinding(
+ inflater: LayoutInflater, container: ViewGroup?
+ ): FragmentWorkingBinding {
+ return FragmentWorkingBinding.inflate(inflater, container, false)
+ }
override fun setupTopBarLayout() {
}
- override fun initData(savedInstanceState: Bundle?) {
+ override fun initOnCreate(savedInstanceState: Bundle?) {
weakReferenceHandler = WeakReferenceHandler(callback)
workSiteViewModel = ViewModelProvider(this)[WorkSiteViewModel::class.java]
workSiteViewModel.worksiteModel.observe(this) {
@@ -60,7 +64,7 @@
when {
isRefresh -> {
workingListAdapter.setRefreshData(dataRows)
- workingRefreshLayout.finishRefresh()
+ binding.workingRefreshLayout.finishRefresh()
isRefresh = false
}
@@ -69,7 +73,7 @@
"到底了,别拉了".show(requireContext())
}
workingListAdapter.setLoadMoreData(dataRows)
- workingRefreshLayout.finishLoadMore()
+ binding.workingRefreshLayout.finishLoadMore()
isLoadMore = false
}
@@ -105,13 +109,13 @@
}
override fun initEvent() {
- workingRefreshLayout.setOnRefreshListener {
+ binding.workingRefreshLayout.setOnRefreshListener {
isRefresh = true
//刷新之后页码重置
pageIndex = 1
obtainProjectListByPage()
}
- workingRefreshLayout.setOnLoadMoreListener {
+ binding.workingRefreshLayout.setOnLoadMoreListener {
isLoadMore = true
pageIndex++
obtainProjectListByPage()
@@ -125,12 +129,12 @@
private val callback = Handler.Callback {
if (it.what == 2022071101) {
if (dataBeans.size == 0) {
- emptyView.showEmptyPage {
+ binding.emptyInclude.emptyView.showEmptyPage {
pageIndex = 1
obtainProjectListByPage()
}
} else {
- emptyView.hide()
+ binding.emptyInclude.emptyView.hide()
workingListAdapter = object :
NormalRecyclerAdapter(
R.layout.item_working_rv, dataBeans
@@ -156,10 +160,10 @@
.setText(R.id.workSiteView, "现场描述:${item.workSiteDesc}")
}
}
- workingRecyclerView.addItemDecoration(
+ binding.workingRecyclerView.addItemDecoration(
ItemDecoration(95f.dp2px(requireContext()).toFloat(), 0f)
)
- workingRecyclerView.adapter = workingListAdapter
+ binding.workingRecyclerView.adapter = workingListAdapter
workingListAdapter.setOnItemClickedListener(object :
NormalRecyclerAdapter.OnItemClickedListener {
override fun onItemClicked(
diff --git a/app/build.gradle b/app/build.gradle
index d3ec387..9b32fed 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -2,12 +2,11 @@
apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
-apply plugin: 'kotlin-android-extensions'
android {
signingConfigs {
release {
- storeFile file('/Users/a203/Desktop/AndroidProjects/OperationSite/app/OperationSite.jks')
+ storeFile file('OperationSite.jks')
storePassword '123456789'
keyAlias 'key0'
keyPassword '123456789'
@@ -54,6 +53,7 @@
coroutines 'enable'
}
}
+
viewBinding {
enabled true
}
@@ -73,7 +73,7 @@
dependencies {
implementation fileTree(include: ['*.jar'], dir: 'libs')
//基础依赖库
- implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.0.4.9'
+ implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.0.5'
implementation 'androidx.appcompat:appcompat:1.6.1'
implementation 'androidx.core:core-ktx:1.9.0'
implementation 'com.google.android.material:material:1.6.1'
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index f1a68ec..cde8f45 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -80,7 +80,7 @@
+ android:value="d26ed926cccc5042898237679d65ae26" />
() {
private lateinit var weakReferenceHandler: WeakReferenceHandler
private lateinit var workingListAdapter: NormalRecyclerAdapter
@@ -44,13 +44,17 @@
private var isLoadMore = false
private var keywords = ""
- override fun initLayoutView(): Int = R.layout.fragment_completed
+ override fun initViewBinding(
+ inflater: LayoutInflater, container: ViewGroup?
+ ): FragmentCompletedBinding {
+ return FragmentCompletedBinding.inflate(inflater, container, false)
+ }
override fun setupTopBarLayout() {
}
- override fun initData(savedInstanceState: Bundle?) {
+ override fun initOnCreate(savedInstanceState: Bundle?) {
weakReferenceHandler = WeakReferenceHandler(callback)
workSiteViewModel = ViewModelProvider(this)[WorkSiteViewModel::class.java]
workSiteViewModel.worksiteModel.observe(this) {
@@ -59,7 +63,7 @@
when {
isRefresh -> {
workingListAdapter.setRefreshData(dataRows)
- completedRefreshLayout.finishRefresh()
+ binding.completedRefreshLayout.finishRefresh()
isRefresh = false
}
@@ -68,7 +72,7 @@
"到底了,别拉了".show(requireContext())
}
workingListAdapter.setLoadMoreData(dataRows)
- completedRefreshLayout.finishLoadMore()
+ binding.completedRefreshLayout.finishLoadMore()
isLoadMore = false
}
@@ -104,13 +108,13 @@
}
override fun initEvent() {
- completedRefreshLayout.setOnRefreshListener {
+ binding.completedRefreshLayout.setOnRefreshListener {
isRefresh = true
//刷新之后页码重置
pageIndex = 1
obtainProjectListByPage()
}
- completedRefreshLayout.setOnLoadMoreListener {
+ binding.completedRefreshLayout.setOnLoadMoreListener {
isLoadMore = true
pageIndex++
obtainProjectListByPage()
@@ -124,12 +128,12 @@
private val callback = Handler.Callback {
if (it.what == 2022071502) {
if (dataBeans.size == 0) {
- emptyView.showEmptyPage {
+ binding.emptyInclude.emptyView.showEmptyPage {
pageIndex = 1
obtainProjectListByPage()
}
} else {
- emptyView.hide()
+ binding.emptyInclude.emptyView.hide()
workingListAdapter = object :
NormalRecyclerAdapter(
R.layout.item_working_rv, dataBeans
@@ -155,10 +159,10 @@
.setText(R.id.workSiteView, "现场描述:${item.workSiteDesc}")
}
}
- completedRecyclerView.addItemDecoration(
+ binding.completedRecyclerView.addItemDecoration(
ItemDecoration(95f.dp2px(requireContext()).toFloat(), 0f)
)
- completedRecyclerView.adapter = workingListAdapter
+ binding.completedRecyclerView.adapter = workingListAdapter
workingListAdapter.setOnItemClickedListener(object :
NormalRecyclerAdapter.OnItemClickedListener {
override fun onItemClicked(
diff --git a/app/src/main/java/com/casic/br/operationsite/fragment/NotStartFragment.kt b/app/src/main/java/com/casic/br/operationsite/fragment/NotStartFragment.kt
index e927d86..a1776fb 100644
--- a/app/src/main/java/com/casic/br/operationsite/fragment/NotStartFragment.kt
+++ b/app/src/main/java/com/casic/br/operationsite/fragment/NotStartFragment.kt
@@ -5,8 +5,11 @@
import android.content.Intent
import android.os.Bundle
import android.os.Handler
+import android.view.LayoutInflater
+import android.view.ViewGroup
import androidx.lifecycle.ViewModelProvider
import com.casic.br.operationsite.R
+import com.casic.br.operationsite.databinding.FragmentNotStartBinding
import com.casic.br.operationsite.extensions.combineImagePath
import com.casic.br.operationsite.extensions.showEmptyPage
import com.casic.br.operationsite.model.BroadcastDataModel
@@ -26,11 +29,8 @@
import com.pengxh.kt.lite.utils.BroadcastManager
import com.pengxh.kt.lite.utils.Constant
import com.pengxh.kt.lite.utils.WeakReferenceHandler
-import kotlinx.android.synthetic.main.fragment_not_start.notStartRecyclerView
-import kotlinx.android.synthetic.main.fragment_not_start.notStartRefreshLayout
-import kotlinx.android.synthetic.main.include_empty_view.emptyView
-class NotStartFragment : KotlinBaseFragment() {
+class NotStartFragment : KotlinBaseFragment() {
private lateinit var weakReferenceHandler: WeakReferenceHandler
private lateinit var workingListAdapter: NormalRecyclerAdapter
@@ -44,13 +44,17 @@
private var isLoadMore = false
private var keywords = ""
- override fun initLayoutView(): Int = R.layout.fragment_not_start
+ override fun initViewBinding(
+ inflater: LayoutInflater, container: ViewGroup?
+ ): FragmentNotStartBinding {
+ return FragmentNotStartBinding.inflate(inflater, container, false)
+ }
override fun setupTopBarLayout() {
}
- override fun initData(savedInstanceState: Bundle?) {
+ override fun initOnCreate(savedInstanceState: Bundle?) {
weakReferenceHandler = WeakReferenceHandler(callback)
workSiteViewModel = ViewModelProvider(this)[WorkSiteViewModel::class.java]
workSiteViewModel.worksiteModel.observe(this) {
@@ -59,7 +63,7 @@
when {
isRefresh -> {
workingListAdapter.setRefreshData(dataRows)
- notStartRefreshLayout.finishRefresh()
+ binding.notStartRefreshLayout.finishRefresh()
isRefresh = false
}
@@ -68,7 +72,7 @@
"到底了,别拉了".show(requireContext())
}
workingListAdapter.setLoadMoreData(dataRows)
- notStartRefreshLayout.finishLoadMore()
+ binding.notStartRefreshLayout.finishLoadMore()
isLoadMore = false
}
@@ -104,13 +108,13 @@
}
override fun initEvent() {
- notStartRefreshLayout.setOnRefreshListener {
+ binding.notStartRefreshLayout.setOnRefreshListener {
isRefresh = true
//刷新之后页码重置
pageIndex = 1
obtainProjectListByPage()
}
- notStartRefreshLayout.setOnLoadMoreListener {
+ binding.notStartRefreshLayout.setOnLoadMoreListener {
isLoadMore = true
pageIndex++
obtainProjectListByPage()
@@ -124,12 +128,12 @@
private val callback = Handler.Callback {
if (it.what == 2022071501) {
if (dataBeans.size == 0) {
- emptyView.showEmptyPage {
+ binding.emptyInclude.emptyView.showEmptyPage {
pageIndex = 1
obtainProjectListByPage()
}
} else {
- emptyView.hide()
+ binding.emptyInclude.emptyView.hide()
workingListAdapter = object :
NormalRecyclerAdapter(
R.layout.item_working_rv, dataBeans
@@ -156,10 +160,10 @@
.setText(R.id.workSiteView, "现场描述:${item.workSiteDesc}")
}
}
- notStartRecyclerView.addItemDecoration(
+ binding.notStartRecyclerView.addItemDecoration(
ItemDecoration(95f.dp2px(requireContext()).toFloat(), 0f)
)
- notStartRecyclerView.adapter = workingListAdapter
+ binding.notStartRecyclerView.adapter = workingListAdapter
workingListAdapter.setOnItemClickedListener(object :
NormalRecyclerAdapter.OnItemClickedListener {
override fun onItemClicked(
diff --git a/app/src/main/java/com/casic/br/operationsite/fragment/WorkingFragment.kt b/app/src/main/java/com/casic/br/operationsite/fragment/WorkingFragment.kt
index dcb240c..09a5e1b 100644
--- a/app/src/main/java/com/casic/br/operationsite/fragment/WorkingFragment.kt
+++ b/app/src/main/java/com/casic/br/operationsite/fragment/WorkingFragment.kt
@@ -5,8 +5,11 @@
import android.content.Intent
import android.os.Bundle
import android.os.Handler
+import android.view.LayoutInflater
+import android.view.ViewGroup
import androidx.lifecycle.ViewModelProvider
import com.casic.br.operationsite.R
+import com.casic.br.operationsite.databinding.FragmentWorkingBinding
import com.casic.br.operationsite.extensions.combineImagePath
import com.casic.br.operationsite.extensions.showEmptyPage
import com.casic.br.operationsite.model.BroadcastDataModel
@@ -26,12 +29,9 @@
import com.pengxh.kt.lite.utils.BroadcastManager
import com.pengxh.kt.lite.utils.Constant
import com.pengxh.kt.lite.utils.WeakReferenceHandler
-import kotlinx.android.synthetic.main.fragment_working.workingRecyclerView
-import kotlinx.android.synthetic.main.fragment_working.workingRefreshLayout
-import kotlinx.android.synthetic.main.include_empty_view.emptyView
-class WorkingFragment : KotlinBaseFragment() {
+class WorkingFragment : KotlinBaseFragment() {
private lateinit var weakReferenceHandler: WeakReferenceHandler
private lateinit var workingListAdapter: NormalRecyclerAdapter
@@ -45,13 +45,17 @@
private var isLoadMore = false
private var keywords = ""
- override fun initLayoutView(): Int = R.layout.fragment_working
+ override fun initViewBinding(
+ inflater: LayoutInflater, container: ViewGroup?
+ ): FragmentWorkingBinding {
+ return FragmentWorkingBinding.inflate(inflater, container, false)
+ }
override fun setupTopBarLayout() {
}
- override fun initData(savedInstanceState: Bundle?) {
+ override fun initOnCreate(savedInstanceState: Bundle?) {
weakReferenceHandler = WeakReferenceHandler(callback)
workSiteViewModel = ViewModelProvider(this)[WorkSiteViewModel::class.java]
workSiteViewModel.worksiteModel.observe(this) {
@@ -60,7 +64,7 @@
when {
isRefresh -> {
workingListAdapter.setRefreshData(dataRows)
- workingRefreshLayout.finishRefresh()
+ binding.workingRefreshLayout.finishRefresh()
isRefresh = false
}
@@ -69,7 +73,7 @@
"到底了,别拉了".show(requireContext())
}
workingListAdapter.setLoadMoreData(dataRows)
- workingRefreshLayout.finishLoadMore()
+ binding.workingRefreshLayout.finishLoadMore()
isLoadMore = false
}
@@ -105,13 +109,13 @@
}
override fun initEvent() {
- workingRefreshLayout.setOnRefreshListener {
+ binding.workingRefreshLayout.setOnRefreshListener {
isRefresh = true
//刷新之后页码重置
pageIndex = 1
obtainProjectListByPage()
}
- workingRefreshLayout.setOnLoadMoreListener {
+ binding.workingRefreshLayout.setOnLoadMoreListener {
isLoadMore = true
pageIndex++
obtainProjectListByPage()
@@ -125,12 +129,12 @@
private val callback = Handler.Callback {
if (it.what == 2022071101) {
if (dataBeans.size == 0) {
- emptyView.showEmptyPage {
+ binding.emptyInclude.emptyView.showEmptyPage {
pageIndex = 1
obtainProjectListByPage()
}
} else {
- emptyView.hide()
+ binding.emptyInclude.emptyView.hide()
workingListAdapter = object :
NormalRecyclerAdapter(
R.layout.item_working_rv, dataBeans
@@ -156,10 +160,10 @@
.setText(R.id.workSiteView, "现场描述:${item.workSiteDesc}")
}
}
- workingRecyclerView.addItemDecoration(
+ binding.workingRecyclerView.addItemDecoration(
ItemDecoration(95f.dp2px(requireContext()).toFloat(), 0f)
)
- workingRecyclerView.adapter = workingListAdapter
+ binding.workingRecyclerView.adapter = workingListAdapter
workingListAdapter.setOnItemClickedListener(object :
NormalRecyclerAdapter.OnItemClickedListener {
override fun onItemClicked(
diff --git a/app/src/main/java/com/casic/br/operationsite/view/AlarmDetailActivity.kt b/app/src/main/java/com/casic/br/operationsite/view/AlarmDetailActivity.kt
index d412a6f..f45c28e 100644
--- a/app/src/main/java/com/casic/br/operationsite/view/AlarmDetailActivity.kt
+++ b/app/src/main/java/com/casic/br/operationsite/view/AlarmDetailActivity.kt
@@ -13,6 +13,7 @@
import com.bumptech.glide.Glide
import com.bumptech.glide.request.RequestOptions
import com.casic.br.operationsite.R
+import com.casic.br.operationsite.databinding.ActivityAlarmDetailBinding
import com.casic.br.operationsite.extensions.combineImagePath
import com.casic.br.operationsite.extensions.initLayoutImmersionBar
import com.casic.br.operationsite.utils.LoadingDialogHub
@@ -21,30 +22,30 @@
import com.pengxh.kt.lite.base.KotlinBaseActivity
import com.pengxh.kt.lite.utils.Constant
import com.pengxh.kt.lite.vm.LoadState
-import kotlinx.android.synthetic.main.activity_alarm_detail.*
-import kotlinx.android.synthetic.main.include_base_title.*
-class AlarmDetailActivity : KotlinBaseActivity() {
+class AlarmDetailActivity : KotlinBaseActivity() {
private lateinit var aMap: AMap
private lateinit var alarmViewModel: AlarmViewModel
private lateinit var id: String
- override fun initLayoutView(): Int = R.layout.activity_alarm_detail
+ override fun initViewBinding(): ActivityAlarmDetailBinding {
+ return ActivityAlarmDetailBinding.inflate(layoutInflater)
+ }
override fun setupTopBarLayout() {
ImmersionBar.with(this).statusBarDarkFont(false)
.statusBarColor(R.color.mainThemeColor).init()
- initLayoutImmersionBar(rootView)
+ initLayoutImmersionBar(binding.rootView)
- leftBackView.setOnClickListener { finish() }
- titleView.text = "燃气作业现场动态感知"
+ binding.titleInclude.leftBackView.setOnClickListener { finish() }
+ binding.titleInclude.titleView.text = "燃气作业现场动态感知"
}
- override fun initData(savedInstanceState: Bundle?) {
+ override fun initOnCreate(savedInstanceState: Bundle?) {
this.id = intent.getStringExtra(Constant.INTENT_PARAM)!!
- aMap = mapView.map
+ aMap = binding.mapView.map
aMap.mapType = AMap.MAP_TYPE_NORMAL
val uiSettings = aMap.uiSettings
uiSettings.isCompassEnabled = true
@@ -96,9 +97,9 @@
Glide.with(this)
.load(detailData.illegalAvatar.combineImagePath())
.apply(RequestOptions().placeholder(R.mipmap.load_image_error))
- .into(avatarView)
- timeView.text = detailData.createTime
- descriptionView.text = detailData.alarmDescription
+ .into(binding.avatarView)
+ binding.timeView.text = detailData.createTime
+ binding.descriptionView.text = detailData.alarmDescription
}
}
}
@@ -114,26 +115,26 @@
/**地图相关*********/
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
- mapView.onCreate(savedInstanceState)
+ binding.mapView.onCreate(savedInstanceState)
}
override fun onResume() {
super.onResume()
- mapView.onResume()
+ binding.mapView.onResume()
}
override fun onPause() {
super.onPause()
- mapView.onPause()
+ binding.mapView.onPause()
}
override fun onDestroy() {
- mapView.onDestroy()
+ binding.mapView.onDestroy()
super.onDestroy()
}
override fun onSaveInstanceState(outState: Bundle) {
super.onSaveInstanceState(outState)
- mapView.onSaveInstanceState(outState)
+ binding.mapView.onSaveInstanceState(outState)
}
}
\ No newline at end of file
diff --git a/app/build.gradle b/app/build.gradle
index d3ec387..9b32fed 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -2,12 +2,11 @@
apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
-apply plugin: 'kotlin-android-extensions'
android {
signingConfigs {
release {
- storeFile file('/Users/a203/Desktop/AndroidProjects/OperationSite/app/OperationSite.jks')
+ storeFile file('OperationSite.jks')
storePassword '123456789'
keyAlias 'key0'
keyPassword '123456789'
@@ -54,6 +53,7 @@
coroutines 'enable'
}
}
+
viewBinding {
enabled true
}
@@ -73,7 +73,7 @@
dependencies {
implementation fileTree(include: ['*.jar'], dir: 'libs')
//基础依赖库
- implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.0.4.9'
+ implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.0.5'
implementation 'androidx.appcompat:appcompat:1.6.1'
implementation 'androidx.core:core-ktx:1.9.0'
implementation 'com.google.android.material:material:1.6.1'
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index f1a68ec..cde8f45 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -80,7 +80,7 @@
+ android:value="d26ed926cccc5042898237679d65ae26" />
() {
private lateinit var weakReferenceHandler: WeakReferenceHandler
private lateinit var workingListAdapter: NormalRecyclerAdapter
@@ -44,13 +44,17 @@
private var isLoadMore = false
private var keywords = ""
- override fun initLayoutView(): Int = R.layout.fragment_completed
+ override fun initViewBinding(
+ inflater: LayoutInflater, container: ViewGroup?
+ ): FragmentCompletedBinding {
+ return FragmentCompletedBinding.inflate(inflater, container, false)
+ }
override fun setupTopBarLayout() {
}
- override fun initData(savedInstanceState: Bundle?) {
+ override fun initOnCreate(savedInstanceState: Bundle?) {
weakReferenceHandler = WeakReferenceHandler(callback)
workSiteViewModel = ViewModelProvider(this)[WorkSiteViewModel::class.java]
workSiteViewModel.worksiteModel.observe(this) {
@@ -59,7 +63,7 @@
when {
isRefresh -> {
workingListAdapter.setRefreshData(dataRows)
- completedRefreshLayout.finishRefresh()
+ binding.completedRefreshLayout.finishRefresh()
isRefresh = false
}
@@ -68,7 +72,7 @@
"到底了,别拉了".show(requireContext())
}
workingListAdapter.setLoadMoreData(dataRows)
- completedRefreshLayout.finishLoadMore()
+ binding.completedRefreshLayout.finishLoadMore()
isLoadMore = false
}
@@ -104,13 +108,13 @@
}
override fun initEvent() {
- completedRefreshLayout.setOnRefreshListener {
+ binding.completedRefreshLayout.setOnRefreshListener {
isRefresh = true
//刷新之后页码重置
pageIndex = 1
obtainProjectListByPage()
}
- completedRefreshLayout.setOnLoadMoreListener {
+ binding.completedRefreshLayout.setOnLoadMoreListener {
isLoadMore = true
pageIndex++
obtainProjectListByPage()
@@ -124,12 +128,12 @@
private val callback = Handler.Callback {
if (it.what == 2022071502) {
if (dataBeans.size == 0) {
- emptyView.showEmptyPage {
+ binding.emptyInclude.emptyView.showEmptyPage {
pageIndex = 1
obtainProjectListByPage()
}
} else {
- emptyView.hide()
+ binding.emptyInclude.emptyView.hide()
workingListAdapter = object :
NormalRecyclerAdapter(
R.layout.item_working_rv, dataBeans
@@ -155,10 +159,10 @@
.setText(R.id.workSiteView, "现场描述:${item.workSiteDesc}")
}
}
- completedRecyclerView.addItemDecoration(
+ binding.completedRecyclerView.addItemDecoration(
ItemDecoration(95f.dp2px(requireContext()).toFloat(), 0f)
)
- completedRecyclerView.adapter = workingListAdapter
+ binding.completedRecyclerView.adapter = workingListAdapter
workingListAdapter.setOnItemClickedListener(object :
NormalRecyclerAdapter.OnItemClickedListener {
override fun onItemClicked(
diff --git a/app/src/main/java/com/casic/br/operationsite/fragment/NotStartFragment.kt b/app/src/main/java/com/casic/br/operationsite/fragment/NotStartFragment.kt
index e927d86..a1776fb 100644
--- a/app/src/main/java/com/casic/br/operationsite/fragment/NotStartFragment.kt
+++ b/app/src/main/java/com/casic/br/operationsite/fragment/NotStartFragment.kt
@@ -5,8 +5,11 @@
import android.content.Intent
import android.os.Bundle
import android.os.Handler
+import android.view.LayoutInflater
+import android.view.ViewGroup
import androidx.lifecycle.ViewModelProvider
import com.casic.br.operationsite.R
+import com.casic.br.operationsite.databinding.FragmentNotStartBinding
import com.casic.br.operationsite.extensions.combineImagePath
import com.casic.br.operationsite.extensions.showEmptyPage
import com.casic.br.operationsite.model.BroadcastDataModel
@@ -26,11 +29,8 @@
import com.pengxh.kt.lite.utils.BroadcastManager
import com.pengxh.kt.lite.utils.Constant
import com.pengxh.kt.lite.utils.WeakReferenceHandler
-import kotlinx.android.synthetic.main.fragment_not_start.notStartRecyclerView
-import kotlinx.android.synthetic.main.fragment_not_start.notStartRefreshLayout
-import kotlinx.android.synthetic.main.include_empty_view.emptyView
-class NotStartFragment : KotlinBaseFragment() {
+class NotStartFragment : KotlinBaseFragment() {
private lateinit var weakReferenceHandler: WeakReferenceHandler
private lateinit var workingListAdapter: NormalRecyclerAdapter
@@ -44,13 +44,17 @@
private var isLoadMore = false
private var keywords = ""
- override fun initLayoutView(): Int = R.layout.fragment_not_start
+ override fun initViewBinding(
+ inflater: LayoutInflater, container: ViewGroup?
+ ): FragmentNotStartBinding {
+ return FragmentNotStartBinding.inflate(inflater, container, false)
+ }
override fun setupTopBarLayout() {
}
- override fun initData(savedInstanceState: Bundle?) {
+ override fun initOnCreate(savedInstanceState: Bundle?) {
weakReferenceHandler = WeakReferenceHandler(callback)
workSiteViewModel = ViewModelProvider(this)[WorkSiteViewModel::class.java]
workSiteViewModel.worksiteModel.observe(this) {
@@ -59,7 +63,7 @@
when {
isRefresh -> {
workingListAdapter.setRefreshData(dataRows)
- notStartRefreshLayout.finishRefresh()
+ binding.notStartRefreshLayout.finishRefresh()
isRefresh = false
}
@@ -68,7 +72,7 @@
"到底了,别拉了".show(requireContext())
}
workingListAdapter.setLoadMoreData(dataRows)
- notStartRefreshLayout.finishLoadMore()
+ binding.notStartRefreshLayout.finishLoadMore()
isLoadMore = false
}
@@ -104,13 +108,13 @@
}
override fun initEvent() {
- notStartRefreshLayout.setOnRefreshListener {
+ binding.notStartRefreshLayout.setOnRefreshListener {
isRefresh = true
//刷新之后页码重置
pageIndex = 1
obtainProjectListByPage()
}
- notStartRefreshLayout.setOnLoadMoreListener {
+ binding.notStartRefreshLayout.setOnLoadMoreListener {
isLoadMore = true
pageIndex++
obtainProjectListByPage()
@@ -124,12 +128,12 @@
private val callback = Handler.Callback {
if (it.what == 2022071501) {
if (dataBeans.size == 0) {
- emptyView.showEmptyPage {
+ binding.emptyInclude.emptyView.showEmptyPage {
pageIndex = 1
obtainProjectListByPage()
}
} else {
- emptyView.hide()
+ binding.emptyInclude.emptyView.hide()
workingListAdapter = object :
NormalRecyclerAdapter(
R.layout.item_working_rv, dataBeans
@@ -156,10 +160,10 @@
.setText(R.id.workSiteView, "现场描述:${item.workSiteDesc}")
}
}
- notStartRecyclerView.addItemDecoration(
+ binding.notStartRecyclerView.addItemDecoration(
ItemDecoration(95f.dp2px(requireContext()).toFloat(), 0f)
)
- notStartRecyclerView.adapter = workingListAdapter
+ binding.notStartRecyclerView.adapter = workingListAdapter
workingListAdapter.setOnItemClickedListener(object :
NormalRecyclerAdapter.OnItemClickedListener {
override fun onItemClicked(
diff --git a/app/src/main/java/com/casic/br/operationsite/fragment/WorkingFragment.kt b/app/src/main/java/com/casic/br/operationsite/fragment/WorkingFragment.kt
index dcb240c..09a5e1b 100644
--- a/app/src/main/java/com/casic/br/operationsite/fragment/WorkingFragment.kt
+++ b/app/src/main/java/com/casic/br/operationsite/fragment/WorkingFragment.kt
@@ -5,8 +5,11 @@
import android.content.Intent
import android.os.Bundle
import android.os.Handler
+import android.view.LayoutInflater
+import android.view.ViewGroup
import androidx.lifecycle.ViewModelProvider
import com.casic.br.operationsite.R
+import com.casic.br.operationsite.databinding.FragmentWorkingBinding
import com.casic.br.operationsite.extensions.combineImagePath
import com.casic.br.operationsite.extensions.showEmptyPage
import com.casic.br.operationsite.model.BroadcastDataModel
@@ -26,12 +29,9 @@
import com.pengxh.kt.lite.utils.BroadcastManager
import com.pengxh.kt.lite.utils.Constant
import com.pengxh.kt.lite.utils.WeakReferenceHandler
-import kotlinx.android.synthetic.main.fragment_working.workingRecyclerView
-import kotlinx.android.synthetic.main.fragment_working.workingRefreshLayout
-import kotlinx.android.synthetic.main.include_empty_view.emptyView
-class WorkingFragment : KotlinBaseFragment() {
+class WorkingFragment : KotlinBaseFragment() {
private lateinit var weakReferenceHandler: WeakReferenceHandler
private lateinit var workingListAdapter: NormalRecyclerAdapter
@@ -45,13 +45,17 @@
private var isLoadMore = false
private var keywords = ""
- override fun initLayoutView(): Int = R.layout.fragment_working
+ override fun initViewBinding(
+ inflater: LayoutInflater, container: ViewGroup?
+ ): FragmentWorkingBinding {
+ return FragmentWorkingBinding.inflate(inflater, container, false)
+ }
override fun setupTopBarLayout() {
}
- override fun initData(savedInstanceState: Bundle?) {
+ override fun initOnCreate(savedInstanceState: Bundle?) {
weakReferenceHandler = WeakReferenceHandler(callback)
workSiteViewModel = ViewModelProvider(this)[WorkSiteViewModel::class.java]
workSiteViewModel.worksiteModel.observe(this) {
@@ -60,7 +64,7 @@
when {
isRefresh -> {
workingListAdapter.setRefreshData(dataRows)
- workingRefreshLayout.finishRefresh()
+ binding.workingRefreshLayout.finishRefresh()
isRefresh = false
}
@@ -69,7 +73,7 @@
"到底了,别拉了".show(requireContext())
}
workingListAdapter.setLoadMoreData(dataRows)
- workingRefreshLayout.finishLoadMore()
+ binding.workingRefreshLayout.finishLoadMore()
isLoadMore = false
}
@@ -105,13 +109,13 @@
}
override fun initEvent() {
- workingRefreshLayout.setOnRefreshListener {
+ binding.workingRefreshLayout.setOnRefreshListener {
isRefresh = true
//刷新之后页码重置
pageIndex = 1
obtainProjectListByPage()
}
- workingRefreshLayout.setOnLoadMoreListener {
+ binding.workingRefreshLayout.setOnLoadMoreListener {
isLoadMore = true
pageIndex++
obtainProjectListByPage()
@@ -125,12 +129,12 @@
private val callback = Handler.Callback {
if (it.what == 2022071101) {
if (dataBeans.size == 0) {
- emptyView.showEmptyPage {
+ binding.emptyInclude.emptyView.showEmptyPage {
pageIndex = 1
obtainProjectListByPage()
}
} else {
- emptyView.hide()
+ binding.emptyInclude.emptyView.hide()
workingListAdapter = object :
NormalRecyclerAdapter(
R.layout.item_working_rv, dataBeans
@@ -156,10 +160,10 @@
.setText(R.id.workSiteView, "现场描述:${item.workSiteDesc}")
}
}
- workingRecyclerView.addItemDecoration(
+ binding.workingRecyclerView.addItemDecoration(
ItemDecoration(95f.dp2px(requireContext()).toFloat(), 0f)
)
- workingRecyclerView.adapter = workingListAdapter
+ binding.workingRecyclerView.adapter = workingListAdapter
workingListAdapter.setOnItemClickedListener(object :
NormalRecyclerAdapter.OnItemClickedListener {
override fun onItemClicked(
diff --git a/app/src/main/java/com/casic/br/operationsite/view/AlarmDetailActivity.kt b/app/src/main/java/com/casic/br/operationsite/view/AlarmDetailActivity.kt
index d412a6f..f45c28e 100644
--- a/app/src/main/java/com/casic/br/operationsite/view/AlarmDetailActivity.kt
+++ b/app/src/main/java/com/casic/br/operationsite/view/AlarmDetailActivity.kt
@@ -13,6 +13,7 @@
import com.bumptech.glide.Glide
import com.bumptech.glide.request.RequestOptions
import com.casic.br.operationsite.R
+import com.casic.br.operationsite.databinding.ActivityAlarmDetailBinding
import com.casic.br.operationsite.extensions.combineImagePath
import com.casic.br.operationsite.extensions.initLayoutImmersionBar
import com.casic.br.operationsite.utils.LoadingDialogHub
@@ -21,30 +22,30 @@
import com.pengxh.kt.lite.base.KotlinBaseActivity
import com.pengxh.kt.lite.utils.Constant
import com.pengxh.kt.lite.vm.LoadState
-import kotlinx.android.synthetic.main.activity_alarm_detail.*
-import kotlinx.android.synthetic.main.include_base_title.*
-class AlarmDetailActivity : KotlinBaseActivity() {
+class AlarmDetailActivity : KotlinBaseActivity() {
private lateinit var aMap: AMap
private lateinit var alarmViewModel: AlarmViewModel
private lateinit var id: String
- override fun initLayoutView(): Int = R.layout.activity_alarm_detail
+ override fun initViewBinding(): ActivityAlarmDetailBinding {
+ return ActivityAlarmDetailBinding.inflate(layoutInflater)
+ }
override fun setupTopBarLayout() {
ImmersionBar.with(this).statusBarDarkFont(false)
.statusBarColor(R.color.mainThemeColor).init()
- initLayoutImmersionBar(rootView)
+ initLayoutImmersionBar(binding.rootView)
- leftBackView.setOnClickListener { finish() }
- titleView.text = "燃气作业现场动态感知"
+ binding.titleInclude.leftBackView.setOnClickListener { finish() }
+ binding.titleInclude.titleView.text = "燃气作业现场动态感知"
}
- override fun initData(savedInstanceState: Bundle?) {
+ override fun initOnCreate(savedInstanceState: Bundle?) {
this.id = intent.getStringExtra(Constant.INTENT_PARAM)!!
- aMap = mapView.map
+ aMap = binding.mapView.map
aMap.mapType = AMap.MAP_TYPE_NORMAL
val uiSettings = aMap.uiSettings
uiSettings.isCompassEnabled = true
@@ -96,9 +97,9 @@
Glide.with(this)
.load(detailData.illegalAvatar.combineImagePath())
.apply(RequestOptions().placeholder(R.mipmap.load_image_error))
- .into(avatarView)
- timeView.text = detailData.createTime
- descriptionView.text = detailData.alarmDescription
+ .into(binding.avatarView)
+ binding.timeView.text = detailData.createTime
+ binding.descriptionView.text = detailData.alarmDescription
}
}
}
@@ -114,26 +115,26 @@
/**地图相关*********/
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
- mapView.onCreate(savedInstanceState)
+ binding.mapView.onCreate(savedInstanceState)
}
override fun onResume() {
super.onResume()
- mapView.onResume()
+ binding.mapView.onResume()
}
override fun onPause() {
super.onPause()
- mapView.onPause()
+ binding.mapView.onPause()
}
override fun onDestroy() {
- mapView.onDestroy()
+ binding.mapView.onDestroy()
super.onDestroy()
}
override fun onSaveInstanceState(outState: Bundle) {
super.onSaveInstanceState(outState)
- mapView.onSaveInstanceState(outState)
+ binding.mapView.onSaveInstanceState(outState)
}
}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/br/operationsite/view/AlarmListActivity.kt b/app/src/main/java/com/casic/br/operationsite/view/AlarmListActivity.kt
index 2a25cd0..a601bde 100644
--- a/app/src/main/java/com/casic/br/operationsite/view/AlarmListActivity.kt
+++ b/app/src/main/java/com/casic/br/operationsite/view/AlarmListActivity.kt
@@ -6,6 +6,7 @@
import androidx.lifecycle.ViewModelProvider
import androidx.recyclerview.widget.DividerItemDecoration
import com.casic.br.operationsite.R
+import com.casic.br.operationsite.databinding.ActivityAlarmListBinding
import com.casic.br.operationsite.extensions.combineImagePath
import com.casic.br.operationsite.extensions.formatToDate
import com.casic.br.operationsite.extensions.initLayoutImmersionBar
@@ -23,11 +24,8 @@
import com.pengxh.kt.lite.extensions.show
import com.pengxh.kt.lite.utils.WeakReferenceHandler
import com.pengxh.kt.lite.vm.LoadState
-import kotlinx.android.synthetic.main.activity_alarm_list.*
-import kotlinx.android.synthetic.main.include_empty_view.*
-import kotlinx.android.synthetic.main.include_search_title.*
-class AlarmListActivity : KotlinBaseActivity() {
+class AlarmListActivity : KotlinBaseActivity() {
private lateinit var weakReferenceHandler: WeakReferenceHandler
private lateinit var alarmListAdapter: NormalRecyclerAdapter
@@ -38,22 +36,24 @@
private var isLoadMore = false
private var keywords = ""
- override fun initLayoutView(): Int = R.layout.activity_alarm_list
+ override fun initViewBinding(): ActivityAlarmListBinding {
+ return ActivityAlarmListBinding.inflate(layoutInflater)
+ }
override fun setupTopBarLayout() {
ImmersionBar.with(this).statusBarDarkFont(false)
.statusBarColor(R.color.mainThemeColor).init()
- initLayoutImmersionBar(rootView)
+ initLayoutImmersionBar(binding.rootView)
- searchTextView.setOnClickListener {
- keywords = searchInputView.text.toString()
+ binding.titleInclude.searchTextView.setOnClickListener {
+ keywords = binding.titleInclude.searchInputView.text.toString()
pageIndex = 1
obtainAlarmListByPage()
}
}
- override fun initData(savedInstanceState: Bundle?) {
+ override fun initOnCreate(savedInstanceState: Bundle?) {
weakReferenceHandler = WeakReferenceHandler(callback)
alarmViewModel = ViewModelProvider(this)[AlarmViewModel::class.java]
}
@@ -75,13 +75,13 @@
}
override fun initEvent() {
- alarmRefreshLayout.setOnRefreshListener {
+ binding.alarmRefreshLayout.setOnRefreshListener {
isRefresh = true
//刷新之后页码重置
pageIndex = 1
obtainAlarmListByPage()
}
- alarmRefreshLayout.setOnLoadMoreListener {
+ binding.alarmRefreshLayout.setOnLoadMoreListener {
isLoadMore = true
pageIndex++
obtainAlarmListByPage()
@@ -93,17 +93,19 @@
when {
isRefresh -> {
alarmListAdapter.setRefreshData(dataRows)
- alarmRefreshLayout.finishRefresh()
+ binding.alarmRefreshLayout.finishRefresh()
isRefresh = false
}
+
isLoadMore -> {
if (dataRows.size == 0) {
"到底了,别拉了".show(this)
}
alarmListAdapter.setLoadMoreData(dataRows)
- alarmRefreshLayout.finishLoadMore()
+ binding.alarmRefreshLayout.finishLoadMore()
isLoadMore = false
}
+
else -> {
dataBeans = dataRows
weakReferenceHandler.sendEmptyMessage(2022071201)
@@ -120,12 +122,12 @@
private val callback = Handler.Callback {
if (it.what == 2022071201) {
if (dataBeans.size == 0) {
- emptyView.showEmptyPage {
+ binding.emptyInclude.emptyView.showEmptyPage {
pageIndex = 1
obtainAlarmListByPage()
}
} else {
- emptyView.hide()
+ binding.emptyInclude.emptyView.hide()
alarmListAdapter =
object : NormalRecyclerAdapter(
R.layout.item_alarm_rv_l, dataBeans
@@ -168,10 +170,10 @@
}
}
}
- alarmRecyclerView.addItemDecoration(
+ binding.alarmRecyclerView.addItemDecoration(
DividerItemDecoration(this, DividerItemDecoration.VERTICAL)
)
- alarmRecyclerView.adapter = alarmListAdapter
+ binding.alarmRecyclerView.adapter = alarmListAdapter
alarmListAdapter.setOnItemClickedListener(object :
NormalRecyclerAdapter.OnItemClickedListener {
override fun onItemClicked(
diff --git a/app/build.gradle b/app/build.gradle
index d3ec387..9b32fed 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -2,12 +2,11 @@
apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
-apply plugin: 'kotlin-android-extensions'
android {
signingConfigs {
release {
- storeFile file('/Users/a203/Desktop/AndroidProjects/OperationSite/app/OperationSite.jks')
+ storeFile file('OperationSite.jks')
storePassword '123456789'
keyAlias 'key0'
keyPassword '123456789'
@@ -54,6 +53,7 @@
coroutines 'enable'
}
}
+
viewBinding {
enabled true
}
@@ -73,7 +73,7 @@
dependencies {
implementation fileTree(include: ['*.jar'], dir: 'libs')
//基础依赖库
- implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.0.4.9'
+ implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.0.5'
implementation 'androidx.appcompat:appcompat:1.6.1'
implementation 'androidx.core:core-ktx:1.9.0'
implementation 'com.google.android.material:material:1.6.1'
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index f1a68ec..cde8f45 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -80,7 +80,7 @@
+ android:value="d26ed926cccc5042898237679d65ae26" />
() {
private lateinit var weakReferenceHandler: WeakReferenceHandler
private lateinit var workingListAdapter: NormalRecyclerAdapter
@@ -44,13 +44,17 @@
private var isLoadMore = false
private var keywords = ""
- override fun initLayoutView(): Int = R.layout.fragment_completed
+ override fun initViewBinding(
+ inflater: LayoutInflater, container: ViewGroup?
+ ): FragmentCompletedBinding {
+ return FragmentCompletedBinding.inflate(inflater, container, false)
+ }
override fun setupTopBarLayout() {
}
- override fun initData(savedInstanceState: Bundle?) {
+ override fun initOnCreate(savedInstanceState: Bundle?) {
weakReferenceHandler = WeakReferenceHandler(callback)
workSiteViewModel = ViewModelProvider(this)[WorkSiteViewModel::class.java]
workSiteViewModel.worksiteModel.observe(this) {
@@ -59,7 +63,7 @@
when {
isRefresh -> {
workingListAdapter.setRefreshData(dataRows)
- completedRefreshLayout.finishRefresh()
+ binding.completedRefreshLayout.finishRefresh()
isRefresh = false
}
@@ -68,7 +72,7 @@
"到底了,别拉了".show(requireContext())
}
workingListAdapter.setLoadMoreData(dataRows)
- completedRefreshLayout.finishLoadMore()
+ binding.completedRefreshLayout.finishLoadMore()
isLoadMore = false
}
@@ -104,13 +108,13 @@
}
override fun initEvent() {
- completedRefreshLayout.setOnRefreshListener {
+ binding.completedRefreshLayout.setOnRefreshListener {
isRefresh = true
//刷新之后页码重置
pageIndex = 1
obtainProjectListByPage()
}
- completedRefreshLayout.setOnLoadMoreListener {
+ binding.completedRefreshLayout.setOnLoadMoreListener {
isLoadMore = true
pageIndex++
obtainProjectListByPage()
@@ -124,12 +128,12 @@
private val callback = Handler.Callback {
if (it.what == 2022071502) {
if (dataBeans.size == 0) {
- emptyView.showEmptyPage {
+ binding.emptyInclude.emptyView.showEmptyPage {
pageIndex = 1
obtainProjectListByPage()
}
} else {
- emptyView.hide()
+ binding.emptyInclude.emptyView.hide()
workingListAdapter = object :
NormalRecyclerAdapter(
R.layout.item_working_rv, dataBeans
@@ -155,10 +159,10 @@
.setText(R.id.workSiteView, "现场描述:${item.workSiteDesc}")
}
}
- completedRecyclerView.addItemDecoration(
+ binding.completedRecyclerView.addItemDecoration(
ItemDecoration(95f.dp2px(requireContext()).toFloat(), 0f)
)
- completedRecyclerView.adapter = workingListAdapter
+ binding.completedRecyclerView.adapter = workingListAdapter
workingListAdapter.setOnItemClickedListener(object :
NormalRecyclerAdapter.OnItemClickedListener {
override fun onItemClicked(
diff --git a/app/src/main/java/com/casic/br/operationsite/fragment/NotStartFragment.kt b/app/src/main/java/com/casic/br/operationsite/fragment/NotStartFragment.kt
index e927d86..a1776fb 100644
--- a/app/src/main/java/com/casic/br/operationsite/fragment/NotStartFragment.kt
+++ b/app/src/main/java/com/casic/br/operationsite/fragment/NotStartFragment.kt
@@ -5,8 +5,11 @@
import android.content.Intent
import android.os.Bundle
import android.os.Handler
+import android.view.LayoutInflater
+import android.view.ViewGroup
import androidx.lifecycle.ViewModelProvider
import com.casic.br.operationsite.R
+import com.casic.br.operationsite.databinding.FragmentNotStartBinding
import com.casic.br.operationsite.extensions.combineImagePath
import com.casic.br.operationsite.extensions.showEmptyPage
import com.casic.br.operationsite.model.BroadcastDataModel
@@ -26,11 +29,8 @@
import com.pengxh.kt.lite.utils.BroadcastManager
import com.pengxh.kt.lite.utils.Constant
import com.pengxh.kt.lite.utils.WeakReferenceHandler
-import kotlinx.android.synthetic.main.fragment_not_start.notStartRecyclerView
-import kotlinx.android.synthetic.main.fragment_not_start.notStartRefreshLayout
-import kotlinx.android.synthetic.main.include_empty_view.emptyView
-class NotStartFragment : KotlinBaseFragment() {
+class NotStartFragment : KotlinBaseFragment() {
private lateinit var weakReferenceHandler: WeakReferenceHandler
private lateinit var workingListAdapter: NormalRecyclerAdapter
@@ -44,13 +44,17 @@
private var isLoadMore = false
private var keywords = ""
- override fun initLayoutView(): Int = R.layout.fragment_not_start
+ override fun initViewBinding(
+ inflater: LayoutInflater, container: ViewGroup?
+ ): FragmentNotStartBinding {
+ return FragmentNotStartBinding.inflate(inflater, container, false)
+ }
override fun setupTopBarLayout() {
}
- override fun initData(savedInstanceState: Bundle?) {
+ override fun initOnCreate(savedInstanceState: Bundle?) {
weakReferenceHandler = WeakReferenceHandler(callback)
workSiteViewModel = ViewModelProvider(this)[WorkSiteViewModel::class.java]
workSiteViewModel.worksiteModel.observe(this) {
@@ -59,7 +63,7 @@
when {
isRefresh -> {
workingListAdapter.setRefreshData(dataRows)
- notStartRefreshLayout.finishRefresh()
+ binding.notStartRefreshLayout.finishRefresh()
isRefresh = false
}
@@ -68,7 +72,7 @@
"到底了,别拉了".show(requireContext())
}
workingListAdapter.setLoadMoreData(dataRows)
- notStartRefreshLayout.finishLoadMore()
+ binding.notStartRefreshLayout.finishLoadMore()
isLoadMore = false
}
@@ -104,13 +108,13 @@
}
override fun initEvent() {
- notStartRefreshLayout.setOnRefreshListener {
+ binding.notStartRefreshLayout.setOnRefreshListener {
isRefresh = true
//刷新之后页码重置
pageIndex = 1
obtainProjectListByPage()
}
- notStartRefreshLayout.setOnLoadMoreListener {
+ binding.notStartRefreshLayout.setOnLoadMoreListener {
isLoadMore = true
pageIndex++
obtainProjectListByPage()
@@ -124,12 +128,12 @@
private val callback = Handler.Callback {
if (it.what == 2022071501) {
if (dataBeans.size == 0) {
- emptyView.showEmptyPage {
+ binding.emptyInclude.emptyView.showEmptyPage {
pageIndex = 1
obtainProjectListByPage()
}
} else {
- emptyView.hide()
+ binding.emptyInclude.emptyView.hide()
workingListAdapter = object :
NormalRecyclerAdapter(
R.layout.item_working_rv, dataBeans
@@ -156,10 +160,10 @@
.setText(R.id.workSiteView, "现场描述:${item.workSiteDesc}")
}
}
- notStartRecyclerView.addItemDecoration(
+ binding.notStartRecyclerView.addItemDecoration(
ItemDecoration(95f.dp2px(requireContext()).toFloat(), 0f)
)
- notStartRecyclerView.adapter = workingListAdapter
+ binding.notStartRecyclerView.adapter = workingListAdapter
workingListAdapter.setOnItemClickedListener(object :
NormalRecyclerAdapter.OnItemClickedListener {
override fun onItemClicked(
diff --git a/app/src/main/java/com/casic/br/operationsite/fragment/WorkingFragment.kt b/app/src/main/java/com/casic/br/operationsite/fragment/WorkingFragment.kt
index dcb240c..09a5e1b 100644
--- a/app/src/main/java/com/casic/br/operationsite/fragment/WorkingFragment.kt
+++ b/app/src/main/java/com/casic/br/operationsite/fragment/WorkingFragment.kt
@@ -5,8 +5,11 @@
import android.content.Intent
import android.os.Bundle
import android.os.Handler
+import android.view.LayoutInflater
+import android.view.ViewGroup
import androidx.lifecycle.ViewModelProvider
import com.casic.br.operationsite.R
+import com.casic.br.operationsite.databinding.FragmentWorkingBinding
import com.casic.br.operationsite.extensions.combineImagePath
import com.casic.br.operationsite.extensions.showEmptyPage
import com.casic.br.operationsite.model.BroadcastDataModel
@@ -26,12 +29,9 @@
import com.pengxh.kt.lite.utils.BroadcastManager
import com.pengxh.kt.lite.utils.Constant
import com.pengxh.kt.lite.utils.WeakReferenceHandler
-import kotlinx.android.synthetic.main.fragment_working.workingRecyclerView
-import kotlinx.android.synthetic.main.fragment_working.workingRefreshLayout
-import kotlinx.android.synthetic.main.include_empty_view.emptyView
-class WorkingFragment : KotlinBaseFragment() {
+class WorkingFragment : KotlinBaseFragment() {
private lateinit var weakReferenceHandler: WeakReferenceHandler
private lateinit var workingListAdapter: NormalRecyclerAdapter
@@ -45,13 +45,17 @@
private var isLoadMore = false
private var keywords = ""
- override fun initLayoutView(): Int = R.layout.fragment_working
+ override fun initViewBinding(
+ inflater: LayoutInflater, container: ViewGroup?
+ ): FragmentWorkingBinding {
+ return FragmentWorkingBinding.inflate(inflater, container, false)
+ }
override fun setupTopBarLayout() {
}
- override fun initData(savedInstanceState: Bundle?) {
+ override fun initOnCreate(savedInstanceState: Bundle?) {
weakReferenceHandler = WeakReferenceHandler(callback)
workSiteViewModel = ViewModelProvider(this)[WorkSiteViewModel::class.java]
workSiteViewModel.worksiteModel.observe(this) {
@@ -60,7 +64,7 @@
when {
isRefresh -> {
workingListAdapter.setRefreshData(dataRows)
- workingRefreshLayout.finishRefresh()
+ binding.workingRefreshLayout.finishRefresh()
isRefresh = false
}
@@ -69,7 +73,7 @@
"到底了,别拉了".show(requireContext())
}
workingListAdapter.setLoadMoreData(dataRows)
- workingRefreshLayout.finishLoadMore()
+ binding.workingRefreshLayout.finishLoadMore()
isLoadMore = false
}
@@ -105,13 +109,13 @@
}
override fun initEvent() {
- workingRefreshLayout.setOnRefreshListener {
+ binding.workingRefreshLayout.setOnRefreshListener {
isRefresh = true
//刷新之后页码重置
pageIndex = 1
obtainProjectListByPage()
}
- workingRefreshLayout.setOnLoadMoreListener {
+ binding.workingRefreshLayout.setOnLoadMoreListener {
isLoadMore = true
pageIndex++
obtainProjectListByPage()
@@ -125,12 +129,12 @@
private val callback = Handler.Callback {
if (it.what == 2022071101) {
if (dataBeans.size == 0) {
- emptyView.showEmptyPage {
+ binding.emptyInclude.emptyView.showEmptyPage {
pageIndex = 1
obtainProjectListByPage()
}
} else {
- emptyView.hide()
+ binding.emptyInclude.emptyView.hide()
workingListAdapter = object :
NormalRecyclerAdapter(
R.layout.item_working_rv, dataBeans
@@ -156,10 +160,10 @@
.setText(R.id.workSiteView, "现场描述:${item.workSiteDesc}")
}
}
- workingRecyclerView.addItemDecoration(
+ binding.workingRecyclerView.addItemDecoration(
ItemDecoration(95f.dp2px(requireContext()).toFloat(), 0f)
)
- workingRecyclerView.adapter = workingListAdapter
+ binding.workingRecyclerView.adapter = workingListAdapter
workingListAdapter.setOnItemClickedListener(object :
NormalRecyclerAdapter.OnItemClickedListener {
override fun onItemClicked(
diff --git a/app/src/main/java/com/casic/br/operationsite/view/AlarmDetailActivity.kt b/app/src/main/java/com/casic/br/operationsite/view/AlarmDetailActivity.kt
index d412a6f..f45c28e 100644
--- a/app/src/main/java/com/casic/br/operationsite/view/AlarmDetailActivity.kt
+++ b/app/src/main/java/com/casic/br/operationsite/view/AlarmDetailActivity.kt
@@ -13,6 +13,7 @@
import com.bumptech.glide.Glide
import com.bumptech.glide.request.RequestOptions
import com.casic.br.operationsite.R
+import com.casic.br.operationsite.databinding.ActivityAlarmDetailBinding
import com.casic.br.operationsite.extensions.combineImagePath
import com.casic.br.operationsite.extensions.initLayoutImmersionBar
import com.casic.br.operationsite.utils.LoadingDialogHub
@@ -21,30 +22,30 @@
import com.pengxh.kt.lite.base.KotlinBaseActivity
import com.pengxh.kt.lite.utils.Constant
import com.pengxh.kt.lite.vm.LoadState
-import kotlinx.android.synthetic.main.activity_alarm_detail.*
-import kotlinx.android.synthetic.main.include_base_title.*
-class AlarmDetailActivity : KotlinBaseActivity() {
+class AlarmDetailActivity : KotlinBaseActivity() {
private lateinit var aMap: AMap
private lateinit var alarmViewModel: AlarmViewModel
private lateinit var id: String
- override fun initLayoutView(): Int = R.layout.activity_alarm_detail
+ override fun initViewBinding(): ActivityAlarmDetailBinding {
+ return ActivityAlarmDetailBinding.inflate(layoutInflater)
+ }
override fun setupTopBarLayout() {
ImmersionBar.with(this).statusBarDarkFont(false)
.statusBarColor(R.color.mainThemeColor).init()
- initLayoutImmersionBar(rootView)
+ initLayoutImmersionBar(binding.rootView)
- leftBackView.setOnClickListener { finish() }
- titleView.text = "燃气作业现场动态感知"
+ binding.titleInclude.leftBackView.setOnClickListener { finish() }
+ binding.titleInclude.titleView.text = "燃气作业现场动态感知"
}
- override fun initData(savedInstanceState: Bundle?) {
+ override fun initOnCreate(savedInstanceState: Bundle?) {
this.id = intent.getStringExtra(Constant.INTENT_PARAM)!!
- aMap = mapView.map
+ aMap = binding.mapView.map
aMap.mapType = AMap.MAP_TYPE_NORMAL
val uiSettings = aMap.uiSettings
uiSettings.isCompassEnabled = true
@@ -96,9 +97,9 @@
Glide.with(this)
.load(detailData.illegalAvatar.combineImagePath())
.apply(RequestOptions().placeholder(R.mipmap.load_image_error))
- .into(avatarView)
- timeView.text = detailData.createTime
- descriptionView.text = detailData.alarmDescription
+ .into(binding.avatarView)
+ binding.timeView.text = detailData.createTime
+ binding.descriptionView.text = detailData.alarmDescription
}
}
}
@@ -114,26 +115,26 @@
/**地图相关*********/
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
- mapView.onCreate(savedInstanceState)
+ binding.mapView.onCreate(savedInstanceState)
}
override fun onResume() {
super.onResume()
- mapView.onResume()
+ binding.mapView.onResume()
}
override fun onPause() {
super.onPause()
- mapView.onPause()
+ binding.mapView.onPause()
}
override fun onDestroy() {
- mapView.onDestroy()
+ binding.mapView.onDestroy()
super.onDestroy()
}
override fun onSaveInstanceState(outState: Bundle) {
super.onSaveInstanceState(outState)
- mapView.onSaveInstanceState(outState)
+ binding.mapView.onSaveInstanceState(outState)
}
}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/br/operationsite/view/AlarmListActivity.kt b/app/src/main/java/com/casic/br/operationsite/view/AlarmListActivity.kt
index 2a25cd0..a601bde 100644
--- a/app/src/main/java/com/casic/br/operationsite/view/AlarmListActivity.kt
+++ b/app/src/main/java/com/casic/br/operationsite/view/AlarmListActivity.kt
@@ -6,6 +6,7 @@
import androidx.lifecycle.ViewModelProvider
import androidx.recyclerview.widget.DividerItemDecoration
import com.casic.br.operationsite.R
+import com.casic.br.operationsite.databinding.ActivityAlarmListBinding
import com.casic.br.operationsite.extensions.combineImagePath
import com.casic.br.operationsite.extensions.formatToDate
import com.casic.br.operationsite.extensions.initLayoutImmersionBar
@@ -23,11 +24,8 @@
import com.pengxh.kt.lite.extensions.show
import com.pengxh.kt.lite.utils.WeakReferenceHandler
import com.pengxh.kt.lite.vm.LoadState
-import kotlinx.android.synthetic.main.activity_alarm_list.*
-import kotlinx.android.synthetic.main.include_empty_view.*
-import kotlinx.android.synthetic.main.include_search_title.*
-class AlarmListActivity : KotlinBaseActivity() {
+class AlarmListActivity : KotlinBaseActivity() {
private lateinit var weakReferenceHandler: WeakReferenceHandler
private lateinit var alarmListAdapter: NormalRecyclerAdapter
@@ -38,22 +36,24 @@
private var isLoadMore = false
private var keywords = ""
- override fun initLayoutView(): Int = R.layout.activity_alarm_list
+ override fun initViewBinding(): ActivityAlarmListBinding {
+ return ActivityAlarmListBinding.inflate(layoutInflater)
+ }
override fun setupTopBarLayout() {
ImmersionBar.with(this).statusBarDarkFont(false)
.statusBarColor(R.color.mainThemeColor).init()
- initLayoutImmersionBar(rootView)
+ initLayoutImmersionBar(binding.rootView)
- searchTextView.setOnClickListener {
- keywords = searchInputView.text.toString()
+ binding.titleInclude.searchTextView.setOnClickListener {
+ keywords = binding.titleInclude.searchInputView.text.toString()
pageIndex = 1
obtainAlarmListByPage()
}
}
- override fun initData(savedInstanceState: Bundle?) {
+ override fun initOnCreate(savedInstanceState: Bundle?) {
weakReferenceHandler = WeakReferenceHandler(callback)
alarmViewModel = ViewModelProvider(this)[AlarmViewModel::class.java]
}
@@ -75,13 +75,13 @@
}
override fun initEvent() {
- alarmRefreshLayout.setOnRefreshListener {
+ binding.alarmRefreshLayout.setOnRefreshListener {
isRefresh = true
//刷新之后页码重置
pageIndex = 1
obtainAlarmListByPage()
}
- alarmRefreshLayout.setOnLoadMoreListener {
+ binding.alarmRefreshLayout.setOnLoadMoreListener {
isLoadMore = true
pageIndex++
obtainAlarmListByPage()
@@ -93,17 +93,19 @@
when {
isRefresh -> {
alarmListAdapter.setRefreshData(dataRows)
- alarmRefreshLayout.finishRefresh()
+ binding.alarmRefreshLayout.finishRefresh()
isRefresh = false
}
+
isLoadMore -> {
if (dataRows.size == 0) {
"到底了,别拉了".show(this)
}
alarmListAdapter.setLoadMoreData(dataRows)
- alarmRefreshLayout.finishLoadMore()
+ binding.alarmRefreshLayout.finishLoadMore()
isLoadMore = false
}
+
else -> {
dataBeans = dataRows
weakReferenceHandler.sendEmptyMessage(2022071201)
@@ -120,12 +122,12 @@
private val callback = Handler.Callback {
if (it.what == 2022071201) {
if (dataBeans.size == 0) {
- emptyView.showEmptyPage {
+ binding.emptyInclude.emptyView.showEmptyPage {
pageIndex = 1
obtainAlarmListByPage()
}
} else {
- emptyView.hide()
+ binding.emptyInclude.emptyView.hide()
alarmListAdapter =
object : NormalRecyclerAdapter(
R.layout.item_alarm_rv_l, dataBeans
@@ -168,10 +170,10 @@
}
}
}
- alarmRecyclerView.addItemDecoration(
+ binding.alarmRecyclerView.addItemDecoration(
DividerItemDecoration(this, DividerItemDecoration.VERTICAL)
)
- alarmRecyclerView.adapter = alarmListAdapter
+ binding.alarmRecyclerView.adapter = alarmListAdapter
alarmListAdapter.setOnItemClickedListener(object :
NormalRecyclerAdapter.OnItemClickedListener {
override fun onItemClicked(
diff --git a/app/src/main/java/com/casic/br/operationsite/view/ApplyEnterActivity.kt b/app/src/main/java/com/casic/br/operationsite/view/ApplyEnterActivity.kt
index f538396..9e665a5 100644
--- a/app/src/main/java/com/casic/br/operationsite/view/ApplyEnterActivity.kt
+++ b/app/src/main/java/com/casic/br/operationsite/view/ApplyEnterActivity.kt
@@ -12,6 +12,7 @@
import androidx.lifecycle.ViewModelProvider
import com.casic.br.operationsite.R
import com.casic.br.operationsite.callback.OnImageCompressListener
+import com.casic.br.operationsite.databinding.ActivityApplyEnterBinding
import com.casic.br.operationsite.extensions.combineImagePath
import com.casic.br.operationsite.extensions.compressImage
import com.casic.br.operationsite.extensions.initLayoutImmersionBar
@@ -30,11 +31,9 @@
import com.pengxh.kt.lite.utils.Constant
import com.pengxh.kt.lite.vm.LoadState
import com.pengxh.kt.lite.widget.dialog.BottomActionSheet
-import kotlinx.android.synthetic.main.activity_apply_enter.*
-import kotlinx.android.synthetic.main.include_base_title.*
import java.io.File
-class ApplyEnterActivity : KotlinBaseActivity() {
+class ApplyEnterActivity : KotlinBaseActivity() {
private val kTag = "ApplyEnterActivity"
private lateinit var imageAdapter: EditableImageAdapter
@@ -45,25 +44,27 @@
private val imagePaths: ArrayList = ArrayList() //服务器返回的拍照数据集
private val realPaths: ArrayList = ArrayList() //真实图片路径
- override fun initLayoutView(): Int = R.layout.activity_apply_enter
+ override fun initViewBinding(): ActivityApplyEnterBinding {
+ return ActivityApplyEnterBinding.inflate(layoutInflater)
+ }
override fun setupTopBarLayout() {
ImmersionBar.with(this).statusBarDarkFont(false)
.statusBarColor(R.color.mainThemeColor).init()
- initLayoutImmersionBar(rootView)
+ initLayoutImmersionBar(binding.rootView)
- leftBackView.setOnClickListener { finish() }
- titleView.text = "人员信息"
+ binding.titleInclude. leftBackView.setOnClickListener { finish() }
+ binding.titleInclude. titleView.text = "人员信息"
}
- override fun initData(savedInstanceState: Bundle?) {
+ override fun initOnCreate(savedInstanceState: Bundle?) {
projectId = intent.getStringExtra(Constant.INTENT_PARAM)!!
uploadFileViewModel = ViewModelProvider(this)[UploadFileViewModel::class.java]
applyViewModel = ViewModelProvider(this)[ApplyViewModel::class.java]
imageAdapter = EditableImageAdapter(this, 1, 3f)
- addImageRecyclerView.adapter = imageAdapter
+ binding.addImageRecyclerView.adapter = imageAdapter
}
/**
@@ -104,20 +105,20 @@
}
override fun initEvent() {
- genderView.setOnClickListener {
+ binding.genderView.setOnClickListener {
BottomActionSheet.Builder()
.setContext(this)
.setActionItemTitle(LocaleConstant.GENDER)
.setItemTextColor(R.color.mainThemeColor.convertColor(this))
.setOnActionSheetListener(object : BottomActionSheet.OnActionSheetListener {
override fun onActionItemClick(position: Int) {
- genderView.text = LocaleConstant.GENDER[position]
+ binding.genderView.text = LocaleConstant.GENDER[position]
}
})
.build().show()
}
- enterReasonView.addTextChangedListener(object : TextWatcher {
+ binding.enterReasonView.addTextChangedListener(object : TextWatcher {
override fun beforeTextChanged(s: CharSequence?, start: Int, count: Int, after: Int) {
}
@@ -129,12 +130,12 @@
@SuppressLint("SetTextI18n")
override fun afterTextChanged(s: Editable?) {
val text = s.toString().trim()
- inputLengthView.text = "${text.length}/100"
+ binding.inputLengthView.text = "${text.length}/100"
if (text.length > 100) {
- inputLengthView.setTextColor(R.color.redTextColor.convertColor(context))
+ binding.inputLengthView.setTextColor(R.color.redTextColor.convertColor(context))
"入场原因不能超过100个字符".show(context)
} else {
- inputLengthView.setTextColor(R.color.subTextColor.convertColor(context))
+ binding.inputLengthView.setTextColor(R.color.subTextColor.convertColor(context))
}
}
})
@@ -187,28 +188,28 @@
}
}
- confirmApplyButton.setOnClickListener {
- if (workerNameView.text.isNullOrBlank()) {
+ binding.confirmApplyButton.setOnClickListener {
+ if (binding.workerNameView.text.isNullOrBlank()) {
"请输入入场人员姓名".show(this)
return@setOnClickListener
}
- if (ownerShipView.text.isNullOrBlank()) {
+ if (binding.ownerShipView.text.isNullOrBlank()) {
"请输入入场人员单位名称".show(this)
return@setOnClickListener
}
- if (phoneNumberView.text.isNullOrBlank()) {
+ if (binding.phoneNumberView.text.isNullOrBlank()) {
"请输入入场人员联系方式".show(this)
return@setOnClickListener
}
- if (!phoneNumberView.text.toString().isPhoneNumber()) {
+ if (!binding.phoneNumberView.text.toString().isPhoneNumber()) {
"请输入正确的联系方式".show(this)
return@setOnClickListener
}
- if (idCardView.text.isNullOrBlank()) {
+ if (binding.idCardView.text.isNullOrBlank()) {
"请输入入场人员身份证号".show(this)
return@setOnClickListener
}
@@ -218,19 +219,19 @@
projectId,
"2",
"",
- ownerShipView.text.toString(),
+ binding.ownerShipView.text.toString(),
"",
currentTime,
"",
- genderView.text.toString(),
- enterReasonView.text.toString(),
- phoneNumberView.text.toString(),
+ binding.genderView.text.toString(),
+ binding.enterReasonView.text.toString(),
+ binding.phoneNumberView.text.toString(),
currentTime,
imagePaths[0],
- idCardView.text.toString(),
+ binding.idCardView.text.toString(),
"",
"",
- workerNameView.text.toString(),
+ binding.workerNameView.text.toString(),
"0",
""
)
diff --git a/app/build.gradle b/app/build.gradle
index d3ec387..9b32fed 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -2,12 +2,11 @@
apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
-apply plugin: 'kotlin-android-extensions'
android {
signingConfigs {
release {
- storeFile file('/Users/a203/Desktop/AndroidProjects/OperationSite/app/OperationSite.jks')
+ storeFile file('OperationSite.jks')
storePassword '123456789'
keyAlias 'key0'
keyPassword '123456789'
@@ -54,6 +53,7 @@
coroutines 'enable'
}
}
+
viewBinding {
enabled true
}
@@ -73,7 +73,7 @@
dependencies {
implementation fileTree(include: ['*.jar'], dir: 'libs')
//基础依赖库
- implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.0.4.9'
+ implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.0.5'
implementation 'androidx.appcompat:appcompat:1.6.1'
implementation 'androidx.core:core-ktx:1.9.0'
implementation 'com.google.android.material:material:1.6.1'
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index f1a68ec..cde8f45 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -80,7 +80,7 @@
+ android:value="d26ed926cccc5042898237679d65ae26" />
() {
private lateinit var weakReferenceHandler: WeakReferenceHandler
private lateinit var workingListAdapter: NormalRecyclerAdapter
@@ -44,13 +44,17 @@
private var isLoadMore = false
private var keywords = ""
- override fun initLayoutView(): Int = R.layout.fragment_completed
+ override fun initViewBinding(
+ inflater: LayoutInflater, container: ViewGroup?
+ ): FragmentCompletedBinding {
+ return FragmentCompletedBinding.inflate(inflater, container, false)
+ }
override fun setupTopBarLayout() {
}
- override fun initData(savedInstanceState: Bundle?) {
+ override fun initOnCreate(savedInstanceState: Bundle?) {
weakReferenceHandler = WeakReferenceHandler(callback)
workSiteViewModel = ViewModelProvider(this)[WorkSiteViewModel::class.java]
workSiteViewModel.worksiteModel.observe(this) {
@@ -59,7 +63,7 @@
when {
isRefresh -> {
workingListAdapter.setRefreshData(dataRows)
- completedRefreshLayout.finishRefresh()
+ binding.completedRefreshLayout.finishRefresh()
isRefresh = false
}
@@ -68,7 +72,7 @@
"到底了,别拉了".show(requireContext())
}
workingListAdapter.setLoadMoreData(dataRows)
- completedRefreshLayout.finishLoadMore()
+ binding.completedRefreshLayout.finishLoadMore()
isLoadMore = false
}
@@ -104,13 +108,13 @@
}
override fun initEvent() {
- completedRefreshLayout.setOnRefreshListener {
+ binding.completedRefreshLayout.setOnRefreshListener {
isRefresh = true
//刷新之后页码重置
pageIndex = 1
obtainProjectListByPage()
}
- completedRefreshLayout.setOnLoadMoreListener {
+ binding.completedRefreshLayout.setOnLoadMoreListener {
isLoadMore = true
pageIndex++
obtainProjectListByPage()
@@ -124,12 +128,12 @@
private val callback = Handler.Callback {
if (it.what == 2022071502) {
if (dataBeans.size == 0) {
- emptyView.showEmptyPage {
+ binding.emptyInclude.emptyView.showEmptyPage {
pageIndex = 1
obtainProjectListByPage()
}
} else {
- emptyView.hide()
+ binding.emptyInclude.emptyView.hide()
workingListAdapter = object :
NormalRecyclerAdapter(
R.layout.item_working_rv, dataBeans
@@ -155,10 +159,10 @@
.setText(R.id.workSiteView, "现场描述:${item.workSiteDesc}")
}
}
- completedRecyclerView.addItemDecoration(
+ binding.completedRecyclerView.addItemDecoration(
ItemDecoration(95f.dp2px(requireContext()).toFloat(), 0f)
)
- completedRecyclerView.adapter = workingListAdapter
+ binding.completedRecyclerView.adapter = workingListAdapter
workingListAdapter.setOnItemClickedListener(object :
NormalRecyclerAdapter.OnItemClickedListener {
override fun onItemClicked(
diff --git a/app/src/main/java/com/casic/br/operationsite/fragment/NotStartFragment.kt b/app/src/main/java/com/casic/br/operationsite/fragment/NotStartFragment.kt
index e927d86..a1776fb 100644
--- a/app/src/main/java/com/casic/br/operationsite/fragment/NotStartFragment.kt
+++ b/app/src/main/java/com/casic/br/operationsite/fragment/NotStartFragment.kt
@@ -5,8 +5,11 @@
import android.content.Intent
import android.os.Bundle
import android.os.Handler
+import android.view.LayoutInflater
+import android.view.ViewGroup
import androidx.lifecycle.ViewModelProvider
import com.casic.br.operationsite.R
+import com.casic.br.operationsite.databinding.FragmentNotStartBinding
import com.casic.br.operationsite.extensions.combineImagePath
import com.casic.br.operationsite.extensions.showEmptyPage
import com.casic.br.operationsite.model.BroadcastDataModel
@@ -26,11 +29,8 @@
import com.pengxh.kt.lite.utils.BroadcastManager
import com.pengxh.kt.lite.utils.Constant
import com.pengxh.kt.lite.utils.WeakReferenceHandler
-import kotlinx.android.synthetic.main.fragment_not_start.notStartRecyclerView
-import kotlinx.android.synthetic.main.fragment_not_start.notStartRefreshLayout
-import kotlinx.android.synthetic.main.include_empty_view.emptyView
-class NotStartFragment : KotlinBaseFragment() {
+class NotStartFragment : KotlinBaseFragment() {
private lateinit var weakReferenceHandler: WeakReferenceHandler
private lateinit var workingListAdapter: NormalRecyclerAdapter
@@ -44,13 +44,17 @@
private var isLoadMore = false
private var keywords = ""
- override fun initLayoutView(): Int = R.layout.fragment_not_start
+ override fun initViewBinding(
+ inflater: LayoutInflater, container: ViewGroup?
+ ): FragmentNotStartBinding {
+ return FragmentNotStartBinding.inflate(inflater, container, false)
+ }
override fun setupTopBarLayout() {
}
- override fun initData(savedInstanceState: Bundle?) {
+ override fun initOnCreate(savedInstanceState: Bundle?) {
weakReferenceHandler = WeakReferenceHandler(callback)
workSiteViewModel = ViewModelProvider(this)[WorkSiteViewModel::class.java]
workSiteViewModel.worksiteModel.observe(this) {
@@ -59,7 +63,7 @@
when {
isRefresh -> {
workingListAdapter.setRefreshData(dataRows)
- notStartRefreshLayout.finishRefresh()
+ binding.notStartRefreshLayout.finishRefresh()
isRefresh = false
}
@@ -68,7 +72,7 @@
"到底了,别拉了".show(requireContext())
}
workingListAdapter.setLoadMoreData(dataRows)
- notStartRefreshLayout.finishLoadMore()
+ binding.notStartRefreshLayout.finishLoadMore()
isLoadMore = false
}
@@ -104,13 +108,13 @@
}
override fun initEvent() {
- notStartRefreshLayout.setOnRefreshListener {
+ binding.notStartRefreshLayout.setOnRefreshListener {
isRefresh = true
//刷新之后页码重置
pageIndex = 1
obtainProjectListByPage()
}
- notStartRefreshLayout.setOnLoadMoreListener {
+ binding.notStartRefreshLayout.setOnLoadMoreListener {
isLoadMore = true
pageIndex++
obtainProjectListByPage()
@@ -124,12 +128,12 @@
private val callback = Handler.Callback {
if (it.what == 2022071501) {
if (dataBeans.size == 0) {
- emptyView.showEmptyPage {
+ binding.emptyInclude.emptyView.showEmptyPage {
pageIndex = 1
obtainProjectListByPage()
}
} else {
- emptyView.hide()
+ binding.emptyInclude.emptyView.hide()
workingListAdapter = object :
NormalRecyclerAdapter(
R.layout.item_working_rv, dataBeans
@@ -156,10 +160,10 @@
.setText(R.id.workSiteView, "现场描述:${item.workSiteDesc}")
}
}
- notStartRecyclerView.addItemDecoration(
+ binding.notStartRecyclerView.addItemDecoration(
ItemDecoration(95f.dp2px(requireContext()).toFloat(), 0f)
)
- notStartRecyclerView.adapter = workingListAdapter
+ binding.notStartRecyclerView.adapter = workingListAdapter
workingListAdapter.setOnItemClickedListener(object :
NormalRecyclerAdapter.OnItemClickedListener {
override fun onItemClicked(
diff --git a/app/src/main/java/com/casic/br/operationsite/fragment/WorkingFragment.kt b/app/src/main/java/com/casic/br/operationsite/fragment/WorkingFragment.kt
index dcb240c..09a5e1b 100644
--- a/app/src/main/java/com/casic/br/operationsite/fragment/WorkingFragment.kt
+++ b/app/src/main/java/com/casic/br/operationsite/fragment/WorkingFragment.kt
@@ -5,8 +5,11 @@
import android.content.Intent
import android.os.Bundle
import android.os.Handler
+import android.view.LayoutInflater
+import android.view.ViewGroup
import androidx.lifecycle.ViewModelProvider
import com.casic.br.operationsite.R
+import com.casic.br.operationsite.databinding.FragmentWorkingBinding
import com.casic.br.operationsite.extensions.combineImagePath
import com.casic.br.operationsite.extensions.showEmptyPage
import com.casic.br.operationsite.model.BroadcastDataModel
@@ -26,12 +29,9 @@
import com.pengxh.kt.lite.utils.BroadcastManager
import com.pengxh.kt.lite.utils.Constant
import com.pengxh.kt.lite.utils.WeakReferenceHandler
-import kotlinx.android.synthetic.main.fragment_working.workingRecyclerView
-import kotlinx.android.synthetic.main.fragment_working.workingRefreshLayout
-import kotlinx.android.synthetic.main.include_empty_view.emptyView
-class WorkingFragment : KotlinBaseFragment() {
+class WorkingFragment : KotlinBaseFragment() {
private lateinit var weakReferenceHandler: WeakReferenceHandler
private lateinit var workingListAdapter: NormalRecyclerAdapter
@@ -45,13 +45,17 @@
private var isLoadMore = false
private var keywords = ""
- override fun initLayoutView(): Int = R.layout.fragment_working
+ override fun initViewBinding(
+ inflater: LayoutInflater, container: ViewGroup?
+ ): FragmentWorkingBinding {
+ return FragmentWorkingBinding.inflate(inflater, container, false)
+ }
override fun setupTopBarLayout() {
}
- override fun initData(savedInstanceState: Bundle?) {
+ override fun initOnCreate(savedInstanceState: Bundle?) {
weakReferenceHandler = WeakReferenceHandler(callback)
workSiteViewModel = ViewModelProvider(this)[WorkSiteViewModel::class.java]
workSiteViewModel.worksiteModel.observe(this) {
@@ -60,7 +64,7 @@
when {
isRefresh -> {
workingListAdapter.setRefreshData(dataRows)
- workingRefreshLayout.finishRefresh()
+ binding.workingRefreshLayout.finishRefresh()
isRefresh = false
}
@@ -69,7 +73,7 @@
"到底了,别拉了".show(requireContext())
}
workingListAdapter.setLoadMoreData(dataRows)
- workingRefreshLayout.finishLoadMore()
+ binding.workingRefreshLayout.finishLoadMore()
isLoadMore = false
}
@@ -105,13 +109,13 @@
}
override fun initEvent() {
- workingRefreshLayout.setOnRefreshListener {
+ binding.workingRefreshLayout.setOnRefreshListener {
isRefresh = true
//刷新之后页码重置
pageIndex = 1
obtainProjectListByPage()
}
- workingRefreshLayout.setOnLoadMoreListener {
+ binding.workingRefreshLayout.setOnLoadMoreListener {
isLoadMore = true
pageIndex++
obtainProjectListByPage()
@@ -125,12 +129,12 @@
private val callback = Handler.Callback {
if (it.what == 2022071101) {
if (dataBeans.size == 0) {
- emptyView.showEmptyPage {
+ binding.emptyInclude.emptyView.showEmptyPage {
pageIndex = 1
obtainProjectListByPage()
}
} else {
- emptyView.hide()
+ binding.emptyInclude.emptyView.hide()
workingListAdapter = object :
NormalRecyclerAdapter(
R.layout.item_working_rv, dataBeans
@@ -156,10 +160,10 @@
.setText(R.id.workSiteView, "现场描述:${item.workSiteDesc}")
}
}
- workingRecyclerView.addItemDecoration(
+ binding.workingRecyclerView.addItemDecoration(
ItemDecoration(95f.dp2px(requireContext()).toFloat(), 0f)
)
- workingRecyclerView.adapter = workingListAdapter
+ binding.workingRecyclerView.adapter = workingListAdapter
workingListAdapter.setOnItemClickedListener(object :
NormalRecyclerAdapter.OnItemClickedListener {
override fun onItemClicked(
diff --git a/app/src/main/java/com/casic/br/operationsite/view/AlarmDetailActivity.kt b/app/src/main/java/com/casic/br/operationsite/view/AlarmDetailActivity.kt
index d412a6f..f45c28e 100644
--- a/app/src/main/java/com/casic/br/operationsite/view/AlarmDetailActivity.kt
+++ b/app/src/main/java/com/casic/br/operationsite/view/AlarmDetailActivity.kt
@@ -13,6 +13,7 @@
import com.bumptech.glide.Glide
import com.bumptech.glide.request.RequestOptions
import com.casic.br.operationsite.R
+import com.casic.br.operationsite.databinding.ActivityAlarmDetailBinding
import com.casic.br.operationsite.extensions.combineImagePath
import com.casic.br.operationsite.extensions.initLayoutImmersionBar
import com.casic.br.operationsite.utils.LoadingDialogHub
@@ -21,30 +22,30 @@
import com.pengxh.kt.lite.base.KotlinBaseActivity
import com.pengxh.kt.lite.utils.Constant
import com.pengxh.kt.lite.vm.LoadState
-import kotlinx.android.synthetic.main.activity_alarm_detail.*
-import kotlinx.android.synthetic.main.include_base_title.*
-class AlarmDetailActivity : KotlinBaseActivity() {
+class AlarmDetailActivity : KotlinBaseActivity() {
private lateinit var aMap: AMap
private lateinit var alarmViewModel: AlarmViewModel
private lateinit var id: String
- override fun initLayoutView(): Int = R.layout.activity_alarm_detail
+ override fun initViewBinding(): ActivityAlarmDetailBinding {
+ return ActivityAlarmDetailBinding.inflate(layoutInflater)
+ }
override fun setupTopBarLayout() {
ImmersionBar.with(this).statusBarDarkFont(false)
.statusBarColor(R.color.mainThemeColor).init()
- initLayoutImmersionBar(rootView)
+ initLayoutImmersionBar(binding.rootView)
- leftBackView.setOnClickListener { finish() }
- titleView.text = "燃气作业现场动态感知"
+ binding.titleInclude.leftBackView.setOnClickListener { finish() }
+ binding.titleInclude.titleView.text = "燃气作业现场动态感知"
}
- override fun initData(savedInstanceState: Bundle?) {
+ override fun initOnCreate(savedInstanceState: Bundle?) {
this.id = intent.getStringExtra(Constant.INTENT_PARAM)!!
- aMap = mapView.map
+ aMap = binding.mapView.map
aMap.mapType = AMap.MAP_TYPE_NORMAL
val uiSettings = aMap.uiSettings
uiSettings.isCompassEnabled = true
@@ -96,9 +97,9 @@
Glide.with(this)
.load(detailData.illegalAvatar.combineImagePath())
.apply(RequestOptions().placeholder(R.mipmap.load_image_error))
- .into(avatarView)
- timeView.text = detailData.createTime
- descriptionView.text = detailData.alarmDescription
+ .into(binding.avatarView)
+ binding.timeView.text = detailData.createTime
+ binding.descriptionView.text = detailData.alarmDescription
}
}
}
@@ -114,26 +115,26 @@
/**地图相关*********/
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
- mapView.onCreate(savedInstanceState)
+ binding.mapView.onCreate(savedInstanceState)
}
override fun onResume() {
super.onResume()
- mapView.onResume()
+ binding.mapView.onResume()
}
override fun onPause() {
super.onPause()
- mapView.onPause()
+ binding.mapView.onPause()
}
override fun onDestroy() {
- mapView.onDestroy()
+ binding.mapView.onDestroy()
super.onDestroy()
}
override fun onSaveInstanceState(outState: Bundle) {
super.onSaveInstanceState(outState)
- mapView.onSaveInstanceState(outState)
+ binding.mapView.onSaveInstanceState(outState)
}
}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/br/operationsite/view/AlarmListActivity.kt b/app/src/main/java/com/casic/br/operationsite/view/AlarmListActivity.kt
index 2a25cd0..a601bde 100644
--- a/app/src/main/java/com/casic/br/operationsite/view/AlarmListActivity.kt
+++ b/app/src/main/java/com/casic/br/operationsite/view/AlarmListActivity.kt
@@ -6,6 +6,7 @@
import androidx.lifecycle.ViewModelProvider
import androidx.recyclerview.widget.DividerItemDecoration
import com.casic.br.operationsite.R
+import com.casic.br.operationsite.databinding.ActivityAlarmListBinding
import com.casic.br.operationsite.extensions.combineImagePath
import com.casic.br.operationsite.extensions.formatToDate
import com.casic.br.operationsite.extensions.initLayoutImmersionBar
@@ -23,11 +24,8 @@
import com.pengxh.kt.lite.extensions.show
import com.pengxh.kt.lite.utils.WeakReferenceHandler
import com.pengxh.kt.lite.vm.LoadState
-import kotlinx.android.synthetic.main.activity_alarm_list.*
-import kotlinx.android.synthetic.main.include_empty_view.*
-import kotlinx.android.synthetic.main.include_search_title.*
-class AlarmListActivity : KotlinBaseActivity() {
+class AlarmListActivity : KotlinBaseActivity() {
private lateinit var weakReferenceHandler: WeakReferenceHandler
private lateinit var alarmListAdapter: NormalRecyclerAdapter
@@ -38,22 +36,24 @@
private var isLoadMore = false
private var keywords = ""
- override fun initLayoutView(): Int = R.layout.activity_alarm_list
+ override fun initViewBinding(): ActivityAlarmListBinding {
+ return ActivityAlarmListBinding.inflate(layoutInflater)
+ }
override fun setupTopBarLayout() {
ImmersionBar.with(this).statusBarDarkFont(false)
.statusBarColor(R.color.mainThemeColor).init()
- initLayoutImmersionBar(rootView)
+ initLayoutImmersionBar(binding.rootView)
- searchTextView.setOnClickListener {
- keywords = searchInputView.text.toString()
+ binding.titleInclude.searchTextView.setOnClickListener {
+ keywords = binding.titleInclude.searchInputView.text.toString()
pageIndex = 1
obtainAlarmListByPage()
}
}
- override fun initData(savedInstanceState: Bundle?) {
+ override fun initOnCreate(savedInstanceState: Bundle?) {
weakReferenceHandler = WeakReferenceHandler(callback)
alarmViewModel = ViewModelProvider(this)[AlarmViewModel::class.java]
}
@@ -75,13 +75,13 @@
}
override fun initEvent() {
- alarmRefreshLayout.setOnRefreshListener {
+ binding.alarmRefreshLayout.setOnRefreshListener {
isRefresh = true
//刷新之后页码重置
pageIndex = 1
obtainAlarmListByPage()
}
- alarmRefreshLayout.setOnLoadMoreListener {
+ binding.alarmRefreshLayout.setOnLoadMoreListener {
isLoadMore = true
pageIndex++
obtainAlarmListByPage()
@@ -93,17 +93,19 @@
when {
isRefresh -> {
alarmListAdapter.setRefreshData(dataRows)
- alarmRefreshLayout.finishRefresh()
+ binding.alarmRefreshLayout.finishRefresh()
isRefresh = false
}
+
isLoadMore -> {
if (dataRows.size == 0) {
"到底了,别拉了".show(this)
}
alarmListAdapter.setLoadMoreData(dataRows)
- alarmRefreshLayout.finishLoadMore()
+ binding.alarmRefreshLayout.finishLoadMore()
isLoadMore = false
}
+
else -> {
dataBeans = dataRows
weakReferenceHandler.sendEmptyMessage(2022071201)
@@ -120,12 +122,12 @@
private val callback = Handler.Callback {
if (it.what == 2022071201) {
if (dataBeans.size == 0) {
- emptyView.showEmptyPage {
+ binding.emptyInclude.emptyView.showEmptyPage {
pageIndex = 1
obtainAlarmListByPage()
}
} else {
- emptyView.hide()
+ binding.emptyInclude.emptyView.hide()
alarmListAdapter =
object : NormalRecyclerAdapter(
R.layout.item_alarm_rv_l, dataBeans
@@ -168,10 +170,10 @@
}
}
}
- alarmRecyclerView.addItemDecoration(
+ binding.alarmRecyclerView.addItemDecoration(
DividerItemDecoration(this, DividerItemDecoration.VERTICAL)
)
- alarmRecyclerView.adapter = alarmListAdapter
+ binding.alarmRecyclerView.adapter = alarmListAdapter
alarmListAdapter.setOnItemClickedListener(object :
NormalRecyclerAdapter.OnItemClickedListener {
override fun onItemClicked(
diff --git a/app/src/main/java/com/casic/br/operationsite/view/ApplyEnterActivity.kt b/app/src/main/java/com/casic/br/operationsite/view/ApplyEnterActivity.kt
index f538396..9e665a5 100644
--- a/app/src/main/java/com/casic/br/operationsite/view/ApplyEnterActivity.kt
+++ b/app/src/main/java/com/casic/br/operationsite/view/ApplyEnterActivity.kt
@@ -12,6 +12,7 @@
import androidx.lifecycle.ViewModelProvider
import com.casic.br.operationsite.R
import com.casic.br.operationsite.callback.OnImageCompressListener
+import com.casic.br.operationsite.databinding.ActivityApplyEnterBinding
import com.casic.br.operationsite.extensions.combineImagePath
import com.casic.br.operationsite.extensions.compressImage
import com.casic.br.operationsite.extensions.initLayoutImmersionBar
@@ -30,11 +31,9 @@
import com.pengxh.kt.lite.utils.Constant
import com.pengxh.kt.lite.vm.LoadState
import com.pengxh.kt.lite.widget.dialog.BottomActionSheet
-import kotlinx.android.synthetic.main.activity_apply_enter.*
-import kotlinx.android.synthetic.main.include_base_title.*
import java.io.File
-class ApplyEnterActivity : KotlinBaseActivity() {
+class ApplyEnterActivity : KotlinBaseActivity() {
private val kTag = "ApplyEnterActivity"
private lateinit var imageAdapter: EditableImageAdapter
@@ -45,25 +44,27 @@
private val imagePaths: ArrayList = ArrayList() //服务器返回的拍照数据集
private val realPaths: ArrayList = ArrayList() //真实图片路径
- override fun initLayoutView(): Int = R.layout.activity_apply_enter
+ override fun initViewBinding(): ActivityApplyEnterBinding {
+ return ActivityApplyEnterBinding.inflate(layoutInflater)
+ }
override fun setupTopBarLayout() {
ImmersionBar.with(this).statusBarDarkFont(false)
.statusBarColor(R.color.mainThemeColor).init()
- initLayoutImmersionBar(rootView)
+ initLayoutImmersionBar(binding.rootView)
- leftBackView.setOnClickListener { finish() }
- titleView.text = "人员信息"
+ binding.titleInclude. leftBackView.setOnClickListener { finish() }
+ binding.titleInclude. titleView.text = "人员信息"
}
- override fun initData(savedInstanceState: Bundle?) {
+ override fun initOnCreate(savedInstanceState: Bundle?) {
projectId = intent.getStringExtra(Constant.INTENT_PARAM)!!
uploadFileViewModel = ViewModelProvider(this)[UploadFileViewModel::class.java]
applyViewModel = ViewModelProvider(this)[ApplyViewModel::class.java]
imageAdapter = EditableImageAdapter(this, 1, 3f)
- addImageRecyclerView.adapter = imageAdapter
+ binding.addImageRecyclerView.adapter = imageAdapter
}
/**
@@ -104,20 +105,20 @@
}
override fun initEvent() {
- genderView.setOnClickListener {
+ binding.genderView.setOnClickListener {
BottomActionSheet.Builder()
.setContext(this)
.setActionItemTitle(LocaleConstant.GENDER)
.setItemTextColor(R.color.mainThemeColor.convertColor(this))
.setOnActionSheetListener(object : BottomActionSheet.OnActionSheetListener {
override fun onActionItemClick(position: Int) {
- genderView.text = LocaleConstant.GENDER[position]
+ binding.genderView.text = LocaleConstant.GENDER[position]
}
})
.build().show()
}
- enterReasonView.addTextChangedListener(object : TextWatcher {
+ binding.enterReasonView.addTextChangedListener(object : TextWatcher {
override fun beforeTextChanged(s: CharSequence?, start: Int, count: Int, after: Int) {
}
@@ -129,12 +130,12 @@
@SuppressLint("SetTextI18n")
override fun afterTextChanged(s: Editable?) {
val text = s.toString().trim()
- inputLengthView.text = "${text.length}/100"
+ binding.inputLengthView.text = "${text.length}/100"
if (text.length > 100) {
- inputLengthView.setTextColor(R.color.redTextColor.convertColor(context))
+ binding.inputLengthView.setTextColor(R.color.redTextColor.convertColor(context))
"入场原因不能超过100个字符".show(context)
} else {
- inputLengthView.setTextColor(R.color.subTextColor.convertColor(context))
+ binding.inputLengthView.setTextColor(R.color.subTextColor.convertColor(context))
}
}
})
@@ -187,28 +188,28 @@
}
}
- confirmApplyButton.setOnClickListener {
- if (workerNameView.text.isNullOrBlank()) {
+ binding.confirmApplyButton.setOnClickListener {
+ if (binding.workerNameView.text.isNullOrBlank()) {
"请输入入场人员姓名".show(this)
return@setOnClickListener
}
- if (ownerShipView.text.isNullOrBlank()) {
+ if (binding.ownerShipView.text.isNullOrBlank()) {
"请输入入场人员单位名称".show(this)
return@setOnClickListener
}
- if (phoneNumberView.text.isNullOrBlank()) {
+ if (binding.phoneNumberView.text.isNullOrBlank()) {
"请输入入场人员联系方式".show(this)
return@setOnClickListener
}
- if (!phoneNumberView.text.toString().isPhoneNumber()) {
+ if (!binding.phoneNumberView.text.toString().isPhoneNumber()) {
"请输入正确的联系方式".show(this)
return@setOnClickListener
}
- if (idCardView.text.isNullOrBlank()) {
+ if (binding.idCardView.text.isNullOrBlank()) {
"请输入入场人员身份证号".show(this)
return@setOnClickListener
}
@@ -218,19 +219,19 @@
projectId,
"2",
"",
- ownerShipView.text.toString(),
+ binding.ownerShipView.text.toString(),
"",
currentTime,
"",
- genderView.text.toString(),
- enterReasonView.text.toString(),
- phoneNumberView.text.toString(),
+ binding.genderView.text.toString(),
+ binding.enterReasonView.text.toString(),
+ binding.phoneNumberView.text.toString(),
currentTime,
imagePaths[0],
- idCardView.text.toString(),
+ binding.idCardView.text.toString(),
"",
"",
- workerNameView.text.toString(),
+ binding.workerNameView.text.toString(),
"0",
""
)
diff --git a/app/src/main/java/com/casic/br/operationsite/view/BigImageActivity.kt b/app/src/main/java/com/casic/br/operationsite/view/BigImageActivity.kt
index 7cf446c..a2d3dcf 100644
--- a/app/src/main/java/com/casic/br/operationsite/view/BigImageActivity.kt
+++ b/app/src/main/java/com/casic/br/operationsite/view/BigImageActivity.kt
@@ -11,22 +11,24 @@
import androidx.viewpager.widget.ViewPager
import com.bumptech.glide.Glide
import com.casic.br.operationsite.R
+import com.casic.br.operationsite.databinding.ActivityBigImageBinding
import com.luck.picture.lib.photoview.PhotoView
import com.pengxh.kt.lite.base.KotlinBaseActivity
import com.pengxh.kt.lite.utils.Constant
import com.pengxh.kt.lite.utils.ImmerseStatusBarUtil
-import kotlinx.android.synthetic.main.activity_big_image.*
-class BigImageActivity : KotlinBaseActivity() {
+class BigImageActivity : KotlinBaseActivity() {
- override fun initLayoutView(): Int = R.layout.activity_big_image
+ override fun initViewBinding(): ActivityBigImageBinding {
+ return ActivityBigImageBinding.inflate(layoutInflater)
+ }
override fun setupTopBarLayout() {
ImmerseStatusBarUtil.setColor(this, Color.BLACK)
- leftBackView.setOnClickListener { finish() }
+ binding.leftBackView.setOnClickListener { finish() }
}
- override fun initData(savedInstanceState: Bundle?) {
+ override fun initOnCreate(savedInstanceState: Bundle?) {
}
@@ -41,18 +43,19 @@
return
}
val imageSize = urls.size
- pageNumberView.text = String.format("(" + (index + 1) + "/" + imageSize + ")")
- imagePagerView.adapter = BigImageAdapter(this, urls)
- imagePagerView.currentItem = index
- imagePagerView.offscreenPageLimit = imageSize
- imagePagerView.addOnPageChangeListener(object : ViewPager.OnPageChangeListener {
+ binding.pageNumberView.text = String.format("(" + (index + 1) + "/" + imageSize + ")")
+ binding.imagePagerView.adapter = BigImageAdapter(this, urls)
+ binding.imagePagerView.currentItem = index
+ binding.imagePagerView.offscreenPageLimit = imageSize
+ binding.imagePagerView.addOnPageChangeListener(object : ViewPager.OnPageChangeListener {
override fun onPageScrolled(
position: Int, positionOffset: Float, positionOffsetPixels: Int
) {
}
override fun onPageSelected(position: Int) {
- pageNumberView.text = String.format("(" + (position + 1) + "/" + imageSize + ")")
+ binding.pageNumberView.text =
+ String.format("(" + (position + 1) + "/" + imageSize + ")")
}
override fun onPageScrollStateChanged(state: Int) {}
diff --git a/app/build.gradle b/app/build.gradle
index d3ec387..9b32fed 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -2,12 +2,11 @@
apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
-apply plugin: 'kotlin-android-extensions'
android {
signingConfigs {
release {
- storeFile file('/Users/a203/Desktop/AndroidProjects/OperationSite/app/OperationSite.jks')
+ storeFile file('OperationSite.jks')
storePassword '123456789'
keyAlias 'key0'
keyPassword '123456789'
@@ -54,6 +53,7 @@
coroutines 'enable'
}
}
+
viewBinding {
enabled true
}
@@ -73,7 +73,7 @@
dependencies {
implementation fileTree(include: ['*.jar'], dir: 'libs')
//基础依赖库
- implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.0.4.9'
+ implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.0.5'
implementation 'androidx.appcompat:appcompat:1.6.1'
implementation 'androidx.core:core-ktx:1.9.0'
implementation 'com.google.android.material:material:1.6.1'
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index f1a68ec..cde8f45 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -80,7 +80,7 @@
+ android:value="d26ed926cccc5042898237679d65ae26" />
() {
private lateinit var weakReferenceHandler: WeakReferenceHandler
private lateinit var workingListAdapter: NormalRecyclerAdapter
@@ -44,13 +44,17 @@
private var isLoadMore = false
private var keywords = ""
- override fun initLayoutView(): Int = R.layout.fragment_completed
+ override fun initViewBinding(
+ inflater: LayoutInflater, container: ViewGroup?
+ ): FragmentCompletedBinding {
+ return FragmentCompletedBinding.inflate(inflater, container, false)
+ }
override fun setupTopBarLayout() {
}
- override fun initData(savedInstanceState: Bundle?) {
+ override fun initOnCreate(savedInstanceState: Bundle?) {
weakReferenceHandler = WeakReferenceHandler(callback)
workSiteViewModel = ViewModelProvider(this)[WorkSiteViewModel::class.java]
workSiteViewModel.worksiteModel.observe(this) {
@@ -59,7 +63,7 @@
when {
isRefresh -> {
workingListAdapter.setRefreshData(dataRows)
- completedRefreshLayout.finishRefresh()
+ binding.completedRefreshLayout.finishRefresh()
isRefresh = false
}
@@ -68,7 +72,7 @@
"到底了,别拉了".show(requireContext())
}
workingListAdapter.setLoadMoreData(dataRows)
- completedRefreshLayout.finishLoadMore()
+ binding.completedRefreshLayout.finishLoadMore()
isLoadMore = false
}
@@ -104,13 +108,13 @@
}
override fun initEvent() {
- completedRefreshLayout.setOnRefreshListener {
+ binding.completedRefreshLayout.setOnRefreshListener {
isRefresh = true
//刷新之后页码重置
pageIndex = 1
obtainProjectListByPage()
}
- completedRefreshLayout.setOnLoadMoreListener {
+ binding.completedRefreshLayout.setOnLoadMoreListener {
isLoadMore = true
pageIndex++
obtainProjectListByPage()
@@ -124,12 +128,12 @@
private val callback = Handler.Callback {
if (it.what == 2022071502) {
if (dataBeans.size == 0) {
- emptyView.showEmptyPage {
+ binding.emptyInclude.emptyView.showEmptyPage {
pageIndex = 1
obtainProjectListByPage()
}
} else {
- emptyView.hide()
+ binding.emptyInclude.emptyView.hide()
workingListAdapter = object :
NormalRecyclerAdapter(
R.layout.item_working_rv, dataBeans
@@ -155,10 +159,10 @@
.setText(R.id.workSiteView, "现场描述:${item.workSiteDesc}")
}
}
- completedRecyclerView.addItemDecoration(
+ binding.completedRecyclerView.addItemDecoration(
ItemDecoration(95f.dp2px(requireContext()).toFloat(), 0f)
)
- completedRecyclerView.adapter = workingListAdapter
+ binding.completedRecyclerView.adapter = workingListAdapter
workingListAdapter.setOnItemClickedListener(object :
NormalRecyclerAdapter.OnItemClickedListener {
override fun onItemClicked(
diff --git a/app/src/main/java/com/casic/br/operationsite/fragment/NotStartFragment.kt b/app/src/main/java/com/casic/br/operationsite/fragment/NotStartFragment.kt
index e927d86..a1776fb 100644
--- a/app/src/main/java/com/casic/br/operationsite/fragment/NotStartFragment.kt
+++ b/app/src/main/java/com/casic/br/operationsite/fragment/NotStartFragment.kt
@@ -5,8 +5,11 @@
import android.content.Intent
import android.os.Bundle
import android.os.Handler
+import android.view.LayoutInflater
+import android.view.ViewGroup
import androidx.lifecycle.ViewModelProvider
import com.casic.br.operationsite.R
+import com.casic.br.operationsite.databinding.FragmentNotStartBinding
import com.casic.br.operationsite.extensions.combineImagePath
import com.casic.br.operationsite.extensions.showEmptyPage
import com.casic.br.operationsite.model.BroadcastDataModel
@@ -26,11 +29,8 @@
import com.pengxh.kt.lite.utils.BroadcastManager
import com.pengxh.kt.lite.utils.Constant
import com.pengxh.kt.lite.utils.WeakReferenceHandler
-import kotlinx.android.synthetic.main.fragment_not_start.notStartRecyclerView
-import kotlinx.android.synthetic.main.fragment_not_start.notStartRefreshLayout
-import kotlinx.android.synthetic.main.include_empty_view.emptyView
-class NotStartFragment : KotlinBaseFragment() {
+class NotStartFragment : KotlinBaseFragment() {
private lateinit var weakReferenceHandler: WeakReferenceHandler
private lateinit var workingListAdapter: NormalRecyclerAdapter
@@ -44,13 +44,17 @@
private var isLoadMore = false
private var keywords = ""
- override fun initLayoutView(): Int = R.layout.fragment_not_start
+ override fun initViewBinding(
+ inflater: LayoutInflater, container: ViewGroup?
+ ): FragmentNotStartBinding {
+ return FragmentNotStartBinding.inflate(inflater, container, false)
+ }
override fun setupTopBarLayout() {
}
- override fun initData(savedInstanceState: Bundle?) {
+ override fun initOnCreate(savedInstanceState: Bundle?) {
weakReferenceHandler = WeakReferenceHandler(callback)
workSiteViewModel = ViewModelProvider(this)[WorkSiteViewModel::class.java]
workSiteViewModel.worksiteModel.observe(this) {
@@ -59,7 +63,7 @@
when {
isRefresh -> {
workingListAdapter.setRefreshData(dataRows)
- notStartRefreshLayout.finishRefresh()
+ binding.notStartRefreshLayout.finishRefresh()
isRefresh = false
}
@@ -68,7 +72,7 @@
"到底了,别拉了".show(requireContext())
}
workingListAdapter.setLoadMoreData(dataRows)
- notStartRefreshLayout.finishLoadMore()
+ binding.notStartRefreshLayout.finishLoadMore()
isLoadMore = false
}
@@ -104,13 +108,13 @@
}
override fun initEvent() {
- notStartRefreshLayout.setOnRefreshListener {
+ binding.notStartRefreshLayout.setOnRefreshListener {
isRefresh = true
//刷新之后页码重置
pageIndex = 1
obtainProjectListByPage()
}
- notStartRefreshLayout.setOnLoadMoreListener {
+ binding.notStartRefreshLayout.setOnLoadMoreListener {
isLoadMore = true
pageIndex++
obtainProjectListByPage()
@@ -124,12 +128,12 @@
private val callback = Handler.Callback {
if (it.what == 2022071501) {
if (dataBeans.size == 0) {
- emptyView.showEmptyPage {
+ binding.emptyInclude.emptyView.showEmptyPage {
pageIndex = 1
obtainProjectListByPage()
}
} else {
- emptyView.hide()
+ binding.emptyInclude.emptyView.hide()
workingListAdapter = object :
NormalRecyclerAdapter(
R.layout.item_working_rv, dataBeans
@@ -156,10 +160,10 @@
.setText(R.id.workSiteView, "现场描述:${item.workSiteDesc}")
}
}
- notStartRecyclerView.addItemDecoration(
+ binding.notStartRecyclerView.addItemDecoration(
ItemDecoration(95f.dp2px(requireContext()).toFloat(), 0f)
)
- notStartRecyclerView.adapter = workingListAdapter
+ binding.notStartRecyclerView.adapter = workingListAdapter
workingListAdapter.setOnItemClickedListener(object :
NormalRecyclerAdapter.OnItemClickedListener {
override fun onItemClicked(
diff --git a/app/src/main/java/com/casic/br/operationsite/fragment/WorkingFragment.kt b/app/src/main/java/com/casic/br/operationsite/fragment/WorkingFragment.kt
index dcb240c..09a5e1b 100644
--- a/app/src/main/java/com/casic/br/operationsite/fragment/WorkingFragment.kt
+++ b/app/src/main/java/com/casic/br/operationsite/fragment/WorkingFragment.kt
@@ -5,8 +5,11 @@
import android.content.Intent
import android.os.Bundle
import android.os.Handler
+import android.view.LayoutInflater
+import android.view.ViewGroup
import androidx.lifecycle.ViewModelProvider
import com.casic.br.operationsite.R
+import com.casic.br.operationsite.databinding.FragmentWorkingBinding
import com.casic.br.operationsite.extensions.combineImagePath
import com.casic.br.operationsite.extensions.showEmptyPage
import com.casic.br.operationsite.model.BroadcastDataModel
@@ -26,12 +29,9 @@
import com.pengxh.kt.lite.utils.BroadcastManager
import com.pengxh.kt.lite.utils.Constant
import com.pengxh.kt.lite.utils.WeakReferenceHandler
-import kotlinx.android.synthetic.main.fragment_working.workingRecyclerView
-import kotlinx.android.synthetic.main.fragment_working.workingRefreshLayout
-import kotlinx.android.synthetic.main.include_empty_view.emptyView
-class WorkingFragment : KotlinBaseFragment() {
+class WorkingFragment : KotlinBaseFragment() {
private lateinit var weakReferenceHandler: WeakReferenceHandler
private lateinit var workingListAdapter: NormalRecyclerAdapter
@@ -45,13 +45,17 @@
private var isLoadMore = false
private var keywords = ""
- override fun initLayoutView(): Int = R.layout.fragment_working
+ override fun initViewBinding(
+ inflater: LayoutInflater, container: ViewGroup?
+ ): FragmentWorkingBinding {
+ return FragmentWorkingBinding.inflate(inflater, container, false)
+ }
override fun setupTopBarLayout() {
}
- override fun initData(savedInstanceState: Bundle?) {
+ override fun initOnCreate(savedInstanceState: Bundle?) {
weakReferenceHandler = WeakReferenceHandler(callback)
workSiteViewModel = ViewModelProvider(this)[WorkSiteViewModel::class.java]
workSiteViewModel.worksiteModel.observe(this) {
@@ -60,7 +64,7 @@
when {
isRefresh -> {
workingListAdapter.setRefreshData(dataRows)
- workingRefreshLayout.finishRefresh()
+ binding.workingRefreshLayout.finishRefresh()
isRefresh = false
}
@@ -69,7 +73,7 @@
"到底了,别拉了".show(requireContext())
}
workingListAdapter.setLoadMoreData(dataRows)
- workingRefreshLayout.finishLoadMore()
+ binding.workingRefreshLayout.finishLoadMore()
isLoadMore = false
}
@@ -105,13 +109,13 @@
}
override fun initEvent() {
- workingRefreshLayout.setOnRefreshListener {
+ binding.workingRefreshLayout.setOnRefreshListener {
isRefresh = true
//刷新之后页码重置
pageIndex = 1
obtainProjectListByPage()
}
- workingRefreshLayout.setOnLoadMoreListener {
+ binding.workingRefreshLayout.setOnLoadMoreListener {
isLoadMore = true
pageIndex++
obtainProjectListByPage()
@@ -125,12 +129,12 @@
private val callback = Handler.Callback {
if (it.what == 2022071101) {
if (dataBeans.size == 0) {
- emptyView.showEmptyPage {
+ binding.emptyInclude.emptyView.showEmptyPage {
pageIndex = 1
obtainProjectListByPage()
}
} else {
- emptyView.hide()
+ binding.emptyInclude.emptyView.hide()
workingListAdapter = object :
NormalRecyclerAdapter(
R.layout.item_working_rv, dataBeans
@@ -156,10 +160,10 @@
.setText(R.id.workSiteView, "现场描述:${item.workSiteDesc}")
}
}
- workingRecyclerView.addItemDecoration(
+ binding.workingRecyclerView.addItemDecoration(
ItemDecoration(95f.dp2px(requireContext()).toFloat(), 0f)
)
- workingRecyclerView.adapter = workingListAdapter
+ binding.workingRecyclerView.adapter = workingListAdapter
workingListAdapter.setOnItemClickedListener(object :
NormalRecyclerAdapter.OnItemClickedListener {
override fun onItemClicked(
diff --git a/app/src/main/java/com/casic/br/operationsite/view/AlarmDetailActivity.kt b/app/src/main/java/com/casic/br/operationsite/view/AlarmDetailActivity.kt
index d412a6f..f45c28e 100644
--- a/app/src/main/java/com/casic/br/operationsite/view/AlarmDetailActivity.kt
+++ b/app/src/main/java/com/casic/br/operationsite/view/AlarmDetailActivity.kt
@@ -13,6 +13,7 @@
import com.bumptech.glide.Glide
import com.bumptech.glide.request.RequestOptions
import com.casic.br.operationsite.R
+import com.casic.br.operationsite.databinding.ActivityAlarmDetailBinding
import com.casic.br.operationsite.extensions.combineImagePath
import com.casic.br.operationsite.extensions.initLayoutImmersionBar
import com.casic.br.operationsite.utils.LoadingDialogHub
@@ -21,30 +22,30 @@
import com.pengxh.kt.lite.base.KotlinBaseActivity
import com.pengxh.kt.lite.utils.Constant
import com.pengxh.kt.lite.vm.LoadState
-import kotlinx.android.synthetic.main.activity_alarm_detail.*
-import kotlinx.android.synthetic.main.include_base_title.*
-class AlarmDetailActivity : KotlinBaseActivity() {
+class AlarmDetailActivity : KotlinBaseActivity() {
private lateinit var aMap: AMap
private lateinit var alarmViewModel: AlarmViewModel
private lateinit var id: String
- override fun initLayoutView(): Int = R.layout.activity_alarm_detail
+ override fun initViewBinding(): ActivityAlarmDetailBinding {
+ return ActivityAlarmDetailBinding.inflate(layoutInflater)
+ }
override fun setupTopBarLayout() {
ImmersionBar.with(this).statusBarDarkFont(false)
.statusBarColor(R.color.mainThemeColor).init()
- initLayoutImmersionBar(rootView)
+ initLayoutImmersionBar(binding.rootView)
- leftBackView.setOnClickListener { finish() }
- titleView.text = "燃气作业现场动态感知"
+ binding.titleInclude.leftBackView.setOnClickListener { finish() }
+ binding.titleInclude.titleView.text = "燃气作业现场动态感知"
}
- override fun initData(savedInstanceState: Bundle?) {
+ override fun initOnCreate(savedInstanceState: Bundle?) {
this.id = intent.getStringExtra(Constant.INTENT_PARAM)!!
- aMap = mapView.map
+ aMap = binding.mapView.map
aMap.mapType = AMap.MAP_TYPE_NORMAL
val uiSettings = aMap.uiSettings
uiSettings.isCompassEnabled = true
@@ -96,9 +97,9 @@
Glide.with(this)
.load(detailData.illegalAvatar.combineImagePath())
.apply(RequestOptions().placeholder(R.mipmap.load_image_error))
- .into(avatarView)
- timeView.text = detailData.createTime
- descriptionView.text = detailData.alarmDescription
+ .into(binding.avatarView)
+ binding.timeView.text = detailData.createTime
+ binding.descriptionView.text = detailData.alarmDescription
}
}
}
@@ -114,26 +115,26 @@
/**地图相关*********/
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
- mapView.onCreate(savedInstanceState)
+ binding.mapView.onCreate(savedInstanceState)
}
override fun onResume() {
super.onResume()
- mapView.onResume()
+ binding.mapView.onResume()
}
override fun onPause() {
super.onPause()
- mapView.onPause()
+ binding.mapView.onPause()
}
override fun onDestroy() {
- mapView.onDestroy()
+ binding.mapView.onDestroy()
super.onDestroy()
}
override fun onSaveInstanceState(outState: Bundle) {
super.onSaveInstanceState(outState)
- mapView.onSaveInstanceState(outState)
+ binding.mapView.onSaveInstanceState(outState)
}
}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/br/operationsite/view/AlarmListActivity.kt b/app/src/main/java/com/casic/br/operationsite/view/AlarmListActivity.kt
index 2a25cd0..a601bde 100644
--- a/app/src/main/java/com/casic/br/operationsite/view/AlarmListActivity.kt
+++ b/app/src/main/java/com/casic/br/operationsite/view/AlarmListActivity.kt
@@ -6,6 +6,7 @@
import androidx.lifecycle.ViewModelProvider
import androidx.recyclerview.widget.DividerItemDecoration
import com.casic.br.operationsite.R
+import com.casic.br.operationsite.databinding.ActivityAlarmListBinding
import com.casic.br.operationsite.extensions.combineImagePath
import com.casic.br.operationsite.extensions.formatToDate
import com.casic.br.operationsite.extensions.initLayoutImmersionBar
@@ -23,11 +24,8 @@
import com.pengxh.kt.lite.extensions.show
import com.pengxh.kt.lite.utils.WeakReferenceHandler
import com.pengxh.kt.lite.vm.LoadState
-import kotlinx.android.synthetic.main.activity_alarm_list.*
-import kotlinx.android.synthetic.main.include_empty_view.*
-import kotlinx.android.synthetic.main.include_search_title.*
-class AlarmListActivity : KotlinBaseActivity() {
+class AlarmListActivity : KotlinBaseActivity() {
private lateinit var weakReferenceHandler: WeakReferenceHandler
private lateinit var alarmListAdapter: NormalRecyclerAdapter
@@ -38,22 +36,24 @@
private var isLoadMore = false
private var keywords = ""
- override fun initLayoutView(): Int = R.layout.activity_alarm_list
+ override fun initViewBinding(): ActivityAlarmListBinding {
+ return ActivityAlarmListBinding.inflate(layoutInflater)
+ }
override fun setupTopBarLayout() {
ImmersionBar.with(this).statusBarDarkFont(false)
.statusBarColor(R.color.mainThemeColor).init()
- initLayoutImmersionBar(rootView)
+ initLayoutImmersionBar(binding.rootView)
- searchTextView.setOnClickListener {
- keywords = searchInputView.text.toString()
+ binding.titleInclude.searchTextView.setOnClickListener {
+ keywords = binding.titleInclude.searchInputView.text.toString()
pageIndex = 1
obtainAlarmListByPage()
}
}
- override fun initData(savedInstanceState: Bundle?) {
+ override fun initOnCreate(savedInstanceState: Bundle?) {
weakReferenceHandler = WeakReferenceHandler(callback)
alarmViewModel = ViewModelProvider(this)[AlarmViewModel::class.java]
}
@@ -75,13 +75,13 @@
}
override fun initEvent() {
- alarmRefreshLayout.setOnRefreshListener {
+ binding.alarmRefreshLayout.setOnRefreshListener {
isRefresh = true
//刷新之后页码重置
pageIndex = 1
obtainAlarmListByPage()
}
- alarmRefreshLayout.setOnLoadMoreListener {
+ binding.alarmRefreshLayout.setOnLoadMoreListener {
isLoadMore = true
pageIndex++
obtainAlarmListByPage()
@@ -93,17 +93,19 @@
when {
isRefresh -> {
alarmListAdapter.setRefreshData(dataRows)
- alarmRefreshLayout.finishRefresh()
+ binding.alarmRefreshLayout.finishRefresh()
isRefresh = false
}
+
isLoadMore -> {
if (dataRows.size == 0) {
"到底了,别拉了".show(this)
}
alarmListAdapter.setLoadMoreData(dataRows)
- alarmRefreshLayout.finishLoadMore()
+ binding.alarmRefreshLayout.finishLoadMore()
isLoadMore = false
}
+
else -> {
dataBeans = dataRows
weakReferenceHandler.sendEmptyMessage(2022071201)
@@ -120,12 +122,12 @@
private val callback = Handler.Callback {
if (it.what == 2022071201) {
if (dataBeans.size == 0) {
- emptyView.showEmptyPage {
+ binding.emptyInclude.emptyView.showEmptyPage {
pageIndex = 1
obtainAlarmListByPage()
}
} else {
- emptyView.hide()
+ binding.emptyInclude.emptyView.hide()
alarmListAdapter =
object : NormalRecyclerAdapter(
R.layout.item_alarm_rv_l, dataBeans
@@ -168,10 +170,10 @@
}
}
}
- alarmRecyclerView.addItemDecoration(
+ binding.alarmRecyclerView.addItemDecoration(
DividerItemDecoration(this, DividerItemDecoration.VERTICAL)
)
- alarmRecyclerView.adapter = alarmListAdapter
+ binding.alarmRecyclerView.adapter = alarmListAdapter
alarmListAdapter.setOnItemClickedListener(object :
NormalRecyclerAdapter.OnItemClickedListener {
override fun onItemClicked(
diff --git a/app/src/main/java/com/casic/br/operationsite/view/ApplyEnterActivity.kt b/app/src/main/java/com/casic/br/operationsite/view/ApplyEnterActivity.kt
index f538396..9e665a5 100644
--- a/app/src/main/java/com/casic/br/operationsite/view/ApplyEnterActivity.kt
+++ b/app/src/main/java/com/casic/br/operationsite/view/ApplyEnterActivity.kt
@@ -12,6 +12,7 @@
import androidx.lifecycle.ViewModelProvider
import com.casic.br.operationsite.R
import com.casic.br.operationsite.callback.OnImageCompressListener
+import com.casic.br.operationsite.databinding.ActivityApplyEnterBinding
import com.casic.br.operationsite.extensions.combineImagePath
import com.casic.br.operationsite.extensions.compressImage
import com.casic.br.operationsite.extensions.initLayoutImmersionBar
@@ -30,11 +31,9 @@
import com.pengxh.kt.lite.utils.Constant
import com.pengxh.kt.lite.vm.LoadState
import com.pengxh.kt.lite.widget.dialog.BottomActionSheet
-import kotlinx.android.synthetic.main.activity_apply_enter.*
-import kotlinx.android.synthetic.main.include_base_title.*
import java.io.File
-class ApplyEnterActivity : KotlinBaseActivity() {
+class ApplyEnterActivity : KotlinBaseActivity() {
private val kTag = "ApplyEnterActivity"
private lateinit var imageAdapter: EditableImageAdapter
@@ -45,25 +44,27 @@
private val imagePaths: ArrayList = ArrayList() //服务器返回的拍照数据集
private val realPaths: ArrayList = ArrayList() //真实图片路径
- override fun initLayoutView(): Int = R.layout.activity_apply_enter
+ override fun initViewBinding(): ActivityApplyEnterBinding {
+ return ActivityApplyEnterBinding.inflate(layoutInflater)
+ }
override fun setupTopBarLayout() {
ImmersionBar.with(this).statusBarDarkFont(false)
.statusBarColor(R.color.mainThemeColor).init()
- initLayoutImmersionBar(rootView)
+ initLayoutImmersionBar(binding.rootView)
- leftBackView.setOnClickListener { finish() }
- titleView.text = "人员信息"
+ binding.titleInclude. leftBackView.setOnClickListener { finish() }
+ binding.titleInclude. titleView.text = "人员信息"
}
- override fun initData(savedInstanceState: Bundle?) {
+ override fun initOnCreate(savedInstanceState: Bundle?) {
projectId = intent.getStringExtra(Constant.INTENT_PARAM)!!
uploadFileViewModel = ViewModelProvider(this)[UploadFileViewModel::class.java]
applyViewModel = ViewModelProvider(this)[ApplyViewModel::class.java]
imageAdapter = EditableImageAdapter(this, 1, 3f)
- addImageRecyclerView.adapter = imageAdapter
+ binding.addImageRecyclerView.adapter = imageAdapter
}
/**
@@ -104,20 +105,20 @@
}
override fun initEvent() {
- genderView.setOnClickListener {
+ binding.genderView.setOnClickListener {
BottomActionSheet.Builder()
.setContext(this)
.setActionItemTitle(LocaleConstant.GENDER)
.setItemTextColor(R.color.mainThemeColor.convertColor(this))
.setOnActionSheetListener(object : BottomActionSheet.OnActionSheetListener {
override fun onActionItemClick(position: Int) {
- genderView.text = LocaleConstant.GENDER[position]
+ binding.genderView.text = LocaleConstant.GENDER[position]
}
})
.build().show()
}
- enterReasonView.addTextChangedListener(object : TextWatcher {
+ binding.enterReasonView.addTextChangedListener(object : TextWatcher {
override fun beforeTextChanged(s: CharSequence?, start: Int, count: Int, after: Int) {
}
@@ -129,12 +130,12 @@
@SuppressLint("SetTextI18n")
override fun afterTextChanged(s: Editable?) {
val text = s.toString().trim()
- inputLengthView.text = "${text.length}/100"
+ binding.inputLengthView.text = "${text.length}/100"
if (text.length > 100) {
- inputLengthView.setTextColor(R.color.redTextColor.convertColor(context))
+ binding.inputLengthView.setTextColor(R.color.redTextColor.convertColor(context))
"入场原因不能超过100个字符".show(context)
} else {
- inputLengthView.setTextColor(R.color.subTextColor.convertColor(context))
+ binding.inputLengthView.setTextColor(R.color.subTextColor.convertColor(context))
}
}
})
@@ -187,28 +188,28 @@
}
}
- confirmApplyButton.setOnClickListener {
- if (workerNameView.text.isNullOrBlank()) {
+ binding.confirmApplyButton.setOnClickListener {
+ if (binding.workerNameView.text.isNullOrBlank()) {
"请输入入场人员姓名".show(this)
return@setOnClickListener
}
- if (ownerShipView.text.isNullOrBlank()) {
+ if (binding.ownerShipView.text.isNullOrBlank()) {
"请输入入场人员单位名称".show(this)
return@setOnClickListener
}
- if (phoneNumberView.text.isNullOrBlank()) {
+ if (binding.phoneNumberView.text.isNullOrBlank()) {
"请输入入场人员联系方式".show(this)
return@setOnClickListener
}
- if (!phoneNumberView.text.toString().isPhoneNumber()) {
+ if (!binding.phoneNumberView.text.toString().isPhoneNumber()) {
"请输入正确的联系方式".show(this)
return@setOnClickListener
}
- if (idCardView.text.isNullOrBlank()) {
+ if (binding.idCardView.text.isNullOrBlank()) {
"请输入入场人员身份证号".show(this)
return@setOnClickListener
}
@@ -218,19 +219,19 @@
projectId,
"2",
"",
- ownerShipView.text.toString(),
+ binding.ownerShipView.text.toString(),
"",
currentTime,
"",
- genderView.text.toString(),
- enterReasonView.text.toString(),
- phoneNumberView.text.toString(),
+ binding.genderView.text.toString(),
+ binding.enterReasonView.text.toString(),
+ binding.phoneNumberView.text.toString(),
currentTime,
imagePaths[0],
- idCardView.text.toString(),
+ binding.idCardView.text.toString(),
"",
"",
- workerNameView.text.toString(),
+ binding.workerNameView.text.toString(),
"0",
""
)
diff --git a/app/src/main/java/com/casic/br/operationsite/view/BigImageActivity.kt b/app/src/main/java/com/casic/br/operationsite/view/BigImageActivity.kt
index 7cf446c..a2d3dcf 100644
--- a/app/src/main/java/com/casic/br/operationsite/view/BigImageActivity.kt
+++ b/app/src/main/java/com/casic/br/operationsite/view/BigImageActivity.kt
@@ -11,22 +11,24 @@
import androidx.viewpager.widget.ViewPager
import com.bumptech.glide.Glide
import com.casic.br.operationsite.R
+import com.casic.br.operationsite.databinding.ActivityBigImageBinding
import com.luck.picture.lib.photoview.PhotoView
import com.pengxh.kt.lite.base.KotlinBaseActivity
import com.pengxh.kt.lite.utils.Constant
import com.pengxh.kt.lite.utils.ImmerseStatusBarUtil
-import kotlinx.android.synthetic.main.activity_big_image.*
-class BigImageActivity : KotlinBaseActivity() {
+class BigImageActivity : KotlinBaseActivity() {
- override fun initLayoutView(): Int = R.layout.activity_big_image
+ override fun initViewBinding(): ActivityBigImageBinding {
+ return ActivityBigImageBinding.inflate(layoutInflater)
+ }
override fun setupTopBarLayout() {
ImmerseStatusBarUtil.setColor(this, Color.BLACK)
- leftBackView.setOnClickListener { finish() }
+ binding.leftBackView.setOnClickListener { finish() }
}
- override fun initData(savedInstanceState: Bundle?) {
+ override fun initOnCreate(savedInstanceState: Bundle?) {
}
@@ -41,18 +43,19 @@
return
}
val imageSize = urls.size
- pageNumberView.text = String.format("(" + (index + 1) + "/" + imageSize + ")")
- imagePagerView.adapter = BigImageAdapter(this, urls)
- imagePagerView.currentItem = index
- imagePagerView.offscreenPageLimit = imageSize
- imagePagerView.addOnPageChangeListener(object : ViewPager.OnPageChangeListener {
+ binding.pageNumberView.text = String.format("(" + (index + 1) + "/" + imageSize + ")")
+ binding.imagePagerView.adapter = BigImageAdapter(this, urls)
+ binding.imagePagerView.currentItem = index
+ binding.imagePagerView.offscreenPageLimit = imageSize
+ binding.imagePagerView.addOnPageChangeListener(object : ViewPager.OnPageChangeListener {
override fun onPageScrolled(
position: Int, positionOffset: Float, positionOffsetPixels: Int
) {
}
override fun onPageSelected(position: Int) {
- pageNumberView.text = String.format("(" + (position + 1) + "/" + imageSize + ")")
+ binding.pageNumberView.text =
+ String.format("(" + (position + 1) + "/" + imageSize + ")")
}
override fun onPageScrollStateChanged(state: Int) {}
diff --git a/app/src/main/java/com/casic/br/operationsite/view/FaceDetectActivity.kt b/app/src/main/java/com/casic/br/operationsite/view/FaceDetectActivity.kt
index 9ba963c..54258e7 100644
--- a/app/src/main/java/com/casic/br/operationsite/view/FaceDetectActivity.kt
+++ b/app/src/main/java/com/casic/br/operationsite/view/FaceDetectActivity.kt
@@ -17,6 +17,7 @@
import androidx.camera.lifecycle.ProcessCameraProvider
import androidx.core.content.ContextCompat
import com.casic.br.operationsite.R
+import com.casic.br.operationsite.databinding.ActivityFaceDetectBinding
import com.casic.br.operationsite.extensions.initLayoutImmersionBar
import com.google.common.util.concurrent.ListenableFuture
import com.gyf.immersionbar.ImmersionBar
@@ -25,8 +26,6 @@
import com.pengxh.kt.lite.extensions.setScreenBrightness
import com.pengxh.kt.lite.extensions.toBitmap
import com.pengxh.kt.lite.utils.WeakReferenceHandler
-import kotlinx.android.synthetic.main.activity_face_detect.*
-import kotlinx.android.synthetic.main.include_base_title.*
import java.io.File
import java.io.IOException
import java.text.SimpleDateFormat
@@ -35,7 +34,7 @@
import kotlin.math.abs
-class FaceDetectActivity : KotlinBaseActivity() {
+class FaceDetectActivity : KotlinBaseActivity() {
private val kTag = "FaceDetectActivity"
private lateinit var cameraExecutor: ExecutorService
@@ -45,14 +44,10 @@
private lateinit var weakReferenceHandler: WeakReferenceHandler
private val RATIO_4_3_VALUE = 4.0 / 3.0
private val RATIO_16_9_VALUE = 16.0 / 9.0
- private val executor: ThreadPoolExecutor = ThreadPoolExecutor(
- 16,
- 16,
- 0L,
- TimeUnit.MILLISECONDS,
- LinkedBlockingQueue(1024),
- FaceDetectorThread(),
- ThreadPoolExecutor.AbortPolicy()
+ private val executor = ThreadPoolExecutor(
+ 16, 16, 0L,
+ TimeUnit.MILLISECONDS, LinkedBlockingQueue(1024),
+ FaceDetectorThread(), ThreadPoolExecutor.AbortPolicy()
)
inner class FaceDetectorThread : ThreadFactory {
@@ -61,18 +56,20 @@
}
}
- override fun initLayoutView(): Int = R.layout.activity_face_detect
+ override fun initViewBinding(): ActivityFaceDetectBinding {
+ return ActivityFaceDetectBinding.inflate(layoutInflater)
+ }
override fun setupTopBarLayout() {
ImmersionBar.with(this).statusBarDarkFont(false).statusBarColor(R.color.mainThemeColor)
.init()
- initLayoutImmersionBar(rootView)
+ initLayoutImmersionBar(binding.rootView)
- leftBackView.setOnClickListener { finish() }
- titleView.text = "入场申请人脸采集"
+ binding.titleInclude.leftBackView.setOnClickListener { finish() }
+ binding.titleInclude.titleView.text = "入场申请人脸采集"
}
- override fun initData(savedInstanceState: Bundle?) {
+ override fun initOnCreate(savedInstanceState: Bundle?) {
//调节屏幕亮度最大
window.setScreenBrightness(WindowManager.LayoutParams.BRIGHTNESS_OVERRIDE_FULL)
@@ -137,7 +134,7 @@
imageAnalysis,
cameraPreViewBuilder
)
- cameraPreViewBuilder.setSurfaceProvider(cameraPreView.surfaceProvider)
+ cameraPreViewBuilder.setSurfaceProvider(binding.cameraPreView.surfaceProvider)
observeCameraState(camera.cameraInfo)
} catch (e: Exception) {
e.printStackTrace()
@@ -196,7 +193,7 @@
* */
private val callback = Handler.Callback {
if (it.what == 2022071401) {
- faceDetectTipsView.text = "人脸特征采集中,请勿晃动手机"
+ binding.faceDetectTipsView.text = "人脸特征采集中,请勿晃动手机"
val fileOptions = ImageCapture.OutputFileOptions.Builder(createImageFile()).build()
imageCapture.takePicture(fileOptions, cameraExecutor,
object : ImageCapture.OnImageSavedCallback {
diff --git a/app/build.gradle b/app/build.gradle
index d3ec387..9b32fed 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -2,12 +2,11 @@
apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
-apply plugin: 'kotlin-android-extensions'
android {
signingConfigs {
release {
- storeFile file('/Users/a203/Desktop/AndroidProjects/OperationSite/app/OperationSite.jks')
+ storeFile file('OperationSite.jks')
storePassword '123456789'
keyAlias 'key0'
keyPassword '123456789'
@@ -54,6 +53,7 @@
coroutines 'enable'
}
}
+
viewBinding {
enabled true
}
@@ -73,7 +73,7 @@
dependencies {
implementation fileTree(include: ['*.jar'], dir: 'libs')
//基础依赖库
- implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.0.4.9'
+ implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.0.5'
implementation 'androidx.appcompat:appcompat:1.6.1'
implementation 'androidx.core:core-ktx:1.9.0'
implementation 'com.google.android.material:material:1.6.1'
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index f1a68ec..cde8f45 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -80,7 +80,7 @@
+ android:value="d26ed926cccc5042898237679d65ae26" />
() {
private lateinit var weakReferenceHandler: WeakReferenceHandler
private lateinit var workingListAdapter: NormalRecyclerAdapter
@@ -44,13 +44,17 @@
private var isLoadMore = false
private var keywords = ""
- override fun initLayoutView(): Int = R.layout.fragment_completed
+ override fun initViewBinding(
+ inflater: LayoutInflater, container: ViewGroup?
+ ): FragmentCompletedBinding {
+ return FragmentCompletedBinding.inflate(inflater, container, false)
+ }
override fun setupTopBarLayout() {
}
- override fun initData(savedInstanceState: Bundle?) {
+ override fun initOnCreate(savedInstanceState: Bundle?) {
weakReferenceHandler = WeakReferenceHandler(callback)
workSiteViewModel = ViewModelProvider(this)[WorkSiteViewModel::class.java]
workSiteViewModel.worksiteModel.observe(this) {
@@ -59,7 +63,7 @@
when {
isRefresh -> {
workingListAdapter.setRefreshData(dataRows)
- completedRefreshLayout.finishRefresh()
+ binding.completedRefreshLayout.finishRefresh()
isRefresh = false
}
@@ -68,7 +72,7 @@
"到底了,别拉了".show(requireContext())
}
workingListAdapter.setLoadMoreData(dataRows)
- completedRefreshLayout.finishLoadMore()
+ binding.completedRefreshLayout.finishLoadMore()
isLoadMore = false
}
@@ -104,13 +108,13 @@
}
override fun initEvent() {
- completedRefreshLayout.setOnRefreshListener {
+ binding.completedRefreshLayout.setOnRefreshListener {
isRefresh = true
//刷新之后页码重置
pageIndex = 1
obtainProjectListByPage()
}
- completedRefreshLayout.setOnLoadMoreListener {
+ binding.completedRefreshLayout.setOnLoadMoreListener {
isLoadMore = true
pageIndex++
obtainProjectListByPage()
@@ -124,12 +128,12 @@
private val callback = Handler.Callback {
if (it.what == 2022071502) {
if (dataBeans.size == 0) {
- emptyView.showEmptyPage {
+ binding.emptyInclude.emptyView.showEmptyPage {
pageIndex = 1
obtainProjectListByPage()
}
} else {
- emptyView.hide()
+ binding.emptyInclude.emptyView.hide()
workingListAdapter = object :
NormalRecyclerAdapter(
R.layout.item_working_rv, dataBeans
@@ -155,10 +159,10 @@
.setText(R.id.workSiteView, "现场描述:${item.workSiteDesc}")
}
}
- completedRecyclerView.addItemDecoration(
+ binding.completedRecyclerView.addItemDecoration(
ItemDecoration(95f.dp2px(requireContext()).toFloat(), 0f)
)
- completedRecyclerView.adapter = workingListAdapter
+ binding.completedRecyclerView.adapter = workingListAdapter
workingListAdapter.setOnItemClickedListener(object :
NormalRecyclerAdapter.OnItemClickedListener {
override fun onItemClicked(
diff --git a/app/src/main/java/com/casic/br/operationsite/fragment/NotStartFragment.kt b/app/src/main/java/com/casic/br/operationsite/fragment/NotStartFragment.kt
index e927d86..a1776fb 100644
--- a/app/src/main/java/com/casic/br/operationsite/fragment/NotStartFragment.kt
+++ b/app/src/main/java/com/casic/br/operationsite/fragment/NotStartFragment.kt
@@ -5,8 +5,11 @@
import android.content.Intent
import android.os.Bundle
import android.os.Handler
+import android.view.LayoutInflater
+import android.view.ViewGroup
import androidx.lifecycle.ViewModelProvider
import com.casic.br.operationsite.R
+import com.casic.br.operationsite.databinding.FragmentNotStartBinding
import com.casic.br.operationsite.extensions.combineImagePath
import com.casic.br.operationsite.extensions.showEmptyPage
import com.casic.br.operationsite.model.BroadcastDataModel
@@ -26,11 +29,8 @@
import com.pengxh.kt.lite.utils.BroadcastManager
import com.pengxh.kt.lite.utils.Constant
import com.pengxh.kt.lite.utils.WeakReferenceHandler
-import kotlinx.android.synthetic.main.fragment_not_start.notStartRecyclerView
-import kotlinx.android.synthetic.main.fragment_not_start.notStartRefreshLayout
-import kotlinx.android.synthetic.main.include_empty_view.emptyView
-class NotStartFragment : KotlinBaseFragment() {
+class NotStartFragment : KotlinBaseFragment() {
private lateinit var weakReferenceHandler: WeakReferenceHandler
private lateinit var workingListAdapter: NormalRecyclerAdapter
@@ -44,13 +44,17 @@
private var isLoadMore = false
private var keywords = ""
- override fun initLayoutView(): Int = R.layout.fragment_not_start
+ override fun initViewBinding(
+ inflater: LayoutInflater, container: ViewGroup?
+ ): FragmentNotStartBinding {
+ return FragmentNotStartBinding.inflate(inflater, container, false)
+ }
override fun setupTopBarLayout() {
}
- override fun initData(savedInstanceState: Bundle?) {
+ override fun initOnCreate(savedInstanceState: Bundle?) {
weakReferenceHandler = WeakReferenceHandler(callback)
workSiteViewModel = ViewModelProvider(this)[WorkSiteViewModel::class.java]
workSiteViewModel.worksiteModel.observe(this) {
@@ -59,7 +63,7 @@
when {
isRefresh -> {
workingListAdapter.setRefreshData(dataRows)
- notStartRefreshLayout.finishRefresh()
+ binding.notStartRefreshLayout.finishRefresh()
isRefresh = false
}
@@ -68,7 +72,7 @@
"到底了,别拉了".show(requireContext())
}
workingListAdapter.setLoadMoreData(dataRows)
- notStartRefreshLayout.finishLoadMore()
+ binding.notStartRefreshLayout.finishLoadMore()
isLoadMore = false
}
@@ -104,13 +108,13 @@
}
override fun initEvent() {
- notStartRefreshLayout.setOnRefreshListener {
+ binding.notStartRefreshLayout.setOnRefreshListener {
isRefresh = true
//刷新之后页码重置
pageIndex = 1
obtainProjectListByPage()
}
- notStartRefreshLayout.setOnLoadMoreListener {
+ binding.notStartRefreshLayout.setOnLoadMoreListener {
isLoadMore = true
pageIndex++
obtainProjectListByPage()
@@ -124,12 +128,12 @@
private val callback = Handler.Callback {
if (it.what == 2022071501) {
if (dataBeans.size == 0) {
- emptyView.showEmptyPage {
+ binding.emptyInclude.emptyView.showEmptyPage {
pageIndex = 1
obtainProjectListByPage()
}
} else {
- emptyView.hide()
+ binding.emptyInclude.emptyView.hide()
workingListAdapter = object :
NormalRecyclerAdapter(
R.layout.item_working_rv, dataBeans
@@ -156,10 +160,10 @@
.setText(R.id.workSiteView, "现场描述:${item.workSiteDesc}")
}
}
- notStartRecyclerView.addItemDecoration(
+ binding.notStartRecyclerView.addItemDecoration(
ItemDecoration(95f.dp2px(requireContext()).toFloat(), 0f)
)
- notStartRecyclerView.adapter = workingListAdapter
+ binding.notStartRecyclerView.adapter = workingListAdapter
workingListAdapter.setOnItemClickedListener(object :
NormalRecyclerAdapter.OnItemClickedListener {
override fun onItemClicked(
diff --git a/app/src/main/java/com/casic/br/operationsite/fragment/WorkingFragment.kt b/app/src/main/java/com/casic/br/operationsite/fragment/WorkingFragment.kt
index dcb240c..09a5e1b 100644
--- a/app/src/main/java/com/casic/br/operationsite/fragment/WorkingFragment.kt
+++ b/app/src/main/java/com/casic/br/operationsite/fragment/WorkingFragment.kt
@@ -5,8 +5,11 @@
import android.content.Intent
import android.os.Bundle
import android.os.Handler
+import android.view.LayoutInflater
+import android.view.ViewGroup
import androidx.lifecycle.ViewModelProvider
import com.casic.br.operationsite.R
+import com.casic.br.operationsite.databinding.FragmentWorkingBinding
import com.casic.br.operationsite.extensions.combineImagePath
import com.casic.br.operationsite.extensions.showEmptyPage
import com.casic.br.operationsite.model.BroadcastDataModel
@@ -26,12 +29,9 @@
import com.pengxh.kt.lite.utils.BroadcastManager
import com.pengxh.kt.lite.utils.Constant
import com.pengxh.kt.lite.utils.WeakReferenceHandler
-import kotlinx.android.synthetic.main.fragment_working.workingRecyclerView
-import kotlinx.android.synthetic.main.fragment_working.workingRefreshLayout
-import kotlinx.android.synthetic.main.include_empty_view.emptyView
-class WorkingFragment : KotlinBaseFragment() {
+class WorkingFragment : KotlinBaseFragment() {
private lateinit var weakReferenceHandler: WeakReferenceHandler
private lateinit var workingListAdapter: NormalRecyclerAdapter
@@ -45,13 +45,17 @@
private var isLoadMore = false
private var keywords = ""
- override fun initLayoutView(): Int = R.layout.fragment_working
+ override fun initViewBinding(
+ inflater: LayoutInflater, container: ViewGroup?
+ ): FragmentWorkingBinding {
+ return FragmentWorkingBinding.inflate(inflater, container, false)
+ }
override fun setupTopBarLayout() {
}
- override fun initData(savedInstanceState: Bundle?) {
+ override fun initOnCreate(savedInstanceState: Bundle?) {
weakReferenceHandler = WeakReferenceHandler(callback)
workSiteViewModel = ViewModelProvider(this)[WorkSiteViewModel::class.java]
workSiteViewModel.worksiteModel.observe(this) {
@@ -60,7 +64,7 @@
when {
isRefresh -> {
workingListAdapter.setRefreshData(dataRows)
- workingRefreshLayout.finishRefresh()
+ binding.workingRefreshLayout.finishRefresh()
isRefresh = false
}
@@ -69,7 +73,7 @@
"到底了,别拉了".show(requireContext())
}
workingListAdapter.setLoadMoreData(dataRows)
- workingRefreshLayout.finishLoadMore()
+ binding.workingRefreshLayout.finishLoadMore()
isLoadMore = false
}
@@ -105,13 +109,13 @@
}
override fun initEvent() {
- workingRefreshLayout.setOnRefreshListener {
+ binding.workingRefreshLayout.setOnRefreshListener {
isRefresh = true
//刷新之后页码重置
pageIndex = 1
obtainProjectListByPage()
}
- workingRefreshLayout.setOnLoadMoreListener {
+ binding.workingRefreshLayout.setOnLoadMoreListener {
isLoadMore = true
pageIndex++
obtainProjectListByPage()
@@ -125,12 +129,12 @@
private val callback = Handler.Callback {
if (it.what == 2022071101) {
if (dataBeans.size == 0) {
- emptyView.showEmptyPage {
+ binding.emptyInclude.emptyView.showEmptyPage {
pageIndex = 1
obtainProjectListByPage()
}
} else {
- emptyView.hide()
+ binding.emptyInclude.emptyView.hide()
workingListAdapter = object :
NormalRecyclerAdapter(
R.layout.item_working_rv, dataBeans
@@ -156,10 +160,10 @@
.setText(R.id.workSiteView, "现场描述:${item.workSiteDesc}")
}
}
- workingRecyclerView.addItemDecoration(
+ binding.workingRecyclerView.addItemDecoration(
ItemDecoration(95f.dp2px(requireContext()).toFloat(), 0f)
)
- workingRecyclerView.adapter = workingListAdapter
+ binding.workingRecyclerView.adapter = workingListAdapter
workingListAdapter.setOnItemClickedListener(object :
NormalRecyclerAdapter.OnItemClickedListener {
override fun onItemClicked(
diff --git a/app/src/main/java/com/casic/br/operationsite/view/AlarmDetailActivity.kt b/app/src/main/java/com/casic/br/operationsite/view/AlarmDetailActivity.kt
index d412a6f..f45c28e 100644
--- a/app/src/main/java/com/casic/br/operationsite/view/AlarmDetailActivity.kt
+++ b/app/src/main/java/com/casic/br/operationsite/view/AlarmDetailActivity.kt
@@ -13,6 +13,7 @@
import com.bumptech.glide.Glide
import com.bumptech.glide.request.RequestOptions
import com.casic.br.operationsite.R
+import com.casic.br.operationsite.databinding.ActivityAlarmDetailBinding
import com.casic.br.operationsite.extensions.combineImagePath
import com.casic.br.operationsite.extensions.initLayoutImmersionBar
import com.casic.br.operationsite.utils.LoadingDialogHub
@@ -21,30 +22,30 @@
import com.pengxh.kt.lite.base.KotlinBaseActivity
import com.pengxh.kt.lite.utils.Constant
import com.pengxh.kt.lite.vm.LoadState
-import kotlinx.android.synthetic.main.activity_alarm_detail.*
-import kotlinx.android.synthetic.main.include_base_title.*
-class AlarmDetailActivity : KotlinBaseActivity() {
+class AlarmDetailActivity : KotlinBaseActivity() {
private lateinit var aMap: AMap
private lateinit var alarmViewModel: AlarmViewModel
private lateinit var id: String
- override fun initLayoutView(): Int = R.layout.activity_alarm_detail
+ override fun initViewBinding(): ActivityAlarmDetailBinding {
+ return ActivityAlarmDetailBinding.inflate(layoutInflater)
+ }
override fun setupTopBarLayout() {
ImmersionBar.with(this).statusBarDarkFont(false)
.statusBarColor(R.color.mainThemeColor).init()
- initLayoutImmersionBar(rootView)
+ initLayoutImmersionBar(binding.rootView)
- leftBackView.setOnClickListener { finish() }
- titleView.text = "燃气作业现场动态感知"
+ binding.titleInclude.leftBackView.setOnClickListener { finish() }
+ binding.titleInclude.titleView.text = "燃气作业现场动态感知"
}
- override fun initData(savedInstanceState: Bundle?) {
+ override fun initOnCreate(savedInstanceState: Bundle?) {
this.id = intent.getStringExtra(Constant.INTENT_PARAM)!!
- aMap = mapView.map
+ aMap = binding.mapView.map
aMap.mapType = AMap.MAP_TYPE_NORMAL
val uiSettings = aMap.uiSettings
uiSettings.isCompassEnabled = true
@@ -96,9 +97,9 @@
Glide.with(this)
.load(detailData.illegalAvatar.combineImagePath())
.apply(RequestOptions().placeholder(R.mipmap.load_image_error))
- .into(avatarView)
- timeView.text = detailData.createTime
- descriptionView.text = detailData.alarmDescription
+ .into(binding.avatarView)
+ binding.timeView.text = detailData.createTime
+ binding.descriptionView.text = detailData.alarmDescription
}
}
}
@@ -114,26 +115,26 @@
/**地图相关*********/
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
- mapView.onCreate(savedInstanceState)
+ binding.mapView.onCreate(savedInstanceState)
}
override fun onResume() {
super.onResume()
- mapView.onResume()
+ binding.mapView.onResume()
}
override fun onPause() {
super.onPause()
- mapView.onPause()
+ binding.mapView.onPause()
}
override fun onDestroy() {
- mapView.onDestroy()
+ binding.mapView.onDestroy()
super.onDestroy()
}
override fun onSaveInstanceState(outState: Bundle) {
super.onSaveInstanceState(outState)
- mapView.onSaveInstanceState(outState)
+ binding.mapView.onSaveInstanceState(outState)
}
}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/br/operationsite/view/AlarmListActivity.kt b/app/src/main/java/com/casic/br/operationsite/view/AlarmListActivity.kt
index 2a25cd0..a601bde 100644
--- a/app/src/main/java/com/casic/br/operationsite/view/AlarmListActivity.kt
+++ b/app/src/main/java/com/casic/br/operationsite/view/AlarmListActivity.kt
@@ -6,6 +6,7 @@
import androidx.lifecycle.ViewModelProvider
import androidx.recyclerview.widget.DividerItemDecoration
import com.casic.br.operationsite.R
+import com.casic.br.operationsite.databinding.ActivityAlarmListBinding
import com.casic.br.operationsite.extensions.combineImagePath
import com.casic.br.operationsite.extensions.formatToDate
import com.casic.br.operationsite.extensions.initLayoutImmersionBar
@@ -23,11 +24,8 @@
import com.pengxh.kt.lite.extensions.show
import com.pengxh.kt.lite.utils.WeakReferenceHandler
import com.pengxh.kt.lite.vm.LoadState
-import kotlinx.android.synthetic.main.activity_alarm_list.*
-import kotlinx.android.synthetic.main.include_empty_view.*
-import kotlinx.android.synthetic.main.include_search_title.*
-class AlarmListActivity : KotlinBaseActivity() {
+class AlarmListActivity : KotlinBaseActivity() {
private lateinit var weakReferenceHandler: WeakReferenceHandler
private lateinit var alarmListAdapter: NormalRecyclerAdapter
@@ -38,22 +36,24 @@
private var isLoadMore = false
private var keywords = ""
- override fun initLayoutView(): Int = R.layout.activity_alarm_list
+ override fun initViewBinding(): ActivityAlarmListBinding {
+ return ActivityAlarmListBinding.inflate(layoutInflater)
+ }
override fun setupTopBarLayout() {
ImmersionBar.with(this).statusBarDarkFont(false)
.statusBarColor(R.color.mainThemeColor).init()
- initLayoutImmersionBar(rootView)
+ initLayoutImmersionBar(binding.rootView)
- searchTextView.setOnClickListener {
- keywords = searchInputView.text.toString()
+ binding.titleInclude.searchTextView.setOnClickListener {
+ keywords = binding.titleInclude.searchInputView.text.toString()
pageIndex = 1
obtainAlarmListByPage()
}
}
- override fun initData(savedInstanceState: Bundle?) {
+ override fun initOnCreate(savedInstanceState: Bundle?) {
weakReferenceHandler = WeakReferenceHandler(callback)
alarmViewModel = ViewModelProvider(this)[AlarmViewModel::class.java]
}
@@ -75,13 +75,13 @@
}
override fun initEvent() {
- alarmRefreshLayout.setOnRefreshListener {
+ binding.alarmRefreshLayout.setOnRefreshListener {
isRefresh = true
//刷新之后页码重置
pageIndex = 1
obtainAlarmListByPage()
}
- alarmRefreshLayout.setOnLoadMoreListener {
+ binding.alarmRefreshLayout.setOnLoadMoreListener {
isLoadMore = true
pageIndex++
obtainAlarmListByPage()
@@ -93,17 +93,19 @@
when {
isRefresh -> {
alarmListAdapter.setRefreshData(dataRows)
- alarmRefreshLayout.finishRefresh()
+ binding.alarmRefreshLayout.finishRefresh()
isRefresh = false
}
+
isLoadMore -> {
if (dataRows.size == 0) {
"到底了,别拉了".show(this)
}
alarmListAdapter.setLoadMoreData(dataRows)
- alarmRefreshLayout.finishLoadMore()
+ binding.alarmRefreshLayout.finishLoadMore()
isLoadMore = false
}
+
else -> {
dataBeans = dataRows
weakReferenceHandler.sendEmptyMessage(2022071201)
@@ -120,12 +122,12 @@
private val callback = Handler.Callback {
if (it.what == 2022071201) {
if (dataBeans.size == 0) {
- emptyView.showEmptyPage {
+ binding.emptyInclude.emptyView.showEmptyPage {
pageIndex = 1
obtainAlarmListByPage()
}
} else {
- emptyView.hide()
+ binding.emptyInclude.emptyView.hide()
alarmListAdapter =
object : NormalRecyclerAdapter(
R.layout.item_alarm_rv_l, dataBeans
@@ -168,10 +170,10 @@
}
}
}
- alarmRecyclerView.addItemDecoration(
+ binding.alarmRecyclerView.addItemDecoration(
DividerItemDecoration(this, DividerItemDecoration.VERTICAL)
)
- alarmRecyclerView.adapter = alarmListAdapter
+ binding.alarmRecyclerView.adapter = alarmListAdapter
alarmListAdapter.setOnItemClickedListener(object :
NormalRecyclerAdapter.OnItemClickedListener {
override fun onItemClicked(
diff --git a/app/src/main/java/com/casic/br/operationsite/view/ApplyEnterActivity.kt b/app/src/main/java/com/casic/br/operationsite/view/ApplyEnterActivity.kt
index f538396..9e665a5 100644
--- a/app/src/main/java/com/casic/br/operationsite/view/ApplyEnterActivity.kt
+++ b/app/src/main/java/com/casic/br/operationsite/view/ApplyEnterActivity.kt
@@ -12,6 +12,7 @@
import androidx.lifecycle.ViewModelProvider
import com.casic.br.operationsite.R
import com.casic.br.operationsite.callback.OnImageCompressListener
+import com.casic.br.operationsite.databinding.ActivityApplyEnterBinding
import com.casic.br.operationsite.extensions.combineImagePath
import com.casic.br.operationsite.extensions.compressImage
import com.casic.br.operationsite.extensions.initLayoutImmersionBar
@@ -30,11 +31,9 @@
import com.pengxh.kt.lite.utils.Constant
import com.pengxh.kt.lite.vm.LoadState
import com.pengxh.kt.lite.widget.dialog.BottomActionSheet
-import kotlinx.android.synthetic.main.activity_apply_enter.*
-import kotlinx.android.synthetic.main.include_base_title.*
import java.io.File
-class ApplyEnterActivity : KotlinBaseActivity() {
+class ApplyEnterActivity : KotlinBaseActivity() {
private val kTag = "ApplyEnterActivity"
private lateinit var imageAdapter: EditableImageAdapter
@@ -45,25 +44,27 @@
private val imagePaths: ArrayList = ArrayList() //服务器返回的拍照数据集
private val realPaths: ArrayList = ArrayList() //真实图片路径
- override fun initLayoutView(): Int = R.layout.activity_apply_enter
+ override fun initViewBinding(): ActivityApplyEnterBinding {
+ return ActivityApplyEnterBinding.inflate(layoutInflater)
+ }
override fun setupTopBarLayout() {
ImmersionBar.with(this).statusBarDarkFont(false)
.statusBarColor(R.color.mainThemeColor).init()
- initLayoutImmersionBar(rootView)
+ initLayoutImmersionBar(binding.rootView)
- leftBackView.setOnClickListener { finish() }
- titleView.text = "人员信息"
+ binding.titleInclude. leftBackView.setOnClickListener { finish() }
+ binding.titleInclude. titleView.text = "人员信息"
}
- override fun initData(savedInstanceState: Bundle?) {
+ override fun initOnCreate(savedInstanceState: Bundle?) {
projectId = intent.getStringExtra(Constant.INTENT_PARAM)!!
uploadFileViewModel = ViewModelProvider(this)[UploadFileViewModel::class.java]
applyViewModel = ViewModelProvider(this)[ApplyViewModel::class.java]
imageAdapter = EditableImageAdapter(this, 1, 3f)
- addImageRecyclerView.adapter = imageAdapter
+ binding.addImageRecyclerView.adapter = imageAdapter
}
/**
@@ -104,20 +105,20 @@
}
override fun initEvent() {
- genderView.setOnClickListener {
+ binding.genderView.setOnClickListener {
BottomActionSheet.Builder()
.setContext(this)
.setActionItemTitle(LocaleConstant.GENDER)
.setItemTextColor(R.color.mainThemeColor.convertColor(this))
.setOnActionSheetListener(object : BottomActionSheet.OnActionSheetListener {
override fun onActionItemClick(position: Int) {
- genderView.text = LocaleConstant.GENDER[position]
+ binding.genderView.text = LocaleConstant.GENDER[position]
}
})
.build().show()
}
- enterReasonView.addTextChangedListener(object : TextWatcher {
+ binding.enterReasonView.addTextChangedListener(object : TextWatcher {
override fun beforeTextChanged(s: CharSequence?, start: Int, count: Int, after: Int) {
}
@@ -129,12 +130,12 @@
@SuppressLint("SetTextI18n")
override fun afterTextChanged(s: Editable?) {
val text = s.toString().trim()
- inputLengthView.text = "${text.length}/100"
+ binding.inputLengthView.text = "${text.length}/100"
if (text.length > 100) {
- inputLengthView.setTextColor(R.color.redTextColor.convertColor(context))
+ binding.inputLengthView.setTextColor(R.color.redTextColor.convertColor(context))
"入场原因不能超过100个字符".show(context)
} else {
- inputLengthView.setTextColor(R.color.subTextColor.convertColor(context))
+ binding.inputLengthView.setTextColor(R.color.subTextColor.convertColor(context))
}
}
})
@@ -187,28 +188,28 @@
}
}
- confirmApplyButton.setOnClickListener {
- if (workerNameView.text.isNullOrBlank()) {
+ binding.confirmApplyButton.setOnClickListener {
+ if (binding.workerNameView.text.isNullOrBlank()) {
"请输入入场人员姓名".show(this)
return@setOnClickListener
}
- if (ownerShipView.text.isNullOrBlank()) {
+ if (binding.ownerShipView.text.isNullOrBlank()) {
"请输入入场人员单位名称".show(this)
return@setOnClickListener
}
- if (phoneNumberView.text.isNullOrBlank()) {
+ if (binding.phoneNumberView.text.isNullOrBlank()) {
"请输入入场人员联系方式".show(this)
return@setOnClickListener
}
- if (!phoneNumberView.text.toString().isPhoneNumber()) {
+ if (!binding.phoneNumberView.text.toString().isPhoneNumber()) {
"请输入正确的联系方式".show(this)
return@setOnClickListener
}
- if (idCardView.text.isNullOrBlank()) {
+ if (binding.idCardView.text.isNullOrBlank()) {
"请输入入场人员身份证号".show(this)
return@setOnClickListener
}
@@ -218,19 +219,19 @@
projectId,
"2",
"",
- ownerShipView.text.toString(),
+ binding.ownerShipView.text.toString(),
"",
currentTime,
"",
- genderView.text.toString(),
- enterReasonView.text.toString(),
- phoneNumberView.text.toString(),
+ binding.genderView.text.toString(),
+ binding.enterReasonView.text.toString(),
+ binding.phoneNumberView.text.toString(),
currentTime,
imagePaths[0],
- idCardView.text.toString(),
+ binding.idCardView.text.toString(),
"",
"",
- workerNameView.text.toString(),
+ binding.workerNameView.text.toString(),
"0",
""
)
diff --git a/app/src/main/java/com/casic/br/operationsite/view/BigImageActivity.kt b/app/src/main/java/com/casic/br/operationsite/view/BigImageActivity.kt
index 7cf446c..a2d3dcf 100644
--- a/app/src/main/java/com/casic/br/operationsite/view/BigImageActivity.kt
+++ b/app/src/main/java/com/casic/br/operationsite/view/BigImageActivity.kt
@@ -11,22 +11,24 @@
import androidx.viewpager.widget.ViewPager
import com.bumptech.glide.Glide
import com.casic.br.operationsite.R
+import com.casic.br.operationsite.databinding.ActivityBigImageBinding
import com.luck.picture.lib.photoview.PhotoView
import com.pengxh.kt.lite.base.KotlinBaseActivity
import com.pengxh.kt.lite.utils.Constant
import com.pengxh.kt.lite.utils.ImmerseStatusBarUtil
-import kotlinx.android.synthetic.main.activity_big_image.*
-class BigImageActivity : KotlinBaseActivity() {
+class BigImageActivity : KotlinBaseActivity() {
- override fun initLayoutView(): Int = R.layout.activity_big_image
+ override fun initViewBinding(): ActivityBigImageBinding {
+ return ActivityBigImageBinding.inflate(layoutInflater)
+ }
override fun setupTopBarLayout() {
ImmerseStatusBarUtil.setColor(this, Color.BLACK)
- leftBackView.setOnClickListener { finish() }
+ binding.leftBackView.setOnClickListener { finish() }
}
- override fun initData(savedInstanceState: Bundle?) {
+ override fun initOnCreate(savedInstanceState: Bundle?) {
}
@@ -41,18 +43,19 @@
return
}
val imageSize = urls.size
- pageNumberView.text = String.format("(" + (index + 1) + "/" + imageSize + ")")
- imagePagerView.adapter = BigImageAdapter(this, urls)
- imagePagerView.currentItem = index
- imagePagerView.offscreenPageLimit = imageSize
- imagePagerView.addOnPageChangeListener(object : ViewPager.OnPageChangeListener {
+ binding.pageNumberView.text = String.format("(" + (index + 1) + "/" + imageSize + ")")
+ binding.imagePagerView.adapter = BigImageAdapter(this, urls)
+ binding.imagePagerView.currentItem = index
+ binding.imagePagerView.offscreenPageLimit = imageSize
+ binding.imagePagerView.addOnPageChangeListener(object : ViewPager.OnPageChangeListener {
override fun onPageScrolled(
position: Int, positionOffset: Float, positionOffsetPixels: Int
) {
}
override fun onPageSelected(position: Int) {
- pageNumberView.text = String.format("(" + (position + 1) + "/" + imageSize + ")")
+ binding.pageNumberView.text =
+ String.format("(" + (position + 1) + "/" + imageSize + ")")
}
override fun onPageScrollStateChanged(state: Int) {}
diff --git a/app/src/main/java/com/casic/br/operationsite/view/FaceDetectActivity.kt b/app/src/main/java/com/casic/br/operationsite/view/FaceDetectActivity.kt
index 9ba963c..54258e7 100644
--- a/app/src/main/java/com/casic/br/operationsite/view/FaceDetectActivity.kt
+++ b/app/src/main/java/com/casic/br/operationsite/view/FaceDetectActivity.kt
@@ -17,6 +17,7 @@
import androidx.camera.lifecycle.ProcessCameraProvider
import androidx.core.content.ContextCompat
import com.casic.br.operationsite.R
+import com.casic.br.operationsite.databinding.ActivityFaceDetectBinding
import com.casic.br.operationsite.extensions.initLayoutImmersionBar
import com.google.common.util.concurrent.ListenableFuture
import com.gyf.immersionbar.ImmersionBar
@@ -25,8 +26,6 @@
import com.pengxh.kt.lite.extensions.setScreenBrightness
import com.pengxh.kt.lite.extensions.toBitmap
import com.pengxh.kt.lite.utils.WeakReferenceHandler
-import kotlinx.android.synthetic.main.activity_face_detect.*
-import kotlinx.android.synthetic.main.include_base_title.*
import java.io.File
import java.io.IOException
import java.text.SimpleDateFormat
@@ -35,7 +34,7 @@
import kotlin.math.abs
-class FaceDetectActivity : KotlinBaseActivity() {
+class FaceDetectActivity : KotlinBaseActivity() {
private val kTag = "FaceDetectActivity"
private lateinit var cameraExecutor: ExecutorService
@@ -45,14 +44,10 @@
private lateinit var weakReferenceHandler: WeakReferenceHandler
private val RATIO_4_3_VALUE = 4.0 / 3.0
private val RATIO_16_9_VALUE = 16.0 / 9.0
- private val executor: ThreadPoolExecutor = ThreadPoolExecutor(
- 16,
- 16,
- 0L,
- TimeUnit.MILLISECONDS,
- LinkedBlockingQueue(1024),
- FaceDetectorThread(),
- ThreadPoolExecutor.AbortPolicy()
+ private val executor = ThreadPoolExecutor(
+ 16, 16, 0L,
+ TimeUnit.MILLISECONDS, LinkedBlockingQueue(1024),
+ FaceDetectorThread(), ThreadPoolExecutor.AbortPolicy()
)
inner class FaceDetectorThread : ThreadFactory {
@@ -61,18 +56,20 @@
}
}
- override fun initLayoutView(): Int = R.layout.activity_face_detect
+ override fun initViewBinding(): ActivityFaceDetectBinding {
+ return ActivityFaceDetectBinding.inflate(layoutInflater)
+ }
override fun setupTopBarLayout() {
ImmersionBar.with(this).statusBarDarkFont(false).statusBarColor(R.color.mainThemeColor)
.init()
- initLayoutImmersionBar(rootView)
+ initLayoutImmersionBar(binding.rootView)
- leftBackView.setOnClickListener { finish() }
- titleView.text = "入场申请人脸采集"
+ binding.titleInclude.leftBackView.setOnClickListener { finish() }
+ binding.titleInclude.titleView.text = "入场申请人脸采集"
}
- override fun initData(savedInstanceState: Bundle?) {
+ override fun initOnCreate(savedInstanceState: Bundle?) {
//调节屏幕亮度最大
window.setScreenBrightness(WindowManager.LayoutParams.BRIGHTNESS_OVERRIDE_FULL)
@@ -137,7 +134,7 @@
imageAnalysis,
cameraPreViewBuilder
)
- cameraPreViewBuilder.setSurfaceProvider(cameraPreView.surfaceProvider)
+ cameraPreViewBuilder.setSurfaceProvider(binding.cameraPreView.surfaceProvider)
observeCameraState(camera.cameraInfo)
} catch (e: Exception) {
e.printStackTrace()
@@ -196,7 +193,7 @@
* */
private val callback = Handler.Callback {
if (it.what == 2022071401) {
- faceDetectTipsView.text = "人脸特征采集中,请勿晃动手机"
+ binding.faceDetectTipsView.text = "人脸特征采集中,请勿晃动手机"
val fileOptions = ImageCapture.OutputFileOptions.Builder(createImageFile()).build()
imageCapture.takePicture(fileOptions, cameraExecutor,
object : ImageCapture.OnImageSavedCallback {
diff --git a/app/src/main/java/com/casic/br/operationsite/view/HikVisionActivity.kt b/app/src/main/java/com/casic/br/operationsite/view/HikVisionActivity.kt
index 2af6cf4..c1a8400 100644
--- a/app/src/main/java/com/casic/br/operationsite/view/HikVisionActivity.kt
+++ b/app/src/main/java/com/casic/br/operationsite/view/HikVisionActivity.kt
@@ -14,6 +14,7 @@
import android.view.SurfaceHolder
import androidx.lifecycle.ViewModelProvider
import com.casic.br.operationsite.R
+import com.casic.br.operationsite.databinding.ActivityHikvisionBinding
import com.casic.br.operationsite.extensions.getChannel
import com.casic.br.operationsite.extensions.initLayoutImmersionBar
import com.casic.br.operationsite.extensions.reformatFloatArray
@@ -33,18 +34,8 @@
import com.pengxh.kt.lite.extensions.getSystemService
import com.pengxh.kt.lite.extensions.show
import com.pengxh.kt.lite.widget.dialog.BottomActionSheet
-import kotlinx.android.synthetic.main.activity_hikvision.configButton
-import kotlinx.android.synthetic.main.activity_hikvision.configSelectView
-import kotlinx.android.synthetic.main.activity_hikvision.netSelectView
-import kotlinx.android.synthetic.main.activity_hikvision.regionView
-import kotlinx.android.synthetic.main.activity_hikvision.rootView
-import kotlinx.android.synthetic.main.activity_hikvision.steeringWheelView
-import kotlinx.android.synthetic.main.activity_hikvision.videoSurfaceView
-import kotlinx.android.synthetic.main.include_option_title.leftBackView
-import kotlinx.android.synthetic.main.include_option_title.rightOptionView
-import kotlinx.android.synthetic.main.include_option_title.titleView
-class HikVisionActivity : KotlinBaseActivity(), SurfaceHolder.Callback {
+class HikVisionActivity : KotlinBaseActivity(), SurfaceHolder.Callback {
private val kTag = "HikVisionActivity"
private val context = this@HikVisionActivity
@@ -66,27 +57,29 @@
//手指是否已经从方向控制盘抬起
private var isActionUp = true
- override fun initLayoutView(): Int = R.layout.activity_hikvision
+ override fun initViewBinding(): ActivityHikvisionBinding {
+ return ActivityHikvisionBinding.inflate(layoutInflater)
+ }
override fun setupTopBarLayout() {
ImmersionBar.with(this).statusBarDarkFont(false)
.statusBarColor(R.color.mainThemeColor).init()
- initLayoutImmersionBar(rootView)
+ initLayoutImmersionBar(binding.rootView)
- titleView.text = "摄像头参数"
- rightOptionView.text = "重画"
- rightOptionView.setOnClickListener {
- regionView.clearRoutePath()
+ binding.titleInclude.titleView.text = "摄像头参数"
+ binding.titleInclude.rightOptionView.text = "重画"
+ binding.titleInclude.rightOptionView.setOnClickListener {
+ binding.regionView.clearRoutePath()
}
}
- override fun initData(savedInstanceState: Bundle?) {
+ override fun initOnCreate(savedInstanceState: Bundle?) {
RuntimeCache.deviceModels.forEach {
if (it.deviceType == DeviceType.CAMERA) {
cameraItems.add("${it.host}:${it.port}")
}
}
- configSelectView.text = cameraItems[0]
+ binding.configSelectView.text = cameraItems[0]
//获取wifi列表
wifiSsids.clear()
@@ -111,7 +104,7 @@
}
override fun initEvent() {
- leftBackView.setOnClickListener { finish() }
+ binding.titleInclude.leftBackView.setOnClickListener { finish() }
val bottomActionSheet = BottomActionSheet.Builder()
.setContext(this)
@@ -119,19 +112,19 @@
.setItemTextColor(R.color.mainThemeColor.convertColor(this))
.setOnActionSheetListener(object : BottomActionSheet.OnActionSheetListener {
override fun onActionItemClick(position: Int) {
- configSelectView.text = cameraItems[position]
+ binding.configSelectView.text = cameraItems[position]
}
}).build()
- configSelectView.setOnClickListener { bottomActionSheet.show() }
+ binding.configSelectView.setOnClickListener { bottomActionSheet.show() }
- netSelectView.setOnClickListener {
+ binding.netSelectView.setOnClickListener {
BottomActionSheet.Builder()
.setContext(this)
.setActionItemTitle(wifiSsids)
.setItemTextColor(R.color.mainThemeColor.convertColor(this))
.setOnActionSheetListener(object : BottomActionSheet.OnActionSheetListener {
override fun onActionItemClick(position: Int) {
- netSelectView.text = wifiSsids[position]
+ binding.netSelectView.text = wifiSsids[position]
//连接wifi
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {
@@ -155,12 +148,13 @@
}).build().show()
}
- steeringWheelView.setOnWheelTouchListener(object : SteeringWheelView.OnWheelTouchListener {
+ binding.steeringWheelView.setOnWheelTouchListener(object :
+ SteeringWheelView.OnWheelTouchListener {
override fun onCenterClicked() {
if (isPreviewSuccess) {
closeHikVisionCamera()
} else {
- val split = configSelectView.text.split(":")
+ val split = binding.configSelectView.text.split(":")
openHikVisionCamera(split[0], split[1])
}
}
@@ -199,14 +193,17 @@
hkSDK.NET_DVR_PTZControl(previewHandle, PTZCommand.PAN_LEFT, 1)
isActionUp = true
}
+
SteeringWheelView.Direction.TOP -> {
hkSDK.NET_DVR_PTZControl(previewHandle, PTZCommand.TILT_UP, 1)
isActionUp = true
}
+
SteeringWheelView.Direction.RIGHT -> {
hkSDK.NET_DVR_PTZControl(previewHandle, PTZCommand.PAN_RIGHT, 1)
isActionUp = true
}
+
SteeringWheelView.Direction.BOTTOM -> {
hkSDK.NET_DVR_PTZControl(previewHandle, PTZCommand.TILT_DOWN, 1)
isActionUp = true
@@ -215,8 +212,8 @@
}
})
- configButton.setOnClickListener {
- val region = regionView.getConfirmedPoints()
+ binding.configButton.setOnClickListener {
+ val region = binding.regionView.getConfirmedPoints()
val data = region.reformatFloatArray()
//发送数据的时候需要断开视频
@@ -301,7 +298,7 @@
strutPlayInfo.lChannel = selectChannel
strutPlayInfo.dwStreamType = 1
strutPlayInfo.bBlocked = 1
- strutPlayInfo.hHwnd = videoSurfaceView.holder
+ strutPlayInfo.hHwnd = binding.videoSurfaceView.holder
previewHandle = SDKGuider.g_sdkGuider.m_comPreviewGuider.RealPlay_V40_jni(
returnUserID, strutPlayInfo, null
)
@@ -322,7 +319,7 @@
}
override fun surfaceCreated(holder: SurfaceHolder) {
- videoSurfaceView.holder.setFormat(PixelFormat.TRANSLUCENT)
+ binding.videoSurfaceView.holder.setFormat(PixelFormat.TRANSLUCENT)
if (-1 == previewHandle) {
return
}
diff --git a/app/build.gradle b/app/build.gradle
index d3ec387..9b32fed 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -2,12 +2,11 @@
apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
-apply plugin: 'kotlin-android-extensions'
android {
signingConfigs {
release {
- storeFile file('/Users/a203/Desktop/AndroidProjects/OperationSite/app/OperationSite.jks')
+ storeFile file('OperationSite.jks')
storePassword '123456789'
keyAlias 'key0'
keyPassword '123456789'
@@ -54,6 +53,7 @@
coroutines 'enable'
}
}
+
viewBinding {
enabled true
}
@@ -73,7 +73,7 @@
dependencies {
implementation fileTree(include: ['*.jar'], dir: 'libs')
//基础依赖库
- implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.0.4.9'
+ implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.0.5'
implementation 'androidx.appcompat:appcompat:1.6.1'
implementation 'androidx.core:core-ktx:1.9.0'
implementation 'com.google.android.material:material:1.6.1'
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index f1a68ec..cde8f45 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -80,7 +80,7 @@
+ android:value="d26ed926cccc5042898237679d65ae26" />
() {
private lateinit var weakReferenceHandler: WeakReferenceHandler
private lateinit var workingListAdapter: NormalRecyclerAdapter
@@ -44,13 +44,17 @@
private var isLoadMore = false
private var keywords = ""
- override fun initLayoutView(): Int = R.layout.fragment_completed
+ override fun initViewBinding(
+ inflater: LayoutInflater, container: ViewGroup?
+ ): FragmentCompletedBinding {
+ return FragmentCompletedBinding.inflate(inflater, container, false)
+ }
override fun setupTopBarLayout() {
}
- override fun initData(savedInstanceState: Bundle?) {
+ override fun initOnCreate(savedInstanceState: Bundle?) {
weakReferenceHandler = WeakReferenceHandler(callback)
workSiteViewModel = ViewModelProvider(this)[WorkSiteViewModel::class.java]
workSiteViewModel.worksiteModel.observe(this) {
@@ -59,7 +63,7 @@
when {
isRefresh -> {
workingListAdapter.setRefreshData(dataRows)
- completedRefreshLayout.finishRefresh()
+ binding.completedRefreshLayout.finishRefresh()
isRefresh = false
}
@@ -68,7 +72,7 @@
"到底了,别拉了".show(requireContext())
}
workingListAdapter.setLoadMoreData(dataRows)
- completedRefreshLayout.finishLoadMore()
+ binding.completedRefreshLayout.finishLoadMore()
isLoadMore = false
}
@@ -104,13 +108,13 @@
}
override fun initEvent() {
- completedRefreshLayout.setOnRefreshListener {
+ binding.completedRefreshLayout.setOnRefreshListener {
isRefresh = true
//刷新之后页码重置
pageIndex = 1
obtainProjectListByPage()
}
- completedRefreshLayout.setOnLoadMoreListener {
+ binding.completedRefreshLayout.setOnLoadMoreListener {
isLoadMore = true
pageIndex++
obtainProjectListByPage()
@@ -124,12 +128,12 @@
private val callback = Handler.Callback {
if (it.what == 2022071502) {
if (dataBeans.size == 0) {
- emptyView.showEmptyPage {
+ binding.emptyInclude.emptyView.showEmptyPage {
pageIndex = 1
obtainProjectListByPage()
}
} else {
- emptyView.hide()
+ binding.emptyInclude.emptyView.hide()
workingListAdapter = object :
NormalRecyclerAdapter(
R.layout.item_working_rv, dataBeans
@@ -155,10 +159,10 @@
.setText(R.id.workSiteView, "现场描述:${item.workSiteDesc}")
}
}
- completedRecyclerView.addItemDecoration(
+ binding.completedRecyclerView.addItemDecoration(
ItemDecoration(95f.dp2px(requireContext()).toFloat(), 0f)
)
- completedRecyclerView.adapter = workingListAdapter
+ binding.completedRecyclerView.adapter = workingListAdapter
workingListAdapter.setOnItemClickedListener(object :
NormalRecyclerAdapter.OnItemClickedListener {
override fun onItemClicked(
diff --git a/app/src/main/java/com/casic/br/operationsite/fragment/NotStartFragment.kt b/app/src/main/java/com/casic/br/operationsite/fragment/NotStartFragment.kt
index e927d86..a1776fb 100644
--- a/app/src/main/java/com/casic/br/operationsite/fragment/NotStartFragment.kt
+++ b/app/src/main/java/com/casic/br/operationsite/fragment/NotStartFragment.kt
@@ -5,8 +5,11 @@
import android.content.Intent
import android.os.Bundle
import android.os.Handler
+import android.view.LayoutInflater
+import android.view.ViewGroup
import androidx.lifecycle.ViewModelProvider
import com.casic.br.operationsite.R
+import com.casic.br.operationsite.databinding.FragmentNotStartBinding
import com.casic.br.operationsite.extensions.combineImagePath
import com.casic.br.operationsite.extensions.showEmptyPage
import com.casic.br.operationsite.model.BroadcastDataModel
@@ -26,11 +29,8 @@
import com.pengxh.kt.lite.utils.BroadcastManager
import com.pengxh.kt.lite.utils.Constant
import com.pengxh.kt.lite.utils.WeakReferenceHandler
-import kotlinx.android.synthetic.main.fragment_not_start.notStartRecyclerView
-import kotlinx.android.synthetic.main.fragment_not_start.notStartRefreshLayout
-import kotlinx.android.synthetic.main.include_empty_view.emptyView
-class NotStartFragment : KotlinBaseFragment() {
+class NotStartFragment : KotlinBaseFragment() {
private lateinit var weakReferenceHandler: WeakReferenceHandler
private lateinit var workingListAdapter: NormalRecyclerAdapter
@@ -44,13 +44,17 @@
private var isLoadMore = false
private var keywords = ""
- override fun initLayoutView(): Int = R.layout.fragment_not_start
+ override fun initViewBinding(
+ inflater: LayoutInflater, container: ViewGroup?
+ ): FragmentNotStartBinding {
+ return FragmentNotStartBinding.inflate(inflater, container, false)
+ }
override fun setupTopBarLayout() {
}
- override fun initData(savedInstanceState: Bundle?) {
+ override fun initOnCreate(savedInstanceState: Bundle?) {
weakReferenceHandler = WeakReferenceHandler(callback)
workSiteViewModel = ViewModelProvider(this)[WorkSiteViewModel::class.java]
workSiteViewModel.worksiteModel.observe(this) {
@@ -59,7 +63,7 @@
when {
isRefresh -> {
workingListAdapter.setRefreshData(dataRows)
- notStartRefreshLayout.finishRefresh()
+ binding.notStartRefreshLayout.finishRefresh()
isRefresh = false
}
@@ -68,7 +72,7 @@
"到底了,别拉了".show(requireContext())
}
workingListAdapter.setLoadMoreData(dataRows)
- notStartRefreshLayout.finishLoadMore()
+ binding.notStartRefreshLayout.finishLoadMore()
isLoadMore = false
}
@@ -104,13 +108,13 @@
}
override fun initEvent() {
- notStartRefreshLayout.setOnRefreshListener {
+ binding.notStartRefreshLayout.setOnRefreshListener {
isRefresh = true
//刷新之后页码重置
pageIndex = 1
obtainProjectListByPage()
}
- notStartRefreshLayout.setOnLoadMoreListener {
+ binding.notStartRefreshLayout.setOnLoadMoreListener {
isLoadMore = true
pageIndex++
obtainProjectListByPage()
@@ -124,12 +128,12 @@
private val callback = Handler.Callback {
if (it.what == 2022071501) {
if (dataBeans.size == 0) {
- emptyView.showEmptyPage {
+ binding.emptyInclude.emptyView.showEmptyPage {
pageIndex = 1
obtainProjectListByPage()
}
} else {
- emptyView.hide()
+ binding.emptyInclude.emptyView.hide()
workingListAdapter = object :
NormalRecyclerAdapter(
R.layout.item_working_rv, dataBeans
@@ -156,10 +160,10 @@
.setText(R.id.workSiteView, "现场描述:${item.workSiteDesc}")
}
}
- notStartRecyclerView.addItemDecoration(
+ binding.notStartRecyclerView.addItemDecoration(
ItemDecoration(95f.dp2px(requireContext()).toFloat(), 0f)
)
- notStartRecyclerView.adapter = workingListAdapter
+ binding.notStartRecyclerView.adapter = workingListAdapter
workingListAdapter.setOnItemClickedListener(object :
NormalRecyclerAdapter.OnItemClickedListener {
override fun onItemClicked(
diff --git a/app/src/main/java/com/casic/br/operationsite/fragment/WorkingFragment.kt b/app/src/main/java/com/casic/br/operationsite/fragment/WorkingFragment.kt
index dcb240c..09a5e1b 100644
--- a/app/src/main/java/com/casic/br/operationsite/fragment/WorkingFragment.kt
+++ b/app/src/main/java/com/casic/br/operationsite/fragment/WorkingFragment.kt
@@ -5,8 +5,11 @@
import android.content.Intent
import android.os.Bundle
import android.os.Handler
+import android.view.LayoutInflater
+import android.view.ViewGroup
import androidx.lifecycle.ViewModelProvider
import com.casic.br.operationsite.R
+import com.casic.br.operationsite.databinding.FragmentWorkingBinding
import com.casic.br.operationsite.extensions.combineImagePath
import com.casic.br.operationsite.extensions.showEmptyPage
import com.casic.br.operationsite.model.BroadcastDataModel
@@ -26,12 +29,9 @@
import com.pengxh.kt.lite.utils.BroadcastManager
import com.pengxh.kt.lite.utils.Constant
import com.pengxh.kt.lite.utils.WeakReferenceHandler
-import kotlinx.android.synthetic.main.fragment_working.workingRecyclerView
-import kotlinx.android.synthetic.main.fragment_working.workingRefreshLayout
-import kotlinx.android.synthetic.main.include_empty_view.emptyView
-class WorkingFragment : KotlinBaseFragment() {
+class WorkingFragment : KotlinBaseFragment() {
private lateinit var weakReferenceHandler: WeakReferenceHandler
private lateinit var workingListAdapter: NormalRecyclerAdapter
@@ -45,13 +45,17 @@
private var isLoadMore = false
private var keywords = ""
- override fun initLayoutView(): Int = R.layout.fragment_working
+ override fun initViewBinding(
+ inflater: LayoutInflater, container: ViewGroup?
+ ): FragmentWorkingBinding {
+ return FragmentWorkingBinding.inflate(inflater, container, false)
+ }
override fun setupTopBarLayout() {
}
- override fun initData(savedInstanceState: Bundle?) {
+ override fun initOnCreate(savedInstanceState: Bundle?) {
weakReferenceHandler = WeakReferenceHandler(callback)
workSiteViewModel = ViewModelProvider(this)[WorkSiteViewModel::class.java]
workSiteViewModel.worksiteModel.observe(this) {
@@ -60,7 +64,7 @@
when {
isRefresh -> {
workingListAdapter.setRefreshData(dataRows)
- workingRefreshLayout.finishRefresh()
+ binding.workingRefreshLayout.finishRefresh()
isRefresh = false
}
@@ -69,7 +73,7 @@
"到底了,别拉了".show(requireContext())
}
workingListAdapter.setLoadMoreData(dataRows)
- workingRefreshLayout.finishLoadMore()
+ binding.workingRefreshLayout.finishLoadMore()
isLoadMore = false
}
@@ -105,13 +109,13 @@
}
override fun initEvent() {
- workingRefreshLayout.setOnRefreshListener {
+ binding.workingRefreshLayout.setOnRefreshListener {
isRefresh = true
//刷新之后页码重置
pageIndex = 1
obtainProjectListByPage()
}
- workingRefreshLayout.setOnLoadMoreListener {
+ binding.workingRefreshLayout.setOnLoadMoreListener {
isLoadMore = true
pageIndex++
obtainProjectListByPage()
@@ -125,12 +129,12 @@
private val callback = Handler.Callback {
if (it.what == 2022071101) {
if (dataBeans.size == 0) {
- emptyView.showEmptyPage {
+ binding.emptyInclude.emptyView.showEmptyPage {
pageIndex = 1
obtainProjectListByPage()
}
} else {
- emptyView.hide()
+ binding.emptyInclude.emptyView.hide()
workingListAdapter = object :
NormalRecyclerAdapter(
R.layout.item_working_rv, dataBeans
@@ -156,10 +160,10 @@
.setText(R.id.workSiteView, "现场描述:${item.workSiteDesc}")
}
}
- workingRecyclerView.addItemDecoration(
+ binding.workingRecyclerView.addItemDecoration(
ItemDecoration(95f.dp2px(requireContext()).toFloat(), 0f)
)
- workingRecyclerView.adapter = workingListAdapter
+ binding.workingRecyclerView.adapter = workingListAdapter
workingListAdapter.setOnItemClickedListener(object :
NormalRecyclerAdapter.OnItemClickedListener {
override fun onItemClicked(
diff --git a/app/src/main/java/com/casic/br/operationsite/view/AlarmDetailActivity.kt b/app/src/main/java/com/casic/br/operationsite/view/AlarmDetailActivity.kt
index d412a6f..f45c28e 100644
--- a/app/src/main/java/com/casic/br/operationsite/view/AlarmDetailActivity.kt
+++ b/app/src/main/java/com/casic/br/operationsite/view/AlarmDetailActivity.kt
@@ -13,6 +13,7 @@
import com.bumptech.glide.Glide
import com.bumptech.glide.request.RequestOptions
import com.casic.br.operationsite.R
+import com.casic.br.operationsite.databinding.ActivityAlarmDetailBinding
import com.casic.br.operationsite.extensions.combineImagePath
import com.casic.br.operationsite.extensions.initLayoutImmersionBar
import com.casic.br.operationsite.utils.LoadingDialogHub
@@ -21,30 +22,30 @@
import com.pengxh.kt.lite.base.KotlinBaseActivity
import com.pengxh.kt.lite.utils.Constant
import com.pengxh.kt.lite.vm.LoadState
-import kotlinx.android.synthetic.main.activity_alarm_detail.*
-import kotlinx.android.synthetic.main.include_base_title.*
-class AlarmDetailActivity : KotlinBaseActivity() {
+class AlarmDetailActivity : KotlinBaseActivity() {
private lateinit var aMap: AMap
private lateinit var alarmViewModel: AlarmViewModel
private lateinit var id: String
- override fun initLayoutView(): Int = R.layout.activity_alarm_detail
+ override fun initViewBinding(): ActivityAlarmDetailBinding {
+ return ActivityAlarmDetailBinding.inflate(layoutInflater)
+ }
override fun setupTopBarLayout() {
ImmersionBar.with(this).statusBarDarkFont(false)
.statusBarColor(R.color.mainThemeColor).init()
- initLayoutImmersionBar(rootView)
+ initLayoutImmersionBar(binding.rootView)
- leftBackView.setOnClickListener { finish() }
- titleView.text = "燃气作业现场动态感知"
+ binding.titleInclude.leftBackView.setOnClickListener { finish() }
+ binding.titleInclude.titleView.text = "燃气作业现场动态感知"
}
- override fun initData(savedInstanceState: Bundle?) {
+ override fun initOnCreate(savedInstanceState: Bundle?) {
this.id = intent.getStringExtra(Constant.INTENT_PARAM)!!
- aMap = mapView.map
+ aMap = binding.mapView.map
aMap.mapType = AMap.MAP_TYPE_NORMAL
val uiSettings = aMap.uiSettings
uiSettings.isCompassEnabled = true
@@ -96,9 +97,9 @@
Glide.with(this)
.load(detailData.illegalAvatar.combineImagePath())
.apply(RequestOptions().placeholder(R.mipmap.load_image_error))
- .into(avatarView)
- timeView.text = detailData.createTime
- descriptionView.text = detailData.alarmDescription
+ .into(binding.avatarView)
+ binding.timeView.text = detailData.createTime
+ binding.descriptionView.text = detailData.alarmDescription
}
}
}
@@ -114,26 +115,26 @@
/**地图相关*********/
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
- mapView.onCreate(savedInstanceState)
+ binding.mapView.onCreate(savedInstanceState)
}
override fun onResume() {
super.onResume()
- mapView.onResume()
+ binding.mapView.onResume()
}
override fun onPause() {
super.onPause()
- mapView.onPause()
+ binding.mapView.onPause()
}
override fun onDestroy() {
- mapView.onDestroy()
+ binding.mapView.onDestroy()
super.onDestroy()
}
override fun onSaveInstanceState(outState: Bundle) {
super.onSaveInstanceState(outState)
- mapView.onSaveInstanceState(outState)
+ binding.mapView.onSaveInstanceState(outState)
}
}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/br/operationsite/view/AlarmListActivity.kt b/app/src/main/java/com/casic/br/operationsite/view/AlarmListActivity.kt
index 2a25cd0..a601bde 100644
--- a/app/src/main/java/com/casic/br/operationsite/view/AlarmListActivity.kt
+++ b/app/src/main/java/com/casic/br/operationsite/view/AlarmListActivity.kt
@@ -6,6 +6,7 @@
import androidx.lifecycle.ViewModelProvider
import androidx.recyclerview.widget.DividerItemDecoration
import com.casic.br.operationsite.R
+import com.casic.br.operationsite.databinding.ActivityAlarmListBinding
import com.casic.br.operationsite.extensions.combineImagePath
import com.casic.br.operationsite.extensions.formatToDate
import com.casic.br.operationsite.extensions.initLayoutImmersionBar
@@ -23,11 +24,8 @@
import com.pengxh.kt.lite.extensions.show
import com.pengxh.kt.lite.utils.WeakReferenceHandler
import com.pengxh.kt.lite.vm.LoadState
-import kotlinx.android.synthetic.main.activity_alarm_list.*
-import kotlinx.android.synthetic.main.include_empty_view.*
-import kotlinx.android.synthetic.main.include_search_title.*
-class AlarmListActivity : KotlinBaseActivity() {
+class AlarmListActivity : KotlinBaseActivity() {
private lateinit var weakReferenceHandler: WeakReferenceHandler
private lateinit var alarmListAdapter: NormalRecyclerAdapter
@@ -38,22 +36,24 @@
private var isLoadMore = false
private var keywords = ""
- override fun initLayoutView(): Int = R.layout.activity_alarm_list
+ override fun initViewBinding(): ActivityAlarmListBinding {
+ return ActivityAlarmListBinding.inflate(layoutInflater)
+ }
override fun setupTopBarLayout() {
ImmersionBar.with(this).statusBarDarkFont(false)
.statusBarColor(R.color.mainThemeColor).init()
- initLayoutImmersionBar(rootView)
+ initLayoutImmersionBar(binding.rootView)
- searchTextView.setOnClickListener {
- keywords = searchInputView.text.toString()
+ binding.titleInclude.searchTextView.setOnClickListener {
+ keywords = binding.titleInclude.searchInputView.text.toString()
pageIndex = 1
obtainAlarmListByPage()
}
}
- override fun initData(savedInstanceState: Bundle?) {
+ override fun initOnCreate(savedInstanceState: Bundle?) {
weakReferenceHandler = WeakReferenceHandler(callback)
alarmViewModel = ViewModelProvider(this)[AlarmViewModel::class.java]
}
@@ -75,13 +75,13 @@
}
override fun initEvent() {
- alarmRefreshLayout.setOnRefreshListener {
+ binding.alarmRefreshLayout.setOnRefreshListener {
isRefresh = true
//刷新之后页码重置
pageIndex = 1
obtainAlarmListByPage()
}
- alarmRefreshLayout.setOnLoadMoreListener {
+ binding.alarmRefreshLayout.setOnLoadMoreListener {
isLoadMore = true
pageIndex++
obtainAlarmListByPage()
@@ -93,17 +93,19 @@
when {
isRefresh -> {
alarmListAdapter.setRefreshData(dataRows)
- alarmRefreshLayout.finishRefresh()
+ binding.alarmRefreshLayout.finishRefresh()
isRefresh = false
}
+
isLoadMore -> {
if (dataRows.size == 0) {
"到底了,别拉了".show(this)
}
alarmListAdapter.setLoadMoreData(dataRows)
- alarmRefreshLayout.finishLoadMore()
+ binding.alarmRefreshLayout.finishLoadMore()
isLoadMore = false
}
+
else -> {
dataBeans = dataRows
weakReferenceHandler.sendEmptyMessage(2022071201)
@@ -120,12 +122,12 @@
private val callback = Handler.Callback {
if (it.what == 2022071201) {
if (dataBeans.size == 0) {
- emptyView.showEmptyPage {
+ binding.emptyInclude.emptyView.showEmptyPage {
pageIndex = 1
obtainAlarmListByPage()
}
} else {
- emptyView.hide()
+ binding.emptyInclude.emptyView.hide()
alarmListAdapter =
object : NormalRecyclerAdapter(
R.layout.item_alarm_rv_l, dataBeans
@@ -168,10 +170,10 @@
}
}
}
- alarmRecyclerView.addItemDecoration(
+ binding.alarmRecyclerView.addItemDecoration(
DividerItemDecoration(this, DividerItemDecoration.VERTICAL)
)
- alarmRecyclerView.adapter = alarmListAdapter
+ binding.alarmRecyclerView.adapter = alarmListAdapter
alarmListAdapter.setOnItemClickedListener(object :
NormalRecyclerAdapter.OnItemClickedListener {
override fun onItemClicked(
diff --git a/app/src/main/java/com/casic/br/operationsite/view/ApplyEnterActivity.kt b/app/src/main/java/com/casic/br/operationsite/view/ApplyEnterActivity.kt
index f538396..9e665a5 100644
--- a/app/src/main/java/com/casic/br/operationsite/view/ApplyEnterActivity.kt
+++ b/app/src/main/java/com/casic/br/operationsite/view/ApplyEnterActivity.kt
@@ -12,6 +12,7 @@
import androidx.lifecycle.ViewModelProvider
import com.casic.br.operationsite.R
import com.casic.br.operationsite.callback.OnImageCompressListener
+import com.casic.br.operationsite.databinding.ActivityApplyEnterBinding
import com.casic.br.operationsite.extensions.combineImagePath
import com.casic.br.operationsite.extensions.compressImage
import com.casic.br.operationsite.extensions.initLayoutImmersionBar
@@ -30,11 +31,9 @@
import com.pengxh.kt.lite.utils.Constant
import com.pengxh.kt.lite.vm.LoadState
import com.pengxh.kt.lite.widget.dialog.BottomActionSheet
-import kotlinx.android.synthetic.main.activity_apply_enter.*
-import kotlinx.android.synthetic.main.include_base_title.*
import java.io.File
-class ApplyEnterActivity : KotlinBaseActivity() {
+class ApplyEnterActivity : KotlinBaseActivity() {
private val kTag = "ApplyEnterActivity"
private lateinit var imageAdapter: EditableImageAdapter
@@ -45,25 +44,27 @@
private val imagePaths: ArrayList = ArrayList() //服务器返回的拍照数据集
private val realPaths: ArrayList = ArrayList() //真实图片路径
- override fun initLayoutView(): Int = R.layout.activity_apply_enter
+ override fun initViewBinding(): ActivityApplyEnterBinding {
+ return ActivityApplyEnterBinding.inflate(layoutInflater)
+ }
override fun setupTopBarLayout() {
ImmersionBar.with(this).statusBarDarkFont(false)
.statusBarColor(R.color.mainThemeColor).init()
- initLayoutImmersionBar(rootView)
+ initLayoutImmersionBar(binding.rootView)
- leftBackView.setOnClickListener { finish() }
- titleView.text = "人员信息"
+ binding.titleInclude. leftBackView.setOnClickListener { finish() }
+ binding.titleInclude. titleView.text = "人员信息"
}
- override fun initData(savedInstanceState: Bundle?) {
+ override fun initOnCreate(savedInstanceState: Bundle?) {
projectId = intent.getStringExtra(Constant.INTENT_PARAM)!!
uploadFileViewModel = ViewModelProvider(this)[UploadFileViewModel::class.java]
applyViewModel = ViewModelProvider(this)[ApplyViewModel::class.java]
imageAdapter = EditableImageAdapter(this, 1, 3f)
- addImageRecyclerView.adapter = imageAdapter
+ binding.addImageRecyclerView.adapter = imageAdapter
}
/**
@@ -104,20 +105,20 @@
}
override fun initEvent() {
- genderView.setOnClickListener {
+ binding.genderView.setOnClickListener {
BottomActionSheet.Builder()
.setContext(this)
.setActionItemTitle(LocaleConstant.GENDER)
.setItemTextColor(R.color.mainThemeColor.convertColor(this))
.setOnActionSheetListener(object : BottomActionSheet.OnActionSheetListener {
override fun onActionItemClick(position: Int) {
- genderView.text = LocaleConstant.GENDER[position]
+ binding.genderView.text = LocaleConstant.GENDER[position]
}
})
.build().show()
}
- enterReasonView.addTextChangedListener(object : TextWatcher {
+ binding.enterReasonView.addTextChangedListener(object : TextWatcher {
override fun beforeTextChanged(s: CharSequence?, start: Int, count: Int, after: Int) {
}
@@ -129,12 +130,12 @@
@SuppressLint("SetTextI18n")
override fun afterTextChanged(s: Editable?) {
val text = s.toString().trim()
- inputLengthView.text = "${text.length}/100"
+ binding.inputLengthView.text = "${text.length}/100"
if (text.length > 100) {
- inputLengthView.setTextColor(R.color.redTextColor.convertColor(context))
+ binding.inputLengthView.setTextColor(R.color.redTextColor.convertColor(context))
"入场原因不能超过100个字符".show(context)
} else {
- inputLengthView.setTextColor(R.color.subTextColor.convertColor(context))
+ binding.inputLengthView.setTextColor(R.color.subTextColor.convertColor(context))
}
}
})
@@ -187,28 +188,28 @@
}
}
- confirmApplyButton.setOnClickListener {
- if (workerNameView.text.isNullOrBlank()) {
+ binding.confirmApplyButton.setOnClickListener {
+ if (binding.workerNameView.text.isNullOrBlank()) {
"请输入入场人员姓名".show(this)
return@setOnClickListener
}
- if (ownerShipView.text.isNullOrBlank()) {
+ if (binding.ownerShipView.text.isNullOrBlank()) {
"请输入入场人员单位名称".show(this)
return@setOnClickListener
}
- if (phoneNumberView.text.isNullOrBlank()) {
+ if (binding.phoneNumberView.text.isNullOrBlank()) {
"请输入入场人员联系方式".show(this)
return@setOnClickListener
}
- if (!phoneNumberView.text.toString().isPhoneNumber()) {
+ if (!binding.phoneNumberView.text.toString().isPhoneNumber()) {
"请输入正确的联系方式".show(this)
return@setOnClickListener
}
- if (idCardView.text.isNullOrBlank()) {
+ if (binding.idCardView.text.isNullOrBlank()) {
"请输入入场人员身份证号".show(this)
return@setOnClickListener
}
@@ -218,19 +219,19 @@
projectId,
"2",
"",
- ownerShipView.text.toString(),
+ binding.ownerShipView.text.toString(),
"",
currentTime,
"",
- genderView.text.toString(),
- enterReasonView.text.toString(),
- phoneNumberView.text.toString(),
+ binding.genderView.text.toString(),
+ binding.enterReasonView.text.toString(),
+ binding.phoneNumberView.text.toString(),
currentTime,
imagePaths[0],
- idCardView.text.toString(),
+ binding.idCardView.text.toString(),
"",
"",
- workerNameView.text.toString(),
+ binding.workerNameView.text.toString(),
"0",
""
)
diff --git a/app/src/main/java/com/casic/br/operationsite/view/BigImageActivity.kt b/app/src/main/java/com/casic/br/operationsite/view/BigImageActivity.kt
index 7cf446c..a2d3dcf 100644
--- a/app/src/main/java/com/casic/br/operationsite/view/BigImageActivity.kt
+++ b/app/src/main/java/com/casic/br/operationsite/view/BigImageActivity.kt
@@ -11,22 +11,24 @@
import androidx.viewpager.widget.ViewPager
import com.bumptech.glide.Glide
import com.casic.br.operationsite.R
+import com.casic.br.operationsite.databinding.ActivityBigImageBinding
import com.luck.picture.lib.photoview.PhotoView
import com.pengxh.kt.lite.base.KotlinBaseActivity
import com.pengxh.kt.lite.utils.Constant
import com.pengxh.kt.lite.utils.ImmerseStatusBarUtil
-import kotlinx.android.synthetic.main.activity_big_image.*
-class BigImageActivity : KotlinBaseActivity() {
+class BigImageActivity : KotlinBaseActivity() {
- override fun initLayoutView(): Int = R.layout.activity_big_image
+ override fun initViewBinding(): ActivityBigImageBinding {
+ return ActivityBigImageBinding.inflate(layoutInflater)
+ }
override fun setupTopBarLayout() {
ImmerseStatusBarUtil.setColor(this, Color.BLACK)
- leftBackView.setOnClickListener { finish() }
+ binding.leftBackView.setOnClickListener { finish() }
}
- override fun initData(savedInstanceState: Bundle?) {
+ override fun initOnCreate(savedInstanceState: Bundle?) {
}
@@ -41,18 +43,19 @@
return
}
val imageSize = urls.size
- pageNumberView.text = String.format("(" + (index + 1) + "/" + imageSize + ")")
- imagePagerView.adapter = BigImageAdapter(this, urls)
- imagePagerView.currentItem = index
- imagePagerView.offscreenPageLimit = imageSize
- imagePagerView.addOnPageChangeListener(object : ViewPager.OnPageChangeListener {
+ binding.pageNumberView.text = String.format("(" + (index + 1) + "/" + imageSize + ")")
+ binding.imagePagerView.adapter = BigImageAdapter(this, urls)
+ binding.imagePagerView.currentItem = index
+ binding.imagePagerView.offscreenPageLimit = imageSize
+ binding.imagePagerView.addOnPageChangeListener(object : ViewPager.OnPageChangeListener {
override fun onPageScrolled(
position: Int, positionOffset: Float, positionOffsetPixels: Int
) {
}
override fun onPageSelected(position: Int) {
- pageNumberView.text = String.format("(" + (position + 1) + "/" + imageSize + ")")
+ binding.pageNumberView.text =
+ String.format("(" + (position + 1) + "/" + imageSize + ")")
}
override fun onPageScrollStateChanged(state: Int) {}
diff --git a/app/src/main/java/com/casic/br/operationsite/view/FaceDetectActivity.kt b/app/src/main/java/com/casic/br/operationsite/view/FaceDetectActivity.kt
index 9ba963c..54258e7 100644
--- a/app/src/main/java/com/casic/br/operationsite/view/FaceDetectActivity.kt
+++ b/app/src/main/java/com/casic/br/operationsite/view/FaceDetectActivity.kt
@@ -17,6 +17,7 @@
import androidx.camera.lifecycle.ProcessCameraProvider
import androidx.core.content.ContextCompat
import com.casic.br.operationsite.R
+import com.casic.br.operationsite.databinding.ActivityFaceDetectBinding
import com.casic.br.operationsite.extensions.initLayoutImmersionBar
import com.google.common.util.concurrent.ListenableFuture
import com.gyf.immersionbar.ImmersionBar
@@ -25,8 +26,6 @@
import com.pengxh.kt.lite.extensions.setScreenBrightness
import com.pengxh.kt.lite.extensions.toBitmap
import com.pengxh.kt.lite.utils.WeakReferenceHandler
-import kotlinx.android.synthetic.main.activity_face_detect.*
-import kotlinx.android.synthetic.main.include_base_title.*
import java.io.File
import java.io.IOException
import java.text.SimpleDateFormat
@@ -35,7 +34,7 @@
import kotlin.math.abs
-class FaceDetectActivity : KotlinBaseActivity() {
+class FaceDetectActivity : KotlinBaseActivity() {
private val kTag = "FaceDetectActivity"
private lateinit var cameraExecutor: ExecutorService
@@ -45,14 +44,10 @@
private lateinit var weakReferenceHandler: WeakReferenceHandler
private val RATIO_4_3_VALUE = 4.0 / 3.0
private val RATIO_16_9_VALUE = 16.0 / 9.0
- private val executor: ThreadPoolExecutor = ThreadPoolExecutor(
- 16,
- 16,
- 0L,
- TimeUnit.MILLISECONDS,
- LinkedBlockingQueue(1024),
- FaceDetectorThread(),
- ThreadPoolExecutor.AbortPolicy()
+ private val executor = ThreadPoolExecutor(
+ 16, 16, 0L,
+ TimeUnit.MILLISECONDS, LinkedBlockingQueue(1024),
+ FaceDetectorThread(), ThreadPoolExecutor.AbortPolicy()
)
inner class FaceDetectorThread : ThreadFactory {
@@ -61,18 +56,20 @@
}
}
- override fun initLayoutView(): Int = R.layout.activity_face_detect
+ override fun initViewBinding(): ActivityFaceDetectBinding {
+ return ActivityFaceDetectBinding.inflate(layoutInflater)
+ }
override fun setupTopBarLayout() {
ImmersionBar.with(this).statusBarDarkFont(false).statusBarColor(R.color.mainThemeColor)
.init()
- initLayoutImmersionBar(rootView)
+ initLayoutImmersionBar(binding.rootView)
- leftBackView.setOnClickListener { finish() }
- titleView.text = "入场申请人脸采集"
+ binding.titleInclude.leftBackView.setOnClickListener { finish() }
+ binding.titleInclude.titleView.text = "入场申请人脸采集"
}
- override fun initData(savedInstanceState: Bundle?) {
+ override fun initOnCreate(savedInstanceState: Bundle?) {
//调节屏幕亮度最大
window.setScreenBrightness(WindowManager.LayoutParams.BRIGHTNESS_OVERRIDE_FULL)
@@ -137,7 +134,7 @@
imageAnalysis,
cameraPreViewBuilder
)
- cameraPreViewBuilder.setSurfaceProvider(cameraPreView.surfaceProvider)
+ cameraPreViewBuilder.setSurfaceProvider(binding.cameraPreView.surfaceProvider)
observeCameraState(camera.cameraInfo)
} catch (e: Exception) {
e.printStackTrace()
@@ -196,7 +193,7 @@
* */
private val callback = Handler.Callback {
if (it.what == 2022071401) {
- faceDetectTipsView.text = "人脸特征采集中,请勿晃动手机"
+ binding.faceDetectTipsView.text = "人脸特征采集中,请勿晃动手机"
val fileOptions = ImageCapture.OutputFileOptions.Builder(createImageFile()).build()
imageCapture.takePicture(fileOptions, cameraExecutor,
object : ImageCapture.OnImageSavedCallback {
diff --git a/app/src/main/java/com/casic/br/operationsite/view/HikVisionActivity.kt b/app/src/main/java/com/casic/br/operationsite/view/HikVisionActivity.kt
index 2af6cf4..c1a8400 100644
--- a/app/src/main/java/com/casic/br/operationsite/view/HikVisionActivity.kt
+++ b/app/src/main/java/com/casic/br/operationsite/view/HikVisionActivity.kt
@@ -14,6 +14,7 @@
import android.view.SurfaceHolder
import androidx.lifecycle.ViewModelProvider
import com.casic.br.operationsite.R
+import com.casic.br.operationsite.databinding.ActivityHikvisionBinding
import com.casic.br.operationsite.extensions.getChannel
import com.casic.br.operationsite.extensions.initLayoutImmersionBar
import com.casic.br.operationsite.extensions.reformatFloatArray
@@ -33,18 +34,8 @@
import com.pengxh.kt.lite.extensions.getSystemService
import com.pengxh.kt.lite.extensions.show
import com.pengxh.kt.lite.widget.dialog.BottomActionSheet
-import kotlinx.android.synthetic.main.activity_hikvision.configButton
-import kotlinx.android.synthetic.main.activity_hikvision.configSelectView
-import kotlinx.android.synthetic.main.activity_hikvision.netSelectView
-import kotlinx.android.synthetic.main.activity_hikvision.regionView
-import kotlinx.android.synthetic.main.activity_hikvision.rootView
-import kotlinx.android.synthetic.main.activity_hikvision.steeringWheelView
-import kotlinx.android.synthetic.main.activity_hikvision.videoSurfaceView
-import kotlinx.android.synthetic.main.include_option_title.leftBackView
-import kotlinx.android.synthetic.main.include_option_title.rightOptionView
-import kotlinx.android.synthetic.main.include_option_title.titleView
-class HikVisionActivity : KotlinBaseActivity(), SurfaceHolder.Callback {
+class HikVisionActivity : KotlinBaseActivity(), SurfaceHolder.Callback {
private val kTag = "HikVisionActivity"
private val context = this@HikVisionActivity
@@ -66,27 +57,29 @@
//手指是否已经从方向控制盘抬起
private var isActionUp = true
- override fun initLayoutView(): Int = R.layout.activity_hikvision
+ override fun initViewBinding(): ActivityHikvisionBinding {
+ return ActivityHikvisionBinding.inflate(layoutInflater)
+ }
override fun setupTopBarLayout() {
ImmersionBar.with(this).statusBarDarkFont(false)
.statusBarColor(R.color.mainThemeColor).init()
- initLayoutImmersionBar(rootView)
+ initLayoutImmersionBar(binding.rootView)
- titleView.text = "摄像头参数"
- rightOptionView.text = "重画"
- rightOptionView.setOnClickListener {
- regionView.clearRoutePath()
+ binding.titleInclude.titleView.text = "摄像头参数"
+ binding.titleInclude.rightOptionView.text = "重画"
+ binding.titleInclude.rightOptionView.setOnClickListener {
+ binding.regionView.clearRoutePath()
}
}
- override fun initData(savedInstanceState: Bundle?) {
+ override fun initOnCreate(savedInstanceState: Bundle?) {
RuntimeCache.deviceModels.forEach {
if (it.deviceType == DeviceType.CAMERA) {
cameraItems.add("${it.host}:${it.port}")
}
}
- configSelectView.text = cameraItems[0]
+ binding.configSelectView.text = cameraItems[0]
//获取wifi列表
wifiSsids.clear()
@@ -111,7 +104,7 @@
}
override fun initEvent() {
- leftBackView.setOnClickListener { finish() }
+ binding.titleInclude.leftBackView.setOnClickListener { finish() }
val bottomActionSheet = BottomActionSheet.Builder()
.setContext(this)
@@ -119,19 +112,19 @@
.setItemTextColor(R.color.mainThemeColor.convertColor(this))
.setOnActionSheetListener(object : BottomActionSheet.OnActionSheetListener {
override fun onActionItemClick(position: Int) {
- configSelectView.text = cameraItems[position]
+ binding.configSelectView.text = cameraItems[position]
}
}).build()
- configSelectView.setOnClickListener { bottomActionSheet.show() }
+ binding.configSelectView.setOnClickListener { bottomActionSheet.show() }
- netSelectView.setOnClickListener {
+ binding.netSelectView.setOnClickListener {
BottomActionSheet.Builder()
.setContext(this)
.setActionItemTitle(wifiSsids)
.setItemTextColor(R.color.mainThemeColor.convertColor(this))
.setOnActionSheetListener(object : BottomActionSheet.OnActionSheetListener {
override fun onActionItemClick(position: Int) {
- netSelectView.text = wifiSsids[position]
+ binding.netSelectView.text = wifiSsids[position]
//连接wifi
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {
@@ -155,12 +148,13 @@
}).build().show()
}
- steeringWheelView.setOnWheelTouchListener(object : SteeringWheelView.OnWheelTouchListener {
+ binding.steeringWheelView.setOnWheelTouchListener(object :
+ SteeringWheelView.OnWheelTouchListener {
override fun onCenterClicked() {
if (isPreviewSuccess) {
closeHikVisionCamera()
} else {
- val split = configSelectView.text.split(":")
+ val split = binding.configSelectView.text.split(":")
openHikVisionCamera(split[0], split[1])
}
}
@@ -199,14 +193,17 @@
hkSDK.NET_DVR_PTZControl(previewHandle, PTZCommand.PAN_LEFT, 1)
isActionUp = true
}
+
SteeringWheelView.Direction.TOP -> {
hkSDK.NET_DVR_PTZControl(previewHandle, PTZCommand.TILT_UP, 1)
isActionUp = true
}
+
SteeringWheelView.Direction.RIGHT -> {
hkSDK.NET_DVR_PTZControl(previewHandle, PTZCommand.PAN_RIGHT, 1)
isActionUp = true
}
+
SteeringWheelView.Direction.BOTTOM -> {
hkSDK.NET_DVR_PTZControl(previewHandle, PTZCommand.TILT_DOWN, 1)
isActionUp = true
@@ -215,8 +212,8 @@
}
})
- configButton.setOnClickListener {
- val region = regionView.getConfirmedPoints()
+ binding.configButton.setOnClickListener {
+ val region = binding.regionView.getConfirmedPoints()
val data = region.reformatFloatArray()
//发送数据的时候需要断开视频
@@ -301,7 +298,7 @@
strutPlayInfo.lChannel = selectChannel
strutPlayInfo.dwStreamType = 1
strutPlayInfo.bBlocked = 1
- strutPlayInfo.hHwnd = videoSurfaceView.holder
+ strutPlayInfo.hHwnd = binding.videoSurfaceView.holder
previewHandle = SDKGuider.g_sdkGuider.m_comPreviewGuider.RealPlay_V40_jni(
returnUserID, strutPlayInfo, null
)
@@ -322,7 +319,7 @@
}
override fun surfaceCreated(holder: SurfaceHolder) {
- videoSurfaceView.holder.setFormat(PixelFormat.TRANSLUCENT)
+ binding.videoSurfaceView.holder.setFormat(PixelFormat.TRANSLUCENT)
if (-1 == previewHandle) {
return
}
diff --git a/app/src/main/java/com/casic/br/operationsite/view/LoginActivity.kt b/app/src/main/java/com/casic/br/operationsite/view/LoginActivity.kt
index f0b8082..47a2e14 100644
--- a/app/src/main/java/com/casic/br/operationsite/view/LoginActivity.kt
+++ b/app/src/main/java/com/casic/br/operationsite/view/LoginActivity.kt
@@ -2,7 +2,7 @@
import android.os.Bundle
import androidx.lifecycle.ViewModelProvider
-import com.casic.br.operationsite.R
+import com.casic.br.operationsite.databinding.ActivityLoginBinding
import com.casic.br.operationsite.extensions.initLayoutImmersionBar
import com.casic.br.operationsite.utils.AuthenticationHelper
import com.casic.br.operationsite.utils.LoadingDialogHub
@@ -17,25 +17,30 @@
import com.pengxh.kt.lite.extensions.show
import com.pengxh.kt.lite.utils.SaveKeyValues
import com.pengxh.kt.lite.vm.LoadState
-import kotlinx.android.synthetic.main.activity_login.*
-class LoginActivity : KotlinBaseActivity() {
+class LoginActivity : KotlinBaseActivity() {
private lateinit var authenticateViewModel: AuthenticateViewModel
private lateinit var loginViewModel: LoginViewModel
private lateinit var userDetailViewModel: UserDetailViewModel
- override fun initLayoutView(): Int = R.layout.activity_login
+ override fun initViewBinding(): ActivityLoginBinding {
+ return ActivityLoginBinding.inflate(layoutInflater)
+ }
override fun setupTopBarLayout() {
ImmersionBar.with(this).statusBarDarkFont(true).init()
- initLayoutImmersionBar(rootView)
+ initLayoutImmersionBar(binding.rootView)
}
- override fun initData(savedInstanceState: Bundle?) {
+ override fun initOnCreate(savedInstanceState: Bundle?) {
// 设置默认账号密码
- userNameView.setText(SaveKeyValues.getValue(LocaleConstant.ACCOUNT, "") as String)
- userPasswordView.setText(SaveKeyValues.getValue(LocaleConstant.PASSWORD, "") as String)
+ binding.userNameView.setText(SaveKeyValues.getValue(LocaleConstant.ACCOUNT, "") as String)
+ binding.userPasswordView.setText(
+ SaveKeyValues.getValue(
+ LocaleConstant.PASSWORD, ""
+ ) as String
+ )
authenticateViewModel = ViewModelProvider(this)[AuthenticateViewModel::class.java]
loginViewModel = ViewModelProvider(this)[LoginViewModel::class.java]
userDetailViewModel = ViewModelProvider(this)[UserDetailViewModel::class.java]
@@ -51,9 +56,9 @@
}
override fun initEvent() {
- loginButton.setOnClickListener {
- val account = userNameView.text.toString().trim()
- val userPassword = userPasswordView.text.toString().trim()
+ binding.loginButton.setOnClickListener {
+ val account = binding.userNameView.text.toString().trim()
+ val userPassword = binding.userPasswordView.text.toString().trim()
if (account.isBlank()) {
"用户名不能为空".show(this)
return@setOnClickListener
@@ -75,8 +80,8 @@
AuthenticationHelper.savePublicKey(keyString)
val publicKey = RSAUtils.keyStrToPublicKey(keyString)
- val account = userNameView.text.toString()
- val userPassword = userPasswordView.text.toString()
+ val account = binding.userNameView.text.toString()
+ val userPassword = binding.userPasswordView.text.toString()
val dataByPublicKey = RSAUtils.encryptDataByPublicKey(
userPassword.toByteArray(), publicKey!!
)
diff --git a/app/build.gradle b/app/build.gradle
index d3ec387..9b32fed 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -2,12 +2,11 @@
apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
-apply plugin: 'kotlin-android-extensions'
android {
signingConfigs {
release {
- storeFile file('/Users/a203/Desktop/AndroidProjects/OperationSite/app/OperationSite.jks')
+ storeFile file('OperationSite.jks')
storePassword '123456789'
keyAlias 'key0'
keyPassword '123456789'
@@ -54,6 +53,7 @@
coroutines 'enable'
}
}
+
viewBinding {
enabled true
}
@@ -73,7 +73,7 @@
dependencies {
implementation fileTree(include: ['*.jar'], dir: 'libs')
//基础依赖库
- implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.0.4.9'
+ implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.0.5'
implementation 'androidx.appcompat:appcompat:1.6.1'
implementation 'androidx.core:core-ktx:1.9.0'
implementation 'com.google.android.material:material:1.6.1'
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index f1a68ec..cde8f45 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -80,7 +80,7 @@
+ android:value="d26ed926cccc5042898237679d65ae26" />
() {
private lateinit var weakReferenceHandler: WeakReferenceHandler
private lateinit var workingListAdapter: NormalRecyclerAdapter
@@ -44,13 +44,17 @@
private var isLoadMore = false
private var keywords = ""
- override fun initLayoutView(): Int = R.layout.fragment_completed
+ override fun initViewBinding(
+ inflater: LayoutInflater, container: ViewGroup?
+ ): FragmentCompletedBinding {
+ return FragmentCompletedBinding.inflate(inflater, container, false)
+ }
override fun setupTopBarLayout() {
}
- override fun initData(savedInstanceState: Bundle?) {
+ override fun initOnCreate(savedInstanceState: Bundle?) {
weakReferenceHandler = WeakReferenceHandler(callback)
workSiteViewModel = ViewModelProvider(this)[WorkSiteViewModel::class.java]
workSiteViewModel.worksiteModel.observe(this) {
@@ -59,7 +63,7 @@
when {
isRefresh -> {
workingListAdapter.setRefreshData(dataRows)
- completedRefreshLayout.finishRefresh()
+ binding.completedRefreshLayout.finishRefresh()
isRefresh = false
}
@@ -68,7 +72,7 @@
"到底了,别拉了".show(requireContext())
}
workingListAdapter.setLoadMoreData(dataRows)
- completedRefreshLayout.finishLoadMore()
+ binding.completedRefreshLayout.finishLoadMore()
isLoadMore = false
}
@@ -104,13 +108,13 @@
}
override fun initEvent() {
- completedRefreshLayout.setOnRefreshListener {
+ binding.completedRefreshLayout.setOnRefreshListener {
isRefresh = true
//刷新之后页码重置
pageIndex = 1
obtainProjectListByPage()
}
- completedRefreshLayout.setOnLoadMoreListener {
+ binding.completedRefreshLayout.setOnLoadMoreListener {
isLoadMore = true
pageIndex++
obtainProjectListByPage()
@@ -124,12 +128,12 @@
private val callback = Handler.Callback {
if (it.what == 2022071502) {
if (dataBeans.size == 0) {
- emptyView.showEmptyPage {
+ binding.emptyInclude.emptyView.showEmptyPage {
pageIndex = 1
obtainProjectListByPage()
}
} else {
- emptyView.hide()
+ binding.emptyInclude.emptyView.hide()
workingListAdapter = object :
NormalRecyclerAdapter(
R.layout.item_working_rv, dataBeans
@@ -155,10 +159,10 @@
.setText(R.id.workSiteView, "现场描述:${item.workSiteDesc}")
}
}
- completedRecyclerView.addItemDecoration(
+ binding.completedRecyclerView.addItemDecoration(
ItemDecoration(95f.dp2px(requireContext()).toFloat(), 0f)
)
- completedRecyclerView.adapter = workingListAdapter
+ binding.completedRecyclerView.adapter = workingListAdapter
workingListAdapter.setOnItemClickedListener(object :
NormalRecyclerAdapter.OnItemClickedListener {
override fun onItemClicked(
diff --git a/app/src/main/java/com/casic/br/operationsite/fragment/NotStartFragment.kt b/app/src/main/java/com/casic/br/operationsite/fragment/NotStartFragment.kt
index e927d86..a1776fb 100644
--- a/app/src/main/java/com/casic/br/operationsite/fragment/NotStartFragment.kt
+++ b/app/src/main/java/com/casic/br/operationsite/fragment/NotStartFragment.kt
@@ -5,8 +5,11 @@
import android.content.Intent
import android.os.Bundle
import android.os.Handler
+import android.view.LayoutInflater
+import android.view.ViewGroup
import androidx.lifecycle.ViewModelProvider
import com.casic.br.operationsite.R
+import com.casic.br.operationsite.databinding.FragmentNotStartBinding
import com.casic.br.operationsite.extensions.combineImagePath
import com.casic.br.operationsite.extensions.showEmptyPage
import com.casic.br.operationsite.model.BroadcastDataModel
@@ -26,11 +29,8 @@
import com.pengxh.kt.lite.utils.BroadcastManager
import com.pengxh.kt.lite.utils.Constant
import com.pengxh.kt.lite.utils.WeakReferenceHandler
-import kotlinx.android.synthetic.main.fragment_not_start.notStartRecyclerView
-import kotlinx.android.synthetic.main.fragment_not_start.notStartRefreshLayout
-import kotlinx.android.synthetic.main.include_empty_view.emptyView
-class NotStartFragment : KotlinBaseFragment() {
+class NotStartFragment : KotlinBaseFragment() {
private lateinit var weakReferenceHandler: WeakReferenceHandler
private lateinit var workingListAdapter: NormalRecyclerAdapter
@@ -44,13 +44,17 @@
private var isLoadMore = false
private var keywords = ""
- override fun initLayoutView(): Int = R.layout.fragment_not_start
+ override fun initViewBinding(
+ inflater: LayoutInflater, container: ViewGroup?
+ ): FragmentNotStartBinding {
+ return FragmentNotStartBinding.inflate(inflater, container, false)
+ }
override fun setupTopBarLayout() {
}
- override fun initData(savedInstanceState: Bundle?) {
+ override fun initOnCreate(savedInstanceState: Bundle?) {
weakReferenceHandler = WeakReferenceHandler(callback)
workSiteViewModel = ViewModelProvider(this)[WorkSiteViewModel::class.java]
workSiteViewModel.worksiteModel.observe(this) {
@@ -59,7 +63,7 @@
when {
isRefresh -> {
workingListAdapter.setRefreshData(dataRows)
- notStartRefreshLayout.finishRefresh()
+ binding.notStartRefreshLayout.finishRefresh()
isRefresh = false
}
@@ -68,7 +72,7 @@
"到底了,别拉了".show(requireContext())
}
workingListAdapter.setLoadMoreData(dataRows)
- notStartRefreshLayout.finishLoadMore()
+ binding.notStartRefreshLayout.finishLoadMore()
isLoadMore = false
}
@@ -104,13 +108,13 @@
}
override fun initEvent() {
- notStartRefreshLayout.setOnRefreshListener {
+ binding.notStartRefreshLayout.setOnRefreshListener {
isRefresh = true
//刷新之后页码重置
pageIndex = 1
obtainProjectListByPage()
}
- notStartRefreshLayout.setOnLoadMoreListener {
+ binding.notStartRefreshLayout.setOnLoadMoreListener {
isLoadMore = true
pageIndex++
obtainProjectListByPage()
@@ -124,12 +128,12 @@
private val callback = Handler.Callback {
if (it.what == 2022071501) {
if (dataBeans.size == 0) {
- emptyView.showEmptyPage {
+ binding.emptyInclude.emptyView.showEmptyPage {
pageIndex = 1
obtainProjectListByPage()
}
} else {
- emptyView.hide()
+ binding.emptyInclude.emptyView.hide()
workingListAdapter = object :
NormalRecyclerAdapter(
R.layout.item_working_rv, dataBeans
@@ -156,10 +160,10 @@
.setText(R.id.workSiteView, "现场描述:${item.workSiteDesc}")
}
}
- notStartRecyclerView.addItemDecoration(
+ binding.notStartRecyclerView.addItemDecoration(
ItemDecoration(95f.dp2px(requireContext()).toFloat(), 0f)
)
- notStartRecyclerView.adapter = workingListAdapter
+ binding.notStartRecyclerView.adapter = workingListAdapter
workingListAdapter.setOnItemClickedListener(object :
NormalRecyclerAdapter.OnItemClickedListener {
override fun onItemClicked(
diff --git a/app/src/main/java/com/casic/br/operationsite/fragment/WorkingFragment.kt b/app/src/main/java/com/casic/br/operationsite/fragment/WorkingFragment.kt
index dcb240c..09a5e1b 100644
--- a/app/src/main/java/com/casic/br/operationsite/fragment/WorkingFragment.kt
+++ b/app/src/main/java/com/casic/br/operationsite/fragment/WorkingFragment.kt
@@ -5,8 +5,11 @@
import android.content.Intent
import android.os.Bundle
import android.os.Handler
+import android.view.LayoutInflater
+import android.view.ViewGroup
import androidx.lifecycle.ViewModelProvider
import com.casic.br.operationsite.R
+import com.casic.br.operationsite.databinding.FragmentWorkingBinding
import com.casic.br.operationsite.extensions.combineImagePath
import com.casic.br.operationsite.extensions.showEmptyPage
import com.casic.br.operationsite.model.BroadcastDataModel
@@ -26,12 +29,9 @@
import com.pengxh.kt.lite.utils.BroadcastManager
import com.pengxh.kt.lite.utils.Constant
import com.pengxh.kt.lite.utils.WeakReferenceHandler
-import kotlinx.android.synthetic.main.fragment_working.workingRecyclerView
-import kotlinx.android.synthetic.main.fragment_working.workingRefreshLayout
-import kotlinx.android.synthetic.main.include_empty_view.emptyView
-class WorkingFragment : KotlinBaseFragment() {
+class WorkingFragment : KotlinBaseFragment() {
private lateinit var weakReferenceHandler: WeakReferenceHandler
private lateinit var workingListAdapter: NormalRecyclerAdapter
@@ -45,13 +45,17 @@
private var isLoadMore = false
private var keywords = ""
- override fun initLayoutView(): Int = R.layout.fragment_working
+ override fun initViewBinding(
+ inflater: LayoutInflater, container: ViewGroup?
+ ): FragmentWorkingBinding {
+ return FragmentWorkingBinding.inflate(inflater, container, false)
+ }
override fun setupTopBarLayout() {
}
- override fun initData(savedInstanceState: Bundle?) {
+ override fun initOnCreate(savedInstanceState: Bundle?) {
weakReferenceHandler = WeakReferenceHandler(callback)
workSiteViewModel = ViewModelProvider(this)[WorkSiteViewModel::class.java]
workSiteViewModel.worksiteModel.observe(this) {
@@ -60,7 +64,7 @@
when {
isRefresh -> {
workingListAdapter.setRefreshData(dataRows)
- workingRefreshLayout.finishRefresh()
+ binding.workingRefreshLayout.finishRefresh()
isRefresh = false
}
@@ -69,7 +73,7 @@
"到底了,别拉了".show(requireContext())
}
workingListAdapter.setLoadMoreData(dataRows)
- workingRefreshLayout.finishLoadMore()
+ binding.workingRefreshLayout.finishLoadMore()
isLoadMore = false
}
@@ -105,13 +109,13 @@
}
override fun initEvent() {
- workingRefreshLayout.setOnRefreshListener {
+ binding.workingRefreshLayout.setOnRefreshListener {
isRefresh = true
//刷新之后页码重置
pageIndex = 1
obtainProjectListByPage()
}
- workingRefreshLayout.setOnLoadMoreListener {
+ binding.workingRefreshLayout.setOnLoadMoreListener {
isLoadMore = true
pageIndex++
obtainProjectListByPage()
@@ -125,12 +129,12 @@
private val callback = Handler.Callback {
if (it.what == 2022071101) {
if (dataBeans.size == 0) {
- emptyView.showEmptyPage {
+ binding.emptyInclude.emptyView.showEmptyPage {
pageIndex = 1
obtainProjectListByPage()
}
} else {
- emptyView.hide()
+ binding.emptyInclude.emptyView.hide()
workingListAdapter = object :
NormalRecyclerAdapter(
R.layout.item_working_rv, dataBeans
@@ -156,10 +160,10 @@
.setText(R.id.workSiteView, "现场描述:${item.workSiteDesc}")
}
}
- workingRecyclerView.addItemDecoration(
+ binding.workingRecyclerView.addItemDecoration(
ItemDecoration(95f.dp2px(requireContext()).toFloat(), 0f)
)
- workingRecyclerView.adapter = workingListAdapter
+ binding.workingRecyclerView.adapter = workingListAdapter
workingListAdapter.setOnItemClickedListener(object :
NormalRecyclerAdapter.OnItemClickedListener {
override fun onItemClicked(
diff --git a/app/src/main/java/com/casic/br/operationsite/view/AlarmDetailActivity.kt b/app/src/main/java/com/casic/br/operationsite/view/AlarmDetailActivity.kt
index d412a6f..f45c28e 100644
--- a/app/src/main/java/com/casic/br/operationsite/view/AlarmDetailActivity.kt
+++ b/app/src/main/java/com/casic/br/operationsite/view/AlarmDetailActivity.kt
@@ -13,6 +13,7 @@
import com.bumptech.glide.Glide
import com.bumptech.glide.request.RequestOptions
import com.casic.br.operationsite.R
+import com.casic.br.operationsite.databinding.ActivityAlarmDetailBinding
import com.casic.br.operationsite.extensions.combineImagePath
import com.casic.br.operationsite.extensions.initLayoutImmersionBar
import com.casic.br.operationsite.utils.LoadingDialogHub
@@ -21,30 +22,30 @@
import com.pengxh.kt.lite.base.KotlinBaseActivity
import com.pengxh.kt.lite.utils.Constant
import com.pengxh.kt.lite.vm.LoadState
-import kotlinx.android.synthetic.main.activity_alarm_detail.*
-import kotlinx.android.synthetic.main.include_base_title.*
-class AlarmDetailActivity : KotlinBaseActivity() {
+class AlarmDetailActivity : KotlinBaseActivity() {
private lateinit var aMap: AMap
private lateinit var alarmViewModel: AlarmViewModel
private lateinit var id: String
- override fun initLayoutView(): Int = R.layout.activity_alarm_detail
+ override fun initViewBinding(): ActivityAlarmDetailBinding {
+ return ActivityAlarmDetailBinding.inflate(layoutInflater)
+ }
override fun setupTopBarLayout() {
ImmersionBar.with(this).statusBarDarkFont(false)
.statusBarColor(R.color.mainThemeColor).init()
- initLayoutImmersionBar(rootView)
+ initLayoutImmersionBar(binding.rootView)
- leftBackView.setOnClickListener { finish() }
- titleView.text = "燃气作业现场动态感知"
+ binding.titleInclude.leftBackView.setOnClickListener { finish() }
+ binding.titleInclude.titleView.text = "燃气作业现场动态感知"
}
- override fun initData(savedInstanceState: Bundle?) {
+ override fun initOnCreate(savedInstanceState: Bundle?) {
this.id = intent.getStringExtra(Constant.INTENT_PARAM)!!
- aMap = mapView.map
+ aMap = binding.mapView.map
aMap.mapType = AMap.MAP_TYPE_NORMAL
val uiSettings = aMap.uiSettings
uiSettings.isCompassEnabled = true
@@ -96,9 +97,9 @@
Glide.with(this)
.load(detailData.illegalAvatar.combineImagePath())
.apply(RequestOptions().placeholder(R.mipmap.load_image_error))
- .into(avatarView)
- timeView.text = detailData.createTime
- descriptionView.text = detailData.alarmDescription
+ .into(binding.avatarView)
+ binding.timeView.text = detailData.createTime
+ binding.descriptionView.text = detailData.alarmDescription
}
}
}
@@ -114,26 +115,26 @@
/**地图相关*********/
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
- mapView.onCreate(savedInstanceState)
+ binding.mapView.onCreate(savedInstanceState)
}
override fun onResume() {
super.onResume()
- mapView.onResume()
+ binding.mapView.onResume()
}
override fun onPause() {
super.onPause()
- mapView.onPause()
+ binding.mapView.onPause()
}
override fun onDestroy() {
- mapView.onDestroy()
+ binding.mapView.onDestroy()
super.onDestroy()
}
override fun onSaveInstanceState(outState: Bundle) {
super.onSaveInstanceState(outState)
- mapView.onSaveInstanceState(outState)
+ binding.mapView.onSaveInstanceState(outState)
}
}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/br/operationsite/view/AlarmListActivity.kt b/app/src/main/java/com/casic/br/operationsite/view/AlarmListActivity.kt
index 2a25cd0..a601bde 100644
--- a/app/src/main/java/com/casic/br/operationsite/view/AlarmListActivity.kt
+++ b/app/src/main/java/com/casic/br/operationsite/view/AlarmListActivity.kt
@@ -6,6 +6,7 @@
import androidx.lifecycle.ViewModelProvider
import androidx.recyclerview.widget.DividerItemDecoration
import com.casic.br.operationsite.R
+import com.casic.br.operationsite.databinding.ActivityAlarmListBinding
import com.casic.br.operationsite.extensions.combineImagePath
import com.casic.br.operationsite.extensions.formatToDate
import com.casic.br.operationsite.extensions.initLayoutImmersionBar
@@ -23,11 +24,8 @@
import com.pengxh.kt.lite.extensions.show
import com.pengxh.kt.lite.utils.WeakReferenceHandler
import com.pengxh.kt.lite.vm.LoadState
-import kotlinx.android.synthetic.main.activity_alarm_list.*
-import kotlinx.android.synthetic.main.include_empty_view.*
-import kotlinx.android.synthetic.main.include_search_title.*
-class AlarmListActivity : KotlinBaseActivity() {
+class AlarmListActivity : KotlinBaseActivity() {
private lateinit var weakReferenceHandler: WeakReferenceHandler
private lateinit var alarmListAdapter: NormalRecyclerAdapter
@@ -38,22 +36,24 @@
private var isLoadMore = false
private var keywords = ""
- override fun initLayoutView(): Int = R.layout.activity_alarm_list
+ override fun initViewBinding(): ActivityAlarmListBinding {
+ return ActivityAlarmListBinding.inflate(layoutInflater)
+ }
override fun setupTopBarLayout() {
ImmersionBar.with(this).statusBarDarkFont(false)
.statusBarColor(R.color.mainThemeColor).init()
- initLayoutImmersionBar(rootView)
+ initLayoutImmersionBar(binding.rootView)
- searchTextView.setOnClickListener {
- keywords = searchInputView.text.toString()
+ binding.titleInclude.searchTextView.setOnClickListener {
+ keywords = binding.titleInclude.searchInputView.text.toString()
pageIndex = 1
obtainAlarmListByPage()
}
}
- override fun initData(savedInstanceState: Bundle?) {
+ override fun initOnCreate(savedInstanceState: Bundle?) {
weakReferenceHandler = WeakReferenceHandler(callback)
alarmViewModel = ViewModelProvider(this)[AlarmViewModel::class.java]
}
@@ -75,13 +75,13 @@
}
override fun initEvent() {
- alarmRefreshLayout.setOnRefreshListener {
+ binding.alarmRefreshLayout.setOnRefreshListener {
isRefresh = true
//刷新之后页码重置
pageIndex = 1
obtainAlarmListByPage()
}
- alarmRefreshLayout.setOnLoadMoreListener {
+ binding.alarmRefreshLayout.setOnLoadMoreListener {
isLoadMore = true
pageIndex++
obtainAlarmListByPage()
@@ -93,17 +93,19 @@
when {
isRefresh -> {
alarmListAdapter.setRefreshData(dataRows)
- alarmRefreshLayout.finishRefresh()
+ binding.alarmRefreshLayout.finishRefresh()
isRefresh = false
}
+
isLoadMore -> {
if (dataRows.size == 0) {
"到底了,别拉了".show(this)
}
alarmListAdapter.setLoadMoreData(dataRows)
- alarmRefreshLayout.finishLoadMore()
+ binding.alarmRefreshLayout.finishLoadMore()
isLoadMore = false
}
+
else -> {
dataBeans = dataRows
weakReferenceHandler.sendEmptyMessage(2022071201)
@@ -120,12 +122,12 @@
private val callback = Handler.Callback {
if (it.what == 2022071201) {
if (dataBeans.size == 0) {
- emptyView.showEmptyPage {
+ binding.emptyInclude.emptyView.showEmptyPage {
pageIndex = 1
obtainAlarmListByPage()
}
} else {
- emptyView.hide()
+ binding.emptyInclude.emptyView.hide()
alarmListAdapter =
object : NormalRecyclerAdapter(
R.layout.item_alarm_rv_l, dataBeans
@@ -168,10 +170,10 @@
}
}
}
- alarmRecyclerView.addItemDecoration(
+ binding.alarmRecyclerView.addItemDecoration(
DividerItemDecoration(this, DividerItemDecoration.VERTICAL)
)
- alarmRecyclerView.adapter = alarmListAdapter
+ binding.alarmRecyclerView.adapter = alarmListAdapter
alarmListAdapter.setOnItemClickedListener(object :
NormalRecyclerAdapter.OnItemClickedListener {
override fun onItemClicked(
diff --git a/app/src/main/java/com/casic/br/operationsite/view/ApplyEnterActivity.kt b/app/src/main/java/com/casic/br/operationsite/view/ApplyEnterActivity.kt
index f538396..9e665a5 100644
--- a/app/src/main/java/com/casic/br/operationsite/view/ApplyEnterActivity.kt
+++ b/app/src/main/java/com/casic/br/operationsite/view/ApplyEnterActivity.kt
@@ -12,6 +12,7 @@
import androidx.lifecycle.ViewModelProvider
import com.casic.br.operationsite.R
import com.casic.br.operationsite.callback.OnImageCompressListener
+import com.casic.br.operationsite.databinding.ActivityApplyEnterBinding
import com.casic.br.operationsite.extensions.combineImagePath
import com.casic.br.operationsite.extensions.compressImage
import com.casic.br.operationsite.extensions.initLayoutImmersionBar
@@ -30,11 +31,9 @@
import com.pengxh.kt.lite.utils.Constant
import com.pengxh.kt.lite.vm.LoadState
import com.pengxh.kt.lite.widget.dialog.BottomActionSheet
-import kotlinx.android.synthetic.main.activity_apply_enter.*
-import kotlinx.android.synthetic.main.include_base_title.*
import java.io.File
-class ApplyEnterActivity : KotlinBaseActivity() {
+class ApplyEnterActivity : KotlinBaseActivity() {
private val kTag = "ApplyEnterActivity"
private lateinit var imageAdapter: EditableImageAdapter
@@ -45,25 +44,27 @@
private val imagePaths: ArrayList = ArrayList() //服务器返回的拍照数据集
private val realPaths: ArrayList = ArrayList() //真实图片路径
- override fun initLayoutView(): Int = R.layout.activity_apply_enter
+ override fun initViewBinding(): ActivityApplyEnterBinding {
+ return ActivityApplyEnterBinding.inflate(layoutInflater)
+ }
override fun setupTopBarLayout() {
ImmersionBar.with(this).statusBarDarkFont(false)
.statusBarColor(R.color.mainThemeColor).init()
- initLayoutImmersionBar(rootView)
+ initLayoutImmersionBar(binding.rootView)
- leftBackView.setOnClickListener { finish() }
- titleView.text = "人员信息"
+ binding.titleInclude. leftBackView.setOnClickListener { finish() }
+ binding.titleInclude. titleView.text = "人员信息"
}
- override fun initData(savedInstanceState: Bundle?) {
+ override fun initOnCreate(savedInstanceState: Bundle?) {
projectId = intent.getStringExtra(Constant.INTENT_PARAM)!!
uploadFileViewModel = ViewModelProvider(this)[UploadFileViewModel::class.java]
applyViewModel = ViewModelProvider(this)[ApplyViewModel::class.java]
imageAdapter = EditableImageAdapter(this, 1, 3f)
- addImageRecyclerView.adapter = imageAdapter
+ binding.addImageRecyclerView.adapter = imageAdapter
}
/**
@@ -104,20 +105,20 @@
}
override fun initEvent() {
- genderView.setOnClickListener {
+ binding.genderView.setOnClickListener {
BottomActionSheet.Builder()
.setContext(this)
.setActionItemTitle(LocaleConstant.GENDER)
.setItemTextColor(R.color.mainThemeColor.convertColor(this))
.setOnActionSheetListener(object : BottomActionSheet.OnActionSheetListener {
override fun onActionItemClick(position: Int) {
- genderView.text = LocaleConstant.GENDER[position]
+ binding.genderView.text = LocaleConstant.GENDER[position]
}
})
.build().show()
}
- enterReasonView.addTextChangedListener(object : TextWatcher {
+ binding.enterReasonView.addTextChangedListener(object : TextWatcher {
override fun beforeTextChanged(s: CharSequence?, start: Int, count: Int, after: Int) {
}
@@ -129,12 +130,12 @@
@SuppressLint("SetTextI18n")
override fun afterTextChanged(s: Editable?) {
val text = s.toString().trim()
- inputLengthView.text = "${text.length}/100"
+ binding.inputLengthView.text = "${text.length}/100"
if (text.length > 100) {
- inputLengthView.setTextColor(R.color.redTextColor.convertColor(context))
+ binding.inputLengthView.setTextColor(R.color.redTextColor.convertColor(context))
"入场原因不能超过100个字符".show(context)
} else {
- inputLengthView.setTextColor(R.color.subTextColor.convertColor(context))
+ binding.inputLengthView.setTextColor(R.color.subTextColor.convertColor(context))
}
}
})
@@ -187,28 +188,28 @@
}
}
- confirmApplyButton.setOnClickListener {
- if (workerNameView.text.isNullOrBlank()) {
+ binding.confirmApplyButton.setOnClickListener {
+ if (binding.workerNameView.text.isNullOrBlank()) {
"请输入入场人员姓名".show(this)
return@setOnClickListener
}
- if (ownerShipView.text.isNullOrBlank()) {
+ if (binding.ownerShipView.text.isNullOrBlank()) {
"请输入入场人员单位名称".show(this)
return@setOnClickListener
}
- if (phoneNumberView.text.isNullOrBlank()) {
+ if (binding.phoneNumberView.text.isNullOrBlank()) {
"请输入入场人员联系方式".show(this)
return@setOnClickListener
}
- if (!phoneNumberView.text.toString().isPhoneNumber()) {
+ if (!binding.phoneNumberView.text.toString().isPhoneNumber()) {
"请输入正确的联系方式".show(this)
return@setOnClickListener
}
- if (idCardView.text.isNullOrBlank()) {
+ if (binding.idCardView.text.isNullOrBlank()) {
"请输入入场人员身份证号".show(this)
return@setOnClickListener
}
@@ -218,19 +219,19 @@
projectId,
"2",
"",
- ownerShipView.text.toString(),
+ binding.ownerShipView.text.toString(),
"",
currentTime,
"",
- genderView.text.toString(),
- enterReasonView.text.toString(),
- phoneNumberView.text.toString(),
+ binding.genderView.text.toString(),
+ binding.enterReasonView.text.toString(),
+ binding.phoneNumberView.text.toString(),
currentTime,
imagePaths[0],
- idCardView.text.toString(),
+ binding.idCardView.text.toString(),
"",
"",
- workerNameView.text.toString(),
+ binding.workerNameView.text.toString(),
"0",
""
)
diff --git a/app/src/main/java/com/casic/br/operationsite/view/BigImageActivity.kt b/app/src/main/java/com/casic/br/operationsite/view/BigImageActivity.kt
index 7cf446c..a2d3dcf 100644
--- a/app/src/main/java/com/casic/br/operationsite/view/BigImageActivity.kt
+++ b/app/src/main/java/com/casic/br/operationsite/view/BigImageActivity.kt
@@ -11,22 +11,24 @@
import androidx.viewpager.widget.ViewPager
import com.bumptech.glide.Glide
import com.casic.br.operationsite.R
+import com.casic.br.operationsite.databinding.ActivityBigImageBinding
import com.luck.picture.lib.photoview.PhotoView
import com.pengxh.kt.lite.base.KotlinBaseActivity
import com.pengxh.kt.lite.utils.Constant
import com.pengxh.kt.lite.utils.ImmerseStatusBarUtil
-import kotlinx.android.synthetic.main.activity_big_image.*
-class BigImageActivity : KotlinBaseActivity() {
+class BigImageActivity : KotlinBaseActivity() {
- override fun initLayoutView(): Int = R.layout.activity_big_image
+ override fun initViewBinding(): ActivityBigImageBinding {
+ return ActivityBigImageBinding.inflate(layoutInflater)
+ }
override fun setupTopBarLayout() {
ImmerseStatusBarUtil.setColor(this, Color.BLACK)
- leftBackView.setOnClickListener { finish() }
+ binding.leftBackView.setOnClickListener { finish() }
}
- override fun initData(savedInstanceState: Bundle?) {
+ override fun initOnCreate(savedInstanceState: Bundle?) {
}
@@ -41,18 +43,19 @@
return
}
val imageSize = urls.size
- pageNumberView.text = String.format("(" + (index + 1) + "/" + imageSize + ")")
- imagePagerView.adapter = BigImageAdapter(this, urls)
- imagePagerView.currentItem = index
- imagePagerView.offscreenPageLimit = imageSize
- imagePagerView.addOnPageChangeListener(object : ViewPager.OnPageChangeListener {
+ binding.pageNumberView.text = String.format("(" + (index + 1) + "/" + imageSize + ")")
+ binding.imagePagerView.adapter = BigImageAdapter(this, urls)
+ binding.imagePagerView.currentItem = index
+ binding.imagePagerView.offscreenPageLimit = imageSize
+ binding.imagePagerView.addOnPageChangeListener(object : ViewPager.OnPageChangeListener {
override fun onPageScrolled(
position: Int, positionOffset: Float, positionOffsetPixels: Int
) {
}
override fun onPageSelected(position: Int) {
- pageNumberView.text = String.format("(" + (position + 1) + "/" + imageSize + ")")
+ binding.pageNumberView.text =
+ String.format("(" + (position + 1) + "/" + imageSize + ")")
}
override fun onPageScrollStateChanged(state: Int) {}
diff --git a/app/src/main/java/com/casic/br/operationsite/view/FaceDetectActivity.kt b/app/src/main/java/com/casic/br/operationsite/view/FaceDetectActivity.kt
index 9ba963c..54258e7 100644
--- a/app/src/main/java/com/casic/br/operationsite/view/FaceDetectActivity.kt
+++ b/app/src/main/java/com/casic/br/operationsite/view/FaceDetectActivity.kt
@@ -17,6 +17,7 @@
import androidx.camera.lifecycle.ProcessCameraProvider
import androidx.core.content.ContextCompat
import com.casic.br.operationsite.R
+import com.casic.br.operationsite.databinding.ActivityFaceDetectBinding
import com.casic.br.operationsite.extensions.initLayoutImmersionBar
import com.google.common.util.concurrent.ListenableFuture
import com.gyf.immersionbar.ImmersionBar
@@ -25,8 +26,6 @@
import com.pengxh.kt.lite.extensions.setScreenBrightness
import com.pengxh.kt.lite.extensions.toBitmap
import com.pengxh.kt.lite.utils.WeakReferenceHandler
-import kotlinx.android.synthetic.main.activity_face_detect.*
-import kotlinx.android.synthetic.main.include_base_title.*
import java.io.File
import java.io.IOException
import java.text.SimpleDateFormat
@@ -35,7 +34,7 @@
import kotlin.math.abs
-class FaceDetectActivity : KotlinBaseActivity() {
+class FaceDetectActivity : KotlinBaseActivity() {
private val kTag = "FaceDetectActivity"
private lateinit var cameraExecutor: ExecutorService
@@ -45,14 +44,10 @@
private lateinit var weakReferenceHandler: WeakReferenceHandler
private val RATIO_4_3_VALUE = 4.0 / 3.0
private val RATIO_16_9_VALUE = 16.0 / 9.0
- private val executor: ThreadPoolExecutor = ThreadPoolExecutor(
- 16,
- 16,
- 0L,
- TimeUnit.MILLISECONDS,
- LinkedBlockingQueue(1024),
- FaceDetectorThread(),
- ThreadPoolExecutor.AbortPolicy()
+ private val executor = ThreadPoolExecutor(
+ 16, 16, 0L,
+ TimeUnit.MILLISECONDS, LinkedBlockingQueue(1024),
+ FaceDetectorThread(), ThreadPoolExecutor.AbortPolicy()
)
inner class FaceDetectorThread : ThreadFactory {
@@ -61,18 +56,20 @@
}
}
- override fun initLayoutView(): Int = R.layout.activity_face_detect
+ override fun initViewBinding(): ActivityFaceDetectBinding {
+ return ActivityFaceDetectBinding.inflate(layoutInflater)
+ }
override fun setupTopBarLayout() {
ImmersionBar.with(this).statusBarDarkFont(false).statusBarColor(R.color.mainThemeColor)
.init()
- initLayoutImmersionBar(rootView)
+ initLayoutImmersionBar(binding.rootView)
- leftBackView.setOnClickListener { finish() }
- titleView.text = "入场申请人脸采集"
+ binding.titleInclude.leftBackView.setOnClickListener { finish() }
+ binding.titleInclude.titleView.text = "入场申请人脸采集"
}
- override fun initData(savedInstanceState: Bundle?) {
+ override fun initOnCreate(savedInstanceState: Bundle?) {
//调节屏幕亮度最大
window.setScreenBrightness(WindowManager.LayoutParams.BRIGHTNESS_OVERRIDE_FULL)
@@ -137,7 +134,7 @@
imageAnalysis,
cameraPreViewBuilder
)
- cameraPreViewBuilder.setSurfaceProvider(cameraPreView.surfaceProvider)
+ cameraPreViewBuilder.setSurfaceProvider(binding.cameraPreView.surfaceProvider)
observeCameraState(camera.cameraInfo)
} catch (e: Exception) {
e.printStackTrace()
@@ -196,7 +193,7 @@
* */
private val callback = Handler.Callback {
if (it.what == 2022071401) {
- faceDetectTipsView.text = "人脸特征采集中,请勿晃动手机"
+ binding.faceDetectTipsView.text = "人脸特征采集中,请勿晃动手机"
val fileOptions = ImageCapture.OutputFileOptions.Builder(createImageFile()).build()
imageCapture.takePicture(fileOptions, cameraExecutor,
object : ImageCapture.OnImageSavedCallback {
diff --git a/app/src/main/java/com/casic/br/operationsite/view/HikVisionActivity.kt b/app/src/main/java/com/casic/br/operationsite/view/HikVisionActivity.kt
index 2af6cf4..c1a8400 100644
--- a/app/src/main/java/com/casic/br/operationsite/view/HikVisionActivity.kt
+++ b/app/src/main/java/com/casic/br/operationsite/view/HikVisionActivity.kt
@@ -14,6 +14,7 @@
import android.view.SurfaceHolder
import androidx.lifecycle.ViewModelProvider
import com.casic.br.operationsite.R
+import com.casic.br.operationsite.databinding.ActivityHikvisionBinding
import com.casic.br.operationsite.extensions.getChannel
import com.casic.br.operationsite.extensions.initLayoutImmersionBar
import com.casic.br.operationsite.extensions.reformatFloatArray
@@ -33,18 +34,8 @@
import com.pengxh.kt.lite.extensions.getSystemService
import com.pengxh.kt.lite.extensions.show
import com.pengxh.kt.lite.widget.dialog.BottomActionSheet
-import kotlinx.android.synthetic.main.activity_hikvision.configButton
-import kotlinx.android.synthetic.main.activity_hikvision.configSelectView
-import kotlinx.android.synthetic.main.activity_hikvision.netSelectView
-import kotlinx.android.synthetic.main.activity_hikvision.regionView
-import kotlinx.android.synthetic.main.activity_hikvision.rootView
-import kotlinx.android.synthetic.main.activity_hikvision.steeringWheelView
-import kotlinx.android.synthetic.main.activity_hikvision.videoSurfaceView
-import kotlinx.android.synthetic.main.include_option_title.leftBackView
-import kotlinx.android.synthetic.main.include_option_title.rightOptionView
-import kotlinx.android.synthetic.main.include_option_title.titleView
-class HikVisionActivity : KotlinBaseActivity(), SurfaceHolder.Callback {
+class HikVisionActivity : KotlinBaseActivity(), SurfaceHolder.Callback {
private val kTag = "HikVisionActivity"
private val context = this@HikVisionActivity
@@ -66,27 +57,29 @@
//手指是否已经从方向控制盘抬起
private var isActionUp = true
- override fun initLayoutView(): Int = R.layout.activity_hikvision
+ override fun initViewBinding(): ActivityHikvisionBinding {
+ return ActivityHikvisionBinding.inflate(layoutInflater)
+ }
override fun setupTopBarLayout() {
ImmersionBar.with(this).statusBarDarkFont(false)
.statusBarColor(R.color.mainThemeColor).init()
- initLayoutImmersionBar(rootView)
+ initLayoutImmersionBar(binding.rootView)
- titleView.text = "摄像头参数"
- rightOptionView.text = "重画"
- rightOptionView.setOnClickListener {
- regionView.clearRoutePath()
+ binding.titleInclude.titleView.text = "摄像头参数"
+ binding.titleInclude.rightOptionView.text = "重画"
+ binding.titleInclude.rightOptionView.setOnClickListener {
+ binding.regionView.clearRoutePath()
}
}
- override fun initData(savedInstanceState: Bundle?) {
+ override fun initOnCreate(savedInstanceState: Bundle?) {
RuntimeCache.deviceModels.forEach {
if (it.deviceType == DeviceType.CAMERA) {
cameraItems.add("${it.host}:${it.port}")
}
}
- configSelectView.text = cameraItems[0]
+ binding.configSelectView.text = cameraItems[0]
//获取wifi列表
wifiSsids.clear()
@@ -111,7 +104,7 @@
}
override fun initEvent() {
- leftBackView.setOnClickListener { finish() }
+ binding.titleInclude.leftBackView.setOnClickListener { finish() }
val bottomActionSheet = BottomActionSheet.Builder()
.setContext(this)
@@ -119,19 +112,19 @@
.setItemTextColor(R.color.mainThemeColor.convertColor(this))
.setOnActionSheetListener(object : BottomActionSheet.OnActionSheetListener {
override fun onActionItemClick(position: Int) {
- configSelectView.text = cameraItems[position]
+ binding.configSelectView.text = cameraItems[position]
}
}).build()
- configSelectView.setOnClickListener { bottomActionSheet.show() }
+ binding.configSelectView.setOnClickListener { bottomActionSheet.show() }
- netSelectView.setOnClickListener {
+ binding.netSelectView.setOnClickListener {
BottomActionSheet.Builder()
.setContext(this)
.setActionItemTitle(wifiSsids)
.setItemTextColor(R.color.mainThemeColor.convertColor(this))
.setOnActionSheetListener(object : BottomActionSheet.OnActionSheetListener {
override fun onActionItemClick(position: Int) {
- netSelectView.text = wifiSsids[position]
+ binding.netSelectView.text = wifiSsids[position]
//连接wifi
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {
@@ -155,12 +148,13 @@
}).build().show()
}
- steeringWheelView.setOnWheelTouchListener(object : SteeringWheelView.OnWheelTouchListener {
+ binding.steeringWheelView.setOnWheelTouchListener(object :
+ SteeringWheelView.OnWheelTouchListener {
override fun onCenterClicked() {
if (isPreviewSuccess) {
closeHikVisionCamera()
} else {
- val split = configSelectView.text.split(":")
+ val split = binding.configSelectView.text.split(":")
openHikVisionCamera(split[0], split[1])
}
}
@@ -199,14 +193,17 @@
hkSDK.NET_DVR_PTZControl(previewHandle, PTZCommand.PAN_LEFT, 1)
isActionUp = true
}
+
SteeringWheelView.Direction.TOP -> {
hkSDK.NET_DVR_PTZControl(previewHandle, PTZCommand.TILT_UP, 1)
isActionUp = true
}
+
SteeringWheelView.Direction.RIGHT -> {
hkSDK.NET_DVR_PTZControl(previewHandle, PTZCommand.PAN_RIGHT, 1)
isActionUp = true
}
+
SteeringWheelView.Direction.BOTTOM -> {
hkSDK.NET_DVR_PTZControl(previewHandle, PTZCommand.TILT_DOWN, 1)
isActionUp = true
@@ -215,8 +212,8 @@
}
})
- configButton.setOnClickListener {
- val region = regionView.getConfirmedPoints()
+ binding.configButton.setOnClickListener {
+ val region = binding.regionView.getConfirmedPoints()
val data = region.reformatFloatArray()
//发送数据的时候需要断开视频
@@ -301,7 +298,7 @@
strutPlayInfo.lChannel = selectChannel
strutPlayInfo.dwStreamType = 1
strutPlayInfo.bBlocked = 1
- strutPlayInfo.hHwnd = videoSurfaceView.holder
+ strutPlayInfo.hHwnd = binding.videoSurfaceView.holder
previewHandle = SDKGuider.g_sdkGuider.m_comPreviewGuider.RealPlay_V40_jni(
returnUserID, strutPlayInfo, null
)
@@ -322,7 +319,7 @@
}
override fun surfaceCreated(holder: SurfaceHolder) {
- videoSurfaceView.holder.setFormat(PixelFormat.TRANSLUCENT)
+ binding.videoSurfaceView.holder.setFormat(PixelFormat.TRANSLUCENT)
if (-1 == previewHandle) {
return
}
diff --git a/app/src/main/java/com/casic/br/operationsite/view/LoginActivity.kt b/app/src/main/java/com/casic/br/operationsite/view/LoginActivity.kt
index f0b8082..47a2e14 100644
--- a/app/src/main/java/com/casic/br/operationsite/view/LoginActivity.kt
+++ b/app/src/main/java/com/casic/br/operationsite/view/LoginActivity.kt
@@ -2,7 +2,7 @@
import android.os.Bundle
import androidx.lifecycle.ViewModelProvider
-import com.casic.br.operationsite.R
+import com.casic.br.operationsite.databinding.ActivityLoginBinding
import com.casic.br.operationsite.extensions.initLayoutImmersionBar
import com.casic.br.operationsite.utils.AuthenticationHelper
import com.casic.br.operationsite.utils.LoadingDialogHub
@@ -17,25 +17,30 @@
import com.pengxh.kt.lite.extensions.show
import com.pengxh.kt.lite.utils.SaveKeyValues
import com.pengxh.kt.lite.vm.LoadState
-import kotlinx.android.synthetic.main.activity_login.*
-class LoginActivity : KotlinBaseActivity() {
+class LoginActivity : KotlinBaseActivity() {
private lateinit var authenticateViewModel: AuthenticateViewModel
private lateinit var loginViewModel: LoginViewModel
private lateinit var userDetailViewModel: UserDetailViewModel
- override fun initLayoutView(): Int = R.layout.activity_login
+ override fun initViewBinding(): ActivityLoginBinding {
+ return ActivityLoginBinding.inflate(layoutInflater)
+ }
override fun setupTopBarLayout() {
ImmersionBar.with(this).statusBarDarkFont(true).init()
- initLayoutImmersionBar(rootView)
+ initLayoutImmersionBar(binding.rootView)
}
- override fun initData(savedInstanceState: Bundle?) {
+ override fun initOnCreate(savedInstanceState: Bundle?) {
// 设置默认账号密码
- userNameView.setText(SaveKeyValues.getValue(LocaleConstant.ACCOUNT, "") as String)
- userPasswordView.setText(SaveKeyValues.getValue(LocaleConstant.PASSWORD, "") as String)
+ binding.userNameView.setText(SaveKeyValues.getValue(LocaleConstant.ACCOUNT, "") as String)
+ binding.userPasswordView.setText(
+ SaveKeyValues.getValue(
+ LocaleConstant.PASSWORD, ""
+ ) as String
+ )
authenticateViewModel = ViewModelProvider(this)[AuthenticateViewModel::class.java]
loginViewModel = ViewModelProvider(this)[LoginViewModel::class.java]
userDetailViewModel = ViewModelProvider(this)[UserDetailViewModel::class.java]
@@ -51,9 +56,9 @@
}
override fun initEvent() {
- loginButton.setOnClickListener {
- val account = userNameView.text.toString().trim()
- val userPassword = userPasswordView.text.toString().trim()
+ binding.loginButton.setOnClickListener {
+ val account = binding.userNameView.text.toString().trim()
+ val userPassword = binding.userPasswordView.text.toString().trim()
if (account.isBlank()) {
"用户名不能为空".show(this)
return@setOnClickListener
@@ -75,8 +80,8 @@
AuthenticationHelper.savePublicKey(keyString)
val publicKey = RSAUtils.keyStrToPublicKey(keyString)
- val account = userNameView.text.toString()
- val userPassword = userPasswordView.text.toString()
+ val account = binding.userNameView.text.toString()
+ val userPassword = binding.userPasswordView.text.toString()
val dataByPublicKey = RSAUtils.encryptDataByPublicKey(
userPassword.toByteArray(), publicKey!!
)
diff --git a/app/src/main/java/com/casic/br/operationsite/view/MainActivity.kt b/app/src/main/java/com/casic/br/operationsite/view/MainActivity.kt
index 4ed70ac..4ff871c 100644
--- a/app/src/main/java/com/casic/br/operationsite/view/MainActivity.kt
+++ b/app/src/main/java/com/casic/br/operationsite/view/MainActivity.kt
@@ -5,6 +5,7 @@
import androidx.viewpager.widget.ViewPager
import com.casic.br.operationsite.R
import com.casic.br.operationsite.adapter.ViewPagerAdapter
+import com.casic.br.operationsite.databinding.ActivityMainBinding
import com.casic.br.operationsite.extensions.initLayoutImmersionBar
import com.casic.br.operationsite.fragment.CompletedFragment
import com.casic.br.operationsite.fragment.NotStartFragment
@@ -15,10 +16,8 @@
import com.pengxh.kt.lite.base.KotlinBaseActivity
import com.pengxh.kt.lite.extensions.toJson
import com.pengxh.kt.lite.utils.BroadcastManager
-import kotlinx.android.synthetic.main.activity_main.*
-import kotlinx.android.synthetic.main.include_search_title.*
-class MainActivity : KotlinBaseActivity() {
+class MainActivity : KotlinBaseActivity() {
private val kTag = "MainActivity"
private var pageViews: MutableList = ArrayList()
@@ -29,32 +28,34 @@
pageViews.add(CompletedFragment())
}
- override fun initLayoutView(): Int = R.layout.activity_main
+ override fun initViewBinding(): ActivityMainBinding {
+ return ActivityMainBinding.inflate(layoutInflater)
+ }
+
override fun setupTopBarLayout() {
- ImmersionBar.with(this).statusBarDarkFont(false)
- .statusBarColor(R.color.mainThemeColor).init()
- initLayoutImmersionBar(rootView)
+ ImmersionBar.with(this).statusBarDarkFont(false).statusBarColor(R.color.mainThemeColor)
+ .init()
+ initLayoutImmersionBar(binding.rootView)
- searchTextView.setOnClickListener {
+ binding.titleInclude.searchTextView.setOnClickListener {
// 需要根据当前所在Page查询数据
val dataModel = BroadcastDataModel()
- dataModel.currentPage = mainViewPager.currentItem
- dataModel.keywords = searchInputView.text.toString()
+ dataModel.currentPage = binding.mainViewPager.currentItem
+ dataModel.keywords = binding.titleInclude.searchInputView.text.toString()
- BroadcastManager
- .obtainInstance(this)
+ BroadcastManager.obtainInstance(this)
.sendBroadcast(LocaleConstant.SEARCH_ACTION, dataModel.toJson())
}
}
- override fun initData(savedInstanceState: Bundle?) {
- mainViewPager.adapter = ViewPagerAdapter(pageViews, supportFragmentManager)
- mainViewPager.offscreenPageLimit = pageViews.size //缓存页数
+ override fun initOnCreate(savedInstanceState: Bundle?) {
+ binding.mainViewPager.adapter = ViewPagerAdapter(pageViews, supportFragmentManager)
+ binding.mainViewPager.offscreenPageLimit = pageViews.size //缓存页数
//默认显示实施中页面
- mainViewPager.currentItem = 1
- segmentedGroup.check(segmentedGroup.getChildAt(1).id)
+ binding.mainViewPager.currentItem = 1
+ binding.segmentedGroup.check(binding.segmentedGroup.getChildAt(1).id)
}
override fun observeRequestState() {
@@ -62,15 +63,15 @@
}
override fun initEvent() {
- segmentedGroup.setOnCheckedChangeListener { _, checkedId ->
+ binding.segmentedGroup.setOnCheckedChangeListener { _, checkedId ->
when (checkedId) {
- R.id.notStartButton -> mainViewPager.currentItem = 0
- R.id.workingButton -> mainViewPager.currentItem = 1
- R.id.completedButton -> mainViewPager.currentItem = 2
+ R.id.notStartButton -> binding.mainViewPager.currentItem = 0
+ R.id.workingButton -> binding.mainViewPager.currentItem = 1
+ R.id.completedButton -> binding.mainViewPager.currentItem = 2
}
}
- mainViewPager.addOnPageChangeListener(object : ViewPager.OnPageChangeListener {
+ binding.mainViewPager.addOnPageChangeListener(object : ViewPager.OnPageChangeListener {
override fun onPageScrollStateChanged(state: Int) {
}
@@ -82,7 +83,7 @@
}
override fun onPageSelected(position: Int) {
- segmentedGroup.check(segmentedGroup.getChildAt(position).id)
+ binding.segmentedGroup.check(binding.segmentedGroup.getChildAt(position).id)
}
})
}
diff --git a/app/build.gradle b/app/build.gradle
index d3ec387..9b32fed 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -2,12 +2,11 @@
apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
-apply plugin: 'kotlin-android-extensions'
android {
signingConfigs {
release {
- storeFile file('/Users/a203/Desktop/AndroidProjects/OperationSite/app/OperationSite.jks')
+ storeFile file('OperationSite.jks')
storePassword '123456789'
keyAlias 'key0'
keyPassword '123456789'
@@ -54,6 +53,7 @@
coroutines 'enable'
}
}
+
viewBinding {
enabled true
}
@@ -73,7 +73,7 @@
dependencies {
implementation fileTree(include: ['*.jar'], dir: 'libs')
//基础依赖库
- implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.0.4.9'
+ implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.0.5'
implementation 'androidx.appcompat:appcompat:1.6.1'
implementation 'androidx.core:core-ktx:1.9.0'
implementation 'com.google.android.material:material:1.6.1'
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index f1a68ec..cde8f45 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -80,7 +80,7 @@
+ android:value="d26ed926cccc5042898237679d65ae26" />
() {
private lateinit var weakReferenceHandler: WeakReferenceHandler
private lateinit var workingListAdapter: NormalRecyclerAdapter
@@ -44,13 +44,17 @@
private var isLoadMore = false
private var keywords = ""
- override fun initLayoutView(): Int = R.layout.fragment_completed
+ override fun initViewBinding(
+ inflater: LayoutInflater, container: ViewGroup?
+ ): FragmentCompletedBinding {
+ return FragmentCompletedBinding.inflate(inflater, container, false)
+ }
override fun setupTopBarLayout() {
}
- override fun initData(savedInstanceState: Bundle?) {
+ override fun initOnCreate(savedInstanceState: Bundle?) {
weakReferenceHandler = WeakReferenceHandler(callback)
workSiteViewModel = ViewModelProvider(this)[WorkSiteViewModel::class.java]
workSiteViewModel.worksiteModel.observe(this) {
@@ -59,7 +63,7 @@
when {
isRefresh -> {
workingListAdapter.setRefreshData(dataRows)
- completedRefreshLayout.finishRefresh()
+ binding.completedRefreshLayout.finishRefresh()
isRefresh = false
}
@@ -68,7 +72,7 @@
"到底了,别拉了".show(requireContext())
}
workingListAdapter.setLoadMoreData(dataRows)
- completedRefreshLayout.finishLoadMore()
+ binding.completedRefreshLayout.finishLoadMore()
isLoadMore = false
}
@@ -104,13 +108,13 @@
}
override fun initEvent() {
- completedRefreshLayout.setOnRefreshListener {
+ binding.completedRefreshLayout.setOnRefreshListener {
isRefresh = true
//刷新之后页码重置
pageIndex = 1
obtainProjectListByPage()
}
- completedRefreshLayout.setOnLoadMoreListener {
+ binding.completedRefreshLayout.setOnLoadMoreListener {
isLoadMore = true
pageIndex++
obtainProjectListByPage()
@@ -124,12 +128,12 @@
private val callback = Handler.Callback {
if (it.what == 2022071502) {
if (dataBeans.size == 0) {
- emptyView.showEmptyPage {
+ binding.emptyInclude.emptyView.showEmptyPage {
pageIndex = 1
obtainProjectListByPage()
}
} else {
- emptyView.hide()
+ binding.emptyInclude.emptyView.hide()
workingListAdapter = object :
NormalRecyclerAdapter(
R.layout.item_working_rv, dataBeans
@@ -155,10 +159,10 @@
.setText(R.id.workSiteView, "现场描述:${item.workSiteDesc}")
}
}
- completedRecyclerView.addItemDecoration(
+ binding.completedRecyclerView.addItemDecoration(
ItemDecoration(95f.dp2px(requireContext()).toFloat(), 0f)
)
- completedRecyclerView.adapter = workingListAdapter
+ binding.completedRecyclerView.adapter = workingListAdapter
workingListAdapter.setOnItemClickedListener(object :
NormalRecyclerAdapter.OnItemClickedListener {
override fun onItemClicked(
diff --git a/app/src/main/java/com/casic/br/operationsite/fragment/NotStartFragment.kt b/app/src/main/java/com/casic/br/operationsite/fragment/NotStartFragment.kt
index e927d86..a1776fb 100644
--- a/app/src/main/java/com/casic/br/operationsite/fragment/NotStartFragment.kt
+++ b/app/src/main/java/com/casic/br/operationsite/fragment/NotStartFragment.kt
@@ -5,8 +5,11 @@
import android.content.Intent
import android.os.Bundle
import android.os.Handler
+import android.view.LayoutInflater
+import android.view.ViewGroup
import androidx.lifecycle.ViewModelProvider
import com.casic.br.operationsite.R
+import com.casic.br.operationsite.databinding.FragmentNotStartBinding
import com.casic.br.operationsite.extensions.combineImagePath
import com.casic.br.operationsite.extensions.showEmptyPage
import com.casic.br.operationsite.model.BroadcastDataModel
@@ -26,11 +29,8 @@
import com.pengxh.kt.lite.utils.BroadcastManager
import com.pengxh.kt.lite.utils.Constant
import com.pengxh.kt.lite.utils.WeakReferenceHandler
-import kotlinx.android.synthetic.main.fragment_not_start.notStartRecyclerView
-import kotlinx.android.synthetic.main.fragment_not_start.notStartRefreshLayout
-import kotlinx.android.synthetic.main.include_empty_view.emptyView
-class NotStartFragment : KotlinBaseFragment() {
+class NotStartFragment : KotlinBaseFragment() {
private lateinit var weakReferenceHandler: WeakReferenceHandler
private lateinit var workingListAdapter: NormalRecyclerAdapter
@@ -44,13 +44,17 @@
private var isLoadMore = false
private var keywords = ""
- override fun initLayoutView(): Int = R.layout.fragment_not_start
+ override fun initViewBinding(
+ inflater: LayoutInflater, container: ViewGroup?
+ ): FragmentNotStartBinding {
+ return FragmentNotStartBinding.inflate(inflater, container, false)
+ }
override fun setupTopBarLayout() {
}
- override fun initData(savedInstanceState: Bundle?) {
+ override fun initOnCreate(savedInstanceState: Bundle?) {
weakReferenceHandler = WeakReferenceHandler(callback)
workSiteViewModel = ViewModelProvider(this)[WorkSiteViewModel::class.java]
workSiteViewModel.worksiteModel.observe(this) {
@@ -59,7 +63,7 @@
when {
isRefresh -> {
workingListAdapter.setRefreshData(dataRows)
- notStartRefreshLayout.finishRefresh()
+ binding.notStartRefreshLayout.finishRefresh()
isRefresh = false
}
@@ -68,7 +72,7 @@
"到底了,别拉了".show(requireContext())
}
workingListAdapter.setLoadMoreData(dataRows)
- notStartRefreshLayout.finishLoadMore()
+ binding.notStartRefreshLayout.finishLoadMore()
isLoadMore = false
}
@@ -104,13 +108,13 @@
}
override fun initEvent() {
- notStartRefreshLayout.setOnRefreshListener {
+ binding.notStartRefreshLayout.setOnRefreshListener {
isRefresh = true
//刷新之后页码重置
pageIndex = 1
obtainProjectListByPage()
}
- notStartRefreshLayout.setOnLoadMoreListener {
+ binding.notStartRefreshLayout.setOnLoadMoreListener {
isLoadMore = true
pageIndex++
obtainProjectListByPage()
@@ -124,12 +128,12 @@
private val callback = Handler.Callback {
if (it.what == 2022071501) {
if (dataBeans.size == 0) {
- emptyView.showEmptyPage {
+ binding.emptyInclude.emptyView.showEmptyPage {
pageIndex = 1
obtainProjectListByPage()
}
} else {
- emptyView.hide()
+ binding.emptyInclude.emptyView.hide()
workingListAdapter = object :
NormalRecyclerAdapter(
R.layout.item_working_rv, dataBeans
@@ -156,10 +160,10 @@
.setText(R.id.workSiteView, "现场描述:${item.workSiteDesc}")
}
}
- notStartRecyclerView.addItemDecoration(
+ binding.notStartRecyclerView.addItemDecoration(
ItemDecoration(95f.dp2px(requireContext()).toFloat(), 0f)
)
- notStartRecyclerView.adapter = workingListAdapter
+ binding.notStartRecyclerView.adapter = workingListAdapter
workingListAdapter.setOnItemClickedListener(object :
NormalRecyclerAdapter.OnItemClickedListener {
override fun onItemClicked(
diff --git a/app/src/main/java/com/casic/br/operationsite/fragment/WorkingFragment.kt b/app/src/main/java/com/casic/br/operationsite/fragment/WorkingFragment.kt
index dcb240c..09a5e1b 100644
--- a/app/src/main/java/com/casic/br/operationsite/fragment/WorkingFragment.kt
+++ b/app/src/main/java/com/casic/br/operationsite/fragment/WorkingFragment.kt
@@ -5,8 +5,11 @@
import android.content.Intent
import android.os.Bundle
import android.os.Handler
+import android.view.LayoutInflater
+import android.view.ViewGroup
import androidx.lifecycle.ViewModelProvider
import com.casic.br.operationsite.R
+import com.casic.br.operationsite.databinding.FragmentWorkingBinding
import com.casic.br.operationsite.extensions.combineImagePath
import com.casic.br.operationsite.extensions.showEmptyPage
import com.casic.br.operationsite.model.BroadcastDataModel
@@ -26,12 +29,9 @@
import com.pengxh.kt.lite.utils.BroadcastManager
import com.pengxh.kt.lite.utils.Constant
import com.pengxh.kt.lite.utils.WeakReferenceHandler
-import kotlinx.android.synthetic.main.fragment_working.workingRecyclerView
-import kotlinx.android.synthetic.main.fragment_working.workingRefreshLayout
-import kotlinx.android.synthetic.main.include_empty_view.emptyView
-class WorkingFragment : KotlinBaseFragment() {
+class WorkingFragment : KotlinBaseFragment() {
private lateinit var weakReferenceHandler: WeakReferenceHandler
private lateinit var workingListAdapter: NormalRecyclerAdapter
@@ -45,13 +45,17 @@
private var isLoadMore = false
private var keywords = ""
- override fun initLayoutView(): Int = R.layout.fragment_working
+ override fun initViewBinding(
+ inflater: LayoutInflater, container: ViewGroup?
+ ): FragmentWorkingBinding {
+ return FragmentWorkingBinding.inflate(inflater, container, false)
+ }
override fun setupTopBarLayout() {
}
- override fun initData(savedInstanceState: Bundle?) {
+ override fun initOnCreate(savedInstanceState: Bundle?) {
weakReferenceHandler = WeakReferenceHandler(callback)
workSiteViewModel = ViewModelProvider(this)[WorkSiteViewModel::class.java]
workSiteViewModel.worksiteModel.observe(this) {
@@ -60,7 +64,7 @@
when {
isRefresh -> {
workingListAdapter.setRefreshData(dataRows)
- workingRefreshLayout.finishRefresh()
+ binding.workingRefreshLayout.finishRefresh()
isRefresh = false
}
@@ -69,7 +73,7 @@
"到底了,别拉了".show(requireContext())
}
workingListAdapter.setLoadMoreData(dataRows)
- workingRefreshLayout.finishLoadMore()
+ binding.workingRefreshLayout.finishLoadMore()
isLoadMore = false
}
@@ -105,13 +109,13 @@
}
override fun initEvent() {
- workingRefreshLayout.setOnRefreshListener {
+ binding.workingRefreshLayout.setOnRefreshListener {
isRefresh = true
//刷新之后页码重置
pageIndex = 1
obtainProjectListByPage()
}
- workingRefreshLayout.setOnLoadMoreListener {
+ binding.workingRefreshLayout.setOnLoadMoreListener {
isLoadMore = true
pageIndex++
obtainProjectListByPage()
@@ -125,12 +129,12 @@
private val callback = Handler.Callback {
if (it.what == 2022071101) {
if (dataBeans.size == 0) {
- emptyView.showEmptyPage {
+ binding.emptyInclude.emptyView.showEmptyPage {
pageIndex = 1
obtainProjectListByPage()
}
} else {
- emptyView.hide()
+ binding.emptyInclude.emptyView.hide()
workingListAdapter = object :
NormalRecyclerAdapter(
R.layout.item_working_rv, dataBeans
@@ -156,10 +160,10 @@
.setText(R.id.workSiteView, "现场描述:${item.workSiteDesc}")
}
}
- workingRecyclerView.addItemDecoration(
+ binding.workingRecyclerView.addItemDecoration(
ItemDecoration(95f.dp2px(requireContext()).toFloat(), 0f)
)
- workingRecyclerView.adapter = workingListAdapter
+ binding.workingRecyclerView.adapter = workingListAdapter
workingListAdapter.setOnItemClickedListener(object :
NormalRecyclerAdapter.OnItemClickedListener {
override fun onItemClicked(
diff --git a/app/src/main/java/com/casic/br/operationsite/view/AlarmDetailActivity.kt b/app/src/main/java/com/casic/br/operationsite/view/AlarmDetailActivity.kt
index d412a6f..f45c28e 100644
--- a/app/src/main/java/com/casic/br/operationsite/view/AlarmDetailActivity.kt
+++ b/app/src/main/java/com/casic/br/operationsite/view/AlarmDetailActivity.kt
@@ -13,6 +13,7 @@
import com.bumptech.glide.Glide
import com.bumptech.glide.request.RequestOptions
import com.casic.br.operationsite.R
+import com.casic.br.operationsite.databinding.ActivityAlarmDetailBinding
import com.casic.br.operationsite.extensions.combineImagePath
import com.casic.br.operationsite.extensions.initLayoutImmersionBar
import com.casic.br.operationsite.utils.LoadingDialogHub
@@ -21,30 +22,30 @@
import com.pengxh.kt.lite.base.KotlinBaseActivity
import com.pengxh.kt.lite.utils.Constant
import com.pengxh.kt.lite.vm.LoadState
-import kotlinx.android.synthetic.main.activity_alarm_detail.*
-import kotlinx.android.synthetic.main.include_base_title.*
-class AlarmDetailActivity : KotlinBaseActivity() {
+class AlarmDetailActivity : KotlinBaseActivity() {
private lateinit var aMap: AMap
private lateinit var alarmViewModel: AlarmViewModel
private lateinit var id: String
- override fun initLayoutView(): Int = R.layout.activity_alarm_detail
+ override fun initViewBinding(): ActivityAlarmDetailBinding {
+ return ActivityAlarmDetailBinding.inflate(layoutInflater)
+ }
override fun setupTopBarLayout() {
ImmersionBar.with(this).statusBarDarkFont(false)
.statusBarColor(R.color.mainThemeColor).init()
- initLayoutImmersionBar(rootView)
+ initLayoutImmersionBar(binding.rootView)
- leftBackView.setOnClickListener { finish() }
- titleView.text = "燃气作业现场动态感知"
+ binding.titleInclude.leftBackView.setOnClickListener { finish() }
+ binding.titleInclude.titleView.text = "燃气作业现场动态感知"
}
- override fun initData(savedInstanceState: Bundle?) {
+ override fun initOnCreate(savedInstanceState: Bundle?) {
this.id = intent.getStringExtra(Constant.INTENT_PARAM)!!
- aMap = mapView.map
+ aMap = binding.mapView.map
aMap.mapType = AMap.MAP_TYPE_NORMAL
val uiSettings = aMap.uiSettings
uiSettings.isCompassEnabled = true
@@ -96,9 +97,9 @@
Glide.with(this)
.load(detailData.illegalAvatar.combineImagePath())
.apply(RequestOptions().placeholder(R.mipmap.load_image_error))
- .into(avatarView)
- timeView.text = detailData.createTime
- descriptionView.text = detailData.alarmDescription
+ .into(binding.avatarView)
+ binding.timeView.text = detailData.createTime
+ binding.descriptionView.text = detailData.alarmDescription
}
}
}
@@ -114,26 +115,26 @@
/**地图相关*********/
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
- mapView.onCreate(savedInstanceState)
+ binding.mapView.onCreate(savedInstanceState)
}
override fun onResume() {
super.onResume()
- mapView.onResume()
+ binding.mapView.onResume()
}
override fun onPause() {
super.onPause()
- mapView.onPause()
+ binding.mapView.onPause()
}
override fun onDestroy() {
- mapView.onDestroy()
+ binding.mapView.onDestroy()
super.onDestroy()
}
override fun onSaveInstanceState(outState: Bundle) {
super.onSaveInstanceState(outState)
- mapView.onSaveInstanceState(outState)
+ binding.mapView.onSaveInstanceState(outState)
}
}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/br/operationsite/view/AlarmListActivity.kt b/app/src/main/java/com/casic/br/operationsite/view/AlarmListActivity.kt
index 2a25cd0..a601bde 100644
--- a/app/src/main/java/com/casic/br/operationsite/view/AlarmListActivity.kt
+++ b/app/src/main/java/com/casic/br/operationsite/view/AlarmListActivity.kt
@@ -6,6 +6,7 @@
import androidx.lifecycle.ViewModelProvider
import androidx.recyclerview.widget.DividerItemDecoration
import com.casic.br.operationsite.R
+import com.casic.br.operationsite.databinding.ActivityAlarmListBinding
import com.casic.br.operationsite.extensions.combineImagePath
import com.casic.br.operationsite.extensions.formatToDate
import com.casic.br.operationsite.extensions.initLayoutImmersionBar
@@ -23,11 +24,8 @@
import com.pengxh.kt.lite.extensions.show
import com.pengxh.kt.lite.utils.WeakReferenceHandler
import com.pengxh.kt.lite.vm.LoadState
-import kotlinx.android.synthetic.main.activity_alarm_list.*
-import kotlinx.android.synthetic.main.include_empty_view.*
-import kotlinx.android.synthetic.main.include_search_title.*
-class AlarmListActivity : KotlinBaseActivity() {
+class AlarmListActivity : KotlinBaseActivity() {
private lateinit var weakReferenceHandler: WeakReferenceHandler
private lateinit var alarmListAdapter: NormalRecyclerAdapter
@@ -38,22 +36,24 @@
private var isLoadMore = false
private var keywords = ""
- override fun initLayoutView(): Int = R.layout.activity_alarm_list
+ override fun initViewBinding(): ActivityAlarmListBinding {
+ return ActivityAlarmListBinding.inflate(layoutInflater)
+ }
override fun setupTopBarLayout() {
ImmersionBar.with(this).statusBarDarkFont(false)
.statusBarColor(R.color.mainThemeColor).init()
- initLayoutImmersionBar(rootView)
+ initLayoutImmersionBar(binding.rootView)
- searchTextView.setOnClickListener {
- keywords = searchInputView.text.toString()
+ binding.titleInclude.searchTextView.setOnClickListener {
+ keywords = binding.titleInclude.searchInputView.text.toString()
pageIndex = 1
obtainAlarmListByPage()
}
}
- override fun initData(savedInstanceState: Bundle?) {
+ override fun initOnCreate(savedInstanceState: Bundle?) {
weakReferenceHandler = WeakReferenceHandler(callback)
alarmViewModel = ViewModelProvider(this)[AlarmViewModel::class.java]
}
@@ -75,13 +75,13 @@
}
override fun initEvent() {
- alarmRefreshLayout.setOnRefreshListener {
+ binding.alarmRefreshLayout.setOnRefreshListener {
isRefresh = true
//刷新之后页码重置
pageIndex = 1
obtainAlarmListByPage()
}
- alarmRefreshLayout.setOnLoadMoreListener {
+ binding.alarmRefreshLayout.setOnLoadMoreListener {
isLoadMore = true
pageIndex++
obtainAlarmListByPage()
@@ -93,17 +93,19 @@
when {
isRefresh -> {
alarmListAdapter.setRefreshData(dataRows)
- alarmRefreshLayout.finishRefresh()
+ binding.alarmRefreshLayout.finishRefresh()
isRefresh = false
}
+
isLoadMore -> {
if (dataRows.size == 0) {
"到底了,别拉了".show(this)
}
alarmListAdapter.setLoadMoreData(dataRows)
- alarmRefreshLayout.finishLoadMore()
+ binding.alarmRefreshLayout.finishLoadMore()
isLoadMore = false
}
+
else -> {
dataBeans = dataRows
weakReferenceHandler.sendEmptyMessage(2022071201)
@@ -120,12 +122,12 @@
private val callback = Handler.Callback {
if (it.what == 2022071201) {
if (dataBeans.size == 0) {
- emptyView.showEmptyPage {
+ binding.emptyInclude.emptyView.showEmptyPage {
pageIndex = 1
obtainAlarmListByPage()
}
} else {
- emptyView.hide()
+ binding.emptyInclude.emptyView.hide()
alarmListAdapter =
object : NormalRecyclerAdapter(
R.layout.item_alarm_rv_l, dataBeans
@@ -168,10 +170,10 @@
}
}
}
- alarmRecyclerView.addItemDecoration(
+ binding.alarmRecyclerView.addItemDecoration(
DividerItemDecoration(this, DividerItemDecoration.VERTICAL)
)
- alarmRecyclerView.adapter = alarmListAdapter
+ binding.alarmRecyclerView.adapter = alarmListAdapter
alarmListAdapter.setOnItemClickedListener(object :
NormalRecyclerAdapter.OnItemClickedListener {
override fun onItemClicked(
diff --git a/app/src/main/java/com/casic/br/operationsite/view/ApplyEnterActivity.kt b/app/src/main/java/com/casic/br/operationsite/view/ApplyEnterActivity.kt
index f538396..9e665a5 100644
--- a/app/src/main/java/com/casic/br/operationsite/view/ApplyEnterActivity.kt
+++ b/app/src/main/java/com/casic/br/operationsite/view/ApplyEnterActivity.kt
@@ -12,6 +12,7 @@
import androidx.lifecycle.ViewModelProvider
import com.casic.br.operationsite.R
import com.casic.br.operationsite.callback.OnImageCompressListener
+import com.casic.br.operationsite.databinding.ActivityApplyEnterBinding
import com.casic.br.operationsite.extensions.combineImagePath
import com.casic.br.operationsite.extensions.compressImage
import com.casic.br.operationsite.extensions.initLayoutImmersionBar
@@ -30,11 +31,9 @@
import com.pengxh.kt.lite.utils.Constant
import com.pengxh.kt.lite.vm.LoadState
import com.pengxh.kt.lite.widget.dialog.BottomActionSheet
-import kotlinx.android.synthetic.main.activity_apply_enter.*
-import kotlinx.android.synthetic.main.include_base_title.*
import java.io.File
-class ApplyEnterActivity : KotlinBaseActivity() {
+class ApplyEnterActivity : KotlinBaseActivity() {
private val kTag = "ApplyEnterActivity"
private lateinit var imageAdapter: EditableImageAdapter
@@ -45,25 +44,27 @@
private val imagePaths: ArrayList = ArrayList() //服务器返回的拍照数据集
private val realPaths: ArrayList = ArrayList() //真实图片路径
- override fun initLayoutView(): Int = R.layout.activity_apply_enter
+ override fun initViewBinding(): ActivityApplyEnterBinding {
+ return ActivityApplyEnterBinding.inflate(layoutInflater)
+ }
override fun setupTopBarLayout() {
ImmersionBar.with(this).statusBarDarkFont(false)
.statusBarColor(R.color.mainThemeColor).init()
- initLayoutImmersionBar(rootView)
+ initLayoutImmersionBar(binding.rootView)
- leftBackView.setOnClickListener { finish() }
- titleView.text = "人员信息"
+ binding.titleInclude. leftBackView.setOnClickListener { finish() }
+ binding.titleInclude. titleView.text = "人员信息"
}
- override fun initData(savedInstanceState: Bundle?) {
+ override fun initOnCreate(savedInstanceState: Bundle?) {
projectId = intent.getStringExtra(Constant.INTENT_PARAM)!!
uploadFileViewModel = ViewModelProvider(this)[UploadFileViewModel::class.java]
applyViewModel = ViewModelProvider(this)[ApplyViewModel::class.java]
imageAdapter = EditableImageAdapter(this, 1, 3f)
- addImageRecyclerView.adapter = imageAdapter
+ binding.addImageRecyclerView.adapter = imageAdapter
}
/**
@@ -104,20 +105,20 @@
}
override fun initEvent() {
- genderView.setOnClickListener {
+ binding.genderView.setOnClickListener {
BottomActionSheet.Builder()
.setContext(this)
.setActionItemTitle(LocaleConstant.GENDER)
.setItemTextColor(R.color.mainThemeColor.convertColor(this))
.setOnActionSheetListener(object : BottomActionSheet.OnActionSheetListener {
override fun onActionItemClick(position: Int) {
- genderView.text = LocaleConstant.GENDER[position]
+ binding.genderView.text = LocaleConstant.GENDER[position]
}
})
.build().show()
}
- enterReasonView.addTextChangedListener(object : TextWatcher {
+ binding.enterReasonView.addTextChangedListener(object : TextWatcher {
override fun beforeTextChanged(s: CharSequence?, start: Int, count: Int, after: Int) {
}
@@ -129,12 +130,12 @@
@SuppressLint("SetTextI18n")
override fun afterTextChanged(s: Editable?) {
val text = s.toString().trim()
- inputLengthView.text = "${text.length}/100"
+ binding.inputLengthView.text = "${text.length}/100"
if (text.length > 100) {
- inputLengthView.setTextColor(R.color.redTextColor.convertColor(context))
+ binding.inputLengthView.setTextColor(R.color.redTextColor.convertColor(context))
"入场原因不能超过100个字符".show(context)
} else {
- inputLengthView.setTextColor(R.color.subTextColor.convertColor(context))
+ binding.inputLengthView.setTextColor(R.color.subTextColor.convertColor(context))
}
}
})
@@ -187,28 +188,28 @@
}
}
- confirmApplyButton.setOnClickListener {
- if (workerNameView.text.isNullOrBlank()) {
+ binding.confirmApplyButton.setOnClickListener {
+ if (binding.workerNameView.text.isNullOrBlank()) {
"请输入入场人员姓名".show(this)
return@setOnClickListener
}
- if (ownerShipView.text.isNullOrBlank()) {
+ if (binding.ownerShipView.text.isNullOrBlank()) {
"请输入入场人员单位名称".show(this)
return@setOnClickListener
}
- if (phoneNumberView.text.isNullOrBlank()) {
+ if (binding.phoneNumberView.text.isNullOrBlank()) {
"请输入入场人员联系方式".show(this)
return@setOnClickListener
}
- if (!phoneNumberView.text.toString().isPhoneNumber()) {
+ if (!binding.phoneNumberView.text.toString().isPhoneNumber()) {
"请输入正确的联系方式".show(this)
return@setOnClickListener
}
- if (idCardView.text.isNullOrBlank()) {
+ if (binding.idCardView.text.isNullOrBlank()) {
"请输入入场人员身份证号".show(this)
return@setOnClickListener
}
@@ -218,19 +219,19 @@
projectId,
"2",
"",
- ownerShipView.text.toString(),
+ binding.ownerShipView.text.toString(),
"",
currentTime,
"",
- genderView.text.toString(),
- enterReasonView.text.toString(),
- phoneNumberView.text.toString(),
+ binding.genderView.text.toString(),
+ binding.enterReasonView.text.toString(),
+ binding.phoneNumberView.text.toString(),
currentTime,
imagePaths[0],
- idCardView.text.toString(),
+ binding.idCardView.text.toString(),
"",
"",
- workerNameView.text.toString(),
+ binding.workerNameView.text.toString(),
"0",
""
)
diff --git a/app/src/main/java/com/casic/br/operationsite/view/BigImageActivity.kt b/app/src/main/java/com/casic/br/operationsite/view/BigImageActivity.kt
index 7cf446c..a2d3dcf 100644
--- a/app/src/main/java/com/casic/br/operationsite/view/BigImageActivity.kt
+++ b/app/src/main/java/com/casic/br/operationsite/view/BigImageActivity.kt
@@ -11,22 +11,24 @@
import androidx.viewpager.widget.ViewPager
import com.bumptech.glide.Glide
import com.casic.br.operationsite.R
+import com.casic.br.operationsite.databinding.ActivityBigImageBinding
import com.luck.picture.lib.photoview.PhotoView
import com.pengxh.kt.lite.base.KotlinBaseActivity
import com.pengxh.kt.lite.utils.Constant
import com.pengxh.kt.lite.utils.ImmerseStatusBarUtil
-import kotlinx.android.synthetic.main.activity_big_image.*
-class BigImageActivity : KotlinBaseActivity() {
+class BigImageActivity : KotlinBaseActivity() {
- override fun initLayoutView(): Int = R.layout.activity_big_image
+ override fun initViewBinding(): ActivityBigImageBinding {
+ return ActivityBigImageBinding.inflate(layoutInflater)
+ }
override fun setupTopBarLayout() {
ImmerseStatusBarUtil.setColor(this, Color.BLACK)
- leftBackView.setOnClickListener { finish() }
+ binding.leftBackView.setOnClickListener { finish() }
}
- override fun initData(savedInstanceState: Bundle?) {
+ override fun initOnCreate(savedInstanceState: Bundle?) {
}
@@ -41,18 +43,19 @@
return
}
val imageSize = urls.size
- pageNumberView.text = String.format("(" + (index + 1) + "/" + imageSize + ")")
- imagePagerView.adapter = BigImageAdapter(this, urls)
- imagePagerView.currentItem = index
- imagePagerView.offscreenPageLimit = imageSize
- imagePagerView.addOnPageChangeListener(object : ViewPager.OnPageChangeListener {
+ binding.pageNumberView.text = String.format("(" + (index + 1) + "/" + imageSize + ")")
+ binding.imagePagerView.adapter = BigImageAdapter(this, urls)
+ binding.imagePagerView.currentItem = index
+ binding.imagePagerView.offscreenPageLimit = imageSize
+ binding.imagePagerView.addOnPageChangeListener(object : ViewPager.OnPageChangeListener {
override fun onPageScrolled(
position: Int, positionOffset: Float, positionOffsetPixels: Int
) {
}
override fun onPageSelected(position: Int) {
- pageNumberView.text = String.format("(" + (position + 1) + "/" + imageSize + ")")
+ binding.pageNumberView.text =
+ String.format("(" + (position + 1) + "/" + imageSize + ")")
}
override fun onPageScrollStateChanged(state: Int) {}
diff --git a/app/src/main/java/com/casic/br/operationsite/view/FaceDetectActivity.kt b/app/src/main/java/com/casic/br/operationsite/view/FaceDetectActivity.kt
index 9ba963c..54258e7 100644
--- a/app/src/main/java/com/casic/br/operationsite/view/FaceDetectActivity.kt
+++ b/app/src/main/java/com/casic/br/operationsite/view/FaceDetectActivity.kt
@@ -17,6 +17,7 @@
import androidx.camera.lifecycle.ProcessCameraProvider
import androidx.core.content.ContextCompat
import com.casic.br.operationsite.R
+import com.casic.br.operationsite.databinding.ActivityFaceDetectBinding
import com.casic.br.operationsite.extensions.initLayoutImmersionBar
import com.google.common.util.concurrent.ListenableFuture
import com.gyf.immersionbar.ImmersionBar
@@ -25,8 +26,6 @@
import com.pengxh.kt.lite.extensions.setScreenBrightness
import com.pengxh.kt.lite.extensions.toBitmap
import com.pengxh.kt.lite.utils.WeakReferenceHandler
-import kotlinx.android.synthetic.main.activity_face_detect.*
-import kotlinx.android.synthetic.main.include_base_title.*
import java.io.File
import java.io.IOException
import java.text.SimpleDateFormat
@@ -35,7 +34,7 @@
import kotlin.math.abs
-class FaceDetectActivity : KotlinBaseActivity() {
+class FaceDetectActivity : KotlinBaseActivity() {
private val kTag = "FaceDetectActivity"
private lateinit var cameraExecutor: ExecutorService
@@ -45,14 +44,10 @@
private lateinit var weakReferenceHandler: WeakReferenceHandler
private val RATIO_4_3_VALUE = 4.0 / 3.0
private val RATIO_16_9_VALUE = 16.0 / 9.0
- private val executor: ThreadPoolExecutor = ThreadPoolExecutor(
- 16,
- 16,
- 0L,
- TimeUnit.MILLISECONDS,
- LinkedBlockingQueue(1024),
- FaceDetectorThread(),
- ThreadPoolExecutor.AbortPolicy()
+ private val executor = ThreadPoolExecutor(
+ 16, 16, 0L,
+ TimeUnit.MILLISECONDS, LinkedBlockingQueue(1024),
+ FaceDetectorThread(), ThreadPoolExecutor.AbortPolicy()
)
inner class FaceDetectorThread : ThreadFactory {
@@ -61,18 +56,20 @@
}
}
- override fun initLayoutView(): Int = R.layout.activity_face_detect
+ override fun initViewBinding(): ActivityFaceDetectBinding {
+ return ActivityFaceDetectBinding.inflate(layoutInflater)
+ }
override fun setupTopBarLayout() {
ImmersionBar.with(this).statusBarDarkFont(false).statusBarColor(R.color.mainThemeColor)
.init()
- initLayoutImmersionBar(rootView)
+ initLayoutImmersionBar(binding.rootView)
- leftBackView.setOnClickListener { finish() }
- titleView.text = "入场申请人脸采集"
+ binding.titleInclude.leftBackView.setOnClickListener { finish() }
+ binding.titleInclude.titleView.text = "入场申请人脸采集"
}
- override fun initData(savedInstanceState: Bundle?) {
+ override fun initOnCreate(savedInstanceState: Bundle?) {
//调节屏幕亮度最大
window.setScreenBrightness(WindowManager.LayoutParams.BRIGHTNESS_OVERRIDE_FULL)
@@ -137,7 +134,7 @@
imageAnalysis,
cameraPreViewBuilder
)
- cameraPreViewBuilder.setSurfaceProvider(cameraPreView.surfaceProvider)
+ cameraPreViewBuilder.setSurfaceProvider(binding.cameraPreView.surfaceProvider)
observeCameraState(camera.cameraInfo)
} catch (e: Exception) {
e.printStackTrace()
@@ -196,7 +193,7 @@
* */
private val callback = Handler.Callback {
if (it.what == 2022071401) {
- faceDetectTipsView.text = "人脸特征采集中,请勿晃动手机"
+ binding.faceDetectTipsView.text = "人脸特征采集中,请勿晃动手机"
val fileOptions = ImageCapture.OutputFileOptions.Builder(createImageFile()).build()
imageCapture.takePicture(fileOptions, cameraExecutor,
object : ImageCapture.OnImageSavedCallback {
diff --git a/app/src/main/java/com/casic/br/operationsite/view/HikVisionActivity.kt b/app/src/main/java/com/casic/br/operationsite/view/HikVisionActivity.kt
index 2af6cf4..c1a8400 100644
--- a/app/src/main/java/com/casic/br/operationsite/view/HikVisionActivity.kt
+++ b/app/src/main/java/com/casic/br/operationsite/view/HikVisionActivity.kt
@@ -14,6 +14,7 @@
import android.view.SurfaceHolder
import androidx.lifecycle.ViewModelProvider
import com.casic.br.operationsite.R
+import com.casic.br.operationsite.databinding.ActivityHikvisionBinding
import com.casic.br.operationsite.extensions.getChannel
import com.casic.br.operationsite.extensions.initLayoutImmersionBar
import com.casic.br.operationsite.extensions.reformatFloatArray
@@ -33,18 +34,8 @@
import com.pengxh.kt.lite.extensions.getSystemService
import com.pengxh.kt.lite.extensions.show
import com.pengxh.kt.lite.widget.dialog.BottomActionSheet
-import kotlinx.android.synthetic.main.activity_hikvision.configButton
-import kotlinx.android.synthetic.main.activity_hikvision.configSelectView
-import kotlinx.android.synthetic.main.activity_hikvision.netSelectView
-import kotlinx.android.synthetic.main.activity_hikvision.regionView
-import kotlinx.android.synthetic.main.activity_hikvision.rootView
-import kotlinx.android.synthetic.main.activity_hikvision.steeringWheelView
-import kotlinx.android.synthetic.main.activity_hikvision.videoSurfaceView
-import kotlinx.android.synthetic.main.include_option_title.leftBackView
-import kotlinx.android.synthetic.main.include_option_title.rightOptionView
-import kotlinx.android.synthetic.main.include_option_title.titleView
-class HikVisionActivity : KotlinBaseActivity(), SurfaceHolder.Callback {
+class HikVisionActivity : KotlinBaseActivity(), SurfaceHolder.Callback {
private val kTag = "HikVisionActivity"
private val context = this@HikVisionActivity
@@ -66,27 +57,29 @@
//手指是否已经从方向控制盘抬起
private var isActionUp = true
- override fun initLayoutView(): Int = R.layout.activity_hikvision
+ override fun initViewBinding(): ActivityHikvisionBinding {
+ return ActivityHikvisionBinding.inflate(layoutInflater)
+ }
override fun setupTopBarLayout() {
ImmersionBar.with(this).statusBarDarkFont(false)
.statusBarColor(R.color.mainThemeColor).init()
- initLayoutImmersionBar(rootView)
+ initLayoutImmersionBar(binding.rootView)
- titleView.text = "摄像头参数"
- rightOptionView.text = "重画"
- rightOptionView.setOnClickListener {
- regionView.clearRoutePath()
+ binding.titleInclude.titleView.text = "摄像头参数"
+ binding.titleInclude.rightOptionView.text = "重画"
+ binding.titleInclude.rightOptionView.setOnClickListener {
+ binding.regionView.clearRoutePath()
}
}
- override fun initData(savedInstanceState: Bundle?) {
+ override fun initOnCreate(savedInstanceState: Bundle?) {
RuntimeCache.deviceModels.forEach {
if (it.deviceType == DeviceType.CAMERA) {
cameraItems.add("${it.host}:${it.port}")
}
}
- configSelectView.text = cameraItems[0]
+ binding.configSelectView.text = cameraItems[0]
//获取wifi列表
wifiSsids.clear()
@@ -111,7 +104,7 @@
}
override fun initEvent() {
- leftBackView.setOnClickListener { finish() }
+ binding.titleInclude.leftBackView.setOnClickListener { finish() }
val bottomActionSheet = BottomActionSheet.Builder()
.setContext(this)
@@ -119,19 +112,19 @@
.setItemTextColor(R.color.mainThemeColor.convertColor(this))
.setOnActionSheetListener(object : BottomActionSheet.OnActionSheetListener {
override fun onActionItemClick(position: Int) {
- configSelectView.text = cameraItems[position]
+ binding.configSelectView.text = cameraItems[position]
}
}).build()
- configSelectView.setOnClickListener { bottomActionSheet.show() }
+ binding.configSelectView.setOnClickListener { bottomActionSheet.show() }
- netSelectView.setOnClickListener {
+ binding.netSelectView.setOnClickListener {
BottomActionSheet.Builder()
.setContext(this)
.setActionItemTitle(wifiSsids)
.setItemTextColor(R.color.mainThemeColor.convertColor(this))
.setOnActionSheetListener(object : BottomActionSheet.OnActionSheetListener {
override fun onActionItemClick(position: Int) {
- netSelectView.text = wifiSsids[position]
+ binding.netSelectView.text = wifiSsids[position]
//连接wifi
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {
@@ -155,12 +148,13 @@
}).build().show()
}
- steeringWheelView.setOnWheelTouchListener(object : SteeringWheelView.OnWheelTouchListener {
+ binding.steeringWheelView.setOnWheelTouchListener(object :
+ SteeringWheelView.OnWheelTouchListener {
override fun onCenterClicked() {
if (isPreviewSuccess) {
closeHikVisionCamera()
} else {
- val split = configSelectView.text.split(":")
+ val split = binding.configSelectView.text.split(":")
openHikVisionCamera(split[0], split[1])
}
}
@@ -199,14 +193,17 @@
hkSDK.NET_DVR_PTZControl(previewHandle, PTZCommand.PAN_LEFT, 1)
isActionUp = true
}
+
SteeringWheelView.Direction.TOP -> {
hkSDK.NET_DVR_PTZControl(previewHandle, PTZCommand.TILT_UP, 1)
isActionUp = true
}
+
SteeringWheelView.Direction.RIGHT -> {
hkSDK.NET_DVR_PTZControl(previewHandle, PTZCommand.PAN_RIGHT, 1)
isActionUp = true
}
+
SteeringWheelView.Direction.BOTTOM -> {
hkSDK.NET_DVR_PTZControl(previewHandle, PTZCommand.TILT_DOWN, 1)
isActionUp = true
@@ -215,8 +212,8 @@
}
})
- configButton.setOnClickListener {
- val region = regionView.getConfirmedPoints()
+ binding.configButton.setOnClickListener {
+ val region = binding.regionView.getConfirmedPoints()
val data = region.reformatFloatArray()
//发送数据的时候需要断开视频
@@ -301,7 +298,7 @@
strutPlayInfo.lChannel = selectChannel
strutPlayInfo.dwStreamType = 1
strutPlayInfo.bBlocked = 1
- strutPlayInfo.hHwnd = videoSurfaceView.holder
+ strutPlayInfo.hHwnd = binding.videoSurfaceView.holder
previewHandle = SDKGuider.g_sdkGuider.m_comPreviewGuider.RealPlay_V40_jni(
returnUserID, strutPlayInfo, null
)
@@ -322,7 +319,7 @@
}
override fun surfaceCreated(holder: SurfaceHolder) {
- videoSurfaceView.holder.setFormat(PixelFormat.TRANSLUCENT)
+ binding.videoSurfaceView.holder.setFormat(PixelFormat.TRANSLUCENT)
if (-1 == previewHandle) {
return
}
diff --git a/app/src/main/java/com/casic/br/operationsite/view/LoginActivity.kt b/app/src/main/java/com/casic/br/operationsite/view/LoginActivity.kt
index f0b8082..47a2e14 100644
--- a/app/src/main/java/com/casic/br/operationsite/view/LoginActivity.kt
+++ b/app/src/main/java/com/casic/br/operationsite/view/LoginActivity.kt
@@ -2,7 +2,7 @@
import android.os.Bundle
import androidx.lifecycle.ViewModelProvider
-import com.casic.br.operationsite.R
+import com.casic.br.operationsite.databinding.ActivityLoginBinding
import com.casic.br.operationsite.extensions.initLayoutImmersionBar
import com.casic.br.operationsite.utils.AuthenticationHelper
import com.casic.br.operationsite.utils.LoadingDialogHub
@@ -17,25 +17,30 @@
import com.pengxh.kt.lite.extensions.show
import com.pengxh.kt.lite.utils.SaveKeyValues
import com.pengxh.kt.lite.vm.LoadState
-import kotlinx.android.synthetic.main.activity_login.*
-class LoginActivity : KotlinBaseActivity() {
+class LoginActivity : KotlinBaseActivity() {
private lateinit var authenticateViewModel: AuthenticateViewModel
private lateinit var loginViewModel: LoginViewModel
private lateinit var userDetailViewModel: UserDetailViewModel
- override fun initLayoutView(): Int = R.layout.activity_login
+ override fun initViewBinding(): ActivityLoginBinding {
+ return ActivityLoginBinding.inflate(layoutInflater)
+ }
override fun setupTopBarLayout() {
ImmersionBar.with(this).statusBarDarkFont(true).init()
- initLayoutImmersionBar(rootView)
+ initLayoutImmersionBar(binding.rootView)
}
- override fun initData(savedInstanceState: Bundle?) {
+ override fun initOnCreate(savedInstanceState: Bundle?) {
// 设置默认账号密码
- userNameView.setText(SaveKeyValues.getValue(LocaleConstant.ACCOUNT, "") as String)
- userPasswordView.setText(SaveKeyValues.getValue(LocaleConstant.PASSWORD, "") as String)
+ binding.userNameView.setText(SaveKeyValues.getValue(LocaleConstant.ACCOUNT, "") as String)
+ binding.userPasswordView.setText(
+ SaveKeyValues.getValue(
+ LocaleConstant.PASSWORD, ""
+ ) as String
+ )
authenticateViewModel = ViewModelProvider(this)[AuthenticateViewModel::class.java]
loginViewModel = ViewModelProvider(this)[LoginViewModel::class.java]
userDetailViewModel = ViewModelProvider(this)[UserDetailViewModel::class.java]
@@ -51,9 +56,9 @@
}
override fun initEvent() {
- loginButton.setOnClickListener {
- val account = userNameView.text.toString().trim()
- val userPassword = userPasswordView.text.toString().trim()
+ binding.loginButton.setOnClickListener {
+ val account = binding.userNameView.text.toString().trim()
+ val userPassword = binding.userPasswordView.text.toString().trim()
if (account.isBlank()) {
"用户名不能为空".show(this)
return@setOnClickListener
@@ -75,8 +80,8 @@
AuthenticationHelper.savePublicKey(keyString)
val publicKey = RSAUtils.keyStrToPublicKey(keyString)
- val account = userNameView.text.toString()
- val userPassword = userPasswordView.text.toString()
+ val account = binding.userNameView.text.toString()
+ val userPassword = binding.userPasswordView.text.toString()
val dataByPublicKey = RSAUtils.encryptDataByPublicKey(
userPassword.toByteArray(), publicKey!!
)
diff --git a/app/src/main/java/com/casic/br/operationsite/view/MainActivity.kt b/app/src/main/java/com/casic/br/operationsite/view/MainActivity.kt
index 4ed70ac..4ff871c 100644
--- a/app/src/main/java/com/casic/br/operationsite/view/MainActivity.kt
+++ b/app/src/main/java/com/casic/br/operationsite/view/MainActivity.kt
@@ -5,6 +5,7 @@
import androidx.viewpager.widget.ViewPager
import com.casic.br.operationsite.R
import com.casic.br.operationsite.adapter.ViewPagerAdapter
+import com.casic.br.operationsite.databinding.ActivityMainBinding
import com.casic.br.operationsite.extensions.initLayoutImmersionBar
import com.casic.br.operationsite.fragment.CompletedFragment
import com.casic.br.operationsite.fragment.NotStartFragment
@@ -15,10 +16,8 @@
import com.pengxh.kt.lite.base.KotlinBaseActivity
import com.pengxh.kt.lite.extensions.toJson
import com.pengxh.kt.lite.utils.BroadcastManager
-import kotlinx.android.synthetic.main.activity_main.*
-import kotlinx.android.synthetic.main.include_search_title.*
-class MainActivity : KotlinBaseActivity() {
+class MainActivity : KotlinBaseActivity() {
private val kTag = "MainActivity"
private var pageViews: MutableList = ArrayList()
@@ -29,32 +28,34 @@
pageViews.add(CompletedFragment())
}
- override fun initLayoutView(): Int = R.layout.activity_main
+ override fun initViewBinding(): ActivityMainBinding {
+ return ActivityMainBinding.inflate(layoutInflater)
+ }
+
override fun setupTopBarLayout() {
- ImmersionBar.with(this).statusBarDarkFont(false)
- .statusBarColor(R.color.mainThemeColor).init()
- initLayoutImmersionBar(rootView)
+ ImmersionBar.with(this).statusBarDarkFont(false).statusBarColor(R.color.mainThemeColor)
+ .init()
+ initLayoutImmersionBar(binding.rootView)
- searchTextView.setOnClickListener {
+ binding.titleInclude.searchTextView.setOnClickListener {
// 需要根据当前所在Page查询数据
val dataModel = BroadcastDataModel()
- dataModel.currentPage = mainViewPager.currentItem
- dataModel.keywords = searchInputView.text.toString()
+ dataModel.currentPage = binding.mainViewPager.currentItem
+ dataModel.keywords = binding.titleInclude.searchInputView.text.toString()
- BroadcastManager
- .obtainInstance(this)
+ BroadcastManager.obtainInstance(this)
.sendBroadcast(LocaleConstant.SEARCH_ACTION, dataModel.toJson())
}
}
- override fun initData(savedInstanceState: Bundle?) {
- mainViewPager.adapter = ViewPagerAdapter(pageViews, supportFragmentManager)
- mainViewPager.offscreenPageLimit = pageViews.size //缓存页数
+ override fun initOnCreate(savedInstanceState: Bundle?) {
+ binding.mainViewPager.adapter = ViewPagerAdapter(pageViews, supportFragmentManager)
+ binding.mainViewPager.offscreenPageLimit = pageViews.size //缓存页数
//默认显示实施中页面
- mainViewPager.currentItem = 1
- segmentedGroup.check(segmentedGroup.getChildAt(1).id)
+ binding.mainViewPager.currentItem = 1
+ binding.segmentedGroup.check(binding.segmentedGroup.getChildAt(1).id)
}
override fun observeRequestState() {
@@ -62,15 +63,15 @@
}
override fun initEvent() {
- segmentedGroup.setOnCheckedChangeListener { _, checkedId ->
+ binding.segmentedGroup.setOnCheckedChangeListener { _, checkedId ->
when (checkedId) {
- R.id.notStartButton -> mainViewPager.currentItem = 0
- R.id.workingButton -> mainViewPager.currentItem = 1
- R.id.completedButton -> mainViewPager.currentItem = 2
+ R.id.notStartButton -> binding.mainViewPager.currentItem = 0
+ R.id.workingButton -> binding.mainViewPager.currentItem = 1
+ R.id.completedButton -> binding.mainViewPager.currentItem = 2
}
}
- mainViewPager.addOnPageChangeListener(object : ViewPager.OnPageChangeListener {
+ binding.mainViewPager.addOnPageChangeListener(object : ViewPager.OnPageChangeListener {
override fun onPageScrollStateChanged(state: Int) {
}
@@ -82,7 +83,7 @@
}
override fun onPageSelected(position: Int) {
- segmentedGroup.check(segmentedGroup.getChildAt(position).id)
+ binding.segmentedGroup.check(binding.segmentedGroup.getChildAt(position).id)
}
})
}
diff --git a/app/src/main/java/com/casic/br/operationsite/view/MethaneActivity.kt b/app/src/main/java/com/casic/br/operationsite/view/MethaneActivity.kt
index 1b53f7e..e5c034e 100644
--- a/app/src/main/java/com/casic/br/operationsite/view/MethaneActivity.kt
+++ b/app/src/main/java/com/casic/br/operationsite/view/MethaneActivity.kt
@@ -12,6 +12,7 @@
import android.os.Message
import androidx.lifecycle.ViewModelProvider
import com.casic.br.operationsite.R
+import com.casic.br.operationsite.databinding.ActivityMethaneBinding
import com.casic.br.operationsite.extensions.createCloseLightCommand
import com.casic.br.operationsite.extensions.createOpenLightCommand
import com.casic.br.operationsite.extensions.createStartCommand
@@ -33,20 +34,8 @@
import com.pengxh.kt.lite.utils.SaveKeyValues
import com.pengxh.kt.lite.utils.WeakReferenceHandler
import com.pengxh.kt.lite.widget.dialog.BottomActionSheet
-import kotlinx.android.synthetic.main.activity_methane.addressView
-import kotlinx.android.synthetic.main.activity_methane.configButton
-import kotlinx.android.synthetic.main.activity_methane.configSelectView
-import kotlinx.android.synthetic.main.activity_methane.connectButton
-import kotlinx.android.synthetic.main.activity_methane.netSelectView
-import kotlinx.android.synthetic.main.activity_methane.rootView
-import kotlinx.android.synthetic.main.activity_methane.steeringWheelView
-import kotlinx.android.synthetic.main.activity_methane.tcpStateView
-import kotlinx.android.synthetic.main.activity_methane.thresholdView
-import kotlinx.android.synthetic.main.activity_methane.warningSwitch
-import kotlinx.android.synthetic.main.include_base_title.leftBackView
-import kotlinx.android.synthetic.main.include_base_title.titleView
-class MethaneActivity : KotlinBaseActivity(), Handler.Callback {
+class MethaneActivity : KotlinBaseActivity(), Handler.Callback {
companion object {
lateinit var weakReferenceHandler: WeakReferenceHandler
@@ -67,7 +56,11 @@
//手指是否已经从方向控制盘抬起
private var isActionUp = true
- override fun initData(savedInstanceState: Bundle?) {
+ override fun initViewBinding(): ActivityMethaneBinding {
+ return ActivityMethaneBinding.inflate(layoutInflater)
+ }
+
+ override fun initOnCreate(savedInstanceState: Bundle?) {
weakReferenceHandler = WeakReferenceHandler(this)
RuntimeCache.deviceModels.forEach {
@@ -75,7 +68,7 @@
gasTreeItems.add("${it.host}:${it.port}")
}
}
- configSelectView.text = gasTreeItems[0]
+ binding.configSelectView.text = gasTreeItems[0]
//获取wifi列表
wifiSsids.clear()
@@ -89,15 +82,15 @@
deviceViewModel = ViewModelProvider(this)[DeviceViewModel::class.java]
alarmViewModel = ViewModelProvider(this)[AlarmViewModel::class.java]
alarmViewModel.alarmState.observe(this) {
- warningSwitch.isChecked = it == "1"
+ binding.warningSwitch.isChecked = it == "1"
}
alarmViewModel.getAlarmState()
- val gasParam = configSelectView.text.toString().splitGasParam()
+ val gasParam = binding.configSelectView.text.toString().splitGasParam()
deviceViewModel.getMethaneThreshold(gasParam[0], gasParam[1])
deviceViewModel.thresholdResult.observe(this) {
if (it.code == 200) {
- thresholdView.setText(it.data)
+ binding.thresholdView.setText(it.data)
}
}
deviceViewModel.setThresholdResult.observe(this) {
@@ -109,13 +102,13 @@
override fun handleMessage(msg: Message): Boolean {
if (msg.what == 2023072101) {
- tcpStateView.setBackgroundColor(R.color.greenColor.convertColor(this))
- connectButton.isEnabled = false
- addressView.isEnabled = false
+ binding.tcpStateView.setBackgroundColor(R.color.greenColor.convertColor(this))
+ binding.connectButton.isEnabled = false
+ binding.addressView.isEnabled = false
} else if (msg.what == 2023072102) {
- tcpStateView.setBackgroundColor(R.color.redTextColor.convertColor(this))
- connectButton.isEnabled = true
- addressView.isEnabled = true
+ binding.tcpStateView.setBackgroundColor(R.color.redTextColor.convertColor(this))
+ binding.connectButton.isEnabled = true
+ binding.addressView.isEnabled = true
}
return true
}
@@ -123,57 +116,52 @@
override fun onResume() {
super.onResume()
val host = SaveKeyValues.getValue(LocaleConstant.TCP_HOST, "192.168.10.139").toString()
- addressView.setText(host)
+ binding.addressView.setText(host)
}
override fun initEvent() {
- leftBackView.setOnClickListener { finish() }
+ binding.titleInclude.leftBackView.setOnClickListener { finish() }
//连接TCP
- connectButton.setOnClickListener {
- if (addressView.text.isNullOrBlank()) {
+ binding.connectButton.setOnClickListener {
+ if (binding.addressView.text.isNullOrBlank()) {
"请输入正确的指令地址".show(this)
return@setOnClickListener
}
- val value = addressView.text.toString()
+ val value = binding.addressView.text.toString()
SaveKeyValues.putValue(LocaleConstant.TCP_HOST, value)
SocketManager.get.connectNetty(value, LocaleConstant.TCP_PORT)
}
- val bottomActionSheet = BottomActionSheet.Builder()
- .setContext(this)
- .setActionItemTitle(gasTreeItems)
- .setItemTextColor(R.color.mainThemeColor.convertColor(this))
- .setOnActionSheetListener(object : BottomActionSheet.OnActionSheetListener {
- override fun onActionItemClick(position: Int) {
- configSelectView.text = gasTreeItems[position]
- }
- }).build()
- configSelectView.setOnClickListener { bottomActionSheet.show() }
-
- netSelectView.setOnClickListener {
- BottomActionSheet.Builder()
- .setContext(this)
- .setActionItemTitle(wifiSsids)
+ val bottomActionSheet =
+ BottomActionSheet.Builder().setContext(this).setActionItemTitle(gasTreeItems)
.setItemTextColor(R.color.mainThemeColor.convertColor(this))
.setOnActionSheetListener(object : BottomActionSheet.OnActionSheetListener {
override fun onActionItemClick(position: Int) {
- netSelectView.text = wifiSsids[position]
+ binding.configSelectView.text = gasTreeItems[position]
+ }
+ }).build()
+ binding.configSelectView.setOnClickListener { bottomActionSheet.show() }
+
+ binding.netSelectView.setOnClickListener {
+ BottomActionSheet.Builder().setContext(this).setActionItemTitle(wifiSsids)
+ .setItemTextColor(R.color.mainThemeColor.convertColor(this))
+ .setOnActionSheetListener(object : BottomActionSheet.OnActionSheetListener {
+ override fun onActionItemClick(position: Int) {
+ binding.netSelectView.text = wifiSsids[position]
//连接wifi
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {
- val specifier = WifiNetworkSpecifier.Builder()
- .setSsid(wifiSsids[position])
- .setWpa2Passphrase(LocaleConstant.WIFI_PASSWORD)
- .build()
+ val specifier =
+ WifiNetworkSpecifier.Builder().setSsid(wifiSsids[position])
+ .setWpa2Passphrase(LocaleConstant.WIFI_PASSWORD).build()
val request = NetworkRequest.Builder()
.addTransportType(NetworkCapabilities.TRANSPORT_WIFI)
.removeCapability(NetworkCapabilities.NET_CAPABILITY_INTERNET)
- .setNetworkSpecifier(specifier)
- .build()
+ .setNetworkSpecifier(specifier).build()
connectivityManager = context.getSystemService()
connectivityManager?.requestNetwork(request, networkCallback)
@@ -182,27 +170,28 @@
}).build().show()
}
- warningSwitch.setOnClickListener {
- val gasParam = configSelectView.text.toString().splitGasParam()
- if (warningSwitch.isChecked) {
+ binding.warningSwitch.setOnClickListener {
+ val gasParam = binding.configSelectView.text.toString().splitGasParam()
+ if (binding.warningSwitch.isChecked) {
alarmViewModel.changeAlarmState(gasParam[0], "1")
} else {
alarmViewModel.changeAlarmState(gasParam[0], "0")
}
}
- configButton.setOnClickListener {
- if (thresholdView.text.isNullOrBlank()) {
+ binding.configButton.setOnClickListener {
+ if (binding.thresholdView.text.isNullOrBlank()) {
"阈值不能设置为空".show(this)
return@setOnClickListener
}
- val gasParam = configSelectView.text.toString().splitGasParam()
+ val gasParam = binding.configSelectView.text.toString().splitGasParam()
deviceViewModel.setMethaneThreshold(
- gasParam[0], gasParam[1], thresholdView.text.toString()
+ gasParam[0], gasParam[1], binding.thresholdView.text.toString()
)
}
- steeringWheelView.setOnWheelTouchListener(object : SteeringWheelView.OnWheelTouchListener {
+ binding.steeringWheelView.setOnWheelTouchListener(object :
+ SteeringWheelView.OnWheelTouchListener {
override fun onCenterClicked() {
clickCount++
if (clickCount % 2 == 0) {
@@ -266,18 +255,16 @@
}
}
- override fun initLayoutView(): Int = R.layout.activity_methane
-
override fun observeRequestState() {
}
override fun setupTopBarLayout() {
- ImmersionBar.with(this).statusBarDarkFont(false)
- .statusBarColor(R.color.mainThemeColor).init()
- initLayoutImmersionBar(rootView)
+ ImmersionBar.with(this).statusBarDarkFont(false).statusBarColor(R.color.mainThemeColor)
+ .init()
+ initLayoutImmersionBar(binding.rootView)
- titleView.text = "云台参数"
+ binding.titleInclude.titleView.text = "云台参数"
}
override fun onDestroy() {
diff --git a/app/build.gradle b/app/build.gradle
index d3ec387..9b32fed 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -2,12 +2,11 @@
apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
-apply plugin: 'kotlin-android-extensions'
android {
signingConfigs {
release {
- storeFile file('/Users/a203/Desktop/AndroidProjects/OperationSite/app/OperationSite.jks')
+ storeFile file('OperationSite.jks')
storePassword '123456789'
keyAlias 'key0'
keyPassword '123456789'
@@ -54,6 +53,7 @@
coroutines 'enable'
}
}
+
viewBinding {
enabled true
}
@@ -73,7 +73,7 @@
dependencies {
implementation fileTree(include: ['*.jar'], dir: 'libs')
//基础依赖库
- implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.0.4.9'
+ implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.0.5'
implementation 'androidx.appcompat:appcompat:1.6.1'
implementation 'androidx.core:core-ktx:1.9.0'
implementation 'com.google.android.material:material:1.6.1'
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index f1a68ec..cde8f45 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -80,7 +80,7 @@
+ android:value="d26ed926cccc5042898237679d65ae26" />
() {
private lateinit var weakReferenceHandler: WeakReferenceHandler
private lateinit var workingListAdapter: NormalRecyclerAdapter
@@ -44,13 +44,17 @@
private var isLoadMore = false
private var keywords = ""
- override fun initLayoutView(): Int = R.layout.fragment_completed
+ override fun initViewBinding(
+ inflater: LayoutInflater, container: ViewGroup?
+ ): FragmentCompletedBinding {
+ return FragmentCompletedBinding.inflate(inflater, container, false)
+ }
override fun setupTopBarLayout() {
}
- override fun initData(savedInstanceState: Bundle?) {
+ override fun initOnCreate(savedInstanceState: Bundle?) {
weakReferenceHandler = WeakReferenceHandler(callback)
workSiteViewModel = ViewModelProvider(this)[WorkSiteViewModel::class.java]
workSiteViewModel.worksiteModel.observe(this) {
@@ -59,7 +63,7 @@
when {
isRefresh -> {
workingListAdapter.setRefreshData(dataRows)
- completedRefreshLayout.finishRefresh()
+ binding.completedRefreshLayout.finishRefresh()
isRefresh = false
}
@@ -68,7 +72,7 @@
"到底了,别拉了".show(requireContext())
}
workingListAdapter.setLoadMoreData(dataRows)
- completedRefreshLayout.finishLoadMore()
+ binding.completedRefreshLayout.finishLoadMore()
isLoadMore = false
}
@@ -104,13 +108,13 @@
}
override fun initEvent() {
- completedRefreshLayout.setOnRefreshListener {
+ binding.completedRefreshLayout.setOnRefreshListener {
isRefresh = true
//刷新之后页码重置
pageIndex = 1
obtainProjectListByPage()
}
- completedRefreshLayout.setOnLoadMoreListener {
+ binding.completedRefreshLayout.setOnLoadMoreListener {
isLoadMore = true
pageIndex++
obtainProjectListByPage()
@@ -124,12 +128,12 @@
private val callback = Handler.Callback {
if (it.what == 2022071502) {
if (dataBeans.size == 0) {
- emptyView.showEmptyPage {
+ binding.emptyInclude.emptyView.showEmptyPage {
pageIndex = 1
obtainProjectListByPage()
}
} else {
- emptyView.hide()
+ binding.emptyInclude.emptyView.hide()
workingListAdapter = object :
NormalRecyclerAdapter(
R.layout.item_working_rv, dataBeans
@@ -155,10 +159,10 @@
.setText(R.id.workSiteView, "现场描述:${item.workSiteDesc}")
}
}
- completedRecyclerView.addItemDecoration(
+ binding.completedRecyclerView.addItemDecoration(
ItemDecoration(95f.dp2px(requireContext()).toFloat(), 0f)
)
- completedRecyclerView.adapter = workingListAdapter
+ binding.completedRecyclerView.adapter = workingListAdapter
workingListAdapter.setOnItemClickedListener(object :
NormalRecyclerAdapter.OnItemClickedListener {
override fun onItemClicked(
diff --git a/app/src/main/java/com/casic/br/operationsite/fragment/NotStartFragment.kt b/app/src/main/java/com/casic/br/operationsite/fragment/NotStartFragment.kt
index e927d86..a1776fb 100644
--- a/app/src/main/java/com/casic/br/operationsite/fragment/NotStartFragment.kt
+++ b/app/src/main/java/com/casic/br/operationsite/fragment/NotStartFragment.kt
@@ -5,8 +5,11 @@
import android.content.Intent
import android.os.Bundle
import android.os.Handler
+import android.view.LayoutInflater
+import android.view.ViewGroup
import androidx.lifecycle.ViewModelProvider
import com.casic.br.operationsite.R
+import com.casic.br.operationsite.databinding.FragmentNotStartBinding
import com.casic.br.operationsite.extensions.combineImagePath
import com.casic.br.operationsite.extensions.showEmptyPage
import com.casic.br.operationsite.model.BroadcastDataModel
@@ -26,11 +29,8 @@
import com.pengxh.kt.lite.utils.BroadcastManager
import com.pengxh.kt.lite.utils.Constant
import com.pengxh.kt.lite.utils.WeakReferenceHandler
-import kotlinx.android.synthetic.main.fragment_not_start.notStartRecyclerView
-import kotlinx.android.synthetic.main.fragment_not_start.notStartRefreshLayout
-import kotlinx.android.synthetic.main.include_empty_view.emptyView
-class NotStartFragment : KotlinBaseFragment() {
+class NotStartFragment : KotlinBaseFragment() {
private lateinit var weakReferenceHandler: WeakReferenceHandler
private lateinit var workingListAdapter: NormalRecyclerAdapter
@@ -44,13 +44,17 @@
private var isLoadMore = false
private var keywords = ""
- override fun initLayoutView(): Int = R.layout.fragment_not_start
+ override fun initViewBinding(
+ inflater: LayoutInflater, container: ViewGroup?
+ ): FragmentNotStartBinding {
+ return FragmentNotStartBinding.inflate(inflater, container, false)
+ }
override fun setupTopBarLayout() {
}
- override fun initData(savedInstanceState: Bundle?) {
+ override fun initOnCreate(savedInstanceState: Bundle?) {
weakReferenceHandler = WeakReferenceHandler(callback)
workSiteViewModel = ViewModelProvider(this)[WorkSiteViewModel::class.java]
workSiteViewModel.worksiteModel.observe(this) {
@@ -59,7 +63,7 @@
when {
isRefresh -> {
workingListAdapter.setRefreshData(dataRows)
- notStartRefreshLayout.finishRefresh()
+ binding.notStartRefreshLayout.finishRefresh()
isRefresh = false
}
@@ -68,7 +72,7 @@
"到底了,别拉了".show(requireContext())
}
workingListAdapter.setLoadMoreData(dataRows)
- notStartRefreshLayout.finishLoadMore()
+ binding.notStartRefreshLayout.finishLoadMore()
isLoadMore = false
}
@@ -104,13 +108,13 @@
}
override fun initEvent() {
- notStartRefreshLayout.setOnRefreshListener {
+ binding.notStartRefreshLayout.setOnRefreshListener {
isRefresh = true
//刷新之后页码重置
pageIndex = 1
obtainProjectListByPage()
}
- notStartRefreshLayout.setOnLoadMoreListener {
+ binding.notStartRefreshLayout.setOnLoadMoreListener {
isLoadMore = true
pageIndex++
obtainProjectListByPage()
@@ -124,12 +128,12 @@
private val callback = Handler.Callback {
if (it.what == 2022071501) {
if (dataBeans.size == 0) {
- emptyView.showEmptyPage {
+ binding.emptyInclude.emptyView.showEmptyPage {
pageIndex = 1
obtainProjectListByPage()
}
} else {
- emptyView.hide()
+ binding.emptyInclude.emptyView.hide()
workingListAdapter = object :
NormalRecyclerAdapter(
R.layout.item_working_rv, dataBeans
@@ -156,10 +160,10 @@
.setText(R.id.workSiteView, "现场描述:${item.workSiteDesc}")
}
}
- notStartRecyclerView.addItemDecoration(
+ binding.notStartRecyclerView.addItemDecoration(
ItemDecoration(95f.dp2px(requireContext()).toFloat(), 0f)
)
- notStartRecyclerView.adapter = workingListAdapter
+ binding.notStartRecyclerView.adapter = workingListAdapter
workingListAdapter.setOnItemClickedListener(object :
NormalRecyclerAdapter.OnItemClickedListener {
override fun onItemClicked(
diff --git a/app/src/main/java/com/casic/br/operationsite/fragment/WorkingFragment.kt b/app/src/main/java/com/casic/br/operationsite/fragment/WorkingFragment.kt
index dcb240c..09a5e1b 100644
--- a/app/src/main/java/com/casic/br/operationsite/fragment/WorkingFragment.kt
+++ b/app/src/main/java/com/casic/br/operationsite/fragment/WorkingFragment.kt
@@ -5,8 +5,11 @@
import android.content.Intent
import android.os.Bundle
import android.os.Handler
+import android.view.LayoutInflater
+import android.view.ViewGroup
import androidx.lifecycle.ViewModelProvider
import com.casic.br.operationsite.R
+import com.casic.br.operationsite.databinding.FragmentWorkingBinding
import com.casic.br.operationsite.extensions.combineImagePath
import com.casic.br.operationsite.extensions.showEmptyPage
import com.casic.br.operationsite.model.BroadcastDataModel
@@ -26,12 +29,9 @@
import com.pengxh.kt.lite.utils.BroadcastManager
import com.pengxh.kt.lite.utils.Constant
import com.pengxh.kt.lite.utils.WeakReferenceHandler
-import kotlinx.android.synthetic.main.fragment_working.workingRecyclerView
-import kotlinx.android.synthetic.main.fragment_working.workingRefreshLayout
-import kotlinx.android.synthetic.main.include_empty_view.emptyView
-class WorkingFragment : KotlinBaseFragment() {
+class WorkingFragment : KotlinBaseFragment() {
private lateinit var weakReferenceHandler: WeakReferenceHandler
private lateinit var workingListAdapter: NormalRecyclerAdapter
@@ -45,13 +45,17 @@
private var isLoadMore = false
private var keywords = ""
- override fun initLayoutView(): Int = R.layout.fragment_working
+ override fun initViewBinding(
+ inflater: LayoutInflater, container: ViewGroup?
+ ): FragmentWorkingBinding {
+ return FragmentWorkingBinding.inflate(inflater, container, false)
+ }
override fun setupTopBarLayout() {
}
- override fun initData(savedInstanceState: Bundle?) {
+ override fun initOnCreate(savedInstanceState: Bundle?) {
weakReferenceHandler = WeakReferenceHandler(callback)
workSiteViewModel = ViewModelProvider(this)[WorkSiteViewModel::class.java]
workSiteViewModel.worksiteModel.observe(this) {
@@ -60,7 +64,7 @@
when {
isRefresh -> {
workingListAdapter.setRefreshData(dataRows)
- workingRefreshLayout.finishRefresh()
+ binding.workingRefreshLayout.finishRefresh()
isRefresh = false
}
@@ -69,7 +73,7 @@
"到底了,别拉了".show(requireContext())
}
workingListAdapter.setLoadMoreData(dataRows)
- workingRefreshLayout.finishLoadMore()
+ binding.workingRefreshLayout.finishLoadMore()
isLoadMore = false
}
@@ -105,13 +109,13 @@
}
override fun initEvent() {
- workingRefreshLayout.setOnRefreshListener {
+ binding.workingRefreshLayout.setOnRefreshListener {
isRefresh = true
//刷新之后页码重置
pageIndex = 1
obtainProjectListByPage()
}
- workingRefreshLayout.setOnLoadMoreListener {
+ binding.workingRefreshLayout.setOnLoadMoreListener {
isLoadMore = true
pageIndex++
obtainProjectListByPage()
@@ -125,12 +129,12 @@
private val callback = Handler.Callback {
if (it.what == 2022071101) {
if (dataBeans.size == 0) {
- emptyView.showEmptyPage {
+ binding.emptyInclude.emptyView.showEmptyPage {
pageIndex = 1
obtainProjectListByPage()
}
} else {
- emptyView.hide()
+ binding.emptyInclude.emptyView.hide()
workingListAdapter = object :
NormalRecyclerAdapter(
R.layout.item_working_rv, dataBeans
@@ -156,10 +160,10 @@
.setText(R.id.workSiteView, "现场描述:${item.workSiteDesc}")
}
}
- workingRecyclerView.addItemDecoration(
+ binding.workingRecyclerView.addItemDecoration(
ItemDecoration(95f.dp2px(requireContext()).toFloat(), 0f)
)
- workingRecyclerView.adapter = workingListAdapter
+ binding.workingRecyclerView.adapter = workingListAdapter
workingListAdapter.setOnItemClickedListener(object :
NormalRecyclerAdapter.OnItemClickedListener {
override fun onItemClicked(
diff --git a/app/src/main/java/com/casic/br/operationsite/view/AlarmDetailActivity.kt b/app/src/main/java/com/casic/br/operationsite/view/AlarmDetailActivity.kt
index d412a6f..f45c28e 100644
--- a/app/src/main/java/com/casic/br/operationsite/view/AlarmDetailActivity.kt
+++ b/app/src/main/java/com/casic/br/operationsite/view/AlarmDetailActivity.kt
@@ -13,6 +13,7 @@
import com.bumptech.glide.Glide
import com.bumptech.glide.request.RequestOptions
import com.casic.br.operationsite.R
+import com.casic.br.operationsite.databinding.ActivityAlarmDetailBinding
import com.casic.br.operationsite.extensions.combineImagePath
import com.casic.br.operationsite.extensions.initLayoutImmersionBar
import com.casic.br.operationsite.utils.LoadingDialogHub
@@ -21,30 +22,30 @@
import com.pengxh.kt.lite.base.KotlinBaseActivity
import com.pengxh.kt.lite.utils.Constant
import com.pengxh.kt.lite.vm.LoadState
-import kotlinx.android.synthetic.main.activity_alarm_detail.*
-import kotlinx.android.synthetic.main.include_base_title.*
-class AlarmDetailActivity : KotlinBaseActivity() {
+class AlarmDetailActivity : KotlinBaseActivity() {
private lateinit var aMap: AMap
private lateinit var alarmViewModel: AlarmViewModel
private lateinit var id: String
- override fun initLayoutView(): Int = R.layout.activity_alarm_detail
+ override fun initViewBinding(): ActivityAlarmDetailBinding {
+ return ActivityAlarmDetailBinding.inflate(layoutInflater)
+ }
override fun setupTopBarLayout() {
ImmersionBar.with(this).statusBarDarkFont(false)
.statusBarColor(R.color.mainThemeColor).init()
- initLayoutImmersionBar(rootView)
+ initLayoutImmersionBar(binding.rootView)
- leftBackView.setOnClickListener { finish() }
- titleView.text = "燃气作业现场动态感知"
+ binding.titleInclude.leftBackView.setOnClickListener { finish() }
+ binding.titleInclude.titleView.text = "燃气作业现场动态感知"
}
- override fun initData(savedInstanceState: Bundle?) {
+ override fun initOnCreate(savedInstanceState: Bundle?) {
this.id = intent.getStringExtra(Constant.INTENT_PARAM)!!
- aMap = mapView.map
+ aMap = binding.mapView.map
aMap.mapType = AMap.MAP_TYPE_NORMAL
val uiSettings = aMap.uiSettings
uiSettings.isCompassEnabled = true
@@ -96,9 +97,9 @@
Glide.with(this)
.load(detailData.illegalAvatar.combineImagePath())
.apply(RequestOptions().placeholder(R.mipmap.load_image_error))
- .into(avatarView)
- timeView.text = detailData.createTime
- descriptionView.text = detailData.alarmDescription
+ .into(binding.avatarView)
+ binding.timeView.text = detailData.createTime
+ binding.descriptionView.text = detailData.alarmDescription
}
}
}
@@ -114,26 +115,26 @@
/**地图相关*********/
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
- mapView.onCreate(savedInstanceState)
+ binding.mapView.onCreate(savedInstanceState)
}
override fun onResume() {
super.onResume()
- mapView.onResume()
+ binding.mapView.onResume()
}
override fun onPause() {
super.onPause()
- mapView.onPause()
+ binding.mapView.onPause()
}
override fun onDestroy() {
- mapView.onDestroy()
+ binding.mapView.onDestroy()
super.onDestroy()
}
override fun onSaveInstanceState(outState: Bundle) {
super.onSaveInstanceState(outState)
- mapView.onSaveInstanceState(outState)
+ binding.mapView.onSaveInstanceState(outState)
}
}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/br/operationsite/view/AlarmListActivity.kt b/app/src/main/java/com/casic/br/operationsite/view/AlarmListActivity.kt
index 2a25cd0..a601bde 100644
--- a/app/src/main/java/com/casic/br/operationsite/view/AlarmListActivity.kt
+++ b/app/src/main/java/com/casic/br/operationsite/view/AlarmListActivity.kt
@@ -6,6 +6,7 @@
import androidx.lifecycle.ViewModelProvider
import androidx.recyclerview.widget.DividerItemDecoration
import com.casic.br.operationsite.R
+import com.casic.br.operationsite.databinding.ActivityAlarmListBinding
import com.casic.br.operationsite.extensions.combineImagePath
import com.casic.br.operationsite.extensions.formatToDate
import com.casic.br.operationsite.extensions.initLayoutImmersionBar
@@ -23,11 +24,8 @@
import com.pengxh.kt.lite.extensions.show
import com.pengxh.kt.lite.utils.WeakReferenceHandler
import com.pengxh.kt.lite.vm.LoadState
-import kotlinx.android.synthetic.main.activity_alarm_list.*
-import kotlinx.android.synthetic.main.include_empty_view.*
-import kotlinx.android.synthetic.main.include_search_title.*
-class AlarmListActivity : KotlinBaseActivity() {
+class AlarmListActivity : KotlinBaseActivity() {
private lateinit var weakReferenceHandler: WeakReferenceHandler
private lateinit var alarmListAdapter: NormalRecyclerAdapter
@@ -38,22 +36,24 @@
private var isLoadMore = false
private var keywords = ""
- override fun initLayoutView(): Int = R.layout.activity_alarm_list
+ override fun initViewBinding(): ActivityAlarmListBinding {
+ return ActivityAlarmListBinding.inflate(layoutInflater)
+ }
override fun setupTopBarLayout() {
ImmersionBar.with(this).statusBarDarkFont(false)
.statusBarColor(R.color.mainThemeColor).init()
- initLayoutImmersionBar(rootView)
+ initLayoutImmersionBar(binding.rootView)
- searchTextView.setOnClickListener {
- keywords = searchInputView.text.toString()
+ binding.titleInclude.searchTextView.setOnClickListener {
+ keywords = binding.titleInclude.searchInputView.text.toString()
pageIndex = 1
obtainAlarmListByPage()
}
}
- override fun initData(savedInstanceState: Bundle?) {
+ override fun initOnCreate(savedInstanceState: Bundle?) {
weakReferenceHandler = WeakReferenceHandler(callback)
alarmViewModel = ViewModelProvider(this)[AlarmViewModel::class.java]
}
@@ -75,13 +75,13 @@
}
override fun initEvent() {
- alarmRefreshLayout.setOnRefreshListener {
+ binding.alarmRefreshLayout.setOnRefreshListener {
isRefresh = true
//刷新之后页码重置
pageIndex = 1
obtainAlarmListByPage()
}
- alarmRefreshLayout.setOnLoadMoreListener {
+ binding.alarmRefreshLayout.setOnLoadMoreListener {
isLoadMore = true
pageIndex++
obtainAlarmListByPage()
@@ -93,17 +93,19 @@
when {
isRefresh -> {
alarmListAdapter.setRefreshData(dataRows)
- alarmRefreshLayout.finishRefresh()
+ binding.alarmRefreshLayout.finishRefresh()
isRefresh = false
}
+
isLoadMore -> {
if (dataRows.size == 0) {
"到底了,别拉了".show(this)
}
alarmListAdapter.setLoadMoreData(dataRows)
- alarmRefreshLayout.finishLoadMore()
+ binding.alarmRefreshLayout.finishLoadMore()
isLoadMore = false
}
+
else -> {
dataBeans = dataRows
weakReferenceHandler.sendEmptyMessage(2022071201)
@@ -120,12 +122,12 @@
private val callback = Handler.Callback {
if (it.what == 2022071201) {
if (dataBeans.size == 0) {
- emptyView.showEmptyPage {
+ binding.emptyInclude.emptyView.showEmptyPage {
pageIndex = 1
obtainAlarmListByPage()
}
} else {
- emptyView.hide()
+ binding.emptyInclude.emptyView.hide()
alarmListAdapter =
object : NormalRecyclerAdapter(
R.layout.item_alarm_rv_l, dataBeans
@@ -168,10 +170,10 @@
}
}
}
- alarmRecyclerView.addItemDecoration(
+ binding.alarmRecyclerView.addItemDecoration(
DividerItemDecoration(this, DividerItemDecoration.VERTICAL)
)
- alarmRecyclerView.adapter = alarmListAdapter
+ binding.alarmRecyclerView.adapter = alarmListAdapter
alarmListAdapter.setOnItemClickedListener(object :
NormalRecyclerAdapter.OnItemClickedListener {
override fun onItemClicked(
diff --git a/app/src/main/java/com/casic/br/operationsite/view/ApplyEnterActivity.kt b/app/src/main/java/com/casic/br/operationsite/view/ApplyEnterActivity.kt
index f538396..9e665a5 100644
--- a/app/src/main/java/com/casic/br/operationsite/view/ApplyEnterActivity.kt
+++ b/app/src/main/java/com/casic/br/operationsite/view/ApplyEnterActivity.kt
@@ -12,6 +12,7 @@
import androidx.lifecycle.ViewModelProvider
import com.casic.br.operationsite.R
import com.casic.br.operationsite.callback.OnImageCompressListener
+import com.casic.br.operationsite.databinding.ActivityApplyEnterBinding
import com.casic.br.operationsite.extensions.combineImagePath
import com.casic.br.operationsite.extensions.compressImage
import com.casic.br.operationsite.extensions.initLayoutImmersionBar
@@ -30,11 +31,9 @@
import com.pengxh.kt.lite.utils.Constant
import com.pengxh.kt.lite.vm.LoadState
import com.pengxh.kt.lite.widget.dialog.BottomActionSheet
-import kotlinx.android.synthetic.main.activity_apply_enter.*
-import kotlinx.android.synthetic.main.include_base_title.*
import java.io.File
-class ApplyEnterActivity : KotlinBaseActivity() {
+class ApplyEnterActivity : KotlinBaseActivity() {
private val kTag = "ApplyEnterActivity"
private lateinit var imageAdapter: EditableImageAdapter
@@ -45,25 +44,27 @@
private val imagePaths: ArrayList = ArrayList() //服务器返回的拍照数据集
private val realPaths: ArrayList = ArrayList() //真实图片路径
- override fun initLayoutView(): Int = R.layout.activity_apply_enter
+ override fun initViewBinding(): ActivityApplyEnterBinding {
+ return ActivityApplyEnterBinding.inflate(layoutInflater)
+ }
override fun setupTopBarLayout() {
ImmersionBar.with(this).statusBarDarkFont(false)
.statusBarColor(R.color.mainThemeColor).init()
- initLayoutImmersionBar(rootView)
+ initLayoutImmersionBar(binding.rootView)
- leftBackView.setOnClickListener { finish() }
- titleView.text = "人员信息"
+ binding.titleInclude. leftBackView.setOnClickListener { finish() }
+ binding.titleInclude. titleView.text = "人员信息"
}
- override fun initData(savedInstanceState: Bundle?) {
+ override fun initOnCreate(savedInstanceState: Bundle?) {
projectId = intent.getStringExtra(Constant.INTENT_PARAM)!!
uploadFileViewModel = ViewModelProvider(this)[UploadFileViewModel::class.java]
applyViewModel = ViewModelProvider(this)[ApplyViewModel::class.java]
imageAdapter = EditableImageAdapter(this, 1, 3f)
- addImageRecyclerView.adapter = imageAdapter
+ binding.addImageRecyclerView.adapter = imageAdapter
}
/**
@@ -104,20 +105,20 @@
}
override fun initEvent() {
- genderView.setOnClickListener {
+ binding.genderView.setOnClickListener {
BottomActionSheet.Builder()
.setContext(this)
.setActionItemTitle(LocaleConstant.GENDER)
.setItemTextColor(R.color.mainThemeColor.convertColor(this))
.setOnActionSheetListener(object : BottomActionSheet.OnActionSheetListener {
override fun onActionItemClick(position: Int) {
- genderView.text = LocaleConstant.GENDER[position]
+ binding.genderView.text = LocaleConstant.GENDER[position]
}
})
.build().show()
}
- enterReasonView.addTextChangedListener(object : TextWatcher {
+ binding.enterReasonView.addTextChangedListener(object : TextWatcher {
override fun beforeTextChanged(s: CharSequence?, start: Int, count: Int, after: Int) {
}
@@ -129,12 +130,12 @@
@SuppressLint("SetTextI18n")
override fun afterTextChanged(s: Editable?) {
val text = s.toString().trim()
- inputLengthView.text = "${text.length}/100"
+ binding.inputLengthView.text = "${text.length}/100"
if (text.length > 100) {
- inputLengthView.setTextColor(R.color.redTextColor.convertColor(context))
+ binding.inputLengthView.setTextColor(R.color.redTextColor.convertColor(context))
"入场原因不能超过100个字符".show(context)
} else {
- inputLengthView.setTextColor(R.color.subTextColor.convertColor(context))
+ binding.inputLengthView.setTextColor(R.color.subTextColor.convertColor(context))
}
}
})
@@ -187,28 +188,28 @@
}
}
- confirmApplyButton.setOnClickListener {
- if (workerNameView.text.isNullOrBlank()) {
+ binding.confirmApplyButton.setOnClickListener {
+ if (binding.workerNameView.text.isNullOrBlank()) {
"请输入入场人员姓名".show(this)
return@setOnClickListener
}
- if (ownerShipView.text.isNullOrBlank()) {
+ if (binding.ownerShipView.text.isNullOrBlank()) {
"请输入入场人员单位名称".show(this)
return@setOnClickListener
}
- if (phoneNumberView.text.isNullOrBlank()) {
+ if (binding.phoneNumberView.text.isNullOrBlank()) {
"请输入入场人员联系方式".show(this)
return@setOnClickListener
}
- if (!phoneNumberView.text.toString().isPhoneNumber()) {
+ if (!binding.phoneNumberView.text.toString().isPhoneNumber()) {
"请输入正确的联系方式".show(this)
return@setOnClickListener
}
- if (idCardView.text.isNullOrBlank()) {
+ if (binding.idCardView.text.isNullOrBlank()) {
"请输入入场人员身份证号".show(this)
return@setOnClickListener
}
@@ -218,19 +219,19 @@
projectId,
"2",
"",
- ownerShipView.text.toString(),
+ binding.ownerShipView.text.toString(),
"",
currentTime,
"",
- genderView.text.toString(),
- enterReasonView.text.toString(),
- phoneNumberView.text.toString(),
+ binding.genderView.text.toString(),
+ binding.enterReasonView.text.toString(),
+ binding.phoneNumberView.text.toString(),
currentTime,
imagePaths[0],
- idCardView.text.toString(),
+ binding.idCardView.text.toString(),
"",
"",
- workerNameView.text.toString(),
+ binding.workerNameView.text.toString(),
"0",
""
)
diff --git a/app/src/main/java/com/casic/br/operationsite/view/BigImageActivity.kt b/app/src/main/java/com/casic/br/operationsite/view/BigImageActivity.kt
index 7cf446c..a2d3dcf 100644
--- a/app/src/main/java/com/casic/br/operationsite/view/BigImageActivity.kt
+++ b/app/src/main/java/com/casic/br/operationsite/view/BigImageActivity.kt
@@ -11,22 +11,24 @@
import androidx.viewpager.widget.ViewPager
import com.bumptech.glide.Glide
import com.casic.br.operationsite.R
+import com.casic.br.operationsite.databinding.ActivityBigImageBinding
import com.luck.picture.lib.photoview.PhotoView
import com.pengxh.kt.lite.base.KotlinBaseActivity
import com.pengxh.kt.lite.utils.Constant
import com.pengxh.kt.lite.utils.ImmerseStatusBarUtil
-import kotlinx.android.synthetic.main.activity_big_image.*
-class BigImageActivity : KotlinBaseActivity() {
+class BigImageActivity : KotlinBaseActivity() {
- override fun initLayoutView(): Int = R.layout.activity_big_image
+ override fun initViewBinding(): ActivityBigImageBinding {
+ return ActivityBigImageBinding.inflate(layoutInflater)
+ }
override fun setupTopBarLayout() {
ImmerseStatusBarUtil.setColor(this, Color.BLACK)
- leftBackView.setOnClickListener { finish() }
+ binding.leftBackView.setOnClickListener { finish() }
}
- override fun initData(savedInstanceState: Bundle?) {
+ override fun initOnCreate(savedInstanceState: Bundle?) {
}
@@ -41,18 +43,19 @@
return
}
val imageSize = urls.size
- pageNumberView.text = String.format("(" + (index + 1) + "/" + imageSize + ")")
- imagePagerView.adapter = BigImageAdapter(this, urls)
- imagePagerView.currentItem = index
- imagePagerView.offscreenPageLimit = imageSize
- imagePagerView.addOnPageChangeListener(object : ViewPager.OnPageChangeListener {
+ binding.pageNumberView.text = String.format("(" + (index + 1) + "/" + imageSize + ")")
+ binding.imagePagerView.adapter = BigImageAdapter(this, urls)
+ binding.imagePagerView.currentItem = index
+ binding.imagePagerView.offscreenPageLimit = imageSize
+ binding.imagePagerView.addOnPageChangeListener(object : ViewPager.OnPageChangeListener {
override fun onPageScrolled(
position: Int, positionOffset: Float, positionOffsetPixels: Int
) {
}
override fun onPageSelected(position: Int) {
- pageNumberView.text = String.format("(" + (position + 1) + "/" + imageSize + ")")
+ binding.pageNumberView.text =
+ String.format("(" + (position + 1) + "/" + imageSize + ")")
}
override fun onPageScrollStateChanged(state: Int) {}
diff --git a/app/src/main/java/com/casic/br/operationsite/view/FaceDetectActivity.kt b/app/src/main/java/com/casic/br/operationsite/view/FaceDetectActivity.kt
index 9ba963c..54258e7 100644
--- a/app/src/main/java/com/casic/br/operationsite/view/FaceDetectActivity.kt
+++ b/app/src/main/java/com/casic/br/operationsite/view/FaceDetectActivity.kt
@@ -17,6 +17,7 @@
import androidx.camera.lifecycle.ProcessCameraProvider
import androidx.core.content.ContextCompat
import com.casic.br.operationsite.R
+import com.casic.br.operationsite.databinding.ActivityFaceDetectBinding
import com.casic.br.operationsite.extensions.initLayoutImmersionBar
import com.google.common.util.concurrent.ListenableFuture
import com.gyf.immersionbar.ImmersionBar
@@ -25,8 +26,6 @@
import com.pengxh.kt.lite.extensions.setScreenBrightness
import com.pengxh.kt.lite.extensions.toBitmap
import com.pengxh.kt.lite.utils.WeakReferenceHandler
-import kotlinx.android.synthetic.main.activity_face_detect.*
-import kotlinx.android.synthetic.main.include_base_title.*
import java.io.File
import java.io.IOException
import java.text.SimpleDateFormat
@@ -35,7 +34,7 @@
import kotlin.math.abs
-class FaceDetectActivity : KotlinBaseActivity() {
+class FaceDetectActivity : KotlinBaseActivity() {
private val kTag = "FaceDetectActivity"
private lateinit var cameraExecutor: ExecutorService
@@ -45,14 +44,10 @@
private lateinit var weakReferenceHandler: WeakReferenceHandler
private val RATIO_4_3_VALUE = 4.0 / 3.0
private val RATIO_16_9_VALUE = 16.0 / 9.0
- private val executor: ThreadPoolExecutor = ThreadPoolExecutor(
- 16,
- 16,
- 0L,
- TimeUnit.MILLISECONDS,
- LinkedBlockingQueue(1024),
- FaceDetectorThread(),
- ThreadPoolExecutor.AbortPolicy()
+ private val executor = ThreadPoolExecutor(
+ 16, 16, 0L,
+ TimeUnit.MILLISECONDS, LinkedBlockingQueue(1024),
+ FaceDetectorThread(), ThreadPoolExecutor.AbortPolicy()
)
inner class FaceDetectorThread : ThreadFactory {
@@ -61,18 +56,20 @@
}
}
- override fun initLayoutView(): Int = R.layout.activity_face_detect
+ override fun initViewBinding(): ActivityFaceDetectBinding {
+ return ActivityFaceDetectBinding.inflate(layoutInflater)
+ }
override fun setupTopBarLayout() {
ImmersionBar.with(this).statusBarDarkFont(false).statusBarColor(R.color.mainThemeColor)
.init()
- initLayoutImmersionBar(rootView)
+ initLayoutImmersionBar(binding.rootView)
- leftBackView.setOnClickListener { finish() }
- titleView.text = "入场申请人脸采集"
+ binding.titleInclude.leftBackView.setOnClickListener { finish() }
+ binding.titleInclude.titleView.text = "入场申请人脸采集"
}
- override fun initData(savedInstanceState: Bundle?) {
+ override fun initOnCreate(savedInstanceState: Bundle?) {
//调节屏幕亮度最大
window.setScreenBrightness(WindowManager.LayoutParams.BRIGHTNESS_OVERRIDE_FULL)
@@ -137,7 +134,7 @@
imageAnalysis,
cameraPreViewBuilder
)
- cameraPreViewBuilder.setSurfaceProvider(cameraPreView.surfaceProvider)
+ cameraPreViewBuilder.setSurfaceProvider(binding.cameraPreView.surfaceProvider)
observeCameraState(camera.cameraInfo)
} catch (e: Exception) {
e.printStackTrace()
@@ -196,7 +193,7 @@
* */
private val callback = Handler.Callback {
if (it.what == 2022071401) {
- faceDetectTipsView.text = "人脸特征采集中,请勿晃动手机"
+ binding.faceDetectTipsView.text = "人脸特征采集中,请勿晃动手机"
val fileOptions = ImageCapture.OutputFileOptions.Builder(createImageFile()).build()
imageCapture.takePicture(fileOptions, cameraExecutor,
object : ImageCapture.OnImageSavedCallback {
diff --git a/app/src/main/java/com/casic/br/operationsite/view/HikVisionActivity.kt b/app/src/main/java/com/casic/br/operationsite/view/HikVisionActivity.kt
index 2af6cf4..c1a8400 100644
--- a/app/src/main/java/com/casic/br/operationsite/view/HikVisionActivity.kt
+++ b/app/src/main/java/com/casic/br/operationsite/view/HikVisionActivity.kt
@@ -14,6 +14,7 @@
import android.view.SurfaceHolder
import androidx.lifecycle.ViewModelProvider
import com.casic.br.operationsite.R
+import com.casic.br.operationsite.databinding.ActivityHikvisionBinding
import com.casic.br.operationsite.extensions.getChannel
import com.casic.br.operationsite.extensions.initLayoutImmersionBar
import com.casic.br.operationsite.extensions.reformatFloatArray
@@ -33,18 +34,8 @@
import com.pengxh.kt.lite.extensions.getSystemService
import com.pengxh.kt.lite.extensions.show
import com.pengxh.kt.lite.widget.dialog.BottomActionSheet
-import kotlinx.android.synthetic.main.activity_hikvision.configButton
-import kotlinx.android.synthetic.main.activity_hikvision.configSelectView
-import kotlinx.android.synthetic.main.activity_hikvision.netSelectView
-import kotlinx.android.synthetic.main.activity_hikvision.regionView
-import kotlinx.android.synthetic.main.activity_hikvision.rootView
-import kotlinx.android.synthetic.main.activity_hikvision.steeringWheelView
-import kotlinx.android.synthetic.main.activity_hikvision.videoSurfaceView
-import kotlinx.android.synthetic.main.include_option_title.leftBackView
-import kotlinx.android.synthetic.main.include_option_title.rightOptionView
-import kotlinx.android.synthetic.main.include_option_title.titleView
-class HikVisionActivity : KotlinBaseActivity(), SurfaceHolder.Callback {
+class HikVisionActivity : KotlinBaseActivity(), SurfaceHolder.Callback {
private val kTag = "HikVisionActivity"
private val context = this@HikVisionActivity
@@ -66,27 +57,29 @@
//手指是否已经从方向控制盘抬起
private var isActionUp = true
- override fun initLayoutView(): Int = R.layout.activity_hikvision
+ override fun initViewBinding(): ActivityHikvisionBinding {
+ return ActivityHikvisionBinding.inflate(layoutInflater)
+ }
override fun setupTopBarLayout() {
ImmersionBar.with(this).statusBarDarkFont(false)
.statusBarColor(R.color.mainThemeColor).init()
- initLayoutImmersionBar(rootView)
+ initLayoutImmersionBar(binding.rootView)
- titleView.text = "摄像头参数"
- rightOptionView.text = "重画"
- rightOptionView.setOnClickListener {
- regionView.clearRoutePath()
+ binding.titleInclude.titleView.text = "摄像头参数"
+ binding.titleInclude.rightOptionView.text = "重画"
+ binding.titleInclude.rightOptionView.setOnClickListener {
+ binding.regionView.clearRoutePath()
}
}
- override fun initData(savedInstanceState: Bundle?) {
+ override fun initOnCreate(savedInstanceState: Bundle?) {
RuntimeCache.deviceModels.forEach {
if (it.deviceType == DeviceType.CAMERA) {
cameraItems.add("${it.host}:${it.port}")
}
}
- configSelectView.text = cameraItems[0]
+ binding.configSelectView.text = cameraItems[0]
//获取wifi列表
wifiSsids.clear()
@@ -111,7 +104,7 @@
}
override fun initEvent() {
- leftBackView.setOnClickListener { finish() }
+ binding.titleInclude.leftBackView.setOnClickListener { finish() }
val bottomActionSheet = BottomActionSheet.Builder()
.setContext(this)
@@ -119,19 +112,19 @@
.setItemTextColor(R.color.mainThemeColor.convertColor(this))
.setOnActionSheetListener(object : BottomActionSheet.OnActionSheetListener {
override fun onActionItemClick(position: Int) {
- configSelectView.text = cameraItems[position]
+ binding.configSelectView.text = cameraItems[position]
}
}).build()
- configSelectView.setOnClickListener { bottomActionSheet.show() }
+ binding.configSelectView.setOnClickListener { bottomActionSheet.show() }
- netSelectView.setOnClickListener {
+ binding.netSelectView.setOnClickListener {
BottomActionSheet.Builder()
.setContext(this)
.setActionItemTitle(wifiSsids)
.setItemTextColor(R.color.mainThemeColor.convertColor(this))
.setOnActionSheetListener(object : BottomActionSheet.OnActionSheetListener {
override fun onActionItemClick(position: Int) {
- netSelectView.text = wifiSsids[position]
+ binding.netSelectView.text = wifiSsids[position]
//连接wifi
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {
@@ -155,12 +148,13 @@
}).build().show()
}
- steeringWheelView.setOnWheelTouchListener(object : SteeringWheelView.OnWheelTouchListener {
+ binding.steeringWheelView.setOnWheelTouchListener(object :
+ SteeringWheelView.OnWheelTouchListener {
override fun onCenterClicked() {
if (isPreviewSuccess) {
closeHikVisionCamera()
} else {
- val split = configSelectView.text.split(":")
+ val split = binding.configSelectView.text.split(":")
openHikVisionCamera(split[0], split[1])
}
}
@@ -199,14 +193,17 @@
hkSDK.NET_DVR_PTZControl(previewHandle, PTZCommand.PAN_LEFT, 1)
isActionUp = true
}
+
SteeringWheelView.Direction.TOP -> {
hkSDK.NET_DVR_PTZControl(previewHandle, PTZCommand.TILT_UP, 1)
isActionUp = true
}
+
SteeringWheelView.Direction.RIGHT -> {
hkSDK.NET_DVR_PTZControl(previewHandle, PTZCommand.PAN_RIGHT, 1)
isActionUp = true
}
+
SteeringWheelView.Direction.BOTTOM -> {
hkSDK.NET_DVR_PTZControl(previewHandle, PTZCommand.TILT_DOWN, 1)
isActionUp = true
@@ -215,8 +212,8 @@
}
})
- configButton.setOnClickListener {
- val region = regionView.getConfirmedPoints()
+ binding.configButton.setOnClickListener {
+ val region = binding.regionView.getConfirmedPoints()
val data = region.reformatFloatArray()
//发送数据的时候需要断开视频
@@ -301,7 +298,7 @@
strutPlayInfo.lChannel = selectChannel
strutPlayInfo.dwStreamType = 1
strutPlayInfo.bBlocked = 1
- strutPlayInfo.hHwnd = videoSurfaceView.holder
+ strutPlayInfo.hHwnd = binding.videoSurfaceView.holder
previewHandle = SDKGuider.g_sdkGuider.m_comPreviewGuider.RealPlay_V40_jni(
returnUserID, strutPlayInfo, null
)
@@ -322,7 +319,7 @@
}
override fun surfaceCreated(holder: SurfaceHolder) {
- videoSurfaceView.holder.setFormat(PixelFormat.TRANSLUCENT)
+ binding.videoSurfaceView.holder.setFormat(PixelFormat.TRANSLUCENT)
if (-1 == previewHandle) {
return
}
diff --git a/app/src/main/java/com/casic/br/operationsite/view/LoginActivity.kt b/app/src/main/java/com/casic/br/operationsite/view/LoginActivity.kt
index f0b8082..47a2e14 100644
--- a/app/src/main/java/com/casic/br/operationsite/view/LoginActivity.kt
+++ b/app/src/main/java/com/casic/br/operationsite/view/LoginActivity.kt
@@ -2,7 +2,7 @@
import android.os.Bundle
import androidx.lifecycle.ViewModelProvider
-import com.casic.br.operationsite.R
+import com.casic.br.operationsite.databinding.ActivityLoginBinding
import com.casic.br.operationsite.extensions.initLayoutImmersionBar
import com.casic.br.operationsite.utils.AuthenticationHelper
import com.casic.br.operationsite.utils.LoadingDialogHub
@@ -17,25 +17,30 @@
import com.pengxh.kt.lite.extensions.show
import com.pengxh.kt.lite.utils.SaveKeyValues
import com.pengxh.kt.lite.vm.LoadState
-import kotlinx.android.synthetic.main.activity_login.*
-class LoginActivity : KotlinBaseActivity() {
+class LoginActivity : KotlinBaseActivity() {
private lateinit var authenticateViewModel: AuthenticateViewModel
private lateinit var loginViewModel: LoginViewModel
private lateinit var userDetailViewModel: UserDetailViewModel
- override fun initLayoutView(): Int = R.layout.activity_login
+ override fun initViewBinding(): ActivityLoginBinding {
+ return ActivityLoginBinding.inflate(layoutInflater)
+ }
override fun setupTopBarLayout() {
ImmersionBar.with(this).statusBarDarkFont(true).init()
- initLayoutImmersionBar(rootView)
+ initLayoutImmersionBar(binding.rootView)
}
- override fun initData(savedInstanceState: Bundle?) {
+ override fun initOnCreate(savedInstanceState: Bundle?) {
// 设置默认账号密码
- userNameView.setText(SaveKeyValues.getValue(LocaleConstant.ACCOUNT, "") as String)
- userPasswordView.setText(SaveKeyValues.getValue(LocaleConstant.PASSWORD, "") as String)
+ binding.userNameView.setText(SaveKeyValues.getValue(LocaleConstant.ACCOUNT, "") as String)
+ binding.userPasswordView.setText(
+ SaveKeyValues.getValue(
+ LocaleConstant.PASSWORD, ""
+ ) as String
+ )
authenticateViewModel = ViewModelProvider(this)[AuthenticateViewModel::class.java]
loginViewModel = ViewModelProvider(this)[LoginViewModel::class.java]
userDetailViewModel = ViewModelProvider(this)[UserDetailViewModel::class.java]
@@ -51,9 +56,9 @@
}
override fun initEvent() {
- loginButton.setOnClickListener {
- val account = userNameView.text.toString().trim()
- val userPassword = userPasswordView.text.toString().trim()
+ binding.loginButton.setOnClickListener {
+ val account = binding.userNameView.text.toString().trim()
+ val userPassword = binding.userPasswordView.text.toString().trim()
if (account.isBlank()) {
"用户名不能为空".show(this)
return@setOnClickListener
@@ -75,8 +80,8 @@
AuthenticationHelper.savePublicKey(keyString)
val publicKey = RSAUtils.keyStrToPublicKey(keyString)
- val account = userNameView.text.toString()
- val userPassword = userPasswordView.text.toString()
+ val account = binding.userNameView.text.toString()
+ val userPassword = binding.userPasswordView.text.toString()
val dataByPublicKey = RSAUtils.encryptDataByPublicKey(
userPassword.toByteArray(), publicKey!!
)
diff --git a/app/src/main/java/com/casic/br/operationsite/view/MainActivity.kt b/app/src/main/java/com/casic/br/operationsite/view/MainActivity.kt
index 4ed70ac..4ff871c 100644
--- a/app/src/main/java/com/casic/br/operationsite/view/MainActivity.kt
+++ b/app/src/main/java/com/casic/br/operationsite/view/MainActivity.kt
@@ -5,6 +5,7 @@
import androidx.viewpager.widget.ViewPager
import com.casic.br.operationsite.R
import com.casic.br.operationsite.adapter.ViewPagerAdapter
+import com.casic.br.operationsite.databinding.ActivityMainBinding
import com.casic.br.operationsite.extensions.initLayoutImmersionBar
import com.casic.br.operationsite.fragment.CompletedFragment
import com.casic.br.operationsite.fragment.NotStartFragment
@@ -15,10 +16,8 @@
import com.pengxh.kt.lite.base.KotlinBaseActivity
import com.pengxh.kt.lite.extensions.toJson
import com.pengxh.kt.lite.utils.BroadcastManager
-import kotlinx.android.synthetic.main.activity_main.*
-import kotlinx.android.synthetic.main.include_search_title.*
-class MainActivity : KotlinBaseActivity() {
+class MainActivity : KotlinBaseActivity() {
private val kTag = "MainActivity"
private var pageViews: MutableList = ArrayList()
@@ -29,32 +28,34 @@
pageViews.add(CompletedFragment())
}
- override fun initLayoutView(): Int = R.layout.activity_main
+ override fun initViewBinding(): ActivityMainBinding {
+ return ActivityMainBinding.inflate(layoutInflater)
+ }
+
override fun setupTopBarLayout() {
- ImmersionBar.with(this).statusBarDarkFont(false)
- .statusBarColor(R.color.mainThemeColor).init()
- initLayoutImmersionBar(rootView)
+ ImmersionBar.with(this).statusBarDarkFont(false).statusBarColor(R.color.mainThemeColor)
+ .init()
+ initLayoutImmersionBar(binding.rootView)
- searchTextView.setOnClickListener {
+ binding.titleInclude.searchTextView.setOnClickListener {
// 需要根据当前所在Page查询数据
val dataModel = BroadcastDataModel()
- dataModel.currentPage = mainViewPager.currentItem
- dataModel.keywords = searchInputView.text.toString()
+ dataModel.currentPage = binding.mainViewPager.currentItem
+ dataModel.keywords = binding.titleInclude.searchInputView.text.toString()
- BroadcastManager
- .obtainInstance(this)
+ BroadcastManager.obtainInstance(this)
.sendBroadcast(LocaleConstant.SEARCH_ACTION, dataModel.toJson())
}
}
- override fun initData(savedInstanceState: Bundle?) {
- mainViewPager.adapter = ViewPagerAdapter(pageViews, supportFragmentManager)
- mainViewPager.offscreenPageLimit = pageViews.size //缓存页数
+ override fun initOnCreate(savedInstanceState: Bundle?) {
+ binding.mainViewPager.adapter = ViewPagerAdapter(pageViews, supportFragmentManager)
+ binding.mainViewPager.offscreenPageLimit = pageViews.size //缓存页数
//默认显示实施中页面
- mainViewPager.currentItem = 1
- segmentedGroup.check(segmentedGroup.getChildAt(1).id)
+ binding.mainViewPager.currentItem = 1
+ binding.segmentedGroup.check(binding.segmentedGroup.getChildAt(1).id)
}
override fun observeRequestState() {
@@ -62,15 +63,15 @@
}
override fun initEvent() {
- segmentedGroup.setOnCheckedChangeListener { _, checkedId ->
+ binding.segmentedGroup.setOnCheckedChangeListener { _, checkedId ->
when (checkedId) {
- R.id.notStartButton -> mainViewPager.currentItem = 0
- R.id.workingButton -> mainViewPager.currentItem = 1
- R.id.completedButton -> mainViewPager.currentItem = 2
+ R.id.notStartButton -> binding.mainViewPager.currentItem = 0
+ R.id.workingButton -> binding.mainViewPager.currentItem = 1
+ R.id.completedButton -> binding.mainViewPager.currentItem = 2
}
}
- mainViewPager.addOnPageChangeListener(object : ViewPager.OnPageChangeListener {
+ binding.mainViewPager.addOnPageChangeListener(object : ViewPager.OnPageChangeListener {
override fun onPageScrollStateChanged(state: Int) {
}
@@ -82,7 +83,7 @@
}
override fun onPageSelected(position: Int) {
- segmentedGroup.check(segmentedGroup.getChildAt(position).id)
+ binding.segmentedGroup.check(binding.segmentedGroup.getChildAt(position).id)
}
})
}
diff --git a/app/src/main/java/com/casic/br/operationsite/view/MethaneActivity.kt b/app/src/main/java/com/casic/br/operationsite/view/MethaneActivity.kt
index 1b53f7e..e5c034e 100644
--- a/app/src/main/java/com/casic/br/operationsite/view/MethaneActivity.kt
+++ b/app/src/main/java/com/casic/br/operationsite/view/MethaneActivity.kt
@@ -12,6 +12,7 @@
import android.os.Message
import androidx.lifecycle.ViewModelProvider
import com.casic.br.operationsite.R
+import com.casic.br.operationsite.databinding.ActivityMethaneBinding
import com.casic.br.operationsite.extensions.createCloseLightCommand
import com.casic.br.operationsite.extensions.createOpenLightCommand
import com.casic.br.operationsite.extensions.createStartCommand
@@ -33,20 +34,8 @@
import com.pengxh.kt.lite.utils.SaveKeyValues
import com.pengxh.kt.lite.utils.WeakReferenceHandler
import com.pengxh.kt.lite.widget.dialog.BottomActionSheet
-import kotlinx.android.synthetic.main.activity_methane.addressView
-import kotlinx.android.synthetic.main.activity_methane.configButton
-import kotlinx.android.synthetic.main.activity_methane.configSelectView
-import kotlinx.android.synthetic.main.activity_methane.connectButton
-import kotlinx.android.synthetic.main.activity_methane.netSelectView
-import kotlinx.android.synthetic.main.activity_methane.rootView
-import kotlinx.android.synthetic.main.activity_methane.steeringWheelView
-import kotlinx.android.synthetic.main.activity_methane.tcpStateView
-import kotlinx.android.synthetic.main.activity_methane.thresholdView
-import kotlinx.android.synthetic.main.activity_methane.warningSwitch
-import kotlinx.android.synthetic.main.include_base_title.leftBackView
-import kotlinx.android.synthetic.main.include_base_title.titleView
-class MethaneActivity : KotlinBaseActivity(), Handler.Callback {
+class MethaneActivity : KotlinBaseActivity(), Handler.Callback {
companion object {
lateinit var weakReferenceHandler: WeakReferenceHandler
@@ -67,7 +56,11 @@
//手指是否已经从方向控制盘抬起
private var isActionUp = true
- override fun initData(savedInstanceState: Bundle?) {
+ override fun initViewBinding(): ActivityMethaneBinding {
+ return ActivityMethaneBinding.inflate(layoutInflater)
+ }
+
+ override fun initOnCreate(savedInstanceState: Bundle?) {
weakReferenceHandler = WeakReferenceHandler(this)
RuntimeCache.deviceModels.forEach {
@@ -75,7 +68,7 @@
gasTreeItems.add("${it.host}:${it.port}")
}
}
- configSelectView.text = gasTreeItems[0]
+ binding.configSelectView.text = gasTreeItems[0]
//获取wifi列表
wifiSsids.clear()
@@ -89,15 +82,15 @@
deviceViewModel = ViewModelProvider(this)[DeviceViewModel::class.java]
alarmViewModel = ViewModelProvider(this)[AlarmViewModel::class.java]
alarmViewModel.alarmState.observe(this) {
- warningSwitch.isChecked = it == "1"
+ binding.warningSwitch.isChecked = it == "1"
}
alarmViewModel.getAlarmState()
- val gasParam = configSelectView.text.toString().splitGasParam()
+ val gasParam = binding.configSelectView.text.toString().splitGasParam()
deviceViewModel.getMethaneThreshold(gasParam[0], gasParam[1])
deviceViewModel.thresholdResult.observe(this) {
if (it.code == 200) {
- thresholdView.setText(it.data)
+ binding.thresholdView.setText(it.data)
}
}
deviceViewModel.setThresholdResult.observe(this) {
@@ -109,13 +102,13 @@
override fun handleMessage(msg: Message): Boolean {
if (msg.what == 2023072101) {
- tcpStateView.setBackgroundColor(R.color.greenColor.convertColor(this))
- connectButton.isEnabled = false
- addressView.isEnabled = false
+ binding.tcpStateView.setBackgroundColor(R.color.greenColor.convertColor(this))
+ binding.connectButton.isEnabled = false
+ binding.addressView.isEnabled = false
} else if (msg.what == 2023072102) {
- tcpStateView.setBackgroundColor(R.color.redTextColor.convertColor(this))
- connectButton.isEnabled = true
- addressView.isEnabled = true
+ binding.tcpStateView.setBackgroundColor(R.color.redTextColor.convertColor(this))
+ binding.connectButton.isEnabled = true
+ binding.addressView.isEnabled = true
}
return true
}
@@ -123,57 +116,52 @@
override fun onResume() {
super.onResume()
val host = SaveKeyValues.getValue(LocaleConstant.TCP_HOST, "192.168.10.139").toString()
- addressView.setText(host)
+ binding.addressView.setText(host)
}
override fun initEvent() {
- leftBackView.setOnClickListener { finish() }
+ binding.titleInclude.leftBackView.setOnClickListener { finish() }
//连接TCP
- connectButton.setOnClickListener {
- if (addressView.text.isNullOrBlank()) {
+ binding.connectButton.setOnClickListener {
+ if (binding.addressView.text.isNullOrBlank()) {
"请输入正确的指令地址".show(this)
return@setOnClickListener
}
- val value = addressView.text.toString()
+ val value = binding.addressView.text.toString()
SaveKeyValues.putValue(LocaleConstant.TCP_HOST, value)
SocketManager.get.connectNetty(value, LocaleConstant.TCP_PORT)
}
- val bottomActionSheet = BottomActionSheet.Builder()
- .setContext(this)
- .setActionItemTitle(gasTreeItems)
- .setItemTextColor(R.color.mainThemeColor.convertColor(this))
- .setOnActionSheetListener(object : BottomActionSheet.OnActionSheetListener {
- override fun onActionItemClick(position: Int) {
- configSelectView.text = gasTreeItems[position]
- }
- }).build()
- configSelectView.setOnClickListener { bottomActionSheet.show() }
-
- netSelectView.setOnClickListener {
- BottomActionSheet.Builder()
- .setContext(this)
- .setActionItemTitle(wifiSsids)
+ val bottomActionSheet =
+ BottomActionSheet.Builder().setContext(this).setActionItemTitle(gasTreeItems)
.setItemTextColor(R.color.mainThemeColor.convertColor(this))
.setOnActionSheetListener(object : BottomActionSheet.OnActionSheetListener {
override fun onActionItemClick(position: Int) {
- netSelectView.text = wifiSsids[position]
+ binding.configSelectView.text = gasTreeItems[position]
+ }
+ }).build()
+ binding.configSelectView.setOnClickListener { bottomActionSheet.show() }
+
+ binding.netSelectView.setOnClickListener {
+ BottomActionSheet.Builder().setContext(this).setActionItemTitle(wifiSsids)
+ .setItemTextColor(R.color.mainThemeColor.convertColor(this))
+ .setOnActionSheetListener(object : BottomActionSheet.OnActionSheetListener {
+ override fun onActionItemClick(position: Int) {
+ binding.netSelectView.text = wifiSsids[position]
//连接wifi
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {
- val specifier = WifiNetworkSpecifier.Builder()
- .setSsid(wifiSsids[position])
- .setWpa2Passphrase(LocaleConstant.WIFI_PASSWORD)
- .build()
+ val specifier =
+ WifiNetworkSpecifier.Builder().setSsid(wifiSsids[position])
+ .setWpa2Passphrase(LocaleConstant.WIFI_PASSWORD).build()
val request = NetworkRequest.Builder()
.addTransportType(NetworkCapabilities.TRANSPORT_WIFI)
.removeCapability(NetworkCapabilities.NET_CAPABILITY_INTERNET)
- .setNetworkSpecifier(specifier)
- .build()
+ .setNetworkSpecifier(specifier).build()
connectivityManager = context.getSystemService()
connectivityManager?.requestNetwork(request, networkCallback)
@@ -182,27 +170,28 @@
}).build().show()
}
- warningSwitch.setOnClickListener {
- val gasParam = configSelectView.text.toString().splitGasParam()
- if (warningSwitch.isChecked) {
+ binding.warningSwitch.setOnClickListener {
+ val gasParam = binding.configSelectView.text.toString().splitGasParam()
+ if (binding.warningSwitch.isChecked) {
alarmViewModel.changeAlarmState(gasParam[0], "1")
} else {
alarmViewModel.changeAlarmState(gasParam[0], "0")
}
}
- configButton.setOnClickListener {
- if (thresholdView.text.isNullOrBlank()) {
+ binding.configButton.setOnClickListener {
+ if (binding.thresholdView.text.isNullOrBlank()) {
"阈值不能设置为空".show(this)
return@setOnClickListener
}
- val gasParam = configSelectView.text.toString().splitGasParam()
+ val gasParam = binding.configSelectView.text.toString().splitGasParam()
deviceViewModel.setMethaneThreshold(
- gasParam[0], gasParam[1], thresholdView.text.toString()
+ gasParam[0], gasParam[1], binding.thresholdView.text.toString()
)
}
- steeringWheelView.setOnWheelTouchListener(object : SteeringWheelView.OnWheelTouchListener {
+ binding.steeringWheelView.setOnWheelTouchListener(object :
+ SteeringWheelView.OnWheelTouchListener {
override fun onCenterClicked() {
clickCount++
if (clickCount % 2 == 0) {
@@ -266,18 +255,16 @@
}
}
- override fun initLayoutView(): Int = R.layout.activity_methane
-
override fun observeRequestState() {
}
override fun setupTopBarLayout() {
- ImmersionBar.with(this).statusBarDarkFont(false)
- .statusBarColor(R.color.mainThemeColor).init()
- initLayoutImmersionBar(rootView)
+ ImmersionBar.with(this).statusBarDarkFont(false).statusBarColor(R.color.mainThemeColor)
+ .init()
+ initLayoutImmersionBar(binding.rootView)
- titleView.text = "云台参数"
+ binding.titleInclude.titleView.text = "云台参数"
}
override fun onDestroy() {
diff --git a/app/src/main/java/com/casic/br/operationsite/view/SplashScreenActivity.kt b/app/src/main/java/com/casic/br/operationsite/view/SplashScreenActivity.kt
index 06a285c..74fa2b6 100644
--- a/app/src/main/java/com/casic/br/operationsite/view/SplashScreenActivity.kt
+++ b/app/src/main/java/com/casic/br/operationsite/view/SplashScreenActivity.kt
@@ -3,24 +3,27 @@
import android.os.Bundle
import android.os.CountDownTimer
import androidx.lifecycle.ViewModelProvider
-import com.casic.br.operationsite.R
+import com.casic.br.operationsite.databinding.ActivitySplashBinding
import com.casic.br.operationsite.vm.UserDetailViewModel
import com.gyf.immersionbar.ImmersionBar
import com.pengxh.kt.lite.base.KotlinBaseActivity
import com.pengxh.kt.lite.extensions.navigatePageTo
-class SplashScreenActivity : KotlinBaseActivity() {
+class SplashScreenActivity : KotlinBaseActivity() {
private val kTag = "SplashScreenActivity"
private lateinit var userDetailViewModel: UserDetailViewModel
- override fun initLayoutView(): Int = R.layout.activity_splash
+ override fun initViewBinding(): ActivitySplashBinding {
+ return ActivitySplashBinding.inflate(layoutInflater)
+ }
+
override fun setupTopBarLayout() {
ImmersionBar.with(this).init()
}
- override fun initData(savedInstanceState: Bundle?) {
+ override fun initOnCreate(savedInstanceState: Bundle?) {
userDetailViewModel = ViewModelProvider(this)[UserDetailViewModel::class.java]
}
diff --git a/app/build.gradle b/app/build.gradle
index d3ec387..9b32fed 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -2,12 +2,11 @@
apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
-apply plugin: 'kotlin-android-extensions'
android {
signingConfigs {
release {
- storeFile file('/Users/a203/Desktop/AndroidProjects/OperationSite/app/OperationSite.jks')
+ storeFile file('OperationSite.jks')
storePassword '123456789'
keyAlias 'key0'
keyPassword '123456789'
@@ -54,6 +53,7 @@
coroutines 'enable'
}
}
+
viewBinding {
enabled true
}
@@ -73,7 +73,7 @@
dependencies {
implementation fileTree(include: ['*.jar'], dir: 'libs')
//基础依赖库
- implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.0.4.9'
+ implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.0.5'
implementation 'androidx.appcompat:appcompat:1.6.1'
implementation 'androidx.core:core-ktx:1.9.0'
implementation 'com.google.android.material:material:1.6.1'
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index f1a68ec..cde8f45 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -80,7 +80,7 @@
+ android:value="d26ed926cccc5042898237679d65ae26" />
() {
private lateinit var weakReferenceHandler: WeakReferenceHandler
private lateinit var workingListAdapter: NormalRecyclerAdapter
@@ -44,13 +44,17 @@
private var isLoadMore = false
private var keywords = ""
- override fun initLayoutView(): Int = R.layout.fragment_completed
+ override fun initViewBinding(
+ inflater: LayoutInflater, container: ViewGroup?
+ ): FragmentCompletedBinding {
+ return FragmentCompletedBinding.inflate(inflater, container, false)
+ }
override fun setupTopBarLayout() {
}
- override fun initData(savedInstanceState: Bundle?) {
+ override fun initOnCreate(savedInstanceState: Bundle?) {
weakReferenceHandler = WeakReferenceHandler(callback)
workSiteViewModel = ViewModelProvider(this)[WorkSiteViewModel::class.java]
workSiteViewModel.worksiteModel.observe(this) {
@@ -59,7 +63,7 @@
when {
isRefresh -> {
workingListAdapter.setRefreshData(dataRows)
- completedRefreshLayout.finishRefresh()
+ binding.completedRefreshLayout.finishRefresh()
isRefresh = false
}
@@ -68,7 +72,7 @@
"到底了,别拉了".show(requireContext())
}
workingListAdapter.setLoadMoreData(dataRows)
- completedRefreshLayout.finishLoadMore()
+ binding.completedRefreshLayout.finishLoadMore()
isLoadMore = false
}
@@ -104,13 +108,13 @@
}
override fun initEvent() {
- completedRefreshLayout.setOnRefreshListener {
+ binding.completedRefreshLayout.setOnRefreshListener {
isRefresh = true
//刷新之后页码重置
pageIndex = 1
obtainProjectListByPage()
}
- completedRefreshLayout.setOnLoadMoreListener {
+ binding.completedRefreshLayout.setOnLoadMoreListener {
isLoadMore = true
pageIndex++
obtainProjectListByPage()
@@ -124,12 +128,12 @@
private val callback = Handler.Callback {
if (it.what == 2022071502) {
if (dataBeans.size == 0) {
- emptyView.showEmptyPage {
+ binding.emptyInclude.emptyView.showEmptyPage {
pageIndex = 1
obtainProjectListByPage()
}
} else {
- emptyView.hide()
+ binding.emptyInclude.emptyView.hide()
workingListAdapter = object :
NormalRecyclerAdapter(
R.layout.item_working_rv, dataBeans
@@ -155,10 +159,10 @@
.setText(R.id.workSiteView, "现场描述:${item.workSiteDesc}")
}
}
- completedRecyclerView.addItemDecoration(
+ binding.completedRecyclerView.addItemDecoration(
ItemDecoration(95f.dp2px(requireContext()).toFloat(), 0f)
)
- completedRecyclerView.adapter = workingListAdapter
+ binding.completedRecyclerView.adapter = workingListAdapter
workingListAdapter.setOnItemClickedListener(object :
NormalRecyclerAdapter.OnItemClickedListener {
override fun onItemClicked(
diff --git a/app/src/main/java/com/casic/br/operationsite/fragment/NotStartFragment.kt b/app/src/main/java/com/casic/br/operationsite/fragment/NotStartFragment.kt
index e927d86..a1776fb 100644
--- a/app/src/main/java/com/casic/br/operationsite/fragment/NotStartFragment.kt
+++ b/app/src/main/java/com/casic/br/operationsite/fragment/NotStartFragment.kt
@@ -5,8 +5,11 @@
import android.content.Intent
import android.os.Bundle
import android.os.Handler
+import android.view.LayoutInflater
+import android.view.ViewGroup
import androidx.lifecycle.ViewModelProvider
import com.casic.br.operationsite.R
+import com.casic.br.operationsite.databinding.FragmentNotStartBinding
import com.casic.br.operationsite.extensions.combineImagePath
import com.casic.br.operationsite.extensions.showEmptyPage
import com.casic.br.operationsite.model.BroadcastDataModel
@@ -26,11 +29,8 @@
import com.pengxh.kt.lite.utils.BroadcastManager
import com.pengxh.kt.lite.utils.Constant
import com.pengxh.kt.lite.utils.WeakReferenceHandler
-import kotlinx.android.synthetic.main.fragment_not_start.notStartRecyclerView
-import kotlinx.android.synthetic.main.fragment_not_start.notStartRefreshLayout
-import kotlinx.android.synthetic.main.include_empty_view.emptyView
-class NotStartFragment : KotlinBaseFragment() {
+class NotStartFragment : KotlinBaseFragment() {
private lateinit var weakReferenceHandler: WeakReferenceHandler
private lateinit var workingListAdapter: NormalRecyclerAdapter
@@ -44,13 +44,17 @@
private var isLoadMore = false
private var keywords = ""
- override fun initLayoutView(): Int = R.layout.fragment_not_start
+ override fun initViewBinding(
+ inflater: LayoutInflater, container: ViewGroup?
+ ): FragmentNotStartBinding {
+ return FragmentNotStartBinding.inflate(inflater, container, false)
+ }
override fun setupTopBarLayout() {
}
- override fun initData(savedInstanceState: Bundle?) {
+ override fun initOnCreate(savedInstanceState: Bundle?) {
weakReferenceHandler = WeakReferenceHandler(callback)
workSiteViewModel = ViewModelProvider(this)[WorkSiteViewModel::class.java]
workSiteViewModel.worksiteModel.observe(this) {
@@ -59,7 +63,7 @@
when {
isRefresh -> {
workingListAdapter.setRefreshData(dataRows)
- notStartRefreshLayout.finishRefresh()
+ binding.notStartRefreshLayout.finishRefresh()
isRefresh = false
}
@@ -68,7 +72,7 @@
"到底了,别拉了".show(requireContext())
}
workingListAdapter.setLoadMoreData(dataRows)
- notStartRefreshLayout.finishLoadMore()
+ binding.notStartRefreshLayout.finishLoadMore()
isLoadMore = false
}
@@ -104,13 +108,13 @@
}
override fun initEvent() {
- notStartRefreshLayout.setOnRefreshListener {
+ binding.notStartRefreshLayout.setOnRefreshListener {
isRefresh = true
//刷新之后页码重置
pageIndex = 1
obtainProjectListByPage()
}
- notStartRefreshLayout.setOnLoadMoreListener {
+ binding.notStartRefreshLayout.setOnLoadMoreListener {
isLoadMore = true
pageIndex++
obtainProjectListByPage()
@@ -124,12 +128,12 @@
private val callback = Handler.Callback {
if (it.what == 2022071501) {
if (dataBeans.size == 0) {
- emptyView.showEmptyPage {
+ binding.emptyInclude.emptyView.showEmptyPage {
pageIndex = 1
obtainProjectListByPage()
}
} else {
- emptyView.hide()
+ binding.emptyInclude.emptyView.hide()
workingListAdapter = object :
NormalRecyclerAdapter