diff --git a/app/build.gradle b/app/build.gradle index 385cd21..093bae7 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -2,7 +2,6 @@ apply plugin: 'com.android.application' apply plugin: 'kotlin-android' -apply plugin: 'kotlin-android-extensions' apply plugin: 'org.greenrobot.greendao' android { @@ -70,7 +69,7 @@ implementation 'androidx.core:core-ktx:1.9.0' implementation 'androidx.appcompat:appcompat:1.6.1' //基础依赖库 - implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.0.4.9' + implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.0.5' //Google官方授权框架 implementation 'pub.devrel:easypermissions:3.0.0' //腾讯Android UI框架 diff --git a/app/build.gradle b/app/build.gradle index 385cd21..093bae7 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -2,7 +2,6 @@ apply plugin: 'com.android.application' apply plugin: 'kotlin-android' -apply plugin: 'kotlin-android-extensions' apply plugin: 'org.greenrobot.greendao' android { @@ -70,7 +69,7 @@ implementation 'androidx.core:core-ktx:1.9.0' implementation 'androidx.appcompat:appcompat:1.6.1' //基础依赖库 - implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.0.4.9' + implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.0.5' //Google官方授权框架 implementation 'pub.devrel:easypermissions:3.0.0' //腾讯Android UI框架 diff --git a/app/src/main/java/com/casic/electric/detector/base/SerialPortActivity.kt b/app/src/main/java/com/casic/electric/detector/base/SerialPortActivity.kt index 3e5ba6c..ac05531 100644 --- a/app/src/main/java/com/casic/electric/detector/base/SerialPortActivity.kt +++ b/app/src/main/java/com/casic/electric/detector/base/SerialPortActivity.kt @@ -2,6 +2,7 @@ import android.os.Bundle import androidx.appcompat.app.AppCompatActivity +import androidx.viewbinding.ViewBinding import com.casic.electric.detector.uart.SerialPort import com.pengxh.kt.lite.extensions.show import java.io.IOException @@ -10,8 +11,9 @@ import java.security.InvalidParameterException -abstract class SerialPortActivity : AppCompatActivity() { +abstract class SerialPortActivity : AppCompatActivity() { + protected lateinit var binding: VB private var serialPort: SerialPort? = null var outputStream: OutputStream? = null private var inputStream: InputStream? = null @@ -39,9 +41,10 @@ override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) - setContentView(initLayoutView()) + binding = initViewBinding() + setContentView(binding.root) setupTopBarLayout() - initData(savedInstanceState) + initOnCreate(savedInstanceState) observeRequestState() initEvent() @@ -64,7 +67,7 @@ /** * 初始化xml布局 */ - abstract fun initLayoutView(): Int + abstract fun initViewBinding(): VB /** * 特定页面定制沉浸式状态栏 @@ -74,7 +77,7 @@ /** * 初始化默认数据 */ - abstract fun initData(savedInstanceState: Bundle?) + abstract fun initOnCreate(savedInstanceState: Bundle?) /** * 数据请求状态监听 diff --git a/app/build.gradle b/app/build.gradle index 385cd21..093bae7 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -2,7 +2,6 @@ apply plugin: 'com.android.application' apply plugin: 'kotlin-android' -apply plugin: 'kotlin-android-extensions' apply plugin: 'org.greenrobot.greendao' android { @@ -70,7 +69,7 @@ implementation 'androidx.core:core-ktx:1.9.0' implementation 'androidx.appcompat:appcompat:1.6.1' //基础依赖库 - implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.0.4.9' + implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.0.5' //Google官方授权框架 implementation 'pub.devrel:easypermissions:3.0.0' //腾讯Android UI框架 diff --git a/app/src/main/java/com/casic/electric/detector/base/SerialPortActivity.kt b/app/src/main/java/com/casic/electric/detector/base/SerialPortActivity.kt index 3e5ba6c..ac05531 100644 --- a/app/src/main/java/com/casic/electric/detector/base/SerialPortActivity.kt +++ b/app/src/main/java/com/casic/electric/detector/base/SerialPortActivity.kt @@ -2,6 +2,7 @@ import android.os.Bundle import androidx.appcompat.app.AppCompatActivity +import androidx.viewbinding.ViewBinding import com.casic.electric.detector.uart.SerialPort import com.pengxh.kt.lite.extensions.show import java.io.IOException @@ -10,8 +11,9 @@ import java.security.InvalidParameterException -abstract class SerialPortActivity : AppCompatActivity() { +abstract class SerialPortActivity : AppCompatActivity() { + protected lateinit var binding: VB private var serialPort: SerialPort? = null var outputStream: OutputStream? = null private var inputStream: InputStream? = null @@ -39,9 +41,10 @@ override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) - setContentView(initLayoutView()) + binding = initViewBinding() + setContentView(binding.root) setupTopBarLayout() - initData(savedInstanceState) + initOnCreate(savedInstanceState) observeRequestState() initEvent() @@ -64,7 +67,7 @@ /** * 初始化xml布局 */ - abstract fun initLayoutView(): Int + abstract fun initViewBinding(): VB /** * 特定页面定制沉浸式状态栏 @@ -74,7 +77,7 @@ /** * 初始化默认数据 */ - abstract fun initData(savedInstanceState: Bundle?) + abstract fun initOnCreate(savedInstanceState: Bundle?) /** * 数据请求状态监听 diff --git a/app/src/main/java/com/casic/electric/detector/view/BigImageActivity.kt b/app/src/main/java/com/casic/electric/detector/view/BigImageActivity.kt index 040242e..aa1bdeb 100644 --- a/app/src/main/java/com/casic/electric/detector/view/BigImageActivity.kt +++ b/app/src/main/java/com/casic/electric/detector/view/BigImageActivity.kt @@ -11,22 +11,24 @@ import androidx.viewpager.widget.ViewPager import com.bumptech.glide.Glide import com.casic.electric.detector.R +import com.casic.electric.detector.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 385cd21..093bae7 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -2,7 +2,6 @@ apply plugin: 'com.android.application' apply plugin: 'kotlin-android' -apply plugin: 'kotlin-android-extensions' apply plugin: 'org.greenrobot.greendao' android { @@ -70,7 +69,7 @@ implementation 'androidx.core:core-ktx:1.9.0' implementation 'androidx.appcompat:appcompat:1.6.1' //基础依赖库 - implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.0.4.9' + implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.0.5' //Google官方授权框架 implementation 'pub.devrel:easypermissions:3.0.0' //腾讯Android UI框架 diff --git a/app/src/main/java/com/casic/electric/detector/base/SerialPortActivity.kt b/app/src/main/java/com/casic/electric/detector/base/SerialPortActivity.kt index 3e5ba6c..ac05531 100644 --- a/app/src/main/java/com/casic/electric/detector/base/SerialPortActivity.kt +++ b/app/src/main/java/com/casic/electric/detector/base/SerialPortActivity.kt @@ -2,6 +2,7 @@ import android.os.Bundle import androidx.appcompat.app.AppCompatActivity +import androidx.viewbinding.ViewBinding import com.casic.electric.detector.uart.SerialPort import com.pengxh.kt.lite.extensions.show import java.io.IOException @@ -10,8 +11,9 @@ import java.security.InvalidParameterException -abstract class SerialPortActivity : AppCompatActivity() { +abstract class SerialPortActivity : AppCompatActivity() { + protected lateinit var binding: VB private var serialPort: SerialPort? = null var outputStream: OutputStream? = null private var inputStream: InputStream? = null @@ -39,9 +41,10 @@ override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) - setContentView(initLayoutView()) + binding = initViewBinding() + setContentView(binding.root) setupTopBarLayout() - initData(savedInstanceState) + initOnCreate(savedInstanceState) observeRequestState() initEvent() @@ -64,7 +67,7 @@ /** * 初始化xml布局 */ - abstract fun initLayoutView(): Int + abstract fun initViewBinding(): VB /** * 特定页面定制沉浸式状态栏 @@ -74,7 +77,7 @@ /** * 初始化默认数据 */ - abstract fun initData(savedInstanceState: Bundle?) + abstract fun initOnCreate(savedInstanceState: Bundle?) /** * 数据请求状态监听 diff --git a/app/src/main/java/com/casic/electric/detector/view/BigImageActivity.kt b/app/src/main/java/com/casic/electric/detector/view/BigImageActivity.kt index 040242e..aa1bdeb 100644 --- a/app/src/main/java/com/casic/electric/detector/view/BigImageActivity.kt +++ b/app/src/main/java/com/casic/electric/detector/view/BigImageActivity.kt @@ -11,22 +11,24 @@ import androidx.viewpager.widget.ViewPager import com.bumptech.glide.Glide import com.casic.electric.detector.R +import com.casic.electric.detector.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/electric/detector/view/ElectricMarkerDetailActivity.kt b/app/src/main/java/com/casic/electric/detector/view/ElectricMarkerDetailActivity.kt index b381d5c..d72edc5 100644 --- a/app/src/main/java/com/casic/electric/detector/view/ElectricMarkerDetailActivity.kt +++ b/app/src/main/java/com/casic/electric/detector/view/ElectricMarkerDetailActivity.kt @@ -4,8 +4,8 @@ import android.graphics.drawable.ColorDrawable import android.os.Bundle import android.view.Gravity -import com.casic.electric.detector.R import com.casic.electric.detector.bean.SmallLabelBean +import com.casic.electric.detector.databinding.ActivityElectricMarkerDetailBinding import com.casic.electric.detector.extensions.appendDownloadUrl import com.casic.electric.detector.utils.DataBaseManager import com.casic.electric.detector.utils.FileType @@ -15,13 +15,16 @@ import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show import com.pengxh.kt.lite.utils.Constant -import kotlinx.android.synthetic.main.activity_electric_marker_detail.* -class ElectricMarkerDetailActivity : KotlinBaseActivity() { +class ElectricMarkerDetailActivity : KotlinBaseActivity() { private lateinit var smallLabel: SmallLabelBean - override fun initData(savedInstanceState: Bundle?) { + override fun initViewBinding(): ActivityElectricMarkerDetailBinding { + return ActivityElectricMarkerDetailBinding.inflate(layoutInflater) + } + + override fun initOnCreate(savedInstanceState: Bundle?) { window.setBackgroundDrawable(ColorDrawable(Color.TRANSPARENT)) window.decorView.setBackgroundColor(Color.TRANSPARENT) window.setGravity(Gravity.CENTER) @@ -34,30 +37,30 @@ smallLabel = DataBaseManager.get.queryElectricMarkerById(electricMarkerId) - markerIdView.text = smallLabel.markerId - locationNumberView.text = smallLabel.locationNumber - locationNameView.text = smallLabel.locationName - electricMarkerIdView.text = smallLabel.electricMarkerId - cableNameView.text = smallLabel.cableName - cableNumberView.text = smallLabel.cableNumber - lineView.text = smallLabel.line - voltageLevelView.text = smallLabel.voltageLevel - cableTypeView.text = smallLabel.cableType - cableSpecView.text = smallLabel.cableSpec - cableBrandView.text = smallLabel.cableBrand - cableStartView.text = smallLabel.cableStart - cableEndView.text = smallLabel.cableEnd - hasJointView.text = smallLabel.hasJoint - jointCreatorView.text = smallLabel.jointCreator - memo1View.text = smallLabel.memo1 - memo2View.text = smallLabel.memo2 - memo3View.text = smallLabel.memo3 + binding.markerIdView.text = smallLabel.markerId + binding.locationNumberView.text = smallLabel.locationNumber + binding.locationNameView.text = smallLabel.locationName + binding.electricMarkerIdView.text = smallLabel.electricMarkerId + binding.cableNameView.text = smallLabel.cableName + binding.cableNumberView.text = smallLabel.cableNumber + binding.lineView.text = smallLabel.line + binding.voltageLevelView.text = smallLabel.voltageLevel + binding.cableTypeView.text = smallLabel.cableType + binding.cableSpecView.text = smallLabel.cableSpec + binding.cableBrandView.text = smallLabel.cableBrand + binding.cableStartView.text = smallLabel.cableStart + binding.cableEndView.text = smallLabel.cableEnd + binding.hasJointView.text = smallLabel.hasJoint + binding.jointCreatorView.text = smallLabel.jointCreator + binding.memo1View.text = smallLabel.memo1 + binding.memo2View.text = smallLabel.memo2 + binding.memo3View.text = smallLabel.memo3 } override fun initEvent() { - closeView.setOnClickListener { finish() } + binding.closeView.setOnClickListener { finish() } - showImageView.setOnClickListener { + binding.showImageView.setOnClickListener { //查数据库 if (smallLabel.imagePath.isNullOrEmpty()) { "此标识器无图片".show(this) @@ -84,8 +87,6 @@ } } - override fun initLayoutView(): Int = R.layout.activity_electric_marker_detail - override fun observeRequestState() { } diff --git a/app/build.gradle b/app/build.gradle index 385cd21..093bae7 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -2,7 +2,6 @@ apply plugin: 'com.android.application' apply plugin: 'kotlin-android' -apply plugin: 'kotlin-android-extensions' apply plugin: 'org.greenrobot.greendao' android { @@ -70,7 +69,7 @@ implementation 'androidx.core:core-ktx:1.9.0' implementation 'androidx.appcompat:appcompat:1.6.1' //基础依赖库 - implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.0.4.9' + implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.0.5' //Google官方授权框架 implementation 'pub.devrel:easypermissions:3.0.0' //腾讯Android UI框架 diff --git a/app/src/main/java/com/casic/electric/detector/base/SerialPortActivity.kt b/app/src/main/java/com/casic/electric/detector/base/SerialPortActivity.kt index 3e5ba6c..ac05531 100644 --- a/app/src/main/java/com/casic/electric/detector/base/SerialPortActivity.kt +++ b/app/src/main/java/com/casic/electric/detector/base/SerialPortActivity.kt @@ -2,6 +2,7 @@ import android.os.Bundle import androidx.appcompat.app.AppCompatActivity +import androidx.viewbinding.ViewBinding import com.casic.electric.detector.uart.SerialPort import com.pengxh.kt.lite.extensions.show import java.io.IOException @@ -10,8 +11,9 @@ import java.security.InvalidParameterException -abstract class SerialPortActivity : AppCompatActivity() { +abstract class SerialPortActivity : AppCompatActivity() { + protected lateinit var binding: VB private var serialPort: SerialPort? = null var outputStream: OutputStream? = null private var inputStream: InputStream? = null @@ -39,9 +41,10 @@ override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) - setContentView(initLayoutView()) + binding = initViewBinding() + setContentView(binding.root) setupTopBarLayout() - initData(savedInstanceState) + initOnCreate(savedInstanceState) observeRequestState() initEvent() @@ -64,7 +67,7 @@ /** * 初始化xml布局 */ - abstract fun initLayoutView(): Int + abstract fun initViewBinding(): VB /** * 特定页面定制沉浸式状态栏 @@ -74,7 +77,7 @@ /** * 初始化默认数据 */ - abstract fun initData(savedInstanceState: Bundle?) + abstract fun initOnCreate(savedInstanceState: Bundle?) /** * 数据请求状态监听 diff --git a/app/src/main/java/com/casic/electric/detector/view/BigImageActivity.kt b/app/src/main/java/com/casic/electric/detector/view/BigImageActivity.kt index 040242e..aa1bdeb 100644 --- a/app/src/main/java/com/casic/electric/detector/view/BigImageActivity.kt +++ b/app/src/main/java/com/casic/electric/detector/view/BigImageActivity.kt @@ -11,22 +11,24 @@ import androidx.viewpager.widget.ViewPager import com.bumptech.glide.Glide import com.casic.electric.detector.R +import com.casic.electric.detector.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/electric/detector/view/ElectricMarkerDetailActivity.kt b/app/src/main/java/com/casic/electric/detector/view/ElectricMarkerDetailActivity.kt index b381d5c..d72edc5 100644 --- a/app/src/main/java/com/casic/electric/detector/view/ElectricMarkerDetailActivity.kt +++ b/app/src/main/java/com/casic/electric/detector/view/ElectricMarkerDetailActivity.kt @@ -4,8 +4,8 @@ import android.graphics.drawable.ColorDrawable import android.os.Bundle import android.view.Gravity -import com.casic.electric.detector.R import com.casic.electric.detector.bean.SmallLabelBean +import com.casic.electric.detector.databinding.ActivityElectricMarkerDetailBinding import com.casic.electric.detector.extensions.appendDownloadUrl import com.casic.electric.detector.utils.DataBaseManager import com.casic.electric.detector.utils.FileType @@ -15,13 +15,16 @@ import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show import com.pengxh.kt.lite.utils.Constant -import kotlinx.android.synthetic.main.activity_electric_marker_detail.* -class ElectricMarkerDetailActivity : KotlinBaseActivity() { +class ElectricMarkerDetailActivity : KotlinBaseActivity() { private lateinit var smallLabel: SmallLabelBean - override fun initData(savedInstanceState: Bundle?) { + override fun initViewBinding(): ActivityElectricMarkerDetailBinding { + return ActivityElectricMarkerDetailBinding.inflate(layoutInflater) + } + + override fun initOnCreate(savedInstanceState: Bundle?) { window.setBackgroundDrawable(ColorDrawable(Color.TRANSPARENT)) window.decorView.setBackgroundColor(Color.TRANSPARENT) window.setGravity(Gravity.CENTER) @@ -34,30 +37,30 @@ smallLabel = DataBaseManager.get.queryElectricMarkerById(electricMarkerId) - markerIdView.text = smallLabel.markerId - locationNumberView.text = smallLabel.locationNumber - locationNameView.text = smallLabel.locationName - electricMarkerIdView.text = smallLabel.electricMarkerId - cableNameView.text = smallLabel.cableName - cableNumberView.text = smallLabel.cableNumber - lineView.text = smallLabel.line - voltageLevelView.text = smallLabel.voltageLevel - cableTypeView.text = smallLabel.cableType - cableSpecView.text = smallLabel.cableSpec - cableBrandView.text = smallLabel.cableBrand - cableStartView.text = smallLabel.cableStart - cableEndView.text = smallLabel.cableEnd - hasJointView.text = smallLabel.hasJoint - jointCreatorView.text = smallLabel.jointCreator - memo1View.text = smallLabel.memo1 - memo2View.text = smallLabel.memo2 - memo3View.text = smallLabel.memo3 + binding.markerIdView.text = smallLabel.markerId + binding.locationNumberView.text = smallLabel.locationNumber + binding.locationNameView.text = smallLabel.locationName + binding.electricMarkerIdView.text = smallLabel.electricMarkerId + binding.cableNameView.text = smallLabel.cableName + binding.cableNumberView.text = smallLabel.cableNumber + binding.lineView.text = smallLabel.line + binding.voltageLevelView.text = smallLabel.voltageLevel + binding.cableTypeView.text = smallLabel.cableType + binding.cableSpecView.text = smallLabel.cableSpec + binding.cableBrandView.text = smallLabel.cableBrand + binding.cableStartView.text = smallLabel.cableStart + binding.cableEndView.text = smallLabel.cableEnd + binding.hasJointView.text = smallLabel.hasJoint + binding.jointCreatorView.text = smallLabel.jointCreator + binding.memo1View.text = smallLabel.memo1 + binding.memo2View.text = smallLabel.memo2 + binding.memo3View.text = smallLabel.memo3 } override fun initEvent() { - closeView.setOnClickListener { finish() } + binding.closeView.setOnClickListener { finish() } - showImageView.setOnClickListener { + binding.showImageView.setOnClickListener { //查数据库 if (smallLabel.imagePath.isNullOrEmpty()) { "此标识器无图片".show(this) @@ -84,8 +87,6 @@ } } - override fun initLayoutView(): Int = R.layout.activity_electric_marker_detail - override fun observeRequestState() { } diff --git a/app/src/main/java/com/casic/electric/detector/view/InstallLabelActivity.kt b/app/src/main/java/com/casic/electric/detector/view/InstallLabelActivity.kt index 07626d6..d3a89ca 100644 --- a/app/src/main/java/com/casic/electric/detector/view/InstallLabelActivity.kt +++ b/app/src/main/java/com/casic/electric/detector/view/InstallLabelActivity.kt @@ -25,6 +25,7 @@ import com.casic.electric.detector.base.SerialPortActivity import com.casic.electric.detector.callback.ILocationListener import com.casic.electric.detector.callback.OnImageCompressListener +import com.casic.electric.detector.databinding.ActivityInstallLabelBinding import com.casic.electric.detector.extensions.* import com.casic.electric.detector.utils.* import com.casic.electric.detector.vm.TaskViewModel @@ -38,11 +39,6 @@ import com.pengxh.kt.lite.utils.WeakReferenceHandler import com.pengxh.kt.lite.vm.LoadState import com.pengxh.kt.lite.widget.dialog.NoNetworkDialog -import kotlinx.android.synthetic.main.activity_install_label.* -import kotlinx.android.synthetic.main.include_base_title.* -import kotlinx.android.synthetic.main.include_label_marker_attribute.* -import kotlinx.android.synthetic.main.include_label_object_attribute.* -import kotlinx.android.synthetic.main.include_open_camera.* import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.launch import kotlinx.coroutines.withContext @@ -51,7 +47,7 @@ import java.util.* @SuppressLint("SetTextI18n") -class InstallLabelActivity : SerialPortActivity(), Handler.Callback { +class InstallLabelActivity : SerialPortActivity(), Handler.Callback { private val kTag = "LabelActivity" private val context: Context = this@InstallLabelActivity @@ -64,20 +60,22 @@ private lateinit var imageAdapter: EditableImageAdapter private lateinit var taskViewModel: TaskViewModel - override fun initLayoutView(): Int = R.layout.activity_install_label + override fun initViewBinding(): ActivityInstallLabelBinding { + return ActivityInstallLabelBinding.inflate(layoutInflater) + } override fun setupTopBarLayout() { - titleView.text = "安装新标识器" - titleView.setTextColor(R.color.themeColor.convertColor(this)) + binding.titleInclude.titleView.text = "安装新标识器" + binding.titleInclude.titleView.setTextColor(R.color.themeColor.convertColor(this)) ImmersionBar.with(this) .statusBarDarkFont(true) .statusBarColor(R.color.mainBackground) .init() - initLayoutImmersionBar(rootView) + initLayoutImmersionBar(binding.rootView) } - override fun initData(savedInstanceState: Bundle?) { + override fun initOnCreate(savedInstanceState: Bundle?) { window.setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN or WindowManager.LayoutParams.SOFT_INPUT_ADJUST_PAN) weakReferenceHandler = WeakReferenceHandler(this) @@ -92,44 +90,44 @@ .build() //设置上次填写过的值 - objectCodeView.setText("objectCodeView".getDefaultValue()) - objectNameView.setText("objectNameView".getDefaultValue()) - inlineNameView.setText("inlineNameView".getDefaultValue()) - capacityView.setText("capacityView".getDefaultValue()) - transformerSpecView.setText("transformerSpecView".getDefaultValue()) - sLengthView.setText("sLengthView".getDefaultValue()) - sWidthView.setText("sWidthView".getDefaultValue()) - sHeightView.setText("sHeightView".getDefaultValue()) - inlineCountView.setText("inlineCountView".getDefaultValue()) - outlineCountView.setText("outlineCountView".getDefaultValue()) - bottomDepthView.setText("bottomDepthView".getDefaultValue()) - rowCountView.setText("rowCountView".getDefaultValue()) - rowHoleCountView.setText("rowHoleCountView".getDefaultValue()) - coverDepthView.setText("coverDepthView".getDefaultValue()) - remainingChannelsView.setText("remainingChannelsView".getDefaultValue()) - tieCableView1.setText("tieCableView1".getDefaultValue()) - tieCableView2.setText("tieCableView2".getDefaultValue()) - jointCountView.setText("jointCountView".getDefaultValue()) - casingHoleCountView.setText("casingHoleCountView".getDefaultValue()) - casingHoleDiameterView.setText("casingHoleDiameterView".getDefaultValue()) - heightView.setText("heightView".getDefaultValue()) - lineNumberView.setText("lineNumberView".getDefaultValue()) - inspectionUnitView.setText("inspectionUnitView".getDefaultValue()) - areaView.setText("areaView".getDefaultValue()) - roadView.setText("roadView".getDefaultValue()) - objectRemarkView1.setText("objectRemarkView1".getDefaultValue()) - objectRemarkView2.setText("objectRemarkView2".getDefaultValue()) - objectRemarkView3.setText("objectRemarkView3".getDefaultValue()) - ownerView.setText("ownerView".getDefaultValue()) - markerDepthView.setText("markerDepthView".getDefaultValue()) - markerCountView.setText("markerCountView".getDefaultValue()) - remarkView1.setText("remarkView1".getDefaultValue()) - remarkView2.setText("remarkView2".getDefaultValue()) - remarkView3.setText("remarkView3".getDefaultValue()) + binding.objectAttrInclude.objectCodeView.setText("objectCodeView".getDefaultValue()) + binding.objectAttrInclude.objectNameView.setText("objectNameView".getDefaultValue()) + binding.objectAttrInclude.inlineNameView.setText("inlineNameView".getDefaultValue()) + binding.objectAttrInclude.capacityView.setText("capacityView".getDefaultValue()) + binding.objectAttrInclude.transformerSpecView.setText("transformerSpecView".getDefaultValue()) + binding.objectAttrInclude.sLengthView.setText("sLengthView".getDefaultValue()) + binding.objectAttrInclude.sWidthView.setText("sWidthView".getDefaultValue()) + binding.objectAttrInclude.sHeightView.setText("sHeightView".getDefaultValue()) + binding.objectAttrInclude.inlineCountView.setText("inlineCountView".getDefaultValue()) + binding.objectAttrInclude.outlineCountView.setText("outlineCountView".getDefaultValue()) + binding.objectAttrInclude.bottomDepthView.setText("bottomDepthView".getDefaultValue()) + binding.objectAttrInclude.rowCountView.setText("rowCountView".getDefaultValue()) + binding.objectAttrInclude.rowHoleCountView.setText("rowHoleCountView".getDefaultValue()) + binding.objectAttrInclude.coverDepthView.setText("coverDepthView".getDefaultValue()) + binding.objectAttrInclude.remainingChannelsView.setText("remainingChannelsView".getDefaultValue()) + binding.objectAttrInclude.tieCableView1.setText("tieCableView1".getDefaultValue()) + binding.objectAttrInclude.tieCableView2.setText("tieCableView2".getDefaultValue()) + binding.objectAttrInclude.jointCountView.setText("jointCountView".getDefaultValue()) + binding.objectAttrInclude.casingHoleCountView.setText("casingHoleCountView".getDefaultValue()) + binding.objectAttrInclude.casingHoleDiameterView.setText("casingHoleDiameterView".getDefaultValue()) + binding.objectAttrInclude.heightView.setText("heightView".getDefaultValue()) + binding.objectAttrInclude.lineNumberView.setText("lineNumberView".getDefaultValue()) + binding.objectAttrInclude.inspectionUnitView.setText("inspectionUnitView".getDefaultValue()) + binding.objectAttrInclude.areaView.setText("areaView".getDefaultValue()) + binding.objectAttrInclude.roadView.setText("roadView".getDefaultValue()) + binding.objectAttrInclude.objectRemarkView1.setText("objectRemarkView1".getDefaultValue()) + binding.objectAttrInclude.objectRemarkView2.setText("objectRemarkView2".getDefaultValue()) + binding.objectAttrInclude.objectRemarkView3.setText("objectRemarkView3".getDefaultValue()) + binding.markerAttrInclude.ownerView.setText("ownerView".getDefaultValue()) + binding.markerAttrInclude.markerDepthView.setText("markerDepthView".getDefaultValue()) + binding.markerAttrInclude.markerCountView.setText("markerCountView".getDefaultValue()) + binding.markerAttrInclude.remarkView1.setText("remarkView1".getDefaultValue()) + binding.markerAttrInclude.remarkView2.setText("remarkView2".getDefaultValue()) + binding.markerAttrInclude.remarkView3.setText("remarkView3".getDefaultValue()) //初始化图片九宫格 imageAdapter = EditableImageAdapter(this, 3, 3f) - addImageRecyclerView.adapter = imageAdapter + binding.cameraInclude.addImageRecyclerView.adapter = imageAdapter taskViewModel = ViewModelProvider(this)[TaskViewModel::class.java] } @@ -142,101 +140,120 @@ LoadingDialogHub.dismiss() finish() } + else -> LoadingDialogHub.dismiss() } } } override fun initEvent() { - leftBackView.setOnClickListener { finish() } + binding.titleInclude.leftBackView.setOnClickListener { finish() } /**************************************************************************************/ - objectTypeSpinner.show(this, LocaleConstant.CONTENT_ARRAY, 0) - objectTypeSpinner.onItemSelectedListener = object : AdapterView.OnItemSelectedListener { - override fun onItemSelected( - parent: AdapterView<*>?, view: View?, position: Int, id: Long - ) { - when (position) { - 0 -> { - //选择电缆井 - objectModeView.text = "类型:" - wellCoverMaterialView.text = "井盖材质:" - bottomDepthNameView.text = "井深:" - setLayoutVisibility( - View.VISIBLE, View.GONE, View.VISIBLE, View.GONE, View.VISIBLE, - View.GONE, View.GONE, View.VISIBLE, View.GONE, View.VISIBLE, - View.GONE - ) - objectModeSpinner.show( - this@InstallLabelActivity, LocaleConstant.OBJECT_MODE_ARRAY, 0 - ) - wellCoverMaterialSpinner.show( - this@InstallLabelActivity, LocaleConstant.WELL_COVER_MATERIAL_ARRAY_1, 0 - ) + binding.objectAttrInclude.objectTypeSpinner.show(this, LocaleConstant.CONTENT_ARRAY, 0) + binding.objectAttrInclude.objectTypeSpinner.onItemSelectedListener = + object : AdapterView.OnItemSelectedListener { + override fun onItemSelected( + parent: AdapterView<*>?, view: View?, position: Int, id: Long + ) { + when (position) { + 0 -> { + //选择电缆井 + binding.objectAttrInclude.objectModeView.text = "类型:" + binding.objectAttrInclude.wellCoverMaterialView.text = "井盖材质:" + binding.objectAttrInclude.bottomDepthNameView.text = "井深:" + setLayoutVisibility( + View.VISIBLE, View.GONE, View.VISIBLE, View.GONE, View.VISIBLE, + View.GONE, View.GONE, View.VISIBLE, View.GONE, View.VISIBLE, + View.GONE + ) + binding.objectAttrInclude.objectModeSpinner.show( + this@InstallLabelActivity, LocaleConstant.OBJECT_MODE_ARRAY, 0 + ) + binding.objectAttrInclude.wellCoverMaterialSpinner.show( + this@InstallLabelActivity, + LocaleConstant.WELL_COVER_MATERIAL_ARRAY_1, + 0 + ) + } + + 1 -> { + //选择电缆通道 + binding.objectAttrInclude.bottomDepthNameView.text = "底部深度:" + setLayoutVisibility( + View.GONE, View.GONE, View.GONE, View.GONE, View.GONE, + View.GONE, View.GONE, View.VISIBLE, View.VISIBLE, View.VISIBLE, + View.GONE + ) + } + + 2 -> { + //选择配电房 + setLayoutVisibility( + View.GONE, View.GONE, View.GONE, View.VISIBLE, View.VISIBLE, + View.VISIBLE, View.GONE, View.GONE, View.GONE, View.GONE, + View.GONE + ) + } + + 3 -> { + //选择开关站 + setLayoutVisibility( + View.GONE, View.GONE, View.GONE, View.GONE, View.VISIBLE, + View.VISIBLE, View.VISIBLE, View.GONE, View.GONE, View.GONE, + View.GONE + ) + } + + 4 -> { + //选择台区 + binding.objectAttrInclude.objectModeView.text = "变压器型号:" + setLayoutVisibility( + View.VISIBLE, View.VISIBLE, View.GONE, View.GONE, View.GONE, + View.GONE, View.GONE, View.GONE, View.GONE, View.GONE, + View.GONE + ) + binding.objectAttrInclude.objectModeSpinner.show( + this@InstallLabelActivity, arrayOf("变压器 KVA"), 0 + ) + } + + 5 -> { + //选择杆塔 + binding.objectAttrInclude.wellCoverMaterialView.text = "对象材质:" + setLayoutVisibility( + View.GONE, View.GONE, View.VISIBLE, View.GONE, View.GONE, + View.GONE, View.GONE, View.GONE, View.GONE, View.GONE, + View.VISIBLE + ) + binding.objectAttrInclude.wellCoverMaterialSpinner.show( + this@InstallLabelActivity, + LocaleConstant.WELL_COVER_MATERIAL_ARRAY_2, + 0 + ) + } } - 1 -> { - //选择电缆通道 - bottomDepthNameView.text = "底部深度:" - setLayoutVisibility( - View.GONE, View.GONE, View.GONE, View.GONE, View.GONE, - View.GONE, View.GONE, View.VISIBLE, View.VISIBLE, View.VISIBLE, - View.GONE - ) - } - 2 -> { - //选择配电房 - setLayoutVisibility( - View.GONE, View.GONE, View.GONE, View.VISIBLE, View.VISIBLE, - View.VISIBLE, View.GONE, View.GONE, View.GONE, View.GONE, - View.GONE - ) - } - 3 -> { - //选择开关站 - setLayoutVisibility( - View.GONE, View.GONE, View.GONE, View.GONE, View.VISIBLE, - View.VISIBLE, View.VISIBLE, View.GONE, View.GONE, View.GONE, - View.GONE - ) - } - 4 -> { - //选择台区 - objectModeView.text = "变压器型号:" - setLayoutVisibility( - View.VISIBLE, View.VISIBLE, View.GONE, View.GONE, View.GONE, - View.GONE, View.GONE, View.GONE, View.GONE, View.GONE, - View.GONE - ) - objectModeSpinner.show( - this@InstallLabelActivity, arrayOf("变压器 KVA"), 0 - ) - } - 5 -> { - //选择杆塔 - wellCoverMaterialView.text = "对象材质:" - setLayoutVisibility( - View.GONE, View.GONE, View.VISIBLE, View.GONE, View.GONE, - View.GONE, View.GONE, View.GONE, View.GONE, View.GONE, - View.VISIBLE - ) - wellCoverMaterialSpinner.show( - this@InstallLabelActivity, LocaleConstant.WELL_COVER_MATERIAL_ARRAY_2, 0 - ) - } + } + + override fun onNothingSelected(parent: AdapterView<*>?) { + } } - override fun onNothingSelected(parent: AdapterView<*>?) { - - } - } - - cabinetTypeSpinner.show(this, LocaleConstant.CABINET_TYPE_ARRAY, 0) - casingMaterialSpinner.show(this, LocaleConstant.PIPE_MATERIAL_ARRAY, 0) - markerTypeSpinner.show(this, LocaleConstant.MARKER_TYPE_ARRAY, 0) + binding.objectAttrInclude.cabinetTypeSpinner.show( + this, + LocaleConstant.CABINET_TYPE_ARRAY, + 0 + ) + binding.objectAttrInclude.casingMaterialSpinner.show( + this, + LocaleConstant.PIPE_MATERIAL_ARRAY, + 0 + ) + binding.markerAttrInclude.markerTypeSpinner.show(this, LocaleConstant.MARKER_TYPE_ARRAY, 0) //电压等级-多选 - voltageLevelView.setOnClickListener { + binding.objectAttrInclude.voltageLevelView.setOnClickListener { AlertDialog.Builder(context) .setCancelable(false) .setIcon(R.mipmap.ic_launcher) @@ -255,12 +272,12 @@ } } - voltageLevelView.text = temp.reformat() + binding.objectAttrInclude.voltageLevelView.text = temp.reformat() }.show() } //交叉管道类型-多选 - crossPipeLineView.setOnClickListener { + binding.objectAttrInclude.crossPipeLineView.setOnClickListener { AlertDialog.Builder(context) .setCancelable(false) .setIcon(R.mipmap.ic_launcher) @@ -279,11 +296,11 @@ } } - crossPipeLineView.text = temp.reformat() + binding.objectAttrInclude.crossPipeLineView.text = temp.reformat() }.show() } - constructDateView.setOnClickListener { + binding.objectAttrInclude.constructDateView.setOnClickListener { val datePicker = DatePickerDialog( this, null, @@ -308,17 +325,18 @@ "建设年代不能早于当前日期".show(context) } else { datePicker.dismiss() - constructDateView.text = selectedDate + binding.objectAttrInclude.constructDateView.text = selectedDate } } } - installTimeView.text = System.currentTimeMillis().timestampToCompleteDate() + binding.markerAttrInclude.installTimeView.text = + System.currentTimeMillis().timestampToCompleteDate() LocationHub.getCurrentLocation(this, object : ILocationListener { override fun onAMapLocationGet(location: AMapLocation?) { if (location != null) { - lngView.text = location.longitude.toString() - latView.text = location.latitude.toString() + binding.markerAttrInclude.lngView.text = location.longitude.toString() + binding.markerAttrInclude.latView.text = location.latitude.toString() } else { "当前位置信号差,无法获取定位".show(context) } @@ -358,109 +376,109 @@ }) /**************************************************************************************/ - installButton.setOnClickListener { + binding.installButton.setOnClickListener { if (isNetworkConnected()) { val companyId = SaveKeyValues.getValue(LocaleConstant.USER_COMPANY_ID, "") as String - val itemPosition = objectTypeSpinner.selectedItemPosition + val itemPosition = binding.objectAttrInclude.objectTypeSpinner.selectedItemPosition val objectTypeCode = itemPosition + 1 - if (markerIdView.text.isNullOrBlank()) { + if (binding.markerAttrInclude.markerIdView.text.isNullOrBlank()) { "标识器ID不能为空,请读标识器".show(this) return@setOnClickListener } - if (constructDateView.text.isNullOrBlank()) { + if (binding.objectAttrInclude.constructDateView.text.isNullOrBlank()) { "请选择建设时间".show(this) return@setOnClickListener } - if (markerCountView.text.isNullOrBlank()) { + if (binding.markerAttrInclude.markerCountView.text.isNullOrBlank()) { "请输入电子标签数量".show(this) return@setOnClickListener } //保存默认值 - "objectCodeView".setDefaultValue(objectCodeView) - "objectNameView".setDefaultValue(objectNameView) - "inlineNameView".setDefaultValue(inlineNameView) - "capacityView".setDefaultValue(capacityView) - "transformerSpecView".setDefaultValue(transformerSpecView) - "sLengthView".setDefaultValue(sLengthView) - "sWidthView".setDefaultValue(sWidthView) - "sHeightView".setDefaultValue(sHeightView) - "inlineCountView".setDefaultValue(inlineCountView) - "outlineCountView".setDefaultValue(outlineCountView) - "bottomDepthView".setDefaultValue(bottomDepthView) - "rowCountView".setDefaultValue(rowCountView) - "rowHoleCountView".setDefaultValue(rowHoleCountView) - "coverDepthView".setDefaultValue(coverDepthView) - "remainingChannelsView".setDefaultValue(remainingChannelsView) - "tieCableView1".setDefaultValue(tieCableView1) - "tieCableView2".setDefaultValue(tieCableView2) - "jointCountView".setDefaultValue(jointCountView) - "casingHoleCountView".setDefaultValue(casingHoleCountView) - "casingHoleDiameterView".setDefaultValue(casingHoleDiameterView) - "heightView".setDefaultValue(heightView) - "lineNumberView".setDefaultValue(lineNumberView) - "inspectionUnitView".setDefaultValue(inspectionUnitView) - "areaView".setDefaultValue(areaView) - "roadView".setDefaultValue(roadView) - "objectRemarkView1".setDefaultValue(objectRemarkView1) - "objectRemarkView2".setDefaultValue(objectRemarkView2) - "objectRemarkView3".setDefaultValue(objectRemarkView3) - "ownerView".setDefaultValue(ownerView) - "markerDepthView".setDefaultValue(markerDepthView) - "markerCountView".setDefaultValue(markerCountView) - "remarkView1".setDefaultValue(remarkView1) - "remarkView2".setDefaultValue(remarkView2) - "remarkView3".setDefaultValue(remarkView3) + "objectCodeView".setDefaultValue(binding.objectAttrInclude.objectCodeView) + "objectNameView".setDefaultValue(binding.objectAttrInclude.objectNameView) + "inlineNameView".setDefaultValue(binding.objectAttrInclude.inlineNameView) + "capacityView".setDefaultValue(binding.objectAttrInclude.capacityView) + "transformerSpecView".setDefaultValue(binding.objectAttrInclude.transformerSpecView) + "sLengthView".setDefaultValue(binding.objectAttrInclude.sLengthView) + "sWidthView".setDefaultValue(binding.objectAttrInclude.sWidthView) + "sHeightView".setDefaultValue(binding.objectAttrInclude.sHeightView) + "inlineCountView".setDefaultValue(binding.objectAttrInclude.inlineCountView) + "outlineCountView".setDefaultValue(binding.objectAttrInclude.outlineCountView) + "bottomDepthView".setDefaultValue(binding.objectAttrInclude.bottomDepthView) + "rowCountView".setDefaultValue(binding.objectAttrInclude.rowCountView) + "rowHoleCountView".setDefaultValue(binding.objectAttrInclude.rowHoleCountView) + "coverDepthView".setDefaultValue(binding.objectAttrInclude.coverDepthView) + "remainingChannelsView".setDefaultValue(binding.objectAttrInclude.remainingChannelsView) + "tieCableView1".setDefaultValue(binding.objectAttrInclude.tieCableView1) + "tieCableView2".setDefaultValue(binding.objectAttrInclude.tieCableView2) + "jointCountView".setDefaultValue(binding.objectAttrInclude.jointCountView) + "casingHoleCountView".setDefaultValue(binding.objectAttrInclude.casingHoleCountView) + "casingHoleDiameterView".setDefaultValue(binding.objectAttrInclude.casingHoleDiameterView) + "heightView".setDefaultValue(binding.objectAttrInclude.heightView) + "lineNumberView".setDefaultValue(binding.objectAttrInclude.lineNumberView) + "inspectionUnitView".setDefaultValue(binding.objectAttrInclude.inspectionUnitView) + "areaView".setDefaultValue(binding.objectAttrInclude.areaView) + "roadView".setDefaultValue(binding.objectAttrInclude.roadView) + "objectRemarkView1".setDefaultValue(binding.objectAttrInclude.objectRemarkView1) + "objectRemarkView2".setDefaultValue(binding.objectAttrInclude.objectRemarkView2) + "objectRemarkView3".setDefaultValue(binding.objectAttrInclude.objectRemarkView3) + "ownerView".setDefaultValue(binding.markerAttrInclude.ownerView) + "markerDepthView".setDefaultValue(binding.markerAttrInclude.markerDepthView) + "markerCountView".setDefaultValue(binding.markerAttrInclude.markerCountView) + "remarkView1".setDefaultValue(binding.markerAttrInclude.remarkView1) + "remarkView2".setDefaultValue(binding.markerAttrInclude.remarkView2) + "remarkView3".setDefaultValue(binding.markerAttrInclude.remarkView3) val labelData = LabelDataClass( companyId, objectTypeCode.toString(), - objectCodeView.text.toString(), - objectNameView.text.toString(), - voltageLevelView.text.toString(), - objectModeSpinner.selectedItem.toString(), - "进线${inlineNameView.text}", - wellCoverMaterialSpinner.selectedItem.toString(), - "${capacityView.text}KVA", - transformerSpecView.text.toString(), - "${sLengthView.text}米长 x ${sWidthView.text}米宽 x ${sHeightView.text}米高", - inlineCountView.text.toString(), - outlineCountView.text.toString(), - cabinetTypeSpinner.selectedItem.toString(), - bottomDepthView.text.toString(), - "${rowCountView.text}排 x ${rowHoleCountView.text}孔", - "${coverDepthView.text}米", - crossPipeLineView.text.toString(), - remainingChannelsView.text.toString(), - tieCableView1.text.toString(), - tieCableView2.text.toString(), - jointCountView.text.toString(), - casingMaterialSpinner.selectedItem.toString(), - "${casingHoleCountView.text}孔,直径${casingHoleDiameterView.text}毫米", - "${heightView.text.toString()}米", - lineNumberView.text.toString(), - constructDateView.text.toString(), - inspectionUnitView.text.toString(), - areaView.text.toString(), - roadView.text.toString(), - objectRemarkView1.text.toString(), - objectRemarkView2.text.toString(), - objectRemarkView3.text.toString(), - markerIdView.text.toString(), - markerTypeSpinner.selectedItem.toString(), - ownerView.text.toString(), - markerDepthView.text.toString(), - installTimeView.text.toString(), - lngView.text.toString(), - latView.text.toString(), - markerCountView.text.toString(), - remarkView1.text.toString(), - remarkView2.text.toString(), - remarkView3.text.toString(), + binding.objectAttrInclude.objectCodeView.text.toString(), + binding.objectAttrInclude.objectNameView.text.toString(), + binding.objectAttrInclude.voltageLevelView.text.toString(), + binding.objectAttrInclude.objectModeSpinner.selectedItem.toString(), + "进线${binding.objectAttrInclude.inlineNameView.text}", + binding.objectAttrInclude.wellCoverMaterialSpinner.selectedItem.toString(), + "${binding.objectAttrInclude.capacityView.text}KVA", + binding.objectAttrInclude.transformerSpecView.text.toString(), + "${binding.objectAttrInclude.sLengthView.text}米长 x ${binding.objectAttrInclude.sWidthView.text}米宽 x ${binding.objectAttrInclude.sHeightView.text}米高", + binding.objectAttrInclude.inlineCountView.text.toString(), + binding.objectAttrInclude.outlineCountView.text.toString(), + binding.objectAttrInclude.cabinetTypeSpinner.selectedItem.toString(), + binding.objectAttrInclude.bottomDepthView.text.toString(), + "${binding.objectAttrInclude.rowCountView.text}排 x ${binding.objectAttrInclude.rowHoleCountView.text}孔", + "${binding.objectAttrInclude.coverDepthView.text}米", + binding.objectAttrInclude.crossPipeLineView.text.toString(), + binding.objectAttrInclude.remainingChannelsView.text.toString(), + binding.objectAttrInclude.tieCableView1.text.toString(), + binding.objectAttrInclude.tieCableView2.text.toString(), + binding.objectAttrInclude.jointCountView.text.toString(), + binding.objectAttrInclude.casingMaterialSpinner.selectedItem.toString(), + "${binding.objectAttrInclude.casingHoleCountView.text}孔,直径${binding.objectAttrInclude.casingHoleDiameterView.text}毫米", + "${binding.objectAttrInclude.heightView.text.toString()}米", + binding.objectAttrInclude.lineNumberView.text.toString(), + binding.objectAttrInclude.constructDateView.text.toString(), + binding.objectAttrInclude.inspectionUnitView.text.toString(), + binding.objectAttrInclude.areaView.text.toString(), + binding.objectAttrInclude.roadView.text.toString(), + binding.objectAttrInclude.objectRemarkView1.text.toString(), + binding.objectAttrInclude.objectRemarkView2.text.toString(), + binding.objectAttrInclude.objectRemarkView3.text.toString(), + binding.markerAttrInclude.markerIdView.text.toString(), + binding.markerAttrInclude.markerTypeSpinner.selectedItem.toString(), + binding.markerAttrInclude.ownerView.text.toString(), + binding.markerAttrInclude.markerDepthView.text.toString(), + binding.markerAttrInclude.installTimeView.text.toString(), + binding.markerAttrInclude.lngView.text.toString(), + binding.markerAttrInclude.latView.text.toString(), + binding.markerAttrInclude.markerCountView.text.toString(), + binding.markerAttrInclude.remarkView1.text.toString(), + binding.markerAttrInclude.remarkView2.text.toString(), + binding.markerAttrInclude.remarkView3.text.toString(), realPaths ) @@ -486,7 +504,7 @@ } } - readLabelButton.setOnClickListener { + binding.readLabelButton.setOnClickListener { gpioManager.setGpioHigh("18") LoadingDialogHub.show(this, "标识器读取中,请稍后...") @@ -534,7 +552,7 @@ //查本地库 val result = DataBaseManager.get.queryLabelById(markerId) if (result.isEmpty()) { - markerIdView.text = markerId + binding.markerAttrInclude.markerIdView.text = markerId } else { "此标识器已安装,请更换标识器!".show(this) } @@ -560,17 +578,17 @@ //根据选择类型控制界面某些区域显隐 private fun setLayoutVisibility(vararg args: Int) { - objectModeLayout.visibility = args[0] - inlineNameLayout.visibility = args[1] - wellCoverMaterialLayout.visibility = args[2] - capacityLayout.visibility = args[3] - sizeLayout.visibility = args[4] - inlineCountLayout.visibility = args[5] - outlineCountLayout.visibility = args[6] - wellDepthLayout.visibility = args[7] - pipeLineLayout.visibility = args[8] - jointCountLayout.visibility = args[9] - heightLayout.visibility = args[10] + binding.objectAttrInclude.objectModeLayout.visibility = args[0] + binding.objectAttrInclude.inlineNameLayout.visibility = args[1] + binding.objectAttrInclude.wellCoverMaterialLayout.visibility = args[2] + binding.objectAttrInclude.capacityLayout.visibility = args[3] + binding.objectAttrInclude.sizeLayout.visibility = args[4] + binding.objectAttrInclude.inlineCountLayout.visibility = args[5] + binding.objectAttrInclude.outlineCountLayout.visibility = args[6] + binding.objectAttrInclude.wellDepthLayout.visibility = args[7] + binding.objectAttrInclude.pipeLineLayout.visibility = args[8] + binding.objectAttrInclude.jointCountLayout.visibility = args[9] + binding.objectAttrInclude.heightLayout.visibility = args[10] } override fun onDestroy() { diff --git a/app/build.gradle b/app/build.gradle index 385cd21..093bae7 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -2,7 +2,6 @@ apply plugin: 'com.android.application' apply plugin: 'kotlin-android' -apply plugin: 'kotlin-android-extensions' apply plugin: 'org.greenrobot.greendao' android { @@ -70,7 +69,7 @@ implementation 'androidx.core:core-ktx:1.9.0' implementation 'androidx.appcompat:appcompat:1.6.1' //基础依赖库 - implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.0.4.9' + implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.0.5' //Google官方授权框架 implementation 'pub.devrel:easypermissions:3.0.0' //腾讯Android UI框架 diff --git a/app/src/main/java/com/casic/electric/detector/base/SerialPortActivity.kt b/app/src/main/java/com/casic/electric/detector/base/SerialPortActivity.kt index 3e5ba6c..ac05531 100644 --- a/app/src/main/java/com/casic/electric/detector/base/SerialPortActivity.kt +++ b/app/src/main/java/com/casic/electric/detector/base/SerialPortActivity.kt @@ -2,6 +2,7 @@ import android.os.Bundle import androidx.appcompat.app.AppCompatActivity +import androidx.viewbinding.ViewBinding import com.casic.electric.detector.uart.SerialPort import com.pengxh.kt.lite.extensions.show import java.io.IOException @@ -10,8 +11,9 @@ import java.security.InvalidParameterException -abstract class SerialPortActivity : AppCompatActivity() { +abstract class SerialPortActivity : AppCompatActivity() { + protected lateinit var binding: VB private var serialPort: SerialPort? = null var outputStream: OutputStream? = null private var inputStream: InputStream? = null @@ -39,9 +41,10 @@ override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) - setContentView(initLayoutView()) + binding = initViewBinding() + setContentView(binding.root) setupTopBarLayout() - initData(savedInstanceState) + initOnCreate(savedInstanceState) observeRequestState() initEvent() @@ -64,7 +67,7 @@ /** * 初始化xml布局 */ - abstract fun initLayoutView(): Int + abstract fun initViewBinding(): VB /** * 特定页面定制沉浸式状态栏 @@ -74,7 +77,7 @@ /** * 初始化默认数据 */ - abstract fun initData(savedInstanceState: Bundle?) + abstract fun initOnCreate(savedInstanceState: Bundle?) /** * 数据请求状态监听 diff --git a/app/src/main/java/com/casic/electric/detector/view/BigImageActivity.kt b/app/src/main/java/com/casic/electric/detector/view/BigImageActivity.kt index 040242e..aa1bdeb 100644 --- a/app/src/main/java/com/casic/electric/detector/view/BigImageActivity.kt +++ b/app/src/main/java/com/casic/electric/detector/view/BigImageActivity.kt @@ -11,22 +11,24 @@ import androidx.viewpager.widget.ViewPager import com.bumptech.glide.Glide import com.casic.electric.detector.R +import com.casic.electric.detector.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/electric/detector/view/ElectricMarkerDetailActivity.kt b/app/src/main/java/com/casic/electric/detector/view/ElectricMarkerDetailActivity.kt index b381d5c..d72edc5 100644 --- a/app/src/main/java/com/casic/electric/detector/view/ElectricMarkerDetailActivity.kt +++ b/app/src/main/java/com/casic/electric/detector/view/ElectricMarkerDetailActivity.kt @@ -4,8 +4,8 @@ import android.graphics.drawable.ColorDrawable import android.os.Bundle import android.view.Gravity -import com.casic.electric.detector.R import com.casic.electric.detector.bean.SmallLabelBean +import com.casic.electric.detector.databinding.ActivityElectricMarkerDetailBinding import com.casic.electric.detector.extensions.appendDownloadUrl import com.casic.electric.detector.utils.DataBaseManager import com.casic.electric.detector.utils.FileType @@ -15,13 +15,16 @@ import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show import com.pengxh.kt.lite.utils.Constant -import kotlinx.android.synthetic.main.activity_electric_marker_detail.* -class ElectricMarkerDetailActivity : KotlinBaseActivity() { +class ElectricMarkerDetailActivity : KotlinBaseActivity() { private lateinit var smallLabel: SmallLabelBean - override fun initData(savedInstanceState: Bundle?) { + override fun initViewBinding(): ActivityElectricMarkerDetailBinding { + return ActivityElectricMarkerDetailBinding.inflate(layoutInflater) + } + + override fun initOnCreate(savedInstanceState: Bundle?) { window.setBackgroundDrawable(ColorDrawable(Color.TRANSPARENT)) window.decorView.setBackgroundColor(Color.TRANSPARENT) window.setGravity(Gravity.CENTER) @@ -34,30 +37,30 @@ smallLabel = DataBaseManager.get.queryElectricMarkerById(electricMarkerId) - markerIdView.text = smallLabel.markerId - locationNumberView.text = smallLabel.locationNumber - locationNameView.text = smallLabel.locationName - electricMarkerIdView.text = smallLabel.electricMarkerId - cableNameView.text = smallLabel.cableName - cableNumberView.text = smallLabel.cableNumber - lineView.text = smallLabel.line - voltageLevelView.text = smallLabel.voltageLevel - cableTypeView.text = smallLabel.cableType - cableSpecView.text = smallLabel.cableSpec - cableBrandView.text = smallLabel.cableBrand - cableStartView.text = smallLabel.cableStart - cableEndView.text = smallLabel.cableEnd - hasJointView.text = smallLabel.hasJoint - jointCreatorView.text = smallLabel.jointCreator - memo1View.text = smallLabel.memo1 - memo2View.text = smallLabel.memo2 - memo3View.text = smallLabel.memo3 + binding.markerIdView.text = smallLabel.markerId + binding.locationNumberView.text = smallLabel.locationNumber + binding.locationNameView.text = smallLabel.locationName + binding.electricMarkerIdView.text = smallLabel.electricMarkerId + binding.cableNameView.text = smallLabel.cableName + binding.cableNumberView.text = smallLabel.cableNumber + binding.lineView.text = smallLabel.line + binding.voltageLevelView.text = smallLabel.voltageLevel + binding.cableTypeView.text = smallLabel.cableType + binding.cableSpecView.text = smallLabel.cableSpec + binding.cableBrandView.text = smallLabel.cableBrand + binding.cableStartView.text = smallLabel.cableStart + binding.cableEndView.text = smallLabel.cableEnd + binding.hasJointView.text = smallLabel.hasJoint + binding.jointCreatorView.text = smallLabel.jointCreator + binding.memo1View.text = smallLabel.memo1 + binding.memo2View.text = smallLabel.memo2 + binding.memo3View.text = smallLabel.memo3 } override fun initEvent() { - closeView.setOnClickListener { finish() } + binding.closeView.setOnClickListener { finish() } - showImageView.setOnClickListener { + binding.showImageView.setOnClickListener { //查数据库 if (smallLabel.imagePath.isNullOrEmpty()) { "此标识器无图片".show(this) @@ -84,8 +87,6 @@ } } - override fun initLayoutView(): Int = R.layout.activity_electric_marker_detail - override fun observeRequestState() { } diff --git a/app/src/main/java/com/casic/electric/detector/view/InstallLabelActivity.kt b/app/src/main/java/com/casic/electric/detector/view/InstallLabelActivity.kt index 07626d6..d3a89ca 100644 --- a/app/src/main/java/com/casic/electric/detector/view/InstallLabelActivity.kt +++ b/app/src/main/java/com/casic/electric/detector/view/InstallLabelActivity.kt @@ -25,6 +25,7 @@ import com.casic.electric.detector.base.SerialPortActivity import com.casic.electric.detector.callback.ILocationListener import com.casic.electric.detector.callback.OnImageCompressListener +import com.casic.electric.detector.databinding.ActivityInstallLabelBinding import com.casic.electric.detector.extensions.* import com.casic.electric.detector.utils.* import com.casic.electric.detector.vm.TaskViewModel @@ -38,11 +39,6 @@ import com.pengxh.kt.lite.utils.WeakReferenceHandler import com.pengxh.kt.lite.vm.LoadState import com.pengxh.kt.lite.widget.dialog.NoNetworkDialog -import kotlinx.android.synthetic.main.activity_install_label.* -import kotlinx.android.synthetic.main.include_base_title.* -import kotlinx.android.synthetic.main.include_label_marker_attribute.* -import kotlinx.android.synthetic.main.include_label_object_attribute.* -import kotlinx.android.synthetic.main.include_open_camera.* import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.launch import kotlinx.coroutines.withContext @@ -51,7 +47,7 @@ import java.util.* @SuppressLint("SetTextI18n") -class InstallLabelActivity : SerialPortActivity(), Handler.Callback { +class InstallLabelActivity : SerialPortActivity(), Handler.Callback { private val kTag = "LabelActivity" private val context: Context = this@InstallLabelActivity @@ -64,20 +60,22 @@ private lateinit var imageAdapter: EditableImageAdapter private lateinit var taskViewModel: TaskViewModel - override fun initLayoutView(): Int = R.layout.activity_install_label + override fun initViewBinding(): ActivityInstallLabelBinding { + return ActivityInstallLabelBinding.inflate(layoutInflater) + } override fun setupTopBarLayout() { - titleView.text = "安装新标识器" - titleView.setTextColor(R.color.themeColor.convertColor(this)) + binding.titleInclude.titleView.text = "安装新标识器" + binding.titleInclude.titleView.setTextColor(R.color.themeColor.convertColor(this)) ImmersionBar.with(this) .statusBarDarkFont(true) .statusBarColor(R.color.mainBackground) .init() - initLayoutImmersionBar(rootView) + initLayoutImmersionBar(binding.rootView) } - override fun initData(savedInstanceState: Bundle?) { + override fun initOnCreate(savedInstanceState: Bundle?) { window.setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN or WindowManager.LayoutParams.SOFT_INPUT_ADJUST_PAN) weakReferenceHandler = WeakReferenceHandler(this) @@ -92,44 +90,44 @@ .build() //设置上次填写过的值 - objectCodeView.setText("objectCodeView".getDefaultValue()) - objectNameView.setText("objectNameView".getDefaultValue()) - inlineNameView.setText("inlineNameView".getDefaultValue()) - capacityView.setText("capacityView".getDefaultValue()) - transformerSpecView.setText("transformerSpecView".getDefaultValue()) - sLengthView.setText("sLengthView".getDefaultValue()) - sWidthView.setText("sWidthView".getDefaultValue()) - sHeightView.setText("sHeightView".getDefaultValue()) - inlineCountView.setText("inlineCountView".getDefaultValue()) - outlineCountView.setText("outlineCountView".getDefaultValue()) - bottomDepthView.setText("bottomDepthView".getDefaultValue()) - rowCountView.setText("rowCountView".getDefaultValue()) - rowHoleCountView.setText("rowHoleCountView".getDefaultValue()) - coverDepthView.setText("coverDepthView".getDefaultValue()) - remainingChannelsView.setText("remainingChannelsView".getDefaultValue()) - tieCableView1.setText("tieCableView1".getDefaultValue()) - tieCableView2.setText("tieCableView2".getDefaultValue()) - jointCountView.setText("jointCountView".getDefaultValue()) - casingHoleCountView.setText("casingHoleCountView".getDefaultValue()) - casingHoleDiameterView.setText("casingHoleDiameterView".getDefaultValue()) - heightView.setText("heightView".getDefaultValue()) - lineNumberView.setText("lineNumberView".getDefaultValue()) - inspectionUnitView.setText("inspectionUnitView".getDefaultValue()) - areaView.setText("areaView".getDefaultValue()) - roadView.setText("roadView".getDefaultValue()) - objectRemarkView1.setText("objectRemarkView1".getDefaultValue()) - objectRemarkView2.setText("objectRemarkView2".getDefaultValue()) - objectRemarkView3.setText("objectRemarkView3".getDefaultValue()) - ownerView.setText("ownerView".getDefaultValue()) - markerDepthView.setText("markerDepthView".getDefaultValue()) - markerCountView.setText("markerCountView".getDefaultValue()) - remarkView1.setText("remarkView1".getDefaultValue()) - remarkView2.setText("remarkView2".getDefaultValue()) - remarkView3.setText("remarkView3".getDefaultValue()) + binding.objectAttrInclude.objectCodeView.setText("objectCodeView".getDefaultValue()) + binding.objectAttrInclude.objectNameView.setText("objectNameView".getDefaultValue()) + binding.objectAttrInclude.inlineNameView.setText("inlineNameView".getDefaultValue()) + binding.objectAttrInclude.capacityView.setText("capacityView".getDefaultValue()) + binding.objectAttrInclude.transformerSpecView.setText("transformerSpecView".getDefaultValue()) + binding.objectAttrInclude.sLengthView.setText("sLengthView".getDefaultValue()) + binding.objectAttrInclude.sWidthView.setText("sWidthView".getDefaultValue()) + binding.objectAttrInclude.sHeightView.setText("sHeightView".getDefaultValue()) + binding.objectAttrInclude.inlineCountView.setText("inlineCountView".getDefaultValue()) + binding.objectAttrInclude.outlineCountView.setText("outlineCountView".getDefaultValue()) + binding.objectAttrInclude.bottomDepthView.setText("bottomDepthView".getDefaultValue()) + binding.objectAttrInclude.rowCountView.setText("rowCountView".getDefaultValue()) + binding.objectAttrInclude.rowHoleCountView.setText("rowHoleCountView".getDefaultValue()) + binding.objectAttrInclude.coverDepthView.setText("coverDepthView".getDefaultValue()) + binding.objectAttrInclude.remainingChannelsView.setText("remainingChannelsView".getDefaultValue()) + binding.objectAttrInclude.tieCableView1.setText("tieCableView1".getDefaultValue()) + binding.objectAttrInclude.tieCableView2.setText("tieCableView2".getDefaultValue()) + binding.objectAttrInclude.jointCountView.setText("jointCountView".getDefaultValue()) + binding.objectAttrInclude.casingHoleCountView.setText("casingHoleCountView".getDefaultValue()) + binding.objectAttrInclude.casingHoleDiameterView.setText("casingHoleDiameterView".getDefaultValue()) + binding.objectAttrInclude.heightView.setText("heightView".getDefaultValue()) + binding.objectAttrInclude.lineNumberView.setText("lineNumberView".getDefaultValue()) + binding.objectAttrInclude.inspectionUnitView.setText("inspectionUnitView".getDefaultValue()) + binding.objectAttrInclude.areaView.setText("areaView".getDefaultValue()) + binding.objectAttrInclude.roadView.setText("roadView".getDefaultValue()) + binding.objectAttrInclude.objectRemarkView1.setText("objectRemarkView1".getDefaultValue()) + binding.objectAttrInclude.objectRemarkView2.setText("objectRemarkView2".getDefaultValue()) + binding.objectAttrInclude.objectRemarkView3.setText("objectRemarkView3".getDefaultValue()) + binding.markerAttrInclude.ownerView.setText("ownerView".getDefaultValue()) + binding.markerAttrInclude.markerDepthView.setText("markerDepthView".getDefaultValue()) + binding.markerAttrInclude.markerCountView.setText("markerCountView".getDefaultValue()) + binding.markerAttrInclude.remarkView1.setText("remarkView1".getDefaultValue()) + binding.markerAttrInclude.remarkView2.setText("remarkView2".getDefaultValue()) + binding.markerAttrInclude.remarkView3.setText("remarkView3".getDefaultValue()) //初始化图片九宫格 imageAdapter = EditableImageAdapter(this, 3, 3f) - addImageRecyclerView.adapter = imageAdapter + binding.cameraInclude.addImageRecyclerView.adapter = imageAdapter taskViewModel = ViewModelProvider(this)[TaskViewModel::class.java] } @@ -142,101 +140,120 @@ LoadingDialogHub.dismiss() finish() } + else -> LoadingDialogHub.dismiss() } } } override fun initEvent() { - leftBackView.setOnClickListener { finish() } + binding.titleInclude.leftBackView.setOnClickListener { finish() } /**************************************************************************************/ - objectTypeSpinner.show(this, LocaleConstant.CONTENT_ARRAY, 0) - objectTypeSpinner.onItemSelectedListener = object : AdapterView.OnItemSelectedListener { - override fun onItemSelected( - parent: AdapterView<*>?, view: View?, position: Int, id: Long - ) { - when (position) { - 0 -> { - //选择电缆井 - objectModeView.text = "类型:" - wellCoverMaterialView.text = "井盖材质:" - bottomDepthNameView.text = "井深:" - setLayoutVisibility( - View.VISIBLE, View.GONE, View.VISIBLE, View.GONE, View.VISIBLE, - View.GONE, View.GONE, View.VISIBLE, View.GONE, View.VISIBLE, - View.GONE - ) - objectModeSpinner.show( - this@InstallLabelActivity, LocaleConstant.OBJECT_MODE_ARRAY, 0 - ) - wellCoverMaterialSpinner.show( - this@InstallLabelActivity, LocaleConstant.WELL_COVER_MATERIAL_ARRAY_1, 0 - ) + binding.objectAttrInclude.objectTypeSpinner.show(this, LocaleConstant.CONTENT_ARRAY, 0) + binding.objectAttrInclude.objectTypeSpinner.onItemSelectedListener = + object : AdapterView.OnItemSelectedListener { + override fun onItemSelected( + parent: AdapterView<*>?, view: View?, position: Int, id: Long + ) { + when (position) { + 0 -> { + //选择电缆井 + binding.objectAttrInclude.objectModeView.text = "类型:" + binding.objectAttrInclude.wellCoverMaterialView.text = "井盖材质:" + binding.objectAttrInclude.bottomDepthNameView.text = "井深:" + setLayoutVisibility( + View.VISIBLE, View.GONE, View.VISIBLE, View.GONE, View.VISIBLE, + View.GONE, View.GONE, View.VISIBLE, View.GONE, View.VISIBLE, + View.GONE + ) + binding.objectAttrInclude.objectModeSpinner.show( + this@InstallLabelActivity, LocaleConstant.OBJECT_MODE_ARRAY, 0 + ) + binding.objectAttrInclude.wellCoverMaterialSpinner.show( + this@InstallLabelActivity, + LocaleConstant.WELL_COVER_MATERIAL_ARRAY_1, + 0 + ) + } + + 1 -> { + //选择电缆通道 + binding.objectAttrInclude.bottomDepthNameView.text = "底部深度:" + setLayoutVisibility( + View.GONE, View.GONE, View.GONE, View.GONE, View.GONE, + View.GONE, View.GONE, View.VISIBLE, View.VISIBLE, View.VISIBLE, + View.GONE + ) + } + + 2 -> { + //选择配电房 + setLayoutVisibility( + View.GONE, View.GONE, View.GONE, View.VISIBLE, View.VISIBLE, + View.VISIBLE, View.GONE, View.GONE, View.GONE, View.GONE, + View.GONE + ) + } + + 3 -> { + //选择开关站 + setLayoutVisibility( + View.GONE, View.GONE, View.GONE, View.GONE, View.VISIBLE, + View.VISIBLE, View.VISIBLE, View.GONE, View.GONE, View.GONE, + View.GONE + ) + } + + 4 -> { + //选择台区 + binding.objectAttrInclude.objectModeView.text = "变压器型号:" + setLayoutVisibility( + View.VISIBLE, View.VISIBLE, View.GONE, View.GONE, View.GONE, + View.GONE, View.GONE, View.GONE, View.GONE, View.GONE, + View.GONE + ) + binding.objectAttrInclude.objectModeSpinner.show( + this@InstallLabelActivity, arrayOf("变压器 KVA"), 0 + ) + } + + 5 -> { + //选择杆塔 + binding.objectAttrInclude.wellCoverMaterialView.text = "对象材质:" + setLayoutVisibility( + View.GONE, View.GONE, View.VISIBLE, View.GONE, View.GONE, + View.GONE, View.GONE, View.GONE, View.GONE, View.GONE, + View.VISIBLE + ) + binding.objectAttrInclude.wellCoverMaterialSpinner.show( + this@InstallLabelActivity, + LocaleConstant.WELL_COVER_MATERIAL_ARRAY_2, + 0 + ) + } } - 1 -> { - //选择电缆通道 - bottomDepthNameView.text = "底部深度:" - setLayoutVisibility( - View.GONE, View.GONE, View.GONE, View.GONE, View.GONE, - View.GONE, View.GONE, View.VISIBLE, View.VISIBLE, View.VISIBLE, - View.GONE - ) - } - 2 -> { - //选择配电房 - setLayoutVisibility( - View.GONE, View.GONE, View.GONE, View.VISIBLE, View.VISIBLE, - View.VISIBLE, View.GONE, View.GONE, View.GONE, View.GONE, - View.GONE - ) - } - 3 -> { - //选择开关站 - setLayoutVisibility( - View.GONE, View.GONE, View.GONE, View.GONE, View.VISIBLE, - View.VISIBLE, View.VISIBLE, View.GONE, View.GONE, View.GONE, - View.GONE - ) - } - 4 -> { - //选择台区 - objectModeView.text = "变压器型号:" - setLayoutVisibility( - View.VISIBLE, View.VISIBLE, View.GONE, View.GONE, View.GONE, - View.GONE, View.GONE, View.GONE, View.GONE, View.GONE, - View.GONE - ) - objectModeSpinner.show( - this@InstallLabelActivity, arrayOf("变压器 KVA"), 0 - ) - } - 5 -> { - //选择杆塔 - wellCoverMaterialView.text = "对象材质:" - setLayoutVisibility( - View.GONE, View.GONE, View.VISIBLE, View.GONE, View.GONE, - View.GONE, View.GONE, View.GONE, View.GONE, View.GONE, - View.VISIBLE - ) - wellCoverMaterialSpinner.show( - this@InstallLabelActivity, LocaleConstant.WELL_COVER_MATERIAL_ARRAY_2, 0 - ) - } + } + + override fun onNothingSelected(parent: AdapterView<*>?) { + } } - override fun onNothingSelected(parent: AdapterView<*>?) { - - } - } - - cabinetTypeSpinner.show(this, LocaleConstant.CABINET_TYPE_ARRAY, 0) - casingMaterialSpinner.show(this, LocaleConstant.PIPE_MATERIAL_ARRAY, 0) - markerTypeSpinner.show(this, LocaleConstant.MARKER_TYPE_ARRAY, 0) + binding.objectAttrInclude.cabinetTypeSpinner.show( + this, + LocaleConstant.CABINET_TYPE_ARRAY, + 0 + ) + binding.objectAttrInclude.casingMaterialSpinner.show( + this, + LocaleConstant.PIPE_MATERIAL_ARRAY, + 0 + ) + binding.markerAttrInclude.markerTypeSpinner.show(this, LocaleConstant.MARKER_TYPE_ARRAY, 0) //电压等级-多选 - voltageLevelView.setOnClickListener { + binding.objectAttrInclude.voltageLevelView.setOnClickListener { AlertDialog.Builder(context) .setCancelable(false) .setIcon(R.mipmap.ic_launcher) @@ -255,12 +272,12 @@ } } - voltageLevelView.text = temp.reformat() + binding.objectAttrInclude.voltageLevelView.text = temp.reformat() }.show() } //交叉管道类型-多选 - crossPipeLineView.setOnClickListener { + binding.objectAttrInclude.crossPipeLineView.setOnClickListener { AlertDialog.Builder(context) .setCancelable(false) .setIcon(R.mipmap.ic_launcher) @@ -279,11 +296,11 @@ } } - crossPipeLineView.text = temp.reformat() + binding.objectAttrInclude.crossPipeLineView.text = temp.reformat() }.show() } - constructDateView.setOnClickListener { + binding.objectAttrInclude.constructDateView.setOnClickListener { val datePicker = DatePickerDialog( this, null, @@ -308,17 +325,18 @@ "建设年代不能早于当前日期".show(context) } else { datePicker.dismiss() - constructDateView.text = selectedDate + binding.objectAttrInclude.constructDateView.text = selectedDate } } } - installTimeView.text = System.currentTimeMillis().timestampToCompleteDate() + binding.markerAttrInclude.installTimeView.text = + System.currentTimeMillis().timestampToCompleteDate() LocationHub.getCurrentLocation(this, object : ILocationListener { override fun onAMapLocationGet(location: AMapLocation?) { if (location != null) { - lngView.text = location.longitude.toString() - latView.text = location.latitude.toString() + binding.markerAttrInclude.lngView.text = location.longitude.toString() + binding.markerAttrInclude.latView.text = location.latitude.toString() } else { "当前位置信号差,无法获取定位".show(context) } @@ -358,109 +376,109 @@ }) /**************************************************************************************/ - installButton.setOnClickListener { + binding.installButton.setOnClickListener { if (isNetworkConnected()) { val companyId = SaveKeyValues.getValue(LocaleConstant.USER_COMPANY_ID, "") as String - val itemPosition = objectTypeSpinner.selectedItemPosition + val itemPosition = binding.objectAttrInclude.objectTypeSpinner.selectedItemPosition val objectTypeCode = itemPosition + 1 - if (markerIdView.text.isNullOrBlank()) { + if (binding.markerAttrInclude.markerIdView.text.isNullOrBlank()) { "标识器ID不能为空,请读标识器".show(this) return@setOnClickListener } - if (constructDateView.text.isNullOrBlank()) { + if (binding.objectAttrInclude.constructDateView.text.isNullOrBlank()) { "请选择建设时间".show(this) return@setOnClickListener } - if (markerCountView.text.isNullOrBlank()) { + if (binding.markerAttrInclude.markerCountView.text.isNullOrBlank()) { "请输入电子标签数量".show(this) return@setOnClickListener } //保存默认值 - "objectCodeView".setDefaultValue(objectCodeView) - "objectNameView".setDefaultValue(objectNameView) - "inlineNameView".setDefaultValue(inlineNameView) - "capacityView".setDefaultValue(capacityView) - "transformerSpecView".setDefaultValue(transformerSpecView) - "sLengthView".setDefaultValue(sLengthView) - "sWidthView".setDefaultValue(sWidthView) - "sHeightView".setDefaultValue(sHeightView) - "inlineCountView".setDefaultValue(inlineCountView) - "outlineCountView".setDefaultValue(outlineCountView) - "bottomDepthView".setDefaultValue(bottomDepthView) - "rowCountView".setDefaultValue(rowCountView) - "rowHoleCountView".setDefaultValue(rowHoleCountView) - "coverDepthView".setDefaultValue(coverDepthView) - "remainingChannelsView".setDefaultValue(remainingChannelsView) - "tieCableView1".setDefaultValue(tieCableView1) - "tieCableView2".setDefaultValue(tieCableView2) - "jointCountView".setDefaultValue(jointCountView) - "casingHoleCountView".setDefaultValue(casingHoleCountView) - "casingHoleDiameterView".setDefaultValue(casingHoleDiameterView) - "heightView".setDefaultValue(heightView) - "lineNumberView".setDefaultValue(lineNumberView) - "inspectionUnitView".setDefaultValue(inspectionUnitView) - "areaView".setDefaultValue(areaView) - "roadView".setDefaultValue(roadView) - "objectRemarkView1".setDefaultValue(objectRemarkView1) - "objectRemarkView2".setDefaultValue(objectRemarkView2) - "objectRemarkView3".setDefaultValue(objectRemarkView3) - "ownerView".setDefaultValue(ownerView) - "markerDepthView".setDefaultValue(markerDepthView) - "markerCountView".setDefaultValue(markerCountView) - "remarkView1".setDefaultValue(remarkView1) - "remarkView2".setDefaultValue(remarkView2) - "remarkView3".setDefaultValue(remarkView3) + "objectCodeView".setDefaultValue(binding.objectAttrInclude.objectCodeView) + "objectNameView".setDefaultValue(binding.objectAttrInclude.objectNameView) + "inlineNameView".setDefaultValue(binding.objectAttrInclude.inlineNameView) + "capacityView".setDefaultValue(binding.objectAttrInclude.capacityView) + "transformerSpecView".setDefaultValue(binding.objectAttrInclude.transformerSpecView) + "sLengthView".setDefaultValue(binding.objectAttrInclude.sLengthView) + "sWidthView".setDefaultValue(binding.objectAttrInclude.sWidthView) + "sHeightView".setDefaultValue(binding.objectAttrInclude.sHeightView) + "inlineCountView".setDefaultValue(binding.objectAttrInclude.inlineCountView) + "outlineCountView".setDefaultValue(binding.objectAttrInclude.outlineCountView) + "bottomDepthView".setDefaultValue(binding.objectAttrInclude.bottomDepthView) + "rowCountView".setDefaultValue(binding.objectAttrInclude.rowCountView) + "rowHoleCountView".setDefaultValue(binding.objectAttrInclude.rowHoleCountView) + "coverDepthView".setDefaultValue(binding.objectAttrInclude.coverDepthView) + "remainingChannelsView".setDefaultValue(binding.objectAttrInclude.remainingChannelsView) + "tieCableView1".setDefaultValue(binding.objectAttrInclude.tieCableView1) + "tieCableView2".setDefaultValue(binding.objectAttrInclude.tieCableView2) + "jointCountView".setDefaultValue(binding.objectAttrInclude.jointCountView) + "casingHoleCountView".setDefaultValue(binding.objectAttrInclude.casingHoleCountView) + "casingHoleDiameterView".setDefaultValue(binding.objectAttrInclude.casingHoleDiameterView) + "heightView".setDefaultValue(binding.objectAttrInclude.heightView) + "lineNumberView".setDefaultValue(binding.objectAttrInclude.lineNumberView) + "inspectionUnitView".setDefaultValue(binding.objectAttrInclude.inspectionUnitView) + "areaView".setDefaultValue(binding.objectAttrInclude.areaView) + "roadView".setDefaultValue(binding.objectAttrInclude.roadView) + "objectRemarkView1".setDefaultValue(binding.objectAttrInclude.objectRemarkView1) + "objectRemarkView2".setDefaultValue(binding.objectAttrInclude.objectRemarkView2) + "objectRemarkView3".setDefaultValue(binding.objectAttrInclude.objectRemarkView3) + "ownerView".setDefaultValue(binding.markerAttrInclude.ownerView) + "markerDepthView".setDefaultValue(binding.markerAttrInclude.markerDepthView) + "markerCountView".setDefaultValue(binding.markerAttrInclude.markerCountView) + "remarkView1".setDefaultValue(binding.markerAttrInclude.remarkView1) + "remarkView2".setDefaultValue(binding.markerAttrInclude.remarkView2) + "remarkView3".setDefaultValue(binding.markerAttrInclude.remarkView3) val labelData = LabelDataClass( companyId, objectTypeCode.toString(), - objectCodeView.text.toString(), - objectNameView.text.toString(), - voltageLevelView.text.toString(), - objectModeSpinner.selectedItem.toString(), - "进线${inlineNameView.text}", - wellCoverMaterialSpinner.selectedItem.toString(), - "${capacityView.text}KVA", - transformerSpecView.text.toString(), - "${sLengthView.text}米长 x ${sWidthView.text}米宽 x ${sHeightView.text}米高", - inlineCountView.text.toString(), - outlineCountView.text.toString(), - cabinetTypeSpinner.selectedItem.toString(), - bottomDepthView.text.toString(), - "${rowCountView.text}排 x ${rowHoleCountView.text}孔", - "${coverDepthView.text}米", - crossPipeLineView.text.toString(), - remainingChannelsView.text.toString(), - tieCableView1.text.toString(), - tieCableView2.text.toString(), - jointCountView.text.toString(), - casingMaterialSpinner.selectedItem.toString(), - "${casingHoleCountView.text}孔,直径${casingHoleDiameterView.text}毫米", - "${heightView.text.toString()}米", - lineNumberView.text.toString(), - constructDateView.text.toString(), - inspectionUnitView.text.toString(), - areaView.text.toString(), - roadView.text.toString(), - objectRemarkView1.text.toString(), - objectRemarkView2.text.toString(), - objectRemarkView3.text.toString(), - markerIdView.text.toString(), - markerTypeSpinner.selectedItem.toString(), - ownerView.text.toString(), - markerDepthView.text.toString(), - installTimeView.text.toString(), - lngView.text.toString(), - latView.text.toString(), - markerCountView.text.toString(), - remarkView1.text.toString(), - remarkView2.text.toString(), - remarkView3.text.toString(), + binding.objectAttrInclude.objectCodeView.text.toString(), + binding.objectAttrInclude.objectNameView.text.toString(), + binding.objectAttrInclude.voltageLevelView.text.toString(), + binding.objectAttrInclude.objectModeSpinner.selectedItem.toString(), + "进线${binding.objectAttrInclude.inlineNameView.text}", + binding.objectAttrInclude.wellCoverMaterialSpinner.selectedItem.toString(), + "${binding.objectAttrInclude.capacityView.text}KVA", + binding.objectAttrInclude.transformerSpecView.text.toString(), + "${binding.objectAttrInclude.sLengthView.text}米长 x ${binding.objectAttrInclude.sWidthView.text}米宽 x ${binding.objectAttrInclude.sHeightView.text}米高", + binding.objectAttrInclude.inlineCountView.text.toString(), + binding.objectAttrInclude.outlineCountView.text.toString(), + binding.objectAttrInclude.cabinetTypeSpinner.selectedItem.toString(), + binding.objectAttrInclude.bottomDepthView.text.toString(), + "${binding.objectAttrInclude.rowCountView.text}排 x ${binding.objectAttrInclude.rowHoleCountView.text}孔", + "${binding.objectAttrInclude.coverDepthView.text}米", + binding.objectAttrInclude.crossPipeLineView.text.toString(), + binding.objectAttrInclude.remainingChannelsView.text.toString(), + binding.objectAttrInclude.tieCableView1.text.toString(), + binding.objectAttrInclude.tieCableView2.text.toString(), + binding.objectAttrInclude.jointCountView.text.toString(), + binding.objectAttrInclude.casingMaterialSpinner.selectedItem.toString(), + "${binding.objectAttrInclude.casingHoleCountView.text}孔,直径${binding.objectAttrInclude.casingHoleDiameterView.text}毫米", + "${binding.objectAttrInclude.heightView.text.toString()}米", + binding.objectAttrInclude.lineNumberView.text.toString(), + binding.objectAttrInclude.constructDateView.text.toString(), + binding.objectAttrInclude.inspectionUnitView.text.toString(), + binding.objectAttrInclude.areaView.text.toString(), + binding.objectAttrInclude.roadView.text.toString(), + binding.objectAttrInclude.objectRemarkView1.text.toString(), + binding.objectAttrInclude.objectRemarkView2.text.toString(), + binding.objectAttrInclude.objectRemarkView3.text.toString(), + binding.markerAttrInclude.markerIdView.text.toString(), + binding.markerAttrInclude.markerTypeSpinner.selectedItem.toString(), + binding.markerAttrInclude.ownerView.text.toString(), + binding.markerAttrInclude.markerDepthView.text.toString(), + binding.markerAttrInclude.installTimeView.text.toString(), + binding.markerAttrInclude.lngView.text.toString(), + binding.markerAttrInclude.latView.text.toString(), + binding.markerAttrInclude.markerCountView.text.toString(), + binding.markerAttrInclude.remarkView1.text.toString(), + binding.markerAttrInclude.remarkView2.text.toString(), + binding.markerAttrInclude.remarkView3.text.toString(), realPaths ) @@ -486,7 +504,7 @@ } } - readLabelButton.setOnClickListener { + binding.readLabelButton.setOnClickListener { gpioManager.setGpioHigh("18") LoadingDialogHub.show(this, "标识器读取中,请稍后...") @@ -534,7 +552,7 @@ //查本地库 val result = DataBaseManager.get.queryLabelById(markerId) if (result.isEmpty()) { - markerIdView.text = markerId + binding.markerAttrInclude.markerIdView.text = markerId } else { "此标识器已安装,请更换标识器!".show(this) } @@ -560,17 +578,17 @@ //根据选择类型控制界面某些区域显隐 private fun setLayoutVisibility(vararg args: Int) { - objectModeLayout.visibility = args[0] - inlineNameLayout.visibility = args[1] - wellCoverMaterialLayout.visibility = args[2] - capacityLayout.visibility = args[3] - sizeLayout.visibility = args[4] - inlineCountLayout.visibility = args[5] - outlineCountLayout.visibility = args[6] - wellDepthLayout.visibility = args[7] - pipeLineLayout.visibility = args[8] - jointCountLayout.visibility = args[9] - heightLayout.visibility = args[10] + binding.objectAttrInclude.objectModeLayout.visibility = args[0] + binding.objectAttrInclude.inlineNameLayout.visibility = args[1] + binding.objectAttrInclude.wellCoverMaterialLayout.visibility = args[2] + binding.objectAttrInclude.capacityLayout.visibility = args[3] + binding.objectAttrInclude.sizeLayout.visibility = args[4] + binding.objectAttrInclude.inlineCountLayout.visibility = args[5] + binding.objectAttrInclude.outlineCountLayout.visibility = args[6] + binding.objectAttrInclude.wellDepthLayout.visibility = args[7] + binding.objectAttrInclude.pipeLineLayout.visibility = args[8] + binding.objectAttrInclude.jointCountLayout.visibility = args[9] + binding.objectAttrInclude.heightLayout.visibility = args[10] } override fun onDestroy() { diff --git a/app/src/main/java/com/casic/electric/detector/view/InstallSmallLabelActivity.kt b/app/src/main/java/com/casic/electric/detector/view/InstallSmallLabelActivity.kt index d6888ee..5bc2ac8 100644 --- a/app/src/main/java/com/casic/electric/detector/view/InstallSmallLabelActivity.kt +++ b/app/src/main/java/com/casic/electric/detector/view/InstallSmallLabelActivity.kt @@ -20,6 +20,7 @@ import com.casic.electric.detector.adapter.EditableImageAdapter import com.casic.electric.detector.base.SerialPortActivity import com.casic.electric.detector.callback.OnImageCompressListener +import com.casic.electric.detector.databinding.ActivityInstallSmallLabelBinding import com.casic.electric.detector.extensions.* import com.casic.electric.detector.utils.* import com.casic.electric.detector.vm.TaskViewModel @@ -36,18 +37,16 @@ import com.pengxh.kt.lite.utils.WeakReferenceHandler import com.pengxh.kt.lite.vm.LoadState import com.pengxh.kt.lite.widget.dialog.NoNetworkDialog -import kotlinx.android.synthetic.main.activity_install_small_label.* -import kotlinx.android.synthetic.main.include_base_title.* -import kotlinx.android.synthetic.main.include_open_camera.* -import kotlinx.android.synthetic.main.include_small_label_object_attribute.* import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.launch import kotlinx.coroutines.withContext import java.io.File +import java.io.FileWriter import java.io.IOException @SuppressLint("SetTextI18n") -class InstallSmallLabelActivity : SerialPortActivity(), Handler.Callback { +class InstallSmallLabelActivity : SerialPortActivity(), + Handler.Callback { private val kTag = "SmallLabelActivity" private val context: Context = this@InstallSmallLabelActivity @@ -59,20 +58,22 @@ private lateinit var imageAdapter: EditableImageAdapter private lateinit var taskViewModel: TaskViewModel - override fun initLayoutView(): Int = R.layout.activity_install_small_label + override fun initViewBinding(): ActivityInstallSmallLabelBinding { + return ActivityInstallSmallLabelBinding.inflate(layoutInflater) + } override fun setupTopBarLayout() { - titleView.text = "安装新电子标签" - titleView.setTextColor(R.color.themeColor.convertColor(this)) + binding.titleInclude.titleView.text = "安装新电子标签" + binding.titleInclude.titleView.setTextColor(R.color.themeColor.convertColor(this)) ImmersionBar.with(this) .statusBarDarkFont(true) .statusBarColor(R.color.mainBackground) .init() - initLayoutImmersionBar(rootView) + initLayoutImmersionBar(binding.rootView) } - override fun initData(savedInstanceState: Bundle?) { + override fun initOnCreate(savedInstanceState: Bundle?) { window.setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN or WindowManager.LayoutParams.SOFT_INPUT_ADJUST_PAN) weakReferenceHandler = WeakReferenceHandler(this) @@ -87,23 +88,23 @@ .build() //设置上次填写过的值 - cableNumberView.setText("cableNumberView".getDefaultValue()) - cableNameView.setText("cableNameView".getDefaultValue()) - lineView.setText("lineView".getDefaultValue()) - voltageLevelView.setText("voltageLevelView".getDefaultValue()) - cableModelView.setText("cableModelView".getDefaultValue()) - cableSpecView.setText("cableSpecView".getDefaultValue()) - cableBrandView.setText("cableBrandView".getDefaultValue()) - cableStartView.setText("cableStartView".getDefaultValue()) - cableEndView.setText("cableEndView".getDefaultValue()) - jointCreatorView.setText("jointCreatorView".getDefaultValue()) - objectRemarkView1.setText("objectRemarkView1".getDefaultValue()) - objectRemarkView2.setText("objectRemarkView2".getDefaultValue()) - objectRemarkView3.setText("objectRemarkView3".getDefaultValue()) + binding.objectAttrInclude.cableNumberView.setText("cableNumberView".getDefaultValue()) + binding.objectAttrInclude.cableNameView.setText("cableNameView".getDefaultValue()) + binding.objectAttrInclude.lineView.setText("lineView".getDefaultValue()) + binding.objectAttrInclude.voltageLevelView.setText("voltageLevelView".getDefaultValue()) + binding.objectAttrInclude.cableModelView.setText("cableModelView".getDefaultValue()) + binding.objectAttrInclude.cableSpecView.setText("cableSpecView".getDefaultValue()) + binding.objectAttrInclude.cableBrandView.setText("cableBrandView".getDefaultValue()) + binding.objectAttrInclude.cableStartView.setText("cableStartView".getDefaultValue()) + binding.objectAttrInclude.cableEndView.setText("cableEndView".getDefaultValue()) + binding.objectAttrInclude.jointCreatorView.setText("jointCreatorView".getDefaultValue()) + binding.objectAttrInclude.objectRemarkView1.setText("objectRemarkView1".getDefaultValue()) + binding.objectAttrInclude.objectRemarkView2.setText("objectRemarkView2".getDefaultValue()) + binding.objectAttrInclude.objectRemarkView3.setText("objectRemarkView3".getDefaultValue()) //初始化图片九宫格 imageAdapter = EditableImageAdapter(this, 3, 3f) - addImageRecyclerView.adapter = imageAdapter + binding.cameraInclude.addImageRecyclerView.adapter = imageAdapter taskViewModel = ViewModelProvider(this)[TaskViewModel::class.java] } @@ -116,20 +117,31 @@ LoadingDialogHub.dismiss() finish() } + else -> LoadingDialogHub.dismiss() } } } override fun initEvent() { - leftBackView.setOnClickListener { finish() } + binding.titleInclude.leftBackView.setOnClickListener { finish() } /**************************************************************************************/ //TODO 读取电子标签为未实现 - readElectricTagButton.setOnClickListener { - gpioManager.setGpioHigh("18") + var fileWriter: FileWriter + try { + fileWriter = FileWriter("/sys/class/newmobi_gpio/newmobi_gpio/Gpio") + fileWriter.write("99") + fileWriter.close() + } catch (e: Exception) { + e.printStackTrace() + } + + gpioManager.setGpioHigh("21") + + binding.readElectricTagButton.setOnClickListener { LoadingDialogHub.show(this, "电子标签读取中,请稍后...") soundResId = soundPool.load(this, R.raw.ring3, 1) @@ -141,32 +153,34 @@ weakReferenceHandler.postDelayed({ try { // 发送读标识器或搜索信号 - outputStream?.write("00".toByteArray()) - outputStream?.flush() + fileWriter = FileWriter("/sys/class/newmobi_gpio/newmobi_gpio/Gpio_inout") + fileWriter.write("01") + fileWriter.close() } catch (e: IOException) { e.printStackTrace() } - }, 1000) + }, 500) } - bindMarkerSpinner.show(this, arrayOf("是", "否"), 0) - bindMarkerSpinner.onItemSelectedListener = object : AdapterView.OnItemSelectedListener { - override fun onItemSelected( - parent: AdapterView<*>?, view: View?, position: Int, id: Long - ) { - if (position == 0) { - markerLayout.visibility = View.VISIBLE - } else { - markerLayout.visibility = View.GONE + binding.objectAttrInclude.bindMarkerSpinner.show(this, arrayOf("是", "否"), 0) + binding.objectAttrInclude.bindMarkerSpinner.onItemSelectedListener = + object : AdapterView.OnItemSelectedListener { + override fun onItemSelected( + parent: AdapterView<*>?, view: View?, position: Int, id: Long + ) { + if (position == 0) { + binding.objectAttrInclude.markerLayout.visibility = View.VISIBLE + } else { + binding.objectAttrInclude.markerLayout.visibility = View.GONE + } + } + + override fun onNothingSelected(parent: AdapterView<*>?) { + } } - override fun onNothingSelected(parent: AdapterView<*>?) { - - } - } - - middleJointSpinner.show(this, arrayOf("有", "无"), 0) + binding.objectAttrInclude.middleJointSpinner.show(this, arrayOf("有", "无"), 0) imageAdapter.setOnItemClickListener(object : EditableImageAdapter.OnItemClickListener { override fun onAddImageClick() { @@ -201,60 +215,60 @@ }) /**************************************************************************************/ - installButton.setOnClickListener { + binding.installButton.setOnClickListener { if (isNetworkConnected()) { val companyId = SaveKeyValues.getValue(LocaleConstant.USER_COMPANY_ID, "") as String - if (markerIdView.text.isNullOrBlank()) { + if (binding.objectAttrInclude.markerIdView.text.isNullOrBlank()) { "标识器ID不能为空,请读标识器".show(this) return@setOnClickListener } - if (smallLabelIdView.text.isNullOrBlank()) { + if (binding.objectAttrInclude.smallLabelIdView.text.isNullOrBlank()) { "电子标签ID不能为空,请读电子标签".show(this) return@setOnClickListener } - if (voltageLevelView.text.isNullOrBlank()) { + if (binding.objectAttrInclude.voltageLevelView.text.isNullOrBlank()) { "电压等级不能为空,请输入电压等级".show(this) return@setOnClickListener } //保存默认值 - "cableNumberView".setDefaultValue(cableNumberView) - "cableNameView".setDefaultValue(cableNameView) - "lineView".setDefaultValue(lineView) - "voltageLevelView".setDefaultValue(voltageLevelView) - "cableModelView".setDefaultValue(cableModelView) - "cableSpecView".setDefaultValue(cableSpecView) - "cableBrandView".setDefaultValue(cableBrandView) - "cableStartView".setDefaultValue(cableStartView) - "cableEndView".setDefaultValue(cableEndView) - "jointCreatorView".setDefaultValue(jointCreatorView) - "objectRemarkView1".setDefaultValue(objectRemarkView1) - "objectRemarkView2".setDefaultValue(objectRemarkView2) - "objectRemarkView3".setDefaultValue(objectRemarkView3) + "cableNumberView".setDefaultValue(binding.objectAttrInclude.cableNumberView) + "cableNameView".setDefaultValue(binding.objectAttrInclude.cableNameView) + "lineView".setDefaultValue(binding.objectAttrInclude.lineView) + "voltageLevelView".setDefaultValue(binding.objectAttrInclude.voltageLevelView) + "cableModelView".setDefaultValue(binding.objectAttrInclude.cableModelView) + "cableSpecView".setDefaultValue(binding.objectAttrInclude.cableSpecView) + "cableBrandView".setDefaultValue(binding.objectAttrInclude.cableBrandView) + "cableStartView".setDefaultValue(binding.objectAttrInclude.cableStartView) + "cableEndView".setDefaultValue(binding.objectAttrInclude.cableEndView) + "jointCreatorView".setDefaultValue(binding.objectAttrInclude.jointCreatorView) + "objectRemarkView1".setDefaultValue(binding.objectAttrInclude.objectRemarkView1) + "objectRemarkView2".setDefaultValue(binding.objectAttrInclude.objectRemarkView2) + "objectRemarkView3".setDefaultValue(binding.objectAttrInclude.objectRemarkView3) val smallLabelData = SmallLabelDataClass( companyId, - markerIdView.text.toString(), - markerNumberView.text.toString(), - markerNameView.text.toString(), - smallLabelIdView.text.toString(), - cableNameView.toString(), - cableNumberView.toString(), - lineView.text.toString(), - voltageLevelView.toString(), - cableModelView.text.toString(), - cableSpecView.text.toString(), - cableBrandView.text.toString(), - cableStartView.text.toString(), - cableEndView.text.toString(), - middleJointSpinner.selectedItem.toString(), - jointCreatorView.text.toString(), - objectRemarkView1.text.toString(), - objectRemarkView2.text.toString(), - objectRemarkView3.text.toString(), + binding.objectAttrInclude.markerIdView.text.toString(), + binding.objectAttrInclude.markerNumberView.text.toString(), + binding.objectAttrInclude.markerNameView.text.toString(), + binding.objectAttrInclude.smallLabelIdView.text.toString(), + binding.objectAttrInclude.cableNameView.toString(), + binding.objectAttrInclude.cableNumberView.toString(), + binding.objectAttrInclude.lineView.text.toString(), + binding.objectAttrInclude.voltageLevelView.toString(), + binding.objectAttrInclude.cableModelView.text.toString(), + binding.objectAttrInclude.cableSpecView.text.toString(), + binding.objectAttrInclude.cableBrandView.text.toString(), + binding.objectAttrInclude.cableStartView.text.toString(), + binding.objectAttrInclude.cableEndView.text.toString(), + binding.objectAttrInclude.middleJointSpinner.selectedItem.toString(), + binding.objectAttrInclude.jointCreatorView.text.toString(), + binding.objectAttrInclude.objectRemarkView1.text.toString(), + binding.objectAttrInclude.objectRemarkView2.text.toString(), + binding.objectAttrInclude.objectRemarkView3.text.toString(), realPaths ) @@ -280,7 +294,7 @@ } } - readLabelButton.setOnClickListener { + binding.readLabelButton.setOnClickListener { gpioManager.setGpioHigh("18") LoadingDialogHub.show(this, "标识器读取中,请稍后...") @@ -328,7 +342,7 @@ //查本地库 val result = DataBaseManager.get.queryLabelById(markerId) if (result.isEmpty()) { - markerIdView.text = markerId + binding.objectAttrInclude.markerIdView.text = markerId } else { "此标识器已安装,请更换标识器!".show(this) } diff --git a/app/build.gradle b/app/build.gradle index 385cd21..093bae7 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -2,7 +2,6 @@ apply plugin: 'com.android.application' apply plugin: 'kotlin-android' -apply plugin: 'kotlin-android-extensions' apply plugin: 'org.greenrobot.greendao' android { @@ -70,7 +69,7 @@ implementation 'androidx.core:core-ktx:1.9.0' implementation 'androidx.appcompat:appcompat:1.6.1' //基础依赖库 - implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.0.4.9' + implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.0.5' //Google官方授权框架 implementation 'pub.devrel:easypermissions:3.0.0' //腾讯Android UI框架 diff --git a/app/src/main/java/com/casic/electric/detector/base/SerialPortActivity.kt b/app/src/main/java/com/casic/electric/detector/base/SerialPortActivity.kt index 3e5ba6c..ac05531 100644 --- a/app/src/main/java/com/casic/electric/detector/base/SerialPortActivity.kt +++ b/app/src/main/java/com/casic/electric/detector/base/SerialPortActivity.kt @@ -2,6 +2,7 @@ import android.os.Bundle import androidx.appcompat.app.AppCompatActivity +import androidx.viewbinding.ViewBinding import com.casic.electric.detector.uart.SerialPort import com.pengxh.kt.lite.extensions.show import java.io.IOException @@ -10,8 +11,9 @@ import java.security.InvalidParameterException -abstract class SerialPortActivity : AppCompatActivity() { +abstract class SerialPortActivity : AppCompatActivity() { + protected lateinit var binding: VB private var serialPort: SerialPort? = null var outputStream: OutputStream? = null private var inputStream: InputStream? = null @@ -39,9 +41,10 @@ override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) - setContentView(initLayoutView()) + binding = initViewBinding() + setContentView(binding.root) setupTopBarLayout() - initData(savedInstanceState) + initOnCreate(savedInstanceState) observeRequestState() initEvent() @@ -64,7 +67,7 @@ /** * 初始化xml布局 */ - abstract fun initLayoutView(): Int + abstract fun initViewBinding(): VB /** * 特定页面定制沉浸式状态栏 @@ -74,7 +77,7 @@ /** * 初始化默认数据 */ - abstract fun initData(savedInstanceState: Bundle?) + abstract fun initOnCreate(savedInstanceState: Bundle?) /** * 数据请求状态监听 diff --git a/app/src/main/java/com/casic/electric/detector/view/BigImageActivity.kt b/app/src/main/java/com/casic/electric/detector/view/BigImageActivity.kt index 040242e..aa1bdeb 100644 --- a/app/src/main/java/com/casic/electric/detector/view/BigImageActivity.kt +++ b/app/src/main/java/com/casic/electric/detector/view/BigImageActivity.kt @@ -11,22 +11,24 @@ import androidx.viewpager.widget.ViewPager import com.bumptech.glide.Glide import com.casic.electric.detector.R +import com.casic.electric.detector.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/electric/detector/view/ElectricMarkerDetailActivity.kt b/app/src/main/java/com/casic/electric/detector/view/ElectricMarkerDetailActivity.kt index b381d5c..d72edc5 100644 --- a/app/src/main/java/com/casic/electric/detector/view/ElectricMarkerDetailActivity.kt +++ b/app/src/main/java/com/casic/electric/detector/view/ElectricMarkerDetailActivity.kt @@ -4,8 +4,8 @@ import android.graphics.drawable.ColorDrawable import android.os.Bundle import android.view.Gravity -import com.casic.electric.detector.R import com.casic.electric.detector.bean.SmallLabelBean +import com.casic.electric.detector.databinding.ActivityElectricMarkerDetailBinding import com.casic.electric.detector.extensions.appendDownloadUrl import com.casic.electric.detector.utils.DataBaseManager import com.casic.electric.detector.utils.FileType @@ -15,13 +15,16 @@ import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show import com.pengxh.kt.lite.utils.Constant -import kotlinx.android.synthetic.main.activity_electric_marker_detail.* -class ElectricMarkerDetailActivity : KotlinBaseActivity() { +class ElectricMarkerDetailActivity : KotlinBaseActivity() { private lateinit var smallLabel: SmallLabelBean - override fun initData(savedInstanceState: Bundle?) { + override fun initViewBinding(): ActivityElectricMarkerDetailBinding { + return ActivityElectricMarkerDetailBinding.inflate(layoutInflater) + } + + override fun initOnCreate(savedInstanceState: Bundle?) { window.setBackgroundDrawable(ColorDrawable(Color.TRANSPARENT)) window.decorView.setBackgroundColor(Color.TRANSPARENT) window.setGravity(Gravity.CENTER) @@ -34,30 +37,30 @@ smallLabel = DataBaseManager.get.queryElectricMarkerById(electricMarkerId) - markerIdView.text = smallLabel.markerId - locationNumberView.text = smallLabel.locationNumber - locationNameView.text = smallLabel.locationName - electricMarkerIdView.text = smallLabel.electricMarkerId - cableNameView.text = smallLabel.cableName - cableNumberView.text = smallLabel.cableNumber - lineView.text = smallLabel.line - voltageLevelView.text = smallLabel.voltageLevel - cableTypeView.text = smallLabel.cableType - cableSpecView.text = smallLabel.cableSpec - cableBrandView.text = smallLabel.cableBrand - cableStartView.text = smallLabel.cableStart - cableEndView.text = smallLabel.cableEnd - hasJointView.text = smallLabel.hasJoint - jointCreatorView.text = smallLabel.jointCreator - memo1View.text = smallLabel.memo1 - memo2View.text = smallLabel.memo2 - memo3View.text = smallLabel.memo3 + binding.markerIdView.text = smallLabel.markerId + binding.locationNumberView.text = smallLabel.locationNumber + binding.locationNameView.text = smallLabel.locationName + binding.electricMarkerIdView.text = smallLabel.electricMarkerId + binding.cableNameView.text = smallLabel.cableName + binding.cableNumberView.text = smallLabel.cableNumber + binding.lineView.text = smallLabel.line + binding.voltageLevelView.text = smallLabel.voltageLevel + binding.cableTypeView.text = smallLabel.cableType + binding.cableSpecView.text = smallLabel.cableSpec + binding.cableBrandView.text = smallLabel.cableBrand + binding.cableStartView.text = smallLabel.cableStart + binding.cableEndView.text = smallLabel.cableEnd + binding.hasJointView.text = smallLabel.hasJoint + binding.jointCreatorView.text = smallLabel.jointCreator + binding.memo1View.text = smallLabel.memo1 + binding.memo2View.text = smallLabel.memo2 + binding.memo3View.text = smallLabel.memo3 } override fun initEvent() { - closeView.setOnClickListener { finish() } + binding.closeView.setOnClickListener { finish() } - showImageView.setOnClickListener { + binding.showImageView.setOnClickListener { //查数据库 if (smallLabel.imagePath.isNullOrEmpty()) { "此标识器无图片".show(this) @@ -84,8 +87,6 @@ } } - override fun initLayoutView(): Int = R.layout.activity_electric_marker_detail - override fun observeRequestState() { } diff --git a/app/src/main/java/com/casic/electric/detector/view/InstallLabelActivity.kt b/app/src/main/java/com/casic/electric/detector/view/InstallLabelActivity.kt index 07626d6..d3a89ca 100644 --- a/app/src/main/java/com/casic/electric/detector/view/InstallLabelActivity.kt +++ b/app/src/main/java/com/casic/electric/detector/view/InstallLabelActivity.kt @@ -25,6 +25,7 @@ import com.casic.electric.detector.base.SerialPortActivity import com.casic.electric.detector.callback.ILocationListener import com.casic.electric.detector.callback.OnImageCompressListener +import com.casic.electric.detector.databinding.ActivityInstallLabelBinding import com.casic.electric.detector.extensions.* import com.casic.electric.detector.utils.* import com.casic.electric.detector.vm.TaskViewModel @@ -38,11 +39,6 @@ import com.pengxh.kt.lite.utils.WeakReferenceHandler import com.pengxh.kt.lite.vm.LoadState import com.pengxh.kt.lite.widget.dialog.NoNetworkDialog -import kotlinx.android.synthetic.main.activity_install_label.* -import kotlinx.android.synthetic.main.include_base_title.* -import kotlinx.android.synthetic.main.include_label_marker_attribute.* -import kotlinx.android.synthetic.main.include_label_object_attribute.* -import kotlinx.android.synthetic.main.include_open_camera.* import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.launch import kotlinx.coroutines.withContext @@ -51,7 +47,7 @@ import java.util.* @SuppressLint("SetTextI18n") -class InstallLabelActivity : SerialPortActivity(), Handler.Callback { +class InstallLabelActivity : SerialPortActivity(), Handler.Callback { private val kTag = "LabelActivity" private val context: Context = this@InstallLabelActivity @@ -64,20 +60,22 @@ private lateinit var imageAdapter: EditableImageAdapter private lateinit var taskViewModel: TaskViewModel - override fun initLayoutView(): Int = R.layout.activity_install_label + override fun initViewBinding(): ActivityInstallLabelBinding { + return ActivityInstallLabelBinding.inflate(layoutInflater) + } override fun setupTopBarLayout() { - titleView.text = "安装新标识器" - titleView.setTextColor(R.color.themeColor.convertColor(this)) + binding.titleInclude.titleView.text = "安装新标识器" + binding.titleInclude.titleView.setTextColor(R.color.themeColor.convertColor(this)) ImmersionBar.with(this) .statusBarDarkFont(true) .statusBarColor(R.color.mainBackground) .init() - initLayoutImmersionBar(rootView) + initLayoutImmersionBar(binding.rootView) } - override fun initData(savedInstanceState: Bundle?) { + override fun initOnCreate(savedInstanceState: Bundle?) { window.setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN or WindowManager.LayoutParams.SOFT_INPUT_ADJUST_PAN) weakReferenceHandler = WeakReferenceHandler(this) @@ -92,44 +90,44 @@ .build() //设置上次填写过的值 - objectCodeView.setText("objectCodeView".getDefaultValue()) - objectNameView.setText("objectNameView".getDefaultValue()) - inlineNameView.setText("inlineNameView".getDefaultValue()) - capacityView.setText("capacityView".getDefaultValue()) - transformerSpecView.setText("transformerSpecView".getDefaultValue()) - sLengthView.setText("sLengthView".getDefaultValue()) - sWidthView.setText("sWidthView".getDefaultValue()) - sHeightView.setText("sHeightView".getDefaultValue()) - inlineCountView.setText("inlineCountView".getDefaultValue()) - outlineCountView.setText("outlineCountView".getDefaultValue()) - bottomDepthView.setText("bottomDepthView".getDefaultValue()) - rowCountView.setText("rowCountView".getDefaultValue()) - rowHoleCountView.setText("rowHoleCountView".getDefaultValue()) - coverDepthView.setText("coverDepthView".getDefaultValue()) - remainingChannelsView.setText("remainingChannelsView".getDefaultValue()) - tieCableView1.setText("tieCableView1".getDefaultValue()) - tieCableView2.setText("tieCableView2".getDefaultValue()) - jointCountView.setText("jointCountView".getDefaultValue()) - casingHoleCountView.setText("casingHoleCountView".getDefaultValue()) - casingHoleDiameterView.setText("casingHoleDiameterView".getDefaultValue()) - heightView.setText("heightView".getDefaultValue()) - lineNumberView.setText("lineNumberView".getDefaultValue()) - inspectionUnitView.setText("inspectionUnitView".getDefaultValue()) - areaView.setText("areaView".getDefaultValue()) - roadView.setText("roadView".getDefaultValue()) - objectRemarkView1.setText("objectRemarkView1".getDefaultValue()) - objectRemarkView2.setText("objectRemarkView2".getDefaultValue()) - objectRemarkView3.setText("objectRemarkView3".getDefaultValue()) - ownerView.setText("ownerView".getDefaultValue()) - markerDepthView.setText("markerDepthView".getDefaultValue()) - markerCountView.setText("markerCountView".getDefaultValue()) - remarkView1.setText("remarkView1".getDefaultValue()) - remarkView2.setText("remarkView2".getDefaultValue()) - remarkView3.setText("remarkView3".getDefaultValue()) + binding.objectAttrInclude.objectCodeView.setText("objectCodeView".getDefaultValue()) + binding.objectAttrInclude.objectNameView.setText("objectNameView".getDefaultValue()) + binding.objectAttrInclude.inlineNameView.setText("inlineNameView".getDefaultValue()) + binding.objectAttrInclude.capacityView.setText("capacityView".getDefaultValue()) + binding.objectAttrInclude.transformerSpecView.setText("transformerSpecView".getDefaultValue()) + binding.objectAttrInclude.sLengthView.setText("sLengthView".getDefaultValue()) + binding.objectAttrInclude.sWidthView.setText("sWidthView".getDefaultValue()) + binding.objectAttrInclude.sHeightView.setText("sHeightView".getDefaultValue()) + binding.objectAttrInclude.inlineCountView.setText("inlineCountView".getDefaultValue()) + binding.objectAttrInclude.outlineCountView.setText("outlineCountView".getDefaultValue()) + binding.objectAttrInclude.bottomDepthView.setText("bottomDepthView".getDefaultValue()) + binding.objectAttrInclude.rowCountView.setText("rowCountView".getDefaultValue()) + binding.objectAttrInclude.rowHoleCountView.setText("rowHoleCountView".getDefaultValue()) + binding.objectAttrInclude.coverDepthView.setText("coverDepthView".getDefaultValue()) + binding.objectAttrInclude.remainingChannelsView.setText("remainingChannelsView".getDefaultValue()) + binding.objectAttrInclude.tieCableView1.setText("tieCableView1".getDefaultValue()) + binding.objectAttrInclude.tieCableView2.setText("tieCableView2".getDefaultValue()) + binding.objectAttrInclude.jointCountView.setText("jointCountView".getDefaultValue()) + binding.objectAttrInclude.casingHoleCountView.setText("casingHoleCountView".getDefaultValue()) + binding.objectAttrInclude.casingHoleDiameterView.setText("casingHoleDiameterView".getDefaultValue()) + binding.objectAttrInclude.heightView.setText("heightView".getDefaultValue()) + binding.objectAttrInclude.lineNumberView.setText("lineNumberView".getDefaultValue()) + binding.objectAttrInclude.inspectionUnitView.setText("inspectionUnitView".getDefaultValue()) + binding.objectAttrInclude.areaView.setText("areaView".getDefaultValue()) + binding.objectAttrInclude.roadView.setText("roadView".getDefaultValue()) + binding.objectAttrInclude.objectRemarkView1.setText("objectRemarkView1".getDefaultValue()) + binding.objectAttrInclude.objectRemarkView2.setText("objectRemarkView2".getDefaultValue()) + binding.objectAttrInclude.objectRemarkView3.setText("objectRemarkView3".getDefaultValue()) + binding.markerAttrInclude.ownerView.setText("ownerView".getDefaultValue()) + binding.markerAttrInclude.markerDepthView.setText("markerDepthView".getDefaultValue()) + binding.markerAttrInclude.markerCountView.setText("markerCountView".getDefaultValue()) + binding.markerAttrInclude.remarkView1.setText("remarkView1".getDefaultValue()) + binding.markerAttrInclude.remarkView2.setText("remarkView2".getDefaultValue()) + binding.markerAttrInclude.remarkView3.setText("remarkView3".getDefaultValue()) //初始化图片九宫格 imageAdapter = EditableImageAdapter(this, 3, 3f) - addImageRecyclerView.adapter = imageAdapter + binding.cameraInclude.addImageRecyclerView.adapter = imageAdapter taskViewModel = ViewModelProvider(this)[TaskViewModel::class.java] } @@ -142,101 +140,120 @@ LoadingDialogHub.dismiss() finish() } + else -> LoadingDialogHub.dismiss() } } } override fun initEvent() { - leftBackView.setOnClickListener { finish() } + binding.titleInclude.leftBackView.setOnClickListener { finish() } /**************************************************************************************/ - objectTypeSpinner.show(this, LocaleConstant.CONTENT_ARRAY, 0) - objectTypeSpinner.onItemSelectedListener = object : AdapterView.OnItemSelectedListener { - override fun onItemSelected( - parent: AdapterView<*>?, view: View?, position: Int, id: Long - ) { - when (position) { - 0 -> { - //选择电缆井 - objectModeView.text = "类型:" - wellCoverMaterialView.text = "井盖材质:" - bottomDepthNameView.text = "井深:" - setLayoutVisibility( - View.VISIBLE, View.GONE, View.VISIBLE, View.GONE, View.VISIBLE, - View.GONE, View.GONE, View.VISIBLE, View.GONE, View.VISIBLE, - View.GONE - ) - objectModeSpinner.show( - this@InstallLabelActivity, LocaleConstant.OBJECT_MODE_ARRAY, 0 - ) - wellCoverMaterialSpinner.show( - this@InstallLabelActivity, LocaleConstant.WELL_COVER_MATERIAL_ARRAY_1, 0 - ) + binding.objectAttrInclude.objectTypeSpinner.show(this, LocaleConstant.CONTENT_ARRAY, 0) + binding.objectAttrInclude.objectTypeSpinner.onItemSelectedListener = + object : AdapterView.OnItemSelectedListener { + override fun onItemSelected( + parent: AdapterView<*>?, view: View?, position: Int, id: Long + ) { + when (position) { + 0 -> { + //选择电缆井 + binding.objectAttrInclude.objectModeView.text = "类型:" + binding.objectAttrInclude.wellCoverMaterialView.text = "井盖材质:" + binding.objectAttrInclude.bottomDepthNameView.text = "井深:" + setLayoutVisibility( + View.VISIBLE, View.GONE, View.VISIBLE, View.GONE, View.VISIBLE, + View.GONE, View.GONE, View.VISIBLE, View.GONE, View.VISIBLE, + View.GONE + ) + binding.objectAttrInclude.objectModeSpinner.show( + this@InstallLabelActivity, LocaleConstant.OBJECT_MODE_ARRAY, 0 + ) + binding.objectAttrInclude.wellCoverMaterialSpinner.show( + this@InstallLabelActivity, + LocaleConstant.WELL_COVER_MATERIAL_ARRAY_1, + 0 + ) + } + + 1 -> { + //选择电缆通道 + binding.objectAttrInclude.bottomDepthNameView.text = "底部深度:" + setLayoutVisibility( + View.GONE, View.GONE, View.GONE, View.GONE, View.GONE, + View.GONE, View.GONE, View.VISIBLE, View.VISIBLE, View.VISIBLE, + View.GONE + ) + } + + 2 -> { + //选择配电房 + setLayoutVisibility( + View.GONE, View.GONE, View.GONE, View.VISIBLE, View.VISIBLE, + View.VISIBLE, View.GONE, View.GONE, View.GONE, View.GONE, + View.GONE + ) + } + + 3 -> { + //选择开关站 + setLayoutVisibility( + View.GONE, View.GONE, View.GONE, View.GONE, View.VISIBLE, + View.VISIBLE, View.VISIBLE, View.GONE, View.GONE, View.GONE, + View.GONE + ) + } + + 4 -> { + //选择台区 + binding.objectAttrInclude.objectModeView.text = "变压器型号:" + setLayoutVisibility( + View.VISIBLE, View.VISIBLE, View.GONE, View.GONE, View.GONE, + View.GONE, View.GONE, View.GONE, View.GONE, View.GONE, + View.GONE + ) + binding.objectAttrInclude.objectModeSpinner.show( + this@InstallLabelActivity, arrayOf("变压器 KVA"), 0 + ) + } + + 5 -> { + //选择杆塔 + binding.objectAttrInclude.wellCoverMaterialView.text = "对象材质:" + setLayoutVisibility( + View.GONE, View.GONE, View.VISIBLE, View.GONE, View.GONE, + View.GONE, View.GONE, View.GONE, View.GONE, View.GONE, + View.VISIBLE + ) + binding.objectAttrInclude.wellCoverMaterialSpinner.show( + this@InstallLabelActivity, + LocaleConstant.WELL_COVER_MATERIAL_ARRAY_2, + 0 + ) + } } - 1 -> { - //选择电缆通道 - bottomDepthNameView.text = "底部深度:" - setLayoutVisibility( - View.GONE, View.GONE, View.GONE, View.GONE, View.GONE, - View.GONE, View.GONE, View.VISIBLE, View.VISIBLE, View.VISIBLE, - View.GONE - ) - } - 2 -> { - //选择配电房 - setLayoutVisibility( - View.GONE, View.GONE, View.GONE, View.VISIBLE, View.VISIBLE, - View.VISIBLE, View.GONE, View.GONE, View.GONE, View.GONE, - View.GONE - ) - } - 3 -> { - //选择开关站 - setLayoutVisibility( - View.GONE, View.GONE, View.GONE, View.GONE, View.VISIBLE, - View.VISIBLE, View.VISIBLE, View.GONE, View.GONE, View.GONE, - View.GONE - ) - } - 4 -> { - //选择台区 - objectModeView.text = "变压器型号:" - setLayoutVisibility( - View.VISIBLE, View.VISIBLE, View.GONE, View.GONE, View.GONE, - View.GONE, View.GONE, View.GONE, View.GONE, View.GONE, - View.GONE - ) - objectModeSpinner.show( - this@InstallLabelActivity, arrayOf("变压器 KVA"), 0 - ) - } - 5 -> { - //选择杆塔 - wellCoverMaterialView.text = "对象材质:" - setLayoutVisibility( - View.GONE, View.GONE, View.VISIBLE, View.GONE, View.GONE, - View.GONE, View.GONE, View.GONE, View.GONE, View.GONE, - View.VISIBLE - ) - wellCoverMaterialSpinner.show( - this@InstallLabelActivity, LocaleConstant.WELL_COVER_MATERIAL_ARRAY_2, 0 - ) - } + } + + override fun onNothingSelected(parent: AdapterView<*>?) { + } } - override fun onNothingSelected(parent: AdapterView<*>?) { - - } - } - - cabinetTypeSpinner.show(this, LocaleConstant.CABINET_TYPE_ARRAY, 0) - casingMaterialSpinner.show(this, LocaleConstant.PIPE_MATERIAL_ARRAY, 0) - markerTypeSpinner.show(this, LocaleConstant.MARKER_TYPE_ARRAY, 0) + binding.objectAttrInclude.cabinetTypeSpinner.show( + this, + LocaleConstant.CABINET_TYPE_ARRAY, + 0 + ) + binding.objectAttrInclude.casingMaterialSpinner.show( + this, + LocaleConstant.PIPE_MATERIAL_ARRAY, + 0 + ) + binding.markerAttrInclude.markerTypeSpinner.show(this, LocaleConstant.MARKER_TYPE_ARRAY, 0) //电压等级-多选 - voltageLevelView.setOnClickListener { + binding.objectAttrInclude.voltageLevelView.setOnClickListener { AlertDialog.Builder(context) .setCancelable(false) .setIcon(R.mipmap.ic_launcher) @@ -255,12 +272,12 @@ } } - voltageLevelView.text = temp.reformat() + binding.objectAttrInclude.voltageLevelView.text = temp.reformat() }.show() } //交叉管道类型-多选 - crossPipeLineView.setOnClickListener { + binding.objectAttrInclude.crossPipeLineView.setOnClickListener { AlertDialog.Builder(context) .setCancelable(false) .setIcon(R.mipmap.ic_launcher) @@ -279,11 +296,11 @@ } } - crossPipeLineView.text = temp.reformat() + binding.objectAttrInclude.crossPipeLineView.text = temp.reformat() }.show() } - constructDateView.setOnClickListener { + binding.objectAttrInclude.constructDateView.setOnClickListener { val datePicker = DatePickerDialog( this, null, @@ -308,17 +325,18 @@ "建设年代不能早于当前日期".show(context) } else { datePicker.dismiss() - constructDateView.text = selectedDate + binding.objectAttrInclude.constructDateView.text = selectedDate } } } - installTimeView.text = System.currentTimeMillis().timestampToCompleteDate() + binding.markerAttrInclude.installTimeView.text = + System.currentTimeMillis().timestampToCompleteDate() LocationHub.getCurrentLocation(this, object : ILocationListener { override fun onAMapLocationGet(location: AMapLocation?) { if (location != null) { - lngView.text = location.longitude.toString() - latView.text = location.latitude.toString() + binding.markerAttrInclude.lngView.text = location.longitude.toString() + binding.markerAttrInclude.latView.text = location.latitude.toString() } else { "当前位置信号差,无法获取定位".show(context) } @@ -358,109 +376,109 @@ }) /**************************************************************************************/ - installButton.setOnClickListener { + binding.installButton.setOnClickListener { if (isNetworkConnected()) { val companyId = SaveKeyValues.getValue(LocaleConstant.USER_COMPANY_ID, "") as String - val itemPosition = objectTypeSpinner.selectedItemPosition + val itemPosition = binding.objectAttrInclude.objectTypeSpinner.selectedItemPosition val objectTypeCode = itemPosition + 1 - if (markerIdView.text.isNullOrBlank()) { + if (binding.markerAttrInclude.markerIdView.text.isNullOrBlank()) { "标识器ID不能为空,请读标识器".show(this) return@setOnClickListener } - if (constructDateView.text.isNullOrBlank()) { + if (binding.objectAttrInclude.constructDateView.text.isNullOrBlank()) { "请选择建设时间".show(this) return@setOnClickListener } - if (markerCountView.text.isNullOrBlank()) { + if (binding.markerAttrInclude.markerCountView.text.isNullOrBlank()) { "请输入电子标签数量".show(this) return@setOnClickListener } //保存默认值 - "objectCodeView".setDefaultValue(objectCodeView) - "objectNameView".setDefaultValue(objectNameView) - "inlineNameView".setDefaultValue(inlineNameView) - "capacityView".setDefaultValue(capacityView) - "transformerSpecView".setDefaultValue(transformerSpecView) - "sLengthView".setDefaultValue(sLengthView) - "sWidthView".setDefaultValue(sWidthView) - "sHeightView".setDefaultValue(sHeightView) - "inlineCountView".setDefaultValue(inlineCountView) - "outlineCountView".setDefaultValue(outlineCountView) - "bottomDepthView".setDefaultValue(bottomDepthView) - "rowCountView".setDefaultValue(rowCountView) - "rowHoleCountView".setDefaultValue(rowHoleCountView) - "coverDepthView".setDefaultValue(coverDepthView) - "remainingChannelsView".setDefaultValue(remainingChannelsView) - "tieCableView1".setDefaultValue(tieCableView1) - "tieCableView2".setDefaultValue(tieCableView2) - "jointCountView".setDefaultValue(jointCountView) - "casingHoleCountView".setDefaultValue(casingHoleCountView) - "casingHoleDiameterView".setDefaultValue(casingHoleDiameterView) - "heightView".setDefaultValue(heightView) - "lineNumberView".setDefaultValue(lineNumberView) - "inspectionUnitView".setDefaultValue(inspectionUnitView) - "areaView".setDefaultValue(areaView) - "roadView".setDefaultValue(roadView) - "objectRemarkView1".setDefaultValue(objectRemarkView1) - "objectRemarkView2".setDefaultValue(objectRemarkView2) - "objectRemarkView3".setDefaultValue(objectRemarkView3) - "ownerView".setDefaultValue(ownerView) - "markerDepthView".setDefaultValue(markerDepthView) - "markerCountView".setDefaultValue(markerCountView) - "remarkView1".setDefaultValue(remarkView1) - "remarkView2".setDefaultValue(remarkView2) - "remarkView3".setDefaultValue(remarkView3) + "objectCodeView".setDefaultValue(binding.objectAttrInclude.objectCodeView) + "objectNameView".setDefaultValue(binding.objectAttrInclude.objectNameView) + "inlineNameView".setDefaultValue(binding.objectAttrInclude.inlineNameView) + "capacityView".setDefaultValue(binding.objectAttrInclude.capacityView) + "transformerSpecView".setDefaultValue(binding.objectAttrInclude.transformerSpecView) + "sLengthView".setDefaultValue(binding.objectAttrInclude.sLengthView) + "sWidthView".setDefaultValue(binding.objectAttrInclude.sWidthView) + "sHeightView".setDefaultValue(binding.objectAttrInclude.sHeightView) + "inlineCountView".setDefaultValue(binding.objectAttrInclude.inlineCountView) + "outlineCountView".setDefaultValue(binding.objectAttrInclude.outlineCountView) + "bottomDepthView".setDefaultValue(binding.objectAttrInclude.bottomDepthView) + "rowCountView".setDefaultValue(binding.objectAttrInclude.rowCountView) + "rowHoleCountView".setDefaultValue(binding.objectAttrInclude.rowHoleCountView) + "coverDepthView".setDefaultValue(binding.objectAttrInclude.coverDepthView) + "remainingChannelsView".setDefaultValue(binding.objectAttrInclude.remainingChannelsView) + "tieCableView1".setDefaultValue(binding.objectAttrInclude.tieCableView1) + "tieCableView2".setDefaultValue(binding.objectAttrInclude.tieCableView2) + "jointCountView".setDefaultValue(binding.objectAttrInclude.jointCountView) + "casingHoleCountView".setDefaultValue(binding.objectAttrInclude.casingHoleCountView) + "casingHoleDiameterView".setDefaultValue(binding.objectAttrInclude.casingHoleDiameterView) + "heightView".setDefaultValue(binding.objectAttrInclude.heightView) + "lineNumberView".setDefaultValue(binding.objectAttrInclude.lineNumberView) + "inspectionUnitView".setDefaultValue(binding.objectAttrInclude.inspectionUnitView) + "areaView".setDefaultValue(binding.objectAttrInclude.areaView) + "roadView".setDefaultValue(binding.objectAttrInclude.roadView) + "objectRemarkView1".setDefaultValue(binding.objectAttrInclude.objectRemarkView1) + "objectRemarkView2".setDefaultValue(binding.objectAttrInclude.objectRemarkView2) + "objectRemarkView3".setDefaultValue(binding.objectAttrInclude.objectRemarkView3) + "ownerView".setDefaultValue(binding.markerAttrInclude.ownerView) + "markerDepthView".setDefaultValue(binding.markerAttrInclude.markerDepthView) + "markerCountView".setDefaultValue(binding.markerAttrInclude.markerCountView) + "remarkView1".setDefaultValue(binding.markerAttrInclude.remarkView1) + "remarkView2".setDefaultValue(binding.markerAttrInclude.remarkView2) + "remarkView3".setDefaultValue(binding.markerAttrInclude.remarkView3) val labelData = LabelDataClass( companyId, objectTypeCode.toString(), - objectCodeView.text.toString(), - objectNameView.text.toString(), - voltageLevelView.text.toString(), - objectModeSpinner.selectedItem.toString(), - "进线${inlineNameView.text}", - wellCoverMaterialSpinner.selectedItem.toString(), - "${capacityView.text}KVA", - transformerSpecView.text.toString(), - "${sLengthView.text}米长 x ${sWidthView.text}米宽 x ${sHeightView.text}米高", - inlineCountView.text.toString(), - outlineCountView.text.toString(), - cabinetTypeSpinner.selectedItem.toString(), - bottomDepthView.text.toString(), - "${rowCountView.text}排 x ${rowHoleCountView.text}孔", - "${coverDepthView.text}米", - crossPipeLineView.text.toString(), - remainingChannelsView.text.toString(), - tieCableView1.text.toString(), - tieCableView2.text.toString(), - jointCountView.text.toString(), - casingMaterialSpinner.selectedItem.toString(), - "${casingHoleCountView.text}孔,直径${casingHoleDiameterView.text}毫米", - "${heightView.text.toString()}米", - lineNumberView.text.toString(), - constructDateView.text.toString(), - inspectionUnitView.text.toString(), - areaView.text.toString(), - roadView.text.toString(), - objectRemarkView1.text.toString(), - objectRemarkView2.text.toString(), - objectRemarkView3.text.toString(), - markerIdView.text.toString(), - markerTypeSpinner.selectedItem.toString(), - ownerView.text.toString(), - markerDepthView.text.toString(), - installTimeView.text.toString(), - lngView.text.toString(), - latView.text.toString(), - markerCountView.text.toString(), - remarkView1.text.toString(), - remarkView2.text.toString(), - remarkView3.text.toString(), + binding.objectAttrInclude.objectCodeView.text.toString(), + binding.objectAttrInclude.objectNameView.text.toString(), + binding.objectAttrInclude.voltageLevelView.text.toString(), + binding.objectAttrInclude.objectModeSpinner.selectedItem.toString(), + "进线${binding.objectAttrInclude.inlineNameView.text}", + binding.objectAttrInclude.wellCoverMaterialSpinner.selectedItem.toString(), + "${binding.objectAttrInclude.capacityView.text}KVA", + binding.objectAttrInclude.transformerSpecView.text.toString(), + "${binding.objectAttrInclude.sLengthView.text}米长 x ${binding.objectAttrInclude.sWidthView.text}米宽 x ${binding.objectAttrInclude.sHeightView.text}米高", + binding.objectAttrInclude.inlineCountView.text.toString(), + binding.objectAttrInclude.outlineCountView.text.toString(), + binding.objectAttrInclude.cabinetTypeSpinner.selectedItem.toString(), + binding.objectAttrInclude.bottomDepthView.text.toString(), + "${binding.objectAttrInclude.rowCountView.text}排 x ${binding.objectAttrInclude.rowHoleCountView.text}孔", + "${binding.objectAttrInclude.coverDepthView.text}米", + binding.objectAttrInclude.crossPipeLineView.text.toString(), + binding.objectAttrInclude.remainingChannelsView.text.toString(), + binding.objectAttrInclude.tieCableView1.text.toString(), + binding.objectAttrInclude.tieCableView2.text.toString(), + binding.objectAttrInclude.jointCountView.text.toString(), + binding.objectAttrInclude.casingMaterialSpinner.selectedItem.toString(), + "${binding.objectAttrInclude.casingHoleCountView.text}孔,直径${binding.objectAttrInclude.casingHoleDiameterView.text}毫米", + "${binding.objectAttrInclude.heightView.text.toString()}米", + binding.objectAttrInclude.lineNumberView.text.toString(), + binding.objectAttrInclude.constructDateView.text.toString(), + binding.objectAttrInclude.inspectionUnitView.text.toString(), + binding.objectAttrInclude.areaView.text.toString(), + binding.objectAttrInclude.roadView.text.toString(), + binding.objectAttrInclude.objectRemarkView1.text.toString(), + binding.objectAttrInclude.objectRemarkView2.text.toString(), + binding.objectAttrInclude.objectRemarkView3.text.toString(), + binding.markerAttrInclude.markerIdView.text.toString(), + binding.markerAttrInclude.markerTypeSpinner.selectedItem.toString(), + binding.markerAttrInclude.ownerView.text.toString(), + binding.markerAttrInclude.markerDepthView.text.toString(), + binding.markerAttrInclude.installTimeView.text.toString(), + binding.markerAttrInclude.lngView.text.toString(), + binding.markerAttrInclude.latView.text.toString(), + binding.markerAttrInclude.markerCountView.text.toString(), + binding.markerAttrInclude.remarkView1.text.toString(), + binding.markerAttrInclude.remarkView2.text.toString(), + binding.markerAttrInclude.remarkView3.text.toString(), realPaths ) @@ -486,7 +504,7 @@ } } - readLabelButton.setOnClickListener { + binding.readLabelButton.setOnClickListener { gpioManager.setGpioHigh("18") LoadingDialogHub.show(this, "标识器读取中,请稍后...") @@ -534,7 +552,7 @@ //查本地库 val result = DataBaseManager.get.queryLabelById(markerId) if (result.isEmpty()) { - markerIdView.text = markerId + binding.markerAttrInclude.markerIdView.text = markerId } else { "此标识器已安装,请更换标识器!".show(this) } @@ -560,17 +578,17 @@ //根据选择类型控制界面某些区域显隐 private fun setLayoutVisibility(vararg args: Int) { - objectModeLayout.visibility = args[0] - inlineNameLayout.visibility = args[1] - wellCoverMaterialLayout.visibility = args[2] - capacityLayout.visibility = args[3] - sizeLayout.visibility = args[4] - inlineCountLayout.visibility = args[5] - outlineCountLayout.visibility = args[6] - wellDepthLayout.visibility = args[7] - pipeLineLayout.visibility = args[8] - jointCountLayout.visibility = args[9] - heightLayout.visibility = args[10] + binding.objectAttrInclude.objectModeLayout.visibility = args[0] + binding.objectAttrInclude.inlineNameLayout.visibility = args[1] + binding.objectAttrInclude.wellCoverMaterialLayout.visibility = args[2] + binding.objectAttrInclude.capacityLayout.visibility = args[3] + binding.objectAttrInclude.sizeLayout.visibility = args[4] + binding.objectAttrInclude.inlineCountLayout.visibility = args[5] + binding.objectAttrInclude.outlineCountLayout.visibility = args[6] + binding.objectAttrInclude.wellDepthLayout.visibility = args[7] + binding.objectAttrInclude.pipeLineLayout.visibility = args[8] + binding.objectAttrInclude.jointCountLayout.visibility = args[9] + binding.objectAttrInclude.heightLayout.visibility = args[10] } override fun onDestroy() { diff --git a/app/src/main/java/com/casic/electric/detector/view/InstallSmallLabelActivity.kt b/app/src/main/java/com/casic/electric/detector/view/InstallSmallLabelActivity.kt index d6888ee..5bc2ac8 100644 --- a/app/src/main/java/com/casic/electric/detector/view/InstallSmallLabelActivity.kt +++ b/app/src/main/java/com/casic/electric/detector/view/InstallSmallLabelActivity.kt @@ -20,6 +20,7 @@ import com.casic.electric.detector.adapter.EditableImageAdapter import com.casic.electric.detector.base.SerialPortActivity import com.casic.electric.detector.callback.OnImageCompressListener +import com.casic.electric.detector.databinding.ActivityInstallSmallLabelBinding import com.casic.electric.detector.extensions.* import com.casic.electric.detector.utils.* import com.casic.electric.detector.vm.TaskViewModel @@ -36,18 +37,16 @@ import com.pengxh.kt.lite.utils.WeakReferenceHandler import com.pengxh.kt.lite.vm.LoadState import com.pengxh.kt.lite.widget.dialog.NoNetworkDialog -import kotlinx.android.synthetic.main.activity_install_small_label.* -import kotlinx.android.synthetic.main.include_base_title.* -import kotlinx.android.synthetic.main.include_open_camera.* -import kotlinx.android.synthetic.main.include_small_label_object_attribute.* import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.launch import kotlinx.coroutines.withContext import java.io.File +import java.io.FileWriter import java.io.IOException @SuppressLint("SetTextI18n") -class InstallSmallLabelActivity : SerialPortActivity(), Handler.Callback { +class InstallSmallLabelActivity : SerialPortActivity(), + Handler.Callback { private val kTag = "SmallLabelActivity" private val context: Context = this@InstallSmallLabelActivity @@ -59,20 +58,22 @@ private lateinit var imageAdapter: EditableImageAdapter private lateinit var taskViewModel: TaskViewModel - override fun initLayoutView(): Int = R.layout.activity_install_small_label + override fun initViewBinding(): ActivityInstallSmallLabelBinding { + return ActivityInstallSmallLabelBinding.inflate(layoutInflater) + } override fun setupTopBarLayout() { - titleView.text = "安装新电子标签" - titleView.setTextColor(R.color.themeColor.convertColor(this)) + binding.titleInclude.titleView.text = "安装新电子标签" + binding.titleInclude.titleView.setTextColor(R.color.themeColor.convertColor(this)) ImmersionBar.with(this) .statusBarDarkFont(true) .statusBarColor(R.color.mainBackground) .init() - initLayoutImmersionBar(rootView) + initLayoutImmersionBar(binding.rootView) } - override fun initData(savedInstanceState: Bundle?) { + override fun initOnCreate(savedInstanceState: Bundle?) { window.setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN or WindowManager.LayoutParams.SOFT_INPUT_ADJUST_PAN) weakReferenceHandler = WeakReferenceHandler(this) @@ -87,23 +88,23 @@ .build() //设置上次填写过的值 - cableNumberView.setText("cableNumberView".getDefaultValue()) - cableNameView.setText("cableNameView".getDefaultValue()) - lineView.setText("lineView".getDefaultValue()) - voltageLevelView.setText("voltageLevelView".getDefaultValue()) - cableModelView.setText("cableModelView".getDefaultValue()) - cableSpecView.setText("cableSpecView".getDefaultValue()) - cableBrandView.setText("cableBrandView".getDefaultValue()) - cableStartView.setText("cableStartView".getDefaultValue()) - cableEndView.setText("cableEndView".getDefaultValue()) - jointCreatorView.setText("jointCreatorView".getDefaultValue()) - objectRemarkView1.setText("objectRemarkView1".getDefaultValue()) - objectRemarkView2.setText("objectRemarkView2".getDefaultValue()) - objectRemarkView3.setText("objectRemarkView3".getDefaultValue()) + binding.objectAttrInclude.cableNumberView.setText("cableNumberView".getDefaultValue()) + binding.objectAttrInclude.cableNameView.setText("cableNameView".getDefaultValue()) + binding.objectAttrInclude.lineView.setText("lineView".getDefaultValue()) + binding.objectAttrInclude.voltageLevelView.setText("voltageLevelView".getDefaultValue()) + binding.objectAttrInclude.cableModelView.setText("cableModelView".getDefaultValue()) + binding.objectAttrInclude.cableSpecView.setText("cableSpecView".getDefaultValue()) + binding.objectAttrInclude.cableBrandView.setText("cableBrandView".getDefaultValue()) + binding.objectAttrInclude.cableStartView.setText("cableStartView".getDefaultValue()) + binding.objectAttrInclude.cableEndView.setText("cableEndView".getDefaultValue()) + binding.objectAttrInclude.jointCreatorView.setText("jointCreatorView".getDefaultValue()) + binding.objectAttrInclude.objectRemarkView1.setText("objectRemarkView1".getDefaultValue()) + binding.objectAttrInclude.objectRemarkView2.setText("objectRemarkView2".getDefaultValue()) + binding.objectAttrInclude.objectRemarkView3.setText("objectRemarkView3".getDefaultValue()) //初始化图片九宫格 imageAdapter = EditableImageAdapter(this, 3, 3f) - addImageRecyclerView.adapter = imageAdapter + binding.cameraInclude.addImageRecyclerView.adapter = imageAdapter taskViewModel = ViewModelProvider(this)[TaskViewModel::class.java] } @@ -116,20 +117,31 @@ LoadingDialogHub.dismiss() finish() } + else -> LoadingDialogHub.dismiss() } } } override fun initEvent() { - leftBackView.setOnClickListener { finish() } + binding.titleInclude.leftBackView.setOnClickListener { finish() } /**************************************************************************************/ //TODO 读取电子标签为未实现 - readElectricTagButton.setOnClickListener { - gpioManager.setGpioHigh("18") + var fileWriter: FileWriter + try { + fileWriter = FileWriter("/sys/class/newmobi_gpio/newmobi_gpio/Gpio") + fileWriter.write("99") + fileWriter.close() + } catch (e: Exception) { + e.printStackTrace() + } + + gpioManager.setGpioHigh("21") + + binding.readElectricTagButton.setOnClickListener { LoadingDialogHub.show(this, "电子标签读取中,请稍后...") soundResId = soundPool.load(this, R.raw.ring3, 1) @@ -141,32 +153,34 @@ weakReferenceHandler.postDelayed({ try { // 发送读标识器或搜索信号 - outputStream?.write("00".toByteArray()) - outputStream?.flush() + fileWriter = FileWriter("/sys/class/newmobi_gpio/newmobi_gpio/Gpio_inout") + fileWriter.write("01") + fileWriter.close() } catch (e: IOException) { e.printStackTrace() } - }, 1000) + }, 500) } - bindMarkerSpinner.show(this, arrayOf("是", "否"), 0) - bindMarkerSpinner.onItemSelectedListener = object : AdapterView.OnItemSelectedListener { - override fun onItemSelected( - parent: AdapterView<*>?, view: View?, position: Int, id: Long - ) { - if (position == 0) { - markerLayout.visibility = View.VISIBLE - } else { - markerLayout.visibility = View.GONE + binding.objectAttrInclude.bindMarkerSpinner.show(this, arrayOf("是", "否"), 0) + binding.objectAttrInclude.bindMarkerSpinner.onItemSelectedListener = + object : AdapterView.OnItemSelectedListener { + override fun onItemSelected( + parent: AdapterView<*>?, view: View?, position: Int, id: Long + ) { + if (position == 0) { + binding.objectAttrInclude.markerLayout.visibility = View.VISIBLE + } else { + binding.objectAttrInclude.markerLayout.visibility = View.GONE + } + } + + override fun onNothingSelected(parent: AdapterView<*>?) { + } } - override fun onNothingSelected(parent: AdapterView<*>?) { - - } - } - - middleJointSpinner.show(this, arrayOf("有", "无"), 0) + binding.objectAttrInclude.middleJointSpinner.show(this, arrayOf("有", "无"), 0) imageAdapter.setOnItemClickListener(object : EditableImageAdapter.OnItemClickListener { override fun onAddImageClick() { @@ -201,60 +215,60 @@ }) /**************************************************************************************/ - installButton.setOnClickListener { + binding.installButton.setOnClickListener { if (isNetworkConnected()) { val companyId = SaveKeyValues.getValue(LocaleConstant.USER_COMPANY_ID, "") as String - if (markerIdView.text.isNullOrBlank()) { + if (binding.objectAttrInclude.markerIdView.text.isNullOrBlank()) { "标识器ID不能为空,请读标识器".show(this) return@setOnClickListener } - if (smallLabelIdView.text.isNullOrBlank()) { + if (binding.objectAttrInclude.smallLabelIdView.text.isNullOrBlank()) { "电子标签ID不能为空,请读电子标签".show(this) return@setOnClickListener } - if (voltageLevelView.text.isNullOrBlank()) { + if (binding.objectAttrInclude.voltageLevelView.text.isNullOrBlank()) { "电压等级不能为空,请输入电压等级".show(this) return@setOnClickListener } //保存默认值 - "cableNumberView".setDefaultValue(cableNumberView) - "cableNameView".setDefaultValue(cableNameView) - "lineView".setDefaultValue(lineView) - "voltageLevelView".setDefaultValue(voltageLevelView) - "cableModelView".setDefaultValue(cableModelView) - "cableSpecView".setDefaultValue(cableSpecView) - "cableBrandView".setDefaultValue(cableBrandView) - "cableStartView".setDefaultValue(cableStartView) - "cableEndView".setDefaultValue(cableEndView) - "jointCreatorView".setDefaultValue(jointCreatorView) - "objectRemarkView1".setDefaultValue(objectRemarkView1) - "objectRemarkView2".setDefaultValue(objectRemarkView2) - "objectRemarkView3".setDefaultValue(objectRemarkView3) + "cableNumberView".setDefaultValue(binding.objectAttrInclude.cableNumberView) + "cableNameView".setDefaultValue(binding.objectAttrInclude.cableNameView) + "lineView".setDefaultValue(binding.objectAttrInclude.lineView) + "voltageLevelView".setDefaultValue(binding.objectAttrInclude.voltageLevelView) + "cableModelView".setDefaultValue(binding.objectAttrInclude.cableModelView) + "cableSpecView".setDefaultValue(binding.objectAttrInclude.cableSpecView) + "cableBrandView".setDefaultValue(binding.objectAttrInclude.cableBrandView) + "cableStartView".setDefaultValue(binding.objectAttrInclude.cableStartView) + "cableEndView".setDefaultValue(binding.objectAttrInclude.cableEndView) + "jointCreatorView".setDefaultValue(binding.objectAttrInclude.jointCreatorView) + "objectRemarkView1".setDefaultValue(binding.objectAttrInclude.objectRemarkView1) + "objectRemarkView2".setDefaultValue(binding.objectAttrInclude.objectRemarkView2) + "objectRemarkView3".setDefaultValue(binding.objectAttrInclude.objectRemarkView3) val smallLabelData = SmallLabelDataClass( companyId, - markerIdView.text.toString(), - markerNumberView.text.toString(), - markerNameView.text.toString(), - smallLabelIdView.text.toString(), - cableNameView.toString(), - cableNumberView.toString(), - lineView.text.toString(), - voltageLevelView.toString(), - cableModelView.text.toString(), - cableSpecView.text.toString(), - cableBrandView.text.toString(), - cableStartView.text.toString(), - cableEndView.text.toString(), - middleJointSpinner.selectedItem.toString(), - jointCreatorView.text.toString(), - objectRemarkView1.text.toString(), - objectRemarkView2.text.toString(), - objectRemarkView3.text.toString(), + binding.objectAttrInclude.markerIdView.text.toString(), + binding.objectAttrInclude.markerNumberView.text.toString(), + binding.objectAttrInclude.markerNameView.text.toString(), + binding.objectAttrInclude.smallLabelIdView.text.toString(), + binding.objectAttrInclude.cableNameView.toString(), + binding.objectAttrInclude.cableNumberView.toString(), + binding.objectAttrInclude.lineView.text.toString(), + binding.objectAttrInclude.voltageLevelView.toString(), + binding.objectAttrInclude.cableModelView.text.toString(), + binding.objectAttrInclude.cableSpecView.text.toString(), + binding.objectAttrInclude.cableBrandView.text.toString(), + binding.objectAttrInclude.cableStartView.text.toString(), + binding.objectAttrInclude.cableEndView.text.toString(), + binding.objectAttrInclude.middleJointSpinner.selectedItem.toString(), + binding.objectAttrInclude.jointCreatorView.text.toString(), + binding.objectAttrInclude.objectRemarkView1.text.toString(), + binding.objectAttrInclude.objectRemarkView2.text.toString(), + binding.objectAttrInclude.objectRemarkView3.text.toString(), realPaths ) @@ -280,7 +294,7 @@ } } - readLabelButton.setOnClickListener { + binding.readLabelButton.setOnClickListener { gpioManager.setGpioHigh("18") LoadingDialogHub.show(this, "标识器读取中,请稍后...") @@ -328,7 +342,7 @@ //查本地库 val result = DataBaseManager.get.queryLabelById(markerId) if (result.isEmpty()) { - markerIdView.text = markerId + binding.objectAttrInclude.markerIdView.text = markerId } else { "此标识器已安装,请更换标识器!".show(this) } diff --git a/app/src/main/java/com/casic/electric/detector/view/LoginActivity.kt b/app/src/main/java/com/casic/electric/detector/view/LoginActivity.kt index f521ffd..44d56ef 100644 --- a/app/src/main/java/com/casic/electric/detector/view/LoginActivity.kt +++ b/app/src/main/java/com/casic/electric/detector/view/LoginActivity.kt @@ -4,7 +4,7 @@ import android.util.Log import androidx.lifecycle.ViewModelProvider import com.amap.api.navi.NaviSetting -import com.casic.electric.detector.R +import com.casic.electric.detector.databinding.ActivityLoginBinding import com.casic.electric.detector.extensions.initLayoutImmersionBar import com.casic.electric.detector.utils.GpioManager import com.casic.electric.detector.utils.LoadingDialogHub @@ -18,21 +18,24 @@ import com.pengxh.kt.lite.utils.SaveKeyValues import com.pengxh.kt.lite.vm.LoadState import com.pengxh.kt.lite.widget.dialog.AlertMessageDialog -import kotlinx.android.synthetic.main.activity_login.* -class LoginActivity : KotlinBaseActivity() { +class LoginActivity : KotlinBaseActivity() { private val kTag = "LoginActivity" private lateinit var userViewModel: UserViewModel private val gpioManager by lazy { GpioManager() } - override fun initData(savedInstanceState: Bundle?) { + override fun initViewBinding(): ActivityLoginBinding { + return ActivityLoginBinding.inflate(layoutInflater) + } + + override fun initOnCreate(savedInstanceState: Bundle?) { gpioManager.setGpioLow("18") //先把导航隐私政策声明,后面导航会用到 NaviSetting.updatePrivacyShow(this, true, true) NaviSetting.updatePrivacyAgree(this, true) - autoSavePasswordView.isChecked = + binding.autoSavePasswordView.isChecked = SaveKeyValues.getValue(LocaleConstant.AUTO_SAVE, false) as Boolean userViewModel = ViewModelProvider(this)[UserViewModel::class.java] @@ -51,11 +54,11 @@ } override fun initEvent() { - loginButton.setOnClickListener { - val account = accountView.text.toString() - val password = passwordView.text.toString() - val serversIp = serversIpView.text.toString() - val serversPort = serversPortView.text.toString() + binding.loginButton.setOnClickListener { + val account = binding.accountView.text.toString() + val password = binding.passwordView.text.toString() + val serversIp = binding.serversIpView.text.toString() + val serversPort = binding.serversPortView.text.toString() if (account.isBlank() || password.isBlank() || serversIp.isBlank() || serversPort.isBlank()) { AlertMessageDialog.Builder() .setContext(this) @@ -79,7 +82,7 @@ } } - autoSavePasswordView.setOnCheckedChangeListener { _, isChecked -> + binding.autoSavePasswordView.setOnCheckedChangeListener { _, isChecked -> if (isChecked) { SaveKeyValues.putValue(LocaleConstant.AUTO_SAVE, true) } else { @@ -88,8 +91,6 @@ } } - override fun initLayoutView(): Int = R.layout.activity_login - override fun observeRequestState() { userViewModel.loadState.observe(this) { when (it) { @@ -101,24 +102,24 @@ override fun setupTopBarLayout() { ImmersionBar.with(this).statusBarDarkFont(true).init() - initLayoutImmersionBar(rootView) + initLayoutImmersionBar(binding.rootView) Log.d(kTag, "setupTopBarLayout => [${getScreenWidth()}, ${getScreenHeight()}]") } override fun onResume() { super.onResume() - if (autoSavePasswordView.isChecked) { - accountView.setText( + if (binding.autoSavePasswordView.isChecked) { + binding.accountView.setText( SaveKeyValues.getValue(LocaleConstant.USER_ACCOUNT, "") as String ) - passwordView.setText( + binding.passwordView.setText( SaveKeyValues.getValue(LocaleConstant.USER_PASSWORD, "") as String ) - serversIpView.setText( + binding.serversIpView.setText( SaveKeyValues.getValue(LocaleConstant.SERVER_IP, "") as String ) - serversPortView.setText( + binding.serversPortView.setText( SaveKeyValues.getValue(LocaleConstant.SERVER_PORT, "") as String ) } diff --git a/app/build.gradle b/app/build.gradle index 385cd21..093bae7 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -2,7 +2,6 @@ apply plugin: 'com.android.application' apply plugin: 'kotlin-android' -apply plugin: 'kotlin-android-extensions' apply plugin: 'org.greenrobot.greendao' android { @@ -70,7 +69,7 @@ implementation 'androidx.core:core-ktx:1.9.0' implementation 'androidx.appcompat:appcompat:1.6.1' //基础依赖库 - implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.0.4.9' + implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.0.5' //Google官方授权框架 implementation 'pub.devrel:easypermissions:3.0.0' //腾讯Android UI框架 diff --git a/app/src/main/java/com/casic/electric/detector/base/SerialPortActivity.kt b/app/src/main/java/com/casic/electric/detector/base/SerialPortActivity.kt index 3e5ba6c..ac05531 100644 --- a/app/src/main/java/com/casic/electric/detector/base/SerialPortActivity.kt +++ b/app/src/main/java/com/casic/electric/detector/base/SerialPortActivity.kt @@ -2,6 +2,7 @@ import android.os.Bundle import androidx.appcompat.app.AppCompatActivity +import androidx.viewbinding.ViewBinding import com.casic.electric.detector.uart.SerialPort import com.pengxh.kt.lite.extensions.show import java.io.IOException @@ -10,8 +11,9 @@ import java.security.InvalidParameterException -abstract class SerialPortActivity : AppCompatActivity() { +abstract class SerialPortActivity : AppCompatActivity() { + protected lateinit var binding: VB private var serialPort: SerialPort? = null var outputStream: OutputStream? = null private var inputStream: InputStream? = null @@ -39,9 +41,10 @@ override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) - setContentView(initLayoutView()) + binding = initViewBinding() + setContentView(binding.root) setupTopBarLayout() - initData(savedInstanceState) + initOnCreate(savedInstanceState) observeRequestState() initEvent() @@ -64,7 +67,7 @@ /** * 初始化xml布局 */ - abstract fun initLayoutView(): Int + abstract fun initViewBinding(): VB /** * 特定页面定制沉浸式状态栏 @@ -74,7 +77,7 @@ /** * 初始化默认数据 */ - abstract fun initData(savedInstanceState: Bundle?) + abstract fun initOnCreate(savedInstanceState: Bundle?) /** * 数据请求状态监听 diff --git a/app/src/main/java/com/casic/electric/detector/view/BigImageActivity.kt b/app/src/main/java/com/casic/electric/detector/view/BigImageActivity.kt index 040242e..aa1bdeb 100644 --- a/app/src/main/java/com/casic/electric/detector/view/BigImageActivity.kt +++ b/app/src/main/java/com/casic/electric/detector/view/BigImageActivity.kt @@ -11,22 +11,24 @@ import androidx.viewpager.widget.ViewPager import com.bumptech.glide.Glide import com.casic.electric.detector.R +import com.casic.electric.detector.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/electric/detector/view/ElectricMarkerDetailActivity.kt b/app/src/main/java/com/casic/electric/detector/view/ElectricMarkerDetailActivity.kt index b381d5c..d72edc5 100644 --- a/app/src/main/java/com/casic/electric/detector/view/ElectricMarkerDetailActivity.kt +++ b/app/src/main/java/com/casic/electric/detector/view/ElectricMarkerDetailActivity.kt @@ -4,8 +4,8 @@ import android.graphics.drawable.ColorDrawable import android.os.Bundle import android.view.Gravity -import com.casic.electric.detector.R import com.casic.electric.detector.bean.SmallLabelBean +import com.casic.electric.detector.databinding.ActivityElectricMarkerDetailBinding import com.casic.electric.detector.extensions.appendDownloadUrl import com.casic.electric.detector.utils.DataBaseManager import com.casic.electric.detector.utils.FileType @@ -15,13 +15,16 @@ import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show import com.pengxh.kt.lite.utils.Constant -import kotlinx.android.synthetic.main.activity_electric_marker_detail.* -class ElectricMarkerDetailActivity : KotlinBaseActivity() { +class ElectricMarkerDetailActivity : KotlinBaseActivity() { private lateinit var smallLabel: SmallLabelBean - override fun initData(savedInstanceState: Bundle?) { + override fun initViewBinding(): ActivityElectricMarkerDetailBinding { + return ActivityElectricMarkerDetailBinding.inflate(layoutInflater) + } + + override fun initOnCreate(savedInstanceState: Bundle?) { window.setBackgroundDrawable(ColorDrawable(Color.TRANSPARENT)) window.decorView.setBackgroundColor(Color.TRANSPARENT) window.setGravity(Gravity.CENTER) @@ -34,30 +37,30 @@ smallLabel = DataBaseManager.get.queryElectricMarkerById(electricMarkerId) - markerIdView.text = smallLabel.markerId - locationNumberView.text = smallLabel.locationNumber - locationNameView.text = smallLabel.locationName - electricMarkerIdView.text = smallLabel.electricMarkerId - cableNameView.text = smallLabel.cableName - cableNumberView.text = smallLabel.cableNumber - lineView.text = smallLabel.line - voltageLevelView.text = smallLabel.voltageLevel - cableTypeView.text = smallLabel.cableType - cableSpecView.text = smallLabel.cableSpec - cableBrandView.text = smallLabel.cableBrand - cableStartView.text = smallLabel.cableStart - cableEndView.text = smallLabel.cableEnd - hasJointView.text = smallLabel.hasJoint - jointCreatorView.text = smallLabel.jointCreator - memo1View.text = smallLabel.memo1 - memo2View.text = smallLabel.memo2 - memo3View.text = smallLabel.memo3 + binding.markerIdView.text = smallLabel.markerId + binding.locationNumberView.text = smallLabel.locationNumber + binding.locationNameView.text = smallLabel.locationName + binding.electricMarkerIdView.text = smallLabel.electricMarkerId + binding.cableNameView.text = smallLabel.cableName + binding.cableNumberView.text = smallLabel.cableNumber + binding.lineView.text = smallLabel.line + binding.voltageLevelView.text = smallLabel.voltageLevel + binding.cableTypeView.text = smallLabel.cableType + binding.cableSpecView.text = smallLabel.cableSpec + binding.cableBrandView.text = smallLabel.cableBrand + binding.cableStartView.text = smallLabel.cableStart + binding.cableEndView.text = smallLabel.cableEnd + binding.hasJointView.text = smallLabel.hasJoint + binding.jointCreatorView.text = smallLabel.jointCreator + binding.memo1View.text = smallLabel.memo1 + binding.memo2View.text = smallLabel.memo2 + binding.memo3View.text = smallLabel.memo3 } override fun initEvent() { - closeView.setOnClickListener { finish() } + binding.closeView.setOnClickListener { finish() } - showImageView.setOnClickListener { + binding.showImageView.setOnClickListener { //查数据库 if (smallLabel.imagePath.isNullOrEmpty()) { "此标识器无图片".show(this) @@ -84,8 +87,6 @@ } } - override fun initLayoutView(): Int = R.layout.activity_electric_marker_detail - override fun observeRequestState() { } diff --git a/app/src/main/java/com/casic/electric/detector/view/InstallLabelActivity.kt b/app/src/main/java/com/casic/electric/detector/view/InstallLabelActivity.kt index 07626d6..d3a89ca 100644 --- a/app/src/main/java/com/casic/electric/detector/view/InstallLabelActivity.kt +++ b/app/src/main/java/com/casic/electric/detector/view/InstallLabelActivity.kt @@ -25,6 +25,7 @@ import com.casic.electric.detector.base.SerialPortActivity import com.casic.electric.detector.callback.ILocationListener import com.casic.electric.detector.callback.OnImageCompressListener +import com.casic.electric.detector.databinding.ActivityInstallLabelBinding import com.casic.electric.detector.extensions.* import com.casic.electric.detector.utils.* import com.casic.electric.detector.vm.TaskViewModel @@ -38,11 +39,6 @@ import com.pengxh.kt.lite.utils.WeakReferenceHandler import com.pengxh.kt.lite.vm.LoadState import com.pengxh.kt.lite.widget.dialog.NoNetworkDialog -import kotlinx.android.synthetic.main.activity_install_label.* -import kotlinx.android.synthetic.main.include_base_title.* -import kotlinx.android.synthetic.main.include_label_marker_attribute.* -import kotlinx.android.synthetic.main.include_label_object_attribute.* -import kotlinx.android.synthetic.main.include_open_camera.* import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.launch import kotlinx.coroutines.withContext @@ -51,7 +47,7 @@ import java.util.* @SuppressLint("SetTextI18n") -class InstallLabelActivity : SerialPortActivity(), Handler.Callback { +class InstallLabelActivity : SerialPortActivity(), Handler.Callback { private val kTag = "LabelActivity" private val context: Context = this@InstallLabelActivity @@ -64,20 +60,22 @@ private lateinit var imageAdapter: EditableImageAdapter private lateinit var taskViewModel: TaskViewModel - override fun initLayoutView(): Int = R.layout.activity_install_label + override fun initViewBinding(): ActivityInstallLabelBinding { + return ActivityInstallLabelBinding.inflate(layoutInflater) + } override fun setupTopBarLayout() { - titleView.text = "安装新标识器" - titleView.setTextColor(R.color.themeColor.convertColor(this)) + binding.titleInclude.titleView.text = "安装新标识器" + binding.titleInclude.titleView.setTextColor(R.color.themeColor.convertColor(this)) ImmersionBar.with(this) .statusBarDarkFont(true) .statusBarColor(R.color.mainBackground) .init() - initLayoutImmersionBar(rootView) + initLayoutImmersionBar(binding.rootView) } - override fun initData(savedInstanceState: Bundle?) { + override fun initOnCreate(savedInstanceState: Bundle?) { window.setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN or WindowManager.LayoutParams.SOFT_INPUT_ADJUST_PAN) weakReferenceHandler = WeakReferenceHandler(this) @@ -92,44 +90,44 @@ .build() //设置上次填写过的值 - objectCodeView.setText("objectCodeView".getDefaultValue()) - objectNameView.setText("objectNameView".getDefaultValue()) - inlineNameView.setText("inlineNameView".getDefaultValue()) - capacityView.setText("capacityView".getDefaultValue()) - transformerSpecView.setText("transformerSpecView".getDefaultValue()) - sLengthView.setText("sLengthView".getDefaultValue()) - sWidthView.setText("sWidthView".getDefaultValue()) - sHeightView.setText("sHeightView".getDefaultValue()) - inlineCountView.setText("inlineCountView".getDefaultValue()) - outlineCountView.setText("outlineCountView".getDefaultValue()) - bottomDepthView.setText("bottomDepthView".getDefaultValue()) - rowCountView.setText("rowCountView".getDefaultValue()) - rowHoleCountView.setText("rowHoleCountView".getDefaultValue()) - coverDepthView.setText("coverDepthView".getDefaultValue()) - remainingChannelsView.setText("remainingChannelsView".getDefaultValue()) - tieCableView1.setText("tieCableView1".getDefaultValue()) - tieCableView2.setText("tieCableView2".getDefaultValue()) - jointCountView.setText("jointCountView".getDefaultValue()) - casingHoleCountView.setText("casingHoleCountView".getDefaultValue()) - casingHoleDiameterView.setText("casingHoleDiameterView".getDefaultValue()) - heightView.setText("heightView".getDefaultValue()) - lineNumberView.setText("lineNumberView".getDefaultValue()) - inspectionUnitView.setText("inspectionUnitView".getDefaultValue()) - areaView.setText("areaView".getDefaultValue()) - roadView.setText("roadView".getDefaultValue()) - objectRemarkView1.setText("objectRemarkView1".getDefaultValue()) - objectRemarkView2.setText("objectRemarkView2".getDefaultValue()) - objectRemarkView3.setText("objectRemarkView3".getDefaultValue()) - ownerView.setText("ownerView".getDefaultValue()) - markerDepthView.setText("markerDepthView".getDefaultValue()) - markerCountView.setText("markerCountView".getDefaultValue()) - remarkView1.setText("remarkView1".getDefaultValue()) - remarkView2.setText("remarkView2".getDefaultValue()) - remarkView3.setText("remarkView3".getDefaultValue()) + binding.objectAttrInclude.objectCodeView.setText("objectCodeView".getDefaultValue()) + binding.objectAttrInclude.objectNameView.setText("objectNameView".getDefaultValue()) + binding.objectAttrInclude.inlineNameView.setText("inlineNameView".getDefaultValue()) + binding.objectAttrInclude.capacityView.setText("capacityView".getDefaultValue()) + binding.objectAttrInclude.transformerSpecView.setText("transformerSpecView".getDefaultValue()) + binding.objectAttrInclude.sLengthView.setText("sLengthView".getDefaultValue()) + binding.objectAttrInclude.sWidthView.setText("sWidthView".getDefaultValue()) + binding.objectAttrInclude.sHeightView.setText("sHeightView".getDefaultValue()) + binding.objectAttrInclude.inlineCountView.setText("inlineCountView".getDefaultValue()) + binding.objectAttrInclude.outlineCountView.setText("outlineCountView".getDefaultValue()) + binding.objectAttrInclude.bottomDepthView.setText("bottomDepthView".getDefaultValue()) + binding.objectAttrInclude.rowCountView.setText("rowCountView".getDefaultValue()) + binding.objectAttrInclude.rowHoleCountView.setText("rowHoleCountView".getDefaultValue()) + binding.objectAttrInclude.coverDepthView.setText("coverDepthView".getDefaultValue()) + binding.objectAttrInclude.remainingChannelsView.setText("remainingChannelsView".getDefaultValue()) + binding.objectAttrInclude.tieCableView1.setText("tieCableView1".getDefaultValue()) + binding.objectAttrInclude.tieCableView2.setText("tieCableView2".getDefaultValue()) + binding.objectAttrInclude.jointCountView.setText("jointCountView".getDefaultValue()) + binding.objectAttrInclude.casingHoleCountView.setText("casingHoleCountView".getDefaultValue()) + binding.objectAttrInclude.casingHoleDiameterView.setText("casingHoleDiameterView".getDefaultValue()) + binding.objectAttrInclude.heightView.setText("heightView".getDefaultValue()) + binding.objectAttrInclude.lineNumberView.setText("lineNumberView".getDefaultValue()) + binding.objectAttrInclude.inspectionUnitView.setText("inspectionUnitView".getDefaultValue()) + binding.objectAttrInclude.areaView.setText("areaView".getDefaultValue()) + binding.objectAttrInclude.roadView.setText("roadView".getDefaultValue()) + binding.objectAttrInclude.objectRemarkView1.setText("objectRemarkView1".getDefaultValue()) + binding.objectAttrInclude.objectRemarkView2.setText("objectRemarkView2".getDefaultValue()) + binding.objectAttrInclude.objectRemarkView3.setText("objectRemarkView3".getDefaultValue()) + binding.markerAttrInclude.ownerView.setText("ownerView".getDefaultValue()) + binding.markerAttrInclude.markerDepthView.setText("markerDepthView".getDefaultValue()) + binding.markerAttrInclude.markerCountView.setText("markerCountView".getDefaultValue()) + binding.markerAttrInclude.remarkView1.setText("remarkView1".getDefaultValue()) + binding.markerAttrInclude.remarkView2.setText("remarkView2".getDefaultValue()) + binding.markerAttrInclude.remarkView3.setText("remarkView3".getDefaultValue()) //初始化图片九宫格 imageAdapter = EditableImageAdapter(this, 3, 3f) - addImageRecyclerView.adapter = imageAdapter + binding.cameraInclude.addImageRecyclerView.adapter = imageAdapter taskViewModel = ViewModelProvider(this)[TaskViewModel::class.java] } @@ -142,101 +140,120 @@ LoadingDialogHub.dismiss() finish() } + else -> LoadingDialogHub.dismiss() } } } override fun initEvent() { - leftBackView.setOnClickListener { finish() } + binding.titleInclude.leftBackView.setOnClickListener { finish() } /**************************************************************************************/ - objectTypeSpinner.show(this, LocaleConstant.CONTENT_ARRAY, 0) - objectTypeSpinner.onItemSelectedListener = object : AdapterView.OnItemSelectedListener { - override fun onItemSelected( - parent: AdapterView<*>?, view: View?, position: Int, id: Long - ) { - when (position) { - 0 -> { - //选择电缆井 - objectModeView.text = "类型:" - wellCoverMaterialView.text = "井盖材质:" - bottomDepthNameView.text = "井深:" - setLayoutVisibility( - View.VISIBLE, View.GONE, View.VISIBLE, View.GONE, View.VISIBLE, - View.GONE, View.GONE, View.VISIBLE, View.GONE, View.VISIBLE, - View.GONE - ) - objectModeSpinner.show( - this@InstallLabelActivity, LocaleConstant.OBJECT_MODE_ARRAY, 0 - ) - wellCoverMaterialSpinner.show( - this@InstallLabelActivity, LocaleConstant.WELL_COVER_MATERIAL_ARRAY_1, 0 - ) + binding.objectAttrInclude.objectTypeSpinner.show(this, LocaleConstant.CONTENT_ARRAY, 0) + binding.objectAttrInclude.objectTypeSpinner.onItemSelectedListener = + object : AdapterView.OnItemSelectedListener { + override fun onItemSelected( + parent: AdapterView<*>?, view: View?, position: Int, id: Long + ) { + when (position) { + 0 -> { + //选择电缆井 + binding.objectAttrInclude.objectModeView.text = "类型:" + binding.objectAttrInclude.wellCoverMaterialView.text = "井盖材质:" + binding.objectAttrInclude.bottomDepthNameView.text = "井深:" + setLayoutVisibility( + View.VISIBLE, View.GONE, View.VISIBLE, View.GONE, View.VISIBLE, + View.GONE, View.GONE, View.VISIBLE, View.GONE, View.VISIBLE, + View.GONE + ) + binding.objectAttrInclude.objectModeSpinner.show( + this@InstallLabelActivity, LocaleConstant.OBJECT_MODE_ARRAY, 0 + ) + binding.objectAttrInclude.wellCoverMaterialSpinner.show( + this@InstallLabelActivity, + LocaleConstant.WELL_COVER_MATERIAL_ARRAY_1, + 0 + ) + } + + 1 -> { + //选择电缆通道 + binding.objectAttrInclude.bottomDepthNameView.text = "底部深度:" + setLayoutVisibility( + View.GONE, View.GONE, View.GONE, View.GONE, View.GONE, + View.GONE, View.GONE, View.VISIBLE, View.VISIBLE, View.VISIBLE, + View.GONE + ) + } + + 2 -> { + //选择配电房 + setLayoutVisibility( + View.GONE, View.GONE, View.GONE, View.VISIBLE, View.VISIBLE, + View.VISIBLE, View.GONE, View.GONE, View.GONE, View.GONE, + View.GONE + ) + } + + 3 -> { + //选择开关站 + setLayoutVisibility( + View.GONE, View.GONE, View.GONE, View.GONE, View.VISIBLE, + View.VISIBLE, View.VISIBLE, View.GONE, View.GONE, View.GONE, + View.GONE + ) + } + + 4 -> { + //选择台区 + binding.objectAttrInclude.objectModeView.text = "变压器型号:" + setLayoutVisibility( + View.VISIBLE, View.VISIBLE, View.GONE, View.GONE, View.GONE, + View.GONE, View.GONE, View.GONE, View.GONE, View.GONE, + View.GONE + ) + binding.objectAttrInclude.objectModeSpinner.show( + this@InstallLabelActivity, arrayOf("变压器 KVA"), 0 + ) + } + + 5 -> { + //选择杆塔 + binding.objectAttrInclude.wellCoverMaterialView.text = "对象材质:" + setLayoutVisibility( + View.GONE, View.GONE, View.VISIBLE, View.GONE, View.GONE, + View.GONE, View.GONE, View.GONE, View.GONE, View.GONE, + View.VISIBLE + ) + binding.objectAttrInclude.wellCoverMaterialSpinner.show( + this@InstallLabelActivity, + LocaleConstant.WELL_COVER_MATERIAL_ARRAY_2, + 0 + ) + } } - 1 -> { - //选择电缆通道 - bottomDepthNameView.text = "底部深度:" - setLayoutVisibility( - View.GONE, View.GONE, View.GONE, View.GONE, View.GONE, - View.GONE, View.GONE, View.VISIBLE, View.VISIBLE, View.VISIBLE, - View.GONE - ) - } - 2 -> { - //选择配电房 - setLayoutVisibility( - View.GONE, View.GONE, View.GONE, View.VISIBLE, View.VISIBLE, - View.VISIBLE, View.GONE, View.GONE, View.GONE, View.GONE, - View.GONE - ) - } - 3 -> { - //选择开关站 - setLayoutVisibility( - View.GONE, View.GONE, View.GONE, View.GONE, View.VISIBLE, - View.VISIBLE, View.VISIBLE, View.GONE, View.GONE, View.GONE, - View.GONE - ) - } - 4 -> { - //选择台区 - objectModeView.text = "变压器型号:" - setLayoutVisibility( - View.VISIBLE, View.VISIBLE, View.GONE, View.GONE, View.GONE, - View.GONE, View.GONE, View.GONE, View.GONE, View.GONE, - View.GONE - ) - objectModeSpinner.show( - this@InstallLabelActivity, arrayOf("变压器 KVA"), 0 - ) - } - 5 -> { - //选择杆塔 - wellCoverMaterialView.text = "对象材质:" - setLayoutVisibility( - View.GONE, View.GONE, View.VISIBLE, View.GONE, View.GONE, - View.GONE, View.GONE, View.GONE, View.GONE, View.GONE, - View.VISIBLE - ) - wellCoverMaterialSpinner.show( - this@InstallLabelActivity, LocaleConstant.WELL_COVER_MATERIAL_ARRAY_2, 0 - ) - } + } + + override fun onNothingSelected(parent: AdapterView<*>?) { + } } - override fun onNothingSelected(parent: AdapterView<*>?) { - - } - } - - cabinetTypeSpinner.show(this, LocaleConstant.CABINET_TYPE_ARRAY, 0) - casingMaterialSpinner.show(this, LocaleConstant.PIPE_MATERIAL_ARRAY, 0) - markerTypeSpinner.show(this, LocaleConstant.MARKER_TYPE_ARRAY, 0) + binding.objectAttrInclude.cabinetTypeSpinner.show( + this, + LocaleConstant.CABINET_TYPE_ARRAY, + 0 + ) + binding.objectAttrInclude.casingMaterialSpinner.show( + this, + LocaleConstant.PIPE_MATERIAL_ARRAY, + 0 + ) + binding.markerAttrInclude.markerTypeSpinner.show(this, LocaleConstant.MARKER_TYPE_ARRAY, 0) //电压等级-多选 - voltageLevelView.setOnClickListener { + binding.objectAttrInclude.voltageLevelView.setOnClickListener { AlertDialog.Builder(context) .setCancelable(false) .setIcon(R.mipmap.ic_launcher) @@ -255,12 +272,12 @@ } } - voltageLevelView.text = temp.reformat() + binding.objectAttrInclude.voltageLevelView.text = temp.reformat() }.show() } //交叉管道类型-多选 - crossPipeLineView.setOnClickListener { + binding.objectAttrInclude.crossPipeLineView.setOnClickListener { AlertDialog.Builder(context) .setCancelable(false) .setIcon(R.mipmap.ic_launcher) @@ -279,11 +296,11 @@ } } - crossPipeLineView.text = temp.reformat() + binding.objectAttrInclude.crossPipeLineView.text = temp.reformat() }.show() } - constructDateView.setOnClickListener { + binding.objectAttrInclude.constructDateView.setOnClickListener { val datePicker = DatePickerDialog( this, null, @@ -308,17 +325,18 @@ "建设年代不能早于当前日期".show(context) } else { datePicker.dismiss() - constructDateView.text = selectedDate + binding.objectAttrInclude.constructDateView.text = selectedDate } } } - installTimeView.text = System.currentTimeMillis().timestampToCompleteDate() + binding.markerAttrInclude.installTimeView.text = + System.currentTimeMillis().timestampToCompleteDate() LocationHub.getCurrentLocation(this, object : ILocationListener { override fun onAMapLocationGet(location: AMapLocation?) { if (location != null) { - lngView.text = location.longitude.toString() - latView.text = location.latitude.toString() + binding.markerAttrInclude.lngView.text = location.longitude.toString() + binding.markerAttrInclude.latView.text = location.latitude.toString() } else { "当前位置信号差,无法获取定位".show(context) } @@ -358,109 +376,109 @@ }) /**************************************************************************************/ - installButton.setOnClickListener { + binding.installButton.setOnClickListener { if (isNetworkConnected()) { val companyId = SaveKeyValues.getValue(LocaleConstant.USER_COMPANY_ID, "") as String - val itemPosition = objectTypeSpinner.selectedItemPosition + val itemPosition = binding.objectAttrInclude.objectTypeSpinner.selectedItemPosition val objectTypeCode = itemPosition + 1 - if (markerIdView.text.isNullOrBlank()) { + if (binding.markerAttrInclude.markerIdView.text.isNullOrBlank()) { "标识器ID不能为空,请读标识器".show(this) return@setOnClickListener } - if (constructDateView.text.isNullOrBlank()) { + if (binding.objectAttrInclude.constructDateView.text.isNullOrBlank()) { "请选择建设时间".show(this) return@setOnClickListener } - if (markerCountView.text.isNullOrBlank()) { + if (binding.markerAttrInclude.markerCountView.text.isNullOrBlank()) { "请输入电子标签数量".show(this) return@setOnClickListener } //保存默认值 - "objectCodeView".setDefaultValue(objectCodeView) - "objectNameView".setDefaultValue(objectNameView) - "inlineNameView".setDefaultValue(inlineNameView) - "capacityView".setDefaultValue(capacityView) - "transformerSpecView".setDefaultValue(transformerSpecView) - "sLengthView".setDefaultValue(sLengthView) - "sWidthView".setDefaultValue(sWidthView) - "sHeightView".setDefaultValue(sHeightView) - "inlineCountView".setDefaultValue(inlineCountView) - "outlineCountView".setDefaultValue(outlineCountView) - "bottomDepthView".setDefaultValue(bottomDepthView) - "rowCountView".setDefaultValue(rowCountView) - "rowHoleCountView".setDefaultValue(rowHoleCountView) - "coverDepthView".setDefaultValue(coverDepthView) - "remainingChannelsView".setDefaultValue(remainingChannelsView) - "tieCableView1".setDefaultValue(tieCableView1) - "tieCableView2".setDefaultValue(tieCableView2) - "jointCountView".setDefaultValue(jointCountView) - "casingHoleCountView".setDefaultValue(casingHoleCountView) - "casingHoleDiameterView".setDefaultValue(casingHoleDiameterView) - "heightView".setDefaultValue(heightView) - "lineNumberView".setDefaultValue(lineNumberView) - "inspectionUnitView".setDefaultValue(inspectionUnitView) - "areaView".setDefaultValue(areaView) - "roadView".setDefaultValue(roadView) - "objectRemarkView1".setDefaultValue(objectRemarkView1) - "objectRemarkView2".setDefaultValue(objectRemarkView2) - "objectRemarkView3".setDefaultValue(objectRemarkView3) - "ownerView".setDefaultValue(ownerView) - "markerDepthView".setDefaultValue(markerDepthView) - "markerCountView".setDefaultValue(markerCountView) - "remarkView1".setDefaultValue(remarkView1) - "remarkView2".setDefaultValue(remarkView2) - "remarkView3".setDefaultValue(remarkView3) + "objectCodeView".setDefaultValue(binding.objectAttrInclude.objectCodeView) + "objectNameView".setDefaultValue(binding.objectAttrInclude.objectNameView) + "inlineNameView".setDefaultValue(binding.objectAttrInclude.inlineNameView) + "capacityView".setDefaultValue(binding.objectAttrInclude.capacityView) + "transformerSpecView".setDefaultValue(binding.objectAttrInclude.transformerSpecView) + "sLengthView".setDefaultValue(binding.objectAttrInclude.sLengthView) + "sWidthView".setDefaultValue(binding.objectAttrInclude.sWidthView) + "sHeightView".setDefaultValue(binding.objectAttrInclude.sHeightView) + "inlineCountView".setDefaultValue(binding.objectAttrInclude.inlineCountView) + "outlineCountView".setDefaultValue(binding.objectAttrInclude.outlineCountView) + "bottomDepthView".setDefaultValue(binding.objectAttrInclude.bottomDepthView) + "rowCountView".setDefaultValue(binding.objectAttrInclude.rowCountView) + "rowHoleCountView".setDefaultValue(binding.objectAttrInclude.rowHoleCountView) + "coverDepthView".setDefaultValue(binding.objectAttrInclude.coverDepthView) + "remainingChannelsView".setDefaultValue(binding.objectAttrInclude.remainingChannelsView) + "tieCableView1".setDefaultValue(binding.objectAttrInclude.tieCableView1) + "tieCableView2".setDefaultValue(binding.objectAttrInclude.tieCableView2) + "jointCountView".setDefaultValue(binding.objectAttrInclude.jointCountView) + "casingHoleCountView".setDefaultValue(binding.objectAttrInclude.casingHoleCountView) + "casingHoleDiameterView".setDefaultValue(binding.objectAttrInclude.casingHoleDiameterView) + "heightView".setDefaultValue(binding.objectAttrInclude.heightView) + "lineNumberView".setDefaultValue(binding.objectAttrInclude.lineNumberView) + "inspectionUnitView".setDefaultValue(binding.objectAttrInclude.inspectionUnitView) + "areaView".setDefaultValue(binding.objectAttrInclude.areaView) + "roadView".setDefaultValue(binding.objectAttrInclude.roadView) + "objectRemarkView1".setDefaultValue(binding.objectAttrInclude.objectRemarkView1) + "objectRemarkView2".setDefaultValue(binding.objectAttrInclude.objectRemarkView2) + "objectRemarkView3".setDefaultValue(binding.objectAttrInclude.objectRemarkView3) + "ownerView".setDefaultValue(binding.markerAttrInclude.ownerView) + "markerDepthView".setDefaultValue(binding.markerAttrInclude.markerDepthView) + "markerCountView".setDefaultValue(binding.markerAttrInclude.markerCountView) + "remarkView1".setDefaultValue(binding.markerAttrInclude.remarkView1) + "remarkView2".setDefaultValue(binding.markerAttrInclude.remarkView2) + "remarkView3".setDefaultValue(binding.markerAttrInclude.remarkView3) val labelData = LabelDataClass( companyId, objectTypeCode.toString(), - objectCodeView.text.toString(), - objectNameView.text.toString(), - voltageLevelView.text.toString(), - objectModeSpinner.selectedItem.toString(), - "进线${inlineNameView.text}", - wellCoverMaterialSpinner.selectedItem.toString(), - "${capacityView.text}KVA", - transformerSpecView.text.toString(), - "${sLengthView.text}米长 x ${sWidthView.text}米宽 x ${sHeightView.text}米高", - inlineCountView.text.toString(), - outlineCountView.text.toString(), - cabinetTypeSpinner.selectedItem.toString(), - bottomDepthView.text.toString(), - "${rowCountView.text}排 x ${rowHoleCountView.text}孔", - "${coverDepthView.text}米", - crossPipeLineView.text.toString(), - remainingChannelsView.text.toString(), - tieCableView1.text.toString(), - tieCableView2.text.toString(), - jointCountView.text.toString(), - casingMaterialSpinner.selectedItem.toString(), - "${casingHoleCountView.text}孔,直径${casingHoleDiameterView.text}毫米", - "${heightView.text.toString()}米", - lineNumberView.text.toString(), - constructDateView.text.toString(), - inspectionUnitView.text.toString(), - areaView.text.toString(), - roadView.text.toString(), - objectRemarkView1.text.toString(), - objectRemarkView2.text.toString(), - objectRemarkView3.text.toString(), - markerIdView.text.toString(), - markerTypeSpinner.selectedItem.toString(), - ownerView.text.toString(), - markerDepthView.text.toString(), - installTimeView.text.toString(), - lngView.text.toString(), - latView.text.toString(), - markerCountView.text.toString(), - remarkView1.text.toString(), - remarkView2.text.toString(), - remarkView3.text.toString(), + binding.objectAttrInclude.objectCodeView.text.toString(), + binding.objectAttrInclude.objectNameView.text.toString(), + binding.objectAttrInclude.voltageLevelView.text.toString(), + binding.objectAttrInclude.objectModeSpinner.selectedItem.toString(), + "进线${binding.objectAttrInclude.inlineNameView.text}", + binding.objectAttrInclude.wellCoverMaterialSpinner.selectedItem.toString(), + "${binding.objectAttrInclude.capacityView.text}KVA", + binding.objectAttrInclude.transformerSpecView.text.toString(), + "${binding.objectAttrInclude.sLengthView.text}米长 x ${binding.objectAttrInclude.sWidthView.text}米宽 x ${binding.objectAttrInclude.sHeightView.text}米高", + binding.objectAttrInclude.inlineCountView.text.toString(), + binding.objectAttrInclude.outlineCountView.text.toString(), + binding.objectAttrInclude.cabinetTypeSpinner.selectedItem.toString(), + binding.objectAttrInclude.bottomDepthView.text.toString(), + "${binding.objectAttrInclude.rowCountView.text}排 x ${binding.objectAttrInclude.rowHoleCountView.text}孔", + "${binding.objectAttrInclude.coverDepthView.text}米", + binding.objectAttrInclude.crossPipeLineView.text.toString(), + binding.objectAttrInclude.remainingChannelsView.text.toString(), + binding.objectAttrInclude.tieCableView1.text.toString(), + binding.objectAttrInclude.tieCableView2.text.toString(), + binding.objectAttrInclude.jointCountView.text.toString(), + binding.objectAttrInclude.casingMaterialSpinner.selectedItem.toString(), + "${binding.objectAttrInclude.casingHoleCountView.text}孔,直径${binding.objectAttrInclude.casingHoleDiameterView.text}毫米", + "${binding.objectAttrInclude.heightView.text.toString()}米", + binding.objectAttrInclude.lineNumberView.text.toString(), + binding.objectAttrInclude.constructDateView.text.toString(), + binding.objectAttrInclude.inspectionUnitView.text.toString(), + binding.objectAttrInclude.areaView.text.toString(), + binding.objectAttrInclude.roadView.text.toString(), + binding.objectAttrInclude.objectRemarkView1.text.toString(), + binding.objectAttrInclude.objectRemarkView2.text.toString(), + binding.objectAttrInclude.objectRemarkView3.text.toString(), + binding.markerAttrInclude.markerIdView.text.toString(), + binding.markerAttrInclude.markerTypeSpinner.selectedItem.toString(), + binding.markerAttrInclude.ownerView.text.toString(), + binding.markerAttrInclude.markerDepthView.text.toString(), + binding.markerAttrInclude.installTimeView.text.toString(), + binding.markerAttrInclude.lngView.text.toString(), + binding.markerAttrInclude.latView.text.toString(), + binding.markerAttrInclude.markerCountView.text.toString(), + binding.markerAttrInclude.remarkView1.text.toString(), + binding.markerAttrInclude.remarkView2.text.toString(), + binding.markerAttrInclude.remarkView3.text.toString(), realPaths ) @@ -486,7 +504,7 @@ } } - readLabelButton.setOnClickListener { + binding.readLabelButton.setOnClickListener { gpioManager.setGpioHigh("18") LoadingDialogHub.show(this, "标识器读取中,请稍后...") @@ -534,7 +552,7 @@ //查本地库 val result = DataBaseManager.get.queryLabelById(markerId) if (result.isEmpty()) { - markerIdView.text = markerId + binding.markerAttrInclude.markerIdView.text = markerId } else { "此标识器已安装,请更换标识器!".show(this) } @@ -560,17 +578,17 @@ //根据选择类型控制界面某些区域显隐 private fun setLayoutVisibility(vararg args: Int) { - objectModeLayout.visibility = args[0] - inlineNameLayout.visibility = args[1] - wellCoverMaterialLayout.visibility = args[2] - capacityLayout.visibility = args[3] - sizeLayout.visibility = args[4] - inlineCountLayout.visibility = args[5] - outlineCountLayout.visibility = args[6] - wellDepthLayout.visibility = args[7] - pipeLineLayout.visibility = args[8] - jointCountLayout.visibility = args[9] - heightLayout.visibility = args[10] + binding.objectAttrInclude.objectModeLayout.visibility = args[0] + binding.objectAttrInclude.inlineNameLayout.visibility = args[1] + binding.objectAttrInclude.wellCoverMaterialLayout.visibility = args[2] + binding.objectAttrInclude.capacityLayout.visibility = args[3] + binding.objectAttrInclude.sizeLayout.visibility = args[4] + binding.objectAttrInclude.inlineCountLayout.visibility = args[5] + binding.objectAttrInclude.outlineCountLayout.visibility = args[6] + binding.objectAttrInclude.wellDepthLayout.visibility = args[7] + binding.objectAttrInclude.pipeLineLayout.visibility = args[8] + binding.objectAttrInclude.jointCountLayout.visibility = args[9] + binding.objectAttrInclude.heightLayout.visibility = args[10] } override fun onDestroy() { diff --git a/app/src/main/java/com/casic/electric/detector/view/InstallSmallLabelActivity.kt b/app/src/main/java/com/casic/electric/detector/view/InstallSmallLabelActivity.kt index d6888ee..5bc2ac8 100644 --- a/app/src/main/java/com/casic/electric/detector/view/InstallSmallLabelActivity.kt +++ b/app/src/main/java/com/casic/electric/detector/view/InstallSmallLabelActivity.kt @@ -20,6 +20,7 @@ import com.casic.electric.detector.adapter.EditableImageAdapter import com.casic.electric.detector.base.SerialPortActivity import com.casic.electric.detector.callback.OnImageCompressListener +import com.casic.electric.detector.databinding.ActivityInstallSmallLabelBinding import com.casic.electric.detector.extensions.* import com.casic.electric.detector.utils.* import com.casic.electric.detector.vm.TaskViewModel @@ -36,18 +37,16 @@ import com.pengxh.kt.lite.utils.WeakReferenceHandler import com.pengxh.kt.lite.vm.LoadState import com.pengxh.kt.lite.widget.dialog.NoNetworkDialog -import kotlinx.android.synthetic.main.activity_install_small_label.* -import kotlinx.android.synthetic.main.include_base_title.* -import kotlinx.android.synthetic.main.include_open_camera.* -import kotlinx.android.synthetic.main.include_small_label_object_attribute.* import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.launch import kotlinx.coroutines.withContext import java.io.File +import java.io.FileWriter import java.io.IOException @SuppressLint("SetTextI18n") -class InstallSmallLabelActivity : SerialPortActivity(), Handler.Callback { +class InstallSmallLabelActivity : SerialPortActivity(), + Handler.Callback { private val kTag = "SmallLabelActivity" private val context: Context = this@InstallSmallLabelActivity @@ -59,20 +58,22 @@ private lateinit var imageAdapter: EditableImageAdapter private lateinit var taskViewModel: TaskViewModel - override fun initLayoutView(): Int = R.layout.activity_install_small_label + override fun initViewBinding(): ActivityInstallSmallLabelBinding { + return ActivityInstallSmallLabelBinding.inflate(layoutInflater) + } override fun setupTopBarLayout() { - titleView.text = "安装新电子标签" - titleView.setTextColor(R.color.themeColor.convertColor(this)) + binding.titleInclude.titleView.text = "安装新电子标签" + binding.titleInclude.titleView.setTextColor(R.color.themeColor.convertColor(this)) ImmersionBar.with(this) .statusBarDarkFont(true) .statusBarColor(R.color.mainBackground) .init() - initLayoutImmersionBar(rootView) + initLayoutImmersionBar(binding.rootView) } - override fun initData(savedInstanceState: Bundle?) { + override fun initOnCreate(savedInstanceState: Bundle?) { window.setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN or WindowManager.LayoutParams.SOFT_INPUT_ADJUST_PAN) weakReferenceHandler = WeakReferenceHandler(this) @@ -87,23 +88,23 @@ .build() //设置上次填写过的值 - cableNumberView.setText("cableNumberView".getDefaultValue()) - cableNameView.setText("cableNameView".getDefaultValue()) - lineView.setText("lineView".getDefaultValue()) - voltageLevelView.setText("voltageLevelView".getDefaultValue()) - cableModelView.setText("cableModelView".getDefaultValue()) - cableSpecView.setText("cableSpecView".getDefaultValue()) - cableBrandView.setText("cableBrandView".getDefaultValue()) - cableStartView.setText("cableStartView".getDefaultValue()) - cableEndView.setText("cableEndView".getDefaultValue()) - jointCreatorView.setText("jointCreatorView".getDefaultValue()) - objectRemarkView1.setText("objectRemarkView1".getDefaultValue()) - objectRemarkView2.setText("objectRemarkView2".getDefaultValue()) - objectRemarkView3.setText("objectRemarkView3".getDefaultValue()) + binding.objectAttrInclude.cableNumberView.setText("cableNumberView".getDefaultValue()) + binding.objectAttrInclude.cableNameView.setText("cableNameView".getDefaultValue()) + binding.objectAttrInclude.lineView.setText("lineView".getDefaultValue()) + binding.objectAttrInclude.voltageLevelView.setText("voltageLevelView".getDefaultValue()) + binding.objectAttrInclude.cableModelView.setText("cableModelView".getDefaultValue()) + binding.objectAttrInclude.cableSpecView.setText("cableSpecView".getDefaultValue()) + binding.objectAttrInclude.cableBrandView.setText("cableBrandView".getDefaultValue()) + binding.objectAttrInclude.cableStartView.setText("cableStartView".getDefaultValue()) + binding.objectAttrInclude.cableEndView.setText("cableEndView".getDefaultValue()) + binding.objectAttrInclude.jointCreatorView.setText("jointCreatorView".getDefaultValue()) + binding.objectAttrInclude.objectRemarkView1.setText("objectRemarkView1".getDefaultValue()) + binding.objectAttrInclude.objectRemarkView2.setText("objectRemarkView2".getDefaultValue()) + binding.objectAttrInclude.objectRemarkView3.setText("objectRemarkView3".getDefaultValue()) //初始化图片九宫格 imageAdapter = EditableImageAdapter(this, 3, 3f) - addImageRecyclerView.adapter = imageAdapter + binding.cameraInclude.addImageRecyclerView.adapter = imageAdapter taskViewModel = ViewModelProvider(this)[TaskViewModel::class.java] } @@ -116,20 +117,31 @@ LoadingDialogHub.dismiss() finish() } + else -> LoadingDialogHub.dismiss() } } } override fun initEvent() { - leftBackView.setOnClickListener { finish() } + binding.titleInclude.leftBackView.setOnClickListener { finish() } /**************************************************************************************/ //TODO 读取电子标签为未实现 - readElectricTagButton.setOnClickListener { - gpioManager.setGpioHigh("18") + var fileWriter: FileWriter + try { + fileWriter = FileWriter("/sys/class/newmobi_gpio/newmobi_gpio/Gpio") + fileWriter.write("99") + fileWriter.close() + } catch (e: Exception) { + e.printStackTrace() + } + + gpioManager.setGpioHigh("21") + + binding.readElectricTagButton.setOnClickListener { LoadingDialogHub.show(this, "电子标签读取中,请稍后...") soundResId = soundPool.load(this, R.raw.ring3, 1) @@ -141,32 +153,34 @@ weakReferenceHandler.postDelayed({ try { // 发送读标识器或搜索信号 - outputStream?.write("00".toByteArray()) - outputStream?.flush() + fileWriter = FileWriter("/sys/class/newmobi_gpio/newmobi_gpio/Gpio_inout") + fileWriter.write("01") + fileWriter.close() } catch (e: IOException) { e.printStackTrace() } - }, 1000) + }, 500) } - bindMarkerSpinner.show(this, arrayOf("是", "否"), 0) - bindMarkerSpinner.onItemSelectedListener = object : AdapterView.OnItemSelectedListener { - override fun onItemSelected( - parent: AdapterView<*>?, view: View?, position: Int, id: Long - ) { - if (position == 0) { - markerLayout.visibility = View.VISIBLE - } else { - markerLayout.visibility = View.GONE + binding.objectAttrInclude.bindMarkerSpinner.show(this, arrayOf("是", "否"), 0) + binding.objectAttrInclude.bindMarkerSpinner.onItemSelectedListener = + object : AdapterView.OnItemSelectedListener { + override fun onItemSelected( + parent: AdapterView<*>?, view: View?, position: Int, id: Long + ) { + if (position == 0) { + binding.objectAttrInclude.markerLayout.visibility = View.VISIBLE + } else { + binding.objectAttrInclude.markerLayout.visibility = View.GONE + } + } + + override fun onNothingSelected(parent: AdapterView<*>?) { + } } - override fun onNothingSelected(parent: AdapterView<*>?) { - - } - } - - middleJointSpinner.show(this, arrayOf("有", "无"), 0) + binding.objectAttrInclude.middleJointSpinner.show(this, arrayOf("有", "无"), 0) imageAdapter.setOnItemClickListener(object : EditableImageAdapter.OnItemClickListener { override fun onAddImageClick() { @@ -201,60 +215,60 @@ }) /**************************************************************************************/ - installButton.setOnClickListener { + binding.installButton.setOnClickListener { if (isNetworkConnected()) { val companyId = SaveKeyValues.getValue(LocaleConstant.USER_COMPANY_ID, "") as String - if (markerIdView.text.isNullOrBlank()) { + if (binding.objectAttrInclude.markerIdView.text.isNullOrBlank()) { "标识器ID不能为空,请读标识器".show(this) return@setOnClickListener } - if (smallLabelIdView.text.isNullOrBlank()) { + if (binding.objectAttrInclude.smallLabelIdView.text.isNullOrBlank()) { "电子标签ID不能为空,请读电子标签".show(this) return@setOnClickListener } - if (voltageLevelView.text.isNullOrBlank()) { + if (binding.objectAttrInclude.voltageLevelView.text.isNullOrBlank()) { "电压等级不能为空,请输入电压等级".show(this) return@setOnClickListener } //保存默认值 - "cableNumberView".setDefaultValue(cableNumberView) - "cableNameView".setDefaultValue(cableNameView) - "lineView".setDefaultValue(lineView) - "voltageLevelView".setDefaultValue(voltageLevelView) - "cableModelView".setDefaultValue(cableModelView) - "cableSpecView".setDefaultValue(cableSpecView) - "cableBrandView".setDefaultValue(cableBrandView) - "cableStartView".setDefaultValue(cableStartView) - "cableEndView".setDefaultValue(cableEndView) - "jointCreatorView".setDefaultValue(jointCreatorView) - "objectRemarkView1".setDefaultValue(objectRemarkView1) - "objectRemarkView2".setDefaultValue(objectRemarkView2) - "objectRemarkView3".setDefaultValue(objectRemarkView3) + "cableNumberView".setDefaultValue(binding.objectAttrInclude.cableNumberView) + "cableNameView".setDefaultValue(binding.objectAttrInclude.cableNameView) + "lineView".setDefaultValue(binding.objectAttrInclude.lineView) + "voltageLevelView".setDefaultValue(binding.objectAttrInclude.voltageLevelView) + "cableModelView".setDefaultValue(binding.objectAttrInclude.cableModelView) + "cableSpecView".setDefaultValue(binding.objectAttrInclude.cableSpecView) + "cableBrandView".setDefaultValue(binding.objectAttrInclude.cableBrandView) + "cableStartView".setDefaultValue(binding.objectAttrInclude.cableStartView) + "cableEndView".setDefaultValue(binding.objectAttrInclude.cableEndView) + "jointCreatorView".setDefaultValue(binding.objectAttrInclude.jointCreatorView) + "objectRemarkView1".setDefaultValue(binding.objectAttrInclude.objectRemarkView1) + "objectRemarkView2".setDefaultValue(binding.objectAttrInclude.objectRemarkView2) + "objectRemarkView3".setDefaultValue(binding.objectAttrInclude.objectRemarkView3) val smallLabelData = SmallLabelDataClass( companyId, - markerIdView.text.toString(), - markerNumberView.text.toString(), - markerNameView.text.toString(), - smallLabelIdView.text.toString(), - cableNameView.toString(), - cableNumberView.toString(), - lineView.text.toString(), - voltageLevelView.toString(), - cableModelView.text.toString(), - cableSpecView.text.toString(), - cableBrandView.text.toString(), - cableStartView.text.toString(), - cableEndView.text.toString(), - middleJointSpinner.selectedItem.toString(), - jointCreatorView.text.toString(), - objectRemarkView1.text.toString(), - objectRemarkView2.text.toString(), - objectRemarkView3.text.toString(), + binding.objectAttrInclude.markerIdView.text.toString(), + binding.objectAttrInclude.markerNumberView.text.toString(), + binding.objectAttrInclude.markerNameView.text.toString(), + binding.objectAttrInclude.smallLabelIdView.text.toString(), + binding.objectAttrInclude.cableNameView.toString(), + binding.objectAttrInclude.cableNumberView.toString(), + binding.objectAttrInclude.lineView.text.toString(), + binding.objectAttrInclude.voltageLevelView.toString(), + binding.objectAttrInclude.cableModelView.text.toString(), + binding.objectAttrInclude.cableSpecView.text.toString(), + binding.objectAttrInclude.cableBrandView.text.toString(), + binding.objectAttrInclude.cableStartView.text.toString(), + binding.objectAttrInclude.cableEndView.text.toString(), + binding.objectAttrInclude.middleJointSpinner.selectedItem.toString(), + binding.objectAttrInclude.jointCreatorView.text.toString(), + binding.objectAttrInclude.objectRemarkView1.text.toString(), + binding.objectAttrInclude.objectRemarkView2.text.toString(), + binding.objectAttrInclude.objectRemarkView3.text.toString(), realPaths ) @@ -280,7 +294,7 @@ } } - readLabelButton.setOnClickListener { + binding.readLabelButton.setOnClickListener { gpioManager.setGpioHigh("18") LoadingDialogHub.show(this, "标识器读取中,请稍后...") @@ -328,7 +342,7 @@ //查本地库 val result = DataBaseManager.get.queryLabelById(markerId) if (result.isEmpty()) { - markerIdView.text = markerId + binding.objectAttrInclude.markerIdView.text = markerId } else { "此标识器已安装,请更换标识器!".show(this) } diff --git a/app/src/main/java/com/casic/electric/detector/view/LoginActivity.kt b/app/src/main/java/com/casic/electric/detector/view/LoginActivity.kt index f521ffd..44d56ef 100644 --- a/app/src/main/java/com/casic/electric/detector/view/LoginActivity.kt +++ b/app/src/main/java/com/casic/electric/detector/view/LoginActivity.kt @@ -4,7 +4,7 @@ import android.util.Log import androidx.lifecycle.ViewModelProvider import com.amap.api.navi.NaviSetting -import com.casic.electric.detector.R +import com.casic.electric.detector.databinding.ActivityLoginBinding import com.casic.electric.detector.extensions.initLayoutImmersionBar import com.casic.electric.detector.utils.GpioManager import com.casic.electric.detector.utils.LoadingDialogHub @@ -18,21 +18,24 @@ import com.pengxh.kt.lite.utils.SaveKeyValues import com.pengxh.kt.lite.vm.LoadState import com.pengxh.kt.lite.widget.dialog.AlertMessageDialog -import kotlinx.android.synthetic.main.activity_login.* -class LoginActivity : KotlinBaseActivity() { +class LoginActivity : KotlinBaseActivity() { private val kTag = "LoginActivity" private lateinit var userViewModel: UserViewModel private val gpioManager by lazy { GpioManager() } - override fun initData(savedInstanceState: Bundle?) { + override fun initViewBinding(): ActivityLoginBinding { + return ActivityLoginBinding.inflate(layoutInflater) + } + + override fun initOnCreate(savedInstanceState: Bundle?) { gpioManager.setGpioLow("18") //先把导航隐私政策声明,后面导航会用到 NaviSetting.updatePrivacyShow(this, true, true) NaviSetting.updatePrivacyAgree(this, true) - autoSavePasswordView.isChecked = + binding.autoSavePasswordView.isChecked = SaveKeyValues.getValue(LocaleConstant.AUTO_SAVE, false) as Boolean userViewModel = ViewModelProvider(this)[UserViewModel::class.java] @@ -51,11 +54,11 @@ } override fun initEvent() { - loginButton.setOnClickListener { - val account = accountView.text.toString() - val password = passwordView.text.toString() - val serversIp = serversIpView.text.toString() - val serversPort = serversPortView.text.toString() + binding.loginButton.setOnClickListener { + val account = binding.accountView.text.toString() + val password = binding.passwordView.text.toString() + val serversIp = binding.serversIpView.text.toString() + val serversPort = binding.serversPortView.text.toString() if (account.isBlank() || password.isBlank() || serversIp.isBlank() || serversPort.isBlank()) { AlertMessageDialog.Builder() .setContext(this) @@ -79,7 +82,7 @@ } } - autoSavePasswordView.setOnCheckedChangeListener { _, isChecked -> + binding.autoSavePasswordView.setOnCheckedChangeListener { _, isChecked -> if (isChecked) { SaveKeyValues.putValue(LocaleConstant.AUTO_SAVE, true) } else { @@ -88,8 +91,6 @@ } } - override fun initLayoutView(): Int = R.layout.activity_login - override fun observeRequestState() { userViewModel.loadState.observe(this) { when (it) { @@ -101,24 +102,24 @@ override fun setupTopBarLayout() { ImmersionBar.with(this).statusBarDarkFont(true).init() - initLayoutImmersionBar(rootView) + initLayoutImmersionBar(binding.rootView) Log.d(kTag, "setupTopBarLayout => [${getScreenWidth()}, ${getScreenHeight()}]") } override fun onResume() { super.onResume() - if (autoSavePasswordView.isChecked) { - accountView.setText( + if (binding.autoSavePasswordView.isChecked) { + binding.accountView.setText( SaveKeyValues.getValue(LocaleConstant.USER_ACCOUNT, "") as String ) - passwordView.setText( + binding.passwordView.setText( SaveKeyValues.getValue(LocaleConstant.USER_PASSWORD, "") as String ) - serversIpView.setText( + binding.serversIpView.setText( SaveKeyValues.getValue(LocaleConstant.SERVER_IP, "") as String ) - serversPortView.setText( + binding.serversPortView.setText( SaveKeyValues.getValue(LocaleConstant.SERVER_PORT, "") as String ) } diff --git a/app/src/main/java/com/casic/electric/detector/view/MainActivity.kt b/app/src/main/java/com/casic/electric/detector/view/MainActivity.kt index dabec9f..36a8d55 100644 --- a/app/src/main/java/com/casic/electric/detector/view/MainActivity.kt +++ b/app/src/main/java/com/casic/electric/detector/view/MainActivity.kt @@ -28,6 +28,7 @@ import com.casic.electric.detector.cluster.ClusterItem import com.casic.electric.detector.cluster.ClusterOverlay import com.casic.electric.detector.cluster.RegionItem +import com.casic.electric.detector.databinding.ActivityMainBinding import com.casic.electric.detector.extensions.appendExcelDownloadUrl import com.casic.electric.detector.extensions.drawCircle import com.casic.electric.detector.extensions.initLayoutImmersionBar @@ -54,22 +55,13 @@ import com.pengxh.kt.lite.widget.dialog.AlertControlDialog import com.pengxh.kt.lite.widget.dialog.BottomActionSheet import com.pengxh.kt.lite.widget.dialog.NoNetworkDialog -import kotlinx.android.synthetic.main.activity_main.aimButton -import kotlinx.android.synthetic.main.activity_main.currentLocationView -import kotlinx.android.synthetic.main.activity_main.detectionButton -import kotlinx.android.synthetic.main.activity_main.inspectionButton -import kotlinx.android.synthetic.main.activity_main.installButton -import kotlinx.android.synthetic.main.activity_main.mapView -import kotlinx.android.synthetic.main.activity_main.rightImageView -import kotlinx.android.synthetic.main.activity_main.rootView -import kotlinx.android.synthetic.main.activity_main.viewButton import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.launch import kotlinx.coroutines.withContext import java.io.File -class MainActivity : KotlinBaseActivity() { +class MainActivity : KotlinBaseActivity() { private val kTag = "MainActivity" private val context: Context = this@MainActivity @@ -87,18 +79,20 @@ private val backDrawables = HashMap() private val regionRadius by lazy { LocaleConstant.RADIUS_SIZE.dp2px(this) } - 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.themeColor).init() - initLayoutImmersionBar(rootView) + initLayoutImmersionBar(binding.rootView) } override fun observeRequestState() { } - override fun initData(savedInstanceState: Bundle?) { + override fun initOnCreate(savedInstanceState: Bundle?) { val powerManager = getSystemService(Context.POWER_SERVICE) as PowerManager wakeLock = powerManager.run { newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, this@MainActivity.localClassName).apply { @@ -197,7 +191,7 @@ } override fun initEvent() { - rightImageView.setOnClickListener { + binding.rightImageView.setOnClickListener { CoroutineScope(Dispatchers.Main).launch { val labels = withContext(Dispatchers.IO) { DataBaseManager.get.queryLabelById("0") @@ -205,8 +199,8 @@ if (labels.isNotEmpty()) { samplePopupWindow.setShowPosition(4) } - val x = rightImageView.width - samplePopupWindow.width - 1f.dp2px(context) - samplePopupWindow.showAsDropDown(rightImageView, x, 1f.dp2px(context)) + val x = binding.rightImageView.width - samplePopupWindow.width - 1f.dp2px(context) + samplePopupWindow.showAsDropDown(binding.rightImageView, x, 1f.dp2px(context)) } } @@ -224,7 +218,7 @@ }) //安装。上传,然后存入本地库 - installButton.setOnClickListener { + binding.installButton.setOnClickListener { AlertControlDialog.Builder() .setContext(context) .setTitle("提示") @@ -246,7 +240,7 @@ } //查看 - viewButton.setOnClickListener { + binding.viewButton.setOnClickListener { QueryMarkerDialog.Builder() .setContext(this) .setTitle("查看标识器") @@ -308,7 +302,7 @@ } //巡检 - inspectionButton.setOnClickListener { + binding.inspectionButton.setOnClickListener { // val task = DataBaseManager.get.queryDistinctTask() // if (task.isNotEmpty()) { // val arrayList = ArrayList() @@ -366,14 +360,14 @@ } //探测 - detectionButton.setOnClickListener { + binding.detectionButton.setOnClickListener { // navigatePageTo() } } private fun initMapConfig(savedInstanceState: Bundle?) { - mapView.onCreate(savedInstanceState) - aMap = mapView.map + binding.mapView.onCreate(savedInstanceState) + aMap = binding.mapView.map val uiSettings = aMap.uiSettings uiSettings.isCompassEnabled = true @@ -394,7 +388,7 @@ latitude = it.latitude //经纬度逆编码 LocationHub.antiCodingLocation(context, it) { address -> - currentLocationView.text = address + binding.currentLocationView.text = address } } @@ -419,7 +413,7 @@ } //自定义定位按钮 - aimButton.setOnClickListener { moveToCurrentLocation() } + binding.aimButton.setOnClickListener { moveToCurrentLocation() } } private fun moveToCurrentLocation() { @@ -566,6 +560,7 @@ } } } + 1 -> { val electricMarkers = ArrayList() smallLabels.forEach { @@ -582,6 +577,7 @@ //显示单选列表对话框 showElectricMarkers(electricMarkers) } + 2 -> { RouteOnMap.startNavigation( context, item.tag, @@ -619,7 +615,7 @@ override fun onResume() { super.onResume() - mapView.onResume() + binding.mapView.onResume() lifecycleScope.launch { labels = withContext(Dispatchers.IO) { DataBaseManager.get.loadLabels() as ArrayList @@ -638,17 +634,17 @@ override fun onPause() { super.onPause() - mapView.onPause() + binding.mapView.onPause() } override fun onSaveInstanceState(outState: Bundle) { super.onSaveInstanceState(outState) - mapView.onSaveInstanceState(outState) + binding.mapView.onSaveInstanceState(outState) } override fun onDestroy() { wakeLock.release() super.onDestroy() - mapView.onDestroy() + binding.mapView.onDestroy() } } \ No newline at end of file diff --git a/app/build.gradle b/app/build.gradle index 385cd21..093bae7 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -2,7 +2,6 @@ apply plugin: 'com.android.application' apply plugin: 'kotlin-android' -apply plugin: 'kotlin-android-extensions' apply plugin: 'org.greenrobot.greendao' android { @@ -70,7 +69,7 @@ implementation 'androidx.core:core-ktx:1.9.0' implementation 'androidx.appcompat:appcompat:1.6.1' //基础依赖库 - implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.0.4.9' + implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.0.5' //Google官方授权框架 implementation 'pub.devrel:easypermissions:3.0.0' //腾讯Android UI框架 diff --git a/app/src/main/java/com/casic/electric/detector/base/SerialPortActivity.kt b/app/src/main/java/com/casic/electric/detector/base/SerialPortActivity.kt index 3e5ba6c..ac05531 100644 --- a/app/src/main/java/com/casic/electric/detector/base/SerialPortActivity.kt +++ b/app/src/main/java/com/casic/electric/detector/base/SerialPortActivity.kt @@ -2,6 +2,7 @@ import android.os.Bundle import androidx.appcompat.app.AppCompatActivity +import androidx.viewbinding.ViewBinding import com.casic.electric.detector.uart.SerialPort import com.pengxh.kt.lite.extensions.show import java.io.IOException @@ -10,8 +11,9 @@ import java.security.InvalidParameterException -abstract class SerialPortActivity : AppCompatActivity() { +abstract class SerialPortActivity : AppCompatActivity() { + protected lateinit var binding: VB private var serialPort: SerialPort? = null var outputStream: OutputStream? = null private var inputStream: InputStream? = null @@ -39,9 +41,10 @@ override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) - setContentView(initLayoutView()) + binding = initViewBinding() + setContentView(binding.root) setupTopBarLayout() - initData(savedInstanceState) + initOnCreate(savedInstanceState) observeRequestState() initEvent() @@ -64,7 +67,7 @@ /** * 初始化xml布局 */ - abstract fun initLayoutView(): Int + abstract fun initViewBinding(): VB /** * 特定页面定制沉浸式状态栏 @@ -74,7 +77,7 @@ /** * 初始化默认数据 */ - abstract fun initData(savedInstanceState: Bundle?) + abstract fun initOnCreate(savedInstanceState: Bundle?) /** * 数据请求状态监听 diff --git a/app/src/main/java/com/casic/electric/detector/view/BigImageActivity.kt b/app/src/main/java/com/casic/electric/detector/view/BigImageActivity.kt index 040242e..aa1bdeb 100644 --- a/app/src/main/java/com/casic/electric/detector/view/BigImageActivity.kt +++ b/app/src/main/java/com/casic/electric/detector/view/BigImageActivity.kt @@ -11,22 +11,24 @@ import androidx.viewpager.widget.ViewPager import com.bumptech.glide.Glide import com.casic.electric.detector.R +import com.casic.electric.detector.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/electric/detector/view/ElectricMarkerDetailActivity.kt b/app/src/main/java/com/casic/electric/detector/view/ElectricMarkerDetailActivity.kt index b381d5c..d72edc5 100644 --- a/app/src/main/java/com/casic/electric/detector/view/ElectricMarkerDetailActivity.kt +++ b/app/src/main/java/com/casic/electric/detector/view/ElectricMarkerDetailActivity.kt @@ -4,8 +4,8 @@ import android.graphics.drawable.ColorDrawable import android.os.Bundle import android.view.Gravity -import com.casic.electric.detector.R import com.casic.electric.detector.bean.SmallLabelBean +import com.casic.electric.detector.databinding.ActivityElectricMarkerDetailBinding import com.casic.electric.detector.extensions.appendDownloadUrl import com.casic.electric.detector.utils.DataBaseManager import com.casic.electric.detector.utils.FileType @@ -15,13 +15,16 @@ import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show import com.pengxh.kt.lite.utils.Constant -import kotlinx.android.synthetic.main.activity_electric_marker_detail.* -class ElectricMarkerDetailActivity : KotlinBaseActivity() { +class ElectricMarkerDetailActivity : KotlinBaseActivity() { private lateinit var smallLabel: SmallLabelBean - override fun initData(savedInstanceState: Bundle?) { + override fun initViewBinding(): ActivityElectricMarkerDetailBinding { + return ActivityElectricMarkerDetailBinding.inflate(layoutInflater) + } + + override fun initOnCreate(savedInstanceState: Bundle?) { window.setBackgroundDrawable(ColorDrawable(Color.TRANSPARENT)) window.decorView.setBackgroundColor(Color.TRANSPARENT) window.setGravity(Gravity.CENTER) @@ -34,30 +37,30 @@ smallLabel = DataBaseManager.get.queryElectricMarkerById(electricMarkerId) - markerIdView.text = smallLabel.markerId - locationNumberView.text = smallLabel.locationNumber - locationNameView.text = smallLabel.locationName - electricMarkerIdView.text = smallLabel.electricMarkerId - cableNameView.text = smallLabel.cableName - cableNumberView.text = smallLabel.cableNumber - lineView.text = smallLabel.line - voltageLevelView.text = smallLabel.voltageLevel - cableTypeView.text = smallLabel.cableType - cableSpecView.text = smallLabel.cableSpec - cableBrandView.text = smallLabel.cableBrand - cableStartView.text = smallLabel.cableStart - cableEndView.text = smallLabel.cableEnd - hasJointView.text = smallLabel.hasJoint - jointCreatorView.text = smallLabel.jointCreator - memo1View.text = smallLabel.memo1 - memo2View.text = smallLabel.memo2 - memo3View.text = smallLabel.memo3 + binding.markerIdView.text = smallLabel.markerId + binding.locationNumberView.text = smallLabel.locationNumber + binding.locationNameView.text = smallLabel.locationName + binding.electricMarkerIdView.text = smallLabel.electricMarkerId + binding.cableNameView.text = smallLabel.cableName + binding.cableNumberView.text = smallLabel.cableNumber + binding.lineView.text = smallLabel.line + binding.voltageLevelView.text = smallLabel.voltageLevel + binding.cableTypeView.text = smallLabel.cableType + binding.cableSpecView.text = smallLabel.cableSpec + binding.cableBrandView.text = smallLabel.cableBrand + binding.cableStartView.text = smallLabel.cableStart + binding.cableEndView.text = smallLabel.cableEnd + binding.hasJointView.text = smallLabel.hasJoint + binding.jointCreatorView.text = smallLabel.jointCreator + binding.memo1View.text = smallLabel.memo1 + binding.memo2View.text = smallLabel.memo2 + binding.memo3View.text = smallLabel.memo3 } override fun initEvent() { - closeView.setOnClickListener { finish() } + binding.closeView.setOnClickListener { finish() } - showImageView.setOnClickListener { + binding.showImageView.setOnClickListener { //查数据库 if (smallLabel.imagePath.isNullOrEmpty()) { "此标识器无图片".show(this) @@ -84,8 +87,6 @@ } } - override fun initLayoutView(): Int = R.layout.activity_electric_marker_detail - override fun observeRequestState() { } diff --git a/app/src/main/java/com/casic/electric/detector/view/InstallLabelActivity.kt b/app/src/main/java/com/casic/electric/detector/view/InstallLabelActivity.kt index 07626d6..d3a89ca 100644 --- a/app/src/main/java/com/casic/electric/detector/view/InstallLabelActivity.kt +++ b/app/src/main/java/com/casic/electric/detector/view/InstallLabelActivity.kt @@ -25,6 +25,7 @@ import com.casic.electric.detector.base.SerialPortActivity import com.casic.electric.detector.callback.ILocationListener import com.casic.electric.detector.callback.OnImageCompressListener +import com.casic.electric.detector.databinding.ActivityInstallLabelBinding import com.casic.electric.detector.extensions.* import com.casic.electric.detector.utils.* import com.casic.electric.detector.vm.TaskViewModel @@ -38,11 +39,6 @@ import com.pengxh.kt.lite.utils.WeakReferenceHandler import com.pengxh.kt.lite.vm.LoadState import com.pengxh.kt.lite.widget.dialog.NoNetworkDialog -import kotlinx.android.synthetic.main.activity_install_label.* -import kotlinx.android.synthetic.main.include_base_title.* -import kotlinx.android.synthetic.main.include_label_marker_attribute.* -import kotlinx.android.synthetic.main.include_label_object_attribute.* -import kotlinx.android.synthetic.main.include_open_camera.* import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.launch import kotlinx.coroutines.withContext @@ -51,7 +47,7 @@ import java.util.* @SuppressLint("SetTextI18n") -class InstallLabelActivity : SerialPortActivity(), Handler.Callback { +class InstallLabelActivity : SerialPortActivity(), Handler.Callback { private val kTag = "LabelActivity" private val context: Context = this@InstallLabelActivity @@ -64,20 +60,22 @@ private lateinit var imageAdapter: EditableImageAdapter private lateinit var taskViewModel: TaskViewModel - override fun initLayoutView(): Int = R.layout.activity_install_label + override fun initViewBinding(): ActivityInstallLabelBinding { + return ActivityInstallLabelBinding.inflate(layoutInflater) + } override fun setupTopBarLayout() { - titleView.text = "安装新标识器" - titleView.setTextColor(R.color.themeColor.convertColor(this)) + binding.titleInclude.titleView.text = "安装新标识器" + binding.titleInclude.titleView.setTextColor(R.color.themeColor.convertColor(this)) ImmersionBar.with(this) .statusBarDarkFont(true) .statusBarColor(R.color.mainBackground) .init() - initLayoutImmersionBar(rootView) + initLayoutImmersionBar(binding.rootView) } - override fun initData(savedInstanceState: Bundle?) { + override fun initOnCreate(savedInstanceState: Bundle?) { window.setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN or WindowManager.LayoutParams.SOFT_INPUT_ADJUST_PAN) weakReferenceHandler = WeakReferenceHandler(this) @@ -92,44 +90,44 @@ .build() //设置上次填写过的值 - objectCodeView.setText("objectCodeView".getDefaultValue()) - objectNameView.setText("objectNameView".getDefaultValue()) - inlineNameView.setText("inlineNameView".getDefaultValue()) - capacityView.setText("capacityView".getDefaultValue()) - transformerSpecView.setText("transformerSpecView".getDefaultValue()) - sLengthView.setText("sLengthView".getDefaultValue()) - sWidthView.setText("sWidthView".getDefaultValue()) - sHeightView.setText("sHeightView".getDefaultValue()) - inlineCountView.setText("inlineCountView".getDefaultValue()) - outlineCountView.setText("outlineCountView".getDefaultValue()) - bottomDepthView.setText("bottomDepthView".getDefaultValue()) - rowCountView.setText("rowCountView".getDefaultValue()) - rowHoleCountView.setText("rowHoleCountView".getDefaultValue()) - coverDepthView.setText("coverDepthView".getDefaultValue()) - remainingChannelsView.setText("remainingChannelsView".getDefaultValue()) - tieCableView1.setText("tieCableView1".getDefaultValue()) - tieCableView2.setText("tieCableView2".getDefaultValue()) - jointCountView.setText("jointCountView".getDefaultValue()) - casingHoleCountView.setText("casingHoleCountView".getDefaultValue()) - casingHoleDiameterView.setText("casingHoleDiameterView".getDefaultValue()) - heightView.setText("heightView".getDefaultValue()) - lineNumberView.setText("lineNumberView".getDefaultValue()) - inspectionUnitView.setText("inspectionUnitView".getDefaultValue()) - areaView.setText("areaView".getDefaultValue()) - roadView.setText("roadView".getDefaultValue()) - objectRemarkView1.setText("objectRemarkView1".getDefaultValue()) - objectRemarkView2.setText("objectRemarkView2".getDefaultValue()) - objectRemarkView3.setText("objectRemarkView3".getDefaultValue()) - ownerView.setText("ownerView".getDefaultValue()) - markerDepthView.setText("markerDepthView".getDefaultValue()) - markerCountView.setText("markerCountView".getDefaultValue()) - remarkView1.setText("remarkView1".getDefaultValue()) - remarkView2.setText("remarkView2".getDefaultValue()) - remarkView3.setText("remarkView3".getDefaultValue()) + binding.objectAttrInclude.objectCodeView.setText("objectCodeView".getDefaultValue()) + binding.objectAttrInclude.objectNameView.setText("objectNameView".getDefaultValue()) + binding.objectAttrInclude.inlineNameView.setText("inlineNameView".getDefaultValue()) + binding.objectAttrInclude.capacityView.setText("capacityView".getDefaultValue()) + binding.objectAttrInclude.transformerSpecView.setText("transformerSpecView".getDefaultValue()) + binding.objectAttrInclude.sLengthView.setText("sLengthView".getDefaultValue()) + binding.objectAttrInclude.sWidthView.setText("sWidthView".getDefaultValue()) + binding.objectAttrInclude.sHeightView.setText("sHeightView".getDefaultValue()) + binding.objectAttrInclude.inlineCountView.setText("inlineCountView".getDefaultValue()) + binding.objectAttrInclude.outlineCountView.setText("outlineCountView".getDefaultValue()) + binding.objectAttrInclude.bottomDepthView.setText("bottomDepthView".getDefaultValue()) + binding.objectAttrInclude.rowCountView.setText("rowCountView".getDefaultValue()) + binding.objectAttrInclude.rowHoleCountView.setText("rowHoleCountView".getDefaultValue()) + binding.objectAttrInclude.coverDepthView.setText("coverDepthView".getDefaultValue()) + binding.objectAttrInclude.remainingChannelsView.setText("remainingChannelsView".getDefaultValue()) + binding.objectAttrInclude.tieCableView1.setText("tieCableView1".getDefaultValue()) + binding.objectAttrInclude.tieCableView2.setText("tieCableView2".getDefaultValue()) + binding.objectAttrInclude.jointCountView.setText("jointCountView".getDefaultValue()) + binding.objectAttrInclude.casingHoleCountView.setText("casingHoleCountView".getDefaultValue()) + binding.objectAttrInclude.casingHoleDiameterView.setText("casingHoleDiameterView".getDefaultValue()) + binding.objectAttrInclude.heightView.setText("heightView".getDefaultValue()) + binding.objectAttrInclude.lineNumberView.setText("lineNumberView".getDefaultValue()) + binding.objectAttrInclude.inspectionUnitView.setText("inspectionUnitView".getDefaultValue()) + binding.objectAttrInclude.areaView.setText("areaView".getDefaultValue()) + binding.objectAttrInclude.roadView.setText("roadView".getDefaultValue()) + binding.objectAttrInclude.objectRemarkView1.setText("objectRemarkView1".getDefaultValue()) + binding.objectAttrInclude.objectRemarkView2.setText("objectRemarkView2".getDefaultValue()) + binding.objectAttrInclude.objectRemarkView3.setText("objectRemarkView3".getDefaultValue()) + binding.markerAttrInclude.ownerView.setText("ownerView".getDefaultValue()) + binding.markerAttrInclude.markerDepthView.setText("markerDepthView".getDefaultValue()) + binding.markerAttrInclude.markerCountView.setText("markerCountView".getDefaultValue()) + binding.markerAttrInclude.remarkView1.setText("remarkView1".getDefaultValue()) + binding.markerAttrInclude.remarkView2.setText("remarkView2".getDefaultValue()) + binding.markerAttrInclude.remarkView3.setText("remarkView3".getDefaultValue()) //初始化图片九宫格 imageAdapter = EditableImageAdapter(this, 3, 3f) - addImageRecyclerView.adapter = imageAdapter + binding.cameraInclude.addImageRecyclerView.adapter = imageAdapter taskViewModel = ViewModelProvider(this)[TaskViewModel::class.java] } @@ -142,101 +140,120 @@ LoadingDialogHub.dismiss() finish() } + else -> LoadingDialogHub.dismiss() } } } override fun initEvent() { - leftBackView.setOnClickListener { finish() } + binding.titleInclude.leftBackView.setOnClickListener { finish() } /**************************************************************************************/ - objectTypeSpinner.show(this, LocaleConstant.CONTENT_ARRAY, 0) - objectTypeSpinner.onItemSelectedListener = object : AdapterView.OnItemSelectedListener { - override fun onItemSelected( - parent: AdapterView<*>?, view: View?, position: Int, id: Long - ) { - when (position) { - 0 -> { - //选择电缆井 - objectModeView.text = "类型:" - wellCoverMaterialView.text = "井盖材质:" - bottomDepthNameView.text = "井深:" - setLayoutVisibility( - View.VISIBLE, View.GONE, View.VISIBLE, View.GONE, View.VISIBLE, - View.GONE, View.GONE, View.VISIBLE, View.GONE, View.VISIBLE, - View.GONE - ) - objectModeSpinner.show( - this@InstallLabelActivity, LocaleConstant.OBJECT_MODE_ARRAY, 0 - ) - wellCoverMaterialSpinner.show( - this@InstallLabelActivity, LocaleConstant.WELL_COVER_MATERIAL_ARRAY_1, 0 - ) + binding.objectAttrInclude.objectTypeSpinner.show(this, LocaleConstant.CONTENT_ARRAY, 0) + binding.objectAttrInclude.objectTypeSpinner.onItemSelectedListener = + object : AdapterView.OnItemSelectedListener { + override fun onItemSelected( + parent: AdapterView<*>?, view: View?, position: Int, id: Long + ) { + when (position) { + 0 -> { + //选择电缆井 + binding.objectAttrInclude.objectModeView.text = "类型:" + binding.objectAttrInclude.wellCoverMaterialView.text = "井盖材质:" + binding.objectAttrInclude.bottomDepthNameView.text = "井深:" + setLayoutVisibility( + View.VISIBLE, View.GONE, View.VISIBLE, View.GONE, View.VISIBLE, + View.GONE, View.GONE, View.VISIBLE, View.GONE, View.VISIBLE, + View.GONE + ) + binding.objectAttrInclude.objectModeSpinner.show( + this@InstallLabelActivity, LocaleConstant.OBJECT_MODE_ARRAY, 0 + ) + binding.objectAttrInclude.wellCoverMaterialSpinner.show( + this@InstallLabelActivity, + LocaleConstant.WELL_COVER_MATERIAL_ARRAY_1, + 0 + ) + } + + 1 -> { + //选择电缆通道 + binding.objectAttrInclude.bottomDepthNameView.text = "底部深度:" + setLayoutVisibility( + View.GONE, View.GONE, View.GONE, View.GONE, View.GONE, + View.GONE, View.GONE, View.VISIBLE, View.VISIBLE, View.VISIBLE, + View.GONE + ) + } + + 2 -> { + //选择配电房 + setLayoutVisibility( + View.GONE, View.GONE, View.GONE, View.VISIBLE, View.VISIBLE, + View.VISIBLE, View.GONE, View.GONE, View.GONE, View.GONE, + View.GONE + ) + } + + 3 -> { + //选择开关站 + setLayoutVisibility( + View.GONE, View.GONE, View.GONE, View.GONE, View.VISIBLE, + View.VISIBLE, View.VISIBLE, View.GONE, View.GONE, View.GONE, + View.GONE + ) + } + + 4 -> { + //选择台区 + binding.objectAttrInclude.objectModeView.text = "变压器型号:" + setLayoutVisibility( + View.VISIBLE, View.VISIBLE, View.GONE, View.GONE, View.GONE, + View.GONE, View.GONE, View.GONE, View.GONE, View.GONE, + View.GONE + ) + binding.objectAttrInclude.objectModeSpinner.show( + this@InstallLabelActivity, arrayOf("变压器 KVA"), 0 + ) + } + + 5 -> { + //选择杆塔 + binding.objectAttrInclude.wellCoverMaterialView.text = "对象材质:" + setLayoutVisibility( + View.GONE, View.GONE, View.VISIBLE, View.GONE, View.GONE, + View.GONE, View.GONE, View.GONE, View.GONE, View.GONE, + View.VISIBLE + ) + binding.objectAttrInclude.wellCoverMaterialSpinner.show( + this@InstallLabelActivity, + LocaleConstant.WELL_COVER_MATERIAL_ARRAY_2, + 0 + ) + } } - 1 -> { - //选择电缆通道 - bottomDepthNameView.text = "底部深度:" - setLayoutVisibility( - View.GONE, View.GONE, View.GONE, View.GONE, View.GONE, - View.GONE, View.GONE, View.VISIBLE, View.VISIBLE, View.VISIBLE, - View.GONE - ) - } - 2 -> { - //选择配电房 - setLayoutVisibility( - View.GONE, View.GONE, View.GONE, View.VISIBLE, View.VISIBLE, - View.VISIBLE, View.GONE, View.GONE, View.GONE, View.GONE, - View.GONE - ) - } - 3 -> { - //选择开关站 - setLayoutVisibility( - View.GONE, View.GONE, View.GONE, View.GONE, View.VISIBLE, - View.VISIBLE, View.VISIBLE, View.GONE, View.GONE, View.GONE, - View.GONE - ) - } - 4 -> { - //选择台区 - objectModeView.text = "变压器型号:" - setLayoutVisibility( - View.VISIBLE, View.VISIBLE, View.GONE, View.GONE, View.GONE, - View.GONE, View.GONE, View.GONE, View.GONE, View.GONE, - View.GONE - ) - objectModeSpinner.show( - this@InstallLabelActivity, arrayOf("变压器 KVA"), 0 - ) - } - 5 -> { - //选择杆塔 - wellCoverMaterialView.text = "对象材质:" - setLayoutVisibility( - View.GONE, View.GONE, View.VISIBLE, View.GONE, View.GONE, - View.GONE, View.GONE, View.GONE, View.GONE, View.GONE, - View.VISIBLE - ) - wellCoverMaterialSpinner.show( - this@InstallLabelActivity, LocaleConstant.WELL_COVER_MATERIAL_ARRAY_2, 0 - ) - } + } + + override fun onNothingSelected(parent: AdapterView<*>?) { + } } - override fun onNothingSelected(parent: AdapterView<*>?) { - - } - } - - cabinetTypeSpinner.show(this, LocaleConstant.CABINET_TYPE_ARRAY, 0) - casingMaterialSpinner.show(this, LocaleConstant.PIPE_MATERIAL_ARRAY, 0) - markerTypeSpinner.show(this, LocaleConstant.MARKER_TYPE_ARRAY, 0) + binding.objectAttrInclude.cabinetTypeSpinner.show( + this, + LocaleConstant.CABINET_TYPE_ARRAY, + 0 + ) + binding.objectAttrInclude.casingMaterialSpinner.show( + this, + LocaleConstant.PIPE_MATERIAL_ARRAY, + 0 + ) + binding.markerAttrInclude.markerTypeSpinner.show(this, LocaleConstant.MARKER_TYPE_ARRAY, 0) //电压等级-多选 - voltageLevelView.setOnClickListener { + binding.objectAttrInclude.voltageLevelView.setOnClickListener { AlertDialog.Builder(context) .setCancelable(false) .setIcon(R.mipmap.ic_launcher) @@ -255,12 +272,12 @@ } } - voltageLevelView.text = temp.reformat() + binding.objectAttrInclude.voltageLevelView.text = temp.reformat() }.show() } //交叉管道类型-多选 - crossPipeLineView.setOnClickListener { + binding.objectAttrInclude.crossPipeLineView.setOnClickListener { AlertDialog.Builder(context) .setCancelable(false) .setIcon(R.mipmap.ic_launcher) @@ -279,11 +296,11 @@ } } - crossPipeLineView.text = temp.reformat() + binding.objectAttrInclude.crossPipeLineView.text = temp.reformat() }.show() } - constructDateView.setOnClickListener { + binding.objectAttrInclude.constructDateView.setOnClickListener { val datePicker = DatePickerDialog( this, null, @@ -308,17 +325,18 @@ "建设年代不能早于当前日期".show(context) } else { datePicker.dismiss() - constructDateView.text = selectedDate + binding.objectAttrInclude.constructDateView.text = selectedDate } } } - installTimeView.text = System.currentTimeMillis().timestampToCompleteDate() + binding.markerAttrInclude.installTimeView.text = + System.currentTimeMillis().timestampToCompleteDate() LocationHub.getCurrentLocation(this, object : ILocationListener { override fun onAMapLocationGet(location: AMapLocation?) { if (location != null) { - lngView.text = location.longitude.toString() - latView.text = location.latitude.toString() + binding.markerAttrInclude.lngView.text = location.longitude.toString() + binding.markerAttrInclude.latView.text = location.latitude.toString() } else { "当前位置信号差,无法获取定位".show(context) } @@ -358,109 +376,109 @@ }) /**************************************************************************************/ - installButton.setOnClickListener { + binding.installButton.setOnClickListener { if (isNetworkConnected()) { val companyId = SaveKeyValues.getValue(LocaleConstant.USER_COMPANY_ID, "") as String - val itemPosition = objectTypeSpinner.selectedItemPosition + val itemPosition = binding.objectAttrInclude.objectTypeSpinner.selectedItemPosition val objectTypeCode = itemPosition + 1 - if (markerIdView.text.isNullOrBlank()) { + if (binding.markerAttrInclude.markerIdView.text.isNullOrBlank()) { "标识器ID不能为空,请读标识器".show(this) return@setOnClickListener } - if (constructDateView.text.isNullOrBlank()) { + if (binding.objectAttrInclude.constructDateView.text.isNullOrBlank()) { "请选择建设时间".show(this) return@setOnClickListener } - if (markerCountView.text.isNullOrBlank()) { + if (binding.markerAttrInclude.markerCountView.text.isNullOrBlank()) { "请输入电子标签数量".show(this) return@setOnClickListener } //保存默认值 - "objectCodeView".setDefaultValue(objectCodeView) - "objectNameView".setDefaultValue(objectNameView) - "inlineNameView".setDefaultValue(inlineNameView) - "capacityView".setDefaultValue(capacityView) - "transformerSpecView".setDefaultValue(transformerSpecView) - "sLengthView".setDefaultValue(sLengthView) - "sWidthView".setDefaultValue(sWidthView) - "sHeightView".setDefaultValue(sHeightView) - "inlineCountView".setDefaultValue(inlineCountView) - "outlineCountView".setDefaultValue(outlineCountView) - "bottomDepthView".setDefaultValue(bottomDepthView) - "rowCountView".setDefaultValue(rowCountView) - "rowHoleCountView".setDefaultValue(rowHoleCountView) - "coverDepthView".setDefaultValue(coverDepthView) - "remainingChannelsView".setDefaultValue(remainingChannelsView) - "tieCableView1".setDefaultValue(tieCableView1) - "tieCableView2".setDefaultValue(tieCableView2) - "jointCountView".setDefaultValue(jointCountView) - "casingHoleCountView".setDefaultValue(casingHoleCountView) - "casingHoleDiameterView".setDefaultValue(casingHoleDiameterView) - "heightView".setDefaultValue(heightView) - "lineNumberView".setDefaultValue(lineNumberView) - "inspectionUnitView".setDefaultValue(inspectionUnitView) - "areaView".setDefaultValue(areaView) - "roadView".setDefaultValue(roadView) - "objectRemarkView1".setDefaultValue(objectRemarkView1) - "objectRemarkView2".setDefaultValue(objectRemarkView2) - "objectRemarkView3".setDefaultValue(objectRemarkView3) - "ownerView".setDefaultValue(ownerView) - "markerDepthView".setDefaultValue(markerDepthView) - "markerCountView".setDefaultValue(markerCountView) - "remarkView1".setDefaultValue(remarkView1) - "remarkView2".setDefaultValue(remarkView2) - "remarkView3".setDefaultValue(remarkView3) + "objectCodeView".setDefaultValue(binding.objectAttrInclude.objectCodeView) + "objectNameView".setDefaultValue(binding.objectAttrInclude.objectNameView) + "inlineNameView".setDefaultValue(binding.objectAttrInclude.inlineNameView) + "capacityView".setDefaultValue(binding.objectAttrInclude.capacityView) + "transformerSpecView".setDefaultValue(binding.objectAttrInclude.transformerSpecView) + "sLengthView".setDefaultValue(binding.objectAttrInclude.sLengthView) + "sWidthView".setDefaultValue(binding.objectAttrInclude.sWidthView) + "sHeightView".setDefaultValue(binding.objectAttrInclude.sHeightView) + "inlineCountView".setDefaultValue(binding.objectAttrInclude.inlineCountView) + "outlineCountView".setDefaultValue(binding.objectAttrInclude.outlineCountView) + "bottomDepthView".setDefaultValue(binding.objectAttrInclude.bottomDepthView) + "rowCountView".setDefaultValue(binding.objectAttrInclude.rowCountView) + "rowHoleCountView".setDefaultValue(binding.objectAttrInclude.rowHoleCountView) + "coverDepthView".setDefaultValue(binding.objectAttrInclude.coverDepthView) + "remainingChannelsView".setDefaultValue(binding.objectAttrInclude.remainingChannelsView) + "tieCableView1".setDefaultValue(binding.objectAttrInclude.tieCableView1) + "tieCableView2".setDefaultValue(binding.objectAttrInclude.tieCableView2) + "jointCountView".setDefaultValue(binding.objectAttrInclude.jointCountView) + "casingHoleCountView".setDefaultValue(binding.objectAttrInclude.casingHoleCountView) + "casingHoleDiameterView".setDefaultValue(binding.objectAttrInclude.casingHoleDiameterView) + "heightView".setDefaultValue(binding.objectAttrInclude.heightView) + "lineNumberView".setDefaultValue(binding.objectAttrInclude.lineNumberView) + "inspectionUnitView".setDefaultValue(binding.objectAttrInclude.inspectionUnitView) + "areaView".setDefaultValue(binding.objectAttrInclude.areaView) + "roadView".setDefaultValue(binding.objectAttrInclude.roadView) + "objectRemarkView1".setDefaultValue(binding.objectAttrInclude.objectRemarkView1) + "objectRemarkView2".setDefaultValue(binding.objectAttrInclude.objectRemarkView2) + "objectRemarkView3".setDefaultValue(binding.objectAttrInclude.objectRemarkView3) + "ownerView".setDefaultValue(binding.markerAttrInclude.ownerView) + "markerDepthView".setDefaultValue(binding.markerAttrInclude.markerDepthView) + "markerCountView".setDefaultValue(binding.markerAttrInclude.markerCountView) + "remarkView1".setDefaultValue(binding.markerAttrInclude.remarkView1) + "remarkView2".setDefaultValue(binding.markerAttrInclude.remarkView2) + "remarkView3".setDefaultValue(binding.markerAttrInclude.remarkView3) val labelData = LabelDataClass( companyId, objectTypeCode.toString(), - objectCodeView.text.toString(), - objectNameView.text.toString(), - voltageLevelView.text.toString(), - objectModeSpinner.selectedItem.toString(), - "进线${inlineNameView.text}", - wellCoverMaterialSpinner.selectedItem.toString(), - "${capacityView.text}KVA", - transformerSpecView.text.toString(), - "${sLengthView.text}米长 x ${sWidthView.text}米宽 x ${sHeightView.text}米高", - inlineCountView.text.toString(), - outlineCountView.text.toString(), - cabinetTypeSpinner.selectedItem.toString(), - bottomDepthView.text.toString(), - "${rowCountView.text}排 x ${rowHoleCountView.text}孔", - "${coverDepthView.text}米", - crossPipeLineView.text.toString(), - remainingChannelsView.text.toString(), - tieCableView1.text.toString(), - tieCableView2.text.toString(), - jointCountView.text.toString(), - casingMaterialSpinner.selectedItem.toString(), - "${casingHoleCountView.text}孔,直径${casingHoleDiameterView.text}毫米", - "${heightView.text.toString()}米", - lineNumberView.text.toString(), - constructDateView.text.toString(), - inspectionUnitView.text.toString(), - areaView.text.toString(), - roadView.text.toString(), - objectRemarkView1.text.toString(), - objectRemarkView2.text.toString(), - objectRemarkView3.text.toString(), - markerIdView.text.toString(), - markerTypeSpinner.selectedItem.toString(), - ownerView.text.toString(), - markerDepthView.text.toString(), - installTimeView.text.toString(), - lngView.text.toString(), - latView.text.toString(), - markerCountView.text.toString(), - remarkView1.text.toString(), - remarkView2.text.toString(), - remarkView3.text.toString(), + binding.objectAttrInclude.objectCodeView.text.toString(), + binding.objectAttrInclude.objectNameView.text.toString(), + binding.objectAttrInclude.voltageLevelView.text.toString(), + binding.objectAttrInclude.objectModeSpinner.selectedItem.toString(), + "进线${binding.objectAttrInclude.inlineNameView.text}", + binding.objectAttrInclude.wellCoverMaterialSpinner.selectedItem.toString(), + "${binding.objectAttrInclude.capacityView.text}KVA", + binding.objectAttrInclude.transformerSpecView.text.toString(), + "${binding.objectAttrInclude.sLengthView.text}米长 x ${binding.objectAttrInclude.sWidthView.text}米宽 x ${binding.objectAttrInclude.sHeightView.text}米高", + binding.objectAttrInclude.inlineCountView.text.toString(), + binding.objectAttrInclude.outlineCountView.text.toString(), + binding.objectAttrInclude.cabinetTypeSpinner.selectedItem.toString(), + binding.objectAttrInclude.bottomDepthView.text.toString(), + "${binding.objectAttrInclude.rowCountView.text}排 x ${binding.objectAttrInclude.rowHoleCountView.text}孔", + "${binding.objectAttrInclude.coverDepthView.text}米", + binding.objectAttrInclude.crossPipeLineView.text.toString(), + binding.objectAttrInclude.remainingChannelsView.text.toString(), + binding.objectAttrInclude.tieCableView1.text.toString(), + binding.objectAttrInclude.tieCableView2.text.toString(), + binding.objectAttrInclude.jointCountView.text.toString(), + binding.objectAttrInclude.casingMaterialSpinner.selectedItem.toString(), + "${binding.objectAttrInclude.casingHoleCountView.text}孔,直径${binding.objectAttrInclude.casingHoleDiameterView.text}毫米", + "${binding.objectAttrInclude.heightView.text.toString()}米", + binding.objectAttrInclude.lineNumberView.text.toString(), + binding.objectAttrInclude.constructDateView.text.toString(), + binding.objectAttrInclude.inspectionUnitView.text.toString(), + binding.objectAttrInclude.areaView.text.toString(), + binding.objectAttrInclude.roadView.text.toString(), + binding.objectAttrInclude.objectRemarkView1.text.toString(), + binding.objectAttrInclude.objectRemarkView2.text.toString(), + binding.objectAttrInclude.objectRemarkView3.text.toString(), + binding.markerAttrInclude.markerIdView.text.toString(), + binding.markerAttrInclude.markerTypeSpinner.selectedItem.toString(), + binding.markerAttrInclude.ownerView.text.toString(), + binding.markerAttrInclude.markerDepthView.text.toString(), + binding.markerAttrInclude.installTimeView.text.toString(), + binding.markerAttrInclude.lngView.text.toString(), + binding.markerAttrInclude.latView.text.toString(), + binding.markerAttrInclude.markerCountView.text.toString(), + binding.markerAttrInclude.remarkView1.text.toString(), + binding.markerAttrInclude.remarkView2.text.toString(), + binding.markerAttrInclude.remarkView3.text.toString(), realPaths ) @@ -486,7 +504,7 @@ } } - readLabelButton.setOnClickListener { + binding.readLabelButton.setOnClickListener { gpioManager.setGpioHigh("18") LoadingDialogHub.show(this, "标识器读取中,请稍后...") @@ -534,7 +552,7 @@ //查本地库 val result = DataBaseManager.get.queryLabelById(markerId) if (result.isEmpty()) { - markerIdView.text = markerId + binding.markerAttrInclude.markerIdView.text = markerId } else { "此标识器已安装,请更换标识器!".show(this) } @@ -560,17 +578,17 @@ //根据选择类型控制界面某些区域显隐 private fun setLayoutVisibility(vararg args: Int) { - objectModeLayout.visibility = args[0] - inlineNameLayout.visibility = args[1] - wellCoverMaterialLayout.visibility = args[2] - capacityLayout.visibility = args[3] - sizeLayout.visibility = args[4] - inlineCountLayout.visibility = args[5] - outlineCountLayout.visibility = args[6] - wellDepthLayout.visibility = args[7] - pipeLineLayout.visibility = args[8] - jointCountLayout.visibility = args[9] - heightLayout.visibility = args[10] + binding.objectAttrInclude.objectModeLayout.visibility = args[0] + binding.objectAttrInclude.inlineNameLayout.visibility = args[1] + binding.objectAttrInclude.wellCoverMaterialLayout.visibility = args[2] + binding.objectAttrInclude.capacityLayout.visibility = args[3] + binding.objectAttrInclude.sizeLayout.visibility = args[4] + binding.objectAttrInclude.inlineCountLayout.visibility = args[5] + binding.objectAttrInclude.outlineCountLayout.visibility = args[6] + binding.objectAttrInclude.wellDepthLayout.visibility = args[7] + binding.objectAttrInclude.pipeLineLayout.visibility = args[8] + binding.objectAttrInclude.jointCountLayout.visibility = args[9] + binding.objectAttrInclude.heightLayout.visibility = args[10] } override fun onDestroy() { diff --git a/app/src/main/java/com/casic/electric/detector/view/InstallSmallLabelActivity.kt b/app/src/main/java/com/casic/electric/detector/view/InstallSmallLabelActivity.kt index d6888ee..5bc2ac8 100644 --- a/app/src/main/java/com/casic/electric/detector/view/InstallSmallLabelActivity.kt +++ b/app/src/main/java/com/casic/electric/detector/view/InstallSmallLabelActivity.kt @@ -20,6 +20,7 @@ import com.casic.electric.detector.adapter.EditableImageAdapter import com.casic.electric.detector.base.SerialPortActivity import com.casic.electric.detector.callback.OnImageCompressListener +import com.casic.electric.detector.databinding.ActivityInstallSmallLabelBinding import com.casic.electric.detector.extensions.* import com.casic.electric.detector.utils.* import com.casic.electric.detector.vm.TaskViewModel @@ -36,18 +37,16 @@ import com.pengxh.kt.lite.utils.WeakReferenceHandler import com.pengxh.kt.lite.vm.LoadState import com.pengxh.kt.lite.widget.dialog.NoNetworkDialog -import kotlinx.android.synthetic.main.activity_install_small_label.* -import kotlinx.android.synthetic.main.include_base_title.* -import kotlinx.android.synthetic.main.include_open_camera.* -import kotlinx.android.synthetic.main.include_small_label_object_attribute.* import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.launch import kotlinx.coroutines.withContext import java.io.File +import java.io.FileWriter import java.io.IOException @SuppressLint("SetTextI18n") -class InstallSmallLabelActivity : SerialPortActivity(), Handler.Callback { +class InstallSmallLabelActivity : SerialPortActivity(), + Handler.Callback { private val kTag = "SmallLabelActivity" private val context: Context = this@InstallSmallLabelActivity @@ -59,20 +58,22 @@ private lateinit var imageAdapter: EditableImageAdapter private lateinit var taskViewModel: TaskViewModel - override fun initLayoutView(): Int = R.layout.activity_install_small_label + override fun initViewBinding(): ActivityInstallSmallLabelBinding { + return ActivityInstallSmallLabelBinding.inflate(layoutInflater) + } override fun setupTopBarLayout() { - titleView.text = "安装新电子标签" - titleView.setTextColor(R.color.themeColor.convertColor(this)) + binding.titleInclude.titleView.text = "安装新电子标签" + binding.titleInclude.titleView.setTextColor(R.color.themeColor.convertColor(this)) ImmersionBar.with(this) .statusBarDarkFont(true) .statusBarColor(R.color.mainBackground) .init() - initLayoutImmersionBar(rootView) + initLayoutImmersionBar(binding.rootView) } - override fun initData(savedInstanceState: Bundle?) { + override fun initOnCreate(savedInstanceState: Bundle?) { window.setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN or WindowManager.LayoutParams.SOFT_INPUT_ADJUST_PAN) weakReferenceHandler = WeakReferenceHandler(this) @@ -87,23 +88,23 @@ .build() //设置上次填写过的值 - cableNumberView.setText("cableNumberView".getDefaultValue()) - cableNameView.setText("cableNameView".getDefaultValue()) - lineView.setText("lineView".getDefaultValue()) - voltageLevelView.setText("voltageLevelView".getDefaultValue()) - cableModelView.setText("cableModelView".getDefaultValue()) - cableSpecView.setText("cableSpecView".getDefaultValue()) - cableBrandView.setText("cableBrandView".getDefaultValue()) - cableStartView.setText("cableStartView".getDefaultValue()) - cableEndView.setText("cableEndView".getDefaultValue()) - jointCreatorView.setText("jointCreatorView".getDefaultValue()) - objectRemarkView1.setText("objectRemarkView1".getDefaultValue()) - objectRemarkView2.setText("objectRemarkView2".getDefaultValue()) - objectRemarkView3.setText("objectRemarkView3".getDefaultValue()) + binding.objectAttrInclude.cableNumberView.setText("cableNumberView".getDefaultValue()) + binding.objectAttrInclude.cableNameView.setText("cableNameView".getDefaultValue()) + binding.objectAttrInclude.lineView.setText("lineView".getDefaultValue()) + binding.objectAttrInclude.voltageLevelView.setText("voltageLevelView".getDefaultValue()) + binding.objectAttrInclude.cableModelView.setText("cableModelView".getDefaultValue()) + binding.objectAttrInclude.cableSpecView.setText("cableSpecView".getDefaultValue()) + binding.objectAttrInclude.cableBrandView.setText("cableBrandView".getDefaultValue()) + binding.objectAttrInclude.cableStartView.setText("cableStartView".getDefaultValue()) + binding.objectAttrInclude.cableEndView.setText("cableEndView".getDefaultValue()) + binding.objectAttrInclude.jointCreatorView.setText("jointCreatorView".getDefaultValue()) + binding.objectAttrInclude.objectRemarkView1.setText("objectRemarkView1".getDefaultValue()) + binding.objectAttrInclude.objectRemarkView2.setText("objectRemarkView2".getDefaultValue()) + binding.objectAttrInclude.objectRemarkView3.setText("objectRemarkView3".getDefaultValue()) //初始化图片九宫格 imageAdapter = EditableImageAdapter(this, 3, 3f) - addImageRecyclerView.adapter = imageAdapter + binding.cameraInclude.addImageRecyclerView.adapter = imageAdapter taskViewModel = ViewModelProvider(this)[TaskViewModel::class.java] } @@ -116,20 +117,31 @@ LoadingDialogHub.dismiss() finish() } + else -> LoadingDialogHub.dismiss() } } } override fun initEvent() { - leftBackView.setOnClickListener { finish() } + binding.titleInclude.leftBackView.setOnClickListener { finish() } /**************************************************************************************/ //TODO 读取电子标签为未实现 - readElectricTagButton.setOnClickListener { - gpioManager.setGpioHigh("18") + var fileWriter: FileWriter + try { + fileWriter = FileWriter("/sys/class/newmobi_gpio/newmobi_gpio/Gpio") + fileWriter.write("99") + fileWriter.close() + } catch (e: Exception) { + e.printStackTrace() + } + + gpioManager.setGpioHigh("21") + + binding.readElectricTagButton.setOnClickListener { LoadingDialogHub.show(this, "电子标签读取中,请稍后...") soundResId = soundPool.load(this, R.raw.ring3, 1) @@ -141,32 +153,34 @@ weakReferenceHandler.postDelayed({ try { // 发送读标识器或搜索信号 - outputStream?.write("00".toByteArray()) - outputStream?.flush() + fileWriter = FileWriter("/sys/class/newmobi_gpio/newmobi_gpio/Gpio_inout") + fileWriter.write("01") + fileWriter.close() } catch (e: IOException) { e.printStackTrace() } - }, 1000) + }, 500) } - bindMarkerSpinner.show(this, arrayOf("是", "否"), 0) - bindMarkerSpinner.onItemSelectedListener = object : AdapterView.OnItemSelectedListener { - override fun onItemSelected( - parent: AdapterView<*>?, view: View?, position: Int, id: Long - ) { - if (position == 0) { - markerLayout.visibility = View.VISIBLE - } else { - markerLayout.visibility = View.GONE + binding.objectAttrInclude.bindMarkerSpinner.show(this, arrayOf("是", "否"), 0) + binding.objectAttrInclude.bindMarkerSpinner.onItemSelectedListener = + object : AdapterView.OnItemSelectedListener { + override fun onItemSelected( + parent: AdapterView<*>?, view: View?, position: Int, id: Long + ) { + if (position == 0) { + binding.objectAttrInclude.markerLayout.visibility = View.VISIBLE + } else { + binding.objectAttrInclude.markerLayout.visibility = View.GONE + } + } + + override fun onNothingSelected(parent: AdapterView<*>?) { + } } - override fun onNothingSelected(parent: AdapterView<*>?) { - - } - } - - middleJointSpinner.show(this, arrayOf("有", "无"), 0) + binding.objectAttrInclude.middleJointSpinner.show(this, arrayOf("有", "无"), 0) imageAdapter.setOnItemClickListener(object : EditableImageAdapter.OnItemClickListener { override fun onAddImageClick() { @@ -201,60 +215,60 @@ }) /**************************************************************************************/ - installButton.setOnClickListener { + binding.installButton.setOnClickListener { if (isNetworkConnected()) { val companyId = SaveKeyValues.getValue(LocaleConstant.USER_COMPANY_ID, "") as String - if (markerIdView.text.isNullOrBlank()) { + if (binding.objectAttrInclude.markerIdView.text.isNullOrBlank()) { "标识器ID不能为空,请读标识器".show(this) return@setOnClickListener } - if (smallLabelIdView.text.isNullOrBlank()) { + if (binding.objectAttrInclude.smallLabelIdView.text.isNullOrBlank()) { "电子标签ID不能为空,请读电子标签".show(this) return@setOnClickListener } - if (voltageLevelView.text.isNullOrBlank()) { + if (binding.objectAttrInclude.voltageLevelView.text.isNullOrBlank()) { "电压等级不能为空,请输入电压等级".show(this) return@setOnClickListener } //保存默认值 - "cableNumberView".setDefaultValue(cableNumberView) - "cableNameView".setDefaultValue(cableNameView) - "lineView".setDefaultValue(lineView) - "voltageLevelView".setDefaultValue(voltageLevelView) - "cableModelView".setDefaultValue(cableModelView) - "cableSpecView".setDefaultValue(cableSpecView) - "cableBrandView".setDefaultValue(cableBrandView) - "cableStartView".setDefaultValue(cableStartView) - "cableEndView".setDefaultValue(cableEndView) - "jointCreatorView".setDefaultValue(jointCreatorView) - "objectRemarkView1".setDefaultValue(objectRemarkView1) - "objectRemarkView2".setDefaultValue(objectRemarkView2) - "objectRemarkView3".setDefaultValue(objectRemarkView3) + "cableNumberView".setDefaultValue(binding.objectAttrInclude.cableNumberView) + "cableNameView".setDefaultValue(binding.objectAttrInclude.cableNameView) + "lineView".setDefaultValue(binding.objectAttrInclude.lineView) + "voltageLevelView".setDefaultValue(binding.objectAttrInclude.voltageLevelView) + "cableModelView".setDefaultValue(binding.objectAttrInclude.cableModelView) + "cableSpecView".setDefaultValue(binding.objectAttrInclude.cableSpecView) + "cableBrandView".setDefaultValue(binding.objectAttrInclude.cableBrandView) + "cableStartView".setDefaultValue(binding.objectAttrInclude.cableStartView) + "cableEndView".setDefaultValue(binding.objectAttrInclude.cableEndView) + "jointCreatorView".setDefaultValue(binding.objectAttrInclude.jointCreatorView) + "objectRemarkView1".setDefaultValue(binding.objectAttrInclude.objectRemarkView1) + "objectRemarkView2".setDefaultValue(binding.objectAttrInclude.objectRemarkView2) + "objectRemarkView3".setDefaultValue(binding.objectAttrInclude.objectRemarkView3) val smallLabelData = SmallLabelDataClass( companyId, - markerIdView.text.toString(), - markerNumberView.text.toString(), - markerNameView.text.toString(), - smallLabelIdView.text.toString(), - cableNameView.toString(), - cableNumberView.toString(), - lineView.text.toString(), - voltageLevelView.toString(), - cableModelView.text.toString(), - cableSpecView.text.toString(), - cableBrandView.text.toString(), - cableStartView.text.toString(), - cableEndView.text.toString(), - middleJointSpinner.selectedItem.toString(), - jointCreatorView.text.toString(), - objectRemarkView1.text.toString(), - objectRemarkView2.text.toString(), - objectRemarkView3.text.toString(), + binding.objectAttrInclude.markerIdView.text.toString(), + binding.objectAttrInclude.markerNumberView.text.toString(), + binding.objectAttrInclude.markerNameView.text.toString(), + binding.objectAttrInclude.smallLabelIdView.text.toString(), + binding.objectAttrInclude.cableNameView.toString(), + binding.objectAttrInclude.cableNumberView.toString(), + binding.objectAttrInclude.lineView.text.toString(), + binding.objectAttrInclude.voltageLevelView.toString(), + binding.objectAttrInclude.cableModelView.text.toString(), + binding.objectAttrInclude.cableSpecView.text.toString(), + binding.objectAttrInclude.cableBrandView.text.toString(), + binding.objectAttrInclude.cableStartView.text.toString(), + binding.objectAttrInclude.cableEndView.text.toString(), + binding.objectAttrInclude.middleJointSpinner.selectedItem.toString(), + binding.objectAttrInclude.jointCreatorView.text.toString(), + binding.objectAttrInclude.objectRemarkView1.text.toString(), + binding.objectAttrInclude.objectRemarkView2.text.toString(), + binding.objectAttrInclude.objectRemarkView3.text.toString(), realPaths ) @@ -280,7 +294,7 @@ } } - readLabelButton.setOnClickListener { + binding.readLabelButton.setOnClickListener { gpioManager.setGpioHigh("18") LoadingDialogHub.show(this, "标识器读取中,请稍后...") @@ -328,7 +342,7 @@ //查本地库 val result = DataBaseManager.get.queryLabelById(markerId) if (result.isEmpty()) { - markerIdView.text = markerId + binding.objectAttrInclude.markerIdView.text = markerId } else { "此标识器已安装,请更换标识器!".show(this) } diff --git a/app/src/main/java/com/casic/electric/detector/view/LoginActivity.kt b/app/src/main/java/com/casic/electric/detector/view/LoginActivity.kt index f521ffd..44d56ef 100644 --- a/app/src/main/java/com/casic/electric/detector/view/LoginActivity.kt +++ b/app/src/main/java/com/casic/electric/detector/view/LoginActivity.kt @@ -4,7 +4,7 @@ import android.util.Log import androidx.lifecycle.ViewModelProvider import com.amap.api.navi.NaviSetting -import com.casic.electric.detector.R +import com.casic.electric.detector.databinding.ActivityLoginBinding import com.casic.electric.detector.extensions.initLayoutImmersionBar import com.casic.electric.detector.utils.GpioManager import com.casic.electric.detector.utils.LoadingDialogHub @@ -18,21 +18,24 @@ import com.pengxh.kt.lite.utils.SaveKeyValues import com.pengxh.kt.lite.vm.LoadState import com.pengxh.kt.lite.widget.dialog.AlertMessageDialog -import kotlinx.android.synthetic.main.activity_login.* -class LoginActivity : KotlinBaseActivity() { +class LoginActivity : KotlinBaseActivity() { private val kTag = "LoginActivity" private lateinit var userViewModel: UserViewModel private val gpioManager by lazy { GpioManager() } - override fun initData(savedInstanceState: Bundle?) { + override fun initViewBinding(): ActivityLoginBinding { + return ActivityLoginBinding.inflate(layoutInflater) + } + + override fun initOnCreate(savedInstanceState: Bundle?) { gpioManager.setGpioLow("18") //先把导航隐私政策声明,后面导航会用到 NaviSetting.updatePrivacyShow(this, true, true) NaviSetting.updatePrivacyAgree(this, true) - autoSavePasswordView.isChecked = + binding.autoSavePasswordView.isChecked = SaveKeyValues.getValue(LocaleConstant.AUTO_SAVE, false) as Boolean userViewModel = ViewModelProvider(this)[UserViewModel::class.java] @@ -51,11 +54,11 @@ } override fun initEvent() { - loginButton.setOnClickListener { - val account = accountView.text.toString() - val password = passwordView.text.toString() - val serversIp = serversIpView.text.toString() - val serversPort = serversPortView.text.toString() + binding.loginButton.setOnClickListener { + val account = binding.accountView.text.toString() + val password = binding.passwordView.text.toString() + val serversIp = binding.serversIpView.text.toString() + val serversPort = binding.serversPortView.text.toString() if (account.isBlank() || password.isBlank() || serversIp.isBlank() || serversPort.isBlank()) { AlertMessageDialog.Builder() .setContext(this) @@ -79,7 +82,7 @@ } } - autoSavePasswordView.setOnCheckedChangeListener { _, isChecked -> + binding.autoSavePasswordView.setOnCheckedChangeListener { _, isChecked -> if (isChecked) { SaveKeyValues.putValue(LocaleConstant.AUTO_SAVE, true) } else { @@ -88,8 +91,6 @@ } } - override fun initLayoutView(): Int = R.layout.activity_login - override fun observeRequestState() { userViewModel.loadState.observe(this) { when (it) { @@ -101,24 +102,24 @@ override fun setupTopBarLayout() { ImmersionBar.with(this).statusBarDarkFont(true).init() - initLayoutImmersionBar(rootView) + initLayoutImmersionBar(binding.rootView) Log.d(kTag, "setupTopBarLayout => [${getScreenWidth()}, ${getScreenHeight()}]") } override fun onResume() { super.onResume() - if (autoSavePasswordView.isChecked) { - accountView.setText( + if (binding.autoSavePasswordView.isChecked) { + binding.accountView.setText( SaveKeyValues.getValue(LocaleConstant.USER_ACCOUNT, "") as String ) - passwordView.setText( + binding.passwordView.setText( SaveKeyValues.getValue(LocaleConstant.USER_PASSWORD, "") as String ) - serversIpView.setText( + binding.serversIpView.setText( SaveKeyValues.getValue(LocaleConstant.SERVER_IP, "") as String ) - serversPortView.setText( + binding.serversPortView.setText( SaveKeyValues.getValue(LocaleConstant.SERVER_PORT, "") as String ) } diff --git a/app/src/main/java/com/casic/electric/detector/view/MainActivity.kt b/app/src/main/java/com/casic/electric/detector/view/MainActivity.kt index dabec9f..36a8d55 100644 --- a/app/src/main/java/com/casic/electric/detector/view/MainActivity.kt +++ b/app/src/main/java/com/casic/electric/detector/view/MainActivity.kt @@ -28,6 +28,7 @@ import com.casic.electric.detector.cluster.ClusterItem import com.casic.electric.detector.cluster.ClusterOverlay import com.casic.electric.detector.cluster.RegionItem +import com.casic.electric.detector.databinding.ActivityMainBinding import com.casic.electric.detector.extensions.appendExcelDownloadUrl import com.casic.electric.detector.extensions.drawCircle import com.casic.electric.detector.extensions.initLayoutImmersionBar @@ -54,22 +55,13 @@ import com.pengxh.kt.lite.widget.dialog.AlertControlDialog import com.pengxh.kt.lite.widget.dialog.BottomActionSheet import com.pengxh.kt.lite.widget.dialog.NoNetworkDialog -import kotlinx.android.synthetic.main.activity_main.aimButton -import kotlinx.android.synthetic.main.activity_main.currentLocationView -import kotlinx.android.synthetic.main.activity_main.detectionButton -import kotlinx.android.synthetic.main.activity_main.inspectionButton -import kotlinx.android.synthetic.main.activity_main.installButton -import kotlinx.android.synthetic.main.activity_main.mapView -import kotlinx.android.synthetic.main.activity_main.rightImageView -import kotlinx.android.synthetic.main.activity_main.rootView -import kotlinx.android.synthetic.main.activity_main.viewButton import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.launch import kotlinx.coroutines.withContext import java.io.File -class MainActivity : KotlinBaseActivity() { +class MainActivity : KotlinBaseActivity() { private val kTag = "MainActivity" private val context: Context = this@MainActivity @@ -87,18 +79,20 @@ private val backDrawables = HashMap() private val regionRadius by lazy { LocaleConstant.RADIUS_SIZE.dp2px(this) } - 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.themeColor).init() - initLayoutImmersionBar(rootView) + initLayoutImmersionBar(binding.rootView) } override fun observeRequestState() { } - override fun initData(savedInstanceState: Bundle?) { + override fun initOnCreate(savedInstanceState: Bundle?) { val powerManager = getSystemService(Context.POWER_SERVICE) as PowerManager wakeLock = powerManager.run { newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, this@MainActivity.localClassName).apply { @@ -197,7 +191,7 @@ } override fun initEvent() { - rightImageView.setOnClickListener { + binding.rightImageView.setOnClickListener { CoroutineScope(Dispatchers.Main).launch { val labels = withContext(Dispatchers.IO) { DataBaseManager.get.queryLabelById("0") @@ -205,8 +199,8 @@ if (labels.isNotEmpty()) { samplePopupWindow.setShowPosition(4) } - val x = rightImageView.width - samplePopupWindow.width - 1f.dp2px(context) - samplePopupWindow.showAsDropDown(rightImageView, x, 1f.dp2px(context)) + val x = binding.rightImageView.width - samplePopupWindow.width - 1f.dp2px(context) + samplePopupWindow.showAsDropDown(binding.rightImageView, x, 1f.dp2px(context)) } } @@ -224,7 +218,7 @@ }) //安装。上传,然后存入本地库 - installButton.setOnClickListener { + binding.installButton.setOnClickListener { AlertControlDialog.Builder() .setContext(context) .setTitle("提示") @@ -246,7 +240,7 @@ } //查看 - viewButton.setOnClickListener { + binding.viewButton.setOnClickListener { QueryMarkerDialog.Builder() .setContext(this) .setTitle("查看标识器") @@ -308,7 +302,7 @@ } //巡检 - inspectionButton.setOnClickListener { + binding.inspectionButton.setOnClickListener { // val task = DataBaseManager.get.queryDistinctTask() // if (task.isNotEmpty()) { // val arrayList = ArrayList() @@ -366,14 +360,14 @@ } //探测 - detectionButton.setOnClickListener { + binding.detectionButton.setOnClickListener { // navigatePageTo() } } private fun initMapConfig(savedInstanceState: Bundle?) { - mapView.onCreate(savedInstanceState) - aMap = mapView.map + binding.mapView.onCreate(savedInstanceState) + aMap = binding.mapView.map val uiSettings = aMap.uiSettings uiSettings.isCompassEnabled = true @@ -394,7 +388,7 @@ latitude = it.latitude //经纬度逆编码 LocationHub.antiCodingLocation(context, it) { address -> - currentLocationView.text = address + binding.currentLocationView.text = address } } @@ -419,7 +413,7 @@ } //自定义定位按钮 - aimButton.setOnClickListener { moveToCurrentLocation() } + binding.aimButton.setOnClickListener { moveToCurrentLocation() } } private fun moveToCurrentLocation() { @@ -566,6 +560,7 @@ } } } + 1 -> { val electricMarkers = ArrayList() smallLabels.forEach { @@ -582,6 +577,7 @@ //显示单选列表对话框 showElectricMarkers(electricMarkers) } + 2 -> { RouteOnMap.startNavigation( context, item.tag, @@ -619,7 +615,7 @@ override fun onResume() { super.onResume() - mapView.onResume() + binding.mapView.onResume() lifecycleScope.launch { labels = withContext(Dispatchers.IO) { DataBaseManager.get.loadLabels() as ArrayList @@ -638,17 +634,17 @@ override fun onPause() { super.onPause() - mapView.onPause() + binding.mapView.onPause() } override fun onSaveInstanceState(outState: Bundle) { super.onSaveInstanceState(outState) - mapView.onSaveInstanceState(outState) + binding.mapView.onSaveInstanceState(outState) } override fun onDestroy() { wakeLock.release() super.onDestroy() - mapView.onDestroy() + binding.mapView.onDestroy() } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/electric/detector/view/ObjectDetailActivity.kt b/app/src/main/java/com/casic/electric/detector/view/ObjectDetailActivity.kt index f8cd691..22ee740 100644 --- a/app/src/main/java/com/casic/electric/detector/view/ObjectDetailActivity.kt +++ b/app/src/main/java/com/casic/electric/detector/view/ObjectDetailActivity.kt @@ -1,12 +1,11 @@ package com.casic.electric.detector.view -import android.content.Context import android.graphics.Color import android.graphics.drawable.ColorDrawable import android.os.Bundle import android.view.Gravity -import com.casic.electric.detector.R import com.casic.electric.detector.bean.LabelBean +import com.casic.electric.detector.databinding.ActivityObjectDetailBinding import com.google.gson.Gson import com.google.gson.reflect.TypeToken import com.pengxh.kt.lite.base.KotlinBaseActivity @@ -14,15 +13,13 @@ import com.pengxh.kt.lite.extensions.getScreenWidth import com.pengxh.kt.lite.extensions.show import com.pengxh.kt.lite.utils.Constant -import kotlinx.android.synthetic.main.activity_object_detail.* -class ObjectDetailActivity : KotlinBaseActivity() { +class ObjectDetailActivity : KotlinBaseActivity() { private val kTag = "ObjectDetailActivity" - private val context: Context = this@ObjectDetailActivity private val gson by lazy { Gson() } - override fun initData(savedInstanceState: Bundle?) { + override fun initOnCreate(savedInstanceState: Bundle?) { window.setBackgroundDrawable(ColorDrawable(Color.TRANSPARENT)) window.decorView.setBackgroundColor(Color.TRANSPARENT) window.setGravity(Gravity.CENTER) @@ -36,50 +33,52 @@ val labelBean = gson.fromJson(objectJson, object : TypeToken() {}.type) - markerObjTypeView.text = labelBean.markerObjType - markerNumberView.text = labelBean.markerNumber - objectNameView.text = labelBean.objectName - voltageLevelView.text = labelBean.voltageLevel - transformerModelView.text = labelBean.transformerModel - wellCoverMaterialView.text = labelBean.wellCoverMaterial - sizeView.text = labelBean.size - bottomDepthView.text = labelBean.bottomDepth - jointCountView.text = labelBean.jointCount - casingMaterialView.text = labelBean.casingMaterial - casingSpecView.text = labelBean.casingSpec - constructTimeView.text = labelBean.constructTime - inspectionUnitView.text = labelBean.inspectionUnit - areaView.text = labelBean.area - roadView.text = labelBean.road - memo1View.text = labelBean.memo1 - memo2View.text = labelBean.memo2 - memo3View.text = labelBean.memo3 - markerIdView.text = labelBean.markerId - markerTypeView.text = labelBean.markerType - ownerView.text = labelBean.owner - markerDepthView.text = labelBean.markerDepth - electricTagCountView.text = labelBean.electricTagCount - installedTimeView.text = labelBean.installedTime - longitudeView.text = labelBean.longitude - latitudeView.text = labelBean.latitude - markerMemo1View.text = labelBean.markerMemo1 - markerMemo2View.text = labelBean.markerMemo2 - markerMemo3View.text = labelBean.markerMemo3 + binding.markerObjTypeView.text = labelBean.markerObjType + binding.markerNumberView.text = labelBean.markerNumber + binding.objectNameView.text = labelBean.objectName + binding.voltageLevelView.text = labelBean.voltageLevel + binding.transformerModelView.text = labelBean.transformerModel + binding.wellCoverMaterialView.text = labelBean.wellCoverMaterial + binding.sizeView.text = labelBean.size + binding.bottomDepthView.text = labelBean.bottomDepth + binding.jointCountView.text = labelBean.jointCount + binding.casingMaterialView.text = labelBean.casingMaterial + binding.casingSpecView.text = labelBean.casingSpec + binding.constructTimeView.text = labelBean.constructTime + binding.inspectionUnitView.text = labelBean.inspectionUnit + binding.areaView.text = labelBean.area + binding.roadView.text = labelBean.road + binding.memo1View.text = labelBean.memo1 + binding.memo2View.text = labelBean.memo2 + binding.memo3View.text = labelBean.memo3 + binding.markerIdView.text = labelBean.markerId + binding.markerTypeView.text = labelBean.markerType + binding.ownerView.text = labelBean.owner + binding.markerDepthView.text = labelBean.markerDepth + binding.electricTagCountView.text = labelBean.electricTagCount + binding.installedTimeView.text = labelBean.installedTime + binding.longitudeView.text = labelBean.longitude + binding.latitudeView.text = labelBean.latitude + binding.markerMemo1View.text = labelBean.markerMemo1 + binding.markerMemo2View.text = labelBean.markerMemo2 + binding.markerMemo3View.text = labelBean.markerMemo3 } catch (e: NumberFormatException) { e.printStackTrace() } } override fun initEvent() { - closeView.setOnClickListener { finish() } + binding.closeView.setOnClickListener { finish() } - showImageView.setOnClickListener { + binding.showImageView.setOnClickListener { //TODO 服务器返回的表格里面并没有图片字段,此功能暂时屏蔽 - "此标识器无图片".show(context) + "此标识器无图片".show(this) } } - override fun initLayoutView(): Int = R.layout.activity_object_detail + override fun initViewBinding(): ActivityObjectDetailBinding { + return ActivityObjectDetailBinding.inflate(layoutInflater) + } override fun observeRequestState() { diff --git a/app/build.gradle b/app/build.gradle index 385cd21..093bae7 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -2,7 +2,6 @@ apply plugin: 'com.android.application' apply plugin: 'kotlin-android' -apply plugin: 'kotlin-android-extensions' apply plugin: 'org.greenrobot.greendao' android { @@ -70,7 +69,7 @@ implementation 'androidx.core:core-ktx:1.9.0' implementation 'androidx.appcompat:appcompat:1.6.1' //基础依赖库 - implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.0.4.9' + implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.0.5' //Google官方授权框架 implementation 'pub.devrel:easypermissions:3.0.0' //腾讯Android UI框架 diff --git a/app/src/main/java/com/casic/electric/detector/base/SerialPortActivity.kt b/app/src/main/java/com/casic/electric/detector/base/SerialPortActivity.kt index 3e5ba6c..ac05531 100644 --- a/app/src/main/java/com/casic/electric/detector/base/SerialPortActivity.kt +++ b/app/src/main/java/com/casic/electric/detector/base/SerialPortActivity.kt @@ -2,6 +2,7 @@ import android.os.Bundle import androidx.appcompat.app.AppCompatActivity +import androidx.viewbinding.ViewBinding import com.casic.electric.detector.uart.SerialPort import com.pengxh.kt.lite.extensions.show import java.io.IOException @@ -10,8 +11,9 @@ import java.security.InvalidParameterException -abstract class SerialPortActivity : AppCompatActivity() { +abstract class SerialPortActivity : AppCompatActivity() { + protected lateinit var binding: VB private var serialPort: SerialPort? = null var outputStream: OutputStream? = null private var inputStream: InputStream? = null @@ -39,9 +41,10 @@ override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) - setContentView(initLayoutView()) + binding = initViewBinding() + setContentView(binding.root) setupTopBarLayout() - initData(savedInstanceState) + initOnCreate(savedInstanceState) observeRequestState() initEvent() @@ -64,7 +67,7 @@ /** * 初始化xml布局 */ - abstract fun initLayoutView(): Int + abstract fun initViewBinding(): VB /** * 特定页面定制沉浸式状态栏 @@ -74,7 +77,7 @@ /** * 初始化默认数据 */ - abstract fun initData(savedInstanceState: Bundle?) + abstract fun initOnCreate(savedInstanceState: Bundle?) /** * 数据请求状态监听 diff --git a/app/src/main/java/com/casic/electric/detector/view/BigImageActivity.kt b/app/src/main/java/com/casic/electric/detector/view/BigImageActivity.kt index 040242e..aa1bdeb 100644 --- a/app/src/main/java/com/casic/electric/detector/view/BigImageActivity.kt +++ b/app/src/main/java/com/casic/electric/detector/view/BigImageActivity.kt @@ -11,22 +11,24 @@ import androidx.viewpager.widget.ViewPager import com.bumptech.glide.Glide import com.casic.electric.detector.R +import com.casic.electric.detector.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/electric/detector/view/ElectricMarkerDetailActivity.kt b/app/src/main/java/com/casic/electric/detector/view/ElectricMarkerDetailActivity.kt index b381d5c..d72edc5 100644 --- a/app/src/main/java/com/casic/electric/detector/view/ElectricMarkerDetailActivity.kt +++ b/app/src/main/java/com/casic/electric/detector/view/ElectricMarkerDetailActivity.kt @@ -4,8 +4,8 @@ import android.graphics.drawable.ColorDrawable import android.os.Bundle import android.view.Gravity -import com.casic.electric.detector.R import com.casic.electric.detector.bean.SmallLabelBean +import com.casic.electric.detector.databinding.ActivityElectricMarkerDetailBinding import com.casic.electric.detector.extensions.appendDownloadUrl import com.casic.electric.detector.utils.DataBaseManager import com.casic.electric.detector.utils.FileType @@ -15,13 +15,16 @@ import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show import com.pengxh.kt.lite.utils.Constant -import kotlinx.android.synthetic.main.activity_electric_marker_detail.* -class ElectricMarkerDetailActivity : KotlinBaseActivity() { +class ElectricMarkerDetailActivity : KotlinBaseActivity() { private lateinit var smallLabel: SmallLabelBean - override fun initData(savedInstanceState: Bundle?) { + override fun initViewBinding(): ActivityElectricMarkerDetailBinding { + return ActivityElectricMarkerDetailBinding.inflate(layoutInflater) + } + + override fun initOnCreate(savedInstanceState: Bundle?) { window.setBackgroundDrawable(ColorDrawable(Color.TRANSPARENT)) window.decorView.setBackgroundColor(Color.TRANSPARENT) window.setGravity(Gravity.CENTER) @@ -34,30 +37,30 @@ smallLabel = DataBaseManager.get.queryElectricMarkerById(electricMarkerId) - markerIdView.text = smallLabel.markerId - locationNumberView.text = smallLabel.locationNumber - locationNameView.text = smallLabel.locationName - electricMarkerIdView.text = smallLabel.electricMarkerId - cableNameView.text = smallLabel.cableName - cableNumberView.text = smallLabel.cableNumber - lineView.text = smallLabel.line - voltageLevelView.text = smallLabel.voltageLevel - cableTypeView.text = smallLabel.cableType - cableSpecView.text = smallLabel.cableSpec - cableBrandView.text = smallLabel.cableBrand - cableStartView.text = smallLabel.cableStart - cableEndView.text = smallLabel.cableEnd - hasJointView.text = smallLabel.hasJoint - jointCreatorView.text = smallLabel.jointCreator - memo1View.text = smallLabel.memo1 - memo2View.text = smallLabel.memo2 - memo3View.text = smallLabel.memo3 + binding.markerIdView.text = smallLabel.markerId + binding.locationNumberView.text = smallLabel.locationNumber + binding.locationNameView.text = smallLabel.locationName + binding.electricMarkerIdView.text = smallLabel.electricMarkerId + binding.cableNameView.text = smallLabel.cableName + binding.cableNumberView.text = smallLabel.cableNumber + binding.lineView.text = smallLabel.line + binding.voltageLevelView.text = smallLabel.voltageLevel + binding.cableTypeView.text = smallLabel.cableType + binding.cableSpecView.text = smallLabel.cableSpec + binding.cableBrandView.text = smallLabel.cableBrand + binding.cableStartView.text = smallLabel.cableStart + binding.cableEndView.text = smallLabel.cableEnd + binding.hasJointView.text = smallLabel.hasJoint + binding.jointCreatorView.text = smallLabel.jointCreator + binding.memo1View.text = smallLabel.memo1 + binding.memo2View.text = smallLabel.memo2 + binding.memo3View.text = smallLabel.memo3 } override fun initEvent() { - closeView.setOnClickListener { finish() } + binding.closeView.setOnClickListener { finish() } - showImageView.setOnClickListener { + binding.showImageView.setOnClickListener { //查数据库 if (smallLabel.imagePath.isNullOrEmpty()) { "此标识器无图片".show(this) @@ -84,8 +87,6 @@ } } - override fun initLayoutView(): Int = R.layout.activity_electric_marker_detail - override fun observeRequestState() { } diff --git a/app/src/main/java/com/casic/electric/detector/view/InstallLabelActivity.kt b/app/src/main/java/com/casic/electric/detector/view/InstallLabelActivity.kt index 07626d6..d3a89ca 100644 --- a/app/src/main/java/com/casic/electric/detector/view/InstallLabelActivity.kt +++ b/app/src/main/java/com/casic/electric/detector/view/InstallLabelActivity.kt @@ -25,6 +25,7 @@ import com.casic.electric.detector.base.SerialPortActivity import com.casic.electric.detector.callback.ILocationListener import com.casic.electric.detector.callback.OnImageCompressListener +import com.casic.electric.detector.databinding.ActivityInstallLabelBinding import com.casic.electric.detector.extensions.* import com.casic.electric.detector.utils.* import com.casic.electric.detector.vm.TaskViewModel @@ -38,11 +39,6 @@ import com.pengxh.kt.lite.utils.WeakReferenceHandler import com.pengxh.kt.lite.vm.LoadState import com.pengxh.kt.lite.widget.dialog.NoNetworkDialog -import kotlinx.android.synthetic.main.activity_install_label.* -import kotlinx.android.synthetic.main.include_base_title.* -import kotlinx.android.synthetic.main.include_label_marker_attribute.* -import kotlinx.android.synthetic.main.include_label_object_attribute.* -import kotlinx.android.synthetic.main.include_open_camera.* import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.launch import kotlinx.coroutines.withContext @@ -51,7 +47,7 @@ import java.util.* @SuppressLint("SetTextI18n") -class InstallLabelActivity : SerialPortActivity(), Handler.Callback { +class InstallLabelActivity : SerialPortActivity(), Handler.Callback { private val kTag = "LabelActivity" private val context: Context = this@InstallLabelActivity @@ -64,20 +60,22 @@ private lateinit var imageAdapter: EditableImageAdapter private lateinit var taskViewModel: TaskViewModel - override fun initLayoutView(): Int = R.layout.activity_install_label + override fun initViewBinding(): ActivityInstallLabelBinding { + return ActivityInstallLabelBinding.inflate(layoutInflater) + } override fun setupTopBarLayout() { - titleView.text = "安装新标识器" - titleView.setTextColor(R.color.themeColor.convertColor(this)) + binding.titleInclude.titleView.text = "安装新标识器" + binding.titleInclude.titleView.setTextColor(R.color.themeColor.convertColor(this)) ImmersionBar.with(this) .statusBarDarkFont(true) .statusBarColor(R.color.mainBackground) .init() - initLayoutImmersionBar(rootView) + initLayoutImmersionBar(binding.rootView) } - override fun initData(savedInstanceState: Bundle?) { + override fun initOnCreate(savedInstanceState: Bundle?) { window.setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN or WindowManager.LayoutParams.SOFT_INPUT_ADJUST_PAN) weakReferenceHandler = WeakReferenceHandler(this) @@ -92,44 +90,44 @@ .build() //设置上次填写过的值 - objectCodeView.setText("objectCodeView".getDefaultValue()) - objectNameView.setText("objectNameView".getDefaultValue()) - inlineNameView.setText("inlineNameView".getDefaultValue()) - capacityView.setText("capacityView".getDefaultValue()) - transformerSpecView.setText("transformerSpecView".getDefaultValue()) - sLengthView.setText("sLengthView".getDefaultValue()) - sWidthView.setText("sWidthView".getDefaultValue()) - sHeightView.setText("sHeightView".getDefaultValue()) - inlineCountView.setText("inlineCountView".getDefaultValue()) - outlineCountView.setText("outlineCountView".getDefaultValue()) - bottomDepthView.setText("bottomDepthView".getDefaultValue()) - rowCountView.setText("rowCountView".getDefaultValue()) - rowHoleCountView.setText("rowHoleCountView".getDefaultValue()) - coverDepthView.setText("coverDepthView".getDefaultValue()) - remainingChannelsView.setText("remainingChannelsView".getDefaultValue()) - tieCableView1.setText("tieCableView1".getDefaultValue()) - tieCableView2.setText("tieCableView2".getDefaultValue()) - jointCountView.setText("jointCountView".getDefaultValue()) - casingHoleCountView.setText("casingHoleCountView".getDefaultValue()) - casingHoleDiameterView.setText("casingHoleDiameterView".getDefaultValue()) - heightView.setText("heightView".getDefaultValue()) - lineNumberView.setText("lineNumberView".getDefaultValue()) - inspectionUnitView.setText("inspectionUnitView".getDefaultValue()) - areaView.setText("areaView".getDefaultValue()) - roadView.setText("roadView".getDefaultValue()) - objectRemarkView1.setText("objectRemarkView1".getDefaultValue()) - objectRemarkView2.setText("objectRemarkView2".getDefaultValue()) - objectRemarkView3.setText("objectRemarkView3".getDefaultValue()) - ownerView.setText("ownerView".getDefaultValue()) - markerDepthView.setText("markerDepthView".getDefaultValue()) - markerCountView.setText("markerCountView".getDefaultValue()) - remarkView1.setText("remarkView1".getDefaultValue()) - remarkView2.setText("remarkView2".getDefaultValue()) - remarkView3.setText("remarkView3".getDefaultValue()) + binding.objectAttrInclude.objectCodeView.setText("objectCodeView".getDefaultValue()) + binding.objectAttrInclude.objectNameView.setText("objectNameView".getDefaultValue()) + binding.objectAttrInclude.inlineNameView.setText("inlineNameView".getDefaultValue()) + binding.objectAttrInclude.capacityView.setText("capacityView".getDefaultValue()) + binding.objectAttrInclude.transformerSpecView.setText("transformerSpecView".getDefaultValue()) + binding.objectAttrInclude.sLengthView.setText("sLengthView".getDefaultValue()) + binding.objectAttrInclude.sWidthView.setText("sWidthView".getDefaultValue()) + binding.objectAttrInclude.sHeightView.setText("sHeightView".getDefaultValue()) + binding.objectAttrInclude.inlineCountView.setText("inlineCountView".getDefaultValue()) + binding.objectAttrInclude.outlineCountView.setText("outlineCountView".getDefaultValue()) + binding.objectAttrInclude.bottomDepthView.setText("bottomDepthView".getDefaultValue()) + binding.objectAttrInclude.rowCountView.setText("rowCountView".getDefaultValue()) + binding.objectAttrInclude.rowHoleCountView.setText("rowHoleCountView".getDefaultValue()) + binding.objectAttrInclude.coverDepthView.setText("coverDepthView".getDefaultValue()) + binding.objectAttrInclude.remainingChannelsView.setText("remainingChannelsView".getDefaultValue()) + binding.objectAttrInclude.tieCableView1.setText("tieCableView1".getDefaultValue()) + binding.objectAttrInclude.tieCableView2.setText("tieCableView2".getDefaultValue()) + binding.objectAttrInclude.jointCountView.setText("jointCountView".getDefaultValue()) + binding.objectAttrInclude.casingHoleCountView.setText("casingHoleCountView".getDefaultValue()) + binding.objectAttrInclude.casingHoleDiameterView.setText("casingHoleDiameterView".getDefaultValue()) + binding.objectAttrInclude.heightView.setText("heightView".getDefaultValue()) + binding.objectAttrInclude.lineNumberView.setText("lineNumberView".getDefaultValue()) + binding.objectAttrInclude.inspectionUnitView.setText("inspectionUnitView".getDefaultValue()) + binding.objectAttrInclude.areaView.setText("areaView".getDefaultValue()) + binding.objectAttrInclude.roadView.setText("roadView".getDefaultValue()) + binding.objectAttrInclude.objectRemarkView1.setText("objectRemarkView1".getDefaultValue()) + binding.objectAttrInclude.objectRemarkView2.setText("objectRemarkView2".getDefaultValue()) + binding.objectAttrInclude.objectRemarkView3.setText("objectRemarkView3".getDefaultValue()) + binding.markerAttrInclude.ownerView.setText("ownerView".getDefaultValue()) + binding.markerAttrInclude.markerDepthView.setText("markerDepthView".getDefaultValue()) + binding.markerAttrInclude.markerCountView.setText("markerCountView".getDefaultValue()) + binding.markerAttrInclude.remarkView1.setText("remarkView1".getDefaultValue()) + binding.markerAttrInclude.remarkView2.setText("remarkView2".getDefaultValue()) + binding.markerAttrInclude.remarkView3.setText("remarkView3".getDefaultValue()) //初始化图片九宫格 imageAdapter = EditableImageAdapter(this, 3, 3f) - addImageRecyclerView.adapter = imageAdapter + binding.cameraInclude.addImageRecyclerView.adapter = imageAdapter taskViewModel = ViewModelProvider(this)[TaskViewModel::class.java] } @@ -142,101 +140,120 @@ LoadingDialogHub.dismiss() finish() } + else -> LoadingDialogHub.dismiss() } } } override fun initEvent() { - leftBackView.setOnClickListener { finish() } + binding.titleInclude.leftBackView.setOnClickListener { finish() } /**************************************************************************************/ - objectTypeSpinner.show(this, LocaleConstant.CONTENT_ARRAY, 0) - objectTypeSpinner.onItemSelectedListener = object : AdapterView.OnItemSelectedListener { - override fun onItemSelected( - parent: AdapterView<*>?, view: View?, position: Int, id: Long - ) { - when (position) { - 0 -> { - //选择电缆井 - objectModeView.text = "类型:" - wellCoverMaterialView.text = "井盖材质:" - bottomDepthNameView.text = "井深:" - setLayoutVisibility( - View.VISIBLE, View.GONE, View.VISIBLE, View.GONE, View.VISIBLE, - View.GONE, View.GONE, View.VISIBLE, View.GONE, View.VISIBLE, - View.GONE - ) - objectModeSpinner.show( - this@InstallLabelActivity, LocaleConstant.OBJECT_MODE_ARRAY, 0 - ) - wellCoverMaterialSpinner.show( - this@InstallLabelActivity, LocaleConstant.WELL_COVER_MATERIAL_ARRAY_1, 0 - ) + binding.objectAttrInclude.objectTypeSpinner.show(this, LocaleConstant.CONTENT_ARRAY, 0) + binding.objectAttrInclude.objectTypeSpinner.onItemSelectedListener = + object : AdapterView.OnItemSelectedListener { + override fun onItemSelected( + parent: AdapterView<*>?, view: View?, position: Int, id: Long + ) { + when (position) { + 0 -> { + //选择电缆井 + binding.objectAttrInclude.objectModeView.text = "类型:" + binding.objectAttrInclude.wellCoverMaterialView.text = "井盖材质:" + binding.objectAttrInclude.bottomDepthNameView.text = "井深:" + setLayoutVisibility( + View.VISIBLE, View.GONE, View.VISIBLE, View.GONE, View.VISIBLE, + View.GONE, View.GONE, View.VISIBLE, View.GONE, View.VISIBLE, + View.GONE + ) + binding.objectAttrInclude.objectModeSpinner.show( + this@InstallLabelActivity, LocaleConstant.OBJECT_MODE_ARRAY, 0 + ) + binding.objectAttrInclude.wellCoverMaterialSpinner.show( + this@InstallLabelActivity, + LocaleConstant.WELL_COVER_MATERIAL_ARRAY_1, + 0 + ) + } + + 1 -> { + //选择电缆通道 + binding.objectAttrInclude.bottomDepthNameView.text = "底部深度:" + setLayoutVisibility( + View.GONE, View.GONE, View.GONE, View.GONE, View.GONE, + View.GONE, View.GONE, View.VISIBLE, View.VISIBLE, View.VISIBLE, + View.GONE + ) + } + + 2 -> { + //选择配电房 + setLayoutVisibility( + View.GONE, View.GONE, View.GONE, View.VISIBLE, View.VISIBLE, + View.VISIBLE, View.GONE, View.GONE, View.GONE, View.GONE, + View.GONE + ) + } + + 3 -> { + //选择开关站 + setLayoutVisibility( + View.GONE, View.GONE, View.GONE, View.GONE, View.VISIBLE, + View.VISIBLE, View.VISIBLE, View.GONE, View.GONE, View.GONE, + View.GONE + ) + } + + 4 -> { + //选择台区 + binding.objectAttrInclude.objectModeView.text = "变压器型号:" + setLayoutVisibility( + View.VISIBLE, View.VISIBLE, View.GONE, View.GONE, View.GONE, + View.GONE, View.GONE, View.GONE, View.GONE, View.GONE, + View.GONE + ) + binding.objectAttrInclude.objectModeSpinner.show( + this@InstallLabelActivity, arrayOf("变压器 KVA"), 0 + ) + } + + 5 -> { + //选择杆塔 + binding.objectAttrInclude.wellCoverMaterialView.text = "对象材质:" + setLayoutVisibility( + View.GONE, View.GONE, View.VISIBLE, View.GONE, View.GONE, + View.GONE, View.GONE, View.GONE, View.GONE, View.GONE, + View.VISIBLE + ) + binding.objectAttrInclude.wellCoverMaterialSpinner.show( + this@InstallLabelActivity, + LocaleConstant.WELL_COVER_MATERIAL_ARRAY_2, + 0 + ) + } } - 1 -> { - //选择电缆通道 - bottomDepthNameView.text = "底部深度:" - setLayoutVisibility( - View.GONE, View.GONE, View.GONE, View.GONE, View.GONE, - View.GONE, View.GONE, View.VISIBLE, View.VISIBLE, View.VISIBLE, - View.GONE - ) - } - 2 -> { - //选择配电房 - setLayoutVisibility( - View.GONE, View.GONE, View.GONE, View.VISIBLE, View.VISIBLE, - View.VISIBLE, View.GONE, View.GONE, View.GONE, View.GONE, - View.GONE - ) - } - 3 -> { - //选择开关站 - setLayoutVisibility( - View.GONE, View.GONE, View.GONE, View.GONE, View.VISIBLE, - View.VISIBLE, View.VISIBLE, View.GONE, View.GONE, View.GONE, - View.GONE - ) - } - 4 -> { - //选择台区 - objectModeView.text = "变压器型号:" - setLayoutVisibility( - View.VISIBLE, View.VISIBLE, View.GONE, View.GONE, View.GONE, - View.GONE, View.GONE, View.GONE, View.GONE, View.GONE, - View.GONE - ) - objectModeSpinner.show( - this@InstallLabelActivity, arrayOf("变压器 KVA"), 0 - ) - } - 5 -> { - //选择杆塔 - wellCoverMaterialView.text = "对象材质:" - setLayoutVisibility( - View.GONE, View.GONE, View.VISIBLE, View.GONE, View.GONE, - View.GONE, View.GONE, View.GONE, View.GONE, View.GONE, - View.VISIBLE - ) - wellCoverMaterialSpinner.show( - this@InstallLabelActivity, LocaleConstant.WELL_COVER_MATERIAL_ARRAY_2, 0 - ) - } + } + + override fun onNothingSelected(parent: AdapterView<*>?) { + } } - override fun onNothingSelected(parent: AdapterView<*>?) { - - } - } - - cabinetTypeSpinner.show(this, LocaleConstant.CABINET_TYPE_ARRAY, 0) - casingMaterialSpinner.show(this, LocaleConstant.PIPE_MATERIAL_ARRAY, 0) - markerTypeSpinner.show(this, LocaleConstant.MARKER_TYPE_ARRAY, 0) + binding.objectAttrInclude.cabinetTypeSpinner.show( + this, + LocaleConstant.CABINET_TYPE_ARRAY, + 0 + ) + binding.objectAttrInclude.casingMaterialSpinner.show( + this, + LocaleConstant.PIPE_MATERIAL_ARRAY, + 0 + ) + binding.markerAttrInclude.markerTypeSpinner.show(this, LocaleConstant.MARKER_TYPE_ARRAY, 0) //电压等级-多选 - voltageLevelView.setOnClickListener { + binding.objectAttrInclude.voltageLevelView.setOnClickListener { AlertDialog.Builder(context) .setCancelable(false) .setIcon(R.mipmap.ic_launcher) @@ -255,12 +272,12 @@ } } - voltageLevelView.text = temp.reformat() + binding.objectAttrInclude.voltageLevelView.text = temp.reformat() }.show() } //交叉管道类型-多选 - crossPipeLineView.setOnClickListener { + binding.objectAttrInclude.crossPipeLineView.setOnClickListener { AlertDialog.Builder(context) .setCancelable(false) .setIcon(R.mipmap.ic_launcher) @@ -279,11 +296,11 @@ } } - crossPipeLineView.text = temp.reformat() + binding.objectAttrInclude.crossPipeLineView.text = temp.reformat() }.show() } - constructDateView.setOnClickListener { + binding.objectAttrInclude.constructDateView.setOnClickListener { val datePicker = DatePickerDialog( this, null, @@ -308,17 +325,18 @@ "建设年代不能早于当前日期".show(context) } else { datePicker.dismiss() - constructDateView.text = selectedDate + binding.objectAttrInclude.constructDateView.text = selectedDate } } } - installTimeView.text = System.currentTimeMillis().timestampToCompleteDate() + binding.markerAttrInclude.installTimeView.text = + System.currentTimeMillis().timestampToCompleteDate() LocationHub.getCurrentLocation(this, object : ILocationListener { override fun onAMapLocationGet(location: AMapLocation?) { if (location != null) { - lngView.text = location.longitude.toString() - latView.text = location.latitude.toString() + binding.markerAttrInclude.lngView.text = location.longitude.toString() + binding.markerAttrInclude.latView.text = location.latitude.toString() } else { "当前位置信号差,无法获取定位".show(context) } @@ -358,109 +376,109 @@ }) /**************************************************************************************/ - installButton.setOnClickListener { + binding.installButton.setOnClickListener { if (isNetworkConnected()) { val companyId = SaveKeyValues.getValue(LocaleConstant.USER_COMPANY_ID, "") as String - val itemPosition = objectTypeSpinner.selectedItemPosition + val itemPosition = binding.objectAttrInclude.objectTypeSpinner.selectedItemPosition val objectTypeCode = itemPosition + 1 - if (markerIdView.text.isNullOrBlank()) { + if (binding.markerAttrInclude.markerIdView.text.isNullOrBlank()) { "标识器ID不能为空,请读标识器".show(this) return@setOnClickListener } - if (constructDateView.text.isNullOrBlank()) { + if (binding.objectAttrInclude.constructDateView.text.isNullOrBlank()) { "请选择建设时间".show(this) return@setOnClickListener } - if (markerCountView.text.isNullOrBlank()) { + if (binding.markerAttrInclude.markerCountView.text.isNullOrBlank()) { "请输入电子标签数量".show(this) return@setOnClickListener } //保存默认值 - "objectCodeView".setDefaultValue(objectCodeView) - "objectNameView".setDefaultValue(objectNameView) - "inlineNameView".setDefaultValue(inlineNameView) - "capacityView".setDefaultValue(capacityView) - "transformerSpecView".setDefaultValue(transformerSpecView) - "sLengthView".setDefaultValue(sLengthView) - "sWidthView".setDefaultValue(sWidthView) - "sHeightView".setDefaultValue(sHeightView) - "inlineCountView".setDefaultValue(inlineCountView) - "outlineCountView".setDefaultValue(outlineCountView) - "bottomDepthView".setDefaultValue(bottomDepthView) - "rowCountView".setDefaultValue(rowCountView) - "rowHoleCountView".setDefaultValue(rowHoleCountView) - "coverDepthView".setDefaultValue(coverDepthView) - "remainingChannelsView".setDefaultValue(remainingChannelsView) - "tieCableView1".setDefaultValue(tieCableView1) - "tieCableView2".setDefaultValue(tieCableView2) - "jointCountView".setDefaultValue(jointCountView) - "casingHoleCountView".setDefaultValue(casingHoleCountView) - "casingHoleDiameterView".setDefaultValue(casingHoleDiameterView) - "heightView".setDefaultValue(heightView) - "lineNumberView".setDefaultValue(lineNumberView) - "inspectionUnitView".setDefaultValue(inspectionUnitView) - "areaView".setDefaultValue(areaView) - "roadView".setDefaultValue(roadView) - "objectRemarkView1".setDefaultValue(objectRemarkView1) - "objectRemarkView2".setDefaultValue(objectRemarkView2) - "objectRemarkView3".setDefaultValue(objectRemarkView3) - "ownerView".setDefaultValue(ownerView) - "markerDepthView".setDefaultValue(markerDepthView) - "markerCountView".setDefaultValue(markerCountView) - "remarkView1".setDefaultValue(remarkView1) - "remarkView2".setDefaultValue(remarkView2) - "remarkView3".setDefaultValue(remarkView3) + "objectCodeView".setDefaultValue(binding.objectAttrInclude.objectCodeView) + "objectNameView".setDefaultValue(binding.objectAttrInclude.objectNameView) + "inlineNameView".setDefaultValue(binding.objectAttrInclude.inlineNameView) + "capacityView".setDefaultValue(binding.objectAttrInclude.capacityView) + "transformerSpecView".setDefaultValue(binding.objectAttrInclude.transformerSpecView) + "sLengthView".setDefaultValue(binding.objectAttrInclude.sLengthView) + "sWidthView".setDefaultValue(binding.objectAttrInclude.sWidthView) + "sHeightView".setDefaultValue(binding.objectAttrInclude.sHeightView) + "inlineCountView".setDefaultValue(binding.objectAttrInclude.inlineCountView) + "outlineCountView".setDefaultValue(binding.objectAttrInclude.outlineCountView) + "bottomDepthView".setDefaultValue(binding.objectAttrInclude.bottomDepthView) + "rowCountView".setDefaultValue(binding.objectAttrInclude.rowCountView) + "rowHoleCountView".setDefaultValue(binding.objectAttrInclude.rowHoleCountView) + "coverDepthView".setDefaultValue(binding.objectAttrInclude.coverDepthView) + "remainingChannelsView".setDefaultValue(binding.objectAttrInclude.remainingChannelsView) + "tieCableView1".setDefaultValue(binding.objectAttrInclude.tieCableView1) + "tieCableView2".setDefaultValue(binding.objectAttrInclude.tieCableView2) + "jointCountView".setDefaultValue(binding.objectAttrInclude.jointCountView) + "casingHoleCountView".setDefaultValue(binding.objectAttrInclude.casingHoleCountView) + "casingHoleDiameterView".setDefaultValue(binding.objectAttrInclude.casingHoleDiameterView) + "heightView".setDefaultValue(binding.objectAttrInclude.heightView) + "lineNumberView".setDefaultValue(binding.objectAttrInclude.lineNumberView) + "inspectionUnitView".setDefaultValue(binding.objectAttrInclude.inspectionUnitView) + "areaView".setDefaultValue(binding.objectAttrInclude.areaView) + "roadView".setDefaultValue(binding.objectAttrInclude.roadView) + "objectRemarkView1".setDefaultValue(binding.objectAttrInclude.objectRemarkView1) + "objectRemarkView2".setDefaultValue(binding.objectAttrInclude.objectRemarkView2) + "objectRemarkView3".setDefaultValue(binding.objectAttrInclude.objectRemarkView3) + "ownerView".setDefaultValue(binding.markerAttrInclude.ownerView) + "markerDepthView".setDefaultValue(binding.markerAttrInclude.markerDepthView) + "markerCountView".setDefaultValue(binding.markerAttrInclude.markerCountView) + "remarkView1".setDefaultValue(binding.markerAttrInclude.remarkView1) + "remarkView2".setDefaultValue(binding.markerAttrInclude.remarkView2) + "remarkView3".setDefaultValue(binding.markerAttrInclude.remarkView3) val labelData = LabelDataClass( companyId, objectTypeCode.toString(), - objectCodeView.text.toString(), - objectNameView.text.toString(), - voltageLevelView.text.toString(), - objectModeSpinner.selectedItem.toString(), - "进线${inlineNameView.text}", - wellCoverMaterialSpinner.selectedItem.toString(), - "${capacityView.text}KVA", - transformerSpecView.text.toString(), - "${sLengthView.text}米长 x ${sWidthView.text}米宽 x ${sHeightView.text}米高", - inlineCountView.text.toString(), - outlineCountView.text.toString(), - cabinetTypeSpinner.selectedItem.toString(), - bottomDepthView.text.toString(), - "${rowCountView.text}排 x ${rowHoleCountView.text}孔", - "${coverDepthView.text}米", - crossPipeLineView.text.toString(), - remainingChannelsView.text.toString(), - tieCableView1.text.toString(), - tieCableView2.text.toString(), - jointCountView.text.toString(), - casingMaterialSpinner.selectedItem.toString(), - "${casingHoleCountView.text}孔,直径${casingHoleDiameterView.text}毫米", - "${heightView.text.toString()}米", - lineNumberView.text.toString(), - constructDateView.text.toString(), - inspectionUnitView.text.toString(), - areaView.text.toString(), - roadView.text.toString(), - objectRemarkView1.text.toString(), - objectRemarkView2.text.toString(), - objectRemarkView3.text.toString(), - markerIdView.text.toString(), - markerTypeSpinner.selectedItem.toString(), - ownerView.text.toString(), - markerDepthView.text.toString(), - installTimeView.text.toString(), - lngView.text.toString(), - latView.text.toString(), - markerCountView.text.toString(), - remarkView1.text.toString(), - remarkView2.text.toString(), - remarkView3.text.toString(), + binding.objectAttrInclude.objectCodeView.text.toString(), + binding.objectAttrInclude.objectNameView.text.toString(), + binding.objectAttrInclude.voltageLevelView.text.toString(), + binding.objectAttrInclude.objectModeSpinner.selectedItem.toString(), + "进线${binding.objectAttrInclude.inlineNameView.text}", + binding.objectAttrInclude.wellCoverMaterialSpinner.selectedItem.toString(), + "${binding.objectAttrInclude.capacityView.text}KVA", + binding.objectAttrInclude.transformerSpecView.text.toString(), + "${binding.objectAttrInclude.sLengthView.text}米长 x ${binding.objectAttrInclude.sWidthView.text}米宽 x ${binding.objectAttrInclude.sHeightView.text}米高", + binding.objectAttrInclude.inlineCountView.text.toString(), + binding.objectAttrInclude.outlineCountView.text.toString(), + binding.objectAttrInclude.cabinetTypeSpinner.selectedItem.toString(), + binding.objectAttrInclude.bottomDepthView.text.toString(), + "${binding.objectAttrInclude.rowCountView.text}排 x ${binding.objectAttrInclude.rowHoleCountView.text}孔", + "${binding.objectAttrInclude.coverDepthView.text}米", + binding.objectAttrInclude.crossPipeLineView.text.toString(), + binding.objectAttrInclude.remainingChannelsView.text.toString(), + binding.objectAttrInclude.tieCableView1.text.toString(), + binding.objectAttrInclude.tieCableView2.text.toString(), + binding.objectAttrInclude.jointCountView.text.toString(), + binding.objectAttrInclude.casingMaterialSpinner.selectedItem.toString(), + "${binding.objectAttrInclude.casingHoleCountView.text}孔,直径${binding.objectAttrInclude.casingHoleDiameterView.text}毫米", + "${binding.objectAttrInclude.heightView.text.toString()}米", + binding.objectAttrInclude.lineNumberView.text.toString(), + binding.objectAttrInclude.constructDateView.text.toString(), + binding.objectAttrInclude.inspectionUnitView.text.toString(), + binding.objectAttrInclude.areaView.text.toString(), + binding.objectAttrInclude.roadView.text.toString(), + binding.objectAttrInclude.objectRemarkView1.text.toString(), + binding.objectAttrInclude.objectRemarkView2.text.toString(), + binding.objectAttrInclude.objectRemarkView3.text.toString(), + binding.markerAttrInclude.markerIdView.text.toString(), + binding.markerAttrInclude.markerTypeSpinner.selectedItem.toString(), + binding.markerAttrInclude.ownerView.text.toString(), + binding.markerAttrInclude.markerDepthView.text.toString(), + binding.markerAttrInclude.installTimeView.text.toString(), + binding.markerAttrInclude.lngView.text.toString(), + binding.markerAttrInclude.latView.text.toString(), + binding.markerAttrInclude.markerCountView.text.toString(), + binding.markerAttrInclude.remarkView1.text.toString(), + binding.markerAttrInclude.remarkView2.text.toString(), + binding.markerAttrInclude.remarkView3.text.toString(), realPaths ) @@ -486,7 +504,7 @@ } } - readLabelButton.setOnClickListener { + binding.readLabelButton.setOnClickListener { gpioManager.setGpioHigh("18") LoadingDialogHub.show(this, "标识器读取中,请稍后...") @@ -534,7 +552,7 @@ //查本地库 val result = DataBaseManager.get.queryLabelById(markerId) if (result.isEmpty()) { - markerIdView.text = markerId + binding.markerAttrInclude.markerIdView.text = markerId } else { "此标识器已安装,请更换标识器!".show(this) } @@ -560,17 +578,17 @@ //根据选择类型控制界面某些区域显隐 private fun setLayoutVisibility(vararg args: Int) { - objectModeLayout.visibility = args[0] - inlineNameLayout.visibility = args[1] - wellCoverMaterialLayout.visibility = args[2] - capacityLayout.visibility = args[3] - sizeLayout.visibility = args[4] - inlineCountLayout.visibility = args[5] - outlineCountLayout.visibility = args[6] - wellDepthLayout.visibility = args[7] - pipeLineLayout.visibility = args[8] - jointCountLayout.visibility = args[9] - heightLayout.visibility = args[10] + binding.objectAttrInclude.objectModeLayout.visibility = args[0] + binding.objectAttrInclude.inlineNameLayout.visibility = args[1] + binding.objectAttrInclude.wellCoverMaterialLayout.visibility = args[2] + binding.objectAttrInclude.capacityLayout.visibility = args[3] + binding.objectAttrInclude.sizeLayout.visibility = args[4] + binding.objectAttrInclude.inlineCountLayout.visibility = args[5] + binding.objectAttrInclude.outlineCountLayout.visibility = args[6] + binding.objectAttrInclude.wellDepthLayout.visibility = args[7] + binding.objectAttrInclude.pipeLineLayout.visibility = args[8] + binding.objectAttrInclude.jointCountLayout.visibility = args[9] + binding.objectAttrInclude.heightLayout.visibility = args[10] } override fun onDestroy() { diff --git a/app/src/main/java/com/casic/electric/detector/view/InstallSmallLabelActivity.kt b/app/src/main/java/com/casic/electric/detector/view/InstallSmallLabelActivity.kt index d6888ee..5bc2ac8 100644 --- a/app/src/main/java/com/casic/electric/detector/view/InstallSmallLabelActivity.kt +++ b/app/src/main/java/com/casic/electric/detector/view/InstallSmallLabelActivity.kt @@ -20,6 +20,7 @@ import com.casic.electric.detector.adapter.EditableImageAdapter import com.casic.electric.detector.base.SerialPortActivity import com.casic.electric.detector.callback.OnImageCompressListener +import com.casic.electric.detector.databinding.ActivityInstallSmallLabelBinding import com.casic.electric.detector.extensions.* import com.casic.electric.detector.utils.* import com.casic.electric.detector.vm.TaskViewModel @@ -36,18 +37,16 @@ import com.pengxh.kt.lite.utils.WeakReferenceHandler import com.pengxh.kt.lite.vm.LoadState import com.pengxh.kt.lite.widget.dialog.NoNetworkDialog -import kotlinx.android.synthetic.main.activity_install_small_label.* -import kotlinx.android.synthetic.main.include_base_title.* -import kotlinx.android.synthetic.main.include_open_camera.* -import kotlinx.android.synthetic.main.include_small_label_object_attribute.* import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.launch import kotlinx.coroutines.withContext import java.io.File +import java.io.FileWriter import java.io.IOException @SuppressLint("SetTextI18n") -class InstallSmallLabelActivity : SerialPortActivity(), Handler.Callback { +class InstallSmallLabelActivity : SerialPortActivity(), + Handler.Callback { private val kTag = "SmallLabelActivity" private val context: Context = this@InstallSmallLabelActivity @@ -59,20 +58,22 @@ private lateinit var imageAdapter: EditableImageAdapter private lateinit var taskViewModel: TaskViewModel - override fun initLayoutView(): Int = R.layout.activity_install_small_label + override fun initViewBinding(): ActivityInstallSmallLabelBinding { + return ActivityInstallSmallLabelBinding.inflate(layoutInflater) + } override fun setupTopBarLayout() { - titleView.text = "安装新电子标签" - titleView.setTextColor(R.color.themeColor.convertColor(this)) + binding.titleInclude.titleView.text = "安装新电子标签" + binding.titleInclude.titleView.setTextColor(R.color.themeColor.convertColor(this)) ImmersionBar.with(this) .statusBarDarkFont(true) .statusBarColor(R.color.mainBackground) .init() - initLayoutImmersionBar(rootView) + initLayoutImmersionBar(binding.rootView) } - override fun initData(savedInstanceState: Bundle?) { + override fun initOnCreate(savedInstanceState: Bundle?) { window.setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN or WindowManager.LayoutParams.SOFT_INPUT_ADJUST_PAN) weakReferenceHandler = WeakReferenceHandler(this) @@ -87,23 +88,23 @@ .build() //设置上次填写过的值 - cableNumberView.setText("cableNumberView".getDefaultValue()) - cableNameView.setText("cableNameView".getDefaultValue()) - lineView.setText("lineView".getDefaultValue()) - voltageLevelView.setText("voltageLevelView".getDefaultValue()) - cableModelView.setText("cableModelView".getDefaultValue()) - cableSpecView.setText("cableSpecView".getDefaultValue()) - cableBrandView.setText("cableBrandView".getDefaultValue()) - cableStartView.setText("cableStartView".getDefaultValue()) - cableEndView.setText("cableEndView".getDefaultValue()) - jointCreatorView.setText("jointCreatorView".getDefaultValue()) - objectRemarkView1.setText("objectRemarkView1".getDefaultValue()) - objectRemarkView2.setText("objectRemarkView2".getDefaultValue()) - objectRemarkView3.setText("objectRemarkView3".getDefaultValue()) + binding.objectAttrInclude.cableNumberView.setText("cableNumberView".getDefaultValue()) + binding.objectAttrInclude.cableNameView.setText("cableNameView".getDefaultValue()) + binding.objectAttrInclude.lineView.setText("lineView".getDefaultValue()) + binding.objectAttrInclude.voltageLevelView.setText("voltageLevelView".getDefaultValue()) + binding.objectAttrInclude.cableModelView.setText("cableModelView".getDefaultValue()) + binding.objectAttrInclude.cableSpecView.setText("cableSpecView".getDefaultValue()) + binding.objectAttrInclude.cableBrandView.setText("cableBrandView".getDefaultValue()) + binding.objectAttrInclude.cableStartView.setText("cableStartView".getDefaultValue()) + binding.objectAttrInclude.cableEndView.setText("cableEndView".getDefaultValue()) + binding.objectAttrInclude.jointCreatorView.setText("jointCreatorView".getDefaultValue()) + binding.objectAttrInclude.objectRemarkView1.setText("objectRemarkView1".getDefaultValue()) + binding.objectAttrInclude.objectRemarkView2.setText("objectRemarkView2".getDefaultValue()) + binding.objectAttrInclude.objectRemarkView3.setText("objectRemarkView3".getDefaultValue()) //初始化图片九宫格 imageAdapter = EditableImageAdapter(this, 3, 3f) - addImageRecyclerView.adapter = imageAdapter + binding.cameraInclude.addImageRecyclerView.adapter = imageAdapter taskViewModel = ViewModelProvider(this)[TaskViewModel::class.java] } @@ -116,20 +117,31 @@ LoadingDialogHub.dismiss() finish() } + else -> LoadingDialogHub.dismiss() } } } override fun initEvent() { - leftBackView.setOnClickListener { finish() } + binding.titleInclude.leftBackView.setOnClickListener { finish() } /**************************************************************************************/ //TODO 读取电子标签为未实现 - readElectricTagButton.setOnClickListener { - gpioManager.setGpioHigh("18") + var fileWriter: FileWriter + try { + fileWriter = FileWriter("/sys/class/newmobi_gpio/newmobi_gpio/Gpio") + fileWriter.write("99") + fileWriter.close() + } catch (e: Exception) { + e.printStackTrace() + } + + gpioManager.setGpioHigh("21") + + binding.readElectricTagButton.setOnClickListener { LoadingDialogHub.show(this, "电子标签读取中,请稍后...") soundResId = soundPool.load(this, R.raw.ring3, 1) @@ -141,32 +153,34 @@ weakReferenceHandler.postDelayed({ try { // 发送读标识器或搜索信号 - outputStream?.write("00".toByteArray()) - outputStream?.flush() + fileWriter = FileWriter("/sys/class/newmobi_gpio/newmobi_gpio/Gpio_inout") + fileWriter.write("01") + fileWriter.close() } catch (e: IOException) { e.printStackTrace() } - }, 1000) + }, 500) } - bindMarkerSpinner.show(this, arrayOf("是", "否"), 0) - bindMarkerSpinner.onItemSelectedListener = object : AdapterView.OnItemSelectedListener { - override fun onItemSelected( - parent: AdapterView<*>?, view: View?, position: Int, id: Long - ) { - if (position == 0) { - markerLayout.visibility = View.VISIBLE - } else { - markerLayout.visibility = View.GONE + binding.objectAttrInclude.bindMarkerSpinner.show(this, arrayOf("是", "否"), 0) + binding.objectAttrInclude.bindMarkerSpinner.onItemSelectedListener = + object : AdapterView.OnItemSelectedListener { + override fun onItemSelected( + parent: AdapterView<*>?, view: View?, position: Int, id: Long + ) { + if (position == 0) { + binding.objectAttrInclude.markerLayout.visibility = View.VISIBLE + } else { + binding.objectAttrInclude.markerLayout.visibility = View.GONE + } + } + + override fun onNothingSelected(parent: AdapterView<*>?) { + } } - override fun onNothingSelected(parent: AdapterView<*>?) { - - } - } - - middleJointSpinner.show(this, arrayOf("有", "无"), 0) + binding.objectAttrInclude.middleJointSpinner.show(this, arrayOf("有", "无"), 0) imageAdapter.setOnItemClickListener(object : EditableImageAdapter.OnItemClickListener { override fun onAddImageClick() { @@ -201,60 +215,60 @@ }) /**************************************************************************************/ - installButton.setOnClickListener { + binding.installButton.setOnClickListener { if (isNetworkConnected()) { val companyId = SaveKeyValues.getValue(LocaleConstant.USER_COMPANY_ID, "") as String - if (markerIdView.text.isNullOrBlank()) { + if (binding.objectAttrInclude.markerIdView.text.isNullOrBlank()) { "标识器ID不能为空,请读标识器".show(this) return@setOnClickListener } - if (smallLabelIdView.text.isNullOrBlank()) { + if (binding.objectAttrInclude.smallLabelIdView.text.isNullOrBlank()) { "电子标签ID不能为空,请读电子标签".show(this) return@setOnClickListener } - if (voltageLevelView.text.isNullOrBlank()) { + if (binding.objectAttrInclude.voltageLevelView.text.isNullOrBlank()) { "电压等级不能为空,请输入电压等级".show(this) return@setOnClickListener } //保存默认值 - "cableNumberView".setDefaultValue(cableNumberView) - "cableNameView".setDefaultValue(cableNameView) - "lineView".setDefaultValue(lineView) - "voltageLevelView".setDefaultValue(voltageLevelView) - "cableModelView".setDefaultValue(cableModelView) - "cableSpecView".setDefaultValue(cableSpecView) - "cableBrandView".setDefaultValue(cableBrandView) - "cableStartView".setDefaultValue(cableStartView) - "cableEndView".setDefaultValue(cableEndView) - "jointCreatorView".setDefaultValue(jointCreatorView) - "objectRemarkView1".setDefaultValue(objectRemarkView1) - "objectRemarkView2".setDefaultValue(objectRemarkView2) - "objectRemarkView3".setDefaultValue(objectRemarkView3) + "cableNumberView".setDefaultValue(binding.objectAttrInclude.cableNumberView) + "cableNameView".setDefaultValue(binding.objectAttrInclude.cableNameView) + "lineView".setDefaultValue(binding.objectAttrInclude.lineView) + "voltageLevelView".setDefaultValue(binding.objectAttrInclude.voltageLevelView) + "cableModelView".setDefaultValue(binding.objectAttrInclude.cableModelView) + "cableSpecView".setDefaultValue(binding.objectAttrInclude.cableSpecView) + "cableBrandView".setDefaultValue(binding.objectAttrInclude.cableBrandView) + "cableStartView".setDefaultValue(binding.objectAttrInclude.cableStartView) + "cableEndView".setDefaultValue(binding.objectAttrInclude.cableEndView) + "jointCreatorView".setDefaultValue(binding.objectAttrInclude.jointCreatorView) + "objectRemarkView1".setDefaultValue(binding.objectAttrInclude.objectRemarkView1) + "objectRemarkView2".setDefaultValue(binding.objectAttrInclude.objectRemarkView2) + "objectRemarkView3".setDefaultValue(binding.objectAttrInclude.objectRemarkView3) val smallLabelData = SmallLabelDataClass( companyId, - markerIdView.text.toString(), - markerNumberView.text.toString(), - markerNameView.text.toString(), - smallLabelIdView.text.toString(), - cableNameView.toString(), - cableNumberView.toString(), - lineView.text.toString(), - voltageLevelView.toString(), - cableModelView.text.toString(), - cableSpecView.text.toString(), - cableBrandView.text.toString(), - cableStartView.text.toString(), - cableEndView.text.toString(), - middleJointSpinner.selectedItem.toString(), - jointCreatorView.text.toString(), - objectRemarkView1.text.toString(), - objectRemarkView2.text.toString(), - objectRemarkView3.text.toString(), + binding.objectAttrInclude.markerIdView.text.toString(), + binding.objectAttrInclude.markerNumberView.text.toString(), + binding.objectAttrInclude.markerNameView.text.toString(), + binding.objectAttrInclude.smallLabelIdView.text.toString(), + binding.objectAttrInclude.cableNameView.toString(), + binding.objectAttrInclude.cableNumberView.toString(), + binding.objectAttrInclude.lineView.text.toString(), + binding.objectAttrInclude.voltageLevelView.toString(), + binding.objectAttrInclude.cableModelView.text.toString(), + binding.objectAttrInclude.cableSpecView.text.toString(), + binding.objectAttrInclude.cableBrandView.text.toString(), + binding.objectAttrInclude.cableStartView.text.toString(), + binding.objectAttrInclude.cableEndView.text.toString(), + binding.objectAttrInclude.middleJointSpinner.selectedItem.toString(), + binding.objectAttrInclude.jointCreatorView.text.toString(), + binding.objectAttrInclude.objectRemarkView1.text.toString(), + binding.objectAttrInclude.objectRemarkView2.text.toString(), + binding.objectAttrInclude.objectRemarkView3.text.toString(), realPaths ) @@ -280,7 +294,7 @@ } } - readLabelButton.setOnClickListener { + binding.readLabelButton.setOnClickListener { gpioManager.setGpioHigh("18") LoadingDialogHub.show(this, "标识器读取中,请稍后...") @@ -328,7 +342,7 @@ //查本地库 val result = DataBaseManager.get.queryLabelById(markerId) if (result.isEmpty()) { - markerIdView.text = markerId + binding.objectAttrInclude.markerIdView.text = markerId } else { "此标识器已安装,请更换标识器!".show(this) } diff --git a/app/src/main/java/com/casic/electric/detector/view/LoginActivity.kt b/app/src/main/java/com/casic/electric/detector/view/LoginActivity.kt index f521ffd..44d56ef 100644 --- a/app/src/main/java/com/casic/electric/detector/view/LoginActivity.kt +++ b/app/src/main/java/com/casic/electric/detector/view/LoginActivity.kt @@ -4,7 +4,7 @@ import android.util.Log import androidx.lifecycle.ViewModelProvider import com.amap.api.navi.NaviSetting -import com.casic.electric.detector.R +import com.casic.electric.detector.databinding.ActivityLoginBinding import com.casic.electric.detector.extensions.initLayoutImmersionBar import com.casic.electric.detector.utils.GpioManager import com.casic.electric.detector.utils.LoadingDialogHub @@ -18,21 +18,24 @@ import com.pengxh.kt.lite.utils.SaveKeyValues import com.pengxh.kt.lite.vm.LoadState import com.pengxh.kt.lite.widget.dialog.AlertMessageDialog -import kotlinx.android.synthetic.main.activity_login.* -class LoginActivity : KotlinBaseActivity() { +class LoginActivity : KotlinBaseActivity() { private val kTag = "LoginActivity" private lateinit var userViewModel: UserViewModel private val gpioManager by lazy { GpioManager() } - override fun initData(savedInstanceState: Bundle?) { + override fun initViewBinding(): ActivityLoginBinding { + return ActivityLoginBinding.inflate(layoutInflater) + } + + override fun initOnCreate(savedInstanceState: Bundle?) { gpioManager.setGpioLow("18") //先把导航隐私政策声明,后面导航会用到 NaviSetting.updatePrivacyShow(this, true, true) NaviSetting.updatePrivacyAgree(this, true) - autoSavePasswordView.isChecked = + binding.autoSavePasswordView.isChecked = SaveKeyValues.getValue(LocaleConstant.AUTO_SAVE, false) as Boolean userViewModel = ViewModelProvider(this)[UserViewModel::class.java] @@ -51,11 +54,11 @@ } override fun initEvent() { - loginButton.setOnClickListener { - val account = accountView.text.toString() - val password = passwordView.text.toString() - val serversIp = serversIpView.text.toString() - val serversPort = serversPortView.text.toString() + binding.loginButton.setOnClickListener { + val account = binding.accountView.text.toString() + val password = binding.passwordView.text.toString() + val serversIp = binding.serversIpView.text.toString() + val serversPort = binding.serversPortView.text.toString() if (account.isBlank() || password.isBlank() || serversIp.isBlank() || serversPort.isBlank()) { AlertMessageDialog.Builder() .setContext(this) @@ -79,7 +82,7 @@ } } - autoSavePasswordView.setOnCheckedChangeListener { _, isChecked -> + binding.autoSavePasswordView.setOnCheckedChangeListener { _, isChecked -> if (isChecked) { SaveKeyValues.putValue(LocaleConstant.AUTO_SAVE, true) } else { @@ -88,8 +91,6 @@ } } - override fun initLayoutView(): Int = R.layout.activity_login - override fun observeRequestState() { userViewModel.loadState.observe(this) { when (it) { @@ -101,24 +102,24 @@ override fun setupTopBarLayout() { ImmersionBar.with(this).statusBarDarkFont(true).init() - initLayoutImmersionBar(rootView) + initLayoutImmersionBar(binding.rootView) Log.d(kTag, "setupTopBarLayout => [${getScreenWidth()}, ${getScreenHeight()}]") } override fun onResume() { super.onResume() - if (autoSavePasswordView.isChecked) { - accountView.setText( + if (binding.autoSavePasswordView.isChecked) { + binding.accountView.setText( SaveKeyValues.getValue(LocaleConstant.USER_ACCOUNT, "") as String ) - passwordView.setText( + binding.passwordView.setText( SaveKeyValues.getValue(LocaleConstant.USER_PASSWORD, "") as String ) - serversIpView.setText( + binding.serversIpView.setText( SaveKeyValues.getValue(LocaleConstant.SERVER_IP, "") as String ) - serversPortView.setText( + binding.serversPortView.setText( SaveKeyValues.getValue(LocaleConstant.SERVER_PORT, "") as String ) } diff --git a/app/src/main/java/com/casic/electric/detector/view/MainActivity.kt b/app/src/main/java/com/casic/electric/detector/view/MainActivity.kt index dabec9f..36a8d55 100644 --- a/app/src/main/java/com/casic/electric/detector/view/MainActivity.kt +++ b/app/src/main/java/com/casic/electric/detector/view/MainActivity.kt @@ -28,6 +28,7 @@ import com.casic.electric.detector.cluster.ClusterItem import com.casic.electric.detector.cluster.ClusterOverlay import com.casic.electric.detector.cluster.RegionItem +import com.casic.electric.detector.databinding.ActivityMainBinding import com.casic.electric.detector.extensions.appendExcelDownloadUrl import com.casic.electric.detector.extensions.drawCircle import com.casic.electric.detector.extensions.initLayoutImmersionBar @@ -54,22 +55,13 @@ import com.pengxh.kt.lite.widget.dialog.AlertControlDialog import com.pengxh.kt.lite.widget.dialog.BottomActionSheet import com.pengxh.kt.lite.widget.dialog.NoNetworkDialog -import kotlinx.android.synthetic.main.activity_main.aimButton -import kotlinx.android.synthetic.main.activity_main.currentLocationView -import kotlinx.android.synthetic.main.activity_main.detectionButton -import kotlinx.android.synthetic.main.activity_main.inspectionButton -import kotlinx.android.synthetic.main.activity_main.installButton -import kotlinx.android.synthetic.main.activity_main.mapView -import kotlinx.android.synthetic.main.activity_main.rightImageView -import kotlinx.android.synthetic.main.activity_main.rootView -import kotlinx.android.synthetic.main.activity_main.viewButton import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.launch import kotlinx.coroutines.withContext import java.io.File -class MainActivity : KotlinBaseActivity() { +class MainActivity : KotlinBaseActivity() { private val kTag = "MainActivity" private val context: Context = this@MainActivity @@ -87,18 +79,20 @@ private val backDrawables = HashMap() private val regionRadius by lazy { LocaleConstant.RADIUS_SIZE.dp2px(this) } - 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.themeColor).init() - initLayoutImmersionBar(rootView) + initLayoutImmersionBar(binding.rootView) } override fun observeRequestState() { } - override fun initData(savedInstanceState: Bundle?) { + override fun initOnCreate(savedInstanceState: Bundle?) { val powerManager = getSystemService(Context.POWER_SERVICE) as PowerManager wakeLock = powerManager.run { newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, this@MainActivity.localClassName).apply { @@ -197,7 +191,7 @@ } override fun initEvent() { - rightImageView.setOnClickListener { + binding.rightImageView.setOnClickListener { CoroutineScope(Dispatchers.Main).launch { val labels = withContext(Dispatchers.IO) { DataBaseManager.get.queryLabelById("0") @@ -205,8 +199,8 @@ if (labels.isNotEmpty()) { samplePopupWindow.setShowPosition(4) } - val x = rightImageView.width - samplePopupWindow.width - 1f.dp2px(context) - samplePopupWindow.showAsDropDown(rightImageView, x, 1f.dp2px(context)) + val x = binding.rightImageView.width - samplePopupWindow.width - 1f.dp2px(context) + samplePopupWindow.showAsDropDown(binding.rightImageView, x, 1f.dp2px(context)) } } @@ -224,7 +218,7 @@ }) //安装。上传,然后存入本地库 - installButton.setOnClickListener { + binding.installButton.setOnClickListener { AlertControlDialog.Builder() .setContext(context) .setTitle("提示") @@ -246,7 +240,7 @@ } //查看 - viewButton.setOnClickListener { + binding.viewButton.setOnClickListener { QueryMarkerDialog.Builder() .setContext(this) .setTitle("查看标识器") @@ -308,7 +302,7 @@ } //巡检 - inspectionButton.setOnClickListener { + binding.inspectionButton.setOnClickListener { // val task = DataBaseManager.get.queryDistinctTask() // if (task.isNotEmpty()) { // val arrayList = ArrayList() @@ -366,14 +360,14 @@ } //探测 - detectionButton.setOnClickListener { + binding.detectionButton.setOnClickListener { // navigatePageTo() } } private fun initMapConfig(savedInstanceState: Bundle?) { - mapView.onCreate(savedInstanceState) - aMap = mapView.map + binding.mapView.onCreate(savedInstanceState) + aMap = binding.mapView.map val uiSettings = aMap.uiSettings uiSettings.isCompassEnabled = true @@ -394,7 +388,7 @@ latitude = it.latitude //经纬度逆编码 LocationHub.antiCodingLocation(context, it) { address -> - currentLocationView.text = address + binding.currentLocationView.text = address } } @@ -419,7 +413,7 @@ } //自定义定位按钮 - aimButton.setOnClickListener { moveToCurrentLocation() } + binding.aimButton.setOnClickListener { moveToCurrentLocation() } } private fun moveToCurrentLocation() { @@ -566,6 +560,7 @@ } } } + 1 -> { val electricMarkers = ArrayList() smallLabels.forEach { @@ -582,6 +577,7 @@ //显示单选列表对话框 showElectricMarkers(electricMarkers) } + 2 -> { RouteOnMap.startNavigation( context, item.tag, @@ -619,7 +615,7 @@ override fun onResume() { super.onResume() - mapView.onResume() + binding.mapView.onResume() lifecycleScope.launch { labels = withContext(Dispatchers.IO) { DataBaseManager.get.loadLabels() as ArrayList @@ -638,17 +634,17 @@ override fun onPause() { super.onPause() - mapView.onPause() + binding.mapView.onPause() } override fun onSaveInstanceState(outState: Bundle) { super.onSaveInstanceState(outState) - mapView.onSaveInstanceState(outState) + binding.mapView.onSaveInstanceState(outState) } override fun onDestroy() { wakeLock.release() super.onDestroy() - mapView.onDestroy() + binding.mapView.onDestroy() } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/electric/detector/view/ObjectDetailActivity.kt b/app/src/main/java/com/casic/electric/detector/view/ObjectDetailActivity.kt index f8cd691..22ee740 100644 --- a/app/src/main/java/com/casic/electric/detector/view/ObjectDetailActivity.kt +++ b/app/src/main/java/com/casic/electric/detector/view/ObjectDetailActivity.kt @@ -1,12 +1,11 @@ package com.casic.electric.detector.view -import android.content.Context import android.graphics.Color import android.graphics.drawable.ColorDrawable import android.os.Bundle import android.view.Gravity -import com.casic.electric.detector.R import com.casic.electric.detector.bean.LabelBean +import com.casic.electric.detector.databinding.ActivityObjectDetailBinding import com.google.gson.Gson import com.google.gson.reflect.TypeToken import com.pengxh.kt.lite.base.KotlinBaseActivity @@ -14,15 +13,13 @@ import com.pengxh.kt.lite.extensions.getScreenWidth import com.pengxh.kt.lite.extensions.show import com.pengxh.kt.lite.utils.Constant -import kotlinx.android.synthetic.main.activity_object_detail.* -class ObjectDetailActivity : KotlinBaseActivity() { +class ObjectDetailActivity : KotlinBaseActivity() { private val kTag = "ObjectDetailActivity" - private val context: Context = this@ObjectDetailActivity private val gson by lazy { Gson() } - override fun initData(savedInstanceState: Bundle?) { + override fun initOnCreate(savedInstanceState: Bundle?) { window.setBackgroundDrawable(ColorDrawable(Color.TRANSPARENT)) window.decorView.setBackgroundColor(Color.TRANSPARENT) window.setGravity(Gravity.CENTER) @@ -36,50 +33,52 @@ val labelBean = gson.fromJson(objectJson, object : TypeToken() {}.type) - markerObjTypeView.text = labelBean.markerObjType - markerNumberView.text = labelBean.markerNumber - objectNameView.text = labelBean.objectName - voltageLevelView.text = labelBean.voltageLevel - transformerModelView.text = labelBean.transformerModel - wellCoverMaterialView.text = labelBean.wellCoverMaterial - sizeView.text = labelBean.size - bottomDepthView.text = labelBean.bottomDepth - jointCountView.text = labelBean.jointCount - casingMaterialView.text = labelBean.casingMaterial - casingSpecView.text = labelBean.casingSpec - constructTimeView.text = labelBean.constructTime - inspectionUnitView.text = labelBean.inspectionUnit - areaView.text = labelBean.area - roadView.text = labelBean.road - memo1View.text = labelBean.memo1 - memo2View.text = labelBean.memo2 - memo3View.text = labelBean.memo3 - markerIdView.text = labelBean.markerId - markerTypeView.text = labelBean.markerType - ownerView.text = labelBean.owner - markerDepthView.text = labelBean.markerDepth - electricTagCountView.text = labelBean.electricTagCount - installedTimeView.text = labelBean.installedTime - longitudeView.text = labelBean.longitude - latitudeView.text = labelBean.latitude - markerMemo1View.text = labelBean.markerMemo1 - markerMemo2View.text = labelBean.markerMemo2 - markerMemo3View.text = labelBean.markerMemo3 + binding.markerObjTypeView.text = labelBean.markerObjType + binding.markerNumberView.text = labelBean.markerNumber + binding.objectNameView.text = labelBean.objectName + binding.voltageLevelView.text = labelBean.voltageLevel + binding.transformerModelView.text = labelBean.transformerModel + binding.wellCoverMaterialView.text = labelBean.wellCoverMaterial + binding.sizeView.text = labelBean.size + binding.bottomDepthView.text = labelBean.bottomDepth + binding.jointCountView.text = labelBean.jointCount + binding.casingMaterialView.text = labelBean.casingMaterial + binding.casingSpecView.text = labelBean.casingSpec + binding.constructTimeView.text = labelBean.constructTime + binding.inspectionUnitView.text = labelBean.inspectionUnit + binding.areaView.text = labelBean.area + binding.roadView.text = labelBean.road + binding.memo1View.text = labelBean.memo1 + binding.memo2View.text = labelBean.memo2 + binding.memo3View.text = labelBean.memo3 + binding.markerIdView.text = labelBean.markerId + binding.markerTypeView.text = labelBean.markerType + binding.ownerView.text = labelBean.owner + binding.markerDepthView.text = labelBean.markerDepth + binding.electricTagCountView.text = labelBean.electricTagCount + binding.installedTimeView.text = labelBean.installedTime + binding.longitudeView.text = labelBean.longitude + binding.latitudeView.text = labelBean.latitude + binding.markerMemo1View.text = labelBean.markerMemo1 + binding.markerMemo2View.text = labelBean.markerMemo2 + binding.markerMemo3View.text = labelBean.markerMemo3 } catch (e: NumberFormatException) { e.printStackTrace() } } override fun initEvent() { - closeView.setOnClickListener { finish() } + binding.closeView.setOnClickListener { finish() } - showImageView.setOnClickListener { + binding.showImageView.setOnClickListener { //TODO 服务器返回的表格里面并没有图片字段,此功能暂时屏蔽 - "此标识器无图片".show(context) + "此标识器无图片".show(this) } } - override fun initLayoutView(): Int = R.layout.activity_object_detail + override fun initViewBinding(): ActivityObjectDetailBinding { + return ActivityObjectDetailBinding.inflate(layoutInflater) + } override fun observeRequestState() { diff --git a/app/src/main/java/com/casic/electric/detector/view/PermissionActivity.kt b/app/src/main/java/com/casic/electric/detector/view/PermissionActivity.kt index f8bddd8..7380d0d 100644 --- a/app/src/main/java/com/casic/electric/detector/view/PermissionActivity.kt +++ b/app/src/main/java/com/casic/electric/detector/view/PermissionActivity.kt @@ -3,6 +3,7 @@ import android.os.Bundle import android.os.CountDownTimer import com.casic.electric.detector.R +import com.casic.electric.detector.databinding.ActivityPermssionBinding import com.casic.electric.detector.utils.LocaleConstant import com.gyf.immersionbar.ImmersionBar import com.pengxh.kt.lite.base.KotlinBaseActivity @@ -10,7 +11,8 @@ import com.pengxh.kt.lite.utils.SaveKeyValues import pub.devrel.easypermissions.EasyPermissions -class PermissionActivity : KotlinBaseActivity(), EasyPermissions.PermissionCallbacks { +class PermissionActivity : KotlinBaseActivity(), + EasyPermissions.PermissionCallbacks { private val isFirstEnter = SaveKeyValues.getValue("isFirstEnter", true) as Boolean private val countDownTimer = object : CountDownTimer(2000, 500) { @@ -24,7 +26,7 @@ } } - override fun initData(savedInstanceState: Bundle?) { + override fun initOnCreate(savedInstanceState: Bundle?) { EasyPermissions.requestPermissions( this, "${resources.getString(R.string.app_name)}需要获取必要权限", LocaleConstant.PERMISSIONS_CODE, *LocaleConstant.USER_PERMISSIONS @@ -35,7 +37,9 @@ } - override fun initLayoutView(): Int = R.layout.activity_permssion + override fun initViewBinding(): ActivityPermssionBinding { + return ActivityPermssionBinding.inflate(layoutInflater) + } override fun observeRequestState() { diff --git a/app/build.gradle b/app/build.gradle index 385cd21..093bae7 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -2,7 +2,6 @@ apply plugin: 'com.android.application' apply plugin: 'kotlin-android' -apply plugin: 'kotlin-android-extensions' apply plugin: 'org.greenrobot.greendao' android { @@ -70,7 +69,7 @@ implementation 'androidx.core:core-ktx:1.9.0' implementation 'androidx.appcompat:appcompat:1.6.1' //基础依赖库 - implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.0.4.9' + implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.0.5' //Google官方授权框架 implementation 'pub.devrel:easypermissions:3.0.0' //腾讯Android UI框架 diff --git a/app/src/main/java/com/casic/electric/detector/base/SerialPortActivity.kt b/app/src/main/java/com/casic/electric/detector/base/SerialPortActivity.kt index 3e5ba6c..ac05531 100644 --- a/app/src/main/java/com/casic/electric/detector/base/SerialPortActivity.kt +++ b/app/src/main/java/com/casic/electric/detector/base/SerialPortActivity.kt @@ -2,6 +2,7 @@ import android.os.Bundle import androidx.appcompat.app.AppCompatActivity +import androidx.viewbinding.ViewBinding import com.casic.electric.detector.uart.SerialPort import com.pengxh.kt.lite.extensions.show import java.io.IOException @@ -10,8 +11,9 @@ import java.security.InvalidParameterException -abstract class SerialPortActivity : AppCompatActivity() { +abstract class SerialPortActivity : AppCompatActivity() { + protected lateinit var binding: VB private var serialPort: SerialPort? = null var outputStream: OutputStream? = null private var inputStream: InputStream? = null @@ -39,9 +41,10 @@ override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) - setContentView(initLayoutView()) + binding = initViewBinding() + setContentView(binding.root) setupTopBarLayout() - initData(savedInstanceState) + initOnCreate(savedInstanceState) observeRequestState() initEvent() @@ -64,7 +67,7 @@ /** * 初始化xml布局 */ - abstract fun initLayoutView(): Int + abstract fun initViewBinding(): VB /** * 特定页面定制沉浸式状态栏 @@ -74,7 +77,7 @@ /** * 初始化默认数据 */ - abstract fun initData(savedInstanceState: Bundle?) + abstract fun initOnCreate(savedInstanceState: Bundle?) /** * 数据请求状态监听 diff --git a/app/src/main/java/com/casic/electric/detector/view/BigImageActivity.kt b/app/src/main/java/com/casic/electric/detector/view/BigImageActivity.kt index 040242e..aa1bdeb 100644 --- a/app/src/main/java/com/casic/electric/detector/view/BigImageActivity.kt +++ b/app/src/main/java/com/casic/electric/detector/view/BigImageActivity.kt @@ -11,22 +11,24 @@ import androidx.viewpager.widget.ViewPager import com.bumptech.glide.Glide import com.casic.electric.detector.R +import com.casic.electric.detector.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/electric/detector/view/ElectricMarkerDetailActivity.kt b/app/src/main/java/com/casic/electric/detector/view/ElectricMarkerDetailActivity.kt index b381d5c..d72edc5 100644 --- a/app/src/main/java/com/casic/electric/detector/view/ElectricMarkerDetailActivity.kt +++ b/app/src/main/java/com/casic/electric/detector/view/ElectricMarkerDetailActivity.kt @@ -4,8 +4,8 @@ import android.graphics.drawable.ColorDrawable import android.os.Bundle import android.view.Gravity -import com.casic.electric.detector.R import com.casic.electric.detector.bean.SmallLabelBean +import com.casic.electric.detector.databinding.ActivityElectricMarkerDetailBinding import com.casic.electric.detector.extensions.appendDownloadUrl import com.casic.electric.detector.utils.DataBaseManager import com.casic.electric.detector.utils.FileType @@ -15,13 +15,16 @@ import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show import com.pengxh.kt.lite.utils.Constant -import kotlinx.android.synthetic.main.activity_electric_marker_detail.* -class ElectricMarkerDetailActivity : KotlinBaseActivity() { +class ElectricMarkerDetailActivity : KotlinBaseActivity() { private lateinit var smallLabel: SmallLabelBean - override fun initData(savedInstanceState: Bundle?) { + override fun initViewBinding(): ActivityElectricMarkerDetailBinding { + return ActivityElectricMarkerDetailBinding.inflate(layoutInflater) + } + + override fun initOnCreate(savedInstanceState: Bundle?) { window.setBackgroundDrawable(ColorDrawable(Color.TRANSPARENT)) window.decorView.setBackgroundColor(Color.TRANSPARENT) window.setGravity(Gravity.CENTER) @@ -34,30 +37,30 @@ smallLabel = DataBaseManager.get.queryElectricMarkerById(electricMarkerId) - markerIdView.text = smallLabel.markerId - locationNumberView.text = smallLabel.locationNumber - locationNameView.text = smallLabel.locationName - electricMarkerIdView.text = smallLabel.electricMarkerId - cableNameView.text = smallLabel.cableName - cableNumberView.text = smallLabel.cableNumber - lineView.text = smallLabel.line - voltageLevelView.text = smallLabel.voltageLevel - cableTypeView.text = smallLabel.cableType - cableSpecView.text = smallLabel.cableSpec - cableBrandView.text = smallLabel.cableBrand - cableStartView.text = smallLabel.cableStart - cableEndView.text = smallLabel.cableEnd - hasJointView.text = smallLabel.hasJoint - jointCreatorView.text = smallLabel.jointCreator - memo1View.text = smallLabel.memo1 - memo2View.text = smallLabel.memo2 - memo3View.text = smallLabel.memo3 + binding.markerIdView.text = smallLabel.markerId + binding.locationNumberView.text = smallLabel.locationNumber + binding.locationNameView.text = smallLabel.locationName + binding.electricMarkerIdView.text = smallLabel.electricMarkerId + binding.cableNameView.text = smallLabel.cableName + binding.cableNumberView.text = smallLabel.cableNumber + binding.lineView.text = smallLabel.line + binding.voltageLevelView.text = smallLabel.voltageLevel + binding.cableTypeView.text = smallLabel.cableType + binding.cableSpecView.text = smallLabel.cableSpec + binding.cableBrandView.text = smallLabel.cableBrand + binding.cableStartView.text = smallLabel.cableStart + binding.cableEndView.text = smallLabel.cableEnd + binding.hasJointView.text = smallLabel.hasJoint + binding.jointCreatorView.text = smallLabel.jointCreator + binding.memo1View.text = smallLabel.memo1 + binding.memo2View.text = smallLabel.memo2 + binding.memo3View.text = smallLabel.memo3 } override fun initEvent() { - closeView.setOnClickListener { finish() } + binding.closeView.setOnClickListener { finish() } - showImageView.setOnClickListener { + binding.showImageView.setOnClickListener { //查数据库 if (smallLabel.imagePath.isNullOrEmpty()) { "此标识器无图片".show(this) @@ -84,8 +87,6 @@ } } - override fun initLayoutView(): Int = R.layout.activity_electric_marker_detail - override fun observeRequestState() { } diff --git a/app/src/main/java/com/casic/electric/detector/view/InstallLabelActivity.kt b/app/src/main/java/com/casic/electric/detector/view/InstallLabelActivity.kt index 07626d6..d3a89ca 100644 --- a/app/src/main/java/com/casic/electric/detector/view/InstallLabelActivity.kt +++ b/app/src/main/java/com/casic/electric/detector/view/InstallLabelActivity.kt @@ -25,6 +25,7 @@ import com.casic.electric.detector.base.SerialPortActivity import com.casic.electric.detector.callback.ILocationListener import com.casic.electric.detector.callback.OnImageCompressListener +import com.casic.electric.detector.databinding.ActivityInstallLabelBinding import com.casic.electric.detector.extensions.* import com.casic.electric.detector.utils.* import com.casic.electric.detector.vm.TaskViewModel @@ -38,11 +39,6 @@ import com.pengxh.kt.lite.utils.WeakReferenceHandler import com.pengxh.kt.lite.vm.LoadState import com.pengxh.kt.lite.widget.dialog.NoNetworkDialog -import kotlinx.android.synthetic.main.activity_install_label.* -import kotlinx.android.synthetic.main.include_base_title.* -import kotlinx.android.synthetic.main.include_label_marker_attribute.* -import kotlinx.android.synthetic.main.include_label_object_attribute.* -import kotlinx.android.synthetic.main.include_open_camera.* import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.launch import kotlinx.coroutines.withContext @@ -51,7 +47,7 @@ import java.util.* @SuppressLint("SetTextI18n") -class InstallLabelActivity : SerialPortActivity(), Handler.Callback { +class InstallLabelActivity : SerialPortActivity(), Handler.Callback { private val kTag = "LabelActivity" private val context: Context = this@InstallLabelActivity @@ -64,20 +60,22 @@ private lateinit var imageAdapter: EditableImageAdapter private lateinit var taskViewModel: TaskViewModel - override fun initLayoutView(): Int = R.layout.activity_install_label + override fun initViewBinding(): ActivityInstallLabelBinding { + return ActivityInstallLabelBinding.inflate(layoutInflater) + } override fun setupTopBarLayout() { - titleView.text = "安装新标识器" - titleView.setTextColor(R.color.themeColor.convertColor(this)) + binding.titleInclude.titleView.text = "安装新标识器" + binding.titleInclude.titleView.setTextColor(R.color.themeColor.convertColor(this)) ImmersionBar.with(this) .statusBarDarkFont(true) .statusBarColor(R.color.mainBackground) .init() - initLayoutImmersionBar(rootView) + initLayoutImmersionBar(binding.rootView) } - override fun initData(savedInstanceState: Bundle?) { + override fun initOnCreate(savedInstanceState: Bundle?) { window.setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN or WindowManager.LayoutParams.SOFT_INPUT_ADJUST_PAN) weakReferenceHandler = WeakReferenceHandler(this) @@ -92,44 +90,44 @@ .build() //设置上次填写过的值 - objectCodeView.setText("objectCodeView".getDefaultValue()) - objectNameView.setText("objectNameView".getDefaultValue()) - inlineNameView.setText("inlineNameView".getDefaultValue()) - capacityView.setText("capacityView".getDefaultValue()) - transformerSpecView.setText("transformerSpecView".getDefaultValue()) - sLengthView.setText("sLengthView".getDefaultValue()) - sWidthView.setText("sWidthView".getDefaultValue()) - sHeightView.setText("sHeightView".getDefaultValue()) - inlineCountView.setText("inlineCountView".getDefaultValue()) - outlineCountView.setText("outlineCountView".getDefaultValue()) - bottomDepthView.setText("bottomDepthView".getDefaultValue()) - rowCountView.setText("rowCountView".getDefaultValue()) - rowHoleCountView.setText("rowHoleCountView".getDefaultValue()) - coverDepthView.setText("coverDepthView".getDefaultValue()) - remainingChannelsView.setText("remainingChannelsView".getDefaultValue()) - tieCableView1.setText("tieCableView1".getDefaultValue()) - tieCableView2.setText("tieCableView2".getDefaultValue()) - jointCountView.setText("jointCountView".getDefaultValue()) - casingHoleCountView.setText("casingHoleCountView".getDefaultValue()) - casingHoleDiameterView.setText("casingHoleDiameterView".getDefaultValue()) - heightView.setText("heightView".getDefaultValue()) - lineNumberView.setText("lineNumberView".getDefaultValue()) - inspectionUnitView.setText("inspectionUnitView".getDefaultValue()) - areaView.setText("areaView".getDefaultValue()) - roadView.setText("roadView".getDefaultValue()) - objectRemarkView1.setText("objectRemarkView1".getDefaultValue()) - objectRemarkView2.setText("objectRemarkView2".getDefaultValue()) - objectRemarkView3.setText("objectRemarkView3".getDefaultValue()) - ownerView.setText("ownerView".getDefaultValue()) - markerDepthView.setText("markerDepthView".getDefaultValue()) - markerCountView.setText("markerCountView".getDefaultValue()) - remarkView1.setText("remarkView1".getDefaultValue()) - remarkView2.setText("remarkView2".getDefaultValue()) - remarkView3.setText("remarkView3".getDefaultValue()) + binding.objectAttrInclude.objectCodeView.setText("objectCodeView".getDefaultValue()) + binding.objectAttrInclude.objectNameView.setText("objectNameView".getDefaultValue()) + binding.objectAttrInclude.inlineNameView.setText("inlineNameView".getDefaultValue()) + binding.objectAttrInclude.capacityView.setText("capacityView".getDefaultValue()) + binding.objectAttrInclude.transformerSpecView.setText("transformerSpecView".getDefaultValue()) + binding.objectAttrInclude.sLengthView.setText("sLengthView".getDefaultValue()) + binding.objectAttrInclude.sWidthView.setText("sWidthView".getDefaultValue()) + binding.objectAttrInclude.sHeightView.setText("sHeightView".getDefaultValue()) + binding.objectAttrInclude.inlineCountView.setText("inlineCountView".getDefaultValue()) + binding.objectAttrInclude.outlineCountView.setText("outlineCountView".getDefaultValue()) + binding.objectAttrInclude.bottomDepthView.setText("bottomDepthView".getDefaultValue()) + binding.objectAttrInclude.rowCountView.setText("rowCountView".getDefaultValue()) + binding.objectAttrInclude.rowHoleCountView.setText("rowHoleCountView".getDefaultValue()) + binding.objectAttrInclude.coverDepthView.setText("coverDepthView".getDefaultValue()) + binding.objectAttrInclude.remainingChannelsView.setText("remainingChannelsView".getDefaultValue()) + binding.objectAttrInclude.tieCableView1.setText("tieCableView1".getDefaultValue()) + binding.objectAttrInclude.tieCableView2.setText("tieCableView2".getDefaultValue()) + binding.objectAttrInclude.jointCountView.setText("jointCountView".getDefaultValue()) + binding.objectAttrInclude.casingHoleCountView.setText("casingHoleCountView".getDefaultValue()) + binding.objectAttrInclude.casingHoleDiameterView.setText("casingHoleDiameterView".getDefaultValue()) + binding.objectAttrInclude.heightView.setText("heightView".getDefaultValue()) + binding.objectAttrInclude.lineNumberView.setText("lineNumberView".getDefaultValue()) + binding.objectAttrInclude.inspectionUnitView.setText("inspectionUnitView".getDefaultValue()) + binding.objectAttrInclude.areaView.setText("areaView".getDefaultValue()) + binding.objectAttrInclude.roadView.setText("roadView".getDefaultValue()) + binding.objectAttrInclude.objectRemarkView1.setText("objectRemarkView1".getDefaultValue()) + binding.objectAttrInclude.objectRemarkView2.setText("objectRemarkView2".getDefaultValue()) + binding.objectAttrInclude.objectRemarkView3.setText("objectRemarkView3".getDefaultValue()) + binding.markerAttrInclude.ownerView.setText("ownerView".getDefaultValue()) + binding.markerAttrInclude.markerDepthView.setText("markerDepthView".getDefaultValue()) + binding.markerAttrInclude.markerCountView.setText("markerCountView".getDefaultValue()) + binding.markerAttrInclude.remarkView1.setText("remarkView1".getDefaultValue()) + binding.markerAttrInclude.remarkView2.setText("remarkView2".getDefaultValue()) + binding.markerAttrInclude.remarkView3.setText("remarkView3".getDefaultValue()) //初始化图片九宫格 imageAdapter = EditableImageAdapter(this, 3, 3f) - addImageRecyclerView.adapter = imageAdapter + binding.cameraInclude.addImageRecyclerView.adapter = imageAdapter taskViewModel = ViewModelProvider(this)[TaskViewModel::class.java] } @@ -142,101 +140,120 @@ LoadingDialogHub.dismiss() finish() } + else -> LoadingDialogHub.dismiss() } } } override fun initEvent() { - leftBackView.setOnClickListener { finish() } + binding.titleInclude.leftBackView.setOnClickListener { finish() } /**************************************************************************************/ - objectTypeSpinner.show(this, LocaleConstant.CONTENT_ARRAY, 0) - objectTypeSpinner.onItemSelectedListener = object : AdapterView.OnItemSelectedListener { - override fun onItemSelected( - parent: AdapterView<*>?, view: View?, position: Int, id: Long - ) { - when (position) { - 0 -> { - //选择电缆井 - objectModeView.text = "类型:" - wellCoverMaterialView.text = "井盖材质:" - bottomDepthNameView.text = "井深:" - setLayoutVisibility( - View.VISIBLE, View.GONE, View.VISIBLE, View.GONE, View.VISIBLE, - View.GONE, View.GONE, View.VISIBLE, View.GONE, View.VISIBLE, - View.GONE - ) - objectModeSpinner.show( - this@InstallLabelActivity, LocaleConstant.OBJECT_MODE_ARRAY, 0 - ) - wellCoverMaterialSpinner.show( - this@InstallLabelActivity, LocaleConstant.WELL_COVER_MATERIAL_ARRAY_1, 0 - ) + binding.objectAttrInclude.objectTypeSpinner.show(this, LocaleConstant.CONTENT_ARRAY, 0) + binding.objectAttrInclude.objectTypeSpinner.onItemSelectedListener = + object : AdapterView.OnItemSelectedListener { + override fun onItemSelected( + parent: AdapterView<*>?, view: View?, position: Int, id: Long + ) { + when (position) { + 0 -> { + //选择电缆井 + binding.objectAttrInclude.objectModeView.text = "类型:" + binding.objectAttrInclude.wellCoverMaterialView.text = "井盖材质:" + binding.objectAttrInclude.bottomDepthNameView.text = "井深:" + setLayoutVisibility( + View.VISIBLE, View.GONE, View.VISIBLE, View.GONE, View.VISIBLE, + View.GONE, View.GONE, View.VISIBLE, View.GONE, View.VISIBLE, + View.GONE + ) + binding.objectAttrInclude.objectModeSpinner.show( + this@InstallLabelActivity, LocaleConstant.OBJECT_MODE_ARRAY, 0 + ) + binding.objectAttrInclude.wellCoverMaterialSpinner.show( + this@InstallLabelActivity, + LocaleConstant.WELL_COVER_MATERIAL_ARRAY_1, + 0 + ) + } + + 1 -> { + //选择电缆通道 + binding.objectAttrInclude.bottomDepthNameView.text = "底部深度:" + setLayoutVisibility( + View.GONE, View.GONE, View.GONE, View.GONE, View.GONE, + View.GONE, View.GONE, View.VISIBLE, View.VISIBLE, View.VISIBLE, + View.GONE + ) + } + + 2 -> { + //选择配电房 + setLayoutVisibility( + View.GONE, View.GONE, View.GONE, View.VISIBLE, View.VISIBLE, + View.VISIBLE, View.GONE, View.GONE, View.GONE, View.GONE, + View.GONE + ) + } + + 3 -> { + //选择开关站 + setLayoutVisibility( + View.GONE, View.GONE, View.GONE, View.GONE, View.VISIBLE, + View.VISIBLE, View.VISIBLE, View.GONE, View.GONE, View.GONE, + View.GONE + ) + } + + 4 -> { + //选择台区 + binding.objectAttrInclude.objectModeView.text = "变压器型号:" + setLayoutVisibility( + View.VISIBLE, View.VISIBLE, View.GONE, View.GONE, View.GONE, + View.GONE, View.GONE, View.GONE, View.GONE, View.GONE, + View.GONE + ) + binding.objectAttrInclude.objectModeSpinner.show( + this@InstallLabelActivity, arrayOf("变压器 KVA"), 0 + ) + } + + 5 -> { + //选择杆塔 + binding.objectAttrInclude.wellCoverMaterialView.text = "对象材质:" + setLayoutVisibility( + View.GONE, View.GONE, View.VISIBLE, View.GONE, View.GONE, + View.GONE, View.GONE, View.GONE, View.GONE, View.GONE, + View.VISIBLE + ) + binding.objectAttrInclude.wellCoverMaterialSpinner.show( + this@InstallLabelActivity, + LocaleConstant.WELL_COVER_MATERIAL_ARRAY_2, + 0 + ) + } } - 1 -> { - //选择电缆通道 - bottomDepthNameView.text = "底部深度:" - setLayoutVisibility( - View.GONE, View.GONE, View.GONE, View.GONE, View.GONE, - View.GONE, View.GONE, View.VISIBLE, View.VISIBLE, View.VISIBLE, - View.GONE - ) - } - 2 -> { - //选择配电房 - setLayoutVisibility( - View.GONE, View.GONE, View.GONE, View.VISIBLE, View.VISIBLE, - View.VISIBLE, View.GONE, View.GONE, View.GONE, View.GONE, - View.GONE - ) - } - 3 -> { - //选择开关站 - setLayoutVisibility( - View.GONE, View.GONE, View.GONE, View.GONE, View.VISIBLE, - View.VISIBLE, View.VISIBLE, View.GONE, View.GONE, View.GONE, - View.GONE - ) - } - 4 -> { - //选择台区 - objectModeView.text = "变压器型号:" - setLayoutVisibility( - View.VISIBLE, View.VISIBLE, View.GONE, View.GONE, View.GONE, - View.GONE, View.GONE, View.GONE, View.GONE, View.GONE, - View.GONE - ) - objectModeSpinner.show( - this@InstallLabelActivity, arrayOf("变压器 KVA"), 0 - ) - } - 5 -> { - //选择杆塔 - wellCoverMaterialView.text = "对象材质:" - setLayoutVisibility( - View.GONE, View.GONE, View.VISIBLE, View.GONE, View.GONE, - View.GONE, View.GONE, View.GONE, View.GONE, View.GONE, - View.VISIBLE - ) - wellCoverMaterialSpinner.show( - this@InstallLabelActivity, LocaleConstant.WELL_COVER_MATERIAL_ARRAY_2, 0 - ) - } + } + + override fun onNothingSelected(parent: AdapterView<*>?) { + } } - override fun onNothingSelected(parent: AdapterView<*>?) { - - } - } - - cabinetTypeSpinner.show(this, LocaleConstant.CABINET_TYPE_ARRAY, 0) - casingMaterialSpinner.show(this, LocaleConstant.PIPE_MATERIAL_ARRAY, 0) - markerTypeSpinner.show(this, LocaleConstant.MARKER_TYPE_ARRAY, 0) + binding.objectAttrInclude.cabinetTypeSpinner.show( + this, + LocaleConstant.CABINET_TYPE_ARRAY, + 0 + ) + binding.objectAttrInclude.casingMaterialSpinner.show( + this, + LocaleConstant.PIPE_MATERIAL_ARRAY, + 0 + ) + binding.markerAttrInclude.markerTypeSpinner.show(this, LocaleConstant.MARKER_TYPE_ARRAY, 0) //电压等级-多选 - voltageLevelView.setOnClickListener { + binding.objectAttrInclude.voltageLevelView.setOnClickListener { AlertDialog.Builder(context) .setCancelable(false) .setIcon(R.mipmap.ic_launcher) @@ -255,12 +272,12 @@ } } - voltageLevelView.text = temp.reformat() + binding.objectAttrInclude.voltageLevelView.text = temp.reformat() }.show() } //交叉管道类型-多选 - crossPipeLineView.setOnClickListener { + binding.objectAttrInclude.crossPipeLineView.setOnClickListener { AlertDialog.Builder(context) .setCancelable(false) .setIcon(R.mipmap.ic_launcher) @@ -279,11 +296,11 @@ } } - crossPipeLineView.text = temp.reformat() + binding.objectAttrInclude.crossPipeLineView.text = temp.reformat() }.show() } - constructDateView.setOnClickListener { + binding.objectAttrInclude.constructDateView.setOnClickListener { val datePicker = DatePickerDialog( this, null, @@ -308,17 +325,18 @@ "建设年代不能早于当前日期".show(context) } else { datePicker.dismiss() - constructDateView.text = selectedDate + binding.objectAttrInclude.constructDateView.text = selectedDate } } } - installTimeView.text = System.currentTimeMillis().timestampToCompleteDate() + binding.markerAttrInclude.installTimeView.text = + System.currentTimeMillis().timestampToCompleteDate() LocationHub.getCurrentLocation(this, object : ILocationListener { override fun onAMapLocationGet(location: AMapLocation?) { if (location != null) { - lngView.text = location.longitude.toString() - latView.text = location.latitude.toString() + binding.markerAttrInclude.lngView.text = location.longitude.toString() + binding.markerAttrInclude.latView.text = location.latitude.toString() } else { "当前位置信号差,无法获取定位".show(context) } @@ -358,109 +376,109 @@ }) /**************************************************************************************/ - installButton.setOnClickListener { + binding.installButton.setOnClickListener { if (isNetworkConnected()) { val companyId = SaveKeyValues.getValue(LocaleConstant.USER_COMPANY_ID, "") as String - val itemPosition = objectTypeSpinner.selectedItemPosition + val itemPosition = binding.objectAttrInclude.objectTypeSpinner.selectedItemPosition val objectTypeCode = itemPosition + 1 - if (markerIdView.text.isNullOrBlank()) { + if (binding.markerAttrInclude.markerIdView.text.isNullOrBlank()) { "标识器ID不能为空,请读标识器".show(this) return@setOnClickListener } - if (constructDateView.text.isNullOrBlank()) { + if (binding.objectAttrInclude.constructDateView.text.isNullOrBlank()) { "请选择建设时间".show(this) return@setOnClickListener } - if (markerCountView.text.isNullOrBlank()) { + if (binding.markerAttrInclude.markerCountView.text.isNullOrBlank()) { "请输入电子标签数量".show(this) return@setOnClickListener } //保存默认值 - "objectCodeView".setDefaultValue(objectCodeView) - "objectNameView".setDefaultValue(objectNameView) - "inlineNameView".setDefaultValue(inlineNameView) - "capacityView".setDefaultValue(capacityView) - "transformerSpecView".setDefaultValue(transformerSpecView) - "sLengthView".setDefaultValue(sLengthView) - "sWidthView".setDefaultValue(sWidthView) - "sHeightView".setDefaultValue(sHeightView) - "inlineCountView".setDefaultValue(inlineCountView) - "outlineCountView".setDefaultValue(outlineCountView) - "bottomDepthView".setDefaultValue(bottomDepthView) - "rowCountView".setDefaultValue(rowCountView) - "rowHoleCountView".setDefaultValue(rowHoleCountView) - "coverDepthView".setDefaultValue(coverDepthView) - "remainingChannelsView".setDefaultValue(remainingChannelsView) - "tieCableView1".setDefaultValue(tieCableView1) - "tieCableView2".setDefaultValue(tieCableView2) - "jointCountView".setDefaultValue(jointCountView) - "casingHoleCountView".setDefaultValue(casingHoleCountView) - "casingHoleDiameterView".setDefaultValue(casingHoleDiameterView) - "heightView".setDefaultValue(heightView) - "lineNumberView".setDefaultValue(lineNumberView) - "inspectionUnitView".setDefaultValue(inspectionUnitView) - "areaView".setDefaultValue(areaView) - "roadView".setDefaultValue(roadView) - "objectRemarkView1".setDefaultValue(objectRemarkView1) - "objectRemarkView2".setDefaultValue(objectRemarkView2) - "objectRemarkView3".setDefaultValue(objectRemarkView3) - "ownerView".setDefaultValue(ownerView) - "markerDepthView".setDefaultValue(markerDepthView) - "markerCountView".setDefaultValue(markerCountView) - "remarkView1".setDefaultValue(remarkView1) - "remarkView2".setDefaultValue(remarkView2) - "remarkView3".setDefaultValue(remarkView3) + "objectCodeView".setDefaultValue(binding.objectAttrInclude.objectCodeView) + "objectNameView".setDefaultValue(binding.objectAttrInclude.objectNameView) + "inlineNameView".setDefaultValue(binding.objectAttrInclude.inlineNameView) + "capacityView".setDefaultValue(binding.objectAttrInclude.capacityView) + "transformerSpecView".setDefaultValue(binding.objectAttrInclude.transformerSpecView) + "sLengthView".setDefaultValue(binding.objectAttrInclude.sLengthView) + "sWidthView".setDefaultValue(binding.objectAttrInclude.sWidthView) + "sHeightView".setDefaultValue(binding.objectAttrInclude.sHeightView) + "inlineCountView".setDefaultValue(binding.objectAttrInclude.inlineCountView) + "outlineCountView".setDefaultValue(binding.objectAttrInclude.outlineCountView) + "bottomDepthView".setDefaultValue(binding.objectAttrInclude.bottomDepthView) + "rowCountView".setDefaultValue(binding.objectAttrInclude.rowCountView) + "rowHoleCountView".setDefaultValue(binding.objectAttrInclude.rowHoleCountView) + "coverDepthView".setDefaultValue(binding.objectAttrInclude.coverDepthView) + "remainingChannelsView".setDefaultValue(binding.objectAttrInclude.remainingChannelsView) + "tieCableView1".setDefaultValue(binding.objectAttrInclude.tieCableView1) + "tieCableView2".setDefaultValue(binding.objectAttrInclude.tieCableView2) + "jointCountView".setDefaultValue(binding.objectAttrInclude.jointCountView) + "casingHoleCountView".setDefaultValue(binding.objectAttrInclude.casingHoleCountView) + "casingHoleDiameterView".setDefaultValue(binding.objectAttrInclude.casingHoleDiameterView) + "heightView".setDefaultValue(binding.objectAttrInclude.heightView) + "lineNumberView".setDefaultValue(binding.objectAttrInclude.lineNumberView) + "inspectionUnitView".setDefaultValue(binding.objectAttrInclude.inspectionUnitView) + "areaView".setDefaultValue(binding.objectAttrInclude.areaView) + "roadView".setDefaultValue(binding.objectAttrInclude.roadView) + "objectRemarkView1".setDefaultValue(binding.objectAttrInclude.objectRemarkView1) + "objectRemarkView2".setDefaultValue(binding.objectAttrInclude.objectRemarkView2) + "objectRemarkView3".setDefaultValue(binding.objectAttrInclude.objectRemarkView3) + "ownerView".setDefaultValue(binding.markerAttrInclude.ownerView) + "markerDepthView".setDefaultValue(binding.markerAttrInclude.markerDepthView) + "markerCountView".setDefaultValue(binding.markerAttrInclude.markerCountView) + "remarkView1".setDefaultValue(binding.markerAttrInclude.remarkView1) + "remarkView2".setDefaultValue(binding.markerAttrInclude.remarkView2) + "remarkView3".setDefaultValue(binding.markerAttrInclude.remarkView3) val labelData = LabelDataClass( companyId, objectTypeCode.toString(), - objectCodeView.text.toString(), - objectNameView.text.toString(), - voltageLevelView.text.toString(), - objectModeSpinner.selectedItem.toString(), - "进线${inlineNameView.text}", - wellCoverMaterialSpinner.selectedItem.toString(), - "${capacityView.text}KVA", - transformerSpecView.text.toString(), - "${sLengthView.text}米长 x ${sWidthView.text}米宽 x ${sHeightView.text}米高", - inlineCountView.text.toString(), - outlineCountView.text.toString(), - cabinetTypeSpinner.selectedItem.toString(), - bottomDepthView.text.toString(), - "${rowCountView.text}排 x ${rowHoleCountView.text}孔", - "${coverDepthView.text}米", - crossPipeLineView.text.toString(), - remainingChannelsView.text.toString(), - tieCableView1.text.toString(), - tieCableView2.text.toString(), - jointCountView.text.toString(), - casingMaterialSpinner.selectedItem.toString(), - "${casingHoleCountView.text}孔,直径${casingHoleDiameterView.text}毫米", - "${heightView.text.toString()}米", - lineNumberView.text.toString(), - constructDateView.text.toString(), - inspectionUnitView.text.toString(), - areaView.text.toString(), - roadView.text.toString(), - objectRemarkView1.text.toString(), - objectRemarkView2.text.toString(), - objectRemarkView3.text.toString(), - markerIdView.text.toString(), - markerTypeSpinner.selectedItem.toString(), - ownerView.text.toString(), - markerDepthView.text.toString(), - installTimeView.text.toString(), - lngView.text.toString(), - latView.text.toString(), - markerCountView.text.toString(), - remarkView1.text.toString(), - remarkView2.text.toString(), - remarkView3.text.toString(), + binding.objectAttrInclude.objectCodeView.text.toString(), + binding.objectAttrInclude.objectNameView.text.toString(), + binding.objectAttrInclude.voltageLevelView.text.toString(), + binding.objectAttrInclude.objectModeSpinner.selectedItem.toString(), + "进线${binding.objectAttrInclude.inlineNameView.text}", + binding.objectAttrInclude.wellCoverMaterialSpinner.selectedItem.toString(), + "${binding.objectAttrInclude.capacityView.text}KVA", + binding.objectAttrInclude.transformerSpecView.text.toString(), + "${binding.objectAttrInclude.sLengthView.text}米长 x ${binding.objectAttrInclude.sWidthView.text}米宽 x ${binding.objectAttrInclude.sHeightView.text}米高", + binding.objectAttrInclude.inlineCountView.text.toString(), + binding.objectAttrInclude.outlineCountView.text.toString(), + binding.objectAttrInclude.cabinetTypeSpinner.selectedItem.toString(), + binding.objectAttrInclude.bottomDepthView.text.toString(), + "${binding.objectAttrInclude.rowCountView.text}排 x ${binding.objectAttrInclude.rowHoleCountView.text}孔", + "${binding.objectAttrInclude.coverDepthView.text}米", + binding.objectAttrInclude.crossPipeLineView.text.toString(), + binding.objectAttrInclude.remainingChannelsView.text.toString(), + binding.objectAttrInclude.tieCableView1.text.toString(), + binding.objectAttrInclude.tieCableView2.text.toString(), + binding.objectAttrInclude.jointCountView.text.toString(), + binding.objectAttrInclude.casingMaterialSpinner.selectedItem.toString(), + "${binding.objectAttrInclude.casingHoleCountView.text}孔,直径${binding.objectAttrInclude.casingHoleDiameterView.text}毫米", + "${binding.objectAttrInclude.heightView.text.toString()}米", + binding.objectAttrInclude.lineNumberView.text.toString(), + binding.objectAttrInclude.constructDateView.text.toString(), + binding.objectAttrInclude.inspectionUnitView.text.toString(), + binding.objectAttrInclude.areaView.text.toString(), + binding.objectAttrInclude.roadView.text.toString(), + binding.objectAttrInclude.objectRemarkView1.text.toString(), + binding.objectAttrInclude.objectRemarkView2.text.toString(), + binding.objectAttrInclude.objectRemarkView3.text.toString(), + binding.markerAttrInclude.markerIdView.text.toString(), + binding.markerAttrInclude.markerTypeSpinner.selectedItem.toString(), + binding.markerAttrInclude.ownerView.text.toString(), + binding.markerAttrInclude.markerDepthView.text.toString(), + binding.markerAttrInclude.installTimeView.text.toString(), + binding.markerAttrInclude.lngView.text.toString(), + binding.markerAttrInclude.latView.text.toString(), + binding.markerAttrInclude.markerCountView.text.toString(), + binding.markerAttrInclude.remarkView1.text.toString(), + binding.markerAttrInclude.remarkView2.text.toString(), + binding.markerAttrInclude.remarkView3.text.toString(), realPaths ) @@ -486,7 +504,7 @@ } } - readLabelButton.setOnClickListener { + binding.readLabelButton.setOnClickListener { gpioManager.setGpioHigh("18") LoadingDialogHub.show(this, "标识器读取中,请稍后...") @@ -534,7 +552,7 @@ //查本地库 val result = DataBaseManager.get.queryLabelById(markerId) if (result.isEmpty()) { - markerIdView.text = markerId + binding.markerAttrInclude.markerIdView.text = markerId } else { "此标识器已安装,请更换标识器!".show(this) } @@ -560,17 +578,17 @@ //根据选择类型控制界面某些区域显隐 private fun setLayoutVisibility(vararg args: Int) { - objectModeLayout.visibility = args[0] - inlineNameLayout.visibility = args[1] - wellCoverMaterialLayout.visibility = args[2] - capacityLayout.visibility = args[3] - sizeLayout.visibility = args[4] - inlineCountLayout.visibility = args[5] - outlineCountLayout.visibility = args[6] - wellDepthLayout.visibility = args[7] - pipeLineLayout.visibility = args[8] - jointCountLayout.visibility = args[9] - heightLayout.visibility = args[10] + binding.objectAttrInclude.objectModeLayout.visibility = args[0] + binding.objectAttrInclude.inlineNameLayout.visibility = args[1] + binding.objectAttrInclude.wellCoverMaterialLayout.visibility = args[2] + binding.objectAttrInclude.capacityLayout.visibility = args[3] + binding.objectAttrInclude.sizeLayout.visibility = args[4] + binding.objectAttrInclude.inlineCountLayout.visibility = args[5] + binding.objectAttrInclude.outlineCountLayout.visibility = args[6] + binding.objectAttrInclude.wellDepthLayout.visibility = args[7] + binding.objectAttrInclude.pipeLineLayout.visibility = args[8] + binding.objectAttrInclude.jointCountLayout.visibility = args[9] + binding.objectAttrInclude.heightLayout.visibility = args[10] } override fun onDestroy() { diff --git a/app/src/main/java/com/casic/electric/detector/view/InstallSmallLabelActivity.kt b/app/src/main/java/com/casic/electric/detector/view/InstallSmallLabelActivity.kt index d6888ee..5bc2ac8 100644 --- a/app/src/main/java/com/casic/electric/detector/view/InstallSmallLabelActivity.kt +++ b/app/src/main/java/com/casic/electric/detector/view/InstallSmallLabelActivity.kt @@ -20,6 +20,7 @@ import com.casic.electric.detector.adapter.EditableImageAdapter import com.casic.electric.detector.base.SerialPortActivity import com.casic.electric.detector.callback.OnImageCompressListener +import com.casic.electric.detector.databinding.ActivityInstallSmallLabelBinding import com.casic.electric.detector.extensions.* import com.casic.electric.detector.utils.* import com.casic.electric.detector.vm.TaskViewModel @@ -36,18 +37,16 @@ import com.pengxh.kt.lite.utils.WeakReferenceHandler import com.pengxh.kt.lite.vm.LoadState import com.pengxh.kt.lite.widget.dialog.NoNetworkDialog -import kotlinx.android.synthetic.main.activity_install_small_label.* -import kotlinx.android.synthetic.main.include_base_title.* -import kotlinx.android.synthetic.main.include_open_camera.* -import kotlinx.android.synthetic.main.include_small_label_object_attribute.* import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.launch import kotlinx.coroutines.withContext import java.io.File +import java.io.FileWriter import java.io.IOException @SuppressLint("SetTextI18n") -class InstallSmallLabelActivity : SerialPortActivity(), Handler.Callback { +class InstallSmallLabelActivity : SerialPortActivity(), + Handler.Callback { private val kTag = "SmallLabelActivity" private val context: Context = this@InstallSmallLabelActivity @@ -59,20 +58,22 @@ private lateinit var imageAdapter: EditableImageAdapter private lateinit var taskViewModel: TaskViewModel - override fun initLayoutView(): Int = R.layout.activity_install_small_label + override fun initViewBinding(): ActivityInstallSmallLabelBinding { + return ActivityInstallSmallLabelBinding.inflate(layoutInflater) + } override fun setupTopBarLayout() { - titleView.text = "安装新电子标签" - titleView.setTextColor(R.color.themeColor.convertColor(this)) + binding.titleInclude.titleView.text = "安装新电子标签" + binding.titleInclude.titleView.setTextColor(R.color.themeColor.convertColor(this)) ImmersionBar.with(this) .statusBarDarkFont(true) .statusBarColor(R.color.mainBackground) .init() - initLayoutImmersionBar(rootView) + initLayoutImmersionBar(binding.rootView) } - override fun initData(savedInstanceState: Bundle?) { + override fun initOnCreate(savedInstanceState: Bundle?) { window.setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN or WindowManager.LayoutParams.SOFT_INPUT_ADJUST_PAN) weakReferenceHandler = WeakReferenceHandler(this) @@ -87,23 +88,23 @@ .build() //设置上次填写过的值 - cableNumberView.setText("cableNumberView".getDefaultValue()) - cableNameView.setText("cableNameView".getDefaultValue()) - lineView.setText("lineView".getDefaultValue()) - voltageLevelView.setText("voltageLevelView".getDefaultValue()) - cableModelView.setText("cableModelView".getDefaultValue()) - cableSpecView.setText("cableSpecView".getDefaultValue()) - cableBrandView.setText("cableBrandView".getDefaultValue()) - cableStartView.setText("cableStartView".getDefaultValue()) - cableEndView.setText("cableEndView".getDefaultValue()) - jointCreatorView.setText("jointCreatorView".getDefaultValue()) - objectRemarkView1.setText("objectRemarkView1".getDefaultValue()) - objectRemarkView2.setText("objectRemarkView2".getDefaultValue()) - objectRemarkView3.setText("objectRemarkView3".getDefaultValue()) + binding.objectAttrInclude.cableNumberView.setText("cableNumberView".getDefaultValue()) + binding.objectAttrInclude.cableNameView.setText("cableNameView".getDefaultValue()) + binding.objectAttrInclude.lineView.setText("lineView".getDefaultValue()) + binding.objectAttrInclude.voltageLevelView.setText("voltageLevelView".getDefaultValue()) + binding.objectAttrInclude.cableModelView.setText("cableModelView".getDefaultValue()) + binding.objectAttrInclude.cableSpecView.setText("cableSpecView".getDefaultValue()) + binding.objectAttrInclude.cableBrandView.setText("cableBrandView".getDefaultValue()) + binding.objectAttrInclude.cableStartView.setText("cableStartView".getDefaultValue()) + binding.objectAttrInclude.cableEndView.setText("cableEndView".getDefaultValue()) + binding.objectAttrInclude.jointCreatorView.setText("jointCreatorView".getDefaultValue()) + binding.objectAttrInclude.objectRemarkView1.setText("objectRemarkView1".getDefaultValue()) + binding.objectAttrInclude.objectRemarkView2.setText("objectRemarkView2".getDefaultValue()) + binding.objectAttrInclude.objectRemarkView3.setText("objectRemarkView3".getDefaultValue()) //初始化图片九宫格 imageAdapter = EditableImageAdapter(this, 3, 3f) - addImageRecyclerView.adapter = imageAdapter + binding.cameraInclude.addImageRecyclerView.adapter = imageAdapter taskViewModel = ViewModelProvider(this)[TaskViewModel::class.java] } @@ -116,20 +117,31 @@ LoadingDialogHub.dismiss() finish() } + else -> LoadingDialogHub.dismiss() } } } override fun initEvent() { - leftBackView.setOnClickListener { finish() } + binding.titleInclude.leftBackView.setOnClickListener { finish() } /**************************************************************************************/ //TODO 读取电子标签为未实现 - readElectricTagButton.setOnClickListener { - gpioManager.setGpioHigh("18") + var fileWriter: FileWriter + try { + fileWriter = FileWriter("/sys/class/newmobi_gpio/newmobi_gpio/Gpio") + fileWriter.write("99") + fileWriter.close() + } catch (e: Exception) { + e.printStackTrace() + } + + gpioManager.setGpioHigh("21") + + binding.readElectricTagButton.setOnClickListener { LoadingDialogHub.show(this, "电子标签读取中,请稍后...") soundResId = soundPool.load(this, R.raw.ring3, 1) @@ -141,32 +153,34 @@ weakReferenceHandler.postDelayed({ try { // 发送读标识器或搜索信号 - outputStream?.write("00".toByteArray()) - outputStream?.flush() + fileWriter = FileWriter("/sys/class/newmobi_gpio/newmobi_gpio/Gpio_inout") + fileWriter.write("01") + fileWriter.close() } catch (e: IOException) { e.printStackTrace() } - }, 1000) + }, 500) } - bindMarkerSpinner.show(this, arrayOf("是", "否"), 0) - bindMarkerSpinner.onItemSelectedListener = object : AdapterView.OnItemSelectedListener { - override fun onItemSelected( - parent: AdapterView<*>?, view: View?, position: Int, id: Long - ) { - if (position == 0) { - markerLayout.visibility = View.VISIBLE - } else { - markerLayout.visibility = View.GONE + binding.objectAttrInclude.bindMarkerSpinner.show(this, arrayOf("是", "否"), 0) + binding.objectAttrInclude.bindMarkerSpinner.onItemSelectedListener = + object : AdapterView.OnItemSelectedListener { + override fun onItemSelected( + parent: AdapterView<*>?, view: View?, position: Int, id: Long + ) { + if (position == 0) { + binding.objectAttrInclude.markerLayout.visibility = View.VISIBLE + } else { + binding.objectAttrInclude.markerLayout.visibility = View.GONE + } + } + + override fun onNothingSelected(parent: AdapterView<*>?) { + } } - override fun onNothingSelected(parent: AdapterView<*>?) { - - } - } - - middleJointSpinner.show(this, arrayOf("有", "无"), 0) + binding.objectAttrInclude.middleJointSpinner.show(this, arrayOf("有", "无"), 0) imageAdapter.setOnItemClickListener(object : EditableImageAdapter.OnItemClickListener { override fun onAddImageClick() { @@ -201,60 +215,60 @@ }) /**************************************************************************************/ - installButton.setOnClickListener { + binding.installButton.setOnClickListener { if (isNetworkConnected()) { val companyId = SaveKeyValues.getValue(LocaleConstant.USER_COMPANY_ID, "") as String - if (markerIdView.text.isNullOrBlank()) { + if (binding.objectAttrInclude.markerIdView.text.isNullOrBlank()) { "标识器ID不能为空,请读标识器".show(this) return@setOnClickListener } - if (smallLabelIdView.text.isNullOrBlank()) { + if (binding.objectAttrInclude.smallLabelIdView.text.isNullOrBlank()) { "电子标签ID不能为空,请读电子标签".show(this) return@setOnClickListener } - if (voltageLevelView.text.isNullOrBlank()) { + if (binding.objectAttrInclude.voltageLevelView.text.isNullOrBlank()) { "电压等级不能为空,请输入电压等级".show(this) return@setOnClickListener } //保存默认值 - "cableNumberView".setDefaultValue(cableNumberView) - "cableNameView".setDefaultValue(cableNameView) - "lineView".setDefaultValue(lineView) - "voltageLevelView".setDefaultValue(voltageLevelView) - "cableModelView".setDefaultValue(cableModelView) - "cableSpecView".setDefaultValue(cableSpecView) - "cableBrandView".setDefaultValue(cableBrandView) - "cableStartView".setDefaultValue(cableStartView) - "cableEndView".setDefaultValue(cableEndView) - "jointCreatorView".setDefaultValue(jointCreatorView) - "objectRemarkView1".setDefaultValue(objectRemarkView1) - "objectRemarkView2".setDefaultValue(objectRemarkView2) - "objectRemarkView3".setDefaultValue(objectRemarkView3) + "cableNumberView".setDefaultValue(binding.objectAttrInclude.cableNumberView) + "cableNameView".setDefaultValue(binding.objectAttrInclude.cableNameView) + "lineView".setDefaultValue(binding.objectAttrInclude.lineView) + "voltageLevelView".setDefaultValue(binding.objectAttrInclude.voltageLevelView) + "cableModelView".setDefaultValue(binding.objectAttrInclude.cableModelView) + "cableSpecView".setDefaultValue(binding.objectAttrInclude.cableSpecView) + "cableBrandView".setDefaultValue(binding.objectAttrInclude.cableBrandView) + "cableStartView".setDefaultValue(binding.objectAttrInclude.cableStartView) + "cableEndView".setDefaultValue(binding.objectAttrInclude.cableEndView) + "jointCreatorView".setDefaultValue(binding.objectAttrInclude.jointCreatorView) + "objectRemarkView1".setDefaultValue(binding.objectAttrInclude.objectRemarkView1) + "objectRemarkView2".setDefaultValue(binding.objectAttrInclude.objectRemarkView2) + "objectRemarkView3".setDefaultValue(binding.objectAttrInclude.objectRemarkView3) val smallLabelData = SmallLabelDataClass( companyId, - markerIdView.text.toString(), - markerNumberView.text.toString(), - markerNameView.text.toString(), - smallLabelIdView.text.toString(), - cableNameView.toString(), - cableNumberView.toString(), - lineView.text.toString(), - voltageLevelView.toString(), - cableModelView.text.toString(), - cableSpecView.text.toString(), - cableBrandView.text.toString(), - cableStartView.text.toString(), - cableEndView.text.toString(), - middleJointSpinner.selectedItem.toString(), - jointCreatorView.text.toString(), - objectRemarkView1.text.toString(), - objectRemarkView2.text.toString(), - objectRemarkView3.text.toString(), + binding.objectAttrInclude.markerIdView.text.toString(), + binding.objectAttrInclude.markerNumberView.text.toString(), + binding.objectAttrInclude.markerNameView.text.toString(), + binding.objectAttrInclude.smallLabelIdView.text.toString(), + binding.objectAttrInclude.cableNameView.toString(), + binding.objectAttrInclude.cableNumberView.toString(), + binding.objectAttrInclude.lineView.text.toString(), + binding.objectAttrInclude.voltageLevelView.toString(), + binding.objectAttrInclude.cableModelView.text.toString(), + binding.objectAttrInclude.cableSpecView.text.toString(), + binding.objectAttrInclude.cableBrandView.text.toString(), + binding.objectAttrInclude.cableStartView.text.toString(), + binding.objectAttrInclude.cableEndView.text.toString(), + binding.objectAttrInclude.middleJointSpinner.selectedItem.toString(), + binding.objectAttrInclude.jointCreatorView.text.toString(), + binding.objectAttrInclude.objectRemarkView1.text.toString(), + binding.objectAttrInclude.objectRemarkView2.text.toString(), + binding.objectAttrInclude.objectRemarkView3.text.toString(), realPaths ) @@ -280,7 +294,7 @@ } } - readLabelButton.setOnClickListener { + binding.readLabelButton.setOnClickListener { gpioManager.setGpioHigh("18") LoadingDialogHub.show(this, "标识器读取中,请稍后...") @@ -328,7 +342,7 @@ //查本地库 val result = DataBaseManager.get.queryLabelById(markerId) if (result.isEmpty()) { - markerIdView.text = markerId + binding.objectAttrInclude.markerIdView.text = markerId } else { "此标识器已安装,请更换标识器!".show(this) } diff --git a/app/src/main/java/com/casic/electric/detector/view/LoginActivity.kt b/app/src/main/java/com/casic/electric/detector/view/LoginActivity.kt index f521ffd..44d56ef 100644 --- a/app/src/main/java/com/casic/electric/detector/view/LoginActivity.kt +++ b/app/src/main/java/com/casic/electric/detector/view/LoginActivity.kt @@ -4,7 +4,7 @@ import android.util.Log import androidx.lifecycle.ViewModelProvider import com.amap.api.navi.NaviSetting -import com.casic.electric.detector.R +import com.casic.electric.detector.databinding.ActivityLoginBinding import com.casic.electric.detector.extensions.initLayoutImmersionBar import com.casic.electric.detector.utils.GpioManager import com.casic.electric.detector.utils.LoadingDialogHub @@ -18,21 +18,24 @@ import com.pengxh.kt.lite.utils.SaveKeyValues import com.pengxh.kt.lite.vm.LoadState import com.pengxh.kt.lite.widget.dialog.AlertMessageDialog -import kotlinx.android.synthetic.main.activity_login.* -class LoginActivity : KotlinBaseActivity() { +class LoginActivity : KotlinBaseActivity() { private val kTag = "LoginActivity" private lateinit var userViewModel: UserViewModel private val gpioManager by lazy { GpioManager() } - override fun initData(savedInstanceState: Bundle?) { + override fun initViewBinding(): ActivityLoginBinding { + return ActivityLoginBinding.inflate(layoutInflater) + } + + override fun initOnCreate(savedInstanceState: Bundle?) { gpioManager.setGpioLow("18") //先把导航隐私政策声明,后面导航会用到 NaviSetting.updatePrivacyShow(this, true, true) NaviSetting.updatePrivacyAgree(this, true) - autoSavePasswordView.isChecked = + binding.autoSavePasswordView.isChecked = SaveKeyValues.getValue(LocaleConstant.AUTO_SAVE, false) as Boolean userViewModel = ViewModelProvider(this)[UserViewModel::class.java] @@ -51,11 +54,11 @@ } override fun initEvent() { - loginButton.setOnClickListener { - val account = accountView.text.toString() - val password = passwordView.text.toString() - val serversIp = serversIpView.text.toString() - val serversPort = serversPortView.text.toString() + binding.loginButton.setOnClickListener { + val account = binding.accountView.text.toString() + val password = binding.passwordView.text.toString() + val serversIp = binding.serversIpView.text.toString() + val serversPort = binding.serversPortView.text.toString() if (account.isBlank() || password.isBlank() || serversIp.isBlank() || serversPort.isBlank()) { AlertMessageDialog.Builder() .setContext(this) @@ -79,7 +82,7 @@ } } - autoSavePasswordView.setOnCheckedChangeListener { _, isChecked -> + binding.autoSavePasswordView.setOnCheckedChangeListener { _, isChecked -> if (isChecked) { SaveKeyValues.putValue(LocaleConstant.AUTO_SAVE, true) } else { @@ -88,8 +91,6 @@ } } - override fun initLayoutView(): Int = R.layout.activity_login - override fun observeRequestState() { userViewModel.loadState.observe(this) { when (it) { @@ -101,24 +102,24 @@ override fun setupTopBarLayout() { ImmersionBar.with(this).statusBarDarkFont(true).init() - initLayoutImmersionBar(rootView) + initLayoutImmersionBar(binding.rootView) Log.d(kTag, "setupTopBarLayout => [${getScreenWidth()}, ${getScreenHeight()}]") } override fun onResume() { super.onResume() - if (autoSavePasswordView.isChecked) { - accountView.setText( + if (binding.autoSavePasswordView.isChecked) { + binding.accountView.setText( SaveKeyValues.getValue(LocaleConstant.USER_ACCOUNT, "") as String ) - passwordView.setText( + binding.passwordView.setText( SaveKeyValues.getValue(LocaleConstant.USER_PASSWORD, "") as String ) - serversIpView.setText( + binding.serversIpView.setText( SaveKeyValues.getValue(LocaleConstant.SERVER_IP, "") as String ) - serversPortView.setText( + binding.serversPortView.setText( SaveKeyValues.getValue(LocaleConstant.SERVER_PORT, "") as String ) } diff --git a/app/src/main/java/com/casic/electric/detector/view/MainActivity.kt b/app/src/main/java/com/casic/electric/detector/view/MainActivity.kt index dabec9f..36a8d55 100644 --- a/app/src/main/java/com/casic/electric/detector/view/MainActivity.kt +++ b/app/src/main/java/com/casic/electric/detector/view/MainActivity.kt @@ -28,6 +28,7 @@ import com.casic.electric.detector.cluster.ClusterItem import com.casic.electric.detector.cluster.ClusterOverlay import com.casic.electric.detector.cluster.RegionItem +import com.casic.electric.detector.databinding.ActivityMainBinding import com.casic.electric.detector.extensions.appendExcelDownloadUrl import com.casic.electric.detector.extensions.drawCircle import com.casic.electric.detector.extensions.initLayoutImmersionBar @@ -54,22 +55,13 @@ import com.pengxh.kt.lite.widget.dialog.AlertControlDialog import com.pengxh.kt.lite.widget.dialog.BottomActionSheet import com.pengxh.kt.lite.widget.dialog.NoNetworkDialog -import kotlinx.android.synthetic.main.activity_main.aimButton -import kotlinx.android.synthetic.main.activity_main.currentLocationView -import kotlinx.android.synthetic.main.activity_main.detectionButton -import kotlinx.android.synthetic.main.activity_main.inspectionButton -import kotlinx.android.synthetic.main.activity_main.installButton -import kotlinx.android.synthetic.main.activity_main.mapView -import kotlinx.android.synthetic.main.activity_main.rightImageView -import kotlinx.android.synthetic.main.activity_main.rootView -import kotlinx.android.synthetic.main.activity_main.viewButton import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.launch import kotlinx.coroutines.withContext import java.io.File -class MainActivity : KotlinBaseActivity() { +class MainActivity : KotlinBaseActivity() { private val kTag = "MainActivity" private val context: Context = this@MainActivity @@ -87,18 +79,20 @@ private val backDrawables = HashMap() private val regionRadius by lazy { LocaleConstant.RADIUS_SIZE.dp2px(this) } - 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.themeColor).init() - initLayoutImmersionBar(rootView) + initLayoutImmersionBar(binding.rootView) } override fun observeRequestState() { } - override fun initData(savedInstanceState: Bundle?) { + override fun initOnCreate(savedInstanceState: Bundle?) { val powerManager = getSystemService(Context.POWER_SERVICE) as PowerManager wakeLock = powerManager.run { newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, this@MainActivity.localClassName).apply { @@ -197,7 +191,7 @@ } override fun initEvent() { - rightImageView.setOnClickListener { + binding.rightImageView.setOnClickListener { CoroutineScope(Dispatchers.Main).launch { val labels = withContext(Dispatchers.IO) { DataBaseManager.get.queryLabelById("0") @@ -205,8 +199,8 @@ if (labels.isNotEmpty()) { samplePopupWindow.setShowPosition(4) } - val x = rightImageView.width - samplePopupWindow.width - 1f.dp2px(context) - samplePopupWindow.showAsDropDown(rightImageView, x, 1f.dp2px(context)) + val x = binding.rightImageView.width - samplePopupWindow.width - 1f.dp2px(context) + samplePopupWindow.showAsDropDown(binding.rightImageView, x, 1f.dp2px(context)) } } @@ -224,7 +218,7 @@ }) //安装。上传,然后存入本地库 - installButton.setOnClickListener { + binding.installButton.setOnClickListener { AlertControlDialog.Builder() .setContext(context) .setTitle("提示") @@ -246,7 +240,7 @@ } //查看 - viewButton.setOnClickListener { + binding.viewButton.setOnClickListener { QueryMarkerDialog.Builder() .setContext(this) .setTitle("查看标识器") @@ -308,7 +302,7 @@ } //巡检 - inspectionButton.setOnClickListener { + binding.inspectionButton.setOnClickListener { // val task = DataBaseManager.get.queryDistinctTask() // if (task.isNotEmpty()) { // val arrayList = ArrayList() @@ -366,14 +360,14 @@ } //探测 - detectionButton.setOnClickListener { + binding.detectionButton.setOnClickListener { // navigatePageTo() } } private fun initMapConfig(savedInstanceState: Bundle?) { - mapView.onCreate(savedInstanceState) - aMap = mapView.map + binding.mapView.onCreate(savedInstanceState) + aMap = binding.mapView.map val uiSettings = aMap.uiSettings uiSettings.isCompassEnabled = true @@ -394,7 +388,7 @@ latitude = it.latitude //经纬度逆编码 LocationHub.antiCodingLocation(context, it) { address -> - currentLocationView.text = address + binding.currentLocationView.text = address } } @@ -419,7 +413,7 @@ } //自定义定位按钮 - aimButton.setOnClickListener { moveToCurrentLocation() } + binding.aimButton.setOnClickListener { moveToCurrentLocation() } } private fun moveToCurrentLocation() { @@ -566,6 +560,7 @@ } } } + 1 -> { val electricMarkers = ArrayList() smallLabels.forEach { @@ -582,6 +577,7 @@ //显示单选列表对话框 showElectricMarkers(electricMarkers) } + 2 -> { RouteOnMap.startNavigation( context, item.tag, @@ -619,7 +615,7 @@ override fun onResume() { super.onResume() - mapView.onResume() + binding.mapView.onResume() lifecycleScope.launch { labels = withContext(Dispatchers.IO) { DataBaseManager.get.loadLabels() as ArrayList @@ -638,17 +634,17 @@ override fun onPause() { super.onPause() - mapView.onPause() + binding.mapView.onPause() } override fun onSaveInstanceState(outState: Bundle) { super.onSaveInstanceState(outState) - mapView.onSaveInstanceState(outState) + binding.mapView.onSaveInstanceState(outState) } override fun onDestroy() { wakeLock.release() super.onDestroy() - mapView.onDestroy() + binding.mapView.onDestroy() } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/electric/detector/view/ObjectDetailActivity.kt b/app/src/main/java/com/casic/electric/detector/view/ObjectDetailActivity.kt index f8cd691..22ee740 100644 --- a/app/src/main/java/com/casic/electric/detector/view/ObjectDetailActivity.kt +++ b/app/src/main/java/com/casic/electric/detector/view/ObjectDetailActivity.kt @@ -1,12 +1,11 @@ package com.casic.electric.detector.view -import android.content.Context import android.graphics.Color import android.graphics.drawable.ColorDrawable import android.os.Bundle import android.view.Gravity -import com.casic.electric.detector.R import com.casic.electric.detector.bean.LabelBean +import com.casic.electric.detector.databinding.ActivityObjectDetailBinding import com.google.gson.Gson import com.google.gson.reflect.TypeToken import com.pengxh.kt.lite.base.KotlinBaseActivity @@ -14,15 +13,13 @@ import com.pengxh.kt.lite.extensions.getScreenWidth import com.pengxh.kt.lite.extensions.show import com.pengxh.kt.lite.utils.Constant -import kotlinx.android.synthetic.main.activity_object_detail.* -class ObjectDetailActivity : KotlinBaseActivity() { +class ObjectDetailActivity : KotlinBaseActivity() { private val kTag = "ObjectDetailActivity" - private val context: Context = this@ObjectDetailActivity private val gson by lazy { Gson() } - override fun initData(savedInstanceState: Bundle?) { + override fun initOnCreate(savedInstanceState: Bundle?) { window.setBackgroundDrawable(ColorDrawable(Color.TRANSPARENT)) window.decorView.setBackgroundColor(Color.TRANSPARENT) window.setGravity(Gravity.CENTER) @@ -36,50 +33,52 @@ val labelBean = gson.fromJson(objectJson, object : TypeToken() {}.type) - markerObjTypeView.text = labelBean.markerObjType - markerNumberView.text = labelBean.markerNumber - objectNameView.text = labelBean.objectName - voltageLevelView.text = labelBean.voltageLevel - transformerModelView.text = labelBean.transformerModel - wellCoverMaterialView.text = labelBean.wellCoverMaterial - sizeView.text = labelBean.size - bottomDepthView.text = labelBean.bottomDepth - jointCountView.text = labelBean.jointCount - casingMaterialView.text = labelBean.casingMaterial - casingSpecView.text = labelBean.casingSpec - constructTimeView.text = labelBean.constructTime - inspectionUnitView.text = labelBean.inspectionUnit - areaView.text = labelBean.area - roadView.text = labelBean.road - memo1View.text = labelBean.memo1 - memo2View.text = labelBean.memo2 - memo3View.text = labelBean.memo3 - markerIdView.text = labelBean.markerId - markerTypeView.text = labelBean.markerType - ownerView.text = labelBean.owner - markerDepthView.text = labelBean.markerDepth - electricTagCountView.text = labelBean.electricTagCount - installedTimeView.text = labelBean.installedTime - longitudeView.text = labelBean.longitude - latitudeView.text = labelBean.latitude - markerMemo1View.text = labelBean.markerMemo1 - markerMemo2View.text = labelBean.markerMemo2 - markerMemo3View.text = labelBean.markerMemo3 + binding.markerObjTypeView.text = labelBean.markerObjType + binding.markerNumberView.text = labelBean.markerNumber + binding.objectNameView.text = labelBean.objectName + binding.voltageLevelView.text = labelBean.voltageLevel + binding.transformerModelView.text = labelBean.transformerModel + binding.wellCoverMaterialView.text = labelBean.wellCoverMaterial + binding.sizeView.text = labelBean.size + binding.bottomDepthView.text = labelBean.bottomDepth + binding.jointCountView.text = labelBean.jointCount + binding.casingMaterialView.text = labelBean.casingMaterial + binding.casingSpecView.text = labelBean.casingSpec + binding.constructTimeView.text = labelBean.constructTime + binding.inspectionUnitView.text = labelBean.inspectionUnit + binding.areaView.text = labelBean.area + binding.roadView.text = labelBean.road + binding.memo1View.text = labelBean.memo1 + binding.memo2View.text = labelBean.memo2 + binding.memo3View.text = labelBean.memo3 + binding.markerIdView.text = labelBean.markerId + binding.markerTypeView.text = labelBean.markerType + binding.ownerView.text = labelBean.owner + binding.markerDepthView.text = labelBean.markerDepth + binding.electricTagCountView.text = labelBean.electricTagCount + binding.installedTimeView.text = labelBean.installedTime + binding.longitudeView.text = labelBean.longitude + binding.latitudeView.text = labelBean.latitude + binding.markerMemo1View.text = labelBean.markerMemo1 + binding.markerMemo2View.text = labelBean.markerMemo2 + binding.markerMemo3View.text = labelBean.markerMemo3 } catch (e: NumberFormatException) { e.printStackTrace() } } override fun initEvent() { - closeView.setOnClickListener { finish() } + binding.closeView.setOnClickListener { finish() } - showImageView.setOnClickListener { + binding.showImageView.setOnClickListener { //TODO 服务器返回的表格里面并没有图片字段,此功能暂时屏蔽 - "此标识器无图片".show(context) + "此标识器无图片".show(this) } } - override fun initLayoutView(): Int = R.layout.activity_object_detail + override fun initViewBinding(): ActivityObjectDetailBinding { + return ActivityObjectDetailBinding.inflate(layoutInflater) + } override fun observeRequestState() { diff --git a/app/src/main/java/com/casic/electric/detector/view/PermissionActivity.kt b/app/src/main/java/com/casic/electric/detector/view/PermissionActivity.kt index f8bddd8..7380d0d 100644 --- a/app/src/main/java/com/casic/electric/detector/view/PermissionActivity.kt +++ b/app/src/main/java/com/casic/electric/detector/view/PermissionActivity.kt @@ -3,6 +3,7 @@ import android.os.Bundle import android.os.CountDownTimer import com.casic.electric.detector.R +import com.casic.electric.detector.databinding.ActivityPermssionBinding import com.casic.electric.detector.utils.LocaleConstant import com.gyf.immersionbar.ImmersionBar import com.pengxh.kt.lite.base.KotlinBaseActivity @@ -10,7 +11,8 @@ import com.pengxh.kt.lite.utils.SaveKeyValues import pub.devrel.easypermissions.EasyPermissions -class PermissionActivity : KotlinBaseActivity(), EasyPermissions.PermissionCallbacks { +class PermissionActivity : KotlinBaseActivity(), + EasyPermissions.PermissionCallbacks { private val isFirstEnter = SaveKeyValues.getValue("isFirstEnter", true) as Boolean private val countDownTimer = object : CountDownTimer(2000, 500) { @@ -24,7 +26,7 @@ } } - override fun initData(savedInstanceState: Bundle?) { + override fun initOnCreate(savedInstanceState: Bundle?) { EasyPermissions.requestPermissions( this, "${resources.getString(R.string.app_name)}需要获取必要权限", LocaleConstant.PERMISSIONS_CODE, *LocaleConstant.USER_PERMISSIONS @@ -35,7 +37,9 @@ } - override fun initLayoutView(): Int = R.layout.activity_permssion + override fun initViewBinding(): ActivityPermssionBinding { + return ActivityPermssionBinding.inflate(layoutInflater) + } override fun observeRequestState() { diff --git a/app/src/main/java/com/casic/electric/detector/view/VersionControlActivity.kt b/app/src/main/java/com/casic/electric/detector/view/VersionControlActivity.kt index 0b2479d..6a00429 100644 --- a/app/src/main/java/com/casic/electric/detector/view/VersionControlActivity.kt +++ b/app/src/main/java/com/casic/electric/detector/view/VersionControlActivity.kt @@ -11,6 +11,7 @@ import androidx.lifecycle.ViewModelProvider import com.casic.electric.detector.BuildConfig import com.casic.electric.detector.R +import com.casic.electric.detector.databinding.ActivityVersionControlBinding import com.casic.electric.detector.extensions.appendDownloadUrl import com.casic.electric.detector.extensions.initLayoutImmersionBar import com.casic.electric.detector.utils.FileType @@ -25,18 +26,16 @@ import com.pengxh.kt.lite.extensions.show import com.pengxh.kt.lite.vm.LoadState import com.pengxh.kt.lite.widget.dialog.AlertControlDialog -import kotlinx.android.synthetic.main.activity_version_control.* -import kotlinx.android.synthetic.main.include_base_title.* import java.io.File -class VersionControlActivity : KotlinBaseActivity() { +class VersionControlActivity : KotlinBaseActivity() { private val kTag = "VersionControlActivity" private val progressDialog by lazy { ProgressDialog(this) } private lateinit var versionViewModel: VersionViewModel - override fun initData(savedInstanceState: Bundle?) { - versionView.text = "Version ${BuildConfig.VERSION_NAME}" + override fun initOnCreate(savedInstanceState: Bundle?) { + binding.versionView.text = "Version ${BuildConfig.VERSION_NAME}" //初始化下载对话框 progressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL) @@ -70,14 +69,16 @@ } override fun initEvent() { - leftBackView.setOnClickListener { finish() } + binding.titleInclude.leftBackView.setOnClickListener { finish() } - updateLayout.setOnClickListener { + binding.updateLayout.setOnClickListener { versionViewModel.getApplicationVersion() } } - override fun initLayoutView(): Int = R.layout.activity_version_control + override fun initViewBinding(): ActivityVersionControlBinding { + return ActivityVersionControlBinding.inflate(layoutInflater) + } override fun observeRequestState() { versionViewModel.loadState.observe(this) { @@ -90,8 +91,8 @@ override fun setupTopBarLayout() { ImmersionBar.with(this).statusBarDarkFont(true).init() - initLayoutImmersionBar(rootView) - titleView.visibility = View.GONE + initLayoutImmersionBar(binding.rootView) + binding.titleInclude.titleView.visibility = View.GONE } private fun downloadApk(url: String?) { diff --git a/app/build.gradle b/app/build.gradle index 385cd21..093bae7 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -2,7 +2,6 @@ apply plugin: 'com.android.application' apply plugin: 'kotlin-android' -apply plugin: 'kotlin-android-extensions' apply plugin: 'org.greenrobot.greendao' android { @@ -70,7 +69,7 @@ implementation 'androidx.core:core-ktx:1.9.0' implementation 'androidx.appcompat:appcompat:1.6.1' //基础依赖库 - implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.0.4.9' + implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.0.5' //Google官方授权框架 implementation 'pub.devrel:easypermissions:3.0.0' //腾讯Android UI框架 diff --git a/app/src/main/java/com/casic/electric/detector/base/SerialPortActivity.kt b/app/src/main/java/com/casic/electric/detector/base/SerialPortActivity.kt index 3e5ba6c..ac05531 100644 --- a/app/src/main/java/com/casic/electric/detector/base/SerialPortActivity.kt +++ b/app/src/main/java/com/casic/electric/detector/base/SerialPortActivity.kt @@ -2,6 +2,7 @@ import android.os.Bundle import androidx.appcompat.app.AppCompatActivity +import androidx.viewbinding.ViewBinding import com.casic.electric.detector.uart.SerialPort import com.pengxh.kt.lite.extensions.show import java.io.IOException @@ -10,8 +11,9 @@ import java.security.InvalidParameterException -abstract class SerialPortActivity : AppCompatActivity() { +abstract class SerialPortActivity : AppCompatActivity() { + protected lateinit var binding: VB private var serialPort: SerialPort? = null var outputStream: OutputStream? = null private var inputStream: InputStream? = null @@ -39,9 +41,10 @@ override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) - setContentView(initLayoutView()) + binding = initViewBinding() + setContentView(binding.root) setupTopBarLayout() - initData(savedInstanceState) + initOnCreate(savedInstanceState) observeRequestState() initEvent() @@ -64,7 +67,7 @@ /** * 初始化xml布局 */ - abstract fun initLayoutView(): Int + abstract fun initViewBinding(): VB /** * 特定页面定制沉浸式状态栏 @@ -74,7 +77,7 @@ /** * 初始化默认数据 */ - abstract fun initData(savedInstanceState: Bundle?) + abstract fun initOnCreate(savedInstanceState: Bundle?) /** * 数据请求状态监听 diff --git a/app/src/main/java/com/casic/electric/detector/view/BigImageActivity.kt b/app/src/main/java/com/casic/electric/detector/view/BigImageActivity.kt index 040242e..aa1bdeb 100644 --- a/app/src/main/java/com/casic/electric/detector/view/BigImageActivity.kt +++ b/app/src/main/java/com/casic/electric/detector/view/BigImageActivity.kt @@ -11,22 +11,24 @@ import androidx.viewpager.widget.ViewPager import com.bumptech.glide.Glide import com.casic.electric.detector.R +import com.casic.electric.detector.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/electric/detector/view/ElectricMarkerDetailActivity.kt b/app/src/main/java/com/casic/electric/detector/view/ElectricMarkerDetailActivity.kt index b381d5c..d72edc5 100644 --- a/app/src/main/java/com/casic/electric/detector/view/ElectricMarkerDetailActivity.kt +++ b/app/src/main/java/com/casic/electric/detector/view/ElectricMarkerDetailActivity.kt @@ -4,8 +4,8 @@ import android.graphics.drawable.ColorDrawable import android.os.Bundle import android.view.Gravity -import com.casic.electric.detector.R import com.casic.electric.detector.bean.SmallLabelBean +import com.casic.electric.detector.databinding.ActivityElectricMarkerDetailBinding import com.casic.electric.detector.extensions.appendDownloadUrl import com.casic.electric.detector.utils.DataBaseManager import com.casic.electric.detector.utils.FileType @@ -15,13 +15,16 @@ import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show import com.pengxh.kt.lite.utils.Constant -import kotlinx.android.synthetic.main.activity_electric_marker_detail.* -class ElectricMarkerDetailActivity : KotlinBaseActivity() { +class ElectricMarkerDetailActivity : KotlinBaseActivity() { private lateinit var smallLabel: SmallLabelBean - override fun initData(savedInstanceState: Bundle?) { + override fun initViewBinding(): ActivityElectricMarkerDetailBinding { + return ActivityElectricMarkerDetailBinding.inflate(layoutInflater) + } + + override fun initOnCreate(savedInstanceState: Bundle?) { window.setBackgroundDrawable(ColorDrawable(Color.TRANSPARENT)) window.decorView.setBackgroundColor(Color.TRANSPARENT) window.setGravity(Gravity.CENTER) @@ -34,30 +37,30 @@ smallLabel = DataBaseManager.get.queryElectricMarkerById(electricMarkerId) - markerIdView.text = smallLabel.markerId - locationNumberView.text = smallLabel.locationNumber - locationNameView.text = smallLabel.locationName - electricMarkerIdView.text = smallLabel.electricMarkerId - cableNameView.text = smallLabel.cableName - cableNumberView.text = smallLabel.cableNumber - lineView.text = smallLabel.line - voltageLevelView.text = smallLabel.voltageLevel - cableTypeView.text = smallLabel.cableType - cableSpecView.text = smallLabel.cableSpec - cableBrandView.text = smallLabel.cableBrand - cableStartView.text = smallLabel.cableStart - cableEndView.text = smallLabel.cableEnd - hasJointView.text = smallLabel.hasJoint - jointCreatorView.text = smallLabel.jointCreator - memo1View.text = smallLabel.memo1 - memo2View.text = smallLabel.memo2 - memo3View.text = smallLabel.memo3 + binding.markerIdView.text = smallLabel.markerId + binding.locationNumberView.text = smallLabel.locationNumber + binding.locationNameView.text = smallLabel.locationName + binding.electricMarkerIdView.text = smallLabel.electricMarkerId + binding.cableNameView.text = smallLabel.cableName + binding.cableNumberView.text = smallLabel.cableNumber + binding.lineView.text = smallLabel.line + binding.voltageLevelView.text = smallLabel.voltageLevel + binding.cableTypeView.text = smallLabel.cableType + binding.cableSpecView.text = smallLabel.cableSpec + binding.cableBrandView.text = smallLabel.cableBrand + binding.cableStartView.text = smallLabel.cableStart + binding.cableEndView.text = smallLabel.cableEnd + binding.hasJointView.text = smallLabel.hasJoint + binding.jointCreatorView.text = smallLabel.jointCreator + binding.memo1View.text = smallLabel.memo1 + binding.memo2View.text = smallLabel.memo2 + binding.memo3View.text = smallLabel.memo3 } override fun initEvent() { - closeView.setOnClickListener { finish() } + binding.closeView.setOnClickListener { finish() } - showImageView.setOnClickListener { + binding.showImageView.setOnClickListener { //查数据库 if (smallLabel.imagePath.isNullOrEmpty()) { "此标识器无图片".show(this) @@ -84,8 +87,6 @@ } } - override fun initLayoutView(): Int = R.layout.activity_electric_marker_detail - override fun observeRequestState() { } diff --git a/app/src/main/java/com/casic/electric/detector/view/InstallLabelActivity.kt b/app/src/main/java/com/casic/electric/detector/view/InstallLabelActivity.kt index 07626d6..d3a89ca 100644 --- a/app/src/main/java/com/casic/electric/detector/view/InstallLabelActivity.kt +++ b/app/src/main/java/com/casic/electric/detector/view/InstallLabelActivity.kt @@ -25,6 +25,7 @@ import com.casic.electric.detector.base.SerialPortActivity import com.casic.electric.detector.callback.ILocationListener import com.casic.electric.detector.callback.OnImageCompressListener +import com.casic.electric.detector.databinding.ActivityInstallLabelBinding import com.casic.electric.detector.extensions.* import com.casic.electric.detector.utils.* import com.casic.electric.detector.vm.TaskViewModel @@ -38,11 +39,6 @@ import com.pengxh.kt.lite.utils.WeakReferenceHandler import com.pengxh.kt.lite.vm.LoadState import com.pengxh.kt.lite.widget.dialog.NoNetworkDialog -import kotlinx.android.synthetic.main.activity_install_label.* -import kotlinx.android.synthetic.main.include_base_title.* -import kotlinx.android.synthetic.main.include_label_marker_attribute.* -import kotlinx.android.synthetic.main.include_label_object_attribute.* -import kotlinx.android.synthetic.main.include_open_camera.* import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.launch import kotlinx.coroutines.withContext @@ -51,7 +47,7 @@ import java.util.* @SuppressLint("SetTextI18n") -class InstallLabelActivity : SerialPortActivity(), Handler.Callback { +class InstallLabelActivity : SerialPortActivity(), Handler.Callback { private val kTag = "LabelActivity" private val context: Context = this@InstallLabelActivity @@ -64,20 +60,22 @@ private lateinit var imageAdapter: EditableImageAdapter private lateinit var taskViewModel: TaskViewModel - override fun initLayoutView(): Int = R.layout.activity_install_label + override fun initViewBinding(): ActivityInstallLabelBinding { + return ActivityInstallLabelBinding.inflate(layoutInflater) + } override fun setupTopBarLayout() { - titleView.text = "安装新标识器" - titleView.setTextColor(R.color.themeColor.convertColor(this)) + binding.titleInclude.titleView.text = "安装新标识器" + binding.titleInclude.titleView.setTextColor(R.color.themeColor.convertColor(this)) ImmersionBar.with(this) .statusBarDarkFont(true) .statusBarColor(R.color.mainBackground) .init() - initLayoutImmersionBar(rootView) + initLayoutImmersionBar(binding.rootView) } - override fun initData(savedInstanceState: Bundle?) { + override fun initOnCreate(savedInstanceState: Bundle?) { window.setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN or WindowManager.LayoutParams.SOFT_INPUT_ADJUST_PAN) weakReferenceHandler = WeakReferenceHandler(this) @@ -92,44 +90,44 @@ .build() //设置上次填写过的值 - objectCodeView.setText("objectCodeView".getDefaultValue()) - objectNameView.setText("objectNameView".getDefaultValue()) - inlineNameView.setText("inlineNameView".getDefaultValue()) - capacityView.setText("capacityView".getDefaultValue()) - transformerSpecView.setText("transformerSpecView".getDefaultValue()) - sLengthView.setText("sLengthView".getDefaultValue()) - sWidthView.setText("sWidthView".getDefaultValue()) - sHeightView.setText("sHeightView".getDefaultValue()) - inlineCountView.setText("inlineCountView".getDefaultValue()) - outlineCountView.setText("outlineCountView".getDefaultValue()) - bottomDepthView.setText("bottomDepthView".getDefaultValue()) - rowCountView.setText("rowCountView".getDefaultValue()) - rowHoleCountView.setText("rowHoleCountView".getDefaultValue()) - coverDepthView.setText("coverDepthView".getDefaultValue()) - remainingChannelsView.setText("remainingChannelsView".getDefaultValue()) - tieCableView1.setText("tieCableView1".getDefaultValue()) - tieCableView2.setText("tieCableView2".getDefaultValue()) - jointCountView.setText("jointCountView".getDefaultValue()) - casingHoleCountView.setText("casingHoleCountView".getDefaultValue()) - casingHoleDiameterView.setText("casingHoleDiameterView".getDefaultValue()) - heightView.setText("heightView".getDefaultValue()) - lineNumberView.setText("lineNumberView".getDefaultValue()) - inspectionUnitView.setText("inspectionUnitView".getDefaultValue()) - areaView.setText("areaView".getDefaultValue()) - roadView.setText("roadView".getDefaultValue()) - objectRemarkView1.setText("objectRemarkView1".getDefaultValue()) - objectRemarkView2.setText("objectRemarkView2".getDefaultValue()) - objectRemarkView3.setText("objectRemarkView3".getDefaultValue()) - ownerView.setText("ownerView".getDefaultValue()) - markerDepthView.setText("markerDepthView".getDefaultValue()) - markerCountView.setText("markerCountView".getDefaultValue()) - remarkView1.setText("remarkView1".getDefaultValue()) - remarkView2.setText("remarkView2".getDefaultValue()) - remarkView3.setText("remarkView3".getDefaultValue()) + binding.objectAttrInclude.objectCodeView.setText("objectCodeView".getDefaultValue()) + binding.objectAttrInclude.objectNameView.setText("objectNameView".getDefaultValue()) + binding.objectAttrInclude.inlineNameView.setText("inlineNameView".getDefaultValue()) + binding.objectAttrInclude.capacityView.setText("capacityView".getDefaultValue()) + binding.objectAttrInclude.transformerSpecView.setText("transformerSpecView".getDefaultValue()) + binding.objectAttrInclude.sLengthView.setText("sLengthView".getDefaultValue()) + binding.objectAttrInclude.sWidthView.setText("sWidthView".getDefaultValue()) + binding.objectAttrInclude.sHeightView.setText("sHeightView".getDefaultValue()) + binding.objectAttrInclude.inlineCountView.setText("inlineCountView".getDefaultValue()) + binding.objectAttrInclude.outlineCountView.setText("outlineCountView".getDefaultValue()) + binding.objectAttrInclude.bottomDepthView.setText("bottomDepthView".getDefaultValue()) + binding.objectAttrInclude.rowCountView.setText("rowCountView".getDefaultValue()) + binding.objectAttrInclude.rowHoleCountView.setText("rowHoleCountView".getDefaultValue()) + binding.objectAttrInclude.coverDepthView.setText("coverDepthView".getDefaultValue()) + binding.objectAttrInclude.remainingChannelsView.setText("remainingChannelsView".getDefaultValue()) + binding.objectAttrInclude.tieCableView1.setText("tieCableView1".getDefaultValue()) + binding.objectAttrInclude.tieCableView2.setText("tieCableView2".getDefaultValue()) + binding.objectAttrInclude.jointCountView.setText("jointCountView".getDefaultValue()) + binding.objectAttrInclude.casingHoleCountView.setText("casingHoleCountView".getDefaultValue()) + binding.objectAttrInclude.casingHoleDiameterView.setText("casingHoleDiameterView".getDefaultValue()) + binding.objectAttrInclude.heightView.setText("heightView".getDefaultValue()) + binding.objectAttrInclude.lineNumberView.setText("lineNumberView".getDefaultValue()) + binding.objectAttrInclude.inspectionUnitView.setText("inspectionUnitView".getDefaultValue()) + binding.objectAttrInclude.areaView.setText("areaView".getDefaultValue()) + binding.objectAttrInclude.roadView.setText("roadView".getDefaultValue()) + binding.objectAttrInclude.objectRemarkView1.setText("objectRemarkView1".getDefaultValue()) + binding.objectAttrInclude.objectRemarkView2.setText("objectRemarkView2".getDefaultValue()) + binding.objectAttrInclude.objectRemarkView3.setText("objectRemarkView3".getDefaultValue()) + binding.markerAttrInclude.ownerView.setText("ownerView".getDefaultValue()) + binding.markerAttrInclude.markerDepthView.setText("markerDepthView".getDefaultValue()) + binding.markerAttrInclude.markerCountView.setText("markerCountView".getDefaultValue()) + binding.markerAttrInclude.remarkView1.setText("remarkView1".getDefaultValue()) + binding.markerAttrInclude.remarkView2.setText("remarkView2".getDefaultValue()) + binding.markerAttrInclude.remarkView3.setText("remarkView3".getDefaultValue()) //初始化图片九宫格 imageAdapter = EditableImageAdapter(this, 3, 3f) - addImageRecyclerView.adapter = imageAdapter + binding.cameraInclude.addImageRecyclerView.adapter = imageAdapter taskViewModel = ViewModelProvider(this)[TaskViewModel::class.java] } @@ -142,101 +140,120 @@ LoadingDialogHub.dismiss() finish() } + else -> LoadingDialogHub.dismiss() } } } override fun initEvent() { - leftBackView.setOnClickListener { finish() } + binding.titleInclude.leftBackView.setOnClickListener { finish() } /**************************************************************************************/ - objectTypeSpinner.show(this, LocaleConstant.CONTENT_ARRAY, 0) - objectTypeSpinner.onItemSelectedListener = object : AdapterView.OnItemSelectedListener { - override fun onItemSelected( - parent: AdapterView<*>?, view: View?, position: Int, id: Long - ) { - when (position) { - 0 -> { - //选择电缆井 - objectModeView.text = "类型:" - wellCoverMaterialView.text = "井盖材质:" - bottomDepthNameView.text = "井深:" - setLayoutVisibility( - View.VISIBLE, View.GONE, View.VISIBLE, View.GONE, View.VISIBLE, - View.GONE, View.GONE, View.VISIBLE, View.GONE, View.VISIBLE, - View.GONE - ) - objectModeSpinner.show( - this@InstallLabelActivity, LocaleConstant.OBJECT_MODE_ARRAY, 0 - ) - wellCoverMaterialSpinner.show( - this@InstallLabelActivity, LocaleConstant.WELL_COVER_MATERIAL_ARRAY_1, 0 - ) + binding.objectAttrInclude.objectTypeSpinner.show(this, LocaleConstant.CONTENT_ARRAY, 0) + binding.objectAttrInclude.objectTypeSpinner.onItemSelectedListener = + object : AdapterView.OnItemSelectedListener { + override fun onItemSelected( + parent: AdapterView<*>?, view: View?, position: Int, id: Long + ) { + when (position) { + 0 -> { + //选择电缆井 + binding.objectAttrInclude.objectModeView.text = "类型:" + binding.objectAttrInclude.wellCoverMaterialView.text = "井盖材质:" + binding.objectAttrInclude.bottomDepthNameView.text = "井深:" + setLayoutVisibility( + View.VISIBLE, View.GONE, View.VISIBLE, View.GONE, View.VISIBLE, + View.GONE, View.GONE, View.VISIBLE, View.GONE, View.VISIBLE, + View.GONE + ) + binding.objectAttrInclude.objectModeSpinner.show( + this@InstallLabelActivity, LocaleConstant.OBJECT_MODE_ARRAY, 0 + ) + binding.objectAttrInclude.wellCoverMaterialSpinner.show( + this@InstallLabelActivity, + LocaleConstant.WELL_COVER_MATERIAL_ARRAY_1, + 0 + ) + } + + 1 -> { + //选择电缆通道 + binding.objectAttrInclude.bottomDepthNameView.text = "底部深度:" + setLayoutVisibility( + View.GONE, View.GONE, View.GONE, View.GONE, View.GONE, + View.GONE, View.GONE, View.VISIBLE, View.VISIBLE, View.VISIBLE, + View.GONE + ) + } + + 2 -> { + //选择配电房 + setLayoutVisibility( + View.GONE, View.GONE, View.GONE, View.VISIBLE, View.VISIBLE, + View.VISIBLE, View.GONE, View.GONE, View.GONE, View.GONE, + View.GONE + ) + } + + 3 -> { + //选择开关站 + setLayoutVisibility( + View.GONE, View.GONE, View.GONE, View.GONE, View.VISIBLE, + View.VISIBLE, View.VISIBLE, View.GONE, View.GONE, View.GONE, + View.GONE + ) + } + + 4 -> { + //选择台区 + binding.objectAttrInclude.objectModeView.text = "变压器型号:" + setLayoutVisibility( + View.VISIBLE, View.VISIBLE, View.GONE, View.GONE, View.GONE, + View.GONE, View.GONE, View.GONE, View.GONE, View.GONE, + View.GONE + ) + binding.objectAttrInclude.objectModeSpinner.show( + this@InstallLabelActivity, arrayOf("变压器 KVA"), 0 + ) + } + + 5 -> { + //选择杆塔 + binding.objectAttrInclude.wellCoverMaterialView.text = "对象材质:" + setLayoutVisibility( + View.GONE, View.GONE, View.VISIBLE, View.GONE, View.GONE, + View.GONE, View.GONE, View.GONE, View.GONE, View.GONE, + View.VISIBLE + ) + binding.objectAttrInclude.wellCoverMaterialSpinner.show( + this@InstallLabelActivity, + LocaleConstant.WELL_COVER_MATERIAL_ARRAY_2, + 0 + ) + } } - 1 -> { - //选择电缆通道 - bottomDepthNameView.text = "底部深度:" - setLayoutVisibility( - View.GONE, View.GONE, View.GONE, View.GONE, View.GONE, - View.GONE, View.GONE, View.VISIBLE, View.VISIBLE, View.VISIBLE, - View.GONE - ) - } - 2 -> { - //选择配电房 - setLayoutVisibility( - View.GONE, View.GONE, View.GONE, View.VISIBLE, View.VISIBLE, - View.VISIBLE, View.GONE, View.GONE, View.GONE, View.GONE, - View.GONE - ) - } - 3 -> { - //选择开关站 - setLayoutVisibility( - View.GONE, View.GONE, View.GONE, View.GONE, View.VISIBLE, - View.VISIBLE, View.VISIBLE, View.GONE, View.GONE, View.GONE, - View.GONE - ) - } - 4 -> { - //选择台区 - objectModeView.text = "变压器型号:" - setLayoutVisibility( - View.VISIBLE, View.VISIBLE, View.GONE, View.GONE, View.GONE, - View.GONE, View.GONE, View.GONE, View.GONE, View.GONE, - View.GONE - ) - objectModeSpinner.show( - this@InstallLabelActivity, arrayOf("变压器 KVA"), 0 - ) - } - 5 -> { - //选择杆塔 - wellCoverMaterialView.text = "对象材质:" - setLayoutVisibility( - View.GONE, View.GONE, View.VISIBLE, View.GONE, View.GONE, - View.GONE, View.GONE, View.GONE, View.GONE, View.GONE, - View.VISIBLE - ) - wellCoverMaterialSpinner.show( - this@InstallLabelActivity, LocaleConstant.WELL_COVER_MATERIAL_ARRAY_2, 0 - ) - } + } + + override fun onNothingSelected(parent: AdapterView<*>?) { + } } - override fun onNothingSelected(parent: AdapterView<*>?) { - - } - } - - cabinetTypeSpinner.show(this, LocaleConstant.CABINET_TYPE_ARRAY, 0) - casingMaterialSpinner.show(this, LocaleConstant.PIPE_MATERIAL_ARRAY, 0) - markerTypeSpinner.show(this, LocaleConstant.MARKER_TYPE_ARRAY, 0) + binding.objectAttrInclude.cabinetTypeSpinner.show( + this, + LocaleConstant.CABINET_TYPE_ARRAY, + 0 + ) + binding.objectAttrInclude.casingMaterialSpinner.show( + this, + LocaleConstant.PIPE_MATERIAL_ARRAY, + 0 + ) + binding.markerAttrInclude.markerTypeSpinner.show(this, LocaleConstant.MARKER_TYPE_ARRAY, 0) //电压等级-多选 - voltageLevelView.setOnClickListener { + binding.objectAttrInclude.voltageLevelView.setOnClickListener { AlertDialog.Builder(context) .setCancelable(false) .setIcon(R.mipmap.ic_launcher) @@ -255,12 +272,12 @@ } } - voltageLevelView.text = temp.reformat() + binding.objectAttrInclude.voltageLevelView.text = temp.reformat() }.show() } //交叉管道类型-多选 - crossPipeLineView.setOnClickListener { + binding.objectAttrInclude.crossPipeLineView.setOnClickListener { AlertDialog.Builder(context) .setCancelable(false) .setIcon(R.mipmap.ic_launcher) @@ -279,11 +296,11 @@ } } - crossPipeLineView.text = temp.reformat() + binding.objectAttrInclude.crossPipeLineView.text = temp.reformat() }.show() } - constructDateView.setOnClickListener { + binding.objectAttrInclude.constructDateView.setOnClickListener { val datePicker = DatePickerDialog( this, null, @@ -308,17 +325,18 @@ "建设年代不能早于当前日期".show(context) } else { datePicker.dismiss() - constructDateView.text = selectedDate + binding.objectAttrInclude.constructDateView.text = selectedDate } } } - installTimeView.text = System.currentTimeMillis().timestampToCompleteDate() + binding.markerAttrInclude.installTimeView.text = + System.currentTimeMillis().timestampToCompleteDate() LocationHub.getCurrentLocation(this, object : ILocationListener { override fun onAMapLocationGet(location: AMapLocation?) { if (location != null) { - lngView.text = location.longitude.toString() - latView.text = location.latitude.toString() + binding.markerAttrInclude.lngView.text = location.longitude.toString() + binding.markerAttrInclude.latView.text = location.latitude.toString() } else { "当前位置信号差,无法获取定位".show(context) } @@ -358,109 +376,109 @@ }) /**************************************************************************************/ - installButton.setOnClickListener { + binding.installButton.setOnClickListener { if (isNetworkConnected()) { val companyId = SaveKeyValues.getValue(LocaleConstant.USER_COMPANY_ID, "") as String - val itemPosition = objectTypeSpinner.selectedItemPosition + val itemPosition = binding.objectAttrInclude.objectTypeSpinner.selectedItemPosition val objectTypeCode = itemPosition + 1 - if (markerIdView.text.isNullOrBlank()) { + if (binding.markerAttrInclude.markerIdView.text.isNullOrBlank()) { "标识器ID不能为空,请读标识器".show(this) return@setOnClickListener } - if (constructDateView.text.isNullOrBlank()) { + if (binding.objectAttrInclude.constructDateView.text.isNullOrBlank()) { "请选择建设时间".show(this) return@setOnClickListener } - if (markerCountView.text.isNullOrBlank()) { + if (binding.markerAttrInclude.markerCountView.text.isNullOrBlank()) { "请输入电子标签数量".show(this) return@setOnClickListener } //保存默认值 - "objectCodeView".setDefaultValue(objectCodeView) - "objectNameView".setDefaultValue(objectNameView) - "inlineNameView".setDefaultValue(inlineNameView) - "capacityView".setDefaultValue(capacityView) - "transformerSpecView".setDefaultValue(transformerSpecView) - "sLengthView".setDefaultValue(sLengthView) - "sWidthView".setDefaultValue(sWidthView) - "sHeightView".setDefaultValue(sHeightView) - "inlineCountView".setDefaultValue(inlineCountView) - "outlineCountView".setDefaultValue(outlineCountView) - "bottomDepthView".setDefaultValue(bottomDepthView) - "rowCountView".setDefaultValue(rowCountView) - "rowHoleCountView".setDefaultValue(rowHoleCountView) - "coverDepthView".setDefaultValue(coverDepthView) - "remainingChannelsView".setDefaultValue(remainingChannelsView) - "tieCableView1".setDefaultValue(tieCableView1) - "tieCableView2".setDefaultValue(tieCableView2) - "jointCountView".setDefaultValue(jointCountView) - "casingHoleCountView".setDefaultValue(casingHoleCountView) - "casingHoleDiameterView".setDefaultValue(casingHoleDiameterView) - "heightView".setDefaultValue(heightView) - "lineNumberView".setDefaultValue(lineNumberView) - "inspectionUnitView".setDefaultValue(inspectionUnitView) - "areaView".setDefaultValue(areaView) - "roadView".setDefaultValue(roadView) - "objectRemarkView1".setDefaultValue(objectRemarkView1) - "objectRemarkView2".setDefaultValue(objectRemarkView2) - "objectRemarkView3".setDefaultValue(objectRemarkView3) - "ownerView".setDefaultValue(ownerView) - "markerDepthView".setDefaultValue(markerDepthView) - "markerCountView".setDefaultValue(markerCountView) - "remarkView1".setDefaultValue(remarkView1) - "remarkView2".setDefaultValue(remarkView2) - "remarkView3".setDefaultValue(remarkView3) + "objectCodeView".setDefaultValue(binding.objectAttrInclude.objectCodeView) + "objectNameView".setDefaultValue(binding.objectAttrInclude.objectNameView) + "inlineNameView".setDefaultValue(binding.objectAttrInclude.inlineNameView) + "capacityView".setDefaultValue(binding.objectAttrInclude.capacityView) + "transformerSpecView".setDefaultValue(binding.objectAttrInclude.transformerSpecView) + "sLengthView".setDefaultValue(binding.objectAttrInclude.sLengthView) + "sWidthView".setDefaultValue(binding.objectAttrInclude.sWidthView) + "sHeightView".setDefaultValue(binding.objectAttrInclude.sHeightView) + "inlineCountView".setDefaultValue(binding.objectAttrInclude.inlineCountView) + "outlineCountView".setDefaultValue(binding.objectAttrInclude.outlineCountView) + "bottomDepthView".setDefaultValue(binding.objectAttrInclude.bottomDepthView) + "rowCountView".setDefaultValue(binding.objectAttrInclude.rowCountView) + "rowHoleCountView".setDefaultValue(binding.objectAttrInclude.rowHoleCountView) + "coverDepthView".setDefaultValue(binding.objectAttrInclude.coverDepthView) + "remainingChannelsView".setDefaultValue(binding.objectAttrInclude.remainingChannelsView) + "tieCableView1".setDefaultValue(binding.objectAttrInclude.tieCableView1) + "tieCableView2".setDefaultValue(binding.objectAttrInclude.tieCableView2) + "jointCountView".setDefaultValue(binding.objectAttrInclude.jointCountView) + "casingHoleCountView".setDefaultValue(binding.objectAttrInclude.casingHoleCountView) + "casingHoleDiameterView".setDefaultValue(binding.objectAttrInclude.casingHoleDiameterView) + "heightView".setDefaultValue(binding.objectAttrInclude.heightView) + "lineNumberView".setDefaultValue(binding.objectAttrInclude.lineNumberView) + "inspectionUnitView".setDefaultValue(binding.objectAttrInclude.inspectionUnitView) + "areaView".setDefaultValue(binding.objectAttrInclude.areaView) + "roadView".setDefaultValue(binding.objectAttrInclude.roadView) + "objectRemarkView1".setDefaultValue(binding.objectAttrInclude.objectRemarkView1) + "objectRemarkView2".setDefaultValue(binding.objectAttrInclude.objectRemarkView2) + "objectRemarkView3".setDefaultValue(binding.objectAttrInclude.objectRemarkView3) + "ownerView".setDefaultValue(binding.markerAttrInclude.ownerView) + "markerDepthView".setDefaultValue(binding.markerAttrInclude.markerDepthView) + "markerCountView".setDefaultValue(binding.markerAttrInclude.markerCountView) + "remarkView1".setDefaultValue(binding.markerAttrInclude.remarkView1) + "remarkView2".setDefaultValue(binding.markerAttrInclude.remarkView2) + "remarkView3".setDefaultValue(binding.markerAttrInclude.remarkView3) val labelData = LabelDataClass( companyId, objectTypeCode.toString(), - objectCodeView.text.toString(), - objectNameView.text.toString(), - voltageLevelView.text.toString(), - objectModeSpinner.selectedItem.toString(), - "进线${inlineNameView.text}", - wellCoverMaterialSpinner.selectedItem.toString(), - "${capacityView.text}KVA", - transformerSpecView.text.toString(), - "${sLengthView.text}米长 x ${sWidthView.text}米宽 x ${sHeightView.text}米高", - inlineCountView.text.toString(), - outlineCountView.text.toString(), - cabinetTypeSpinner.selectedItem.toString(), - bottomDepthView.text.toString(), - "${rowCountView.text}排 x ${rowHoleCountView.text}孔", - "${coverDepthView.text}米", - crossPipeLineView.text.toString(), - remainingChannelsView.text.toString(), - tieCableView1.text.toString(), - tieCableView2.text.toString(), - jointCountView.text.toString(), - casingMaterialSpinner.selectedItem.toString(), - "${casingHoleCountView.text}孔,直径${casingHoleDiameterView.text}毫米", - "${heightView.text.toString()}米", - lineNumberView.text.toString(), - constructDateView.text.toString(), - inspectionUnitView.text.toString(), - areaView.text.toString(), - roadView.text.toString(), - objectRemarkView1.text.toString(), - objectRemarkView2.text.toString(), - objectRemarkView3.text.toString(), - markerIdView.text.toString(), - markerTypeSpinner.selectedItem.toString(), - ownerView.text.toString(), - markerDepthView.text.toString(), - installTimeView.text.toString(), - lngView.text.toString(), - latView.text.toString(), - markerCountView.text.toString(), - remarkView1.text.toString(), - remarkView2.text.toString(), - remarkView3.text.toString(), + binding.objectAttrInclude.objectCodeView.text.toString(), + binding.objectAttrInclude.objectNameView.text.toString(), + binding.objectAttrInclude.voltageLevelView.text.toString(), + binding.objectAttrInclude.objectModeSpinner.selectedItem.toString(), + "进线${binding.objectAttrInclude.inlineNameView.text}", + binding.objectAttrInclude.wellCoverMaterialSpinner.selectedItem.toString(), + "${binding.objectAttrInclude.capacityView.text}KVA", + binding.objectAttrInclude.transformerSpecView.text.toString(), + "${binding.objectAttrInclude.sLengthView.text}米长 x ${binding.objectAttrInclude.sWidthView.text}米宽 x ${binding.objectAttrInclude.sHeightView.text}米高", + binding.objectAttrInclude.inlineCountView.text.toString(), + binding.objectAttrInclude.outlineCountView.text.toString(), + binding.objectAttrInclude.cabinetTypeSpinner.selectedItem.toString(), + binding.objectAttrInclude.bottomDepthView.text.toString(), + "${binding.objectAttrInclude.rowCountView.text}排 x ${binding.objectAttrInclude.rowHoleCountView.text}孔", + "${binding.objectAttrInclude.coverDepthView.text}米", + binding.objectAttrInclude.crossPipeLineView.text.toString(), + binding.objectAttrInclude.remainingChannelsView.text.toString(), + binding.objectAttrInclude.tieCableView1.text.toString(), + binding.objectAttrInclude.tieCableView2.text.toString(), + binding.objectAttrInclude.jointCountView.text.toString(), + binding.objectAttrInclude.casingMaterialSpinner.selectedItem.toString(), + "${binding.objectAttrInclude.casingHoleCountView.text}孔,直径${binding.objectAttrInclude.casingHoleDiameterView.text}毫米", + "${binding.objectAttrInclude.heightView.text.toString()}米", + binding.objectAttrInclude.lineNumberView.text.toString(), + binding.objectAttrInclude.constructDateView.text.toString(), + binding.objectAttrInclude.inspectionUnitView.text.toString(), + binding.objectAttrInclude.areaView.text.toString(), + binding.objectAttrInclude.roadView.text.toString(), + binding.objectAttrInclude.objectRemarkView1.text.toString(), + binding.objectAttrInclude.objectRemarkView2.text.toString(), + binding.objectAttrInclude.objectRemarkView3.text.toString(), + binding.markerAttrInclude.markerIdView.text.toString(), + binding.markerAttrInclude.markerTypeSpinner.selectedItem.toString(), + binding.markerAttrInclude.ownerView.text.toString(), + binding.markerAttrInclude.markerDepthView.text.toString(), + binding.markerAttrInclude.installTimeView.text.toString(), + binding.markerAttrInclude.lngView.text.toString(), + binding.markerAttrInclude.latView.text.toString(), + binding.markerAttrInclude.markerCountView.text.toString(), + binding.markerAttrInclude.remarkView1.text.toString(), + binding.markerAttrInclude.remarkView2.text.toString(), + binding.markerAttrInclude.remarkView3.text.toString(), realPaths ) @@ -486,7 +504,7 @@ } } - readLabelButton.setOnClickListener { + binding.readLabelButton.setOnClickListener { gpioManager.setGpioHigh("18") LoadingDialogHub.show(this, "标识器读取中,请稍后...") @@ -534,7 +552,7 @@ //查本地库 val result = DataBaseManager.get.queryLabelById(markerId) if (result.isEmpty()) { - markerIdView.text = markerId + binding.markerAttrInclude.markerIdView.text = markerId } else { "此标识器已安装,请更换标识器!".show(this) } @@ -560,17 +578,17 @@ //根据选择类型控制界面某些区域显隐 private fun setLayoutVisibility(vararg args: Int) { - objectModeLayout.visibility = args[0] - inlineNameLayout.visibility = args[1] - wellCoverMaterialLayout.visibility = args[2] - capacityLayout.visibility = args[3] - sizeLayout.visibility = args[4] - inlineCountLayout.visibility = args[5] - outlineCountLayout.visibility = args[6] - wellDepthLayout.visibility = args[7] - pipeLineLayout.visibility = args[8] - jointCountLayout.visibility = args[9] - heightLayout.visibility = args[10] + binding.objectAttrInclude.objectModeLayout.visibility = args[0] + binding.objectAttrInclude.inlineNameLayout.visibility = args[1] + binding.objectAttrInclude.wellCoverMaterialLayout.visibility = args[2] + binding.objectAttrInclude.capacityLayout.visibility = args[3] + binding.objectAttrInclude.sizeLayout.visibility = args[4] + binding.objectAttrInclude.inlineCountLayout.visibility = args[5] + binding.objectAttrInclude.outlineCountLayout.visibility = args[6] + binding.objectAttrInclude.wellDepthLayout.visibility = args[7] + binding.objectAttrInclude.pipeLineLayout.visibility = args[8] + binding.objectAttrInclude.jointCountLayout.visibility = args[9] + binding.objectAttrInclude.heightLayout.visibility = args[10] } override fun onDestroy() { diff --git a/app/src/main/java/com/casic/electric/detector/view/InstallSmallLabelActivity.kt b/app/src/main/java/com/casic/electric/detector/view/InstallSmallLabelActivity.kt index d6888ee..5bc2ac8 100644 --- a/app/src/main/java/com/casic/electric/detector/view/InstallSmallLabelActivity.kt +++ b/app/src/main/java/com/casic/electric/detector/view/InstallSmallLabelActivity.kt @@ -20,6 +20,7 @@ import com.casic.electric.detector.adapter.EditableImageAdapter import com.casic.electric.detector.base.SerialPortActivity import com.casic.electric.detector.callback.OnImageCompressListener +import com.casic.electric.detector.databinding.ActivityInstallSmallLabelBinding import com.casic.electric.detector.extensions.* import com.casic.electric.detector.utils.* import com.casic.electric.detector.vm.TaskViewModel @@ -36,18 +37,16 @@ import com.pengxh.kt.lite.utils.WeakReferenceHandler import com.pengxh.kt.lite.vm.LoadState import com.pengxh.kt.lite.widget.dialog.NoNetworkDialog -import kotlinx.android.synthetic.main.activity_install_small_label.* -import kotlinx.android.synthetic.main.include_base_title.* -import kotlinx.android.synthetic.main.include_open_camera.* -import kotlinx.android.synthetic.main.include_small_label_object_attribute.* import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.launch import kotlinx.coroutines.withContext import java.io.File +import java.io.FileWriter import java.io.IOException @SuppressLint("SetTextI18n") -class InstallSmallLabelActivity : SerialPortActivity(), Handler.Callback { +class InstallSmallLabelActivity : SerialPortActivity(), + Handler.Callback { private val kTag = "SmallLabelActivity" private val context: Context = this@InstallSmallLabelActivity @@ -59,20 +58,22 @@ private lateinit var imageAdapter: EditableImageAdapter private lateinit var taskViewModel: TaskViewModel - override fun initLayoutView(): Int = R.layout.activity_install_small_label + override fun initViewBinding(): ActivityInstallSmallLabelBinding { + return ActivityInstallSmallLabelBinding.inflate(layoutInflater) + } override fun setupTopBarLayout() { - titleView.text = "安装新电子标签" - titleView.setTextColor(R.color.themeColor.convertColor(this)) + binding.titleInclude.titleView.text = "安装新电子标签" + binding.titleInclude.titleView.setTextColor(R.color.themeColor.convertColor(this)) ImmersionBar.with(this) .statusBarDarkFont(true) .statusBarColor(R.color.mainBackground) .init() - initLayoutImmersionBar(rootView) + initLayoutImmersionBar(binding.rootView) } - override fun initData(savedInstanceState: Bundle?) { + override fun initOnCreate(savedInstanceState: Bundle?) { window.setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN or WindowManager.LayoutParams.SOFT_INPUT_ADJUST_PAN) weakReferenceHandler = WeakReferenceHandler(this) @@ -87,23 +88,23 @@ .build() //设置上次填写过的值 - cableNumberView.setText("cableNumberView".getDefaultValue()) - cableNameView.setText("cableNameView".getDefaultValue()) - lineView.setText("lineView".getDefaultValue()) - voltageLevelView.setText("voltageLevelView".getDefaultValue()) - cableModelView.setText("cableModelView".getDefaultValue()) - cableSpecView.setText("cableSpecView".getDefaultValue()) - cableBrandView.setText("cableBrandView".getDefaultValue()) - cableStartView.setText("cableStartView".getDefaultValue()) - cableEndView.setText("cableEndView".getDefaultValue()) - jointCreatorView.setText("jointCreatorView".getDefaultValue()) - objectRemarkView1.setText("objectRemarkView1".getDefaultValue()) - objectRemarkView2.setText("objectRemarkView2".getDefaultValue()) - objectRemarkView3.setText("objectRemarkView3".getDefaultValue()) + binding.objectAttrInclude.cableNumberView.setText("cableNumberView".getDefaultValue()) + binding.objectAttrInclude.cableNameView.setText("cableNameView".getDefaultValue()) + binding.objectAttrInclude.lineView.setText("lineView".getDefaultValue()) + binding.objectAttrInclude.voltageLevelView.setText("voltageLevelView".getDefaultValue()) + binding.objectAttrInclude.cableModelView.setText("cableModelView".getDefaultValue()) + binding.objectAttrInclude.cableSpecView.setText("cableSpecView".getDefaultValue()) + binding.objectAttrInclude.cableBrandView.setText("cableBrandView".getDefaultValue()) + binding.objectAttrInclude.cableStartView.setText("cableStartView".getDefaultValue()) + binding.objectAttrInclude.cableEndView.setText("cableEndView".getDefaultValue()) + binding.objectAttrInclude.jointCreatorView.setText("jointCreatorView".getDefaultValue()) + binding.objectAttrInclude.objectRemarkView1.setText("objectRemarkView1".getDefaultValue()) + binding.objectAttrInclude.objectRemarkView2.setText("objectRemarkView2".getDefaultValue()) + binding.objectAttrInclude.objectRemarkView3.setText("objectRemarkView3".getDefaultValue()) //初始化图片九宫格 imageAdapter = EditableImageAdapter(this, 3, 3f) - addImageRecyclerView.adapter = imageAdapter + binding.cameraInclude.addImageRecyclerView.adapter = imageAdapter taskViewModel = ViewModelProvider(this)[TaskViewModel::class.java] } @@ -116,20 +117,31 @@ LoadingDialogHub.dismiss() finish() } + else -> LoadingDialogHub.dismiss() } } } override fun initEvent() { - leftBackView.setOnClickListener { finish() } + binding.titleInclude.leftBackView.setOnClickListener { finish() } /**************************************************************************************/ //TODO 读取电子标签为未实现 - readElectricTagButton.setOnClickListener { - gpioManager.setGpioHigh("18") + var fileWriter: FileWriter + try { + fileWriter = FileWriter("/sys/class/newmobi_gpio/newmobi_gpio/Gpio") + fileWriter.write("99") + fileWriter.close() + } catch (e: Exception) { + e.printStackTrace() + } + + gpioManager.setGpioHigh("21") + + binding.readElectricTagButton.setOnClickListener { LoadingDialogHub.show(this, "电子标签读取中,请稍后...") soundResId = soundPool.load(this, R.raw.ring3, 1) @@ -141,32 +153,34 @@ weakReferenceHandler.postDelayed({ try { // 发送读标识器或搜索信号 - outputStream?.write("00".toByteArray()) - outputStream?.flush() + fileWriter = FileWriter("/sys/class/newmobi_gpio/newmobi_gpio/Gpio_inout") + fileWriter.write("01") + fileWriter.close() } catch (e: IOException) { e.printStackTrace() } - }, 1000) + }, 500) } - bindMarkerSpinner.show(this, arrayOf("是", "否"), 0) - bindMarkerSpinner.onItemSelectedListener = object : AdapterView.OnItemSelectedListener { - override fun onItemSelected( - parent: AdapterView<*>?, view: View?, position: Int, id: Long - ) { - if (position == 0) { - markerLayout.visibility = View.VISIBLE - } else { - markerLayout.visibility = View.GONE + binding.objectAttrInclude.bindMarkerSpinner.show(this, arrayOf("是", "否"), 0) + binding.objectAttrInclude.bindMarkerSpinner.onItemSelectedListener = + object : AdapterView.OnItemSelectedListener { + override fun onItemSelected( + parent: AdapterView<*>?, view: View?, position: Int, id: Long + ) { + if (position == 0) { + binding.objectAttrInclude.markerLayout.visibility = View.VISIBLE + } else { + binding.objectAttrInclude.markerLayout.visibility = View.GONE + } + } + + override fun onNothingSelected(parent: AdapterView<*>?) { + } } - override fun onNothingSelected(parent: AdapterView<*>?) { - - } - } - - middleJointSpinner.show(this, arrayOf("有", "无"), 0) + binding.objectAttrInclude.middleJointSpinner.show(this, arrayOf("有", "无"), 0) imageAdapter.setOnItemClickListener(object : EditableImageAdapter.OnItemClickListener { override fun onAddImageClick() { @@ -201,60 +215,60 @@ }) /**************************************************************************************/ - installButton.setOnClickListener { + binding.installButton.setOnClickListener { if (isNetworkConnected()) { val companyId = SaveKeyValues.getValue(LocaleConstant.USER_COMPANY_ID, "") as String - if (markerIdView.text.isNullOrBlank()) { + if (binding.objectAttrInclude.markerIdView.text.isNullOrBlank()) { "标识器ID不能为空,请读标识器".show(this) return@setOnClickListener } - if (smallLabelIdView.text.isNullOrBlank()) { + if (binding.objectAttrInclude.smallLabelIdView.text.isNullOrBlank()) { "电子标签ID不能为空,请读电子标签".show(this) return@setOnClickListener } - if (voltageLevelView.text.isNullOrBlank()) { + if (binding.objectAttrInclude.voltageLevelView.text.isNullOrBlank()) { "电压等级不能为空,请输入电压等级".show(this) return@setOnClickListener } //保存默认值 - "cableNumberView".setDefaultValue(cableNumberView) - "cableNameView".setDefaultValue(cableNameView) - "lineView".setDefaultValue(lineView) - "voltageLevelView".setDefaultValue(voltageLevelView) - "cableModelView".setDefaultValue(cableModelView) - "cableSpecView".setDefaultValue(cableSpecView) - "cableBrandView".setDefaultValue(cableBrandView) - "cableStartView".setDefaultValue(cableStartView) - "cableEndView".setDefaultValue(cableEndView) - "jointCreatorView".setDefaultValue(jointCreatorView) - "objectRemarkView1".setDefaultValue(objectRemarkView1) - "objectRemarkView2".setDefaultValue(objectRemarkView2) - "objectRemarkView3".setDefaultValue(objectRemarkView3) + "cableNumberView".setDefaultValue(binding.objectAttrInclude.cableNumberView) + "cableNameView".setDefaultValue(binding.objectAttrInclude.cableNameView) + "lineView".setDefaultValue(binding.objectAttrInclude.lineView) + "voltageLevelView".setDefaultValue(binding.objectAttrInclude.voltageLevelView) + "cableModelView".setDefaultValue(binding.objectAttrInclude.cableModelView) + "cableSpecView".setDefaultValue(binding.objectAttrInclude.cableSpecView) + "cableBrandView".setDefaultValue(binding.objectAttrInclude.cableBrandView) + "cableStartView".setDefaultValue(binding.objectAttrInclude.cableStartView) + "cableEndView".setDefaultValue(binding.objectAttrInclude.cableEndView) + "jointCreatorView".setDefaultValue(binding.objectAttrInclude.jointCreatorView) + "objectRemarkView1".setDefaultValue(binding.objectAttrInclude.objectRemarkView1) + "objectRemarkView2".setDefaultValue(binding.objectAttrInclude.objectRemarkView2) + "objectRemarkView3".setDefaultValue(binding.objectAttrInclude.objectRemarkView3) val smallLabelData = SmallLabelDataClass( companyId, - markerIdView.text.toString(), - markerNumberView.text.toString(), - markerNameView.text.toString(), - smallLabelIdView.text.toString(), - cableNameView.toString(), - cableNumberView.toString(), - lineView.text.toString(), - voltageLevelView.toString(), - cableModelView.text.toString(), - cableSpecView.text.toString(), - cableBrandView.text.toString(), - cableStartView.text.toString(), - cableEndView.text.toString(), - middleJointSpinner.selectedItem.toString(), - jointCreatorView.text.toString(), - objectRemarkView1.text.toString(), - objectRemarkView2.text.toString(), - objectRemarkView3.text.toString(), + binding.objectAttrInclude.markerIdView.text.toString(), + binding.objectAttrInclude.markerNumberView.text.toString(), + binding.objectAttrInclude.markerNameView.text.toString(), + binding.objectAttrInclude.smallLabelIdView.text.toString(), + binding.objectAttrInclude.cableNameView.toString(), + binding.objectAttrInclude.cableNumberView.toString(), + binding.objectAttrInclude.lineView.text.toString(), + binding.objectAttrInclude.voltageLevelView.toString(), + binding.objectAttrInclude.cableModelView.text.toString(), + binding.objectAttrInclude.cableSpecView.text.toString(), + binding.objectAttrInclude.cableBrandView.text.toString(), + binding.objectAttrInclude.cableStartView.text.toString(), + binding.objectAttrInclude.cableEndView.text.toString(), + binding.objectAttrInclude.middleJointSpinner.selectedItem.toString(), + binding.objectAttrInclude.jointCreatorView.text.toString(), + binding.objectAttrInclude.objectRemarkView1.text.toString(), + binding.objectAttrInclude.objectRemarkView2.text.toString(), + binding.objectAttrInclude.objectRemarkView3.text.toString(), realPaths ) @@ -280,7 +294,7 @@ } } - readLabelButton.setOnClickListener { + binding.readLabelButton.setOnClickListener { gpioManager.setGpioHigh("18") LoadingDialogHub.show(this, "标识器读取中,请稍后...") @@ -328,7 +342,7 @@ //查本地库 val result = DataBaseManager.get.queryLabelById(markerId) if (result.isEmpty()) { - markerIdView.text = markerId + binding.objectAttrInclude.markerIdView.text = markerId } else { "此标识器已安装,请更换标识器!".show(this) } diff --git a/app/src/main/java/com/casic/electric/detector/view/LoginActivity.kt b/app/src/main/java/com/casic/electric/detector/view/LoginActivity.kt index f521ffd..44d56ef 100644 --- a/app/src/main/java/com/casic/electric/detector/view/LoginActivity.kt +++ b/app/src/main/java/com/casic/electric/detector/view/LoginActivity.kt @@ -4,7 +4,7 @@ import android.util.Log import androidx.lifecycle.ViewModelProvider import com.amap.api.navi.NaviSetting -import com.casic.electric.detector.R +import com.casic.electric.detector.databinding.ActivityLoginBinding import com.casic.electric.detector.extensions.initLayoutImmersionBar import com.casic.electric.detector.utils.GpioManager import com.casic.electric.detector.utils.LoadingDialogHub @@ -18,21 +18,24 @@ import com.pengxh.kt.lite.utils.SaveKeyValues import com.pengxh.kt.lite.vm.LoadState import com.pengxh.kt.lite.widget.dialog.AlertMessageDialog -import kotlinx.android.synthetic.main.activity_login.* -class LoginActivity : KotlinBaseActivity() { +class LoginActivity : KotlinBaseActivity() { private val kTag = "LoginActivity" private lateinit var userViewModel: UserViewModel private val gpioManager by lazy { GpioManager() } - override fun initData(savedInstanceState: Bundle?) { + override fun initViewBinding(): ActivityLoginBinding { + return ActivityLoginBinding.inflate(layoutInflater) + } + + override fun initOnCreate(savedInstanceState: Bundle?) { gpioManager.setGpioLow("18") //先把导航隐私政策声明,后面导航会用到 NaviSetting.updatePrivacyShow(this, true, true) NaviSetting.updatePrivacyAgree(this, true) - autoSavePasswordView.isChecked = + binding.autoSavePasswordView.isChecked = SaveKeyValues.getValue(LocaleConstant.AUTO_SAVE, false) as Boolean userViewModel = ViewModelProvider(this)[UserViewModel::class.java] @@ -51,11 +54,11 @@ } override fun initEvent() { - loginButton.setOnClickListener { - val account = accountView.text.toString() - val password = passwordView.text.toString() - val serversIp = serversIpView.text.toString() - val serversPort = serversPortView.text.toString() + binding.loginButton.setOnClickListener { + val account = binding.accountView.text.toString() + val password = binding.passwordView.text.toString() + val serversIp = binding.serversIpView.text.toString() + val serversPort = binding.serversPortView.text.toString() if (account.isBlank() || password.isBlank() || serversIp.isBlank() || serversPort.isBlank()) { AlertMessageDialog.Builder() .setContext(this) @@ -79,7 +82,7 @@ } } - autoSavePasswordView.setOnCheckedChangeListener { _, isChecked -> + binding.autoSavePasswordView.setOnCheckedChangeListener { _, isChecked -> if (isChecked) { SaveKeyValues.putValue(LocaleConstant.AUTO_SAVE, true) } else { @@ -88,8 +91,6 @@ } } - override fun initLayoutView(): Int = R.layout.activity_login - override fun observeRequestState() { userViewModel.loadState.observe(this) { when (it) { @@ -101,24 +102,24 @@ override fun setupTopBarLayout() { ImmersionBar.with(this).statusBarDarkFont(true).init() - initLayoutImmersionBar(rootView) + initLayoutImmersionBar(binding.rootView) Log.d(kTag, "setupTopBarLayout => [${getScreenWidth()}, ${getScreenHeight()}]") } override fun onResume() { super.onResume() - if (autoSavePasswordView.isChecked) { - accountView.setText( + if (binding.autoSavePasswordView.isChecked) { + binding.accountView.setText( SaveKeyValues.getValue(LocaleConstant.USER_ACCOUNT, "") as String ) - passwordView.setText( + binding.passwordView.setText( SaveKeyValues.getValue(LocaleConstant.USER_PASSWORD, "") as String ) - serversIpView.setText( + binding.serversIpView.setText( SaveKeyValues.getValue(LocaleConstant.SERVER_IP, "") as String ) - serversPortView.setText( + binding.serversPortView.setText( SaveKeyValues.getValue(LocaleConstant.SERVER_PORT, "") as String ) } diff --git a/app/src/main/java/com/casic/electric/detector/view/MainActivity.kt b/app/src/main/java/com/casic/electric/detector/view/MainActivity.kt index dabec9f..36a8d55 100644 --- a/app/src/main/java/com/casic/electric/detector/view/MainActivity.kt +++ b/app/src/main/java/com/casic/electric/detector/view/MainActivity.kt @@ -28,6 +28,7 @@ import com.casic.electric.detector.cluster.ClusterItem import com.casic.electric.detector.cluster.ClusterOverlay import com.casic.electric.detector.cluster.RegionItem +import com.casic.electric.detector.databinding.ActivityMainBinding import com.casic.electric.detector.extensions.appendExcelDownloadUrl import com.casic.electric.detector.extensions.drawCircle import com.casic.electric.detector.extensions.initLayoutImmersionBar @@ -54,22 +55,13 @@ import com.pengxh.kt.lite.widget.dialog.AlertControlDialog import com.pengxh.kt.lite.widget.dialog.BottomActionSheet import com.pengxh.kt.lite.widget.dialog.NoNetworkDialog -import kotlinx.android.synthetic.main.activity_main.aimButton -import kotlinx.android.synthetic.main.activity_main.currentLocationView -import kotlinx.android.synthetic.main.activity_main.detectionButton -import kotlinx.android.synthetic.main.activity_main.inspectionButton -import kotlinx.android.synthetic.main.activity_main.installButton -import kotlinx.android.synthetic.main.activity_main.mapView -import kotlinx.android.synthetic.main.activity_main.rightImageView -import kotlinx.android.synthetic.main.activity_main.rootView -import kotlinx.android.synthetic.main.activity_main.viewButton import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.launch import kotlinx.coroutines.withContext import java.io.File -class MainActivity : KotlinBaseActivity() { +class MainActivity : KotlinBaseActivity() { private val kTag = "MainActivity" private val context: Context = this@MainActivity @@ -87,18 +79,20 @@ private val backDrawables = HashMap() private val regionRadius by lazy { LocaleConstant.RADIUS_SIZE.dp2px(this) } - 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.themeColor).init() - initLayoutImmersionBar(rootView) + initLayoutImmersionBar(binding.rootView) } override fun observeRequestState() { } - override fun initData(savedInstanceState: Bundle?) { + override fun initOnCreate(savedInstanceState: Bundle?) { val powerManager = getSystemService(Context.POWER_SERVICE) as PowerManager wakeLock = powerManager.run { newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, this@MainActivity.localClassName).apply { @@ -197,7 +191,7 @@ } override fun initEvent() { - rightImageView.setOnClickListener { + binding.rightImageView.setOnClickListener { CoroutineScope(Dispatchers.Main).launch { val labels = withContext(Dispatchers.IO) { DataBaseManager.get.queryLabelById("0") @@ -205,8 +199,8 @@ if (labels.isNotEmpty()) { samplePopupWindow.setShowPosition(4) } - val x = rightImageView.width - samplePopupWindow.width - 1f.dp2px(context) - samplePopupWindow.showAsDropDown(rightImageView, x, 1f.dp2px(context)) + val x = binding.rightImageView.width - samplePopupWindow.width - 1f.dp2px(context) + samplePopupWindow.showAsDropDown(binding.rightImageView, x, 1f.dp2px(context)) } } @@ -224,7 +218,7 @@ }) //安装。上传,然后存入本地库 - installButton.setOnClickListener { + binding.installButton.setOnClickListener { AlertControlDialog.Builder() .setContext(context) .setTitle("提示") @@ -246,7 +240,7 @@ } //查看 - viewButton.setOnClickListener { + binding.viewButton.setOnClickListener { QueryMarkerDialog.Builder() .setContext(this) .setTitle("查看标识器") @@ -308,7 +302,7 @@ } //巡检 - inspectionButton.setOnClickListener { + binding.inspectionButton.setOnClickListener { // val task = DataBaseManager.get.queryDistinctTask() // if (task.isNotEmpty()) { // val arrayList = ArrayList() @@ -366,14 +360,14 @@ } //探测 - detectionButton.setOnClickListener { + binding.detectionButton.setOnClickListener { // navigatePageTo() } } private fun initMapConfig(savedInstanceState: Bundle?) { - mapView.onCreate(savedInstanceState) - aMap = mapView.map + binding.mapView.onCreate(savedInstanceState) + aMap = binding.mapView.map val uiSettings = aMap.uiSettings uiSettings.isCompassEnabled = true @@ -394,7 +388,7 @@ latitude = it.latitude //经纬度逆编码 LocationHub.antiCodingLocation(context, it) { address -> - currentLocationView.text = address + binding.currentLocationView.text = address } } @@ -419,7 +413,7 @@ } //自定义定位按钮 - aimButton.setOnClickListener { moveToCurrentLocation() } + binding.aimButton.setOnClickListener { moveToCurrentLocation() } } private fun moveToCurrentLocation() { @@ -566,6 +560,7 @@ } } } + 1 -> { val electricMarkers = ArrayList() smallLabels.forEach { @@ -582,6 +577,7 @@ //显示单选列表对话框 showElectricMarkers(electricMarkers) } + 2 -> { RouteOnMap.startNavigation( context, item.tag, @@ -619,7 +615,7 @@ override fun onResume() { super.onResume() - mapView.onResume() + binding.mapView.onResume() lifecycleScope.launch { labels = withContext(Dispatchers.IO) { DataBaseManager.get.loadLabels() as ArrayList @@ -638,17 +634,17 @@ override fun onPause() { super.onPause() - mapView.onPause() + binding.mapView.onPause() } override fun onSaveInstanceState(outState: Bundle) { super.onSaveInstanceState(outState) - mapView.onSaveInstanceState(outState) + binding.mapView.onSaveInstanceState(outState) } override fun onDestroy() { wakeLock.release() super.onDestroy() - mapView.onDestroy() + binding.mapView.onDestroy() } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/electric/detector/view/ObjectDetailActivity.kt b/app/src/main/java/com/casic/electric/detector/view/ObjectDetailActivity.kt index f8cd691..22ee740 100644 --- a/app/src/main/java/com/casic/electric/detector/view/ObjectDetailActivity.kt +++ b/app/src/main/java/com/casic/electric/detector/view/ObjectDetailActivity.kt @@ -1,12 +1,11 @@ package com.casic.electric.detector.view -import android.content.Context import android.graphics.Color import android.graphics.drawable.ColorDrawable import android.os.Bundle import android.view.Gravity -import com.casic.electric.detector.R import com.casic.electric.detector.bean.LabelBean +import com.casic.electric.detector.databinding.ActivityObjectDetailBinding import com.google.gson.Gson import com.google.gson.reflect.TypeToken import com.pengxh.kt.lite.base.KotlinBaseActivity @@ -14,15 +13,13 @@ import com.pengxh.kt.lite.extensions.getScreenWidth import com.pengxh.kt.lite.extensions.show import com.pengxh.kt.lite.utils.Constant -import kotlinx.android.synthetic.main.activity_object_detail.* -class ObjectDetailActivity : KotlinBaseActivity() { +class ObjectDetailActivity : KotlinBaseActivity() { private val kTag = "ObjectDetailActivity" - private val context: Context = this@ObjectDetailActivity private val gson by lazy { Gson() } - override fun initData(savedInstanceState: Bundle?) { + override fun initOnCreate(savedInstanceState: Bundle?) { window.setBackgroundDrawable(ColorDrawable(Color.TRANSPARENT)) window.decorView.setBackgroundColor(Color.TRANSPARENT) window.setGravity(Gravity.CENTER) @@ -36,50 +33,52 @@ val labelBean = gson.fromJson(objectJson, object : TypeToken() {}.type) - markerObjTypeView.text = labelBean.markerObjType - markerNumberView.text = labelBean.markerNumber - objectNameView.text = labelBean.objectName - voltageLevelView.text = labelBean.voltageLevel - transformerModelView.text = labelBean.transformerModel - wellCoverMaterialView.text = labelBean.wellCoverMaterial - sizeView.text = labelBean.size - bottomDepthView.text = labelBean.bottomDepth - jointCountView.text = labelBean.jointCount - casingMaterialView.text = labelBean.casingMaterial - casingSpecView.text = labelBean.casingSpec - constructTimeView.text = labelBean.constructTime - inspectionUnitView.text = labelBean.inspectionUnit - areaView.text = labelBean.area - roadView.text = labelBean.road - memo1View.text = labelBean.memo1 - memo2View.text = labelBean.memo2 - memo3View.text = labelBean.memo3 - markerIdView.text = labelBean.markerId - markerTypeView.text = labelBean.markerType - ownerView.text = labelBean.owner - markerDepthView.text = labelBean.markerDepth - electricTagCountView.text = labelBean.electricTagCount - installedTimeView.text = labelBean.installedTime - longitudeView.text = labelBean.longitude - latitudeView.text = labelBean.latitude - markerMemo1View.text = labelBean.markerMemo1 - markerMemo2View.text = labelBean.markerMemo2 - markerMemo3View.text = labelBean.markerMemo3 + binding.markerObjTypeView.text = labelBean.markerObjType + binding.markerNumberView.text = labelBean.markerNumber + binding.objectNameView.text = labelBean.objectName + binding.voltageLevelView.text = labelBean.voltageLevel + binding.transformerModelView.text = labelBean.transformerModel + binding.wellCoverMaterialView.text = labelBean.wellCoverMaterial + binding.sizeView.text = labelBean.size + binding.bottomDepthView.text = labelBean.bottomDepth + binding.jointCountView.text = labelBean.jointCount + binding.casingMaterialView.text = labelBean.casingMaterial + binding.casingSpecView.text = labelBean.casingSpec + binding.constructTimeView.text = labelBean.constructTime + binding.inspectionUnitView.text = labelBean.inspectionUnit + binding.areaView.text = labelBean.area + binding.roadView.text = labelBean.road + binding.memo1View.text = labelBean.memo1 + binding.memo2View.text = labelBean.memo2 + binding.memo3View.text = labelBean.memo3 + binding.markerIdView.text = labelBean.markerId + binding.markerTypeView.text = labelBean.markerType + binding.ownerView.text = labelBean.owner + binding.markerDepthView.text = labelBean.markerDepth + binding.electricTagCountView.text = labelBean.electricTagCount + binding.installedTimeView.text = labelBean.installedTime + binding.longitudeView.text = labelBean.longitude + binding.latitudeView.text = labelBean.latitude + binding.markerMemo1View.text = labelBean.markerMemo1 + binding.markerMemo2View.text = labelBean.markerMemo2 + binding.markerMemo3View.text = labelBean.markerMemo3 } catch (e: NumberFormatException) { e.printStackTrace() } } override fun initEvent() { - closeView.setOnClickListener { finish() } + binding.closeView.setOnClickListener { finish() } - showImageView.setOnClickListener { + binding.showImageView.setOnClickListener { //TODO 服务器返回的表格里面并没有图片字段,此功能暂时屏蔽 - "此标识器无图片".show(context) + "此标识器无图片".show(this) } } - override fun initLayoutView(): Int = R.layout.activity_object_detail + override fun initViewBinding(): ActivityObjectDetailBinding { + return ActivityObjectDetailBinding.inflate(layoutInflater) + } override fun observeRequestState() { diff --git a/app/src/main/java/com/casic/electric/detector/view/PermissionActivity.kt b/app/src/main/java/com/casic/electric/detector/view/PermissionActivity.kt index f8bddd8..7380d0d 100644 --- a/app/src/main/java/com/casic/electric/detector/view/PermissionActivity.kt +++ b/app/src/main/java/com/casic/electric/detector/view/PermissionActivity.kt @@ -3,6 +3,7 @@ import android.os.Bundle import android.os.CountDownTimer import com.casic.electric.detector.R +import com.casic.electric.detector.databinding.ActivityPermssionBinding import com.casic.electric.detector.utils.LocaleConstant import com.gyf.immersionbar.ImmersionBar import com.pengxh.kt.lite.base.KotlinBaseActivity @@ -10,7 +11,8 @@ import com.pengxh.kt.lite.utils.SaveKeyValues import pub.devrel.easypermissions.EasyPermissions -class PermissionActivity : KotlinBaseActivity(), EasyPermissions.PermissionCallbacks { +class PermissionActivity : KotlinBaseActivity(), + EasyPermissions.PermissionCallbacks { private val isFirstEnter = SaveKeyValues.getValue("isFirstEnter", true) as Boolean private val countDownTimer = object : CountDownTimer(2000, 500) { @@ -24,7 +26,7 @@ } } - override fun initData(savedInstanceState: Bundle?) { + override fun initOnCreate(savedInstanceState: Bundle?) { EasyPermissions.requestPermissions( this, "${resources.getString(R.string.app_name)}需要获取必要权限", LocaleConstant.PERMISSIONS_CODE, *LocaleConstant.USER_PERMISSIONS @@ -35,7 +37,9 @@ } - override fun initLayoutView(): Int = R.layout.activity_permssion + override fun initViewBinding(): ActivityPermssionBinding { + return ActivityPermssionBinding.inflate(layoutInflater) + } override fun observeRequestState() { diff --git a/app/src/main/java/com/casic/electric/detector/view/VersionControlActivity.kt b/app/src/main/java/com/casic/electric/detector/view/VersionControlActivity.kt index 0b2479d..6a00429 100644 --- a/app/src/main/java/com/casic/electric/detector/view/VersionControlActivity.kt +++ b/app/src/main/java/com/casic/electric/detector/view/VersionControlActivity.kt @@ -11,6 +11,7 @@ import androidx.lifecycle.ViewModelProvider import com.casic.electric.detector.BuildConfig import com.casic.electric.detector.R +import com.casic.electric.detector.databinding.ActivityVersionControlBinding import com.casic.electric.detector.extensions.appendDownloadUrl import com.casic.electric.detector.extensions.initLayoutImmersionBar import com.casic.electric.detector.utils.FileType @@ -25,18 +26,16 @@ import com.pengxh.kt.lite.extensions.show import com.pengxh.kt.lite.vm.LoadState import com.pengxh.kt.lite.widget.dialog.AlertControlDialog -import kotlinx.android.synthetic.main.activity_version_control.* -import kotlinx.android.synthetic.main.include_base_title.* import java.io.File -class VersionControlActivity : KotlinBaseActivity() { +class VersionControlActivity : KotlinBaseActivity() { private val kTag = "VersionControlActivity" private val progressDialog by lazy { ProgressDialog(this) } private lateinit var versionViewModel: VersionViewModel - override fun initData(savedInstanceState: Bundle?) { - versionView.text = "Version ${BuildConfig.VERSION_NAME}" + override fun initOnCreate(savedInstanceState: Bundle?) { + binding.versionView.text = "Version ${BuildConfig.VERSION_NAME}" //初始化下载对话框 progressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL) @@ -70,14 +69,16 @@ } override fun initEvent() { - leftBackView.setOnClickListener { finish() } + binding.titleInclude.leftBackView.setOnClickListener { finish() } - updateLayout.setOnClickListener { + binding.updateLayout.setOnClickListener { versionViewModel.getApplicationVersion() } } - override fun initLayoutView(): Int = R.layout.activity_version_control + override fun initViewBinding(): ActivityVersionControlBinding { + return ActivityVersionControlBinding.inflate(layoutInflater) + } override fun observeRequestState() { versionViewModel.loadState.observe(this) { @@ -90,8 +91,8 @@ override fun setupTopBarLayout() { ImmersionBar.with(this).statusBarDarkFont(true).init() - initLayoutImmersionBar(rootView) - titleView.visibility = View.GONE + initLayoutImmersionBar(binding.rootView) + binding.titleInclude.titleView.visibility = View.GONE } private fun downloadApk(url: String?) { diff --git a/app/src/main/java/com/casic/electric/detector/widgets/QueryMarkerDialog.kt b/app/src/main/java/com/casic/electric/detector/widgets/QueryMarkerDialog.kt index bf0ed2f..0d9f58b 100644 --- a/app/src/main/java/com/casic/electric/detector/widgets/QueryMarkerDialog.kt +++ b/app/src/main/java/com/casic/electric/detector/widgets/QueryMarkerDialog.kt @@ -5,19 +5,22 @@ import android.content.Context import android.os.Bundle import android.view.View -import android.widget.* -import androidx.appcompat.widget.AppCompatAutoCompleteTextView +import android.widget.AdapterView +import android.widget.ArrayAdapter +import android.widget.Spinner import com.casic.electric.detector.R +import com.casic.electric.detector.databinding.DialogQueryMarkerBinding import com.casic.electric.detector.extensions.appendZero import com.casic.electric.detector.utils.DataBaseManager import com.casic.electric.detector.utils.LocaleConstant import com.casic.electric.detector.utils.QueryMode +import com.pengxh.kt.lite.extensions.binding import com.pengxh.kt.lite.extensions.initDialogLayoutParams import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.launch import kotlinx.coroutines.withContext -import java.util.* +import java.util.Calendar class QueryMarkerDialog private constructor(builder: Builder) : Dialog( builder.context, R.style.UserDefinedDialogStyle @@ -72,9 +75,9 @@ } } + private val binding: DialogQueryMarkerBinding by binding() private val calendar by lazy { Calendar.getInstance() } private lateinit var queryMode: QueryMode - private lateinit var inputView: AppCompatAutoCompleteTextView override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) @@ -85,19 +88,8 @@ } private fun initView() { - val dialogTitleView: TextView = findViewById(R.id.dialogTitleView) - val conditionSpinner: Spinner = findViewById(R.id.conditionSpinner) - val contentLayout: LinearLayout = findViewById(R.id.contentLayout) - val contentSpinner: Spinner = findViewById(R.id.contentSpinner) - inputView = findViewById(R.id.inputView) - val dateSelectLayout: LinearLayout = findViewById(R.id.dateSelectLayout) - val selectStartDateView: TextView = findViewById(R.id.selectStartDateView) - val selectEndDateView: TextView = findViewById(R.id.selectEndDateView) - val dialogCancelButton = findViewById