diff --git a/app/src/main/java/com/yinuo/safetywatcher/watcher/base/BaseActivity.kt b/app/src/main/java/com/yinuo/safetywatcher/watcher/base/BaseActivity.kt index 78b2053..d1f8786 100644 --- a/app/src/main/java/com/yinuo/safetywatcher/watcher/base/BaseActivity.kt +++ b/app/src/main/java/com/yinuo/safetywatcher/watcher/base/BaseActivity.kt @@ -19,6 +19,7 @@ import androidx.appcompat.widget.AppCompatRadioButton import androidx.core.view.postDelayed import androidx.lifecycle.lifecycleScope import com.common.commonlib.utils.LogUtils +import com.common.commonlib.utils.MMKVUtils import com.loper7.date_time_picker.number_picker.NumberPicker import com.yinuo.safetywatcher.R import com.yinuo.safetywatcher.databinding.ActivityBaseBinding @@ -30,6 +31,9 @@ import com.yinuo.safetywatcher.watcher.utils.RecordHelper import com.yinuo.safetywatcher.watcher.utils.SoundUtils import com.yinuo.safetywatcher.watcher.utils.VolumeUtil import com.yinuo.safetywatcher.watcher.utils.trySetCommonBg +import kotlinx.coroutines.Dispatchers +import kotlinx.coroutines.GlobalScope +import kotlinx.coroutines.launch abstract class BaseActivity : AppCompatActivity() { @@ -201,6 +205,9 @@ abstract class BaseActivity : AppCompatActivity() { override fun onDestroy() { super.onDestroy() closeLoadingDialog() + GlobalScope.launch(Dispatchers.IO) { + MMKVUtils.sync() + } } var isHomeLongPress = false diff --git a/app/src/main/java/com/yinuo/safetywatcher/watcher/port/GasCache.kt b/app/src/main/java/com/yinuo/safetywatcher/watcher/port/GasCache.kt index 1942c46..5b89c68 100644 --- a/app/src/main/java/com/yinuo/safetywatcher/watcher/port/GasCache.kt +++ b/app/src/main/java/com/yinuo/safetywatcher/watcher/port/GasCache.kt @@ -18,7 +18,7 @@ object GasCache { val all = typeDao.getAll() val context = CommonApplication.getContext() all.forEach { - setNickname(it.type, it.nickName ?: "${it.type}传感器") + setNickname(it.type, getSensorNickName(it.type)) setStatus(it.type, getShowStatus(context, it.status)) } } diff --git a/app/src/main/java/com/yinuo/safetywatcher/watcher/port/GasUtilss.kt b/app/src/main/java/com/yinuo/safetywatcher/watcher/port/GasUtilss.kt index 5c5eeaa..3a9462d 100644 --- a/app/src/main/java/com/yinuo/safetywatcher/watcher/port/GasUtilss.kt +++ b/app/src/main/java/com/yinuo/safetywatcher/watcher/port/GasUtilss.kt @@ -247,4 +247,16 @@ fun getShowWarnTxt(warn: Warning?): String { } } return "" +} + +fun saveSensorNickName(gasType: String, name: String) { + if (name.isNotEmpty()) { + MMKVUtils.put("${gasType}_sensor_nickname", name) + GasCache.setNickname(gasType, name) + } +} + +fun getSensorNickName(gasType: String): String { + val localNickName = MMKVUtils.getString("${gasType}_sensor_nickname") + return if (localNickName?.isNotEmpty() == true) localNickName else "${gasType}传感器" } \ No newline at end of file diff --git a/app/src/main/java/com/yinuo/safetywatcher/watcher/ui/SensorActivity.kt b/app/src/main/java/com/yinuo/safetywatcher/watcher/ui/SensorActivity.kt index b0e98f5..83e0d3c 100644 --- a/app/src/main/java/com/yinuo/safetywatcher/watcher/ui/SensorActivity.kt +++ b/app/src/main/java/com/yinuo/safetywatcher/watcher/ui/SensorActivity.kt @@ -46,4 +46,9 @@ class SensorActivity : NoOptionsActivity() { } } } + + override fun onResume() { + super.onResume() + mAdapter?.notifyDataSetChanged() + } } \ No newline at end of file diff --git a/app/src/main/java/com/yinuo/safetywatcher/watcher/ui/SensorSettingActivity.kt b/app/src/main/java/com/yinuo/safetywatcher/watcher/ui/SensorSettingActivity.kt index 3f4a62e..dd8e16c 100644 --- a/app/src/main/java/com/yinuo/safetywatcher/watcher/ui/SensorSettingActivity.kt +++ b/app/src/main/java/com/yinuo/safetywatcher/watcher/ui/SensorSettingActivity.kt @@ -5,6 +5,7 @@ import android.view.KeyEvent import android.view.View import androidx.lifecycle.lifecycleScope import com.common.commonlib.db.DBUtils +import com.common.commonlib.utils.MMKVUtils import com.common.commonlib.utils.getGasNickName import com.common.commonlib.utils.saveGasNickName import com.yinuo.safetywatcher.R @@ -21,7 +22,9 @@ import com.yinuo.safetywatcher.watcher.port.cmd.CH4_H2 import com.yinuo.safetywatcher.watcher.port.cmd.O2 import com.yinuo.safetywatcher.watcher.port.cmd.VOCS import com.yinuo.safetywatcher.watcher.port.getLocalGasUnit +import com.yinuo.safetywatcher.watcher.port.getSensorNickName import com.yinuo.safetywatcher.watcher.port.saveGasUnit +import com.yinuo.safetywatcher.watcher.port.saveSensorNickName import com.yinuo.safetywatcher.watcher.utils.hideIme import com.yinuo.safetywatcher.watcher.utils.showIme import com.yinuo.safetywatcher.watcher.utils.showToast @@ -85,16 +88,18 @@ class SensorSettingActivity : NoOptionsActivity() { // 昵称和量程 lifecycleScope.launch(Dispatchers.IO) { - val typeDao = DBUtils.gasTypeDao() - val gasType = typeDao.getByName(gasName) +// val typeDao = DBUtils.gasTypeDao() +// val gasType = typeDao.getByName(gasName) val gasNickName = getGasNickName(gasName) + val sensorNickName = getSensorNickName(gasName) + val gasRange = ParseHelper.getGasRangeMax(gasName) launch(Dispatchers.Main) { - if (gasType != null && !gasType.nickName.isNullOrEmpty()) { - mBinding.etName.setText(gasType.nickName) - } else { - mBinding.etName.setText("${gasName}传感器") - } - val gasRange = ParseHelper.getGasRangeMax(gasName) +// if (gasType != null && !gasType.nickName.isNullOrEmpty()) { +// mBinding.etName.setText(gasType.nickName) +// } else { +// mBinding.etName.setText("${gasName}传感器") +// } + mBinding.etName.setText(sensorNickName) // mBinding.etStep.text = getString(R.string.sensor_step_txt).plus(": $gasRange") mBinding.etStep.hint = "量程:$gasRange $localGasUnit" mBinding.etGasName.hint = "气体名称:$gasNickName" @@ -247,16 +252,17 @@ class SensorSettingActivity : NoOptionsActivity() { private fun saveSetting() { val nickName = mBinding.etName.text.toString() - GlobalScope.launch(Dispatchers.IO) { - val typeDao = DBUtils.gasTypeDao() - val gasType = typeDao.getByName(gasName) - val ifEmpty = nickName.ifEmpty { "${gasName}传感器" } - gasType?.nickName = ifEmpty - GasCache.setNickname(gasName, ifEmpty) - if (gasType != null) { - typeDao.insert(gasType) - } - } + saveSensorNickName(gasName, nickName) +// GlobalScope.launch(Dispatchers.IO) { +// val typeDao = DBUtils.gasTypeDao() +// val gasType = typeDao.getByName(gasName) +// val ifEmpty = nickName.ifEmpty { "${gasName}传感器" } +// gasType?.nickName = ifEmpty +// GasCache.setNickname(gasName, ifEmpty) +// if (gasType != null) { +// typeDao.insert(gasType) +// } +// } // 气体名称 val gasNickName = mBinding.etGasName.text.toString() saveGasNickName(gasName, gasNickName) @@ -281,6 +287,7 @@ class SensorSettingActivity : NoOptionsActivity() { selectedUnit = UNIT_LEL } saveGasUnit(gasName, selectedUnit) + MMKVUtils.sync() // } showToast("保存成功") } diff --git a/app/src/main/java/com/yinuo/safetywatcher/watcher/ui/adapter/SensorAdapter.kt b/app/src/main/java/com/yinuo/safetywatcher/watcher/ui/adapter/SensorAdapter.kt index ae6d4a1..d9cb118 100644 --- a/app/src/main/java/com/yinuo/safetywatcher/watcher/ui/adapter/SensorAdapter.kt +++ b/app/src/main/java/com/yinuo/safetywatcher/watcher/ui/adapter/SensorAdapter.kt @@ -8,6 +8,7 @@ import com.yinuo.safetywatcher.R import com.yinuo.safetywatcher.databinding.LayoutItemSensorBinding import com.yinuo.safetywatcher.watcher.base.BaseRvAdapter import com.yinuo.safetywatcher.watcher.port.cmd.GasPortStatus +import com.yinuo.safetywatcher.watcher.port.getSensorNickName import com.yinuo.safetywatcher.watcher.port.getShowStatus import com.yinuo.safetywatcher.watcher.ui.SensorSettingActivity @@ -38,8 +39,8 @@ class SensorAdapter : intent.putExtra("index", data.sensorIndex) context.startActivity(intent) } - - binding.sensorName.text = data.nickName ?: "${data.type}传感器" + val sensorNickName = getSensorNickName(data.type) + binding.sensorName.text = sensorNickName val state = data.status binding.sensorStatus.text = getShowStatus(context, state) binding.sensorStatus.setTextColor(context.getColor(getShowStatusColor(state))) diff --git a/library-common/src/main/java/com/common/commonlib/utils/MMKVUtils.kt b/library-common/src/main/java/com/common/commonlib/utils/MMKVUtils.kt index 756fafb..13a4347 100644 --- a/library-common/src/main/java/com/common/commonlib/utils/MMKVUtils.kt +++ b/library-common/src/main/java/com/common/commonlib/utils/MMKVUtils.kt @@ -70,4 +70,8 @@ object MMKVUtils { else -> MMKV.defaultMMKV() } } + + fun sync(vararg args: Any) { + getKV(*args).sync() + } } \ No newline at end of file