parent
e552c6d3fc
commit
ef78de301c
11 changed files with 989 additions and 2 deletions
@ -0,0 +1,5 @@ |
||||
package com.bingce.controlnetwork.newui.stationsettingheighttraverse |
||||
|
||||
interface IStationSettingOperate { |
||||
fun checkSaveNot(): Boolean |
||||
} |
@ -0,0 +1,213 @@ |
||||
package com.bingce.controlnetwork.newui.stationsettingheighttraverse |
||||
|
||||
import android.text.TextUtils |
||||
import android.view.LayoutInflater |
||||
import android.view.ViewGroup |
||||
import android.widget.EditText |
||||
import androidx.fragment.app.activityViewModels |
||||
import androidx.lifecycle.lifecycleScope |
||||
import blankj.utilcode.util.ToastUtils |
||||
import com.bingce.controlapphelper.datasource.database.SurveyorDatabaseFactory |
||||
import com.bingce.controlapphelper.datasource.database.config.ConfigConstants |
||||
import com.bingce.controlapphelper.datasource.database.heighttraverse.stationsetting.model.StationSettingHeightTraverseRecord |
||||
import com.bingce.controlapphelper.util.Tools |
||||
import com.bingce.controlnetwork.R |
||||
import com.bingce.controlnetwork.databinding.NewFragmentStationSettingEnvironmentHeightTraverseBinding |
||||
import com.bingce.controlnetwork.fragment.stationsetting.BaseStationSettingFragment.Companion.DEFAULT_AIR_PRESSURE |
||||
import com.bingce.controlnetwork.fragment.stationsetting.BaseStationSettingFragment.Companion.DEFAULT_CONSTANT |
||||
import com.bingce.controlnetwork.fragment.stationsetting.BaseStationSettingFragment.Companion.DEFAULT_TEMPERATURE |
||||
import com.bingce.controlnetwork.newui.base.BaseFragmentBinding |
||||
import kotlinx.coroutines.Dispatchers |
||||
import kotlinx.coroutines.launch |
||||
import kotlinx.coroutines.withContext |
||||
|
||||
/** |
||||
* 测站设置-环境信息 |
||||
*/ |
||||
class StationSettingEnvironmentHeightTraverseFragment : |
||||
BaseFragmentBinding<NewFragmentStationSettingEnvironmentHeightTraverseBinding>(), |
||||
IStationSettingOperate { |
||||
|
||||
private val viewModel by activityViewModels<StationSettingHeightTraverseVm>() |
||||
|
||||
override fun getViewBinding( |
||||
inflater: LayoutInflater, |
||||
container: ViewGroup? |
||||
): NewFragmentStationSettingEnvironmentHeightTraverseBinding { |
||||
return NewFragmentStationSettingEnvironmentHeightTraverseBinding.inflate( |
||||
inflater, |
||||
container, |
||||
false |
||||
) |
||||
} |
||||
|
||||
override fun initView() { |
||||
mBinding.ilDryTemperature.tvName.text = getString(R.string.dry_temperature) |
||||
mBinding.ilDryTemperature.etValue.hint = getString(R.string.dry_temperature) |
||||
mBinding.ilDryTemperature.tvUnit.text = "℃" |
||||
|
||||
mBinding.ilHumidityTemperature.tvName.text = getString(R.string.humidity_temperature) |
||||
mBinding.ilHumidityTemperature.etValue.hint = getString(R.string.humidity_temperature) |
||||
mBinding.ilHumidityTemperature.tvUnit.text = "℃" |
||||
|
||||
mBinding.ilAirPressure.tvName.text = getString(R.string.hint_air_pressure) |
||||
mBinding.ilAirPressure.etValue.hint = getString(R.string.hint_air_pressure) |
||||
mBinding.ilAirPressure.tvUnit.text = "hPa" |
||||
|
||||
mBinding.ilAdditionConstant.tvName.text = getString(R.string.addition_constant) |
||||
mBinding.ilAdditionConstant.etValue.hint = getString(R.string.addition_constant) |
||||
mBinding.ilAdditionConstant.tvUnit.text = "mm" |
||||
|
||||
mBinding.ilmultiplicationConstant.tvName.text = getString(R.string.multiplication_constant) |
||||
mBinding.ilmultiplicationConstant.etValue.hint = getString(R.string.multiplication_constant) |
||||
mBinding.ilmultiplicationConstant.tvUnit.text = "ppm" |
||||
|
||||
initListener() |
||||
} |
||||
|
||||
private fun initListener() { |
||||
mBinding.tvLastData.setOnClickListener { |
||||
useLastData() |
||||
} |
||||
mBinding.tvStandardData.setOnClickListener { |
||||
setDataFromRecord(null) |
||||
} |
||||
} |
||||
|
||||
private fun useLastData() { |
||||
lifecycleScope.launch { |
||||
val record = withContext(Dispatchers.IO) { |
||||
val dryTemperature = getValueFromLastKey(ConfigConstants.KEY_LAST_DRY_TEMPERATURE) |
||||
val humidityTemperature = |
||||
getValueFromLastKey(ConfigConstants.KEY_LAST_HUMIDITY_TEMPERATURE) |
||||
val airPressure = getValueFromLastKey(ConfigConstants.KEY_LAST_AIR_PRESSURE) |
||||
val additionConstant = |
||||
getValueFromLastKey(ConfigConstants.KEY_LAST_ADDITION_CONSTANT) |
||||
val multiplicationConstant = |
||||
getValueFromLastKey(ConfigConstants.KEY_LAST_MULTIPLICATION_CONSTANT) |
||||
val instrumentHeightBefore = |
||||
getValueFromLastKey(ConfigConstants.KEY_LAST_INSTRUMENT_HEIGHT_BEFORE) |
||||
val instrumentHeightAfter = |
||||
getValueFromLastKey(ConfigConstants.KEY_LAST_INSTRUMENT_HEIGHT_AFTER) |
||||
val backPrismHeightBefore = |
||||
getValueFromLastKey(ConfigConstants.KEY_LAST_BACK_PRISM_HEIGHT_BEFORE) |
||||
val backPrismHeightAfter = |
||||
getValueFromLastKey(ConfigConstants.KEY_LAST_BACK_PRISM_HEIGHT_AFTER) |
||||
val frontPrismHeightBefore = |
||||
getValueFromLastKey(ConfigConstants.KEY_LAST_FRONT_PRISM_HEIGHT_BEFORE) |
||||
val frontPrismHeightAfter = |
||||
getValueFromLastKey(ConfigConstants.KEY_LAST_FRONT_PRISM_HEIGHT_AFTER) |
||||
|
||||
if (dryTemperature == null |
||||
|| humidityTemperature == null |
||||
|| airPressure == null |
||||
|| additionConstant == null |
||||
|| multiplicationConstant == null |
||||
|| instrumentHeightBefore == null |
||||
|| instrumentHeightAfter == null |
||||
|| backPrismHeightBefore == null |
||||
|| backPrismHeightAfter == null |
||||
|| frontPrismHeightBefore == null |
||||
|| frontPrismHeightAfter == null |
||||
) { |
||||
return@withContext null |
||||
} |
||||
|
||||
StationSettingHeightTraverseRecord.newInstance( |
||||
viewModel.stationId, |
||||
dryTemperature, |
||||
humidityTemperature, |
||||
airPressure, |
||||
additionConstant, |
||||
multiplicationConstant, |
||||
instrumentHeightBefore, |
||||
instrumentHeightAfter, |
||||
backPrismHeightBefore, |
||||
backPrismHeightAfter, |
||||
frontPrismHeightBefore, |
||||
frontPrismHeightAfter |
||||
) |
||||
} |
||||
|
||||
setDataFromRecord(record) |
||||
} |
||||
} |
||||
|
||||
private fun getValueFromLastKey(key: String): String? { |
||||
val record = |
||||
SurveyorDatabaseFactory.instance.configDataSource.getByKeySync(key) |
||||
return record?.configValue |
||||
} |
||||
|
||||
override fun initData() { |
||||
lifecycleScope.launch { |
||||
val record = withContext(Dispatchers.IO) { |
||||
SurveyorDatabaseFactory.instance.getStationSettingHeightTraverseDataSource() |
||||
.getRecordByStationId(viewModel.stationId) |
||||
} |
||||
setDataFromRecord(record) |
||||
} |
||||
} |
||||
|
||||
private fun setDataFromRecord(record: StationSettingHeightTraverseRecord?) { |
||||
mBinding.ilDryTemperature.etValue.setText( |
||||
record?.dryTemperature ?: DEFAULT_TEMPERATURE |
||||
) |
||||
mBinding.ilHumidityTemperature.etValue.setText( |
||||
record?.humidityTemperature ?: DEFAULT_TEMPERATURE |
||||
) |
||||
mBinding.ilAirPressure.etValue.setText(record?.airPressure ?: DEFAULT_AIR_PRESSURE) |
||||
mBinding.ilAdditionConstant.etValue.setText( |
||||
record?.additionConstant ?: DEFAULT_CONSTANT |
||||
) |
||||
mBinding.ilmultiplicationConstant.etValue.setText( |
||||
record?.multiplicationConstant ?: DEFAULT_CONSTANT |
||||
) |
||||
} |
||||
|
||||
override fun checkSaveNot(): Boolean { |
||||
if (editTextEmpty(mBinding.ilDryTemperature.etValue)) { |
||||
ToastUtils.showShort(R.string.please_enter_dry_temperature) |
||||
return true |
||||
} |
||||
if (editTextEmpty(mBinding.ilHumidityTemperature.etValue)) { |
||||
ToastUtils.showShort(R.string.please_enter_humidity_temperature) |
||||
return true |
||||
} |
||||
if (editTextEmpty(mBinding.ilAirPressure.etValue)) { |
||||
ToastUtils.showShort(Tools.getString(R.string.please_enter_air_pressure)) |
||||
return true |
||||
} |
||||
if (editTextEmpty(mBinding.ilAdditionConstant.etValue)) { |
||||
ToastUtils.showShort(R.string.please_enter_addition_constant) |
||||
return true |
||||
} |
||||
if (editTextEmpty(mBinding.ilmultiplicationConstant.etValue)) { |
||||
ToastUtils.showShort(R.string.please_enter_multiplication_constant) |
||||
return true |
||||
} |
||||
setDataToViewModel() |
||||
return false |
||||
} |
||||
|
||||
private fun setDataToViewModel() { |
||||
val dryTemperature = getEtText(mBinding.ilDryTemperature.etValue) |
||||
val humidityTemperature = getEtText(mBinding.ilHumidityTemperature.etValue) |
||||
val airPressure = getEtText(mBinding.ilAirPressure.etValue) |
||||
val additionConstant = getEtText(mBinding.ilAdditionConstant.etValue) |
||||
val multiplicationConstant = getEtText(mBinding.ilmultiplicationConstant.etValue) |
||||
|
||||
viewModel.dryTemperature = dryTemperature |
||||
viewModel.humidityTemperature = humidityTemperature |
||||
viewModel.airPressure = airPressure |
||||
viewModel.additionConstant = additionConstant |
||||
viewModel.multiplicationConstant = multiplicationConstant |
||||
} |
||||
|
||||
private fun editTextEmpty(et: EditText): Boolean { |
||||
return TextUtils.isEmpty(getEtText(et)) |
||||
} |
||||
|
||||
private fun getEtText(et: EditText) = et.text.toString().trim() |
||||
|
||||
} |
@ -0,0 +1,151 @@ |
||||
package com.bingce.controlnetwork.newui.stationsettingheighttraverse |
||||
|
||||
import android.text.TextUtils |
||||
import android.view.LayoutInflater |
||||
import android.view.ViewGroup |
||||
import android.widget.EditText |
||||
import androidx.fragment.app.activityViewModels |
||||
import androidx.lifecycle.lifecycleScope |
||||
import blankj.utilcode.util.ToastUtils |
||||
import com.bingce.controlapphelper.datasource.database.SurveyorDatabaseFactory |
||||
import com.bingce.controlapphelper.datasource.database.heighttraverse.stationsetting.model.StationSettingHeightTraverseRecord |
||||
import com.bingce.controlnetwork.R |
||||
import com.bingce.controlnetwork.databinding.NewFragmentStationSettingHeightHeightTraverseBinding |
||||
import com.bingce.controlnetwork.fragment.stationsetting.BaseStationSettingFragment.Companion.DEFAULT_INSTRUMEN_HEIGHT |
||||
import com.bingce.controlnetwork.newui.base.BaseFragmentBinding |
||||
import kotlinx.coroutines.Dispatchers |
||||
import kotlinx.coroutines.launch |
||||
import kotlinx.coroutines.withContext |
||||
|
||||
/** |
||||
* 高程导线-仪高镜高 |
||||
*/ |
||||
class StationSettingHeightHeightTraverseFragment : |
||||
BaseFragmentBinding<NewFragmentStationSettingHeightHeightTraverseBinding>(), |
||||
IStationSettingOperate { |
||||
|
||||
private val viewModel by activityViewModels<StationSettingHeightTraverseVm>() |
||||
|
||||
|
||||
override fun getViewBinding( |
||||
inflater: LayoutInflater, |
||||
container: ViewGroup? |
||||
): NewFragmentStationSettingHeightHeightTraverseBinding { |
||||
return NewFragmentStationSettingHeightHeightTraverseBinding.inflate( |
||||
inflater, |
||||
container, |
||||
false |
||||
) |
||||
} |
||||
|
||||
override fun initView() { |
||||
mBinding.ilInstrumentHeight.tvName.text = getString(R.string.instrument_height) |
||||
mBinding.ilBackPrismHeight.tvName.text = getString(R.string.back_prism_height) |
||||
mBinding.ilFrontPrismHeight.tvName.text = getString(R.string.front_prism_height) |
||||
|
||||
//仪器高,棱镜高 |
||||
mBinding.ilInstrumentHeight.button1.setOnClickListener { |
||||
mBinding.ilInstrumentHeight.etValueAfter.setText( |
||||
getEtText(mBinding.ilInstrumentHeight.etValueBefore) |
||||
) |
||||
} |
||||
mBinding.ilBackPrismHeight.button1.setOnClickListener { |
||||
mBinding.ilBackPrismHeight.etValueAfter.setText( |
||||
getEtText(mBinding.ilBackPrismHeight.etValueBefore) |
||||
) |
||||
} |
||||
mBinding.ilFrontPrismHeight.button1.setOnClickListener { |
||||
mBinding.ilFrontPrismHeight.etValueAfter.setText( |
||||
getEtText(mBinding.ilFrontPrismHeight.etValueBefore) |
||||
) |
||||
} |
||||
|
||||
} |
||||
|
||||
private fun getEtText(et: EditText) = et.text.toString().trim() |
||||
|
||||
|
||||
override fun initData() { |
||||
lifecycleScope.launch { |
||||
val record = withContext(Dispatchers.IO) { |
||||
SurveyorDatabaseFactory.instance.getStationSettingHeightTraverseDataSource() |
||||
.getRecordByStationId(viewModel.stationId) |
||||
} |
||||
setDataFromRecord(record) |
||||
} |
||||
} |
||||
|
||||
private fun setDataFromRecord(record: StationSettingHeightTraverseRecord?) { |
||||
mBinding.ilInstrumentHeight.etValueBefore.setText( |
||||
record?.instrumentHeightBefore ?: DEFAULT_INSTRUMEN_HEIGHT |
||||
) |
||||
mBinding.ilInstrumentHeight.etValueAfter.setText( |
||||
record?.instrumentHeightAfter ?: DEFAULT_INSTRUMEN_HEIGHT |
||||
) |
||||
mBinding.ilBackPrismHeight.etValueBefore.setText( |
||||
record?.backPrismHeightBefore ?: DEFAULT_INSTRUMEN_HEIGHT |
||||
) |
||||
mBinding.ilBackPrismHeight.etValueAfter.setText( |
||||
record?.backPrismHeightAfter ?: DEFAULT_INSTRUMEN_HEIGHT |
||||
) |
||||
mBinding.ilFrontPrismHeight.etValueBefore.setText( |
||||
record?.frontPrismHeightBefore ?: DEFAULT_INSTRUMEN_HEIGHT |
||||
) |
||||
mBinding.ilFrontPrismHeight.etValueAfter.setText( |
||||
record?.frontPrismHeightAfter ?: DEFAULT_INSTRUMEN_HEIGHT |
||||
) |
||||
} |
||||
|
||||
override fun checkSaveNot(): Boolean { |
||||
if (editTextEmpty(mBinding.ilInstrumentHeight.etValueBefore)) { |
||||
ToastUtils.showShort(R.string.please_enter_instrument_height_before) |
||||
return true |
||||
} |
||||
if (editTextEmpty(mBinding.ilInstrumentHeight.etValueAfter)) { |
||||
ToastUtils.showShort(R.string.please_enter_instrument_height_after) |
||||
return true |
||||
} |
||||
if (editTextEmpty(mBinding.ilBackPrismHeight.etValueBefore)) { |
||||
ToastUtils.showShort(R.string.please_enter_back_prism_height_before) |
||||
return true |
||||
} |
||||
if (editTextEmpty(mBinding.ilBackPrismHeight.etValueAfter)) { |
||||
ToastUtils.showShort(R.string.please_enter_back_prism_height_after) |
||||
return true |
||||
} |
||||
if (editTextEmpty(mBinding.ilFrontPrismHeight.etValueBefore)) { |
||||
ToastUtils.showShort(R.string.please_enter_front_prism_height_before) |
||||
return true |
||||
} |
||||
if (editTextEmpty(mBinding.ilFrontPrismHeight.etValueAfter)) { |
||||
ToastUtils.showShort(R.string.please_enter_front_prism_height_after) |
||||
return true |
||||
} |
||||
|
||||
setDataToViewModel() |
||||
|
||||
return false |
||||
} |
||||
|
||||
private fun setDataToViewModel() { |
||||
val instrumentHeightBefore = getEtText(mBinding.ilInstrumentHeight.etValueBefore) |
||||
val instrumentHeightAfter = getEtText(mBinding.ilInstrumentHeight.etValueAfter) |
||||
val backPrismHeightBefore = getEtText(mBinding.ilBackPrismHeight.etValueBefore) |
||||
val backPrismHeightAfter = getEtText(mBinding.ilBackPrismHeight.etValueAfter) |
||||
val frontPrismHeightBefore = getEtText(mBinding.ilFrontPrismHeight.etValueBefore) |
||||
val frontPrismHeightAfter = getEtText(mBinding.ilFrontPrismHeight.etValueAfter) |
||||
|
||||
viewModel.instrumentHeightBefore = instrumentHeightBefore |
||||
viewModel.instrumentHeightAfter = instrumentHeightAfter |
||||
viewModel.backPrismHeightBefore = backPrismHeightBefore |
||||
viewModel.backPrismHeightAfter = backPrismHeightAfter |
||||
viewModel.frontPrismHeightBefore = frontPrismHeightBefore |
||||
viewModel.frontPrismHeightAfter = frontPrismHeightAfter |
||||
} |
||||
|
||||
private fun editTextEmpty(et: EditText): Boolean { |
||||
return TextUtils.isEmpty(getEtText(et)) |
||||
} |
||||
|
||||
|
||||
} |
@ -0,0 +1,21 @@ |
||||
package com.bingce.controlnetwork.newui.stationsettingheighttraverse |
||||
|
||||
import androidx.lifecycle.ViewModel |
||||
|
||||
class StationSettingHeightTraverseVm : ViewModel() { |
||||
lateinit var stationId: String |
||||
|
||||
var instrumentHeightBefore: String? = null |
||||
var instrumentHeightAfter: String? = null |
||||
var backPrismHeightBefore: String? = null |
||||
var backPrismHeightAfter: String? = null |
||||
var frontPrismHeightBefore: String? = null |
||||
var frontPrismHeightAfter: String? = null |
||||
|
||||
var dryTemperature: String? = null |
||||
var humidityTemperature: String? = null |
||||
var airPressure: String? = null |
||||
var additionConstant: String? = null |
||||
var multiplicationConstant: String? = null |
||||
|
||||
} |
@ -0,0 +1,317 @@ |
||||
package com.bingce.controlnetwork.newui.stationsettingheighttraverse |
||||
|
||||
import android.content.Context |
||||
import android.content.Intent |
||||
import android.view.Menu |
||||
import android.view.MenuItem |
||||
import androidx.activity.viewModels |
||||
import androidx.annotation.WorkerThread |
||||
import androidx.fragment.app.Fragment |
||||
import androidx.fragment.app.FragmentManager |
||||
import androidx.fragment.app.FragmentStatePagerAdapter |
||||
import androidx.lifecycle.lifecycleScope |
||||
import androidx.viewpager.widget.ViewPager.OnPageChangeListener |
||||
import blankj.utilcode.util.ToastUtils |
||||
import com.bingce.controlapphelper.datasource.database.SurveyorDatabaseFactory |
||||
import com.bingce.controlapphelper.datasource.database.config.ConfigConstants |
||||
import com.bingce.controlapphelper.datasource.database.config.ConfigRecord |
||||
import com.bingce.controlapphelper.datasource.database.heighttraverse.stationsetting.model.StationSettingHeightTraverseRecord |
||||
import com.bingce.controlapphelper.model.BundleConstants |
||||
import com.bingce.controlapphelper.util.FastClickUtil |
||||
import com.bingce.controlnetwork.R |
||||
import com.bingce.controlnetwork.databinding.NewActivityStationSettingBinding |
||||
import com.bingce.controlnetwork.newui.base.BaseBindingActivity |
||||
import com.bingce.controlnetwork.util.KeyboardUtil |
||||
import kotlinx.coroutines.Dispatchers |
||||
import kotlinx.coroutines.launch |
||||
|
||||
class StationSettingsHeightTraverseActivity : |
||||
BaseBindingActivity<NewActivityStationSettingBinding>() { |
||||
|
||||
private val viewModel by viewModels<StationSettingHeightTraverseVm>() |
||||
|
||||
private val fragments = mutableListOf<Fragment>() |
||||
private val fragmentTitleList = listOf("仪高镜高", "环境信息") |
||||
|
||||
companion object { |
||||
@JvmStatic |
||||
fun start(context: Context, stationId: String?) { |
||||
if (stationId == null) { |
||||
return |
||||
} |
||||
context.startActivity( |
||||
Intent( |
||||
context, |
||||
StationSettingsHeightTraverseActivity::class.java |
||||
).apply { |
||||
putExtra(BundleConstants.KEY_SURVEYOR_STATION_ID, stationId) |
||||
}) |
||||
} |
||||
} |
||||
|
||||
override fun getBinding(): NewActivityStationSettingBinding { |
||||
return NewActivityStationSettingBinding.inflate(layoutInflater) |
||||
} |
||||
|
||||
override fun initView() { |
||||
viewModel.stationId = getStationId() |
||||
initViewPager() |
||||
} |
||||
|
||||
override fun initData() { |
||||
|
||||
} |
||||
|
||||
private fun initViewPager() { |
||||
fragments.add(StationSettingHeightHeightTraverseFragment()) |
||||
fragments.add(StationSettingEnvironmentHeightTraverseFragment()) |
||||
|
||||
mBinding.vp.offscreenPageLimit = 3 |
||||
mBinding.vp.adapter = MyPagerAdapter(supportFragmentManager) |
||||
mBinding.tabLayout.setViewPager(mBinding.vp) |
||||
mBinding.vp.addOnPageChangeListener(object : OnPageChangeListener { |
||||
override fun onPageScrolled( |
||||
position: Int, |
||||
positionOffset: Float, |
||||
positionOffsetPixels: Int |
||||
) { |
||||
} |
||||
|
||||
override fun onPageSelected(position: Int) { |
||||
|
||||
} |
||||
|
||||
override fun onPageScrollStateChanged(state: Int) { |
||||
|
||||
} |
||||
}) |
||||
|
||||
// //设置当前tab为仪高镜高 |
||||
// mBinding.vp.currentItem = 1 |
||||
} |
||||
|
||||
|
||||
private inner class MyPagerAdapter(fm: FragmentManager) : FragmentStatePagerAdapter(fm) { |
||||
override fun getCount(): Int { |
||||
return fragments.size |
||||
} |
||||
|
||||
override fun getPageTitle(position: Int): CharSequence { |
||||
return fragmentTitleList[position] |
||||
} |
||||
|
||||
override fun getItem(position: Int): Fragment { |
||||
return fragments[position] |
||||
} |
||||
|
||||
override fun getItemPosition(`object`: Any): Int { |
||||
return POSITION_NONE |
||||
} |
||||
} |
||||
|
||||
private fun getStationId(): String { |
||||
return intent.getStringExtra(BundleConstants.KEY_SURVEYOR_STATION_ID)!! |
||||
} |
||||
|
||||
override fun onCreateOptionsMenu(menu: Menu?): Boolean { |
||||
menuInflater.inflate(R.menu.menu_save, menu) |
||||
return super.onCreateOptionsMenu(menu) |
||||
} |
||||
|
||||
override fun onOptionsItemSelected(item: MenuItem): Boolean { |
||||
if (item.itemId == R.id.menuSave) { |
||||
FastClickUtil.click { |
||||
KeyboardUtil.hideSoftInput() |
||||
startSave() |
||||
} |
||||
} |
||||
return super.onOptionsItemSelected(item) |
||||
} |
||||
|
||||
private fun startSave() { |
||||
//检查未完成的选项 |
||||
for (fragment in fragments) { |
||||
val operate = fragment as IStationSettingOperate |
||||
if (operate.checkSaveNot()) { |
||||
val fragmentNotFinishPos = fragments.indexOf(fragment) |
||||
if (mBinding.vp.currentItem != fragmentNotFinishPos) { |
||||
mBinding.tabLayout.currentTab = fragmentNotFinishPos |
||||
} |
||||
return |
||||
} |
||||
} |
||||
//保存到数据库 |
||||
saveData() |
||||
} |
||||
|
||||
private fun saveData() { |
||||
lifecycleScope.launch(Dispatchers.IO) { |
||||
val stationId = getStationId() |
||||
|
||||
val stationSettingHeightTraverseRecord = |
||||
SurveyorDatabaseFactory.instance.getStationSettingHeightTraverseDataSource() |
||||
.getRecordByStationId(stationId) |
||||
|
||||
if (stationSettingHeightTraverseRecord == null) { |
||||
val stationSettingHeightTraverseRecordNew = |
||||
StationSettingHeightTraverseRecord.newInstance( |
||||
stationId, |
||||
viewModel.dryTemperature!!, |
||||
viewModel.humidityTemperature!!, |
||||
viewModel.airPressure!!, |
||||
viewModel.additionConstant!!, |
||||
viewModel.multiplicationConstant!!, |
||||
viewModel.instrumentHeightBefore!!, |
||||
viewModel.instrumentHeightAfter!!, |
||||
viewModel.backPrismHeightBefore!!, |
||||
viewModel.backPrismHeightAfter!!, |
||||
viewModel.frontPrismHeightBefore!!, |
||||
viewModel.frontPrismHeightAfter!! |
||||
) |
||||
SurveyorDatabaseFactory.instance.getStationSettingHeightTraverseDataSource() |
||||
.saveRecord(stationSettingHeightTraverseRecordNew) |
||||
} else { |
||||
stationSettingHeightTraverseRecord.dryTemperature = viewModel.dryTemperature!! |
||||
stationSettingHeightTraverseRecord.humidityTemperature = |
||||
viewModel.humidityTemperature!! |
||||
stationSettingHeightTraverseRecord.airPressure = viewModel.airPressure!! |
||||
stationSettingHeightTraverseRecord.additionConstant = viewModel.additionConstant!! |
||||
stationSettingHeightTraverseRecord.multiplicationConstant = |
||||
viewModel.multiplicationConstant!! |
||||
stationSettingHeightTraverseRecord.instrumentHeightBefore = |
||||
viewModel.instrumentHeightBefore!! |
||||
stationSettingHeightTraverseRecord.instrumentHeightAfter = |
||||
viewModel.instrumentHeightAfter!! |
||||
stationSettingHeightTraverseRecord.backPrismHeightBefore = |
||||
viewModel.backPrismHeightBefore!! |
||||
stationSettingHeightTraverseRecord.backPrismHeightAfter = |
||||
viewModel.backPrismHeightAfter!! |
||||
stationSettingHeightTraverseRecord.frontPrismHeightBefore = |
||||
viewModel.frontPrismHeightBefore!! |
||||
stationSettingHeightTraverseRecord.frontPrismHeightAfter = |
||||
viewModel.frontPrismHeightAfter!! |
||||
SurveyorDatabaseFactory.instance.getStationSettingHeightTraverseDataSource() |
||||
.updateRecord(stationSettingHeightTraverseRecord) |
||||
} |
||||
|
||||
val stationRecord = |
||||
SurveyorDatabaseFactory.instance.surveyorStation.getRecordSync(stationId) |
||||
if (stationRecord != null) { |
||||
stationRecord.instrumentHeight = viewModel.instrumentHeightBefore |
||||
if (!stationRecord.items.isNullOrEmpty()) { |
||||
stationRecord.items.last().prismHeight = viewModel.frontPrismHeightBefore |
||||
if (stationRecord.items.size > 2) { |
||||
stationRecord.items[1].prismHeight = viewModel.backPrismHeightBefore |
||||
} |
||||
} |
||||
} |
||||
SurveyorDatabaseFactory.instance.surveyorStation.update(stationRecord) |
||||
|
||||
saveLastData( |
||||
viewModel.dryTemperature!!, |
||||
viewModel.humidityTemperature!!, |
||||
viewModel.airPressure!!, |
||||
viewModel.additionConstant!!, |
||||
viewModel.multiplicationConstant!!, |
||||
viewModel.instrumentHeightBefore!!, |
||||
viewModel.instrumentHeightAfter!!, |
||||
viewModel.backPrismHeightBefore!!, |
||||
viewModel.backPrismHeightAfter!!, |
||||
viewModel.frontPrismHeightBefore!!, |
||||
viewModel.frontPrismHeightAfter!! |
||||
) |
||||
|
||||
ToastUtils.showShort(R.string.save_success) |
||||
|
||||
} |
||||
} |
||||
|
||||
@WorkerThread |
||||
private fun saveLastData( |
||||
dryTemperature: String, |
||||
humidityTemperature: String, |
||||
airPressure: String, |
||||
additionConstant: String, |
||||
multiplicationConstant: String, |
||||
instrumentHeightBefore: String, |
||||
instrumentHeightAfter: String, |
||||
backPrismHeightBefore: String, |
||||
backPrismHeightAfter: String, |
||||
frontPrismHeightBefore: String, |
||||
frontPrismHeightAfter: String |
||||
) { |
||||
SurveyorDatabaseFactory.instance.configDataSource.recordSync( |
||||
ConfigRecord( |
||||
ConfigConstants.KEY_LAST_DRY_TEMPERATURE, |
||||
dryTemperature |
||||
) |
||||
) |
||||
SurveyorDatabaseFactory.instance.configDataSource.recordSync( |
||||
ConfigRecord( |
||||
ConfigConstants.KEY_LAST_HUMIDITY_TEMPERATURE, |
||||
humidityTemperature |
||||
) |
||||
) |
||||
SurveyorDatabaseFactory.instance.configDataSource.recordSync( |
||||
ConfigRecord( |
||||
ConfigConstants.KEY_LAST_AIR_PRESSURE, |
||||
airPressure |
||||
) |
||||
) |
||||
SurveyorDatabaseFactory.instance.configDataSource.recordSync( |
||||
ConfigRecord( |
||||
ConfigConstants.KEY_LAST_ADDITION_CONSTANT, |
||||
additionConstant |
||||
) |
||||
) |
||||
SurveyorDatabaseFactory.instance.configDataSource.recordSync( |
||||
ConfigRecord( |
||||
ConfigConstants.KEY_LAST_MULTIPLICATION_CONSTANT, |
||||
multiplicationConstant |
||||
) |
||||
) |
||||
SurveyorDatabaseFactory.instance.configDataSource.recordSync( |
||||
ConfigRecord( |
||||
ConfigConstants.KEY_LAST_INSTRUMENT_HEIGHT_BEFORE, |
||||
instrumentHeightBefore |
||||
) |
||||
) |
||||
SurveyorDatabaseFactory.instance.configDataSource.recordSync( |
||||
ConfigRecord( |
||||
ConfigConstants.KEY_LAST_INSTRUMENT_HEIGHT_AFTER, |
||||
instrumentHeightAfter |
||||
) |
||||
) |
||||
SurveyorDatabaseFactory.instance.configDataSource.recordSync( |
||||
ConfigRecord( |
||||
ConfigConstants.KEY_LAST_BACK_PRISM_HEIGHT_BEFORE, |
||||
backPrismHeightBefore |
||||
) |
||||
) |
||||
SurveyorDatabaseFactory.instance.configDataSource.recordSync( |
||||
ConfigRecord( |
||||
ConfigConstants.KEY_LAST_BACK_PRISM_HEIGHT_AFTER, |
||||
backPrismHeightAfter |
||||
) |
||||
) |
||||
SurveyorDatabaseFactory.instance.configDataSource.recordSync( |
||||
ConfigRecord( |
||||
ConfigConstants.KEY_LAST_FRONT_PRISM_HEIGHT_BEFORE, |
||||
frontPrismHeightBefore |
||||
) |
||||
) |
||||
SurveyorDatabaseFactory.instance.configDataSource.recordSync( |
||||
ConfigRecord( |
||||
ConfigConstants.KEY_LAST_FRONT_PRISM_HEIGHT_AFTER, |
||||
frontPrismHeightAfter |
||||
) |
||||
) |
||||
} |
||||
|
||||
override fun onBackPressed() { |
||||
if (isFinishAtOnce()) { |
||||
super.onBackPressed() |
||||
} |
||||
} |
||||
|
||||
} |
@ -0,0 +1,38 @@ |
||||
package com.bingce.controlnetwork.newui.stationsettingheighttraverse.model |
||||
|
||||
import androidx.annotation.WorkerThread |
||||
import com.bingce.controlapphelper.datasource.database.SurveyorDatabaseFactory |
||||
import com.bingce.controlapphelper.datasource.database.config.ConfigConstants |
||||
import com.bingce.controlapphelper.surveyor.method.model.MeasureConstant |
||||
|
||||
class StationSettingEnvironmentData { |
||||
var temperature: String? = null |
||||
var humidity: String? = null |
||||
var airPress: String? = null |
||||
|
||||
|
||||
/** |
||||
* 获取上次数据 |
||||
*/ |
||||
@WorkerThread |
||||
fun getLastData() { |
||||
val configDataSource = SurveyorDatabaseFactory.instance.getConfigDataSource() |
||||
val temperature = configDataSource.getByKeySync(ConfigConstants.KEY_LAST_TEMPERATURE) |
||||
val humidity = configDataSource.getByKeySync(ConfigConstants.KEY_LAST_HUMIDITY) |
||||
val airPress = configDataSource.getByKeySync(ConfigConstants.KEY_LAST_AIR_PRESSURE) |
||||
|
||||
this.temperature = temperature?.configValue |
||||
this.humidity = humidity?.configValue |
||||
this.airPress = airPress?.configValue |
||||
} |
||||
|
||||
/** |
||||
* 获取标准气象数据 |
||||
*/ |
||||
fun getStandardData() { |
||||
this.temperature = MeasureConstant.DEFAULT_TEMPERATURE |
||||
this.humidity = MeasureConstant.DEFAULT_HUMIDITY |
||||
this.airPress = MeasureConstant.DEFAULT_AIR_PRESSURE |
||||
} |
||||
|
||||
} |
@ -0,0 +1,58 @@ |
||||
package com.bingce.controlnetwork.newui.stationsettingheighttraverse.model |
||||
|
||||
import androidx.annotation.WorkerThread |
||||
import com.bingce.controlapphelper.datasource.database.SurveyorDatabaseFactory |
||||
import com.bingce.controlapphelper.datasource.database.surveyorstation.SurveyorStationRecord |
||||
import com.bingce.controlapphelper.datasource.database.surveyorstation.model.SurveyorPoint |
||||
|
||||
|
||||
/** |
||||
* 高度tab相关数据 |
||||
*/ |
||||
class StationSettingHeightData { |
||||
|
||||
private var instrumentHeight: String? = null |
||||
val pointList = mutableListOf<SurveyorPoint>() |
||||
|
||||
private val pointNameMap = hashMapOf<String, String>() |
||||
private val pointHeightMap = hashMapOf<String, String?>() |
||||
|
||||
@WorkerThread |
||||
fun initData(stationRecord: SurveyorStationRecord?) { |
||||
if (stationRecord?.items == null) return |
||||
instrumentHeight = stationRecord.instrumentHeight |
||||
|
||||
for (point in stationRecord.items) { |
||||
if (point.type == SurveyorPoint.TYPE_STATION || point.isWellSteel) { |
||||
//忽略站点和钢丝点 |
||||
continue |
||||
} |
||||
pointList.add(point) |
||||
val pointRecord = |
||||
SurveyorDatabaseFactory.instance.getPointDataSource().findByIdSync(point.originalPointId) |
||||
pointNameMap[point.originalPointId] = pointRecord.name |
||||
pointHeightMap[point.originalPointId] = point.prismHeight |
||||
} |
||||
} |
||||
|
||||
fun getPointName(pointId: String) = pointNameMap[pointId] |
||||
fun getPointHeight(pointId: String): String { |
||||
return pointHeightMap[pointId] ?: "0" |
||||
} |
||||
|
||||
fun getInstrumentHeight(): String { |
||||
return instrumentHeight ?: "0" |
||||
} |
||||
|
||||
/** |
||||
* 保存时 |
||||
*/ |
||||
fun updatePointData(pointIndex: Int, pointHeight: String) { |
||||
val surveyorPoint = pointList[pointIndex] |
||||
//点高 |
||||
surveyorPoint.prismHeight = pointHeight |
||||
} |
||||
|
||||
} |
||||
|
||||
|
@ -0,0 +1,88 @@ |
||||
<?xml version="1.0" encoding="utf-8"?> |
||||
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" |
||||
android:layout_width="match_parent" |
||||
android:layout_height="match_parent" |
||||
android:orientation="vertical"> |
||||
|
||||
<ScrollView |
||||
android:layout_width="match_parent" |
||||
android:layout_height="0dp" |
||||
android:layout_weight="1"> |
||||
|
||||
<LinearLayout |
||||
android:layout_width="match_parent" |
||||
android:layout_height="wrap_content" |
||||
android:orientation="vertical"> |
||||
|
||||
<LinearLayout |
||||
android:layout_width="match_parent" |
||||
android:layout_height="wrap_content" |
||||
android:layout_margin="12dp" |
||||
android:background="@drawable/round_white_16" |
||||
android:orientation="vertical" |
||||
android:showDividers="middle"> |
||||
|
||||
<include |
||||
android:id="@+id/ilDryTemperature" |
||||
layout="@layout/item_station_setting_1_edittext" /> |
||||
|
||||
<include |
||||
android:id="@+id/ilHumidityTemperature" |
||||
layout="@layout/item_station_setting_1_edittext" /> |
||||
|
||||
<include |
||||
android:id="@+id/ilAirPressure" |
||||
layout="@layout/item_station_setting_1_edittext" /> |
||||
|
||||
<include |
||||
android:id="@+id/ilAdditionConstant" |
||||
layout="@layout/item_station_setting_1_edittext" /> |
||||
|
||||
<include |
||||
android:id="@+id/ilmultiplicationConstant" |
||||
layout="@layout/item_station_setting_1_edittext" /> |
||||
|
||||
|
||||
</LinearLayout> |
||||
|
||||
|
||||
</LinearLayout> |
||||
|
||||
</ScrollView> |
||||
|
||||
<LinearLayout |
||||
android:layout_width="match_parent" |
||||
android:layout_height="wrap_content" |
||||
android:gravity="bottom" |
||||
android:orientation="horizontal" |
||||
android:padding="12dp" |
||||
android:visibility="visible"> |
||||
|
||||
<TextView |
||||
android:id="@+id/tvLastData" |
||||
android:layout_width="0dp" |
||||
android:layout_height="40dp" |
||||
android:layout_weight="1" |
||||
android:background="@drawable/round_btn_bg_gray_3" |
||||
android:gravity="center" |
||||
android:text="使用上次数据" |
||||
android:textColor="@color/colorPrimary" |
||||
android:textSize="@dimen/edit_text" /> |
||||
|
||||
<TextView |
||||
android:id="@+id/tvStandardData" |
||||
android:layout_width="0dp" |
||||
android:layout_height="40dp" |
||||
android:layout_marginStart="15dp" |
||||
android:layout_weight="1" |
||||
android:background="@drawable/round_btn_bg_colormay_3" |
||||
android:gravity="center" |
||||
android:text="使用标准气象" |
||||
android:textColor="@color/white" |
||||
android:textSize="@dimen/edit_text" /> |
||||
|
||||
</LinearLayout> |
||||
|
||||
|
||||
</LinearLayout> |
||||
|
@ -0,0 +1,91 @@ |
||||
<?xml version="1.0" encoding="utf-8"?> |
||||
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android" |
||||
android:layout_width="match_parent" |
||||
android:layout_height="match_parent"> |
||||
|
||||
<LinearLayout |
||||
android:layout_width="match_parent" |
||||
android:layout_height="wrap_content" |
||||
android:orientation="vertical" |
||||
android:padding="12dp"> |
||||
|
||||
<LinearLayout |
||||
android:layout_width="match_parent" |
||||
android:layout_height="wrap_content" |
||||
android:background="@drawable/round_white_16" |
||||
android:orientation="vertical" |
||||
android:showDividers="middle"> |
||||
|
||||
<LinearLayout |
||||
android:layout_width="match_parent" |
||||
android:layout_height="wrap_content" |
||||
android:layout_marginHorizontal="10dp" |
||||
android:gravity="center_vertical" |
||||
android:orientation="horizontal"> |
||||
|
||||
<TextView |
||||
android:layout_width="0dp" |
||||
android:layout_height="wrap_content" |
||||
android:layout_weight="2.6" |
||||
android:padding="10dp" |
||||
android:text="@string/category" |
||||
android:textAppearance="?attr/textAppearanceListItem" /> |
||||
|
||||
<TextView |
||||
android:layout_width="0dp" |
||||
android:layout_height="wrap_content" |
||||
android:layout_weight="3" |
||||
android:gravity="center" |
||||
android:padding="10dp" |
||||
android:text="@string/pre_test" |
||||
android:textAppearance="?attr/textAppearanceListItem" /> |
||||
|
||||
<TextView |
||||
android:layout_width="0dp" |
||||
android:layout_height="wrap_content" |
||||
android:layout_weight="3" |
||||
android:gravity="center" |
||||
android:padding="10dp" |
||||
android:text="@string/post_test" |
||||
android:textAppearance="?attr/textAppearanceListItem" /> |
||||
|
||||
<Button |
||||
android:id="@+id/button1" |
||||
style="@style/alert_dialog_button_normal" |
||||
android:layout_width="wrap_content" |
||||
android:layout_height="wrap_content" |
||||
android:layout_marginStart="9dp" |
||||
android:textColor="?colorPrimary" |
||||
android:textSize="15sp" |
||||
android:visibility="invisible" /> |
||||
|
||||
</LinearLayout> |
||||
|
||||
<View |
||||
android:layout_width="match_parent" |
||||
android:layout_height="0.5dp" |
||||
android:background="@color/color_cccccc" /> |
||||
|
||||
<include |
||||
android:id="@+id/ilInstrumentHeight" |
||||
layout="@layout/item_station_setting_2_edit_text_height_traverse" /> |
||||
|
||||
<include |
||||
android:id="@+id/ilBackPrismHeight" |
||||
layout="@layout/item_station_setting_2_edit_text_height_traverse" /> |
||||
|
||||
<include |
||||
android:id="@+id/ilFrontPrismHeight" |
||||
layout="@layout/item_station_setting_2_edit_text_height_traverse" /> |
||||
</LinearLayout> |
||||
|
||||
<TextView |
||||
android:layout_marginTop="12dp" |
||||
android:layout_width="match_parent" |
||||
android:layout_height="wrap_content" |
||||
android:text="@string/staton_setting_height_traverse_hint" |
||||
android:textColor="@color/nliveo_red_colorPrimary" /> |
||||
|
||||
</LinearLayout> |
||||
|
||||
</ScrollView> |
Loading…
Reference in new issue