diff --git a/.idea/misc.xml b/.idea/misc.xml index 139dc2a..e7cbf98 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -11,6 +11,7 @@ + diff --git a/.idea/misc.xml b/.idea/misc.xml index 139dc2a..e7cbf98 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -11,6 +11,7 @@ + diff --git a/app/src/main/java/com/casic/birmm/inspect/fragment/HomePageFragment.kt b/app/src/main/java/com/casic/birmm/inspect/fragment/HomePageFragment.kt index 91cd394..a757dfb 100644 --- a/app/src/main/java/com/casic/birmm/inspect/fragment/HomePageFragment.kt +++ b/app/src/main/java/com/casic/birmm/inspect/fragment/HomePageFragment.kt @@ -8,6 +8,7 @@ import android.graphics.Color import android.os.Bundle import android.os.Handler +import android.os.Message import android.os.Vibrator import android.util.Log import android.view.LayoutInflater @@ -37,10 +38,7 @@ import com.casic.birmm.inspect.vm.EventViewModel import com.casic.birmm.inspect.vm.InspectionViewModel import com.google.gson.Gson -import com.pengxh.kt.lite.extensions.navigatePageTo -import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.extensions.timestampToCompleteDate -import com.pengxh.kt.lite.extensions.timestampToDate +import com.pengxh.kt.lite.extensions.* import com.pengxh.kt.lite.utils.SaveKeyValues import com.pengxh.kt.lite.utils.WeakReferenceHandler import com.pengxh.kt.lite.utils.ble.BLEManager @@ -51,20 +49,15 @@ import com.pengxh.kt.lite.widget.dialog.AlertControlDialog import com.pengxh.kt.lite.widget.dialog.AlertInputDialog import com.pengxh.kt.lite.widget.dialog.BottomActionSheet -import com.qmuiteam.qmui.util.QMUIDisplayHelper import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet import kotlinx.android.synthetic.main.fragment_map_inspect.view.* import java.util.* @SuppressLint("MissingPermission") -class HomePageFragment : Fragment() { +class HomePageFragment : Fragment(), Handler.Callback { private val kTag = "HomePageFragment" private val gson by lazy { Gson() } - private val isOpenWarning = - SaveKeyValues.getValue(LocaleConstant.OPEN_WARNING, false) as Boolean - private val isAutoRecord = - SaveKeyValues.getValue(LocaleConstant.AUTO_RECORD, false) as Boolean private lateinit var homeView: View private lateinit var userData: UserInfoModel.DataModel private lateinit var vibrator: Vibrator @@ -88,7 +81,7 @@ homeView = inflater.inflate(R.layout.fragment_map_inspect, container, false) //根据不同设备状态栏高度设置statusBarView高度 - val statusBarHeight = QMUIDisplayHelper.getStatusBarHeight(requireContext()) + val statusBarHeight = requireContext().getStatusBarHeight() val params = homeView.statusBarView.layoutParams as LinearLayout.LayoutParams params.height = statusBarHeight homeView.statusBarView.setBackgroundColor(Color.parseColor("#D6EEFE")) @@ -109,7 +102,7 @@ val userModelJson = SaveKeyValues.getValue(LocaleConstant.USER_OBJECT, "") as String userData = gson.fromJson(userModelJson, UserInfoModel::class.java).data!! - weakReferenceHandler = WeakReferenceHandler(callback) + weakReferenceHandler = WeakReferenceHandler(this) if (BLEManager.initBLE(requireContext())) { if (!BLEManager.isBluetoothEnable()) { @@ -126,12 +119,10 @@ uiSettings.isRotateGesturesEnabled = false//不许地图随手势旋转角度 //显示定位小蓝点 locationStyle = MyLocationStyle() - locationStyle locationStyle.showMyLocation(true)//设置是否显示定位小蓝点 - locationStyle.interval(10 * 1000)////设置连续定位模式下的定位间隔,只在连续定位模式下生效。单位为毫秒 aMap.myLocationStyle = locationStyle aMap.isMyLocationEnabled = true - aMap.moveCamera(CameraUpdateFactory.zoomTo(14.toFloat())) + aMap.moveCamera(CameraUpdateFactory.zoomTo(16.toFloat())) initEvent() @@ -179,15 +170,14 @@ .setOnActionSheetListener(object : BottomActionSheet.OnActionSheetListener { override fun onActionItemClick(position: Int) { //获取当前定位 - val currentLng = SaveKeyValues.getValue( + val lng = SaveKeyValues.getValue( LocaleConstant.CURRENT_LONGITUDE, "0.0" ) as String - val currentLat = - SaveKeyValues.getValue(LocaleConstant.CURRENT_LATITUDE, "0.0") as String + val lat = SaveKeyValues.getValue( + LocaleConstant.CURRENT_LATITUDE, "0.0" + ) as String requireContext().navigatePageTo( - addAll( - position.toString(), model.id, model.name, currentLng, currentLat - ) + addAll(position.toString(), model.id, model.name, lng, lat) ) } }).build().show() @@ -303,7 +293,7 @@ } } - private val callback = Handler.Callback { msg -> + override fun handleMessage(msg: Message): Boolean { when (msg.what) { LocaleConstant.BLUETOOTH_ON -> { "蓝牙已开启".show(requireContext()) @@ -372,7 +362,7 @@ ) LocaleConstant.DISCONNECT_SUCCESS -> curConnectState = false } - true + return true } private fun startConnectDevice(device: BluetoothDevice) { @@ -529,11 +519,15 @@ homeView.settingsValueView.text = dataModel.alarmValue.toString() homeView.maxValueView.text = dataModel.maxPotency.toString() //判断是否需要报警 + val isOpenWarning = + SaveKeyValues.getValue(LocaleConstant.SINGLE_OPEN_WARNING, false) as Boolean if (isOpenWarning) { if (dataModel.potency >= dataModel.alarmValue) { //当前值大于设置值,需要报警 SoundPoolHelper.playSound(requireContext(), R.raw.alarm) vibrator.vibrate(1000) + val isAutoRecord = + SaveKeyValues.getValue(LocaleConstant.SINGLE_AUTO_RECORD, false) as Boolean if (isAutoRecord) { //如果连续超过10个报警,自动生成报警事件 alarmCount++ diff --git a/.idea/misc.xml b/.idea/misc.xml index 139dc2a..e7cbf98 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -11,6 +11,7 @@ + diff --git a/app/src/main/java/com/casic/birmm/inspect/fragment/HomePageFragment.kt b/app/src/main/java/com/casic/birmm/inspect/fragment/HomePageFragment.kt index 91cd394..a757dfb 100644 --- a/app/src/main/java/com/casic/birmm/inspect/fragment/HomePageFragment.kt +++ b/app/src/main/java/com/casic/birmm/inspect/fragment/HomePageFragment.kt @@ -8,6 +8,7 @@ import android.graphics.Color import android.os.Bundle import android.os.Handler +import android.os.Message import android.os.Vibrator import android.util.Log import android.view.LayoutInflater @@ -37,10 +38,7 @@ import com.casic.birmm.inspect.vm.EventViewModel import com.casic.birmm.inspect.vm.InspectionViewModel import com.google.gson.Gson -import com.pengxh.kt.lite.extensions.navigatePageTo -import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.extensions.timestampToCompleteDate -import com.pengxh.kt.lite.extensions.timestampToDate +import com.pengxh.kt.lite.extensions.* import com.pengxh.kt.lite.utils.SaveKeyValues import com.pengxh.kt.lite.utils.WeakReferenceHandler import com.pengxh.kt.lite.utils.ble.BLEManager @@ -51,20 +49,15 @@ import com.pengxh.kt.lite.widget.dialog.AlertControlDialog import com.pengxh.kt.lite.widget.dialog.AlertInputDialog import com.pengxh.kt.lite.widget.dialog.BottomActionSheet -import com.qmuiteam.qmui.util.QMUIDisplayHelper import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet import kotlinx.android.synthetic.main.fragment_map_inspect.view.* import java.util.* @SuppressLint("MissingPermission") -class HomePageFragment : Fragment() { +class HomePageFragment : Fragment(), Handler.Callback { private val kTag = "HomePageFragment" private val gson by lazy { Gson() } - private val isOpenWarning = - SaveKeyValues.getValue(LocaleConstant.OPEN_WARNING, false) as Boolean - private val isAutoRecord = - SaveKeyValues.getValue(LocaleConstant.AUTO_RECORD, false) as Boolean private lateinit var homeView: View private lateinit var userData: UserInfoModel.DataModel private lateinit var vibrator: Vibrator @@ -88,7 +81,7 @@ homeView = inflater.inflate(R.layout.fragment_map_inspect, container, false) //根据不同设备状态栏高度设置statusBarView高度 - val statusBarHeight = QMUIDisplayHelper.getStatusBarHeight(requireContext()) + val statusBarHeight = requireContext().getStatusBarHeight() val params = homeView.statusBarView.layoutParams as LinearLayout.LayoutParams params.height = statusBarHeight homeView.statusBarView.setBackgroundColor(Color.parseColor("#D6EEFE")) @@ -109,7 +102,7 @@ val userModelJson = SaveKeyValues.getValue(LocaleConstant.USER_OBJECT, "") as String userData = gson.fromJson(userModelJson, UserInfoModel::class.java).data!! - weakReferenceHandler = WeakReferenceHandler(callback) + weakReferenceHandler = WeakReferenceHandler(this) if (BLEManager.initBLE(requireContext())) { if (!BLEManager.isBluetoothEnable()) { @@ -126,12 +119,10 @@ uiSettings.isRotateGesturesEnabled = false//不许地图随手势旋转角度 //显示定位小蓝点 locationStyle = MyLocationStyle() - locationStyle locationStyle.showMyLocation(true)//设置是否显示定位小蓝点 - locationStyle.interval(10 * 1000)////设置连续定位模式下的定位间隔,只在连续定位模式下生效。单位为毫秒 aMap.myLocationStyle = locationStyle aMap.isMyLocationEnabled = true - aMap.moveCamera(CameraUpdateFactory.zoomTo(14.toFloat())) + aMap.moveCamera(CameraUpdateFactory.zoomTo(16.toFloat())) initEvent() @@ -179,15 +170,14 @@ .setOnActionSheetListener(object : BottomActionSheet.OnActionSheetListener { override fun onActionItemClick(position: Int) { //获取当前定位 - val currentLng = SaveKeyValues.getValue( + val lng = SaveKeyValues.getValue( LocaleConstant.CURRENT_LONGITUDE, "0.0" ) as String - val currentLat = - SaveKeyValues.getValue(LocaleConstant.CURRENT_LATITUDE, "0.0") as String + val lat = SaveKeyValues.getValue( + LocaleConstant.CURRENT_LATITUDE, "0.0" + ) as String requireContext().navigatePageTo( - addAll( - position.toString(), model.id, model.name, currentLng, currentLat - ) + addAll(position.toString(), model.id, model.name, lng, lat) ) } }).build().show() @@ -303,7 +293,7 @@ } } - private val callback = Handler.Callback { msg -> + override fun handleMessage(msg: Message): Boolean { when (msg.what) { LocaleConstant.BLUETOOTH_ON -> { "蓝牙已开启".show(requireContext()) @@ -372,7 +362,7 @@ ) LocaleConstant.DISCONNECT_SUCCESS -> curConnectState = false } - true + return true } private fun startConnectDevice(device: BluetoothDevice) { @@ -529,11 +519,15 @@ homeView.settingsValueView.text = dataModel.alarmValue.toString() homeView.maxValueView.text = dataModel.maxPotency.toString() //判断是否需要报警 + val isOpenWarning = + SaveKeyValues.getValue(LocaleConstant.SINGLE_OPEN_WARNING, false) as Boolean if (isOpenWarning) { if (dataModel.potency >= dataModel.alarmValue) { //当前值大于设置值,需要报警 SoundPoolHelper.playSound(requireContext(), R.raw.alarm) vibrator.vibrate(1000) + val isAutoRecord = + SaveKeyValues.getValue(LocaleConstant.SINGLE_AUTO_RECORD, false) as Boolean if (isAutoRecord) { //如果连续超过10个报警,自动生成报警事件 alarmCount++ diff --git a/app/src/main/java/com/casic/birmm/inspect/fragment/QueryEventFragment.kt b/app/src/main/java/com/casic/birmm/inspect/fragment/QueryEventFragment.kt index 82a23c9..d134e0b 100644 --- a/app/src/main/java/com/casic/birmm/inspect/fragment/QueryEventFragment.kt +++ b/app/src/main/java/com/casic/birmm/inspect/fragment/QueryEventFragment.kt @@ -3,7 +3,6 @@ import android.os.Handler import androidx.lifecycle.ViewModelProvider import com.casic.birmm.inspect.R -import com.casic.birmm.inspect.extensions.addAll import com.casic.birmm.inspect.extensions.combineImagePath import com.casic.birmm.inspect.model.EventListModel import com.casic.birmm.inspect.view.EventDetailActivity @@ -11,9 +10,9 @@ import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseFragment -import com.pengxh.kt.lite.extensions.filterSpaceOrEnter import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show +import com.pengxh.kt.lite.extensions.toJson import com.pengxh.kt.lite.utils.WeakReferenceHandler import kotlinx.android.synthetic.main.fragment_query_event.* import kotlinx.android.synthetic.main.include_empty_view.* @@ -83,7 +82,6 @@ override fun onResume() { super.onResume() - pageIndex = 1 getEventList() } @@ -119,7 +117,7 @@ viewHolder.setText(R.id.inspectMsgView, item.name) .setText(R.id.inspectTypeView, "类型:${item.type}") - .setText(R.id.inspectDateView, "上报时间:${item.createTime}") + .setText(R.id.inspectDateView, "时间:${item.createTime}") } } eventRecyclerView.adapter = eventListAdapter @@ -128,11 +126,7 @@ override fun onItemClicked( position: Int, t: EventListModel.DataModel.RowsModel ) { - requireContext().navigatePageTo( - addAll( - t.createTime, t.description!!.filterSpaceOrEnter(), t.data, t.images - ) - ) + requireContext().navigatePageTo(t.toJson()) } }) } diff --git a/.idea/misc.xml b/.idea/misc.xml index 139dc2a..e7cbf98 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -11,6 +11,7 @@ + diff --git a/app/src/main/java/com/casic/birmm/inspect/fragment/HomePageFragment.kt b/app/src/main/java/com/casic/birmm/inspect/fragment/HomePageFragment.kt index 91cd394..a757dfb 100644 --- a/app/src/main/java/com/casic/birmm/inspect/fragment/HomePageFragment.kt +++ b/app/src/main/java/com/casic/birmm/inspect/fragment/HomePageFragment.kt @@ -8,6 +8,7 @@ import android.graphics.Color import android.os.Bundle import android.os.Handler +import android.os.Message import android.os.Vibrator import android.util.Log import android.view.LayoutInflater @@ -37,10 +38,7 @@ import com.casic.birmm.inspect.vm.EventViewModel import com.casic.birmm.inspect.vm.InspectionViewModel import com.google.gson.Gson -import com.pengxh.kt.lite.extensions.navigatePageTo -import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.extensions.timestampToCompleteDate -import com.pengxh.kt.lite.extensions.timestampToDate +import com.pengxh.kt.lite.extensions.* import com.pengxh.kt.lite.utils.SaveKeyValues import com.pengxh.kt.lite.utils.WeakReferenceHandler import com.pengxh.kt.lite.utils.ble.BLEManager @@ -51,20 +49,15 @@ import com.pengxh.kt.lite.widget.dialog.AlertControlDialog import com.pengxh.kt.lite.widget.dialog.AlertInputDialog import com.pengxh.kt.lite.widget.dialog.BottomActionSheet -import com.qmuiteam.qmui.util.QMUIDisplayHelper import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet import kotlinx.android.synthetic.main.fragment_map_inspect.view.* import java.util.* @SuppressLint("MissingPermission") -class HomePageFragment : Fragment() { +class HomePageFragment : Fragment(), Handler.Callback { private val kTag = "HomePageFragment" private val gson by lazy { Gson() } - private val isOpenWarning = - SaveKeyValues.getValue(LocaleConstant.OPEN_WARNING, false) as Boolean - private val isAutoRecord = - SaveKeyValues.getValue(LocaleConstant.AUTO_RECORD, false) as Boolean private lateinit var homeView: View private lateinit var userData: UserInfoModel.DataModel private lateinit var vibrator: Vibrator @@ -88,7 +81,7 @@ homeView = inflater.inflate(R.layout.fragment_map_inspect, container, false) //根据不同设备状态栏高度设置statusBarView高度 - val statusBarHeight = QMUIDisplayHelper.getStatusBarHeight(requireContext()) + val statusBarHeight = requireContext().getStatusBarHeight() val params = homeView.statusBarView.layoutParams as LinearLayout.LayoutParams params.height = statusBarHeight homeView.statusBarView.setBackgroundColor(Color.parseColor("#D6EEFE")) @@ -109,7 +102,7 @@ val userModelJson = SaveKeyValues.getValue(LocaleConstant.USER_OBJECT, "") as String userData = gson.fromJson(userModelJson, UserInfoModel::class.java).data!! - weakReferenceHandler = WeakReferenceHandler(callback) + weakReferenceHandler = WeakReferenceHandler(this) if (BLEManager.initBLE(requireContext())) { if (!BLEManager.isBluetoothEnable()) { @@ -126,12 +119,10 @@ uiSettings.isRotateGesturesEnabled = false//不许地图随手势旋转角度 //显示定位小蓝点 locationStyle = MyLocationStyle() - locationStyle locationStyle.showMyLocation(true)//设置是否显示定位小蓝点 - locationStyle.interval(10 * 1000)////设置连续定位模式下的定位间隔,只在连续定位模式下生效。单位为毫秒 aMap.myLocationStyle = locationStyle aMap.isMyLocationEnabled = true - aMap.moveCamera(CameraUpdateFactory.zoomTo(14.toFloat())) + aMap.moveCamera(CameraUpdateFactory.zoomTo(16.toFloat())) initEvent() @@ -179,15 +170,14 @@ .setOnActionSheetListener(object : BottomActionSheet.OnActionSheetListener { override fun onActionItemClick(position: Int) { //获取当前定位 - val currentLng = SaveKeyValues.getValue( + val lng = SaveKeyValues.getValue( LocaleConstant.CURRENT_LONGITUDE, "0.0" ) as String - val currentLat = - SaveKeyValues.getValue(LocaleConstant.CURRENT_LATITUDE, "0.0") as String + val lat = SaveKeyValues.getValue( + LocaleConstant.CURRENT_LATITUDE, "0.0" + ) as String requireContext().navigatePageTo( - addAll( - position.toString(), model.id, model.name, currentLng, currentLat - ) + addAll(position.toString(), model.id, model.name, lng, lat) ) } }).build().show() @@ -303,7 +293,7 @@ } } - private val callback = Handler.Callback { msg -> + override fun handleMessage(msg: Message): Boolean { when (msg.what) { LocaleConstant.BLUETOOTH_ON -> { "蓝牙已开启".show(requireContext()) @@ -372,7 +362,7 @@ ) LocaleConstant.DISCONNECT_SUCCESS -> curConnectState = false } - true + return true } private fun startConnectDevice(device: BluetoothDevice) { @@ -529,11 +519,15 @@ homeView.settingsValueView.text = dataModel.alarmValue.toString() homeView.maxValueView.text = dataModel.maxPotency.toString() //判断是否需要报警 + val isOpenWarning = + SaveKeyValues.getValue(LocaleConstant.SINGLE_OPEN_WARNING, false) as Boolean if (isOpenWarning) { if (dataModel.potency >= dataModel.alarmValue) { //当前值大于设置值,需要报警 SoundPoolHelper.playSound(requireContext(), R.raw.alarm) vibrator.vibrate(1000) + val isAutoRecord = + SaveKeyValues.getValue(LocaleConstant.SINGLE_AUTO_RECORD, false) as Boolean if (isAutoRecord) { //如果连续超过10个报警,自动生成报警事件 alarmCount++ diff --git a/app/src/main/java/com/casic/birmm/inspect/fragment/QueryEventFragment.kt b/app/src/main/java/com/casic/birmm/inspect/fragment/QueryEventFragment.kt index 82a23c9..d134e0b 100644 --- a/app/src/main/java/com/casic/birmm/inspect/fragment/QueryEventFragment.kt +++ b/app/src/main/java/com/casic/birmm/inspect/fragment/QueryEventFragment.kt @@ -3,7 +3,6 @@ import android.os.Handler import androidx.lifecycle.ViewModelProvider import com.casic.birmm.inspect.R -import com.casic.birmm.inspect.extensions.addAll import com.casic.birmm.inspect.extensions.combineImagePath import com.casic.birmm.inspect.model.EventListModel import com.casic.birmm.inspect.view.EventDetailActivity @@ -11,9 +10,9 @@ import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseFragment -import com.pengxh.kt.lite.extensions.filterSpaceOrEnter import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show +import com.pengxh.kt.lite.extensions.toJson import com.pengxh.kt.lite.utils.WeakReferenceHandler import kotlinx.android.synthetic.main.fragment_query_event.* import kotlinx.android.synthetic.main.include_empty_view.* @@ -83,7 +82,6 @@ override fun onResume() { super.onResume() - pageIndex = 1 getEventList() } @@ -119,7 +117,7 @@ viewHolder.setText(R.id.inspectMsgView, item.name) .setText(R.id.inspectTypeView, "类型:${item.type}") - .setText(R.id.inspectDateView, "上报时间:${item.createTime}") + .setText(R.id.inspectDateView, "时间:${item.createTime}") } } eventRecyclerView.adapter = eventListAdapter @@ -128,11 +126,7 @@ override fun onItemClicked( position: Int, t: EventListModel.DataModel.RowsModel ) { - requireContext().navigatePageTo( - addAll( - t.createTime, t.description!!.filterSpaceOrEnter(), t.data, t.images - ) - ) + requireContext().navigatePageTo(t.toJson()) } }) } diff --git a/app/src/main/java/com/casic/birmm/inspect/single/fragment/HomePageFragment.kt b/app/src/main/java/com/casic/birmm/inspect/single/fragment/HomePageFragment.kt index 81ffffd..4a898ce 100644 --- a/app/src/main/java/com/casic/birmm/inspect/single/fragment/HomePageFragment.kt +++ b/app/src/main/java/com/casic/birmm/inspect/single/fragment/HomePageFragment.kt @@ -8,6 +8,7 @@ import android.graphics.Color import android.os.Bundle import android.os.Handler +import android.os.Message import android.os.Vibrator import android.util.Log import android.view.LayoutInflater @@ -33,10 +34,7 @@ import com.casic.birmm.inspect.utils.LocaleConstant import com.casic.birmm.inspect.utils.SoundPoolHelper import com.google.gson.Gson -import com.pengxh.kt.lite.extensions.navigatePageTo -import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.extensions.timestampToCompleteDate -import com.pengxh.kt.lite.extensions.timestampToDate +import com.pengxh.kt.lite.extensions.* import com.pengxh.kt.lite.utils.SaveKeyValues import com.pengxh.kt.lite.utils.WeakReferenceHandler import com.pengxh.kt.lite.utils.ble.BLEManager @@ -46,20 +44,15 @@ import com.pengxh.kt.lite.widget.dialog.AlertControlDialog import com.pengxh.kt.lite.widget.dialog.AlertInputDialog import com.pengxh.kt.lite.widget.dialog.BottomActionSheet -import com.qmuiteam.qmui.util.QMUIDisplayHelper import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet import kotlinx.android.synthetic.main.single_fragment_map_inspect.view.* import java.util.* @SuppressLint("MissingPermission") -class HomePageFragment : Fragment() { +class HomePageFragment : Fragment(), Handler.Callback { private val kTag = "HomePageFragment" private val gson by lazy { Gson() } - private val isOpenWarning = - SaveKeyValues.getValue(LocaleConstant.SINGLE_OPEN_WARNING, false) as Boolean - private val isAutoRecord = - SaveKeyValues.getValue(LocaleConstant.SINGLE_AUTO_RECORD, false) as Boolean private lateinit var homeView: View private lateinit var vibrator: Vibrator private lateinit var aMap: AMap @@ -80,14 +73,14 @@ homeView = inflater.inflate(R.layout.single_fragment_map_inspect, container, false) //根据不同设备状态栏高度设置statusBarView高度 - val statusBarHeight = QMUIDisplayHelper.getStatusBarHeight(requireContext()) + val statusBarHeight = requireContext().getStatusBarHeight() val params = homeView.statusBarView.layoutParams as LinearLayout.LayoutParams params.height = statusBarHeight homeView.statusBarView.setBackgroundColor(Color.parseColor("#D6EEFE")) homeView.statusBarView.requestLayout() vibrator = requireContext().getSystemService(Context.VIBRATOR_SERVICE) as Vibrator - weakReferenceHandler = WeakReferenceHandler(callback) + weakReferenceHandler = WeakReferenceHandler(this) if (BLEManager.initBLE(requireContext())) { if (!BLEManager.isBluetoothEnable()) { @@ -104,12 +97,10 @@ uiSettings.isRotateGesturesEnabled = false//不许地图随手势旋转角度 //显示定位小蓝点 locationStyle = MyLocationStyle() - locationStyle locationStyle.showMyLocation(true)//设置是否显示定位小蓝点 - locationStyle.interval(10 * 1000)////设置连续定位模式下的定位间隔,只在连续定位模式下生效。单位为毫秒 aMap.myLocationStyle = locationStyle aMap.isMyLocationEnabled = true - aMap.moveCamera(CameraUpdateFactory.zoomTo(14.toFloat())) + aMap.moveCamera(CameraUpdateFactory.zoomTo(16.toFloat())) initEvent() @@ -157,15 +148,14 @@ .setOnActionSheetListener(object : BottomActionSheet.OnActionSheetListener { override fun onActionItemClick(position: Int) { //获取当前定位 - val currentLng = SaveKeyValues.getValue( + val lng = SaveKeyValues.getValue( LocaleConstant.CURRENT_LONGITUDE, "0.0" ) as String - val currentLat = - SaveKeyValues.getValue(LocaleConstant.CURRENT_LATITUDE, "0.0") as String + val lat = SaveKeyValues.getValue( + LocaleConstant.CURRENT_LATITUDE, "0.0" + ) as String requireContext().navigatePageTo( - addAll( - position.toString(), model.id, model.name, currentLng, currentLat - ) + addAll(position.toString(), model.id, model.name, lng, lat) ) } }).build().show() @@ -281,7 +271,7 @@ } } - private val callback = Handler.Callback { msg -> + override fun handleMessage(msg: Message): Boolean { when (msg.what) { LocaleConstant.BLUETOOTH_ON -> { "蓝牙已开启".show(requireContext()) @@ -350,7 +340,7 @@ ) LocaleConstant.DISCONNECT_SUCCESS -> curConnectState = false } - true + return true } private fun startConnectDevice(device: BluetoothDevice) { @@ -502,11 +492,15 @@ homeView.settingsValueView.text = dataModel.alarmValue.toString() homeView.maxValueView.text = dataModel.maxPotency.toString() //判断是否需要报警 + val isOpenWarning = + SaveKeyValues.getValue(LocaleConstant.SINGLE_OPEN_WARNING, false) as Boolean if (isOpenWarning) { if (dataModel.potency >= dataModel.alarmValue) { //当前值大于设置值,需要报警 SoundPoolHelper.playSound(requireContext(), R.raw.alarm) vibrator.vibrate(1000) + val isAutoRecord = + SaveKeyValues.getValue(LocaleConstant.SINGLE_AUTO_RECORD, false) as Boolean if (isAutoRecord) { //如果连续超过10个报警,自动生成报警事件 alarmCount++ diff --git a/.idea/misc.xml b/.idea/misc.xml index 139dc2a..e7cbf98 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -11,6 +11,7 @@ + diff --git a/app/src/main/java/com/casic/birmm/inspect/fragment/HomePageFragment.kt b/app/src/main/java/com/casic/birmm/inspect/fragment/HomePageFragment.kt index 91cd394..a757dfb 100644 --- a/app/src/main/java/com/casic/birmm/inspect/fragment/HomePageFragment.kt +++ b/app/src/main/java/com/casic/birmm/inspect/fragment/HomePageFragment.kt @@ -8,6 +8,7 @@ import android.graphics.Color import android.os.Bundle import android.os.Handler +import android.os.Message import android.os.Vibrator import android.util.Log import android.view.LayoutInflater @@ -37,10 +38,7 @@ import com.casic.birmm.inspect.vm.EventViewModel import com.casic.birmm.inspect.vm.InspectionViewModel import com.google.gson.Gson -import com.pengxh.kt.lite.extensions.navigatePageTo -import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.extensions.timestampToCompleteDate -import com.pengxh.kt.lite.extensions.timestampToDate +import com.pengxh.kt.lite.extensions.* import com.pengxh.kt.lite.utils.SaveKeyValues import com.pengxh.kt.lite.utils.WeakReferenceHandler import com.pengxh.kt.lite.utils.ble.BLEManager @@ -51,20 +49,15 @@ import com.pengxh.kt.lite.widget.dialog.AlertControlDialog import com.pengxh.kt.lite.widget.dialog.AlertInputDialog import com.pengxh.kt.lite.widget.dialog.BottomActionSheet -import com.qmuiteam.qmui.util.QMUIDisplayHelper import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet import kotlinx.android.synthetic.main.fragment_map_inspect.view.* import java.util.* @SuppressLint("MissingPermission") -class HomePageFragment : Fragment() { +class HomePageFragment : Fragment(), Handler.Callback { private val kTag = "HomePageFragment" private val gson by lazy { Gson() } - private val isOpenWarning = - SaveKeyValues.getValue(LocaleConstant.OPEN_WARNING, false) as Boolean - private val isAutoRecord = - SaveKeyValues.getValue(LocaleConstant.AUTO_RECORD, false) as Boolean private lateinit var homeView: View private lateinit var userData: UserInfoModel.DataModel private lateinit var vibrator: Vibrator @@ -88,7 +81,7 @@ homeView = inflater.inflate(R.layout.fragment_map_inspect, container, false) //根据不同设备状态栏高度设置statusBarView高度 - val statusBarHeight = QMUIDisplayHelper.getStatusBarHeight(requireContext()) + val statusBarHeight = requireContext().getStatusBarHeight() val params = homeView.statusBarView.layoutParams as LinearLayout.LayoutParams params.height = statusBarHeight homeView.statusBarView.setBackgroundColor(Color.parseColor("#D6EEFE")) @@ -109,7 +102,7 @@ val userModelJson = SaveKeyValues.getValue(LocaleConstant.USER_OBJECT, "") as String userData = gson.fromJson(userModelJson, UserInfoModel::class.java).data!! - weakReferenceHandler = WeakReferenceHandler(callback) + weakReferenceHandler = WeakReferenceHandler(this) if (BLEManager.initBLE(requireContext())) { if (!BLEManager.isBluetoothEnable()) { @@ -126,12 +119,10 @@ uiSettings.isRotateGesturesEnabled = false//不许地图随手势旋转角度 //显示定位小蓝点 locationStyle = MyLocationStyle() - locationStyle locationStyle.showMyLocation(true)//设置是否显示定位小蓝点 - locationStyle.interval(10 * 1000)////设置连续定位模式下的定位间隔,只在连续定位模式下生效。单位为毫秒 aMap.myLocationStyle = locationStyle aMap.isMyLocationEnabled = true - aMap.moveCamera(CameraUpdateFactory.zoomTo(14.toFloat())) + aMap.moveCamera(CameraUpdateFactory.zoomTo(16.toFloat())) initEvent() @@ -179,15 +170,14 @@ .setOnActionSheetListener(object : BottomActionSheet.OnActionSheetListener { override fun onActionItemClick(position: Int) { //获取当前定位 - val currentLng = SaveKeyValues.getValue( + val lng = SaveKeyValues.getValue( LocaleConstant.CURRENT_LONGITUDE, "0.0" ) as String - val currentLat = - SaveKeyValues.getValue(LocaleConstant.CURRENT_LATITUDE, "0.0") as String + val lat = SaveKeyValues.getValue( + LocaleConstant.CURRENT_LATITUDE, "0.0" + ) as String requireContext().navigatePageTo( - addAll( - position.toString(), model.id, model.name, currentLng, currentLat - ) + addAll(position.toString(), model.id, model.name, lng, lat) ) } }).build().show() @@ -303,7 +293,7 @@ } } - private val callback = Handler.Callback { msg -> + override fun handleMessage(msg: Message): Boolean { when (msg.what) { LocaleConstant.BLUETOOTH_ON -> { "蓝牙已开启".show(requireContext()) @@ -372,7 +362,7 @@ ) LocaleConstant.DISCONNECT_SUCCESS -> curConnectState = false } - true + return true } private fun startConnectDevice(device: BluetoothDevice) { @@ -529,11 +519,15 @@ homeView.settingsValueView.text = dataModel.alarmValue.toString() homeView.maxValueView.text = dataModel.maxPotency.toString() //判断是否需要报警 + val isOpenWarning = + SaveKeyValues.getValue(LocaleConstant.SINGLE_OPEN_WARNING, false) as Boolean if (isOpenWarning) { if (dataModel.potency >= dataModel.alarmValue) { //当前值大于设置值,需要报警 SoundPoolHelper.playSound(requireContext(), R.raw.alarm) vibrator.vibrate(1000) + val isAutoRecord = + SaveKeyValues.getValue(LocaleConstant.SINGLE_AUTO_RECORD, false) as Boolean if (isAutoRecord) { //如果连续超过10个报警,自动生成报警事件 alarmCount++ diff --git a/app/src/main/java/com/casic/birmm/inspect/fragment/QueryEventFragment.kt b/app/src/main/java/com/casic/birmm/inspect/fragment/QueryEventFragment.kt index 82a23c9..d134e0b 100644 --- a/app/src/main/java/com/casic/birmm/inspect/fragment/QueryEventFragment.kt +++ b/app/src/main/java/com/casic/birmm/inspect/fragment/QueryEventFragment.kt @@ -3,7 +3,6 @@ import android.os.Handler import androidx.lifecycle.ViewModelProvider import com.casic.birmm.inspect.R -import com.casic.birmm.inspect.extensions.addAll import com.casic.birmm.inspect.extensions.combineImagePath import com.casic.birmm.inspect.model.EventListModel import com.casic.birmm.inspect.view.EventDetailActivity @@ -11,9 +10,9 @@ import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseFragment -import com.pengxh.kt.lite.extensions.filterSpaceOrEnter import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show +import com.pengxh.kt.lite.extensions.toJson import com.pengxh.kt.lite.utils.WeakReferenceHandler import kotlinx.android.synthetic.main.fragment_query_event.* import kotlinx.android.synthetic.main.include_empty_view.* @@ -83,7 +82,6 @@ override fun onResume() { super.onResume() - pageIndex = 1 getEventList() } @@ -119,7 +117,7 @@ viewHolder.setText(R.id.inspectMsgView, item.name) .setText(R.id.inspectTypeView, "类型:${item.type}") - .setText(R.id.inspectDateView, "上报时间:${item.createTime}") + .setText(R.id.inspectDateView, "时间:${item.createTime}") } } eventRecyclerView.adapter = eventListAdapter @@ -128,11 +126,7 @@ override fun onItemClicked( position: Int, t: EventListModel.DataModel.RowsModel ) { - requireContext().navigatePageTo( - addAll( - t.createTime, t.description!!.filterSpaceOrEnter(), t.data, t.images - ) - ) + requireContext().navigatePageTo(t.toJson()) } }) } diff --git a/app/src/main/java/com/casic/birmm/inspect/single/fragment/HomePageFragment.kt b/app/src/main/java/com/casic/birmm/inspect/single/fragment/HomePageFragment.kt index 81ffffd..4a898ce 100644 --- a/app/src/main/java/com/casic/birmm/inspect/single/fragment/HomePageFragment.kt +++ b/app/src/main/java/com/casic/birmm/inspect/single/fragment/HomePageFragment.kt @@ -8,6 +8,7 @@ import android.graphics.Color import android.os.Bundle import android.os.Handler +import android.os.Message import android.os.Vibrator import android.util.Log import android.view.LayoutInflater @@ -33,10 +34,7 @@ import com.casic.birmm.inspect.utils.LocaleConstant import com.casic.birmm.inspect.utils.SoundPoolHelper import com.google.gson.Gson -import com.pengxh.kt.lite.extensions.navigatePageTo -import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.extensions.timestampToCompleteDate -import com.pengxh.kt.lite.extensions.timestampToDate +import com.pengxh.kt.lite.extensions.* import com.pengxh.kt.lite.utils.SaveKeyValues import com.pengxh.kt.lite.utils.WeakReferenceHandler import com.pengxh.kt.lite.utils.ble.BLEManager @@ -46,20 +44,15 @@ import com.pengxh.kt.lite.widget.dialog.AlertControlDialog import com.pengxh.kt.lite.widget.dialog.AlertInputDialog import com.pengxh.kt.lite.widget.dialog.BottomActionSheet -import com.qmuiteam.qmui.util.QMUIDisplayHelper import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet import kotlinx.android.synthetic.main.single_fragment_map_inspect.view.* import java.util.* @SuppressLint("MissingPermission") -class HomePageFragment : Fragment() { +class HomePageFragment : Fragment(), Handler.Callback { private val kTag = "HomePageFragment" private val gson by lazy { Gson() } - private val isOpenWarning = - SaveKeyValues.getValue(LocaleConstant.SINGLE_OPEN_WARNING, false) as Boolean - private val isAutoRecord = - SaveKeyValues.getValue(LocaleConstant.SINGLE_AUTO_RECORD, false) as Boolean private lateinit var homeView: View private lateinit var vibrator: Vibrator private lateinit var aMap: AMap @@ -80,14 +73,14 @@ homeView = inflater.inflate(R.layout.single_fragment_map_inspect, container, false) //根据不同设备状态栏高度设置statusBarView高度 - val statusBarHeight = QMUIDisplayHelper.getStatusBarHeight(requireContext()) + val statusBarHeight = requireContext().getStatusBarHeight() val params = homeView.statusBarView.layoutParams as LinearLayout.LayoutParams params.height = statusBarHeight homeView.statusBarView.setBackgroundColor(Color.parseColor("#D6EEFE")) homeView.statusBarView.requestLayout() vibrator = requireContext().getSystemService(Context.VIBRATOR_SERVICE) as Vibrator - weakReferenceHandler = WeakReferenceHandler(callback) + weakReferenceHandler = WeakReferenceHandler(this) if (BLEManager.initBLE(requireContext())) { if (!BLEManager.isBluetoothEnable()) { @@ -104,12 +97,10 @@ uiSettings.isRotateGesturesEnabled = false//不许地图随手势旋转角度 //显示定位小蓝点 locationStyle = MyLocationStyle() - locationStyle locationStyle.showMyLocation(true)//设置是否显示定位小蓝点 - locationStyle.interval(10 * 1000)////设置连续定位模式下的定位间隔,只在连续定位模式下生效。单位为毫秒 aMap.myLocationStyle = locationStyle aMap.isMyLocationEnabled = true - aMap.moveCamera(CameraUpdateFactory.zoomTo(14.toFloat())) + aMap.moveCamera(CameraUpdateFactory.zoomTo(16.toFloat())) initEvent() @@ -157,15 +148,14 @@ .setOnActionSheetListener(object : BottomActionSheet.OnActionSheetListener { override fun onActionItemClick(position: Int) { //获取当前定位 - val currentLng = SaveKeyValues.getValue( + val lng = SaveKeyValues.getValue( LocaleConstant.CURRENT_LONGITUDE, "0.0" ) as String - val currentLat = - SaveKeyValues.getValue(LocaleConstant.CURRENT_LATITUDE, "0.0") as String + val lat = SaveKeyValues.getValue( + LocaleConstant.CURRENT_LATITUDE, "0.0" + ) as String requireContext().navigatePageTo( - addAll( - position.toString(), model.id, model.name, currentLng, currentLat - ) + addAll(position.toString(), model.id, model.name, lng, lat) ) } }).build().show() @@ -281,7 +271,7 @@ } } - private val callback = Handler.Callback { msg -> + override fun handleMessage(msg: Message): Boolean { when (msg.what) { LocaleConstant.BLUETOOTH_ON -> { "蓝牙已开启".show(requireContext()) @@ -350,7 +340,7 @@ ) LocaleConstant.DISCONNECT_SUCCESS -> curConnectState = false } - true + return true } private fun startConnectDevice(device: BluetoothDevice) { @@ -502,11 +492,15 @@ homeView.settingsValueView.text = dataModel.alarmValue.toString() homeView.maxValueView.text = dataModel.maxPotency.toString() //判断是否需要报警 + val isOpenWarning = + SaveKeyValues.getValue(LocaleConstant.SINGLE_OPEN_WARNING, false) as Boolean if (isOpenWarning) { if (dataModel.potency >= dataModel.alarmValue) { //当前值大于设置值,需要报警 SoundPoolHelper.playSound(requireContext(), R.raw.alarm) vibrator.vibrate(1000) + val isAutoRecord = + SaveKeyValues.getValue(LocaleConstant.SINGLE_AUTO_RECORD, false) as Boolean if (isAutoRecord) { //如果连续超过10个报警,自动生成报警事件 alarmCount++ diff --git a/app/src/main/java/com/casic/birmm/inspect/single/fragment/QueryEventFragment.kt b/app/src/main/java/com/casic/birmm/inspect/single/fragment/QueryEventFragment.kt index 96dba16..812d329 100644 --- a/app/src/main/java/com/casic/birmm/inspect/single/fragment/QueryEventFragment.kt +++ b/app/src/main/java/com/casic/birmm/inspect/single/fragment/QueryEventFragment.kt @@ -3,15 +3,14 @@ import androidx.lifecycle.lifecycleScope import com.bumptech.glide.Glide import com.casic.birmm.inspect.R -import com.casic.birmm.inspect.extensions.addAll import com.casic.birmm.inspect.model.EventListModel import com.casic.birmm.inspect.single.view.EventDetailActivity import com.casic.birmm.inspect.utils.DataBaseManager import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseFragment -import com.pengxh.kt.lite.extensions.filterSpaceOrEnter import com.pengxh.kt.lite.extensions.navigatePageTo +import com.pengxh.kt.lite.extensions.toJson import kotlinx.android.synthetic.main.include_empty_view.* import kotlinx.android.synthetic.main.single_fragment_query_event.* import kotlinx.coroutines.Dispatchers @@ -41,8 +40,7 @@ R.layout.item_event_rv_l, dataBeans ) { override fun convertView( - viewHolder: ViewHolder, - position: Int, + viewHolder: ViewHolder, position: Int, item: EventListModel.DataModel.RowsModel ) { if (!item.images.isNullOrBlank()) { @@ -61,22 +59,15 @@ } viewHolder.setText(R.id.inspectMsgView, item.name) - .setText(R.id.inspectMsgView, "类型:${item.type}") - .setText(R.id.inspectMsgView, "上报时间:${item.createTime}") + .setText(R.id.inspectTypeView, "类型:${item.type}") + .setText(R.id.inspectDateView, "时间:${item.createTime}") } } eventRecyclerView.adapter = eventListAdapter eventListAdapter.setOnItemClickedListener(object : NormalRecyclerAdapter.OnItemClickedListener { override fun onItemClicked(position: Int, t: EventListModel.DataModel.RowsModel) { - requireContext().navigatePageTo( - addAll( - t.createTime.toString(), - t.description!!.filterSpaceOrEnter(), - t.data.toString(), - t.images.toString() - ) - ) + requireContext().navigatePageTo(t.toJson()) } }) } diff --git a/.idea/misc.xml b/.idea/misc.xml index 139dc2a..e7cbf98 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -11,6 +11,7 @@ + diff --git a/app/src/main/java/com/casic/birmm/inspect/fragment/HomePageFragment.kt b/app/src/main/java/com/casic/birmm/inspect/fragment/HomePageFragment.kt index 91cd394..a757dfb 100644 --- a/app/src/main/java/com/casic/birmm/inspect/fragment/HomePageFragment.kt +++ b/app/src/main/java/com/casic/birmm/inspect/fragment/HomePageFragment.kt @@ -8,6 +8,7 @@ import android.graphics.Color import android.os.Bundle import android.os.Handler +import android.os.Message import android.os.Vibrator import android.util.Log import android.view.LayoutInflater @@ -37,10 +38,7 @@ import com.casic.birmm.inspect.vm.EventViewModel import com.casic.birmm.inspect.vm.InspectionViewModel import com.google.gson.Gson -import com.pengxh.kt.lite.extensions.navigatePageTo -import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.extensions.timestampToCompleteDate -import com.pengxh.kt.lite.extensions.timestampToDate +import com.pengxh.kt.lite.extensions.* import com.pengxh.kt.lite.utils.SaveKeyValues import com.pengxh.kt.lite.utils.WeakReferenceHandler import com.pengxh.kt.lite.utils.ble.BLEManager @@ -51,20 +49,15 @@ import com.pengxh.kt.lite.widget.dialog.AlertControlDialog import com.pengxh.kt.lite.widget.dialog.AlertInputDialog import com.pengxh.kt.lite.widget.dialog.BottomActionSheet -import com.qmuiteam.qmui.util.QMUIDisplayHelper import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet import kotlinx.android.synthetic.main.fragment_map_inspect.view.* import java.util.* @SuppressLint("MissingPermission") -class HomePageFragment : Fragment() { +class HomePageFragment : Fragment(), Handler.Callback { private val kTag = "HomePageFragment" private val gson by lazy { Gson() } - private val isOpenWarning = - SaveKeyValues.getValue(LocaleConstant.OPEN_WARNING, false) as Boolean - private val isAutoRecord = - SaveKeyValues.getValue(LocaleConstant.AUTO_RECORD, false) as Boolean private lateinit var homeView: View private lateinit var userData: UserInfoModel.DataModel private lateinit var vibrator: Vibrator @@ -88,7 +81,7 @@ homeView = inflater.inflate(R.layout.fragment_map_inspect, container, false) //根据不同设备状态栏高度设置statusBarView高度 - val statusBarHeight = QMUIDisplayHelper.getStatusBarHeight(requireContext()) + val statusBarHeight = requireContext().getStatusBarHeight() val params = homeView.statusBarView.layoutParams as LinearLayout.LayoutParams params.height = statusBarHeight homeView.statusBarView.setBackgroundColor(Color.parseColor("#D6EEFE")) @@ -109,7 +102,7 @@ val userModelJson = SaveKeyValues.getValue(LocaleConstant.USER_OBJECT, "") as String userData = gson.fromJson(userModelJson, UserInfoModel::class.java).data!! - weakReferenceHandler = WeakReferenceHandler(callback) + weakReferenceHandler = WeakReferenceHandler(this) if (BLEManager.initBLE(requireContext())) { if (!BLEManager.isBluetoothEnable()) { @@ -126,12 +119,10 @@ uiSettings.isRotateGesturesEnabled = false//不许地图随手势旋转角度 //显示定位小蓝点 locationStyle = MyLocationStyle() - locationStyle locationStyle.showMyLocation(true)//设置是否显示定位小蓝点 - locationStyle.interval(10 * 1000)////设置连续定位模式下的定位间隔,只在连续定位模式下生效。单位为毫秒 aMap.myLocationStyle = locationStyle aMap.isMyLocationEnabled = true - aMap.moveCamera(CameraUpdateFactory.zoomTo(14.toFloat())) + aMap.moveCamera(CameraUpdateFactory.zoomTo(16.toFloat())) initEvent() @@ -179,15 +170,14 @@ .setOnActionSheetListener(object : BottomActionSheet.OnActionSheetListener { override fun onActionItemClick(position: Int) { //获取当前定位 - val currentLng = SaveKeyValues.getValue( + val lng = SaveKeyValues.getValue( LocaleConstant.CURRENT_LONGITUDE, "0.0" ) as String - val currentLat = - SaveKeyValues.getValue(LocaleConstant.CURRENT_LATITUDE, "0.0") as String + val lat = SaveKeyValues.getValue( + LocaleConstant.CURRENT_LATITUDE, "0.0" + ) as String requireContext().navigatePageTo( - addAll( - position.toString(), model.id, model.name, currentLng, currentLat - ) + addAll(position.toString(), model.id, model.name, lng, lat) ) } }).build().show() @@ -303,7 +293,7 @@ } } - private val callback = Handler.Callback { msg -> + override fun handleMessage(msg: Message): Boolean { when (msg.what) { LocaleConstant.BLUETOOTH_ON -> { "蓝牙已开启".show(requireContext()) @@ -372,7 +362,7 @@ ) LocaleConstant.DISCONNECT_SUCCESS -> curConnectState = false } - true + return true } private fun startConnectDevice(device: BluetoothDevice) { @@ -529,11 +519,15 @@ homeView.settingsValueView.text = dataModel.alarmValue.toString() homeView.maxValueView.text = dataModel.maxPotency.toString() //判断是否需要报警 + val isOpenWarning = + SaveKeyValues.getValue(LocaleConstant.SINGLE_OPEN_WARNING, false) as Boolean if (isOpenWarning) { if (dataModel.potency >= dataModel.alarmValue) { //当前值大于设置值,需要报警 SoundPoolHelper.playSound(requireContext(), R.raw.alarm) vibrator.vibrate(1000) + val isAutoRecord = + SaveKeyValues.getValue(LocaleConstant.SINGLE_AUTO_RECORD, false) as Boolean if (isAutoRecord) { //如果连续超过10个报警,自动生成报警事件 alarmCount++ diff --git a/app/src/main/java/com/casic/birmm/inspect/fragment/QueryEventFragment.kt b/app/src/main/java/com/casic/birmm/inspect/fragment/QueryEventFragment.kt index 82a23c9..d134e0b 100644 --- a/app/src/main/java/com/casic/birmm/inspect/fragment/QueryEventFragment.kt +++ b/app/src/main/java/com/casic/birmm/inspect/fragment/QueryEventFragment.kt @@ -3,7 +3,6 @@ import android.os.Handler import androidx.lifecycle.ViewModelProvider import com.casic.birmm.inspect.R -import com.casic.birmm.inspect.extensions.addAll import com.casic.birmm.inspect.extensions.combineImagePath import com.casic.birmm.inspect.model.EventListModel import com.casic.birmm.inspect.view.EventDetailActivity @@ -11,9 +10,9 @@ import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseFragment -import com.pengxh.kt.lite.extensions.filterSpaceOrEnter import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show +import com.pengxh.kt.lite.extensions.toJson import com.pengxh.kt.lite.utils.WeakReferenceHandler import kotlinx.android.synthetic.main.fragment_query_event.* import kotlinx.android.synthetic.main.include_empty_view.* @@ -83,7 +82,6 @@ override fun onResume() { super.onResume() - pageIndex = 1 getEventList() } @@ -119,7 +117,7 @@ viewHolder.setText(R.id.inspectMsgView, item.name) .setText(R.id.inspectTypeView, "类型:${item.type}") - .setText(R.id.inspectDateView, "上报时间:${item.createTime}") + .setText(R.id.inspectDateView, "时间:${item.createTime}") } } eventRecyclerView.adapter = eventListAdapter @@ -128,11 +126,7 @@ override fun onItemClicked( position: Int, t: EventListModel.DataModel.RowsModel ) { - requireContext().navigatePageTo( - addAll( - t.createTime, t.description!!.filterSpaceOrEnter(), t.data, t.images - ) - ) + requireContext().navigatePageTo(t.toJson()) } }) } diff --git a/app/src/main/java/com/casic/birmm/inspect/single/fragment/HomePageFragment.kt b/app/src/main/java/com/casic/birmm/inspect/single/fragment/HomePageFragment.kt index 81ffffd..4a898ce 100644 --- a/app/src/main/java/com/casic/birmm/inspect/single/fragment/HomePageFragment.kt +++ b/app/src/main/java/com/casic/birmm/inspect/single/fragment/HomePageFragment.kt @@ -8,6 +8,7 @@ import android.graphics.Color import android.os.Bundle import android.os.Handler +import android.os.Message import android.os.Vibrator import android.util.Log import android.view.LayoutInflater @@ -33,10 +34,7 @@ import com.casic.birmm.inspect.utils.LocaleConstant import com.casic.birmm.inspect.utils.SoundPoolHelper import com.google.gson.Gson -import com.pengxh.kt.lite.extensions.navigatePageTo -import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.extensions.timestampToCompleteDate -import com.pengxh.kt.lite.extensions.timestampToDate +import com.pengxh.kt.lite.extensions.* import com.pengxh.kt.lite.utils.SaveKeyValues import com.pengxh.kt.lite.utils.WeakReferenceHandler import com.pengxh.kt.lite.utils.ble.BLEManager @@ -46,20 +44,15 @@ import com.pengxh.kt.lite.widget.dialog.AlertControlDialog import com.pengxh.kt.lite.widget.dialog.AlertInputDialog import com.pengxh.kt.lite.widget.dialog.BottomActionSheet -import com.qmuiteam.qmui.util.QMUIDisplayHelper import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet import kotlinx.android.synthetic.main.single_fragment_map_inspect.view.* import java.util.* @SuppressLint("MissingPermission") -class HomePageFragment : Fragment() { +class HomePageFragment : Fragment(), Handler.Callback { private val kTag = "HomePageFragment" private val gson by lazy { Gson() } - private val isOpenWarning = - SaveKeyValues.getValue(LocaleConstant.SINGLE_OPEN_WARNING, false) as Boolean - private val isAutoRecord = - SaveKeyValues.getValue(LocaleConstant.SINGLE_AUTO_RECORD, false) as Boolean private lateinit var homeView: View private lateinit var vibrator: Vibrator private lateinit var aMap: AMap @@ -80,14 +73,14 @@ homeView = inflater.inflate(R.layout.single_fragment_map_inspect, container, false) //根据不同设备状态栏高度设置statusBarView高度 - val statusBarHeight = QMUIDisplayHelper.getStatusBarHeight(requireContext()) + val statusBarHeight = requireContext().getStatusBarHeight() val params = homeView.statusBarView.layoutParams as LinearLayout.LayoutParams params.height = statusBarHeight homeView.statusBarView.setBackgroundColor(Color.parseColor("#D6EEFE")) homeView.statusBarView.requestLayout() vibrator = requireContext().getSystemService(Context.VIBRATOR_SERVICE) as Vibrator - weakReferenceHandler = WeakReferenceHandler(callback) + weakReferenceHandler = WeakReferenceHandler(this) if (BLEManager.initBLE(requireContext())) { if (!BLEManager.isBluetoothEnable()) { @@ -104,12 +97,10 @@ uiSettings.isRotateGesturesEnabled = false//不许地图随手势旋转角度 //显示定位小蓝点 locationStyle = MyLocationStyle() - locationStyle locationStyle.showMyLocation(true)//设置是否显示定位小蓝点 - locationStyle.interval(10 * 1000)////设置连续定位模式下的定位间隔,只在连续定位模式下生效。单位为毫秒 aMap.myLocationStyle = locationStyle aMap.isMyLocationEnabled = true - aMap.moveCamera(CameraUpdateFactory.zoomTo(14.toFloat())) + aMap.moveCamera(CameraUpdateFactory.zoomTo(16.toFloat())) initEvent() @@ -157,15 +148,14 @@ .setOnActionSheetListener(object : BottomActionSheet.OnActionSheetListener { override fun onActionItemClick(position: Int) { //获取当前定位 - val currentLng = SaveKeyValues.getValue( + val lng = SaveKeyValues.getValue( LocaleConstant.CURRENT_LONGITUDE, "0.0" ) as String - val currentLat = - SaveKeyValues.getValue(LocaleConstant.CURRENT_LATITUDE, "0.0") as String + val lat = SaveKeyValues.getValue( + LocaleConstant.CURRENT_LATITUDE, "0.0" + ) as String requireContext().navigatePageTo( - addAll( - position.toString(), model.id, model.name, currentLng, currentLat - ) + addAll(position.toString(), model.id, model.name, lng, lat) ) } }).build().show() @@ -281,7 +271,7 @@ } } - private val callback = Handler.Callback { msg -> + override fun handleMessage(msg: Message): Boolean { when (msg.what) { LocaleConstant.BLUETOOTH_ON -> { "蓝牙已开启".show(requireContext()) @@ -350,7 +340,7 @@ ) LocaleConstant.DISCONNECT_SUCCESS -> curConnectState = false } - true + return true } private fun startConnectDevice(device: BluetoothDevice) { @@ -502,11 +492,15 @@ homeView.settingsValueView.text = dataModel.alarmValue.toString() homeView.maxValueView.text = dataModel.maxPotency.toString() //判断是否需要报警 + val isOpenWarning = + SaveKeyValues.getValue(LocaleConstant.SINGLE_OPEN_WARNING, false) as Boolean if (isOpenWarning) { if (dataModel.potency >= dataModel.alarmValue) { //当前值大于设置值,需要报警 SoundPoolHelper.playSound(requireContext(), R.raw.alarm) vibrator.vibrate(1000) + val isAutoRecord = + SaveKeyValues.getValue(LocaleConstant.SINGLE_AUTO_RECORD, false) as Boolean if (isAutoRecord) { //如果连续超过10个报警,自动生成报警事件 alarmCount++ diff --git a/app/src/main/java/com/casic/birmm/inspect/single/fragment/QueryEventFragment.kt b/app/src/main/java/com/casic/birmm/inspect/single/fragment/QueryEventFragment.kt index 96dba16..812d329 100644 --- a/app/src/main/java/com/casic/birmm/inspect/single/fragment/QueryEventFragment.kt +++ b/app/src/main/java/com/casic/birmm/inspect/single/fragment/QueryEventFragment.kt @@ -3,15 +3,14 @@ import androidx.lifecycle.lifecycleScope import com.bumptech.glide.Glide import com.casic.birmm.inspect.R -import com.casic.birmm.inspect.extensions.addAll import com.casic.birmm.inspect.model.EventListModel import com.casic.birmm.inspect.single.view.EventDetailActivity import com.casic.birmm.inspect.utils.DataBaseManager import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseFragment -import com.pengxh.kt.lite.extensions.filterSpaceOrEnter import com.pengxh.kt.lite.extensions.navigatePageTo +import com.pengxh.kt.lite.extensions.toJson import kotlinx.android.synthetic.main.include_empty_view.* import kotlinx.android.synthetic.main.single_fragment_query_event.* import kotlinx.coroutines.Dispatchers @@ -41,8 +40,7 @@ R.layout.item_event_rv_l, dataBeans ) { override fun convertView( - viewHolder: ViewHolder, - position: Int, + viewHolder: ViewHolder, position: Int, item: EventListModel.DataModel.RowsModel ) { if (!item.images.isNullOrBlank()) { @@ -61,22 +59,15 @@ } viewHolder.setText(R.id.inspectMsgView, item.name) - .setText(R.id.inspectMsgView, "类型:${item.type}") - .setText(R.id.inspectMsgView, "上报时间:${item.createTime}") + .setText(R.id.inspectTypeView, "类型:${item.type}") + .setText(R.id.inspectDateView, "时间:${item.createTime}") } } eventRecyclerView.adapter = eventListAdapter eventListAdapter.setOnItemClickedListener(object : NormalRecyclerAdapter.OnItemClickedListener { override fun onItemClicked(position: Int, t: EventListModel.DataModel.RowsModel) { - requireContext().navigatePageTo( - addAll( - t.createTime.toString(), - t.description!!.filterSpaceOrEnter(), - t.data.toString(), - t.images.toString() - ) - ) + requireContext().navigatePageTo(t.toJson()) } }) } diff --git a/app/src/main/java/com/casic/birmm/inspect/single/view/EventDetailActivity.kt b/app/src/main/java/com/casic/birmm/inspect/single/view/EventDetailActivity.kt index f00bbae..b7d59e8 100644 --- a/app/src/main/java/com/casic/birmm/inspect/single/view/EventDetailActivity.kt +++ b/app/src/main/java/com/casic/birmm/inspect/single/view/EventDetailActivity.kt @@ -2,7 +2,10 @@ import androidx.core.content.ContextCompat import com.casic.birmm.inspect.R +import com.casic.birmm.inspect.model.EventListModel import com.casic.birmm.inspect.view.BigImageActivity +import com.google.gson.Gson +import com.google.gson.reflect.TypeToken import com.gyf.immersionbar.ImmersionBar import com.pengxh.kt.lite.adapter.ReadOnlyImageAdapter import com.pengxh.kt.lite.base.KotlinBaseActivity @@ -15,12 +18,17 @@ class EventDetailActivity : KotlinBaseActivity() { - override fun initData() { - val args = intent.getStringArrayListExtra(Constant.INTENT_PARAM)!! + private val gson by lazy { Gson() } - createTimeView.text = args[0] - descriptionView.text = args[1] - val data = args[2] + override fun initData() { + val args = intent.getStringExtra(Constant.INTENT_PARAM)!! + val model = gson.fromJson( + args, object : TypeToken() {}.type + ) + + createTimeView.text = model.createTime + descriptionView.text = model.description + val data = model.data val value = if (data.isNullOrBlank()) { "0.0" } else { @@ -28,7 +36,7 @@ } dataView.text = value - val images = args[3] + val images = model.images /** * images: 2020-12/6528aeb21cff426c91c43a7f8b716d1e.jpg diff --git a/.idea/misc.xml b/.idea/misc.xml index 139dc2a..e7cbf98 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -11,6 +11,7 @@ + diff --git a/app/src/main/java/com/casic/birmm/inspect/fragment/HomePageFragment.kt b/app/src/main/java/com/casic/birmm/inspect/fragment/HomePageFragment.kt index 91cd394..a757dfb 100644 --- a/app/src/main/java/com/casic/birmm/inspect/fragment/HomePageFragment.kt +++ b/app/src/main/java/com/casic/birmm/inspect/fragment/HomePageFragment.kt @@ -8,6 +8,7 @@ import android.graphics.Color import android.os.Bundle import android.os.Handler +import android.os.Message import android.os.Vibrator import android.util.Log import android.view.LayoutInflater @@ -37,10 +38,7 @@ import com.casic.birmm.inspect.vm.EventViewModel import com.casic.birmm.inspect.vm.InspectionViewModel import com.google.gson.Gson -import com.pengxh.kt.lite.extensions.navigatePageTo -import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.extensions.timestampToCompleteDate -import com.pengxh.kt.lite.extensions.timestampToDate +import com.pengxh.kt.lite.extensions.* import com.pengxh.kt.lite.utils.SaveKeyValues import com.pengxh.kt.lite.utils.WeakReferenceHandler import com.pengxh.kt.lite.utils.ble.BLEManager @@ -51,20 +49,15 @@ import com.pengxh.kt.lite.widget.dialog.AlertControlDialog import com.pengxh.kt.lite.widget.dialog.AlertInputDialog import com.pengxh.kt.lite.widget.dialog.BottomActionSheet -import com.qmuiteam.qmui.util.QMUIDisplayHelper import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet import kotlinx.android.synthetic.main.fragment_map_inspect.view.* import java.util.* @SuppressLint("MissingPermission") -class HomePageFragment : Fragment() { +class HomePageFragment : Fragment(), Handler.Callback { private val kTag = "HomePageFragment" private val gson by lazy { Gson() } - private val isOpenWarning = - SaveKeyValues.getValue(LocaleConstant.OPEN_WARNING, false) as Boolean - private val isAutoRecord = - SaveKeyValues.getValue(LocaleConstant.AUTO_RECORD, false) as Boolean private lateinit var homeView: View private lateinit var userData: UserInfoModel.DataModel private lateinit var vibrator: Vibrator @@ -88,7 +81,7 @@ homeView = inflater.inflate(R.layout.fragment_map_inspect, container, false) //根据不同设备状态栏高度设置statusBarView高度 - val statusBarHeight = QMUIDisplayHelper.getStatusBarHeight(requireContext()) + val statusBarHeight = requireContext().getStatusBarHeight() val params = homeView.statusBarView.layoutParams as LinearLayout.LayoutParams params.height = statusBarHeight homeView.statusBarView.setBackgroundColor(Color.parseColor("#D6EEFE")) @@ -109,7 +102,7 @@ val userModelJson = SaveKeyValues.getValue(LocaleConstant.USER_OBJECT, "") as String userData = gson.fromJson(userModelJson, UserInfoModel::class.java).data!! - weakReferenceHandler = WeakReferenceHandler(callback) + weakReferenceHandler = WeakReferenceHandler(this) if (BLEManager.initBLE(requireContext())) { if (!BLEManager.isBluetoothEnable()) { @@ -126,12 +119,10 @@ uiSettings.isRotateGesturesEnabled = false//不许地图随手势旋转角度 //显示定位小蓝点 locationStyle = MyLocationStyle() - locationStyle locationStyle.showMyLocation(true)//设置是否显示定位小蓝点 - locationStyle.interval(10 * 1000)////设置连续定位模式下的定位间隔,只在连续定位模式下生效。单位为毫秒 aMap.myLocationStyle = locationStyle aMap.isMyLocationEnabled = true - aMap.moveCamera(CameraUpdateFactory.zoomTo(14.toFloat())) + aMap.moveCamera(CameraUpdateFactory.zoomTo(16.toFloat())) initEvent() @@ -179,15 +170,14 @@ .setOnActionSheetListener(object : BottomActionSheet.OnActionSheetListener { override fun onActionItemClick(position: Int) { //获取当前定位 - val currentLng = SaveKeyValues.getValue( + val lng = SaveKeyValues.getValue( LocaleConstant.CURRENT_LONGITUDE, "0.0" ) as String - val currentLat = - SaveKeyValues.getValue(LocaleConstant.CURRENT_LATITUDE, "0.0") as String + val lat = SaveKeyValues.getValue( + LocaleConstant.CURRENT_LATITUDE, "0.0" + ) as String requireContext().navigatePageTo( - addAll( - position.toString(), model.id, model.name, currentLng, currentLat - ) + addAll(position.toString(), model.id, model.name, lng, lat) ) } }).build().show() @@ -303,7 +293,7 @@ } } - private val callback = Handler.Callback { msg -> + override fun handleMessage(msg: Message): Boolean { when (msg.what) { LocaleConstant.BLUETOOTH_ON -> { "蓝牙已开启".show(requireContext()) @@ -372,7 +362,7 @@ ) LocaleConstant.DISCONNECT_SUCCESS -> curConnectState = false } - true + return true } private fun startConnectDevice(device: BluetoothDevice) { @@ -529,11 +519,15 @@ homeView.settingsValueView.text = dataModel.alarmValue.toString() homeView.maxValueView.text = dataModel.maxPotency.toString() //判断是否需要报警 + val isOpenWarning = + SaveKeyValues.getValue(LocaleConstant.SINGLE_OPEN_WARNING, false) as Boolean if (isOpenWarning) { if (dataModel.potency >= dataModel.alarmValue) { //当前值大于设置值,需要报警 SoundPoolHelper.playSound(requireContext(), R.raw.alarm) vibrator.vibrate(1000) + val isAutoRecord = + SaveKeyValues.getValue(LocaleConstant.SINGLE_AUTO_RECORD, false) as Boolean if (isAutoRecord) { //如果连续超过10个报警,自动生成报警事件 alarmCount++ diff --git a/app/src/main/java/com/casic/birmm/inspect/fragment/QueryEventFragment.kt b/app/src/main/java/com/casic/birmm/inspect/fragment/QueryEventFragment.kt index 82a23c9..d134e0b 100644 --- a/app/src/main/java/com/casic/birmm/inspect/fragment/QueryEventFragment.kt +++ b/app/src/main/java/com/casic/birmm/inspect/fragment/QueryEventFragment.kt @@ -3,7 +3,6 @@ import android.os.Handler import androidx.lifecycle.ViewModelProvider import com.casic.birmm.inspect.R -import com.casic.birmm.inspect.extensions.addAll import com.casic.birmm.inspect.extensions.combineImagePath import com.casic.birmm.inspect.model.EventListModel import com.casic.birmm.inspect.view.EventDetailActivity @@ -11,9 +10,9 @@ import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseFragment -import com.pengxh.kt.lite.extensions.filterSpaceOrEnter import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show +import com.pengxh.kt.lite.extensions.toJson import com.pengxh.kt.lite.utils.WeakReferenceHandler import kotlinx.android.synthetic.main.fragment_query_event.* import kotlinx.android.synthetic.main.include_empty_view.* @@ -83,7 +82,6 @@ override fun onResume() { super.onResume() - pageIndex = 1 getEventList() } @@ -119,7 +117,7 @@ viewHolder.setText(R.id.inspectMsgView, item.name) .setText(R.id.inspectTypeView, "类型:${item.type}") - .setText(R.id.inspectDateView, "上报时间:${item.createTime}") + .setText(R.id.inspectDateView, "时间:${item.createTime}") } } eventRecyclerView.adapter = eventListAdapter @@ -128,11 +126,7 @@ override fun onItemClicked( position: Int, t: EventListModel.DataModel.RowsModel ) { - requireContext().navigatePageTo( - addAll( - t.createTime, t.description!!.filterSpaceOrEnter(), t.data, t.images - ) - ) + requireContext().navigatePageTo(t.toJson()) } }) } diff --git a/app/src/main/java/com/casic/birmm/inspect/single/fragment/HomePageFragment.kt b/app/src/main/java/com/casic/birmm/inspect/single/fragment/HomePageFragment.kt index 81ffffd..4a898ce 100644 --- a/app/src/main/java/com/casic/birmm/inspect/single/fragment/HomePageFragment.kt +++ b/app/src/main/java/com/casic/birmm/inspect/single/fragment/HomePageFragment.kt @@ -8,6 +8,7 @@ import android.graphics.Color import android.os.Bundle import android.os.Handler +import android.os.Message import android.os.Vibrator import android.util.Log import android.view.LayoutInflater @@ -33,10 +34,7 @@ import com.casic.birmm.inspect.utils.LocaleConstant import com.casic.birmm.inspect.utils.SoundPoolHelper import com.google.gson.Gson -import com.pengxh.kt.lite.extensions.navigatePageTo -import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.extensions.timestampToCompleteDate -import com.pengxh.kt.lite.extensions.timestampToDate +import com.pengxh.kt.lite.extensions.* import com.pengxh.kt.lite.utils.SaveKeyValues import com.pengxh.kt.lite.utils.WeakReferenceHandler import com.pengxh.kt.lite.utils.ble.BLEManager @@ -46,20 +44,15 @@ import com.pengxh.kt.lite.widget.dialog.AlertControlDialog import com.pengxh.kt.lite.widget.dialog.AlertInputDialog import com.pengxh.kt.lite.widget.dialog.BottomActionSheet -import com.qmuiteam.qmui.util.QMUIDisplayHelper import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet import kotlinx.android.synthetic.main.single_fragment_map_inspect.view.* import java.util.* @SuppressLint("MissingPermission") -class HomePageFragment : Fragment() { +class HomePageFragment : Fragment(), Handler.Callback { private val kTag = "HomePageFragment" private val gson by lazy { Gson() } - private val isOpenWarning = - SaveKeyValues.getValue(LocaleConstant.SINGLE_OPEN_WARNING, false) as Boolean - private val isAutoRecord = - SaveKeyValues.getValue(LocaleConstant.SINGLE_AUTO_RECORD, false) as Boolean private lateinit var homeView: View private lateinit var vibrator: Vibrator private lateinit var aMap: AMap @@ -80,14 +73,14 @@ homeView = inflater.inflate(R.layout.single_fragment_map_inspect, container, false) //根据不同设备状态栏高度设置statusBarView高度 - val statusBarHeight = QMUIDisplayHelper.getStatusBarHeight(requireContext()) + val statusBarHeight = requireContext().getStatusBarHeight() val params = homeView.statusBarView.layoutParams as LinearLayout.LayoutParams params.height = statusBarHeight homeView.statusBarView.setBackgroundColor(Color.parseColor("#D6EEFE")) homeView.statusBarView.requestLayout() vibrator = requireContext().getSystemService(Context.VIBRATOR_SERVICE) as Vibrator - weakReferenceHandler = WeakReferenceHandler(callback) + weakReferenceHandler = WeakReferenceHandler(this) if (BLEManager.initBLE(requireContext())) { if (!BLEManager.isBluetoothEnable()) { @@ -104,12 +97,10 @@ uiSettings.isRotateGesturesEnabled = false//不许地图随手势旋转角度 //显示定位小蓝点 locationStyle = MyLocationStyle() - locationStyle locationStyle.showMyLocation(true)//设置是否显示定位小蓝点 - locationStyle.interval(10 * 1000)////设置连续定位模式下的定位间隔,只在连续定位模式下生效。单位为毫秒 aMap.myLocationStyle = locationStyle aMap.isMyLocationEnabled = true - aMap.moveCamera(CameraUpdateFactory.zoomTo(14.toFloat())) + aMap.moveCamera(CameraUpdateFactory.zoomTo(16.toFloat())) initEvent() @@ -157,15 +148,14 @@ .setOnActionSheetListener(object : BottomActionSheet.OnActionSheetListener { override fun onActionItemClick(position: Int) { //获取当前定位 - val currentLng = SaveKeyValues.getValue( + val lng = SaveKeyValues.getValue( LocaleConstant.CURRENT_LONGITUDE, "0.0" ) as String - val currentLat = - SaveKeyValues.getValue(LocaleConstant.CURRENT_LATITUDE, "0.0") as String + val lat = SaveKeyValues.getValue( + LocaleConstant.CURRENT_LATITUDE, "0.0" + ) as String requireContext().navigatePageTo( - addAll( - position.toString(), model.id, model.name, currentLng, currentLat - ) + addAll(position.toString(), model.id, model.name, lng, lat) ) } }).build().show() @@ -281,7 +271,7 @@ } } - private val callback = Handler.Callback { msg -> + override fun handleMessage(msg: Message): Boolean { when (msg.what) { LocaleConstant.BLUETOOTH_ON -> { "蓝牙已开启".show(requireContext()) @@ -350,7 +340,7 @@ ) LocaleConstant.DISCONNECT_SUCCESS -> curConnectState = false } - true + return true } private fun startConnectDevice(device: BluetoothDevice) { @@ -502,11 +492,15 @@ homeView.settingsValueView.text = dataModel.alarmValue.toString() homeView.maxValueView.text = dataModel.maxPotency.toString() //判断是否需要报警 + val isOpenWarning = + SaveKeyValues.getValue(LocaleConstant.SINGLE_OPEN_WARNING, false) as Boolean if (isOpenWarning) { if (dataModel.potency >= dataModel.alarmValue) { //当前值大于设置值,需要报警 SoundPoolHelper.playSound(requireContext(), R.raw.alarm) vibrator.vibrate(1000) + val isAutoRecord = + SaveKeyValues.getValue(LocaleConstant.SINGLE_AUTO_RECORD, false) as Boolean if (isAutoRecord) { //如果连续超过10个报警,自动生成报警事件 alarmCount++ diff --git a/app/src/main/java/com/casic/birmm/inspect/single/fragment/QueryEventFragment.kt b/app/src/main/java/com/casic/birmm/inspect/single/fragment/QueryEventFragment.kt index 96dba16..812d329 100644 --- a/app/src/main/java/com/casic/birmm/inspect/single/fragment/QueryEventFragment.kt +++ b/app/src/main/java/com/casic/birmm/inspect/single/fragment/QueryEventFragment.kt @@ -3,15 +3,14 @@ import androidx.lifecycle.lifecycleScope import com.bumptech.glide.Glide import com.casic.birmm.inspect.R -import com.casic.birmm.inspect.extensions.addAll import com.casic.birmm.inspect.model.EventListModel import com.casic.birmm.inspect.single.view.EventDetailActivity import com.casic.birmm.inspect.utils.DataBaseManager import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseFragment -import com.pengxh.kt.lite.extensions.filterSpaceOrEnter import com.pengxh.kt.lite.extensions.navigatePageTo +import com.pengxh.kt.lite.extensions.toJson import kotlinx.android.synthetic.main.include_empty_view.* import kotlinx.android.synthetic.main.single_fragment_query_event.* import kotlinx.coroutines.Dispatchers @@ -41,8 +40,7 @@ R.layout.item_event_rv_l, dataBeans ) { override fun convertView( - viewHolder: ViewHolder, - position: Int, + viewHolder: ViewHolder, position: Int, item: EventListModel.DataModel.RowsModel ) { if (!item.images.isNullOrBlank()) { @@ -61,22 +59,15 @@ } viewHolder.setText(R.id.inspectMsgView, item.name) - .setText(R.id.inspectMsgView, "类型:${item.type}") - .setText(R.id.inspectMsgView, "上报时间:${item.createTime}") + .setText(R.id.inspectTypeView, "类型:${item.type}") + .setText(R.id.inspectDateView, "时间:${item.createTime}") } } eventRecyclerView.adapter = eventListAdapter eventListAdapter.setOnItemClickedListener(object : NormalRecyclerAdapter.OnItemClickedListener { override fun onItemClicked(position: Int, t: EventListModel.DataModel.RowsModel) { - requireContext().navigatePageTo( - addAll( - t.createTime.toString(), - t.description!!.filterSpaceOrEnter(), - t.data.toString(), - t.images.toString() - ) - ) + requireContext().navigatePageTo(t.toJson()) } }) } diff --git a/app/src/main/java/com/casic/birmm/inspect/single/view/EventDetailActivity.kt b/app/src/main/java/com/casic/birmm/inspect/single/view/EventDetailActivity.kt index f00bbae..b7d59e8 100644 --- a/app/src/main/java/com/casic/birmm/inspect/single/view/EventDetailActivity.kt +++ b/app/src/main/java/com/casic/birmm/inspect/single/view/EventDetailActivity.kt @@ -2,7 +2,10 @@ import androidx.core.content.ContextCompat import com.casic.birmm.inspect.R +import com.casic.birmm.inspect.model.EventListModel import com.casic.birmm.inspect.view.BigImageActivity +import com.google.gson.Gson +import com.google.gson.reflect.TypeToken import com.gyf.immersionbar.ImmersionBar import com.pengxh.kt.lite.adapter.ReadOnlyImageAdapter import com.pengxh.kt.lite.base.KotlinBaseActivity @@ -15,12 +18,17 @@ class EventDetailActivity : KotlinBaseActivity() { - override fun initData() { - val args = intent.getStringArrayListExtra(Constant.INTENT_PARAM)!! + private val gson by lazy { Gson() } - createTimeView.text = args[0] - descriptionView.text = args[1] - val data = args[2] + override fun initData() { + val args = intent.getStringExtra(Constant.INTENT_PARAM)!! + val model = gson.fromJson( + args, object : TypeToken() {}.type + ) + + createTimeView.text = model.createTime + descriptionView.text = model.description + val data = model.data val value = if (data.isNullOrBlank()) { "0.0" } else { @@ -28,7 +36,7 @@ } dataView.text = value - val images = args[3] + val images = model.images /** * images: 2020-12/6528aeb21cff426c91c43a7f8b716d1e.jpg diff --git a/app/src/main/java/com/casic/birmm/inspect/single/view/NewEventActivity.kt b/app/src/main/java/com/casic/birmm/inspect/single/view/NewEventActivity.kt index b77a8f2..7e4f7e7 100644 --- a/app/src/main/java/com/casic/birmm/inspect/single/view/NewEventActivity.kt +++ b/app/src/main/java/com/casic/birmm/inspect/single/view/NewEventActivity.kt @@ -39,7 +39,7 @@ private var isWarning: Boolean = true private var longitude: Double = 0.0 private var latitude: Double = 0.0 - private var data = -1.0//泄露默认值 + private var data = 0.0//泄露默认值 override fun initData() { diff --git a/.idea/misc.xml b/.idea/misc.xml index 139dc2a..e7cbf98 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -11,6 +11,7 @@ + diff --git a/app/src/main/java/com/casic/birmm/inspect/fragment/HomePageFragment.kt b/app/src/main/java/com/casic/birmm/inspect/fragment/HomePageFragment.kt index 91cd394..a757dfb 100644 --- a/app/src/main/java/com/casic/birmm/inspect/fragment/HomePageFragment.kt +++ b/app/src/main/java/com/casic/birmm/inspect/fragment/HomePageFragment.kt @@ -8,6 +8,7 @@ import android.graphics.Color import android.os.Bundle import android.os.Handler +import android.os.Message import android.os.Vibrator import android.util.Log import android.view.LayoutInflater @@ -37,10 +38,7 @@ import com.casic.birmm.inspect.vm.EventViewModel import com.casic.birmm.inspect.vm.InspectionViewModel import com.google.gson.Gson -import com.pengxh.kt.lite.extensions.navigatePageTo -import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.extensions.timestampToCompleteDate -import com.pengxh.kt.lite.extensions.timestampToDate +import com.pengxh.kt.lite.extensions.* import com.pengxh.kt.lite.utils.SaveKeyValues import com.pengxh.kt.lite.utils.WeakReferenceHandler import com.pengxh.kt.lite.utils.ble.BLEManager @@ -51,20 +49,15 @@ import com.pengxh.kt.lite.widget.dialog.AlertControlDialog import com.pengxh.kt.lite.widget.dialog.AlertInputDialog import com.pengxh.kt.lite.widget.dialog.BottomActionSheet -import com.qmuiteam.qmui.util.QMUIDisplayHelper import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet import kotlinx.android.synthetic.main.fragment_map_inspect.view.* import java.util.* @SuppressLint("MissingPermission") -class HomePageFragment : Fragment() { +class HomePageFragment : Fragment(), Handler.Callback { private val kTag = "HomePageFragment" private val gson by lazy { Gson() } - private val isOpenWarning = - SaveKeyValues.getValue(LocaleConstant.OPEN_WARNING, false) as Boolean - private val isAutoRecord = - SaveKeyValues.getValue(LocaleConstant.AUTO_RECORD, false) as Boolean private lateinit var homeView: View private lateinit var userData: UserInfoModel.DataModel private lateinit var vibrator: Vibrator @@ -88,7 +81,7 @@ homeView = inflater.inflate(R.layout.fragment_map_inspect, container, false) //根据不同设备状态栏高度设置statusBarView高度 - val statusBarHeight = QMUIDisplayHelper.getStatusBarHeight(requireContext()) + val statusBarHeight = requireContext().getStatusBarHeight() val params = homeView.statusBarView.layoutParams as LinearLayout.LayoutParams params.height = statusBarHeight homeView.statusBarView.setBackgroundColor(Color.parseColor("#D6EEFE")) @@ -109,7 +102,7 @@ val userModelJson = SaveKeyValues.getValue(LocaleConstant.USER_OBJECT, "") as String userData = gson.fromJson(userModelJson, UserInfoModel::class.java).data!! - weakReferenceHandler = WeakReferenceHandler(callback) + weakReferenceHandler = WeakReferenceHandler(this) if (BLEManager.initBLE(requireContext())) { if (!BLEManager.isBluetoothEnable()) { @@ -126,12 +119,10 @@ uiSettings.isRotateGesturesEnabled = false//不许地图随手势旋转角度 //显示定位小蓝点 locationStyle = MyLocationStyle() - locationStyle locationStyle.showMyLocation(true)//设置是否显示定位小蓝点 - locationStyle.interval(10 * 1000)////设置连续定位模式下的定位间隔,只在连续定位模式下生效。单位为毫秒 aMap.myLocationStyle = locationStyle aMap.isMyLocationEnabled = true - aMap.moveCamera(CameraUpdateFactory.zoomTo(14.toFloat())) + aMap.moveCamera(CameraUpdateFactory.zoomTo(16.toFloat())) initEvent() @@ -179,15 +170,14 @@ .setOnActionSheetListener(object : BottomActionSheet.OnActionSheetListener { override fun onActionItemClick(position: Int) { //获取当前定位 - val currentLng = SaveKeyValues.getValue( + val lng = SaveKeyValues.getValue( LocaleConstant.CURRENT_LONGITUDE, "0.0" ) as String - val currentLat = - SaveKeyValues.getValue(LocaleConstant.CURRENT_LATITUDE, "0.0") as String + val lat = SaveKeyValues.getValue( + LocaleConstant.CURRENT_LATITUDE, "0.0" + ) as String requireContext().navigatePageTo( - addAll( - position.toString(), model.id, model.name, currentLng, currentLat - ) + addAll(position.toString(), model.id, model.name, lng, lat) ) } }).build().show() @@ -303,7 +293,7 @@ } } - private val callback = Handler.Callback { msg -> + override fun handleMessage(msg: Message): Boolean { when (msg.what) { LocaleConstant.BLUETOOTH_ON -> { "蓝牙已开启".show(requireContext()) @@ -372,7 +362,7 @@ ) LocaleConstant.DISCONNECT_SUCCESS -> curConnectState = false } - true + return true } private fun startConnectDevice(device: BluetoothDevice) { @@ -529,11 +519,15 @@ homeView.settingsValueView.text = dataModel.alarmValue.toString() homeView.maxValueView.text = dataModel.maxPotency.toString() //判断是否需要报警 + val isOpenWarning = + SaveKeyValues.getValue(LocaleConstant.SINGLE_OPEN_WARNING, false) as Boolean if (isOpenWarning) { if (dataModel.potency >= dataModel.alarmValue) { //当前值大于设置值,需要报警 SoundPoolHelper.playSound(requireContext(), R.raw.alarm) vibrator.vibrate(1000) + val isAutoRecord = + SaveKeyValues.getValue(LocaleConstant.SINGLE_AUTO_RECORD, false) as Boolean if (isAutoRecord) { //如果连续超过10个报警,自动生成报警事件 alarmCount++ diff --git a/app/src/main/java/com/casic/birmm/inspect/fragment/QueryEventFragment.kt b/app/src/main/java/com/casic/birmm/inspect/fragment/QueryEventFragment.kt index 82a23c9..d134e0b 100644 --- a/app/src/main/java/com/casic/birmm/inspect/fragment/QueryEventFragment.kt +++ b/app/src/main/java/com/casic/birmm/inspect/fragment/QueryEventFragment.kt @@ -3,7 +3,6 @@ import android.os.Handler import androidx.lifecycle.ViewModelProvider import com.casic.birmm.inspect.R -import com.casic.birmm.inspect.extensions.addAll import com.casic.birmm.inspect.extensions.combineImagePath import com.casic.birmm.inspect.model.EventListModel import com.casic.birmm.inspect.view.EventDetailActivity @@ -11,9 +10,9 @@ import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseFragment -import com.pengxh.kt.lite.extensions.filterSpaceOrEnter import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show +import com.pengxh.kt.lite.extensions.toJson import com.pengxh.kt.lite.utils.WeakReferenceHandler import kotlinx.android.synthetic.main.fragment_query_event.* import kotlinx.android.synthetic.main.include_empty_view.* @@ -83,7 +82,6 @@ override fun onResume() { super.onResume() - pageIndex = 1 getEventList() } @@ -119,7 +117,7 @@ viewHolder.setText(R.id.inspectMsgView, item.name) .setText(R.id.inspectTypeView, "类型:${item.type}") - .setText(R.id.inspectDateView, "上报时间:${item.createTime}") + .setText(R.id.inspectDateView, "时间:${item.createTime}") } } eventRecyclerView.adapter = eventListAdapter @@ -128,11 +126,7 @@ override fun onItemClicked( position: Int, t: EventListModel.DataModel.RowsModel ) { - requireContext().navigatePageTo( - addAll( - t.createTime, t.description!!.filterSpaceOrEnter(), t.data, t.images - ) - ) + requireContext().navigatePageTo(t.toJson()) } }) } diff --git a/app/src/main/java/com/casic/birmm/inspect/single/fragment/HomePageFragment.kt b/app/src/main/java/com/casic/birmm/inspect/single/fragment/HomePageFragment.kt index 81ffffd..4a898ce 100644 --- a/app/src/main/java/com/casic/birmm/inspect/single/fragment/HomePageFragment.kt +++ b/app/src/main/java/com/casic/birmm/inspect/single/fragment/HomePageFragment.kt @@ -8,6 +8,7 @@ import android.graphics.Color import android.os.Bundle import android.os.Handler +import android.os.Message import android.os.Vibrator import android.util.Log import android.view.LayoutInflater @@ -33,10 +34,7 @@ import com.casic.birmm.inspect.utils.LocaleConstant import com.casic.birmm.inspect.utils.SoundPoolHelper import com.google.gson.Gson -import com.pengxh.kt.lite.extensions.navigatePageTo -import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.extensions.timestampToCompleteDate -import com.pengxh.kt.lite.extensions.timestampToDate +import com.pengxh.kt.lite.extensions.* import com.pengxh.kt.lite.utils.SaveKeyValues import com.pengxh.kt.lite.utils.WeakReferenceHandler import com.pengxh.kt.lite.utils.ble.BLEManager @@ -46,20 +44,15 @@ import com.pengxh.kt.lite.widget.dialog.AlertControlDialog import com.pengxh.kt.lite.widget.dialog.AlertInputDialog import com.pengxh.kt.lite.widget.dialog.BottomActionSheet -import com.qmuiteam.qmui.util.QMUIDisplayHelper import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet import kotlinx.android.synthetic.main.single_fragment_map_inspect.view.* import java.util.* @SuppressLint("MissingPermission") -class HomePageFragment : Fragment() { +class HomePageFragment : Fragment(), Handler.Callback { private val kTag = "HomePageFragment" private val gson by lazy { Gson() } - private val isOpenWarning = - SaveKeyValues.getValue(LocaleConstant.SINGLE_OPEN_WARNING, false) as Boolean - private val isAutoRecord = - SaveKeyValues.getValue(LocaleConstant.SINGLE_AUTO_RECORD, false) as Boolean private lateinit var homeView: View private lateinit var vibrator: Vibrator private lateinit var aMap: AMap @@ -80,14 +73,14 @@ homeView = inflater.inflate(R.layout.single_fragment_map_inspect, container, false) //根据不同设备状态栏高度设置statusBarView高度 - val statusBarHeight = QMUIDisplayHelper.getStatusBarHeight(requireContext()) + val statusBarHeight = requireContext().getStatusBarHeight() val params = homeView.statusBarView.layoutParams as LinearLayout.LayoutParams params.height = statusBarHeight homeView.statusBarView.setBackgroundColor(Color.parseColor("#D6EEFE")) homeView.statusBarView.requestLayout() vibrator = requireContext().getSystemService(Context.VIBRATOR_SERVICE) as Vibrator - weakReferenceHandler = WeakReferenceHandler(callback) + weakReferenceHandler = WeakReferenceHandler(this) if (BLEManager.initBLE(requireContext())) { if (!BLEManager.isBluetoothEnable()) { @@ -104,12 +97,10 @@ uiSettings.isRotateGesturesEnabled = false//不许地图随手势旋转角度 //显示定位小蓝点 locationStyle = MyLocationStyle() - locationStyle locationStyle.showMyLocation(true)//设置是否显示定位小蓝点 - locationStyle.interval(10 * 1000)////设置连续定位模式下的定位间隔,只在连续定位模式下生效。单位为毫秒 aMap.myLocationStyle = locationStyle aMap.isMyLocationEnabled = true - aMap.moveCamera(CameraUpdateFactory.zoomTo(14.toFloat())) + aMap.moveCamera(CameraUpdateFactory.zoomTo(16.toFloat())) initEvent() @@ -157,15 +148,14 @@ .setOnActionSheetListener(object : BottomActionSheet.OnActionSheetListener { override fun onActionItemClick(position: Int) { //获取当前定位 - val currentLng = SaveKeyValues.getValue( + val lng = SaveKeyValues.getValue( LocaleConstant.CURRENT_LONGITUDE, "0.0" ) as String - val currentLat = - SaveKeyValues.getValue(LocaleConstant.CURRENT_LATITUDE, "0.0") as String + val lat = SaveKeyValues.getValue( + LocaleConstant.CURRENT_LATITUDE, "0.0" + ) as String requireContext().navigatePageTo( - addAll( - position.toString(), model.id, model.name, currentLng, currentLat - ) + addAll(position.toString(), model.id, model.name, lng, lat) ) } }).build().show() @@ -281,7 +271,7 @@ } } - private val callback = Handler.Callback { msg -> + override fun handleMessage(msg: Message): Boolean { when (msg.what) { LocaleConstant.BLUETOOTH_ON -> { "蓝牙已开启".show(requireContext()) @@ -350,7 +340,7 @@ ) LocaleConstant.DISCONNECT_SUCCESS -> curConnectState = false } - true + return true } private fun startConnectDevice(device: BluetoothDevice) { @@ -502,11 +492,15 @@ homeView.settingsValueView.text = dataModel.alarmValue.toString() homeView.maxValueView.text = dataModel.maxPotency.toString() //判断是否需要报警 + val isOpenWarning = + SaveKeyValues.getValue(LocaleConstant.SINGLE_OPEN_WARNING, false) as Boolean if (isOpenWarning) { if (dataModel.potency >= dataModel.alarmValue) { //当前值大于设置值,需要报警 SoundPoolHelper.playSound(requireContext(), R.raw.alarm) vibrator.vibrate(1000) + val isAutoRecord = + SaveKeyValues.getValue(LocaleConstant.SINGLE_AUTO_RECORD, false) as Boolean if (isAutoRecord) { //如果连续超过10个报警,自动生成报警事件 alarmCount++ diff --git a/app/src/main/java/com/casic/birmm/inspect/single/fragment/QueryEventFragment.kt b/app/src/main/java/com/casic/birmm/inspect/single/fragment/QueryEventFragment.kt index 96dba16..812d329 100644 --- a/app/src/main/java/com/casic/birmm/inspect/single/fragment/QueryEventFragment.kt +++ b/app/src/main/java/com/casic/birmm/inspect/single/fragment/QueryEventFragment.kt @@ -3,15 +3,14 @@ import androidx.lifecycle.lifecycleScope import com.bumptech.glide.Glide import com.casic.birmm.inspect.R -import com.casic.birmm.inspect.extensions.addAll import com.casic.birmm.inspect.model.EventListModel import com.casic.birmm.inspect.single.view.EventDetailActivity import com.casic.birmm.inspect.utils.DataBaseManager import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseFragment -import com.pengxh.kt.lite.extensions.filterSpaceOrEnter import com.pengxh.kt.lite.extensions.navigatePageTo +import com.pengxh.kt.lite.extensions.toJson import kotlinx.android.synthetic.main.include_empty_view.* import kotlinx.android.synthetic.main.single_fragment_query_event.* import kotlinx.coroutines.Dispatchers @@ -41,8 +40,7 @@ R.layout.item_event_rv_l, dataBeans ) { override fun convertView( - viewHolder: ViewHolder, - position: Int, + viewHolder: ViewHolder, position: Int, item: EventListModel.DataModel.RowsModel ) { if (!item.images.isNullOrBlank()) { @@ -61,22 +59,15 @@ } viewHolder.setText(R.id.inspectMsgView, item.name) - .setText(R.id.inspectMsgView, "类型:${item.type}") - .setText(R.id.inspectMsgView, "上报时间:${item.createTime}") + .setText(R.id.inspectTypeView, "类型:${item.type}") + .setText(R.id.inspectDateView, "时间:${item.createTime}") } } eventRecyclerView.adapter = eventListAdapter eventListAdapter.setOnItemClickedListener(object : NormalRecyclerAdapter.OnItemClickedListener { override fun onItemClicked(position: Int, t: EventListModel.DataModel.RowsModel) { - requireContext().navigatePageTo( - addAll( - t.createTime.toString(), - t.description!!.filterSpaceOrEnter(), - t.data.toString(), - t.images.toString() - ) - ) + requireContext().navigatePageTo(t.toJson()) } }) } diff --git a/app/src/main/java/com/casic/birmm/inspect/single/view/EventDetailActivity.kt b/app/src/main/java/com/casic/birmm/inspect/single/view/EventDetailActivity.kt index f00bbae..b7d59e8 100644 --- a/app/src/main/java/com/casic/birmm/inspect/single/view/EventDetailActivity.kt +++ b/app/src/main/java/com/casic/birmm/inspect/single/view/EventDetailActivity.kt @@ -2,7 +2,10 @@ import androidx.core.content.ContextCompat import com.casic.birmm.inspect.R +import com.casic.birmm.inspect.model.EventListModel import com.casic.birmm.inspect.view.BigImageActivity +import com.google.gson.Gson +import com.google.gson.reflect.TypeToken import com.gyf.immersionbar.ImmersionBar import com.pengxh.kt.lite.adapter.ReadOnlyImageAdapter import com.pengxh.kt.lite.base.KotlinBaseActivity @@ -15,12 +18,17 @@ class EventDetailActivity : KotlinBaseActivity() { - override fun initData() { - val args = intent.getStringArrayListExtra(Constant.INTENT_PARAM)!! + private val gson by lazy { Gson() } - createTimeView.text = args[0] - descriptionView.text = args[1] - val data = args[2] + override fun initData() { + val args = intent.getStringExtra(Constant.INTENT_PARAM)!! + val model = gson.fromJson( + args, object : TypeToken() {}.type + ) + + createTimeView.text = model.createTime + descriptionView.text = model.description + val data = model.data val value = if (data.isNullOrBlank()) { "0.0" } else { @@ -28,7 +36,7 @@ } dataView.text = value - val images = args[3] + val images = model.images /** * images: 2020-12/6528aeb21cff426c91c43a7f8b716d1e.jpg diff --git a/app/src/main/java/com/casic/birmm/inspect/single/view/NewEventActivity.kt b/app/src/main/java/com/casic/birmm/inspect/single/view/NewEventActivity.kt index b77a8f2..7e4f7e7 100644 --- a/app/src/main/java/com/casic/birmm/inspect/single/view/NewEventActivity.kt +++ b/app/src/main/java/com/casic/birmm/inspect/single/view/NewEventActivity.kt @@ -39,7 +39,7 @@ private var isWarning: Boolean = true private var longitude: Double = 0.0 private var latitude: Double = 0.0 - private var data = -1.0//泄露默认值 + private var data = 0.0//泄露默认值 override fun initData() { diff --git a/app/src/main/java/com/casic/birmm/inspect/utils/retrofit/RetrofitService.kt b/app/src/main/java/com/casic/birmm/inspect/utils/retrofit/RetrofitService.kt index 1281613..cfd24bd 100644 --- a/app/src/main/java/com/casic/birmm/inspect/utils/retrofit/RetrofitService.kt +++ b/app/src/main/java/com/casic/birmm/inspect/utils/retrofit/RetrofitService.kt @@ -16,7 +16,7 @@ */ @FormUrlEncoded @POST("/user/appLogin") - suspend fun getLoginResult( + suspend fun login( @Field("username") account: String, @Field("password") secretKey: String ): String diff --git a/.idea/misc.xml b/.idea/misc.xml index 139dc2a..e7cbf98 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -11,6 +11,7 @@ + diff --git a/app/src/main/java/com/casic/birmm/inspect/fragment/HomePageFragment.kt b/app/src/main/java/com/casic/birmm/inspect/fragment/HomePageFragment.kt index 91cd394..a757dfb 100644 --- a/app/src/main/java/com/casic/birmm/inspect/fragment/HomePageFragment.kt +++ b/app/src/main/java/com/casic/birmm/inspect/fragment/HomePageFragment.kt @@ -8,6 +8,7 @@ import android.graphics.Color import android.os.Bundle import android.os.Handler +import android.os.Message import android.os.Vibrator import android.util.Log import android.view.LayoutInflater @@ -37,10 +38,7 @@ import com.casic.birmm.inspect.vm.EventViewModel import com.casic.birmm.inspect.vm.InspectionViewModel import com.google.gson.Gson -import com.pengxh.kt.lite.extensions.navigatePageTo -import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.extensions.timestampToCompleteDate -import com.pengxh.kt.lite.extensions.timestampToDate +import com.pengxh.kt.lite.extensions.* import com.pengxh.kt.lite.utils.SaveKeyValues import com.pengxh.kt.lite.utils.WeakReferenceHandler import com.pengxh.kt.lite.utils.ble.BLEManager @@ -51,20 +49,15 @@ import com.pengxh.kt.lite.widget.dialog.AlertControlDialog import com.pengxh.kt.lite.widget.dialog.AlertInputDialog import com.pengxh.kt.lite.widget.dialog.BottomActionSheet -import com.qmuiteam.qmui.util.QMUIDisplayHelper import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet import kotlinx.android.synthetic.main.fragment_map_inspect.view.* import java.util.* @SuppressLint("MissingPermission") -class HomePageFragment : Fragment() { +class HomePageFragment : Fragment(), Handler.Callback { private val kTag = "HomePageFragment" private val gson by lazy { Gson() } - private val isOpenWarning = - SaveKeyValues.getValue(LocaleConstant.OPEN_WARNING, false) as Boolean - private val isAutoRecord = - SaveKeyValues.getValue(LocaleConstant.AUTO_RECORD, false) as Boolean private lateinit var homeView: View private lateinit var userData: UserInfoModel.DataModel private lateinit var vibrator: Vibrator @@ -88,7 +81,7 @@ homeView = inflater.inflate(R.layout.fragment_map_inspect, container, false) //根据不同设备状态栏高度设置statusBarView高度 - val statusBarHeight = QMUIDisplayHelper.getStatusBarHeight(requireContext()) + val statusBarHeight = requireContext().getStatusBarHeight() val params = homeView.statusBarView.layoutParams as LinearLayout.LayoutParams params.height = statusBarHeight homeView.statusBarView.setBackgroundColor(Color.parseColor("#D6EEFE")) @@ -109,7 +102,7 @@ val userModelJson = SaveKeyValues.getValue(LocaleConstant.USER_OBJECT, "") as String userData = gson.fromJson(userModelJson, UserInfoModel::class.java).data!! - weakReferenceHandler = WeakReferenceHandler(callback) + weakReferenceHandler = WeakReferenceHandler(this) if (BLEManager.initBLE(requireContext())) { if (!BLEManager.isBluetoothEnable()) { @@ -126,12 +119,10 @@ uiSettings.isRotateGesturesEnabled = false//不许地图随手势旋转角度 //显示定位小蓝点 locationStyle = MyLocationStyle() - locationStyle locationStyle.showMyLocation(true)//设置是否显示定位小蓝点 - locationStyle.interval(10 * 1000)////设置连续定位模式下的定位间隔,只在连续定位模式下生效。单位为毫秒 aMap.myLocationStyle = locationStyle aMap.isMyLocationEnabled = true - aMap.moveCamera(CameraUpdateFactory.zoomTo(14.toFloat())) + aMap.moveCamera(CameraUpdateFactory.zoomTo(16.toFloat())) initEvent() @@ -179,15 +170,14 @@ .setOnActionSheetListener(object : BottomActionSheet.OnActionSheetListener { override fun onActionItemClick(position: Int) { //获取当前定位 - val currentLng = SaveKeyValues.getValue( + val lng = SaveKeyValues.getValue( LocaleConstant.CURRENT_LONGITUDE, "0.0" ) as String - val currentLat = - SaveKeyValues.getValue(LocaleConstant.CURRENT_LATITUDE, "0.0") as String + val lat = SaveKeyValues.getValue( + LocaleConstant.CURRENT_LATITUDE, "0.0" + ) as String requireContext().navigatePageTo( - addAll( - position.toString(), model.id, model.name, currentLng, currentLat - ) + addAll(position.toString(), model.id, model.name, lng, lat) ) } }).build().show() @@ -303,7 +293,7 @@ } } - private val callback = Handler.Callback { msg -> + override fun handleMessage(msg: Message): Boolean { when (msg.what) { LocaleConstant.BLUETOOTH_ON -> { "蓝牙已开启".show(requireContext()) @@ -372,7 +362,7 @@ ) LocaleConstant.DISCONNECT_SUCCESS -> curConnectState = false } - true + return true } private fun startConnectDevice(device: BluetoothDevice) { @@ -529,11 +519,15 @@ homeView.settingsValueView.text = dataModel.alarmValue.toString() homeView.maxValueView.text = dataModel.maxPotency.toString() //判断是否需要报警 + val isOpenWarning = + SaveKeyValues.getValue(LocaleConstant.SINGLE_OPEN_WARNING, false) as Boolean if (isOpenWarning) { if (dataModel.potency >= dataModel.alarmValue) { //当前值大于设置值,需要报警 SoundPoolHelper.playSound(requireContext(), R.raw.alarm) vibrator.vibrate(1000) + val isAutoRecord = + SaveKeyValues.getValue(LocaleConstant.SINGLE_AUTO_RECORD, false) as Boolean if (isAutoRecord) { //如果连续超过10个报警,自动生成报警事件 alarmCount++ diff --git a/app/src/main/java/com/casic/birmm/inspect/fragment/QueryEventFragment.kt b/app/src/main/java/com/casic/birmm/inspect/fragment/QueryEventFragment.kt index 82a23c9..d134e0b 100644 --- a/app/src/main/java/com/casic/birmm/inspect/fragment/QueryEventFragment.kt +++ b/app/src/main/java/com/casic/birmm/inspect/fragment/QueryEventFragment.kt @@ -3,7 +3,6 @@ import android.os.Handler import androidx.lifecycle.ViewModelProvider import com.casic.birmm.inspect.R -import com.casic.birmm.inspect.extensions.addAll import com.casic.birmm.inspect.extensions.combineImagePath import com.casic.birmm.inspect.model.EventListModel import com.casic.birmm.inspect.view.EventDetailActivity @@ -11,9 +10,9 @@ import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseFragment -import com.pengxh.kt.lite.extensions.filterSpaceOrEnter import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show +import com.pengxh.kt.lite.extensions.toJson import com.pengxh.kt.lite.utils.WeakReferenceHandler import kotlinx.android.synthetic.main.fragment_query_event.* import kotlinx.android.synthetic.main.include_empty_view.* @@ -83,7 +82,6 @@ override fun onResume() { super.onResume() - pageIndex = 1 getEventList() } @@ -119,7 +117,7 @@ viewHolder.setText(R.id.inspectMsgView, item.name) .setText(R.id.inspectTypeView, "类型:${item.type}") - .setText(R.id.inspectDateView, "上报时间:${item.createTime}") + .setText(R.id.inspectDateView, "时间:${item.createTime}") } } eventRecyclerView.adapter = eventListAdapter @@ -128,11 +126,7 @@ override fun onItemClicked( position: Int, t: EventListModel.DataModel.RowsModel ) { - requireContext().navigatePageTo( - addAll( - t.createTime, t.description!!.filterSpaceOrEnter(), t.data, t.images - ) - ) + requireContext().navigatePageTo(t.toJson()) } }) } diff --git a/app/src/main/java/com/casic/birmm/inspect/single/fragment/HomePageFragment.kt b/app/src/main/java/com/casic/birmm/inspect/single/fragment/HomePageFragment.kt index 81ffffd..4a898ce 100644 --- a/app/src/main/java/com/casic/birmm/inspect/single/fragment/HomePageFragment.kt +++ b/app/src/main/java/com/casic/birmm/inspect/single/fragment/HomePageFragment.kt @@ -8,6 +8,7 @@ import android.graphics.Color import android.os.Bundle import android.os.Handler +import android.os.Message import android.os.Vibrator import android.util.Log import android.view.LayoutInflater @@ -33,10 +34,7 @@ import com.casic.birmm.inspect.utils.LocaleConstant import com.casic.birmm.inspect.utils.SoundPoolHelper import com.google.gson.Gson -import com.pengxh.kt.lite.extensions.navigatePageTo -import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.extensions.timestampToCompleteDate -import com.pengxh.kt.lite.extensions.timestampToDate +import com.pengxh.kt.lite.extensions.* import com.pengxh.kt.lite.utils.SaveKeyValues import com.pengxh.kt.lite.utils.WeakReferenceHandler import com.pengxh.kt.lite.utils.ble.BLEManager @@ -46,20 +44,15 @@ import com.pengxh.kt.lite.widget.dialog.AlertControlDialog import com.pengxh.kt.lite.widget.dialog.AlertInputDialog import com.pengxh.kt.lite.widget.dialog.BottomActionSheet -import com.qmuiteam.qmui.util.QMUIDisplayHelper import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet import kotlinx.android.synthetic.main.single_fragment_map_inspect.view.* import java.util.* @SuppressLint("MissingPermission") -class HomePageFragment : Fragment() { +class HomePageFragment : Fragment(), Handler.Callback { private val kTag = "HomePageFragment" private val gson by lazy { Gson() } - private val isOpenWarning = - SaveKeyValues.getValue(LocaleConstant.SINGLE_OPEN_WARNING, false) as Boolean - private val isAutoRecord = - SaveKeyValues.getValue(LocaleConstant.SINGLE_AUTO_RECORD, false) as Boolean private lateinit var homeView: View private lateinit var vibrator: Vibrator private lateinit var aMap: AMap @@ -80,14 +73,14 @@ homeView = inflater.inflate(R.layout.single_fragment_map_inspect, container, false) //根据不同设备状态栏高度设置statusBarView高度 - val statusBarHeight = QMUIDisplayHelper.getStatusBarHeight(requireContext()) + val statusBarHeight = requireContext().getStatusBarHeight() val params = homeView.statusBarView.layoutParams as LinearLayout.LayoutParams params.height = statusBarHeight homeView.statusBarView.setBackgroundColor(Color.parseColor("#D6EEFE")) homeView.statusBarView.requestLayout() vibrator = requireContext().getSystemService(Context.VIBRATOR_SERVICE) as Vibrator - weakReferenceHandler = WeakReferenceHandler(callback) + weakReferenceHandler = WeakReferenceHandler(this) if (BLEManager.initBLE(requireContext())) { if (!BLEManager.isBluetoothEnable()) { @@ -104,12 +97,10 @@ uiSettings.isRotateGesturesEnabled = false//不许地图随手势旋转角度 //显示定位小蓝点 locationStyle = MyLocationStyle() - locationStyle locationStyle.showMyLocation(true)//设置是否显示定位小蓝点 - locationStyle.interval(10 * 1000)////设置连续定位模式下的定位间隔,只在连续定位模式下生效。单位为毫秒 aMap.myLocationStyle = locationStyle aMap.isMyLocationEnabled = true - aMap.moveCamera(CameraUpdateFactory.zoomTo(14.toFloat())) + aMap.moveCamera(CameraUpdateFactory.zoomTo(16.toFloat())) initEvent() @@ -157,15 +148,14 @@ .setOnActionSheetListener(object : BottomActionSheet.OnActionSheetListener { override fun onActionItemClick(position: Int) { //获取当前定位 - val currentLng = SaveKeyValues.getValue( + val lng = SaveKeyValues.getValue( LocaleConstant.CURRENT_LONGITUDE, "0.0" ) as String - val currentLat = - SaveKeyValues.getValue(LocaleConstant.CURRENT_LATITUDE, "0.0") as String + val lat = SaveKeyValues.getValue( + LocaleConstant.CURRENT_LATITUDE, "0.0" + ) as String requireContext().navigatePageTo( - addAll( - position.toString(), model.id, model.name, currentLng, currentLat - ) + addAll(position.toString(), model.id, model.name, lng, lat) ) } }).build().show() @@ -281,7 +271,7 @@ } } - private val callback = Handler.Callback { msg -> + override fun handleMessage(msg: Message): Boolean { when (msg.what) { LocaleConstant.BLUETOOTH_ON -> { "蓝牙已开启".show(requireContext()) @@ -350,7 +340,7 @@ ) LocaleConstant.DISCONNECT_SUCCESS -> curConnectState = false } - true + return true } private fun startConnectDevice(device: BluetoothDevice) { @@ -502,11 +492,15 @@ homeView.settingsValueView.text = dataModel.alarmValue.toString() homeView.maxValueView.text = dataModel.maxPotency.toString() //判断是否需要报警 + val isOpenWarning = + SaveKeyValues.getValue(LocaleConstant.SINGLE_OPEN_WARNING, false) as Boolean if (isOpenWarning) { if (dataModel.potency >= dataModel.alarmValue) { //当前值大于设置值,需要报警 SoundPoolHelper.playSound(requireContext(), R.raw.alarm) vibrator.vibrate(1000) + val isAutoRecord = + SaveKeyValues.getValue(LocaleConstant.SINGLE_AUTO_RECORD, false) as Boolean if (isAutoRecord) { //如果连续超过10个报警,自动生成报警事件 alarmCount++ diff --git a/app/src/main/java/com/casic/birmm/inspect/single/fragment/QueryEventFragment.kt b/app/src/main/java/com/casic/birmm/inspect/single/fragment/QueryEventFragment.kt index 96dba16..812d329 100644 --- a/app/src/main/java/com/casic/birmm/inspect/single/fragment/QueryEventFragment.kt +++ b/app/src/main/java/com/casic/birmm/inspect/single/fragment/QueryEventFragment.kt @@ -3,15 +3,14 @@ import androidx.lifecycle.lifecycleScope import com.bumptech.glide.Glide import com.casic.birmm.inspect.R -import com.casic.birmm.inspect.extensions.addAll import com.casic.birmm.inspect.model.EventListModel import com.casic.birmm.inspect.single.view.EventDetailActivity import com.casic.birmm.inspect.utils.DataBaseManager import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseFragment -import com.pengxh.kt.lite.extensions.filterSpaceOrEnter import com.pengxh.kt.lite.extensions.navigatePageTo +import com.pengxh.kt.lite.extensions.toJson import kotlinx.android.synthetic.main.include_empty_view.* import kotlinx.android.synthetic.main.single_fragment_query_event.* import kotlinx.coroutines.Dispatchers @@ -41,8 +40,7 @@ R.layout.item_event_rv_l, dataBeans ) { override fun convertView( - viewHolder: ViewHolder, - position: Int, + viewHolder: ViewHolder, position: Int, item: EventListModel.DataModel.RowsModel ) { if (!item.images.isNullOrBlank()) { @@ -61,22 +59,15 @@ } viewHolder.setText(R.id.inspectMsgView, item.name) - .setText(R.id.inspectMsgView, "类型:${item.type}") - .setText(R.id.inspectMsgView, "上报时间:${item.createTime}") + .setText(R.id.inspectTypeView, "类型:${item.type}") + .setText(R.id.inspectDateView, "时间:${item.createTime}") } } eventRecyclerView.adapter = eventListAdapter eventListAdapter.setOnItemClickedListener(object : NormalRecyclerAdapter.OnItemClickedListener { override fun onItemClicked(position: Int, t: EventListModel.DataModel.RowsModel) { - requireContext().navigatePageTo( - addAll( - t.createTime.toString(), - t.description!!.filterSpaceOrEnter(), - t.data.toString(), - t.images.toString() - ) - ) + requireContext().navigatePageTo(t.toJson()) } }) } diff --git a/app/src/main/java/com/casic/birmm/inspect/single/view/EventDetailActivity.kt b/app/src/main/java/com/casic/birmm/inspect/single/view/EventDetailActivity.kt index f00bbae..b7d59e8 100644 --- a/app/src/main/java/com/casic/birmm/inspect/single/view/EventDetailActivity.kt +++ b/app/src/main/java/com/casic/birmm/inspect/single/view/EventDetailActivity.kt @@ -2,7 +2,10 @@ import androidx.core.content.ContextCompat import com.casic.birmm.inspect.R +import com.casic.birmm.inspect.model.EventListModel import com.casic.birmm.inspect.view.BigImageActivity +import com.google.gson.Gson +import com.google.gson.reflect.TypeToken import com.gyf.immersionbar.ImmersionBar import com.pengxh.kt.lite.adapter.ReadOnlyImageAdapter import com.pengxh.kt.lite.base.KotlinBaseActivity @@ -15,12 +18,17 @@ class EventDetailActivity : KotlinBaseActivity() { - override fun initData() { - val args = intent.getStringArrayListExtra(Constant.INTENT_PARAM)!! + private val gson by lazy { Gson() } - createTimeView.text = args[0] - descriptionView.text = args[1] - val data = args[2] + override fun initData() { + val args = intent.getStringExtra(Constant.INTENT_PARAM)!! + val model = gson.fromJson( + args, object : TypeToken() {}.type + ) + + createTimeView.text = model.createTime + descriptionView.text = model.description + val data = model.data val value = if (data.isNullOrBlank()) { "0.0" } else { @@ -28,7 +36,7 @@ } dataView.text = value - val images = args[3] + val images = model.images /** * images: 2020-12/6528aeb21cff426c91c43a7f8b716d1e.jpg diff --git a/app/src/main/java/com/casic/birmm/inspect/single/view/NewEventActivity.kt b/app/src/main/java/com/casic/birmm/inspect/single/view/NewEventActivity.kt index b77a8f2..7e4f7e7 100644 --- a/app/src/main/java/com/casic/birmm/inspect/single/view/NewEventActivity.kt +++ b/app/src/main/java/com/casic/birmm/inspect/single/view/NewEventActivity.kt @@ -39,7 +39,7 @@ private var isWarning: Boolean = true private var longitude: Double = 0.0 private var latitude: Double = 0.0 - private var data = -1.0//泄露默认值 + private var data = 0.0//泄露默认值 override fun initData() { diff --git a/app/src/main/java/com/casic/birmm/inspect/utils/retrofit/RetrofitService.kt b/app/src/main/java/com/casic/birmm/inspect/utils/retrofit/RetrofitService.kt index 1281613..cfd24bd 100644 --- a/app/src/main/java/com/casic/birmm/inspect/utils/retrofit/RetrofitService.kt +++ b/app/src/main/java/com/casic/birmm/inspect/utils/retrofit/RetrofitService.kt @@ -16,7 +16,7 @@ */ @FormUrlEncoded @POST("/user/appLogin") - suspend fun getLoginResult( + suspend fun login( @Field("username") account: String, @Field("password") secretKey: String ): String diff --git a/app/src/main/java/com/casic/birmm/inspect/utils/retrofit/RetrofitServiceManager.kt b/app/src/main/java/com/casic/birmm/inspect/utils/retrofit/RetrofitServiceManager.kt index 4c1f278..324cf23 100644 --- a/app/src/main/java/com/casic/birmm/inspect/utils/retrofit/RetrofitServiceManager.kt +++ b/app/src/main/java/com/casic/birmm/inspect/utils/retrofit/RetrofitServiceManager.kt @@ -28,8 +28,8 @@ /** * 登录并获取Token */ - suspend fun getLoginResult(account: String, secretKey: String): String { - return api.getLoginResult(account, secretKey) + suspend fun login(account: String, secretKey: String): String { + return api.login(account, secretKey) } /** diff --git a/.idea/misc.xml b/.idea/misc.xml index 139dc2a..e7cbf98 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -11,6 +11,7 @@ + diff --git a/app/src/main/java/com/casic/birmm/inspect/fragment/HomePageFragment.kt b/app/src/main/java/com/casic/birmm/inspect/fragment/HomePageFragment.kt index 91cd394..a757dfb 100644 --- a/app/src/main/java/com/casic/birmm/inspect/fragment/HomePageFragment.kt +++ b/app/src/main/java/com/casic/birmm/inspect/fragment/HomePageFragment.kt @@ -8,6 +8,7 @@ import android.graphics.Color import android.os.Bundle import android.os.Handler +import android.os.Message import android.os.Vibrator import android.util.Log import android.view.LayoutInflater @@ -37,10 +38,7 @@ import com.casic.birmm.inspect.vm.EventViewModel import com.casic.birmm.inspect.vm.InspectionViewModel import com.google.gson.Gson -import com.pengxh.kt.lite.extensions.navigatePageTo -import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.extensions.timestampToCompleteDate -import com.pengxh.kt.lite.extensions.timestampToDate +import com.pengxh.kt.lite.extensions.* import com.pengxh.kt.lite.utils.SaveKeyValues import com.pengxh.kt.lite.utils.WeakReferenceHandler import com.pengxh.kt.lite.utils.ble.BLEManager @@ -51,20 +49,15 @@ import com.pengxh.kt.lite.widget.dialog.AlertControlDialog import com.pengxh.kt.lite.widget.dialog.AlertInputDialog import com.pengxh.kt.lite.widget.dialog.BottomActionSheet -import com.qmuiteam.qmui.util.QMUIDisplayHelper import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet import kotlinx.android.synthetic.main.fragment_map_inspect.view.* import java.util.* @SuppressLint("MissingPermission") -class HomePageFragment : Fragment() { +class HomePageFragment : Fragment(), Handler.Callback { private val kTag = "HomePageFragment" private val gson by lazy { Gson() } - private val isOpenWarning = - SaveKeyValues.getValue(LocaleConstant.OPEN_WARNING, false) as Boolean - private val isAutoRecord = - SaveKeyValues.getValue(LocaleConstant.AUTO_RECORD, false) as Boolean private lateinit var homeView: View private lateinit var userData: UserInfoModel.DataModel private lateinit var vibrator: Vibrator @@ -88,7 +81,7 @@ homeView = inflater.inflate(R.layout.fragment_map_inspect, container, false) //根据不同设备状态栏高度设置statusBarView高度 - val statusBarHeight = QMUIDisplayHelper.getStatusBarHeight(requireContext()) + val statusBarHeight = requireContext().getStatusBarHeight() val params = homeView.statusBarView.layoutParams as LinearLayout.LayoutParams params.height = statusBarHeight homeView.statusBarView.setBackgroundColor(Color.parseColor("#D6EEFE")) @@ -109,7 +102,7 @@ val userModelJson = SaveKeyValues.getValue(LocaleConstant.USER_OBJECT, "") as String userData = gson.fromJson(userModelJson, UserInfoModel::class.java).data!! - weakReferenceHandler = WeakReferenceHandler(callback) + weakReferenceHandler = WeakReferenceHandler(this) if (BLEManager.initBLE(requireContext())) { if (!BLEManager.isBluetoothEnable()) { @@ -126,12 +119,10 @@ uiSettings.isRotateGesturesEnabled = false//不许地图随手势旋转角度 //显示定位小蓝点 locationStyle = MyLocationStyle() - locationStyle locationStyle.showMyLocation(true)//设置是否显示定位小蓝点 - locationStyle.interval(10 * 1000)////设置连续定位模式下的定位间隔,只在连续定位模式下生效。单位为毫秒 aMap.myLocationStyle = locationStyle aMap.isMyLocationEnabled = true - aMap.moveCamera(CameraUpdateFactory.zoomTo(14.toFloat())) + aMap.moveCamera(CameraUpdateFactory.zoomTo(16.toFloat())) initEvent() @@ -179,15 +170,14 @@ .setOnActionSheetListener(object : BottomActionSheet.OnActionSheetListener { override fun onActionItemClick(position: Int) { //获取当前定位 - val currentLng = SaveKeyValues.getValue( + val lng = SaveKeyValues.getValue( LocaleConstant.CURRENT_LONGITUDE, "0.0" ) as String - val currentLat = - SaveKeyValues.getValue(LocaleConstant.CURRENT_LATITUDE, "0.0") as String + val lat = SaveKeyValues.getValue( + LocaleConstant.CURRENT_LATITUDE, "0.0" + ) as String requireContext().navigatePageTo( - addAll( - position.toString(), model.id, model.name, currentLng, currentLat - ) + addAll(position.toString(), model.id, model.name, lng, lat) ) } }).build().show() @@ -303,7 +293,7 @@ } } - private val callback = Handler.Callback { msg -> + override fun handleMessage(msg: Message): Boolean { when (msg.what) { LocaleConstant.BLUETOOTH_ON -> { "蓝牙已开启".show(requireContext()) @@ -372,7 +362,7 @@ ) LocaleConstant.DISCONNECT_SUCCESS -> curConnectState = false } - true + return true } private fun startConnectDevice(device: BluetoothDevice) { @@ -529,11 +519,15 @@ homeView.settingsValueView.text = dataModel.alarmValue.toString() homeView.maxValueView.text = dataModel.maxPotency.toString() //判断是否需要报警 + val isOpenWarning = + SaveKeyValues.getValue(LocaleConstant.SINGLE_OPEN_WARNING, false) as Boolean if (isOpenWarning) { if (dataModel.potency >= dataModel.alarmValue) { //当前值大于设置值,需要报警 SoundPoolHelper.playSound(requireContext(), R.raw.alarm) vibrator.vibrate(1000) + val isAutoRecord = + SaveKeyValues.getValue(LocaleConstant.SINGLE_AUTO_RECORD, false) as Boolean if (isAutoRecord) { //如果连续超过10个报警,自动生成报警事件 alarmCount++ diff --git a/app/src/main/java/com/casic/birmm/inspect/fragment/QueryEventFragment.kt b/app/src/main/java/com/casic/birmm/inspect/fragment/QueryEventFragment.kt index 82a23c9..d134e0b 100644 --- a/app/src/main/java/com/casic/birmm/inspect/fragment/QueryEventFragment.kt +++ b/app/src/main/java/com/casic/birmm/inspect/fragment/QueryEventFragment.kt @@ -3,7 +3,6 @@ import android.os.Handler import androidx.lifecycle.ViewModelProvider import com.casic.birmm.inspect.R -import com.casic.birmm.inspect.extensions.addAll import com.casic.birmm.inspect.extensions.combineImagePath import com.casic.birmm.inspect.model.EventListModel import com.casic.birmm.inspect.view.EventDetailActivity @@ -11,9 +10,9 @@ import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseFragment -import com.pengxh.kt.lite.extensions.filterSpaceOrEnter import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show +import com.pengxh.kt.lite.extensions.toJson import com.pengxh.kt.lite.utils.WeakReferenceHandler import kotlinx.android.synthetic.main.fragment_query_event.* import kotlinx.android.synthetic.main.include_empty_view.* @@ -83,7 +82,6 @@ override fun onResume() { super.onResume() - pageIndex = 1 getEventList() } @@ -119,7 +117,7 @@ viewHolder.setText(R.id.inspectMsgView, item.name) .setText(R.id.inspectTypeView, "类型:${item.type}") - .setText(R.id.inspectDateView, "上报时间:${item.createTime}") + .setText(R.id.inspectDateView, "时间:${item.createTime}") } } eventRecyclerView.adapter = eventListAdapter @@ -128,11 +126,7 @@ override fun onItemClicked( position: Int, t: EventListModel.DataModel.RowsModel ) { - requireContext().navigatePageTo( - addAll( - t.createTime, t.description!!.filterSpaceOrEnter(), t.data, t.images - ) - ) + requireContext().navigatePageTo(t.toJson()) } }) } diff --git a/app/src/main/java/com/casic/birmm/inspect/single/fragment/HomePageFragment.kt b/app/src/main/java/com/casic/birmm/inspect/single/fragment/HomePageFragment.kt index 81ffffd..4a898ce 100644 --- a/app/src/main/java/com/casic/birmm/inspect/single/fragment/HomePageFragment.kt +++ b/app/src/main/java/com/casic/birmm/inspect/single/fragment/HomePageFragment.kt @@ -8,6 +8,7 @@ import android.graphics.Color import android.os.Bundle import android.os.Handler +import android.os.Message import android.os.Vibrator import android.util.Log import android.view.LayoutInflater @@ -33,10 +34,7 @@ import com.casic.birmm.inspect.utils.LocaleConstant import com.casic.birmm.inspect.utils.SoundPoolHelper import com.google.gson.Gson -import com.pengxh.kt.lite.extensions.navigatePageTo -import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.extensions.timestampToCompleteDate -import com.pengxh.kt.lite.extensions.timestampToDate +import com.pengxh.kt.lite.extensions.* import com.pengxh.kt.lite.utils.SaveKeyValues import com.pengxh.kt.lite.utils.WeakReferenceHandler import com.pengxh.kt.lite.utils.ble.BLEManager @@ -46,20 +44,15 @@ import com.pengxh.kt.lite.widget.dialog.AlertControlDialog import com.pengxh.kt.lite.widget.dialog.AlertInputDialog import com.pengxh.kt.lite.widget.dialog.BottomActionSheet -import com.qmuiteam.qmui.util.QMUIDisplayHelper import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet import kotlinx.android.synthetic.main.single_fragment_map_inspect.view.* import java.util.* @SuppressLint("MissingPermission") -class HomePageFragment : Fragment() { +class HomePageFragment : Fragment(), Handler.Callback { private val kTag = "HomePageFragment" private val gson by lazy { Gson() } - private val isOpenWarning = - SaveKeyValues.getValue(LocaleConstant.SINGLE_OPEN_WARNING, false) as Boolean - private val isAutoRecord = - SaveKeyValues.getValue(LocaleConstant.SINGLE_AUTO_RECORD, false) as Boolean private lateinit var homeView: View private lateinit var vibrator: Vibrator private lateinit var aMap: AMap @@ -80,14 +73,14 @@ homeView = inflater.inflate(R.layout.single_fragment_map_inspect, container, false) //根据不同设备状态栏高度设置statusBarView高度 - val statusBarHeight = QMUIDisplayHelper.getStatusBarHeight(requireContext()) + val statusBarHeight = requireContext().getStatusBarHeight() val params = homeView.statusBarView.layoutParams as LinearLayout.LayoutParams params.height = statusBarHeight homeView.statusBarView.setBackgroundColor(Color.parseColor("#D6EEFE")) homeView.statusBarView.requestLayout() vibrator = requireContext().getSystemService(Context.VIBRATOR_SERVICE) as Vibrator - weakReferenceHandler = WeakReferenceHandler(callback) + weakReferenceHandler = WeakReferenceHandler(this) if (BLEManager.initBLE(requireContext())) { if (!BLEManager.isBluetoothEnable()) { @@ -104,12 +97,10 @@ uiSettings.isRotateGesturesEnabled = false//不许地图随手势旋转角度 //显示定位小蓝点 locationStyle = MyLocationStyle() - locationStyle locationStyle.showMyLocation(true)//设置是否显示定位小蓝点 - locationStyle.interval(10 * 1000)////设置连续定位模式下的定位间隔,只在连续定位模式下生效。单位为毫秒 aMap.myLocationStyle = locationStyle aMap.isMyLocationEnabled = true - aMap.moveCamera(CameraUpdateFactory.zoomTo(14.toFloat())) + aMap.moveCamera(CameraUpdateFactory.zoomTo(16.toFloat())) initEvent() @@ -157,15 +148,14 @@ .setOnActionSheetListener(object : BottomActionSheet.OnActionSheetListener { override fun onActionItemClick(position: Int) { //获取当前定位 - val currentLng = SaveKeyValues.getValue( + val lng = SaveKeyValues.getValue( LocaleConstant.CURRENT_LONGITUDE, "0.0" ) as String - val currentLat = - SaveKeyValues.getValue(LocaleConstant.CURRENT_LATITUDE, "0.0") as String + val lat = SaveKeyValues.getValue( + LocaleConstant.CURRENT_LATITUDE, "0.0" + ) as String requireContext().navigatePageTo( - addAll( - position.toString(), model.id, model.name, currentLng, currentLat - ) + addAll(position.toString(), model.id, model.name, lng, lat) ) } }).build().show() @@ -281,7 +271,7 @@ } } - private val callback = Handler.Callback { msg -> + override fun handleMessage(msg: Message): Boolean { when (msg.what) { LocaleConstant.BLUETOOTH_ON -> { "蓝牙已开启".show(requireContext()) @@ -350,7 +340,7 @@ ) LocaleConstant.DISCONNECT_SUCCESS -> curConnectState = false } - true + return true } private fun startConnectDevice(device: BluetoothDevice) { @@ -502,11 +492,15 @@ homeView.settingsValueView.text = dataModel.alarmValue.toString() homeView.maxValueView.text = dataModel.maxPotency.toString() //判断是否需要报警 + val isOpenWarning = + SaveKeyValues.getValue(LocaleConstant.SINGLE_OPEN_WARNING, false) as Boolean if (isOpenWarning) { if (dataModel.potency >= dataModel.alarmValue) { //当前值大于设置值,需要报警 SoundPoolHelper.playSound(requireContext(), R.raw.alarm) vibrator.vibrate(1000) + val isAutoRecord = + SaveKeyValues.getValue(LocaleConstant.SINGLE_AUTO_RECORD, false) as Boolean if (isAutoRecord) { //如果连续超过10个报警,自动生成报警事件 alarmCount++ diff --git a/app/src/main/java/com/casic/birmm/inspect/single/fragment/QueryEventFragment.kt b/app/src/main/java/com/casic/birmm/inspect/single/fragment/QueryEventFragment.kt index 96dba16..812d329 100644 --- a/app/src/main/java/com/casic/birmm/inspect/single/fragment/QueryEventFragment.kt +++ b/app/src/main/java/com/casic/birmm/inspect/single/fragment/QueryEventFragment.kt @@ -3,15 +3,14 @@ import androidx.lifecycle.lifecycleScope import com.bumptech.glide.Glide import com.casic.birmm.inspect.R -import com.casic.birmm.inspect.extensions.addAll import com.casic.birmm.inspect.model.EventListModel import com.casic.birmm.inspect.single.view.EventDetailActivity import com.casic.birmm.inspect.utils.DataBaseManager import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseFragment -import com.pengxh.kt.lite.extensions.filterSpaceOrEnter import com.pengxh.kt.lite.extensions.navigatePageTo +import com.pengxh.kt.lite.extensions.toJson import kotlinx.android.synthetic.main.include_empty_view.* import kotlinx.android.synthetic.main.single_fragment_query_event.* import kotlinx.coroutines.Dispatchers @@ -41,8 +40,7 @@ R.layout.item_event_rv_l, dataBeans ) { override fun convertView( - viewHolder: ViewHolder, - position: Int, + viewHolder: ViewHolder, position: Int, item: EventListModel.DataModel.RowsModel ) { if (!item.images.isNullOrBlank()) { @@ -61,22 +59,15 @@ } viewHolder.setText(R.id.inspectMsgView, item.name) - .setText(R.id.inspectMsgView, "类型:${item.type}") - .setText(R.id.inspectMsgView, "上报时间:${item.createTime}") + .setText(R.id.inspectTypeView, "类型:${item.type}") + .setText(R.id.inspectDateView, "时间:${item.createTime}") } } eventRecyclerView.adapter = eventListAdapter eventListAdapter.setOnItemClickedListener(object : NormalRecyclerAdapter.OnItemClickedListener { override fun onItemClicked(position: Int, t: EventListModel.DataModel.RowsModel) { - requireContext().navigatePageTo( - addAll( - t.createTime.toString(), - t.description!!.filterSpaceOrEnter(), - t.data.toString(), - t.images.toString() - ) - ) + requireContext().navigatePageTo(t.toJson()) } }) } diff --git a/app/src/main/java/com/casic/birmm/inspect/single/view/EventDetailActivity.kt b/app/src/main/java/com/casic/birmm/inspect/single/view/EventDetailActivity.kt index f00bbae..b7d59e8 100644 --- a/app/src/main/java/com/casic/birmm/inspect/single/view/EventDetailActivity.kt +++ b/app/src/main/java/com/casic/birmm/inspect/single/view/EventDetailActivity.kt @@ -2,7 +2,10 @@ import androidx.core.content.ContextCompat import com.casic.birmm.inspect.R +import com.casic.birmm.inspect.model.EventListModel import com.casic.birmm.inspect.view.BigImageActivity +import com.google.gson.Gson +import com.google.gson.reflect.TypeToken import com.gyf.immersionbar.ImmersionBar import com.pengxh.kt.lite.adapter.ReadOnlyImageAdapter import com.pengxh.kt.lite.base.KotlinBaseActivity @@ -15,12 +18,17 @@ class EventDetailActivity : KotlinBaseActivity() { - override fun initData() { - val args = intent.getStringArrayListExtra(Constant.INTENT_PARAM)!! + private val gson by lazy { Gson() } - createTimeView.text = args[0] - descriptionView.text = args[1] - val data = args[2] + override fun initData() { + val args = intent.getStringExtra(Constant.INTENT_PARAM)!! + val model = gson.fromJson( + args, object : TypeToken() {}.type + ) + + createTimeView.text = model.createTime + descriptionView.text = model.description + val data = model.data val value = if (data.isNullOrBlank()) { "0.0" } else { @@ -28,7 +36,7 @@ } dataView.text = value - val images = args[3] + val images = model.images /** * images: 2020-12/6528aeb21cff426c91c43a7f8b716d1e.jpg diff --git a/app/src/main/java/com/casic/birmm/inspect/single/view/NewEventActivity.kt b/app/src/main/java/com/casic/birmm/inspect/single/view/NewEventActivity.kt index b77a8f2..7e4f7e7 100644 --- a/app/src/main/java/com/casic/birmm/inspect/single/view/NewEventActivity.kt +++ b/app/src/main/java/com/casic/birmm/inspect/single/view/NewEventActivity.kt @@ -39,7 +39,7 @@ private var isWarning: Boolean = true private var longitude: Double = 0.0 private var latitude: Double = 0.0 - private var data = -1.0//泄露默认值 + private var data = 0.0//泄露默认值 override fun initData() { diff --git a/app/src/main/java/com/casic/birmm/inspect/utils/retrofit/RetrofitService.kt b/app/src/main/java/com/casic/birmm/inspect/utils/retrofit/RetrofitService.kt index 1281613..cfd24bd 100644 --- a/app/src/main/java/com/casic/birmm/inspect/utils/retrofit/RetrofitService.kt +++ b/app/src/main/java/com/casic/birmm/inspect/utils/retrofit/RetrofitService.kt @@ -16,7 +16,7 @@ */ @FormUrlEncoded @POST("/user/appLogin") - suspend fun getLoginResult( + suspend fun login( @Field("username") account: String, @Field("password") secretKey: String ): String diff --git a/app/src/main/java/com/casic/birmm/inspect/utils/retrofit/RetrofitServiceManager.kt b/app/src/main/java/com/casic/birmm/inspect/utils/retrofit/RetrofitServiceManager.kt index 4c1f278..324cf23 100644 --- a/app/src/main/java/com/casic/birmm/inspect/utils/retrofit/RetrofitServiceManager.kt +++ b/app/src/main/java/com/casic/birmm/inspect/utils/retrofit/RetrofitServiceManager.kt @@ -28,8 +28,8 @@ /** * 登录并获取Token */ - suspend fun getLoginResult(account: String, secretKey: String): String { - return api.getLoginResult(account, secretKey) + suspend fun login(account: String, secretKey: String): String { + return api.login(account, secretKey) } /** diff --git a/app/src/main/java/com/casic/birmm/inspect/view/EventDetailActivity.kt b/app/src/main/java/com/casic/birmm/inspect/view/EventDetailActivity.kt index 6f3d166..5dd7f86 100644 --- a/app/src/main/java/com/casic/birmm/inspect/view/EventDetailActivity.kt +++ b/app/src/main/java/com/casic/birmm/inspect/view/EventDetailActivity.kt @@ -3,6 +3,9 @@ import androidx.core.content.ContextCompat import com.casic.birmm.inspect.R import com.casic.birmm.inspect.extensions.combineImagePath +import com.casic.birmm.inspect.model.EventListModel +import com.google.gson.Gson +import com.google.gson.reflect.TypeToken import com.gyf.immersionbar.ImmersionBar import com.pengxh.kt.lite.adapter.ReadOnlyImageAdapter import com.pengxh.kt.lite.base.KotlinBaseActivity @@ -16,6 +19,8 @@ class EventDetailActivity : KotlinBaseActivity() { + private val gson by lazy { Gson() } + override fun initLayoutView(): Int = R.layout.activity_event_detail override fun setupTopBarLayout() { @@ -29,11 +34,14 @@ } override fun initData() { - val args = intent.getStringArrayListExtra(Constant.INTENT_PARAM)!! + val args = intent.getStringExtra(Constant.INTENT_PARAM)!! + val model = gson.fromJson( + args, object : TypeToken() {}.type + ) - createTimeView.text = args[0] - descriptionView.text = args[1] - val data = args[2] + createTimeView.text = model.createTime + descriptionView.text = model.description + val data = model.data val value = if (data.isNullOrBlank()) { "0.0" } else { @@ -41,7 +49,7 @@ } dataView.text = value - val images = args[3] + val images = model.images /** * images: 2020-12/6528aeb21cff426c91c43a7f8b716d1e.jpg diff --git a/.idea/misc.xml b/.idea/misc.xml index 139dc2a..e7cbf98 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -11,6 +11,7 @@ + diff --git a/app/src/main/java/com/casic/birmm/inspect/fragment/HomePageFragment.kt b/app/src/main/java/com/casic/birmm/inspect/fragment/HomePageFragment.kt index 91cd394..a757dfb 100644 --- a/app/src/main/java/com/casic/birmm/inspect/fragment/HomePageFragment.kt +++ b/app/src/main/java/com/casic/birmm/inspect/fragment/HomePageFragment.kt @@ -8,6 +8,7 @@ import android.graphics.Color import android.os.Bundle import android.os.Handler +import android.os.Message import android.os.Vibrator import android.util.Log import android.view.LayoutInflater @@ -37,10 +38,7 @@ import com.casic.birmm.inspect.vm.EventViewModel import com.casic.birmm.inspect.vm.InspectionViewModel import com.google.gson.Gson -import com.pengxh.kt.lite.extensions.navigatePageTo -import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.extensions.timestampToCompleteDate -import com.pengxh.kt.lite.extensions.timestampToDate +import com.pengxh.kt.lite.extensions.* import com.pengxh.kt.lite.utils.SaveKeyValues import com.pengxh.kt.lite.utils.WeakReferenceHandler import com.pengxh.kt.lite.utils.ble.BLEManager @@ -51,20 +49,15 @@ import com.pengxh.kt.lite.widget.dialog.AlertControlDialog import com.pengxh.kt.lite.widget.dialog.AlertInputDialog import com.pengxh.kt.lite.widget.dialog.BottomActionSheet -import com.qmuiteam.qmui.util.QMUIDisplayHelper import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet import kotlinx.android.synthetic.main.fragment_map_inspect.view.* import java.util.* @SuppressLint("MissingPermission") -class HomePageFragment : Fragment() { +class HomePageFragment : Fragment(), Handler.Callback { private val kTag = "HomePageFragment" private val gson by lazy { Gson() } - private val isOpenWarning = - SaveKeyValues.getValue(LocaleConstant.OPEN_WARNING, false) as Boolean - private val isAutoRecord = - SaveKeyValues.getValue(LocaleConstant.AUTO_RECORD, false) as Boolean private lateinit var homeView: View private lateinit var userData: UserInfoModel.DataModel private lateinit var vibrator: Vibrator @@ -88,7 +81,7 @@ homeView = inflater.inflate(R.layout.fragment_map_inspect, container, false) //根据不同设备状态栏高度设置statusBarView高度 - val statusBarHeight = QMUIDisplayHelper.getStatusBarHeight(requireContext()) + val statusBarHeight = requireContext().getStatusBarHeight() val params = homeView.statusBarView.layoutParams as LinearLayout.LayoutParams params.height = statusBarHeight homeView.statusBarView.setBackgroundColor(Color.parseColor("#D6EEFE")) @@ -109,7 +102,7 @@ val userModelJson = SaveKeyValues.getValue(LocaleConstant.USER_OBJECT, "") as String userData = gson.fromJson(userModelJson, UserInfoModel::class.java).data!! - weakReferenceHandler = WeakReferenceHandler(callback) + weakReferenceHandler = WeakReferenceHandler(this) if (BLEManager.initBLE(requireContext())) { if (!BLEManager.isBluetoothEnable()) { @@ -126,12 +119,10 @@ uiSettings.isRotateGesturesEnabled = false//不许地图随手势旋转角度 //显示定位小蓝点 locationStyle = MyLocationStyle() - locationStyle locationStyle.showMyLocation(true)//设置是否显示定位小蓝点 - locationStyle.interval(10 * 1000)////设置连续定位模式下的定位间隔,只在连续定位模式下生效。单位为毫秒 aMap.myLocationStyle = locationStyle aMap.isMyLocationEnabled = true - aMap.moveCamera(CameraUpdateFactory.zoomTo(14.toFloat())) + aMap.moveCamera(CameraUpdateFactory.zoomTo(16.toFloat())) initEvent() @@ -179,15 +170,14 @@ .setOnActionSheetListener(object : BottomActionSheet.OnActionSheetListener { override fun onActionItemClick(position: Int) { //获取当前定位 - val currentLng = SaveKeyValues.getValue( + val lng = SaveKeyValues.getValue( LocaleConstant.CURRENT_LONGITUDE, "0.0" ) as String - val currentLat = - SaveKeyValues.getValue(LocaleConstant.CURRENT_LATITUDE, "0.0") as String + val lat = SaveKeyValues.getValue( + LocaleConstant.CURRENT_LATITUDE, "0.0" + ) as String requireContext().navigatePageTo( - addAll( - position.toString(), model.id, model.name, currentLng, currentLat - ) + addAll(position.toString(), model.id, model.name, lng, lat) ) } }).build().show() @@ -303,7 +293,7 @@ } } - private val callback = Handler.Callback { msg -> + override fun handleMessage(msg: Message): Boolean { when (msg.what) { LocaleConstant.BLUETOOTH_ON -> { "蓝牙已开启".show(requireContext()) @@ -372,7 +362,7 @@ ) LocaleConstant.DISCONNECT_SUCCESS -> curConnectState = false } - true + return true } private fun startConnectDevice(device: BluetoothDevice) { @@ -529,11 +519,15 @@ homeView.settingsValueView.text = dataModel.alarmValue.toString() homeView.maxValueView.text = dataModel.maxPotency.toString() //判断是否需要报警 + val isOpenWarning = + SaveKeyValues.getValue(LocaleConstant.SINGLE_OPEN_WARNING, false) as Boolean if (isOpenWarning) { if (dataModel.potency >= dataModel.alarmValue) { //当前值大于设置值,需要报警 SoundPoolHelper.playSound(requireContext(), R.raw.alarm) vibrator.vibrate(1000) + val isAutoRecord = + SaveKeyValues.getValue(LocaleConstant.SINGLE_AUTO_RECORD, false) as Boolean if (isAutoRecord) { //如果连续超过10个报警,自动生成报警事件 alarmCount++ diff --git a/app/src/main/java/com/casic/birmm/inspect/fragment/QueryEventFragment.kt b/app/src/main/java/com/casic/birmm/inspect/fragment/QueryEventFragment.kt index 82a23c9..d134e0b 100644 --- a/app/src/main/java/com/casic/birmm/inspect/fragment/QueryEventFragment.kt +++ b/app/src/main/java/com/casic/birmm/inspect/fragment/QueryEventFragment.kt @@ -3,7 +3,6 @@ import android.os.Handler import androidx.lifecycle.ViewModelProvider import com.casic.birmm.inspect.R -import com.casic.birmm.inspect.extensions.addAll import com.casic.birmm.inspect.extensions.combineImagePath import com.casic.birmm.inspect.model.EventListModel import com.casic.birmm.inspect.view.EventDetailActivity @@ -11,9 +10,9 @@ import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseFragment -import com.pengxh.kt.lite.extensions.filterSpaceOrEnter import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show +import com.pengxh.kt.lite.extensions.toJson import com.pengxh.kt.lite.utils.WeakReferenceHandler import kotlinx.android.synthetic.main.fragment_query_event.* import kotlinx.android.synthetic.main.include_empty_view.* @@ -83,7 +82,6 @@ override fun onResume() { super.onResume() - pageIndex = 1 getEventList() } @@ -119,7 +117,7 @@ viewHolder.setText(R.id.inspectMsgView, item.name) .setText(R.id.inspectTypeView, "类型:${item.type}") - .setText(R.id.inspectDateView, "上报时间:${item.createTime}") + .setText(R.id.inspectDateView, "时间:${item.createTime}") } } eventRecyclerView.adapter = eventListAdapter @@ -128,11 +126,7 @@ override fun onItemClicked( position: Int, t: EventListModel.DataModel.RowsModel ) { - requireContext().navigatePageTo( - addAll( - t.createTime, t.description!!.filterSpaceOrEnter(), t.data, t.images - ) - ) + requireContext().navigatePageTo(t.toJson()) } }) } diff --git a/app/src/main/java/com/casic/birmm/inspect/single/fragment/HomePageFragment.kt b/app/src/main/java/com/casic/birmm/inspect/single/fragment/HomePageFragment.kt index 81ffffd..4a898ce 100644 --- a/app/src/main/java/com/casic/birmm/inspect/single/fragment/HomePageFragment.kt +++ b/app/src/main/java/com/casic/birmm/inspect/single/fragment/HomePageFragment.kt @@ -8,6 +8,7 @@ import android.graphics.Color import android.os.Bundle import android.os.Handler +import android.os.Message import android.os.Vibrator import android.util.Log import android.view.LayoutInflater @@ -33,10 +34,7 @@ import com.casic.birmm.inspect.utils.LocaleConstant import com.casic.birmm.inspect.utils.SoundPoolHelper import com.google.gson.Gson -import com.pengxh.kt.lite.extensions.navigatePageTo -import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.extensions.timestampToCompleteDate -import com.pengxh.kt.lite.extensions.timestampToDate +import com.pengxh.kt.lite.extensions.* import com.pengxh.kt.lite.utils.SaveKeyValues import com.pengxh.kt.lite.utils.WeakReferenceHandler import com.pengxh.kt.lite.utils.ble.BLEManager @@ -46,20 +44,15 @@ import com.pengxh.kt.lite.widget.dialog.AlertControlDialog import com.pengxh.kt.lite.widget.dialog.AlertInputDialog import com.pengxh.kt.lite.widget.dialog.BottomActionSheet -import com.qmuiteam.qmui.util.QMUIDisplayHelper import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet import kotlinx.android.synthetic.main.single_fragment_map_inspect.view.* import java.util.* @SuppressLint("MissingPermission") -class HomePageFragment : Fragment() { +class HomePageFragment : Fragment(), Handler.Callback { private val kTag = "HomePageFragment" private val gson by lazy { Gson() } - private val isOpenWarning = - SaveKeyValues.getValue(LocaleConstant.SINGLE_OPEN_WARNING, false) as Boolean - private val isAutoRecord = - SaveKeyValues.getValue(LocaleConstant.SINGLE_AUTO_RECORD, false) as Boolean private lateinit var homeView: View private lateinit var vibrator: Vibrator private lateinit var aMap: AMap @@ -80,14 +73,14 @@ homeView = inflater.inflate(R.layout.single_fragment_map_inspect, container, false) //根据不同设备状态栏高度设置statusBarView高度 - val statusBarHeight = QMUIDisplayHelper.getStatusBarHeight(requireContext()) + val statusBarHeight = requireContext().getStatusBarHeight() val params = homeView.statusBarView.layoutParams as LinearLayout.LayoutParams params.height = statusBarHeight homeView.statusBarView.setBackgroundColor(Color.parseColor("#D6EEFE")) homeView.statusBarView.requestLayout() vibrator = requireContext().getSystemService(Context.VIBRATOR_SERVICE) as Vibrator - weakReferenceHandler = WeakReferenceHandler(callback) + weakReferenceHandler = WeakReferenceHandler(this) if (BLEManager.initBLE(requireContext())) { if (!BLEManager.isBluetoothEnable()) { @@ -104,12 +97,10 @@ uiSettings.isRotateGesturesEnabled = false//不许地图随手势旋转角度 //显示定位小蓝点 locationStyle = MyLocationStyle() - locationStyle locationStyle.showMyLocation(true)//设置是否显示定位小蓝点 - locationStyle.interval(10 * 1000)////设置连续定位模式下的定位间隔,只在连续定位模式下生效。单位为毫秒 aMap.myLocationStyle = locationStyle aMap.isMyLocationEnabled = true - aMap.moveCamera(CameraUpdateFactory.zoomTo(14.toFloat())) + aMap.moveCamera(CameraUpdateFactory.zoomTo(16.toFloat())) initEvent() @@ -157,15 +148,14 @@ .setOnActionSheetListener(object : BottomActionSheet.OnActionSheetListener { override fun onActionItemClick(position: Int) { //获取当前定位 - val currentLng = SaveKeyValues.getValue( + val lng = SaveKeyValues.getValue( LocaleConstant.CURRENT_LONGITUDE, "0.0" ) as String - val currentLat = - SaveKeyValues.getValue(LocaleConstant.CURRENT_LATITUDE, "0.0") as String + val lat = SaveKeyValues.getValue( + LocaleConstant.CURRENT_LATITUDE, "0.0" + ) as String requireContext().navigatePageTo( - addAll( - position.toString(), model.id, model.name, currentLng, currentLat - ) + addAll(position.toString(), model.id, model.name, lng, lat) ) } }).build().show() @@ -281,7 +271,7 @@ } } - private val callback = Handler.Callback { msg -> + override fun handleMessage(msg: Message): Boolean { when (msg.what) { LocaleConstant.BLUETOOTH_ON -> { "蓝牙已开启".show(requireContext()) @@ -350,7 +340,7 @@ ) LocaleConstant.DISCONNECT_SUCCESS -> curConnectState = false } - true + return true } private fun startConnectDevice(device: BluetoothDevice) { @@ -502,11 +492,15 @@ homeView.settingsValueView.text = dataModel.alarmValue.toString() homeView.maxValueView.text = dataModel.maxPotency.toString() //判断是否需要报警 + val isOpenWarning = + SaveKeyValues.getValue(LocaleConstant.SINGLE_OPEN_WARNING, false) as Boolean if (isOpenWarning) { if (dataModel.potency >= dataModel.alarmValue) { //当前值大于设置值,需要报警 SoundPoolHelper.playSound(requireContext(), R.raw.alarm) vibrator.vibrate(1000) + val isAutoRecord = + SaveKeyValues.getValue(LocaleConstant.SINGLE_AUTO_RECORD, false) as Boolean if (isAutoRecord) { //如果连续超过10个报警,自动生成报警事件 alarmCount++ diff --git a/app/src/main/java/com/casic/birmm/inspect/single/fragment/QueryEventFragment.kt b/app/src/main/java/com/casic/birmm/inspect/single/fragment/QueryEventFragment.kt index 96dba16..812d329 100644 --- a/app/src/main/java/com/casic/birmm/inspect/single/fragment/QueryEventFragment.kt +++ b/app/src/main/java/com/casic/birmm/inspect/single/fragment/QueryEventFragment.kt @@ -3,15 +3,14 @@ import androidx.lifecycle.lifecycleScope import com.bumptech.glide.Glide import com.casic.birmm.inspect.R -import com.casic.birmm.inspect.extensions.addAll import com.casic.birmm.inspect.model.EventListModel import com.casic.birmm.inspect.single.view.EventDetailActivity import com.casic.birmm.inspect.utils.DataBaseManager import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseFragment -import com.pengxh.kt.lite.extensions.filterSpaceOrEnter import com.pengxh.kt.lite.extensions.navigatePageTo +import com.pengxh.kt.lite.extensions.toJson import kotlinx.android.synthetic.main.include_empty_view.* import kotlinx.android.synthetic.main.single_fragment_query_event.* import kotlinx.coroutines.Dispatchers @@ -41,8 +40,7 @@ R.layout.item_event_rv_l, dataBeans ) { override fun convertView( - viewHolder: ViewHolder, - position: Int, + viewHolder: ViewHolder, position: Int, item: EventListModel.DataModel.RowsModel ) { if (!item.images.isNullOrBlank()) { @@ -61,22 +59,15 @@ } viewHolder.setText(R.id.inspectMsgView, item.name) - .setText(R.id.inspectMsgView, "类型:${item.type}") - .setText(R.id.inspectMsgView, "上报时间:${item.createTime}") + .setText(R.id.inspectTypeView, "类型:${item.type}") + .setText(R.id.inspectDateView, "时间:${item.createTime}") } } eventRecyclerView.adapter = eventListAdapter eventListAdapter.setOnItemClickedListener(object : NormalRecyclerAdapter.OnItemClickedListener { override fun onItemClicked(position: Int, t: EventListModel.DataModel.RowsModel) { - requireContext().navigatePageTo( - addAll( - t.createTime.toString(), - t.description!!.filterSpaceOrEnter(), - t.data.toString(), - t.images.toString() - ) - ) + requireContext().navigatePageTo(t.toJson()) } }) } diff --git a/app/src/main/java/com/casic/birmm/inspect/single/view/EventDetailActivity.kt b/app/src/main/java/com/casic/birmm/inspect/single/view/EventDetailActivity.kt index f00bbae..b7d59e8 100644 --- a/app/src/main/java/com/casic/birmm/inspect/single/view/EventDetailActivity.kt +++ b/app/src/main/java/com/casic/birmm/inspect/single/view/EventDetailActivity.kt @@ -2,7 +2,10 @@ import androidx.core.content.ContextCompat import com.casic.birmm.inspect.R +import com.casic.birmm.inspect.model.EventListModel import com.casic.birmm.inspect.view.BigImageActivity +import com.google.gson.Gson +import com.google.gson.reflect.TypeToken import com.gyf.immersionbar.ImmersionBar import com.pengxh.kt.lite.adapter.ReadOnlyImageAdapter import com.pengxh.kt.lite.base.KotlinBaseActivity @@ -15,12 +18,17 @@ class EventDetailActivity : KotlinBaseActivity() { - override fun initData() { - val args = intent.getStringArrayListExtra(Constant.INTENT_PARAM)!! + private val gson by lazy { Gson() } - createTimeView.text = args[0] - descriptionView.text = args[1] - val data = args[2] + override fun initData() { + val args = intent.getStringExtra(Constant.INTENT_PARAM)!! + val model = gson.fromJson( + args, object : TypeToken() {}.type + ) + + createTimeView.text = model.createTime + descriptionView.text = model.description + val data = model.data val value = if (data.isNullOrBlank()) { "0.0" } else { @@ -28,7 +36,7 @@ } dataView.text = value - val images = args[3] + val images = model.images /** * images: 2020-12/6528aeb21cff426c91c43a7f8b716d1e.jpg diff --git a/app/src/main/java/com/casic/birmm/inspect/single/view/NewEventActivity.kt b/app/src/main/java/com/casic/birmm/inspect/single/view/NewEventActivity.kt index b77a8f2..7e4f7e7 100644 --- a/app/src/main/java/com/casic/birmm/inspect/single/view/NewEventActivity.kt +++ b/app/src/main/java/com/casic/birmm/inspect/single/view/NewEventActivity.kt @@ -39,7 +39,7 @@ private var isWarning: Boolean = true private var longitude: Double = 0.0 private var latitude: Double = 0.0 - private var data = -1.0//泄露默认值 + private var data = 0.0//泄露默认值 override fun initData() { diff --git a/app/src/main/java/com/casic/birmm/inspect/utils/retrofit/RetrofitService.kt b/app/src/main/java/com/casic/birmm/inspect/utils/retrofit/RetrofitService.kt index 1281613..cfd24bd 100644 --- a/app/src/main/java/com/casic/birmm/inspect/utils/retrofit/RetrofitService.kt +++ b/app/src/main/java/com/casic/birmm/inspect/utils/retrofit/RetrofitService.kt @@ -16,7 +16,7 @@ */ @FormUrlEncoded @POST("/user/appLogin") - suspend fun getLoginResult( + suspend fun login( @Field("username") account: String, @Field("password") secretKey: String ): String diff --git a/app/src/main/java/com/casic/birmm/inspect/utils/retrofit/RetrofitServiceManager.kt b/app/src/main/java/com/casic/birmm/inspect/utils/retrofit/RetrofitServiceManager.kt index 4c1f278..324cf23 100644 --- a/app/src/main/java/com/casic/birmm/inspect/utils/retrofit/RetrofitServiceManager.kt +++ b/app/src/main/java/com/casic/birmm/inspect/utils/retrofit/RetrofitServiceManager.kt @@ -28,8 +28,8 @@ /** * 登录并获取Token */ - suspend fun getLoginResult(account: String, secretKey: String): String { - return api.getLoginResult(account, secretKey) + suspend fun login(account: String, secretKey: String): String { + return api.login(account, secretKey) } /** diff --git a/app/src/main/java/com/casic/birmm/inspect/view/EventDetailActivity.kt b/app/src/main/java/com/casic/birmm/inspect/view/EventDetailActivity.kt index 6f3d166..5dd7f86 100644 --- a/app/src/main/java/com/casic/birmm/inspect/view/EventDetailActivity.kt +++ b/app/src/main/java/com/casic/birmm/inspect/view/EventDetailActivity.kt @@ -3,6 +3,9 @@ import androidx.core.content.ContextCompat import com.casic.birmm.inspect.R import com.casic.birmm.inspect.extensions.combineImagePath +import com.casic.birmm.inspect.model.EventListModel +import com.google.gson.Gson +import com.google.gson.reflect.TypeToken import com.gyf.immersionbar.ImmersionBar import com.pengxh.kt.lite.adapter.ReadOnlyImageAdapter import com.pengxh.kt.lite.base.KotlinBaseActivity @@ -16,6 +19,8 @@ class EventDetailActivity : KotlinBaseActivity() { + private val gson by lazy { Gson() } + override fun initLayoutView(): Int = R.layout.activity_event_detail override fun setupTopBarLayout() { @@ -29,11 +34,14 @@ } override fun initData() { - val args = intent.getStringArrayListExtra(Constant.INTENT_PARAM)!! + val args = intent.getStringExtra(Constant.INTENT_PARAM)!! + val model = gson.fromJson( + args, object : TypeToken() {}.type + ) - createTimeView.text = args[0] - descriptionView.text = args[1] - val data = args[2] + createTimeView.text = model.createTime + descriptionView.text = model.description + val data = model.data val value = if (data.isNullOrBlank()) { "0.0" } else { @@ -41,7 +49,7 @@ } dataView.text = value - val images = args[3] + val images = model.images /** * images: 2020-12/6528aeb21cff426c91c43a7f8b716d1e.jpg diff --git a/app/src/main/java/com/casic/birmm/inspect/view/LoginActivity.kt b/app/src/main/java/com/casic/birmm/inspect/view/LoginActivity.kt index b34abf4..cac1d23 100644 --- a/app/src/main/java/com/casic/birmm/inspect/view/LoginActivity.kt +++ b/app/src/main/java/com/casic/birmm/inspect/view/LoginActivity.kt @@ -83,7 +83,7 @@ SaveKeyValues.putValue(LocaleConstant.ACCOUNT, account) SaveKeyValues.putValue(LocaleConstant.PASSWORD, userPassword) - authenticateViewModel.obtainPublicKey() + authenticateViewModel.getPublicKey() authenticateViewModel.keyModel.observe(this) { if (it.code == 200) {//用code判断,别的判断可能有坑 val keyString = it.data!!.publicKey!! @@ -93,11 +93,12 @@ AuthenticationHelper.savePublicKey(keyString) val publicKey = RSAUtils.keyStrToPublicKey(keyString) - val dataByPublicKey = - RSAUtils.encryptDataByPublicKey(userPassword.toByteArray(), publicKey!!) + val dataByPublicKey = RSAUtils.encryptDataByPublicKey( + userPassword.toByteArray(), publicKey!! + ) //登录并获取Token,POST请求 - userViewModel.getLoginResult(account = account, secretKey = dataByPublicKey) + userViewModel.login(account, dataByPublicKey) userViewModel.loginResult.observe(this) { loginResult -> if (loginResult.code == 200) { AuthenticationHelper.saveToken(loginResult.data!!.token!!) diff --git a/.idea/misc.xml b/.idea/misc.xml index 139dc2a..e7cbf98 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -11,6 +11,7 @@ + diff --git a/app/src/main/java/com/casic/birmm/inspect/fragment/HomePageFragment.kt b/app/src/main/java/com/casic/birmm/inspect/fragment/HomePageFragment.kt index 91cd394..a757dfb 100644 --- a/app/src/main/java/com/casic/birmm/inspect/fragment/HomePageFragment.kt +++ b/app/src/main/java/com/casic/birmm/inspect/fragment/HomePageFragment.kt @@ -8,6 +8,7 @@ import android.graphics.Color import android.os.Bundle import android.os.Handler +import android.os.Message import android.os.Vibrator import android.util.Log import android.view.LayoutInflater @@ -37,10 +38,7 @@ import com.casic.birmm.inspect.vm.EventViewModel import com.casic.birmm.inspect.vm.InspectionViewModel import com.google.gson.Gson -import com.pengxh.kt.lite.extensions.navigatePageTo -import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.extensions.timestampToCompleteDate -import com.pengxh.kt.lite.extensions.timestampToDate +import com.pengxh.kt.lite.extensions.* import com.pengxh.kt.lite.utils.SaveKeyValues import com.pengxh.kt.lite.utils.WeakReferenceHandler import com.pengxh.kt.lite.utils.ble.BLEManager @@ -51,20 +49,15 @@ import com.pengxh.kt.lite.widget.dialog.AlertControlDialog import com.pengxh.kt.lite.widget.dialog.AlertInputDialog import com.pengxh.kt.lite.widget.dialog.BottomActionSheet -import com.qmuiteam.qmui.util.QMUIDisplayHelper import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet import kotlinx.android.synthetic.main.fragment_map_inspect.view.* import java.util.* @SuppressLint("MissingPermission") -class HomePageFragment : Fragment() { +class HomePageFragment : Fragment(), Handler.Callback { private val kTag = "HomePageFragment" private val gson by lazy { Gson() } - private val isOpenWarning = - SaveKeyValues.getValue(LocaleConstant.OPEN_WARNING, false) as Boolean - private val isAutoRecord = - SaveKeyValues.getValue(LocaleConstant.AUTO_RECORD, false) as Boolean private lateinit var homeView: View private lateinit var userData: UserInfoModel.DataModel private lateinit var vibrator: Vibrator @@ -88,7 +81,7 @@ homeView = inflater.inflate(R.layout.fragment_map_inspect, container, false) //根据不同设备状态栏高度设置statusBarView高度 - val statusBarHeight = QMUIDisplayHelper.getStatusBarHeight(requireContext()) + val statusBarHeight = requireContext().getStatusBarHeight() val params = homeView.statusBarView.layoutParams as LinearLayout.LayoutParams params.height = statusBarHeight homeView.statusBarView.setBackgroundColor(Color.parseColor("#D6EEFE")) @@ -109,7 +102,7 @@ val userModelJson = SaveKeyValues.getValue(LocaleConstant.USER_OBJECT, "") as String userData = gson.fromJson(userModelJson, UserInfoModel::class.java).data!! - weakReferenceHandler = WeakReferenceHandler(callback) + weakReferenceHandler = WeakReferenceHandler(this) if (BLEManager.initBLE(requireContext())) { if (!BLEManager.isBluetoothEnable()) { @@ -126,12 +119,10 @@ uiSettings.isRotateGesturesEnabled = false//不许地图随手势旋转角度 //显示定位小蓝点 locationStyle = MyLocationStyle() - locationStyle locationStyle.showMyLocation(true)//设置是否显示定位小蓝点 - locationStyle.interval(10 * 1000)////设置连续定位模式下的定位间隔,只在连续定位模式下生效。单位为毫秒 aMap.myLocationStyle = locationStyle aMap.isMyLocationEnabled = true - aMap.moveCamera(CameraUpdateFactory.zoomTo(14.toFloat())) + aMap.moveCamera(CameraUpdateFactory.zoomTo(16.toFloat())) initEvent() @@ -179,15 +170,14 @@ .setOnActionSheetListener(object : BottomActionSheet.OnActionSheetListener { override fun onActionItemClick(position: Int) { //获取当前定位 - val currentLng = SaveKeyValues.getValue( + val lng = SaveKeyValues.getValue( LocaleConstant.CURRENT_LONGITUDE, "0.0" ) as String - val currentLat = - SaveKeyValues.getValue(LocaleConstant.CURRENT_LATITUDE, "0.0") as String + val lat = SaveKeyValues.getValue( + LocaleConstant.CURRENT_LATITUDE, "0.0" + ) as String requireContext().navigatePageTo( - addAll( - position.toString(), model.id, model.name, currentLng, currentLat - ) + addAll(position.toString(), model.id, model.name, lng, lat) ) } }).build().show() @@ -303,7 +293,7 @@ } } - private val callback = Handler.Callback { msg -> + override fun handleMessage(msg: Message): Boolean { when (msg.what) { LocaleConstant.BLUETOOTH_ON -> { "蓝牙已开启".show(requireContext()) @@ -372,7 +362,7 @@ ) LocaleConstant.DISCONNECT_SUCCESS -> curConnectState = false } - true + return true } private fun startConnectDevice(device: BluetoothDevice) { @@ -529,11 +519,15 @@ homeView.settingsValueView.text = dataModel.alarmValue.toString() homeView.maxValueView.text = dataModel.maxPotency.toString() //判断是否需要报警 + val isOpenWarning = + SaveKeyValues.getValue(LocaleConstant.SINGLE_OPEN_WARNING, false) as Boolean if (isOpenWarning) { if (dataModel.potency >= dataModel.alarmValue) { //当前值大于设置值,需要报警 SoundPoolHelper.playSound(requireContext(), R.raw.alarm) vibrator.vibrate(1000) + val isAutoRecord = + SaveKeyValues.getValue(LocaleConstant.SINGLE_AUTO_RECORD, false) as Boolean if (isAutoRecord) { //如果连续超过10个报警,自动生成报警事件 alarmCount++ diff --git a/app/src/main/java/com/casic/birmm/inspect/fragment/QueryEventFragment.kt b/app/src/main/java/com/casic/birmm/inspect/fragment/QueryEventFragment.kt index 82a23c9..d134e0b 100644 --- a/app/src/main/java/com/casic/birmm/inspect/fragment/QueryEventFragment.kt +++ b/app/src/main/java/com/casic/birmm/inspect/fragment/QueryEventFragment.kt @@ -3,7 +3,6 @@ import android.os.Handler import androidx.lifecycle.ViewModelProvider import com.casic.birmm.inspect.R -import com.casic.birmm.inspect.extensions.addAll import com.casic.birmm.inspect.extensions.combineImagePath import com.casic.birmm.inspect.model.EventListModel import com.casic.birmm.inspect.view.EventDetailActivity @@ -11,9 +10,9 @@ import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseFragment -import com.pengxh.kt.lite.extensions.filterSpaceOrEnter import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show +import com.pengxh.kt.lite.extensions.toJson import com.pengxh.kt.lite.utils.WeakReferenceHandler import kotlinx.android.synthetic.main.fragment_query_event.* import kotlinx.android.synthetic.main.include_empty_view.* @@ -83,7 +82,6 @@ override fun onResume() { super.onResume() - pageIndex = 1 getEventList() } @@ -119,7 +117,7 @@ viewHolder.setText(R.id.inspectMsgView, item.name) .setText(R.id.inspectTypeView, "类型:${item.type}") - .setText(R.id.inspectDateView, "上报时间:${item.createTime}") + .setText(R.id.inspectDateView, "时间:${item.createTime}") } } eventRecyclerView.adapter = eventListAdapter @@ -128,11 +126,7 @@ override fun onItemClicked( position: Int, t: EventListModel.DataModel.RowsModel ) { - requireContext().navigatePageTo( - addAll( - t.createTime, t.description!!.filterSpaceOrEnter(), t.data, t.images - ) - ) + requireContext().navigatePageTo(t.toJson()) } }) } diff --git a/app/src/main/java/com/casic/birmm/inspect/single/fragment/HomePageFragment.kt b/app/src/main/java/com/casic/birmm/inspect/single/fragment/HomePageFragment.kt index 81ffffd..4a898ce 100644 --- a/app/src/main/java/com/casic/birmm/inspect/single/fragment/HomePageFragment.kt +++ b/app/src/main/java/com/casic/birmm/inspect/single/fragment/HomePageFragment.kt @@ -8,6 +8,7 @@ import android.graphics.Color import android.os.Bundle import android.os.Handler +import android.os.Message import android.os.Vibrator import android.util.Log import android.view.LayoutInflater @@ -33,10 +34,7 @@ import com.casic.birmm.inspect.utils.LocaleConstant import com.casic.birmm.inspect.utils.SoundPoolHelper import com.google.gson.Gson -import com.pengxh.kt.lite.extensions.navigatePageTo -import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.extensions.timestampToCompleteDate -import com.pengxh.kt.lite.extensions.timestampToDate +import com.pengxh.kt.lite.extensions.* import com.pengxh.kt.lite.utils.SaveKeyValues import com.pengxh.kt.lite.utils.WeakReferenceHandler import com.pengxh.kt.lite.utils.ble.BLEManager @@ -46,20 +44,15 @@ import com.pengxh.kt.lite.widget.dialog.AlertControlDialog import com.pengxh.kt.lite.widget.dialog.AlertInputDialog import com.pengxh.kt.lite.widget.dialog.BottomActionSheet -import com.qmuiteam.qmui.util.QMUIDisplayHelper import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet import kotlinx.android.synthetic.main.single_fragment_map_inspect.view.* import java.util.* @SuppressLint("MissingPermission") -class HomePageFragment : Fragment() { +class HomePageFragment : Fragment(), Handler.Callback { private val kTag = "HomePageFragment" private val gson by lazy { Gson() } - private val isOpenWarning = - SaveKeyValues.getValue(LocaleConstant.SINGLE_OPEN_WARNING, false) as Boolean - private val isAutoRecord = - SaveKeyValues.getValue(LocaleConstant.SINGLE_AUTO_RECORD, false) as Boolean private lateinit var homeView: View private lateinit var vibrator: Vibrator private lateinit var aMap: AMap @@ -80,14 +73,14 @@ homeView = inflater.inflate(R.layout.single_fragment_map_inspect, container, false) //根据不同设备状态栏高度设置statusBarView高度 - val statusBarHeight = QMUIDisplayHelper.getStatusBarHeight(requireContext()) + val statusBarHeight = requireContext().getStatusBarHeight() val params = homeView.statusBarView.layoutParams as LinearLayout.LayoutParams params.height = statusBarHeight homeView.statusBarView.setBackgroundColor(Color.parseColor("#D6EEFE")) homeView.statusBarView.requestLayout() vibrator = requireContext().getSystemService(Context.VIBRATOR_SERVICE) as Vibrator - weakReferenceHandler = WeakReferenceHandler(callback) + weakReferenceHandler = WeakReferenceHandler(this) if (BLEManager.initBLE(requireContext())) { if (!BLEManager.isBluetoothEnable()) { @@ -104,12 +97,10 @@ uiSettings.isRotateGesturesEnabled = false//不许地图随手势旋转角度 //显示定位小蓝点 locationStyle = MyLocationStyle() - locationStyle locationStyle.showMyLocation(true)//设置是否显示定位小蓝点 - locationStyle.interval(10 * 1000)////设置连续定位模式下的定位间隔,只在连续定位模式下生效。单位为毫秒 aMap.myLocationStyle = locationStyle aMap.isMyLocationEnabled = true - aMap.moveCamera(CameraUpdateFactory.zoomTo(14.toFloat())) + aMap.moveCamera(CameraUpdateFactory.zoomTo(16.toFloat())) initEvent() @@ -157,15 +148,14 @@ .setOnActionSheetListener(object : BottomActionSheet.OnActionSheetListener { override fun onActionItemClick(position: Int) { //获取当前定位 - val currentLng = SaveKeyValues.getValue( + val lng = SaveKeyValues.getValue( LocaleConstant.CURRENT_LONGITUDE, "0.0" ) as String - val currentLat = - SaveKeyValues.getValue(LocaleConstant.CURRENT_LATITUDE, "0.0") as String + val lat = SaveKeyValues.getValue( + LocaleConstant.CURRENT_LATITUDE, "0.0" + ) as String requireContext().navigatePageTo( - addAll( - position.toString(), model.id, model.name, currentLng, currentLat - ) + addAll(position.toString(), model.id, model.name, lng, lat) ) } }).build().show() @@ -281,7 +271,7 @@ } } - private val callback = Handler.Callback { msg -> + override fun handleMessage(msg: Message): Boolean { when (msg.what) { LocaleConstant.BLUETOOTH_ON -> { "蓝牙已开启".show(requireContext()) @@ -350,7 +340,7 @@ ) LocaleConstant.DISCONNECT_SUCCESS -> curConnectState = false } - true + return true } private fun startConnectDevice(device: BluetoothDevice) { @@ -502,11 +492,15 @@ homeView.settingsValueView.text = dataModel.alarmValue.toString() homeView.maxValueView.text = dataModel.maxPotency.toString() //判断是否需要报警 + val isOpenWarning = + SaveKeyValues.getValue(LocaleConstant.SINGLE_OPEN_WARNING, false) as Boolean if (isOpenWarning) { if (dataModel.potency >= dataModel.alarmValue) { //当前值大于设置值,需要报警 SoundPoolHelper.playSound(requireContext(), R.raw.alarm) vibrator.vibrate(1000) + val isAutoRecord = + SaveKeyValues.getValue(LocaleConstant.SINGLE_AUTO_RECORD, false) as Boolean if (isAutoRecord) { //如果连续超过10个报警,自动生成报警事件 alarmCount++ diff --git a/app/src/main/java/com/casic/birmm/inspect/single/fragment/QueryEventFragment.kt b/app/src/main/java/com/casic/birmm/inspect/single/fragment/QueryEventFragment.kt index 96dba16..812d329 100644 --- a/app/src/main/java/com/casic/birmm/inspect/single/fragment/QueryEventFragment.kt +++ b/app/src/main/java/com/casic/birmm/inspect/single/fragment/QueryEventFragment.kt @@ -3,15 +3,14 @@ import androidx.lifecycle.lifecycleScope import com.bumptech.glide.Glide import com.casic.birmm.inspect.R -import com.casic.birmm.inspect.extensions.addAll import com.casic.birmm.inspect.model.EventListModel import com.casic.birmm.inspect.single.view.EventDetailActivity import com.casic.birmm.inspect.utils.DataBaseManager import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseFragment -import com.pengxh.kt.lite.extensions.filterSpaceOrEnter import com.pengxh.kt.lite.extensions.navigatePageTo +import com.pengxh.kt.lite.extensions.toJson import kotlinx.android.synthetic.main.include_empty_view.* import kotlinx.android.synthetic.main.single_fragment_query_event.* import kotlinx.coroutines.Dispatchers @@ -41,8 +40,7 @@ R.layout.item_event_rv_l, dataBeans ) { override fun convertView( - viewHolder: ViewHolder, - position: Int, + viewHolder: ViewHolder, position: Int, item: EventListModel.DataModel.RowsModel ) { if (!item.images.isNullOrBlank()) { @@ -61,22 +59,15 @@ } viewHolder.setText(R.id.inspectMsgView, item.name) - .setText(R.id.inspectMsgView, "类型:${item.type}") - .setText(R.id.inspectMsgView, "上报时间:${item.createTime}") + .setText(R.id.inspectTypeView, "类型:${item.type}") + .setText(R.id.inspectDateView, "时间:${item.createTime}") } } eventRecyclerView.adapter = eventListAdapter eventListAdapter.setOnItemClickedListener(object : NormalRecyclerAdapter.OnItemClickedListener { override fun onItemClicked(position: Int, t: EventListModel.DataModel.RowsModel) { - requireContext().navigatePageTo( - addAll( - t.createTime.toString(), - t.description!!.filterSpaceOrEnter(), - t.data.toString(), - t.images.toString() - ) - ) + requireContext().navigatePageTo(t.toJson()) } }) } diff --git a/app/src/main/java/com/casic/birmm/inspect/single/view/EventDetailActivity.kt b/app/src/main/java/com/casic/birmm/inspect/single/view/EventDetailActivity.kt index f00bbae..b7d59e8 100644 --- a/app/src/main/java/com/casic/birmm/inspect/single/view/EventDetailActivity.kt +++ b/app/src/main/java/com/casic/birmm/inspect/single/view/EventDetailActivity.kt @@ -2,7 +2,10 @@ import androidx.core.content.ContextCompat import com.casic.birmm.inspect.R +import com.casic.birmm.inspect.model.EventListModel import com.casic.birmm.inspect.view.BigImageActivity +import com.google.gson.Gson +import com.google.gson.reflect.TypeToken import com.gyf.immersionbar.ImmersionBar import com.pengxh.kt.lite.adapter.ReadOnlyImageAdapter import com.pengxh.kt.lite.base.KotlinBaseActivity @@ -15,12 +18,17 @@ class EventDetailActivity : KotlinBaseActivity() { - override fun initData() { - val args = intent.getStringArrayListExtra(Constant.INTENT_PARAM)!! + private val gson by lazy { Gson() } - createTimeView.text = args[0] - descriptionView.text = args[1] - val data = args[2] + override fun initData() { + val args = intent.getStringExtra(Constant.INTENT_PARAM)!! + val model = gson.fromJson( + args, object : TypeToken() {}.type + ) + + createTimeView.text = model.createTime + descriptionView.text = model.description + val data = model.data val value = if (data.isNullOrBlank()) { "0.0" } else { @@ -28,7 +36,7 @@ } dataView.text = value - val images = args[3] + val images = model.images /** * images: 2020-12/6528aeb21cff426c91c43a7f8b716d1e.jpg diff --git a/app/src/main/java/com/casic/birmm/inspect/single/view/NewEventActivity.kt b/app/src/main/java/com/casic/birmm/inspect/single/view/NewEventActivity.kt index b77a8f2..7e4f7e7 100644 --- a/app/src/main/java/com/casic/birmm/inspect/single/view/NewEventActivity.kt +++ b/app/src/main/java/com/casic/birmm/inspect/single/view/NewEventActivity.kt @@ -39,7 +39,7 @@ private var isWarning: Boolean = true private var longitude: Double = 0.0 private var latitude: Double = 0.0 - private var data = -1.0//泄露默认值 + private var data = 0.0//泄露默认值 override fun initData() { diff --git a/app/src/main/java/com/casic/birmm/inspect/utils/retrofit/RetrofitService.kt b/app/src/main/java/com/casic/birmm/inspect/utils/retrofit/RetrofitService.kt index 1281613..cfd24bd 100644 --- a/app/src/main/java/com/casic/birmm/inspect/utils/retrofit/RetrofitService.kt +++ b/app/src/main/java/com/casic/birmm/inspect/utils/retrofit/RetrofitService.kt @@ -16,7 +16,7 @@ */ @FormUrlEncoded @POST("/user/appLogin") - suspend fun getLoginResult( + suspend fun login( @Field("username") account: String, @Field("password") secretKey: String ): String diff --git a/app/src/main/java/com/casic/birmm/inspect/utils/retrofit/RetrofitServiceManager.kt b/app/src/main/java/com/casic/birmm/inspect/utils/retrofit/RetrofitServiceManager.kt index 4c1f278..324cf23 100644 --- a/app/src/main/java/com/casic/birmm/inspect/utils/retrofit/RetrofitServiceManager.kt +++ b/app/src/main/java/com/casic/birmm/inspect/utils/retrofit/RetrofitServiceManager.kt @@ -28,8 +28,8 @@ /** * 登录并获取Token */ - suspend fun getLoginResult(account: String, secretKey: String): String { - return api.getLoginResult(account, secretKey) + suspend fun login(account: String, secretKey: String): String { + return api.login(account, secretKey) } /** diff --git a/app/src/main/java/com/casic/birmm/inspect/view/EventDetailActivity.kt b/app/src/main/java/com/casic/birmm/inspect/view/EventDetailActivity.kt index 6f3d166..5dd7f86 100644 --- a/app/src/main/java/com/casic/birmm/inspect/view/EventDetailActivity.kt +++ b/app/src/main/java/com/casic/birmm/inspect/view/EventDetailActivity.kt @@ -3,6 +3,9 @@ import androidx.core.content.ContextCompat import com.casic.birmm.inspect.R import com.casic.birmm.inspect.extensions.combineImagePath +import com.casic.birmm.inspect.model.EventListModel +import com.google.gson.Gson +import com.google.gson.reflect.TypeToken import com.gyf.immersionbar.ImmersionBar import com.pengxh.kt.lite.adapter.ReadOnlyImageAdapter import com.pengxh.kt.lite.base.KotlinBaseActivity @@ -16,6 +19,8 @@ class EventDetailActivity : KotlinBaseActivity() { + private val gson by lazy { Gson() } + override fun initLayoutView(): Int = R.layout.activity_event_detail override fun setupTopBarLayout() { @@ -29,11 +34,14 @@ } override fun initData() { - val args = intent.getStringArrayListExtra(Constant.INTENT_PARAM)!! + val args = intent.getStringExtra(Constant.INTENT_PARAM)!! + val model = gson.fromJson( + args, object : TypeToken() {}.type + ) - createTimeView.text = args[0] - descriptionView.text = args[1] - val data = args[2] + createTimeView.text = model.createTime + descriptionView.text = model.description + val data = model.data val value = if (data.isNullOrBlank()) { "0.0" } else { @@ -41,7 +49,7 @@ } dataView.text = value - val images = args[3] + val images = model.images /** * images: 2020-12/6528aeb21cff426c91c43a7f8b716d1e.jpg diff --git a/app/src/main/java/com/casic/birmm/inspect/view/LoginActivity.kt b/app/src/main/java/com/casic/birmm/inspect/view/LoginActivity.kt index b34abf4..cac1d23 100644 --- a/app/src/main/java/com/casic/birmm/inspect/view/LoginActivity.kt +++ b/app/src/main/java/com/casic/birmm/inspect/view/LoginActivity.kt @@ -83,7 +83,7 @@ SaveKeyValues.putValue(LocaleConstant.ACCOUNT, account) SaveKeyValues.putValue(LocaleConstant.PASSWORD, userPassword) - authenticateViewModel.obtainPublicKey() + authenticateViewModel.getPublicKey() authenticateViewModel.keyModel.observe(this) { if (it.code == 200) {//用code判断,别的判断可能有坑 val keyString = it.data!!.publicKey!! @@ -93,11 +93,12 @@ AuthenticationHelper.savePublicKey(keyString) val publicKey = RSAUtils.keyStrToPublicKey(keyString) - val dataByPublicKey = - RSAUtils.encryptDataByPublicKey(userPassword.toByteArray(), publicKey!!) + val dataByPublicKey = RSAUtils.encryptDataByPublicKey( + userPassword.toByteArray(), publicKey!! + ) //登录并获取Token,POST请求 - userViewModel.getLoginResult(account = account, secretKey = dataByPublicKey) + userViewModel.login(account, dataByPublicKey) userViewModel.loginResult.observe(this) { loginResult -> if (loginResult.code == 200) { AuthenticationHelper.saveToken(loginResult.data!!.token!!) diff --git a/app/src/main/java/com/casic/birmm/inspect/view/NewEventActivity.kt b/app/src/main/java/com/casic/birmm/inspect/view/NewEventActivity.kt index 8ea8a75..2593394 100644 --- a/app/src/main/java/com/casic/birmm/inspect/view/NewEventActivity.kt +++ b/app/src/main/java/com/casic/birmm/inspect/view/NewEventActivity.kt @@ -57,7 +57,7 @@ private lateinit var inspectionName: String private var longitude: Double = 0.0 private var latitude: Double = 0.0 - private var data = -1.0//泄露默认值 + private var data = 0.0//泄露默认值 private lateinit var type: String private lateinit var userModel: UserInfoModel diff --git a/.idea/misc.xml b/.idea/misc.xml index 139dc2a..e7cbf98 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -11,6 +11,7 @@ + diff --git a/app/src/main/java/com/casic/birmm/inspect/fragment/HomePageFragment.kt b/app/src/main/java/com/casic/birmm/inspect/fragment/HomePageFragment.kt index 91cd394..a757dfb 100644 --- a/app/src/main/java/com/casic/birmm/inspect/fragment/HomePageFragment.kt +++ b/app/src/main/java/com/casic/birmm/inspect/fragment/HomePageFragment.kt @@ -8,6 +8,7 @@ import android.graphics.Color import android.os.Bundle import android.os.Handler +import android.os.Message import android.os.Vibrator import android.util.Log import android.view.LayoutInflater @@ -37,10 +38,7 @@ import com.casic.birmm.inspect.vm.EventViewModel import com.casic.birmm.inspect.vm.InspectionViewModel import com.google.gson.Gson -import com.pengxh.kt.lite.extensions.navigatePageTo -import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.extensions.timestampToCompleteDate -import com.pengxh.kt.lite.extensions.timestampToDate +import com.pengxh.kt.lite.extensions.* import com.pengxh.kt.lite.utils.SaveKeyValues import com.pengxh.kt.lite.utils.WeakReferenceHandler import com.pengxh.kt.lite.utils.ble.BLEManager @@ -51,20 +49,15 @@ import com.pengxh.kt.lite.widget.dialog.AlertControlDialog import com.pengxh.kt.lite.widget.dialog.AlertInputDialog import com.pengxh.kt.lite.widget.dialog.BottomActionSheet -import com.qmuiteam.qmui.util.QMUIDisplayHelper import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet import kotlinx.android.synthetic.main.fragment_map_inspect.view.* import java.util.* @SuppressLint("MissingPermission") -class HomePageFragment : Fragment() { +class HomePageFragment : Fragment(), Handler.Callback { private val kTag = "HomePageFragment" private val gson by lazy { Gson() } - private val isOpenWarning = - SaveKeyValues.getValue(LocaleConstant.OPEN_WARNING, false) as Boolean - private val isAutoRecord = - SaveKeyValues.getValue(LocaleConstant.AUTO_RECORD, false) as Boolean private lateinit var homeView: View private lateinit var userData: UserInfoModel.DataModel private lateinit var vibrator: Vibrator @@ -88,7 +81,7 @@ homeView = inflater.inflate(R.layout.fragment_map_inspect, container, false) //根据不同设备状态栏高度设置statusBarView高度 - val statusBarHeight = QMUIDisplayHelper.getStatusBarHeight(requireContext()) + val statusBarHeight = requireContext().getStatusBarHeight() val params = homeView.statusBarView.layoutParams as LinearLayout.LayoutParams params.height = statusBarHeight homeView.statusBarView.setBackgroundColor(Color.parseColor("#D6EEFE")) @@ -109,7 +102,7 @@ val userModelJson = SaveKeyValues.getValue(LocaleConstant.USER_OBJECT, "") as String userData = gson.fromJson(userModelJson, UserInfoModel::class.java).data!! - weakReferenceHandler = WeakReferenceHandler(callback) + weakReferenceHandler = WeakReferenceHandler(this) if (BLEManager.initBLE(requireContext())) { if (!BLEManager.isBluetoothEnable()) { @@ -126,12 +119,10 @@ uiSettings.isRotateGesturesEnabled = false//不许地图随手势旋转角度 //显示定位小蓝点 locationStyle = MyLocationStyle() - locationStyle locationStyle.showMyLocation(true)//设置是否显示定位小蓝点 - locationStyle.interval(10 * 1000)////设置连续定位模式下的定位间隔,只在连续定位模式下生效。单位为毫秒 aMap.myLocationStyle = locationStyle aMap.isMyLocationEnabled = true - aMap.moveCamera(CameraUpdateFactory.zoomTo(14.toFloat())) + aMap.moveCamera(CameraUpdateFactory.zoomTo(16.toFloat())) initEvent() @@ -179,15 +170,14 @@ .setOnActionSheetListener(object : BottomActionSheet.OnActionSheetListener { override fun onActionItemClick(position: Int) { //获取当前定位 - val currentLng = SaveKeyValues.getValue( + val lng = SaveKeyValues.getValue( LocaleConstant.CURRENT_LONGITUDE, "0.0" ) as String - val currentLat = - SaveKeyValues.getValue(LocaleConstant.CURRENT_LATITUDE, "0.0") as String + val lat = SaveKeyValues.getValue( + LocaleConstant.CURRENT_LATITUDE, "0.0" + ) as String requireContext().navigatePageTo( - addAll( - position.toString(), model.id, model.name, currentLng, currentLat - ) + addAll(position.toString(), model.id, model.name, lng, lat) ) } }).build().show() @@ -303,7 +293,7 @@ } } - private val callback = Handler.Callback { msg -> + override fun handleMessage(msg: Message): Boolean { when (msg.what) { LocaleConstant.BLUETOOTH_ON -> { "蓝牙已开启".show(requireContext()) @@ -372,7 +362,7 @@ ) LocaleConstant.DISCONNECT_SUCCESS -> curConnectState = false } - true + return true } private fun startConnectDevice(device: BluetoothDevice) { @@ -529,11 +519,15 @@ homeView.settingsValueView.text = dataModel.alarmValue.toString() homeView.maxValueView.text = dataModel.maxPotency.toString() //判断是否需要报警 + val isOpenWarning = + SaveKeyValues.getValue(LocaleConstant.SINGLE_OPEN_WARNING, false) as Boolean if (isOpenWarning) { if (dataModel.potency >= dataModel.alarmValue) { //当前值大于设置值,需要报警 SoundPoolHelper.playSound(requireContext(), R.raw.alarm) vibrator.vibrate(1000) + val isAutoRecord = + SaveKeyValues.getValue(LocaleConstant.SINGLE_AUTO_RECORD, false) as Boolean if (isAutoRecord) { //如果连续超过10个报警,自动生成报警事件 alarmCount++ diff --git a/app/src/main/java/com/casic/birmm/inspect/fragment/QueryEventFragment.kt b/app/src/main/java/com/casic/birmm/inspect/fragment/QueryEventFragment.kt index 82a23c9..d134e0b 100644 --- a/app/src/main/java/com/casic/birmm/inspect/fragment/QueryEventFragment.kt +++ b/app/src/main/java/com/casic/birmm/inspect/fragment/QueryEventFragment.kt @@ -3,7 +3,6 @@ import android.os.Handler import androidx.lifecycle.ViewModelProvider import com.casic.birmm.inspect.R -import com.casic.birmm.inspect.extensions.addAll import com.casic.birmm.inspect.extensions.combineImagePath import com.casic.birmm.inspect.model.EventListModel import com.casic.birmm.inspect.view.EventDetailActivity @@ -11,9 +10,9 @@ import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseFragment -import com.pengxh.kt.lite.extensions.filterSpaceOrEnter import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show +import com.pengxh.kt.lite.extensions.toJson import com.pengxh.kt.lite.utils.WeakReferenceHandler import kotlinx.android.synthetic.main.fragment_query_event.* import kotlinx.android.synthetic.main.include_empty_view.* @@ -83,7 +82,6 @@ override fun onResume() { super.onResume() - pageIndex = 1 getEventList() } @@ -119,7 +117,7 @@ viewHolder.setText(R.id.inspectMsgView, item.name) .setText(R.id.inspectTypeView, "类型:${item.type}") - .setText(R.id.inspectDateView, "上报时间:${item.createTime}") + .setText(R.id.inspectDateView, "时间:${item.createTime}") } } eventRecyclerView.adapter = eventListAdapter @@ -128,11 +126,7 @@ override fun onItemClicked( position: Int, t: EventListModel.DataModel.RowsModel ) { - requireContext().navigatePageTo( - addAll( - t.createTime, t.description!!.filterSpaceOrEnter(), t.data, t.images - ) - ) + requireContext().navigatePageTo(t.toJson()) } }) } diff --git a/app/src/main/java/com/casic/birmm/inspect/single/fragment/HomePageFragment.kt b/app/src/main/java/com/casic/birmm/inspect/single/fragment/HomePageFragment.kt index 81ffffd..4a898ce 100644 --- a/app/src/main/java/com/casic/birmm/inspect/single/fragment/HomePageFragment.kt +++ b/app/src/main/java/com/casic/birmm/inspect/single/fragment/HomePageFragment.kt @@ -8,6 +8,7 @@ import android.graphics.Color import android.os.Bundle import android.os.Handler +import android.os.Message import android.os.Vibrator import android.util.Log import android.view.LayoutInflater @@ -33,10 +34,7 @@ import com.casic.birmm.inspect.utils.LocaleConstant import com.casic.birmm.inspect.utils.SoundPoolHelper import com.google.gson.Gson -import com.pengxh.kt.lite.extensions.navigatePageTo -import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.extensions.timestampToCompleteDate -import com.pengxh.kt.lite.extensions.timestampToDate +import com.pengxh.kt.lite.extensions.* import com.pengxh.kt.lite.utils.SaveKeyValues import com.pengxh.kt.lite.utils.WeakReferenceHandler import com.pengxh.kt.lite.utils.ble.BLEManager @@ -46,20 +44,15 @@ import com.pengxh.kt.lite.widget.dialog.AlertControlDialog import com.pengxh.kt.lite.widget.dialog.AlertInputDialog import com.pengxh.kt.lite.widget.dialog.BottomActionSheet -import com.qmuiteam.qmui.util.QMUIDisplayHelper import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet import kotlinx.android.synthetic.main.single_fragment_map_inspect.view.* import java.util.* @SuppressLint("MissingPermission") -class HomePageFragment : Fragment() { +class HomePageFragment : Fragment(), Handler.Callback { private val kTag = "HomePageFragment" private val gson by lazy { Gson() } - private val isOpenWarning = - SaveKeyValues.getValue(LocaleConstant.SINGLE_OPEN_WARNING, false) as Boolean - private val isAutoRecord = - SaveKeyValues.getValue(LocaleConstant.SINGLE_AUTO_RECORD, false) as Boolean private lateinit var homeView: View private lateinit var vibrator: Vibrator private lateinit var aMap: AMap @@ -80,14 +73,14 @@ homeView = inflater.inflate(R.layout.single_fragment_map_inspect, container, false) //根据不同设备状态栏高度设置statusBarView高度 - val statusBarHeight = QMUIDisplayHelper.getStatusBarHeight(requireContext()) + val statusBarHeight = requireContext().getStatusBarHeight() val params = homeView.statusBarView.layoutParams as LinearLayout.LayoutParams params.height = statusBarHeight homeView.statusBarView.setBackgroundColor(Color.parseColor("#D6EEFE")) homeView.statusBarView.requestLayout() vibrator = requireContext().getSystemService(Context.VIBRATOR_SERVICE) as Vibrator - weakReferenceHandler = WeakReferenceHandler(callback) + weakReferenceHandler = WeakReferenceHandler(this) if (BLEManager.initBLE(requireContext())) { if (!BLEManager.isBluetoothEnable()) { @@ -104,12 +97,10 @@ uiSettings.isRotateGesturesEnabled = false//不许地图随手势旋转角度 //显示定位小蓝点 locationStyle = MyLocationStyle() - locationStyle locationStyle.showMyLocation(true)//设置是否显示定位小蓝点 - locationStyle.interval(10 * 1000)////设置连续定位模式下的定位间隔,只在连续定位模式下生效。单位为毫秒 aMap.myLocationStyle = locationStyle aMap.isMyLocationEnabled = true - aMap.moveCamera(CameraUpdateFactory.zoomTo(14.toFloat())) + aMap.moveCamera(CameraUpdateFactory.zoomTo(16.toFloat())) initEvent() @@ -157,15 +148,14 @@ .setOnActionSheetListener(object : BottomActionSheet.OnActionSheetListener { override fun onActionItemClick(position: Int) { //获取当前定位 - val currentLng = SaveKeyValues.getValue( + val lng = SaveKeyValues.getValue( LocaleConstant.CURRENT_LONGITUDE, "0.0" ) as String - val currentLat = - SaveKeyValues.getValue(LocaleConstant.CURRENT_LATITUDE, "0.0") as String + val lat = SaveKeyValues.getValue( + LocaleConstant.CURRENT_LATITUDE, "0.0" + ) as String requireContext().navigatePageTo( - addAll( - position.toString(), model.id, model.name, currentLng, currentLat - ) + addAll(position.toString(), model.id, model.name, lng, lat) ) } }).build().show() @@ -281,7 +271,7 @@ } } - private val callback = Handler.Callback { msg -> + override fun handleMessage(msg: Message): Boolean { when (msg.what) { LocaleConstant.BLUETOOTH_ON -> { "蓝牙已开启".show(requireContext()) @@ -350,7 +340,7 @@ ) LocaleConstant.DISCONNECT_SUCCESS -> curConnectState = false } - true + return true } private fun startConnectDevice(device: BluetoothDevice) { @@ -502,11 +492,15 @@ homeView.settingsValueView.text = dataModel.alarmValue.toString() homeView.maxValueView.text = dataModel.maxPotency.toString() //判断是否需要报警 + val isOpenWarning = + SaveKeyValues.getValue(LocaleConstant.SINGLE_OPEN_WARNING, false) as Boolean if (isOpenWarning) { if (dataModel.potency >= dataModel.alarmValue) { //当前值大于设置值,需要报警 SoundPoolHelper.playSound(requireContext(), R.raw.alarm) vibrator.vibrate(1000) + val isAutoRecord = + SaveKeyValues.getValue(LocaleConstant.SINGLE_AUTO_RECORD, false) as Boolean if (isAutoRecord) { //如果连续超过10个报警,自动生成报警事件 alarmCount++ diff --git a/app/src/main/java/com/casic/birmm/inspect/single/fragment/QueryEventFragment.kt b/app/src/main/java/com/casic/birmm/inspect/single/fragment/QueryEventFragment.kt index 96dba16..812d329 100644 --- a/app/src/main/java/com/casic/birmm/inspect/single/fragment/QueryEventFragment.kt +++ b/app/src/main/java/com/casic/birmm/inspect/single/fragment/QueryEventFragment.kt @@ -3,15 +3,14 @@ import androidx.lifecycle.lifecycleScope import com.bumptech.glide.Glide import com.casic.birmm.inspect.R -import com.casic.birmm.inspect.extensions.addAll import com.casic.birmm.inspect.model.EventListModel import com.casic.birmm.inspect.single.view.EventDetailActivity import com.casic.birmm.inspect.utils.DataBaseManager import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseFragment -import com.pengxh.kt.lite.extensions.filterSpaceOrEnter import com.pengxh.kt.lite.extensions.navigatePageTo +import com.pengxh.kt.lite.extensions.toJson import kotlinx.android.synthetic.main.include_empty_view.* import kotlinx.android.synthetic.main.single_fragment_query_event.* import kotlinx.coroutines.Dispatchers @@ -41,8 +40,7 @@ R.layout.item_event_rv_l, dataBeans ) { override fun convertView( - viewHolder: ViewHolder, - position: Int, + viewHolder: ViewHolder, position: Int, item: EventListModel.DataModel.RowsModel ) { if (!item.images.isNullOrBlank()) { @@ -61,22 +59,15 @@ } viewHolder.setText(R.id.inspectMsgView, item.name) - .setText(R.id.inspectMsgView, "类型:${item.type}") - .setText(R.id.inspectMsgView, "上报时间:${item.createTime}") + .setText(R.id.inspectTypeView, "类型:${item.type}") + .setText(R.id.inspectDateView, "时间:${item.createTime}") } } eventRecyclerView.adapter = eventListAdapter eventListAdapter.setOnItemClickedListener(object : NormalRecyclerAdapter.OnItemClickedListener { override fun onItemClicked(position: Int, t: EventListModel.DataModel.RowsModel) { - requireContext().navigatePageTo( - addAll( - t.createTime.toString(), - t.description!!.filterSpaceOrEnter(), - t.data.toString(), - t.images.toString() - ) - ) + requireContext().navigatePageTo(t.toJson()) } }) } diff --git a/app/src/main/java/com/casic/birmm/inspect/single/view/EventDetailActivity.kt b/app/src/main/java/com/casic/birmm/inspect/single/view/EventDetailActivity.kt index f00bbae..b7d59e8 100644 --- a/app/src/main/java/com/casic/birmm/inspect/single/view/EventDetailActivity.kt +++ b/app/src/main/java/com/casic/birmm/inspect/single/view/EventDetailActivity.kt @@ -2,7 +2,10 @@ import androidx.core.content.ContextCompat import com.casic.birmm.inspect.R +import com.casic.birmm.inspect.model.EventListModel import com.casic.birmm.inspect.view.BigImageActivity +import com.google.gson.Gson +import com.google.gson.reflect.TypeToken import com.gyf.immersionbar.ImmersionBar import com.pengxh.kt.lite.adapter.ReadOnlyImageAdapter import com.pengxh.kt.lite.base.KotlinBaseActivity @@ -15,12 +18,17 @@ class EventDetailActivity : KotlinBaseActivity() { - override fun initData() { - val args = intent.getStringArrayListExtra(Constant.INTENT_PARAM)!! + private val gson by lazy { Gson() } - createTimeView.text = args[0] - descriptionView.text = args[1] - val data = args[2] + override fun initData() { + val args = intent.getStringExtra(Constant.INTENT_PARAM)!! + val model = gson.fromJson( + args, object : TypeToken() {}.type + ) + + createTimeView.text = model.createTime + descriptionView.text = model.description + val data = model.data val value = if (data.isNullOrBlank()) { "0.0" } else { @@ -28,7 +36,7 @@ } dataView.text = value - val images = args[3] + val images = model.images /** * images: 2020-12/6528aeb21cff426c91c43a7f8b716d1e.jpg diff --git a/app/src/main/java/com/casic/birmm/inspect/single/view/NewEventActivity.kt b/app/src/main/java/com/casic/birmm/inspect/single/view/NewEventActivity.kt index b77a8f2..7e4f7e7 100644 --- a/app/src/main/java/com/casic/birmm/inspect/single/view/NewEventActivity.kt +++ b/app/src/main/java/com/casic/birmm/inspect/single/view/NewEventActivity.kt @@ -39,7 +39,7 @@ private var isWarning: Boolean = true private var longitude: Double = 0.0 private var latitude: Double = 0.0 - private var data = -1.0//泄露默认值 + private var data = 0.0//泄露默认值 override fun initData() { diff --git a/app/src/main/java/com/casic/birmm/inspect/utils/retrofit/RetrofitService.kt b/app/src/main/java/com/casic/birmm/inspect/utils/retrofit/RetrofitService.kt index 1281613..cfd24bd 100644 --- a/app/src/main/java/com/casic/birmm/inspect/utils/retrofit/RetrofitService.kt +++ b/app/src/main/java/com/casic/birmm/inspect/utils/retrofit/RetrofitService.kt @@ -16,7 +16,7 @@ */ @FormUrlEncoded @POST("/user/appLogin") - suspend fun getLoginResult( + suspend fun login( @Field("username") account: String, @Field("password") secretKey: String ): String diff --git a/app/src/main/java/com/casic/birmm/inspect/utils/retrofit/RetrofitServiceManager.kt b/app/src/main/java/com/casic/birmm/inspect/utils/retrofit/RetrofitServiceManager.kt index 4c1f278..324cf23 100644 --- a/app/src/main/java/com/casic/birmm/inspect/utils/retrofit/RetrofitServiceManager.kt +++ b/app/src/main/java/com/casic/birmm/inspect/utils/retrofit/RetrofitServiceManager.kt @@ -28,8 +28,8 @@ /** * 登录并获取Token */ - suspend fun getLoginResult(account: String, secretKey: String): String { - return api.getLoginResult(account, secretKey) + suspend fun login(account: String, secretKey: String): String { + return api.login(account, secretKey) } /** diff --git a/app/src/main/java/com/casic/birmm/inspect/view/EventDetailActivity.kt b/app/src/main/java/com/casic/birmm/inspect/view/EventDetailActivity.kt index 6f3d166..5dd7f86 100644 --- a/app/src/main/java/com/casic/birmm/inspect/view/EventDetailActivity.kt +++ b/app/src/main/java/com/casic/birmm/inspect/view/EventDetailActivity.kt @@ -3,6 +3,9 @@ import androidx.core.content.ContextCompat import com.casic.birmm.inspect.R import com.casic.birmm.inspect.extensions.combineImagePath +import com.casic.birmm.inspect.model.EventListModel +import com.google.gson.Gson +import com.google.gson.reflect.TypeToken import com.gyf.immersionbar.ImmersionBar import com.pengxh.kt.lite.adapter.ReadOnlyImageAdapter import com.pengxh.kt.lite.base.KotlinBaseActivity @@ -16,6 +19,8 @@ class EventDetailActivity : KotlinBaseActivity() { + private val gson by lazy { Gson() } + override fun initLayoutView(): Int = R.layout.activity_event_detail override fun setupTopBarLayout() { @@ -29,11 +34,14 @@ } override fun initData() { - val args = intent.getStringArrayListExtra(Constant.INTENT_PARAM)!! + val args = intent.getStringExtra(Constant.INTENT_PARAM)!! + val model = gson.fromJson( + args, object : TypeToken() {}.type + ) - createTimeView.text = args[0] - descriptionView.text = args[1] - val data = args[2] + createTimeView.text = model.createTime + descriptionView.text = model.description + val data = model.data val value = if (data.isNullOrBlank()) { "0.0" } else { @@ -41,7 +49,7 @@ } dataView.text = value - val images = args[3] + val images = model.images /** * images: 2020-12/6528aeb21cff426c91c43a7f8b716d1e.jpg diff --git a/app/src/main/java/com/casic/birmm/inspect/view/LoginActivity.kt b/app/src/main/java/com/casic/birmm/inspect/view/LoginActivity.kt index b34abf4..cac1d23 100644 --- a/app/src/main/java/com/casic/birmm/inspect/view/LoginActivity.kt +++ b/app/src/main/java/com/casic/birmm/inspect/view/LoginActivity.kt @@ -83,7 +83,7 @@ SaveKeyValues.putValue(LocaleConstant.ACCOUNT, account) SaveKeyValues.putValue(LocaleConstant.PASSWORD, userPassword) - authenticateViewModel.obtainPublicKey() + authenticateViewModel.getPublicKey() authenticateViewModel.keyModel.observe(this) { if (it.code == 200) {//用code判断,别的判断可能有坑 val keyString = it.data!!.publicKey!! @@ -93,11 +93,12 @@ AuthenticationHelper.savePublicKey(keyString) val publicKey = RSAUtils.keyStrToPublicKey(keyString) - val dataByPublicKey = - RSAUtils.encryptDataByPublicKey(userPassword.toByteArray(), publicKey!!) + val dataByPublicKey = RSAUtils.encryptDataByPublicKey( + userPassword.toByteArray(), publicKey!! + ) //登录并获取Token,POST请求 - userViewModel.getLoginResult(account = account, secretKey = dataByPublicKey) + userViewModel.login(account, dataByPublicKey) userViewModel.loginResult.observe(this) { loginResult -> if (loginResult.code == 200) { AuthenticationHelper.saveToken(loginResult.data!!.token!!) diff --git a/app/src/main/java/com/casic/birmm/inspect/view/NewEventActivity.kt b/app/src/main/java/com/casic/birmm/inspect/view/NewEventActivity.kt index 8ea8a75..2593394 100644 --- a/app/src/main/java/com/casic/birmm/inspect/view/NewEventActivity.kt +++ b/app/src/main/java/com/casic/birmm/inspect/view/NewEventActivity.kt @@ -57,7 +57,7 @@ private lateinit var inspectionName: String private var longitude: Double = 0.0 private var latitude: Double = 0.0 - private var data = -1.0//泄露默认值 + private var data = 0.0//泄露默认值 private lateinit var type: String private lateinit var userModel: UserInfoModel diff --git a/app/src/main/java/com/casic/birmm/inspect/vm/AuthenticateViewModel.kt b/app/src/main/java/com/casic/birmm/inspect/vm/AuthenticateViewModel.kt index 572caee..3a9ae79 100644 --- a/app/src/main/java/com/casic/birmm/inspect/vm/AuthenticateViewModel.kt +++ b/app/src/main/java/com/casic/birmm/inspect/vm/AuthenticateViewModel.kt @@ -8,6 +8,7 @@ import com.casic.birmm.inspect.utils.retrofit.RetrofitServiceManager import com.google.gson.Gson import com.google.gson.reflect.TypeToken +import com.pengxh.kt.lite.extensions.isNetworkConnected import com.pengxh.kt.lite.extensions.launch import com.pengxh.kt.lite.extensions.show import com.pengxh.kt.lite.vm.BaseViewModel @@ -20,7 +21,7 @@ private val gson by lazy { Gson() } val keyModel = MutableLiveData() - fun obtainPublicKey() = launch({ + fun getPublicKey() = launch({ val response = RetrofitServiceManager.getPublicKey() val responseCode = response.separateResponseCode() if (responseCode == 200) { @@ -31,6 +32,10 @@ response.toErrorMessage().show(BaseApplication.get()) } }, { - it.cause.toString().show(BaseApplication.get()) + if (BaseApplication.get().isNetworkConnected()) { + "连接服务器失败,IP或端口错误".show(BaseApplication.get()) + } else { + "网络连接失败".show(BaseApplication.get()) + } }) } \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml index 139dc2a..e7cbf98 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -11,6 +11,7 @@ + diff --git a/app/src/main/java/com/casic/birmm/inspect/fragment/HomePageFragment.kt b/app/src/main/java/com/casic/birmm/inspect/fragment/HomePageFragment.kt index 91cd394..a757dfb 100644 --- a/app/src/main/java/com/casic/birmm/inspect/fragment/HomePageFragment.kt +++ b/app/src/main/java/com/casic/birmm/inspect/fragment/HomePageFragment.kt @@ -8,6 +8,7 @@ import android.graphics.Color import android.os.Bundle import android.os.Handler +import android.os.Message import android.os.Vibrator import android.util.Log import android.view.LayoutInflater @@ -37,10 +38,7 @@ import com.casic.birmm.inspect.vm.EventViewModel import com.casic.birmm.inspect.vm.InspectionViewModel import com.google.gson.Gson -import com.pengxh.kt.lite.extensions.navigatePageTo -import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.extensions.timestampToCompleteDate -import com.pengxh.kt.lite.extensions.timestampToDate +import com.pengxh.kt.lite.extensions.* import com.pengxh.kt.lite.utils.SaveKeyValues import com.pengxh.kt.lite.utils.WeakReferenceHandler import com.pengxh.kt.lite.utils.ble.BLEManager @@ -51,20 +49,15 @@ import com.pengxh.kt.lite.widget.dialog.AlertControlDialog import com.pengxh.kt.lite.widget.dialog.AlertInputDialog import com.pengxh.kt.lite.widget.dialog.BottomActionSheet -import com.qmuiteam.qmui.util.QMUIDisplayHelper import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet import kotlinx.android.synthetic.main.fragment_map_inspect.view.* import java.util.* @SuppressLint("MissingPermission") -class HomePageFragment : Fragment() { +class HomePageFragment : Fragment(), Handler.Callback { private val kTag = "HomePageFragment" private val gson by lazy { Gson() } - private val isOpenWarning = - SaveKeyValues.getValue(LocaleConstant.OPEN_WARNING, false) as Boolean - private val isAutoRecord = - SaveKeyValues.getValue(LocaleConstant.AUTO_RECORD, false) as Boolean private lateinit var homeView: View private lateinit var userData: UserInfoModel.DataModel private lateinit var vibrator: Vibrator @@ -88,7 +81,7 @@ homeView = inflater.inflate(R.layout.fragment_map_inspect, container, false) //根据不同设备状态栏高度设置statusBarView高度 - val statusBarHeight = QMUIDisplayHelper.getStatusBarHeight(requireContext()) + val statusBarHeight = requireContext().getStatusBarHeight() val params = homeView.statusBarView.layoutParams as LinearLayout.LayoutParams params.height = statusBarHeight homeView.statusBarView.setBackgroundColor(Color.parseColor("#D6EEFE")) @@ -109,7 +102,7 @@ val userModelJson = SaveKeyValues.getValue(LocaleConstant.USER_OBJECT, "") as String userData = gson.fromJson(userModelJson, UserInfoModel::class.java).data!! - weakReferenceHandler = WeakReferenceHandler(callback) + weakReferenceHandler = WeakReferenceHandler(this) if (BLEManager.initBLE(requireContext())) { if (!BLEManager.isBluetoothEnable()) { @@ -126,12 +119,10 @@ uiSettings.isRotateGesturesEnabled = false//不许地图随手势旋转角度 //显示定位小蓝点 locationStyle = MyLocationStyle() - locationStyle locationStyle.showMyLocation(true)//设置是否显示定位小蓝点 - locationStyle.interval(10 * 1000)////设置连续定位模式下的定位间隔,只在连续定位模式下生效。单位为毫秒 aMap.myLocationStyle = locationStyle aMap.isMyLocationEnabled = true - aMap.moveCamera(CameraUpdateFactory.zoomTo(14.toFloat())) + aMap.moveCamera(CameraUpdateFactory.zoomTo(16.toFloat())) initEvent() @@ -179,15 +170,14 @@ .setOnActionSheetListener(object : BottomActionSheet.OnActionSheetListener { override fun onActionItemClick(position: Int) { //获取当前定位 - val currentLng = SaveKeyValues.getValue( + val lng = SaveKeyValues.getValue( LocaleConstant.CURRENT_LONGITUDE, "0.0" ) as String - val currentLat = - SaveKeyValues.getValue(LocaleConstant.CURRENT_LATITUDE, "0.0") as String + val lat = SaveKeyValues.getValue( + LocaleConstant.CURRENT_LATITUDE, "0.0" + ) as String requireContext().navigatePageTo( - addAll( - position.toString(), model.id, model.name, currentLng, currentLat - ) + addAll(position.toString(), model.id, model.name, lng, lat) ) } }).build().show() @@ -303,7 +293,7 @@ } } - private val callback = Handler.Callback { msg -> + override fun handleMessage(msg: Message): Boolean { when (msg.what) { LocaleConstant.BLUETOOTH_ON -> { "蓝牙已开启".show(requireContext()) @@ -372,7 +362,7 @@ ) LocaleConstant.DISCONNECT_SUCCESS -> curConnectState = false } - true + return true } private fun startConnectDevice(device: BluetoothDevice) { @@ -529,11 +519,15 @@ homeView.settingsValueView.text = dataModel.alarmValue.toString() homeView.maxValueView.text = dataModel.maxPotency.toString() //判断是否需要报警 + val isOpenWarning = + SaveKeyValues.getValue(LocaleConstant.SINGLE_OPEN_WARNING, false) as Boolean if (isOpenWarning) { if (dataModel.potency >= dataModel.alarmValue) { //当前值大于设置值,需要报警 SoundPoolHelper.playSound(requireContext(), R.raw.alarm) vibrator.vibrate(1000) + val isAutoRecord = + SaveKeyValues.getValue(LocaleConstant.SINGLE_AUTO_RECORD, false) as Boolean if (isAutoRecord) { //如果连续超过10个报警,自动生成报警事件 alarmCount++ diff --git a/app/src/main/java/com/casic/birmm/inspect/fragment/QueryEventFragment.kt b/app/src/main/java/com/casic/birmm/inspect/fragment/QueryEventFragment.kt index 82a23c9..d134e0b 100644 --- a/app/src/main/java/com/casic/birmm/inspect/fragment/QueryEventFragment.kt +++ b/app/src/main/java/com/casic/birmm/inspect/fragment/QueryEventFragment.kt @@ -3,7 +3,6 @@ import android.os.Handler import androidx.lifecycle.ViewModelProvider import com.casic.birmm.inspect.R -import com.casic.birmm.inspect.extensions.addAll import com.casic.birmm.inspect.extensions.combineImagePath import com.casic.birmm.inspect.model.EventListModel import com.casic.birmm.inspect.view.EventDetailActivity @@ -11,9 +10,9 @@ import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseFragment -import com.pengxh.kt.lite.extensions.filterSpaceOrEnter import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show +import com.pengxh.kt.lite.extensions.toJson import com.pengxh.kt.lite.utils.WeakReferenceHandler import kotlinx.android.synthetic.main.fragment_query_event.* import kotlinx.android.synthetic.main.include_empty_view.* @@ -83,7 +82,6 @@ override fun onResume() { super.onResume() - pageIndex = 1 getEventList() } @@ -119,7 +117,7 @@ viewHolder.setText(R.id.inspectMsgView, item.name) .setText(R.id.inspectTypeView, "类型:${item.type}") - .setText(R.id.inspectDateView, "上报时间:${item.createTime}") + .setText(R.id.inspectDateView, "时间:${item.createTime}") } } eventRecyclerView.adapter = eventListAdapter @@ -128,11 +126,7 @@ override fun onItemClicked( position: Int, t: EventListModel.DataModel.RowsModel ) { - requireContext().navigatePageTo( - addAll( - t.createTime, t.description!!.filterSpaceOrEnter(), t.data, t.images - ) - ) + requireContext().navigatePageTo(t.toJson()) } }) } diff --git a/app/src/main/java/com/casic/birmm/inspect/single/fragment/HomePageFragment.kt b/app/src/main/java/com/casic/birmm/inspect/single/fragment/HomePageFragment.kt index 81ffffd..4a898ce 100644 --- a/app/src/main/java/com/casic/birmm/inspect/single/fragment/HomePageFragment.kt +++ b/app/src/main/java/com/casic/birmm/inspect/single/fragment/HomePageFragment.kt @@ -8,6 +8,7 @@ import android.graphics.Color import android.os.Bundle import android.os.Handler +import android.os.Message import android.os.Vibrator import android.util.Log import android.view.LayoutInflater @@ -33,10 +34,7 @@ import com.casic.birmm.inspect.utils.LocaleConstant import com.casic.birmm.inspect.utils.SoundPoolHelper import com.google.gson.Gson -import com.pengxh.kt.lite.extensions.navigatePageTo -import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.extensions.timestampToCompleteDate -import com.pengxh.kt.lite.extensions.timestampToDate +import com.pengxh.kt.lite.extensions.* import com.pengxh.kt.lite.utils.SaveKeyValues import com.pengxh.kt.lite.utils.WeakReferenceHandler import com.pengxh.kt.lite.utils.ble.BLEManager @@ -46,20 +44,15 @@ import com.pengxh.kt.lite.widget.dialog.AlertControlDialog import com.pengxh.kt.lite.widget.dialog.AlertInputDialog import com.pengxh.kt.lite.widget.dialog.BottomActionSheet -import com.qmuiteam.qmui.util.QMUIDisplayHelper import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet import kotlinx.android.synthetic.main.single_fragment_map_inspect.view.* import java.util.* @SuppressLint("MissingPermission") -class HomePageFragment : Fragment() { +class HomePageFragment : Fragment(), Handler.Callback { private val kTag = "HomePageFragment" private val gson by lazy { Gson() } - private val isOpenWarning = - SaveKeyValues.getValue(LocaleConstant.SINGLE_OPEN_WARNING, false) as Boolean - private val isAutoRecord = - SaveKeyValues.getValue(LocaleConstant.SINGLE_AUTO_RECORD, false) as Boolean private lateinit var homeView: View private lateinit var vibrator: Vibrator private lateinit var aMap: AMap @@ -80,14 +73,14 @@ homeView = inflater.inflate(R.layout.single_fragment_map_inspect, container, false) //根据不同设备状态栏高度设置statusBarView高度 - val statusBarHeight = QMUIDisplayHelper.getStatusBarHeight(requireContext()) + val statusBarHeight = requireContext().getStatusBarHeight() val params = homeView.statusBarView.layoutParams as LinearLayout.LayoutParams params.height = statusBarHeight homeView.statusBarView.setBackgroundColor(Color.parseColor("#D6EEFE")) homeView.statusBarView.requestLayout() vibrator = requireContext().getSystemService(Context.VIBRATOR_SERVICE) as Vibrator - weakReferenceHandler = WeakReferenceHandler(callback) + weakReferenceHandler = WeakReferenceHandler(this) if (BLEManager.initBLE(requireContext())) { if (!BLEManager.isBluetoothEnable()) { @@ -104,12 +97,10 @@ uiSettings.isRotateGesturesEnabled = false//不许地图随手势旋转角度 //显示定位小蓝点 locationStyle = MyLocationStyle() - locationStyle locationStyle.showMyLocation(true)//设置是否显示定位小蓝点 - locationStyle.interval(10 * 1000)////设置连续定位模式下的定位间隔,只在连续定位模式下生效。单位为毫秒 aMap.myLocationStyle = locationStyle aMap.isMyLocationEnabled = true - aMap.moveCamera(CameraUpdateFactory.zoomTo(14.toFloat())) + aMap.moveCamera(CameraUpdateFactory.zoomTo(16.toFloat())) initEvent() @@ -157,15 +148,14 @@ .setOnActionSheetListener(object : BottomActionSheet.OnActionSheetListener { override fun onActionItemClick(position: Int) { //获取当前定位 - val currentLng = SaveKeyValues.getValue( + val lng = SaveKeyValues.getValue( LocaleConstant.CURRENT_LONGITUDE, "0.0" ) as String - val currentLat = - SaveKeyValues.getValue(LocaleConstant.CURRENT_LATITUDE, "0.0") as String + val lat = SaveKeyValues.getValue( + LocaleConstant.CURRENT_LATITUDE, "0.0" + ) as String requireContext().navigatePageTo( - addAll( - position.toString(), model.id, model.name, currentLng, currentLat - ) + addAll(position.toString(), model.id, model.name, lng, lat) ) } }).build().show() @@ -281,7 +271,7 @@ } } - private val callback = Handler.Callback { msg -> + override fun handleMessage(msg: Message): Boolean { when (msg.what) { LocaleConstant.BLUETOOTH_ON -> { "蓝牙已开启".show(requireContext()) @@ -350,7 +340,7 @@ ) LocaleConstant.DISCONNECT_SUCCESS -> curConnectState = false } - true + return true } private fun startConnectDevice(device: BluetoothDevice) { @@ -502,11 +492,15 @@ homeView.settingsValueView.text = dataModel.alarmValue.toString() homeView.maxValueView.text = dataModel.maxPotency.toString() //判断是否需要报警 + val isOpenWarning = + SaveKeyValues.getValue(LocaleConstant.SINGLE_OPEN_WARNING, false) as Boolean if (isOpenWarning) { if (dataModel.potency >= dataModel.alarmValue) { //当前值大于设置值,需要报警 SoundPoolHelper.playSound(requireContext(), R.raw.alarm) vibrator.vibrate(1000) + val isAutoRecord = + SaveKeyValues.getValue(LocaleConstant.SINGLE_AUTO_RECORD, false) as Boolean if (isAutoRecord) { //如果连续超过10个报警,自动生成报警事件 alarmCount++ diff --git a/app/src/main/java/com/casic/birmm/inspect/single/fragment/QueryEventFragment.kt b/app/src/main/java/com/casic/birmm/inspect/single/fragment/QueryEventFragment.kt index 96dba16..812d329 100644 --- a/app/src/main/java/com/casic/birmm/inspect/single/fragment/QueryEventFragment.kt +++ b/app/src/main/java/com/casic/birmm/inspect/single/fragment/QueryEventFragment.kt @@ -3,15 +3,14 @@ import androidx.lifecycle.lifecycleScope import com.bumptech.glide.Glide import com.casic.birmm.inspect.R -import com.casic.birmm.inspect.extensions.addAll import com.casic.birmm.inspect.model.EventListModel import com.casic.birmm.inspect.single.view.EventDetailActivity import com.casic.birmm.inspect.utils.DataBaseManager import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseFragment -import com.pengxh.kt.lite.extensions.filterSpaceOrEnter import com.pengxh.kt.lite.extensions.navigatePageTo +import com.pengxh.kt.lite.extensions.toJson import kotlinx.android.synthetic.main.include_empty_view.* import kotlinx.android.synthetic.main.single_fragment_query_event.* import kotlinx.coroutines.Dispatchers @@ -41,8 +40,7 @@ R.layout.item_event_rv_l, dataBeans ) { override fun convertView( - viewHolder: ViewHolder, - position: Int, + viewHolder: ViewHolder, position: Int, item: EventListModel.DataModel.RowsModel ) { if (!item.images.isNullOrBlank()) { @@ -61,22 +59,15 @@ } viewHolder.setText(R.id.inspectMsgView, item.name) - .setText(R.id.inspectMsgView, "类型:${item.type}") - .setText(R.id.inspectMsgView, "上报时间:${item.createTime}") + .setText(R.id.inspectTypeView, "类型:${item.type}") + .setText(R.id.inspectDateView, "时间:${item.createTime}") } } eventRecyclerView.adapter = eventListAdapter eventListAdapter.setOnItemClickedListener(object : NormalRecyclerAdapter.OnItemClickedListener { override fun onItemClicked(position: Int, t: EventListModel.DataModel.RowsModel) { - requireContext().navigatePageTo( - addAll( - t.createTime.toString(), - t.description!!.filterSpaceOrEnter(), - t.data.toString(), - t.images.toString() - ) - ) + requireContext().navigatePageTo(t.toJson()) } }) } diff --git a/app/src/main/java/com/casic/birmm/inspect/single/view/EventDetailActivity.kt b/app/src/main/java/com/casic/birmm/inspect/single/view/EventDetailActivity.kt index f00bbae..b7d59e8 100644 --- a/app/src/main/java/com/casic/birmm/inspect/single/view/EventDetailActivity.kt +++ b/app/src/main/java/com/casic/birmm/inspect/single/view/EventDetailActivity.kt @@ -2,7 +2,10 @@ import androidx.core.content.ContextCompat import com.casic.birmm.inspect.R +import com.casic.birmm.inspect.model.EventListModel import com.casic.birmm.inspect.view.BigImageActivity +import com.google.gson.Gson +import com.google.gson.reflect.TypeToken import com.gyf.immersionbar.ImmersionBar import com.pengxh.kt.lite.adapter.ReadOnlyImageAdapter import com.pengxh.kt.lite.base.KotlinBaseActivity @@ -15,12 +18,17 @@ class EventDetailActivity : KotlinBaseActivity() { - override fun initData() { - val args = intent.getStringArrayListExtra(Constant.INTENT_PARAM)!! + private val gson by lazy { Gson() } - createTimeView.text = args[0] - descriptionView.text = args[1] - val data = args[2] + override fun initData() { + val args = intent.getStringExtra(Constant.INTENT_PARAM)!! + val model = gson.fromJson( + args, object : TypeToken() {}.type + ) + + createTimeView.text = model.createTime + descriptionView.text = model.description + val data = model.data val value = if (data.isNullOrBlank()) { "0.0" } else { @@ -28,7 +36,7 @@ } dataView.text = value - val images = args[3] + val images = model.images /** * images: 2020-12/6528aeb21cff426c91c43a7f8b716d1e.jpg diff --git a/app/src/main/java/com/casic/birmm/inspect/single/view/NewEventActivity.kt b/app/src/main/java/com/casic/birmm/inspect/single/view/NewEventActivity.kt index b77a8f2..7e4f7e7 100644 --- a/app/src/main/java/com/casic/birmm/inspect/single/view/NewEventActivity.kt +++ b/app/src/main/java/com/casic/birmm/inspect/single/view/NewEventActivity.kt @@ -39,7 +39,7 @@ private var isWarning: Boolean = true private var longitude: Double = 0.0 private var latitude: Double = 0.0 - private var data = -1.0//泄露默认值 + private var data = 0.0//泄露默认值 override fun initData() { diff --git a/app/src/main/java/com/casic/birmm/inspect/utils/retrofit/RetrofitService.kt b/app/src/main/java/com/casic/birmm/inspect/utils/retrofit/RetrofitService.kt index 1281613..cfd24bd 100644 --- a/app/src/main/java/com/casic/birmm/inspect/utils/retrofit/RetrofitService.kt +++ b/app/src/main/java/com/casic/birmm/inspect/utils/retrofit/RetrofitService.kt @@ -16,7 +16,7 @@ */ @FormUrlEncoded @POST("/user/appLogin") - suspend fun getLoginResult( + suspend fun login( @Field("username") account: String, @Field("password") secretKey: String ): String diff --git a/app/src/main/java/com/casic/birmm/inspect/utils/retrofit/RetrofitServiceManager.kt b/app/src/main/java/com/casic/birmm/inspect/utils/retrofit/RetrofitServiceManager.kt index 4c1f278..324cf23 100644 --- a/app/src/main/java/com/casic/birmm/inspect/utils/retrofit/RetrofitServiceManager.kt +++ b/app/src/main/java/com/casic/birmm/inspect/utils/retrofit/RetrofitServiceManager.kt @@ -28,8 +28,8 @@ /** * 登录并获取Token */ - suspend fun getLoginResult(account: String, secretKey: String): String { - return api.getLoginResult(account, secretKey) + suspend fun login(account: String, secretKey: String): String { + return api.login(account, secretKey) } /** diff --git a/app/src/main/java/com/casic/birmm/inspect/view/EventDetailActivity.kt b/app/src/main/java/com/casic/birmm/inspect/view/EventDetailActivity.kt index 6f3d166..5dd7f86 100644 --- a/app/src/main/java/com/casic/birmm/inspect/view/EventDetailActivity.kt +++ b/app/src/main/java/com/casic/birmm/inspect/view/EventDetailActivity.kt @@ -3,6 +3,9 @@ import androidx.core.content.ContextCompat import com.casic.birmm.inspect.R import com.casic.birmm.inspect.extensions.combineImagePath +import com.casic.birmm.inspect.model.EventListModel +import com.google.gson.Gson +import com.google.gson.reflect.TypeToken import com.gyf.immersionbar.ImmersionBar import com.pengxh.kt.lite.adapter.ReadOnlyImageAdapter import com.pengxh.kt.lite.base.KotlinBaseActivity @@ -16,6 +19,8 @@ class EventDetailActivity : KotlinBaseActivity() { + private val gson by lazy { Gson() } + override fun initLayoutView(): Int = R.layout.activity_event_detail override fun setupTopBarLayout() { @@ -29,11 +34,14 @@ } override fun initData() { - val args = intent.getStringArrayListExtra(Constant.INTENT_PARAM)!! + val args = intent.getStringExtra(Constant.INTENT_PARAM)!! + val model = gson.fromJson( + args, object : TypeToken() {}.type + ) - createTimeView.text = args[0] - descriptionView.text = args[1] - val data = args[2] + createTimeView.text = model.createTime + descriptionView.text = model.description + val data = model.data val value = if (data.isNullOrBlank()) { "0.0" } else { @@ -41,7 +49,7 @@ } dataView.text = value - val images = args[3] + val images = model.images /** * images: 2020-12/6528aeb21cff426c91c43a7f8b716d1e.jpg diff --git a/app/src/main/java/com/casic/birmm/inspect/view/LoginActivity.kt b/app/src/main/java/com/casic/birmm/inspect/view/LoginActivity.kt index b34abf4..cac1d23 100644 --- a/app/src/main/java/com/casic/birmm/inspect/view/LoginActivity.kt +++ b/app/src/main/java/com/casic/birmm/inspect/view/LoginActivity.kt @@ -83,7 +83,7 @@ SaveKeyValues.putValue(LocaleConstant.ACCOUNT, account) SaveKeyValues.putValue(LocaleConstant.PASSWORD, userPassword) - authenticateViewModel.obtainPublicKey() + authenticateViewModel.getPublicKey() authenticateViewModel.keyModel.observe(this) { if (it.code == 200) {//用code判断,别的判断可能有坑 val keyString = it.data!!.publicKey!! @@ -93,11 +93,12 @@ AuthenticationHelper.savePublicKey(keyString) val publicKey = RSAUtils.keyStrToPublicKey(keyString) - val dataByPublicKey = - RSAUtils.encryptDataByPublicKey(userPassword.toByteArray(), publicKey!!) + val dataByPublicKey = RSAUtils.encryptDataByPublicKey( + userPassword.toByteArray(), publicKey!! + ) //登录并获取Token,POST请求 - userViewModel.getLoginResult(account = account, secretKey = dataByPublicKey) + userViewModel.login(account, dataByPublicKey) userViewModel.loginResult.observe(this) { loginResult -> if (loginResult.code == 200) { AuthenticationHelper.saveToken(loginResult.data!!.token!!) diff --git a/app/src/main/java/com/casic/birmm/inspect/view/NewEventActivity.kt b/app/src/main/java/com/casic/birmm/inspect/view/NewEventActivity.kt index 8ea8a75..2593394 100644 --- a/app/src/main/java/com/casic/birmm/inspect/view/NewEventActivity.kt +++ b/app/src/main/java/com/casic/birmm/inspect/view/NewEventActivity.kt @@ -57,7 +57,7 @@ private lateinit var inspectionName: String private var longitude: Double = 0.0 private var latitude: Double = 0.0 - private var data = -1.0//泄露默认值 + private var data = 0.0//泄露默认值 private lateinit var type: String private lateinit var userModel: UserInfoModel diff --git a/app/src/main/java/com/casic/birmm/inspect/vm/AuthenticateViewModel.kt b/app/src/main/java/com/casic/birmm/inspect/vm/AuthenticateViewModel.kt index 572caee..3a9ae79 100644 --- a/app/src/main/java/com/casic/birmm/inspect/vm/AuthenticateViewModel.kt +++ b/app/src/main/java/com/casic/birmm/inspect/vm/AuthenticateViewModel.kt @@ -8,6 +8,7 @@ import com.casic.birmm.inspect.utils.retrofit.RetrofitServiceManager import com.google.gson.Gson import com.google.gson.reflect.TypeToken +import com.pengxh.kt.lite.extensions.isNetworkConnected import com.pengxh.kt.lite.extensions.launch import com.pengxh.kt.lite.extensions.show import com.pengxh.kt.lite.vm.BaseViewModel @@ -20,7 +21,7 @@ private val gson by lazy { Gson() } val keyModel = MutableLiveData() - fun obtainPublicKey() = launch({ + fun getPublicKey() = launch({ val response = RetrofitServiceManager.getPublicKey() val responseCode = response.separateResponseCode() if (responseCode == 200) { @@ -31,6 +32,10 @@ response.toErrorMessage().show(BaseApplication.get()) } }, { - it.cause.toString().show(BaseApplication.get()) + if (BaseApplication.get().isNetworkConnected()) { + "连接服务器失败,IP或端口错误".show(BaseApplication.get()) + } else { + "网络连接失败".show(BaseApplication.get()) + } }) } \ No newline at end of file diff --git a/app/src/main/java/com/casic/birmm/inspect/vm/UserViewModel.kt b/app/src/main/java/com/casic/birmm/inspect/vm/UserViewModel.kt index a6ae8ab..3b4d099 100644 --- a/app/src/main/java/com/casic/birmm/inspect/vm/UserViewModel.kt +++ b/app/src/main/java/com/casic/birmm/inspect/vm/UserViewModel.kt @@ -10,6 +10,7 @@ import com.casic.birmm.inspect.utils.retrofit.RetrofitServiceManager import com.google.gson.Gson import com.google.gson.reflect.TypeToken +import com.pengxh.kt.lite.extensions.isNetworkConnected import com.pengxh.kt.lite.extensions.launch import com.pengxh.kt.lite.extensions.show import com.pengxh.kt.lite.vm.BaseViewModel @@ -27,9 +28,9 @@ val outResultModel = MutableLiveData() val updateResult = MutableLiveData() - fun getLoginResult(account: String, secretKey: String) = launch({ + fun login(account: String, secretKey: String) = launch({ loadState.value = LoadState.Loading - val response = RetrofitServiceManager.getLoginResult(account, secretKey) + val response = RetrofitServiceManager.login(account, secretKey) val responseCode = response.separateResponseCode() if (responseCode == 200) { loadState.value = LoadState.Success @@ -42,7 +43,11 @@ } }, { loadState.value = LoadState.Fail - it.cause.toString().show(BaseApplication.get()) + if (BaseApplication.get().isNetworkConnected()) { + "连接服务器失败,IP或端口错误".show(BaseApplication.get()) + } else { + "网络连接失败".show(BaseApplication.get()) + } }) fun getUserInfo() = launch({ diff --git a/.idea/misc.xml b/.idea/misc.xml index 139dc2a..e7cbf98 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -11,6 +11,7 @@ + diff --git a/app/src/main/java/com/casic/birmm/inspect/fragment/HomePageFragment.kt b/app/src/main/java/com/casic/birmm/inspect/fragment/HomePageFragment.kt index 91cd394..a757dfb 100644 --- a/app/src/main/java/com/casic/birmm/inspect/fragment/HomePageFragment.kt +++ b/app/src/main/java/com/casic/birmm/inspect/fragment/HomePageFragment.kt @@ -8,6 +8,7 @@ import android.graphics.Color import android.os.Bundle import android.os.Handler +import android.os.Message import android.os.Vibrator import android.util.Log import android.view.LayoutInflater @@ -37,10 +38,7 @@ import com.casic.birmm.inspect.vm.EventViewModel import com.casic.birmm.inspect.vm.InspectionViewModel import com.google.gson.Gson -import com.pengxh.kt.lite.extensions.navigatePageTo -import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.extensions.timestampToCompleteDate -import com.pengxh.kt.lite.extensions.timestampToDate +import com.pengxh.kt.lite.extensions.* import com.pengxh.kt.lite.utils.SaveKeyValues import com.pengxh.kt.lite.utils.WeakReferenceHandler import com.pengxh.kt.lite.utils.ble.BLEManager @@ -51,20 +49,15 @@ import com.pengxh.kt.lite.widget.dialog.AlertControlDialog import com.pengxh.kt.lite.widget.dialog.AlertInputDialog import com.pengxh.kt.lite.widget.dialog.BottomActionSheet -import com.qmuiteam.qmui.util.QMUIDisplayHelper import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet import kotlinx.android.synthetic.main.fragment_map_inspect.view.* import java.util.* @SuppressLint("MissingPermission") -class HomePageFragment : Fragment() { +class HomePageFragment : Fragment(), Handler.Callback { private val kTag = "HomePageFragment" private val gson by lazy { Gson() } - private val isOpenWarning = - SaveKeyValues.getValue(LocaleConstant.OPEN_WARNING, false) as Boolean - private val isAutoRecord = - SaveKeyValues.getValue(LocaleConstant.AUTO_RECORD, false) as Boolean private lateinit var homeView: View private lateinit var userData: UserInfoModel.DataModel private lateinit var vibrator: Vibrator @@ -88,7 +81,7 @@ homeView = inflater.inflate(R.layout.fragment_map_inspect, container, false) //根据不同设备状态栏高度设置statusBarView高度 - val statusBarHeight = QMUIDisplayHelper.getStatusBarHeight(requireContext()) + val statusBarHeight = requireContext().getStatusBarHeight() val params = homeView.statusBarView.layoutParams as LinearLayout.LayoutParams params.height = statusBarHeight homeView.statusBarView.setBackgroundColor(Color.parseColor("#D6EEFE")) @@ -109,7 +102,7 @@ val userModelJson = SaveKeyValues.getValue(LocaleConstant.USER_OBJECT, "") as String userData = gson.fromJson(userModelJson, UserInfoModel::class.java).data!! - weakReferenceHandler = WeakReferenceHandler(callback) + weakReferenceHandler = WeakReferenceHandler(this) if (BLEManager.initBLE(requireContext())) { if (!BLEManager.isBluetoothEnable()) { @@ -126,12 +119,10 @@ uiSettings.isRotateGesturesEnabled = false//不许地图随手势旋转角度 //显示定位小蓝点 locationStyle = MyLocationStyle() - locationStyle locationStyle.showMyLocation(true)//设置是否显示定位小蓝点 - locationStyle.interval(10 * 1000)////设置连续定位模式下的定位间隔,只在连续定位模式下生效。单位为毫秒 aMap.myLocationStyle = locationStyle aMap.isMyLocationEnabled = true - aMap.moveCamera(CameraUpdateFactory.zoomTo(14.toFloat())) + aMap.moveCamera(CameraUpdateFactory.zoomTo(16.toFloat())) initEvent() @@ -179,15 +170,14 @@ .setOnActionSheetListener(object : BottomActionSheet.OnActionSheetListener { override fun onActionItemClick(position: Int) { //获取当前定位 - val currentLng = SaveKeyValues.getValue( + val lng = SaveKeyValues.getValue( LocaleConstant.CURRENT_LONGITUDE, "0.0" ) as String - val currentLat = - SaveKeyValues.getValue(LocaleConstant.CURRENT_LATITUDE, "0.0") as String + val lat = SaveKeyValues.getValue( + LocaleConstant.CURRENT_LATITUDE, "0.0" + ) as String requireContext().navigatePageTo( - addAll( - position.toString(), model.id, model.name, currentLng, currentLat - ) + addAll(position.toString(), model.id, model.name, lng, lat) ) } }).build().show() @@ -303,7 +293,7 @@ } } - private val callback = Handler.Callback { msg -> + override fun handleMessage(msg: Message): Boolean { when (msg.what) { LocaleConstant.BLUETOOTH_ON -> { "蓝牙已开启".show(requireContext()) @@ -372,7 +362,7 @@ ) LocaleConstant.DISCONNECT_SUCCESS -> curConnectState = false } - true + return true } private fun startConnectDevice(device: BluetoothDevice) { @@ -529,11 +519,15 @@ homeView.settingsValueView.text = dataModel.alarmValue.toString() homeView.maxValueView.text = dataModel.maxPotency.toString() //判断是否需要报警 + val isOpenWarning = + SaveKeyValues.getValue(LocaleConstant.SINGLE_OPEN_WARNING, false) as Boolean if (isOpenWarning) { if (dataModel.potency >= dataModel.alarmValue) { //当前值大于设置值,需要报警 SoundPoolHelper.playSound(requireContext(), R.raw.alarm) vibrator.vibrate(1000) + val isAutoRecord = + SaveKeyValues.getValue(LocaleConstant.SINGLE_AUTO_RECORD, false) as Boolean if (isAutoRecord) { //如果连续超过10个报警,自动生成报警事件 alarmCount++ diff --git a/app/src/main/java/com/casic/birmm/inspect/fragment/QueryEventFragment.kt b/app/src/main/java/com/casic/birmm/inspect/fragment/QueryEventFragment.kt index 82a23c9..d134e0b 100644 --- a/app/src/main/java/com/casic/birmm/inspect/fragment/QueryEventFragment.kt +++ b/app/src/main/java/com/casic/birmm/inspect/fragment/QueryEventFragment.kt @@ -3,7 +3,6 @@ import android.os.Handler import androidx.lifecycle.ViewModelProvider import com.casic.birmm.inspect.R -import com.casic.birmm.inspect.extensions.addAll import com.casic.birmm.inspect.extensions.combineImagePath import com.casic.birmm.inspect.model.EventListModel import com.casic.birmm.inspect.view.EventDetailActivity @@ -11,9 +10,9 @@ import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseFragment -import com.pengxh.kt.lite.extensions.filterSpaceOrEnter import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show +import com.pengxh.kt.lite.extensions.toJson import com.pengxh.kt.lite.utils.WeakReferenceHandler import kotlinx.android.synthetic.main.fragment_query_event.* import kotlinx.android.synthetic.main.include_empty_view.* @@ -83,7 +82,6 @@ override fun onResume() { super.onResume() - pageIndex = 1 getEventList() } @@ -119,7 +117,7 @@ viewHolder.setText(R.id.inspectMsgView, item.name) .setText(R.id.inspectTypeView, "类型:${item.type}") - .setText(R.id.inspectDateView, "上报时间:${item.createTime}") + .setText(R.id.inspectDateView, "时间:${item.createTime}") } } eventRecyclerView.adapter = eventListAdapter @@ -128,11 +126,7 @@ override fun onItemClicked( position: Int, t: EventListModel.DataModel.RowsModel ) { - requireContext().navigatePageTo( - addAll( - t.createTime, t.description!!.filterSpaceOrEnter(), t.data, t.images - ) - ) + requireContext().navigatePageTo(t.toJson()) } }) } diff --git a/app/src/main/java/com/casic/birmm/inspect/single/fragment/HomePageFragment.kt b/app/src/main/java/com/casic/birmm/inspect/single/fragment/HomePageFragment.kt index 81ffffd..4a898ce 100644 --- a/app/src/main/java/com/casic/birmm/inspect/single/fragment/HomePageFragment.kt +++ b/app/src/main/java/com/casic/birmm/inspect/single/fragment/HomePageFragment.kt @@ -8,6 +8,7 @@ import android.graphics.Color import android.os.Bundle import android.os.Handler +import android.os.Message import android.os.Vibrator import android.util.Log import android.view.LayoutInflater @@ -33,10 +34,7 @@ import com.casic.birmm.inspect.utils.LocaleConstant import com.casic.birmm.inspect.utils.SoundPoolHelper import com.google.gson.Gson -import com.pengxh.kt.lite.extensions.navigatePageTo -import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.extensions.timestampToCompleteDate -import com.pengxh.kt.lite.extensions.timestampToDate +import com.pengxh.kt.lite.extensions.* import com.pengxh.kt.lite.utils.SaveKeyValues import com.pengxh.kt.lite.utils.WeakReferenceHandler import com.pengxh.kt.lite.utils.ble.BLEManager @@ -46,20 +44,15 @@ import com.pengxh.kt.lite.widget.dialog.AlertControlDialog import com.pengxh.kt.lite.widget.dialog.AlertInputDialog import com.pengxh.kt.lite.widget.dialog.BottomActionSheet -import com.qmuiteam.qmui.util.QMUIDisplayHelper import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet import kotlinx.android.synthetic.main.single_fragment_map_inspect.view.* import java.util.* @SuppressLint("MissingPermission") -class HomePageFragment : Fragment() { +class HomePageFragment : Fragment(), Handler.Callback { private val kTag = "HomePageFragment" private val gson by lazy { Gson() } - private val isOpenWarning = - SaveKeyValues.getValue(LocaleConstant.SINGLE_OPEN_WARNING, false) as Boolean - private val isAutoRecord = - SaveKeyValues.getValue(LocaleConstant.SINGLE_AUTO_RECORD, false) as Boolean private lateinit var homeView: View private lateinit var vibrator: Vibrator private lateinit var aMap: AMap @@ -80,14 +73,14 @@ homeView = inflater.inflate(R.layout.single_fragment_map_inspect, container, false) //根据不同设备状态栏高度设置statusBarView高度 - val statusBarHeight = QMUIDisplayHelper.getStatusBarHeight(requireContext()) + val statusBarHeight = requireContext().getStatusBarHeight() val params = homeView.statusBarView.layoutParams as LinearLayout.LayoutParams params.height = statusBarHeight homeView.statusBarView.setBackgroundColor(Color.parseColor("#D6EEFE")) homeView.statusBarView.requestLayout() vibrator = requireContext().getSystemService(Context.VIBRATOR_SERVICE) as Vibrator - weakReferenceHandler = WeakReferenceHandler(callback) + weakReferenceHandler = WeakReferenceHandler(this) if (BLEManager.initBLE(requireContext())) { if (!BLEManager.isBluetoothEnable()) { @@ -104,12 +97,10 @@ uiSettings.isRotateGesturesEnabled = false//不许地图随手势旋转角度 //显示定位小蓝点 locationStyle = MyLocationStyle() - locationStyle locationStyle.showMyLocation(true)//设置是否显示定位小蓝点 - locationStyle.interval(10 * 1000)////设置连续定位模式下的定位间隔,只在连续定位模式下生效。单位为毫秒 aMap.myLocationStyle = locationStyle aMap.isMyLocationEnabled = true - aMap.moveCamera(CameraUpdateFactory.zoomTo(14.toFloat())) + aMap.moveCamera(CameraUpdateFactory.zoomTo(16.toFloat())) initEvent() @@ -157,15 +148,14 @@ .setOnActionSheetListener(object : BottomActionSheet.OnActionSheetListener { override fun onActionItemClick(position: Int) { //获取当前定位 - val currentLng = SaveKeyValues.getValue( + val lng = SaveKeyValues.getValue( LocaleConstant.CURRENT_LONGITUDE, "0.0" ) as String - val currentLat = - SaveKeyValues.getValue(LocaleConstant.CURRENT_LATITUDE, "0.0") as String + val lat = SaveKeyValues.getValue( + LocaleConstant.CURRENT_LATITUDE, "0.0" + ) as String requireContext().navigatePageTo( - addAll( - position.toString(), model.id, model.name, currentLng, currentLat - ) + addAll(position.toString(), model.id, model.name, lng, lat) ) } }).build().show() @@ -281,7 +271,7 @@ } } - private val callback = Handler.Callback { msg -> + override fun handleMessage(msg: Message): Boolean { when (msg.what) { LocaleConstant.BLUETOOTH_ON -> { "蓝牙已开启".show(requireContext()) @@ -350,7 +340,7 @@ ) LocaleConstant.DISCONNECT_SUCCESS -> curConnectState = false } - true + return true } private fun startConnectDevice(device: BluetoothDevice) { @@ -502,11 +492,15 @@ homeView.settingsValueView.text = dataModel.alarmValue.toString() homeView.maxValueView.text = dataModel.maxPotency.toString() //判断是否需要报警 + val isOpenWarning = + SaveKeyValues.getValue(LocaleConstant.SINGLE_OPEN_WARNING, false) as Boolean if (isOpenWarning) { if (dataModel.potency >= dataModel.alarmValue) { //当前值大于设置值,需要报警 SoundPoolHelper.playSound(requireContext(), R.raw.alarm) vibrator.vibrate(1000) + val isAutoRecord = + SaveKeyValues.getValue(LocaleConstant.SINGLE_AUTO_RECORD, false) as Boolean if (isAutoRecord) { //如果连续超过10个报警,自动生成报警事件 alarmCount++ diff --git a/app/src/main/java/com/casic/birmm/inspect/single/fragment/QueryEventFragment.kt b/app/src/main/java/com/casic/birmm/inspect/single/fragment/QueryEventFragment.kt index 96dba16..812d329 100644 --- a/app/src/main/java/com/casic/birmm/inspect/single/fragment/QueryEventFragment.kt +++ b/app/src/main/java/com/casic/birmm/inspect/single/fragment/QueryEventFragment.kt @@ -3,15 +3,14 @@ import androidx.lifecycle.lifecycleScope import com.bumptech.glide.Glide import com.casic.birmm.inspect.R -import com.casic.birmm.inspect.extensions.addAll import com.casic.birmm.inspect.model.EventListModel import com.casic.birmm.inspect.single.view.EventDetailActivity import com.casic.birmm.inspect.utils.DataBaseManager import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseFragment -import com.pengxh.kt.lite.extensions.filterSpaceOrEnter import com.pengxh.kt.lite.extensions.navigatePageTo +import com.pengxh.kt.lite.extensions.toJson import kotlinx.android.synthetic.main.include_empty_view.* import kotlinx.android.synthetic.main.single_fragment_query_event.* import kotlinx.coroutines.Dispatchers @@ -41,8 +40,7 @@ R.layout.item_event_rv_l, dataBeans ) { override fun convertView( - viewHolder: ViewHolder, - position: Int, + viewHolder: ViewHolder, position: Int, item: EventListModel.DataModel.RowsModel ) { if (!item.images.isNullOrBlank()) { @@ -61,22 +59,15 @@ } viewHolder.setText(R.id.inspectMsgView, item.name) - .setText(R.id.inspectMsgView, "类型:${item.type}") - .setText(R.id.inspectMsgView, "上报时间:${item.createTime}") + .setText(R.id.inspectTypeView, "类型:${item.type}") + .setText(R.id.inspectDateView, "时间:${item.createTime}") } } eventRecyclerView.adapter = eventListAdapter eventListAdapter.setOnItemClickedListener(object : NormalRecyclerAdapter.OnItemClickedListener { override fun onItemClicked(position: Int, t: EventListModel.DataModel.RowsModel) { - requireContext().navigatePageTo( - addAll( - t.createTime.toString(), - t.description!!.filterSpaceOrEnter(), - t.data.toString(), - t.images.toString() - ) - ) + requireContext().navigatePageTo(t.toJson()) } }) } diff --git a/app/src/main/java/com/casic/birmm/inspect/single/view/EventDetailActivity.kt b/app/src/main/java/com/casic/birmm/inspect/single/view/EventDetailActivity.kt index f00bbae..b7d59e8 100644 --- a/app/src/main/java/com/casic/birmm/inspect/single/view/EventDetailActivity.kt +++ b/app/src/main/java/com/casic/birmm/inspect/single/view/EventDetailActivity.kt @@ -2,7 +2,10 @@ import androidx.core.content.ContextCompat import com.casic.birmm.inspect.R +import com.casic.birmm.inspect.model.EventListModel import com.casic.birmm.inspect.view.BigImageActivity +import com.google.gson.Gson +import com.google.gson.reflect.TypeToken import com.gyf.immersionbar.ImmersionBar import com.pengxh.kt.lite.adapter.ReadOnlyImageAdapter import com.pengxh.kt.lite.base.KotlinBaseActivity @@ -15,12 +18,17 @@ class EventDetailActivity : KotlinBaseActivity() { - override fun initData() { - val args = intent.getStringArrayListExtra(Constant.INTENT_PARAM)!! + private val gson by lazy { Gson() } - createTimeView.text = args[0] - descriptionView.text = args[1] - val data = args[2] + override fun initData() { + val args = intent.getStringExtra(Constant.INTENT_PARAM)!! + val model = gson.fromJson( + args, object : TypeToken() {}.type + ) + + createTimeView.text = model.createTime + descriptionView.text = model.description + val data = model.data val value = if (data.isNullOrBlank()) { "0.0" } else { @@ -28,7 +36,7 @@ } dataView.text = value - val images = args[3] + val images = model.images /** * images: 2020-12/6528aeb21cff426c91c43a7f8b716d1e.jpg diff --git a/app/src/main/java/com/casic/birmm/inspect/single/view/NewEventActivity.kt b/app/src/main/java/com/casic/birmm/inspect/single/view/NewEventActivity.kt index b77a8f2..7e4f7e7 100644 --- a/app/src/main/java/com/casic/birmm/inspect/single/view/NewEventActivity.kt +++ b/app/src/main/java/com/casic/birmm/inspect/single/view/NewEventActivity.kt @@ -39,7 +39,7 @@ private var isWarning: Boolean = true private var longitude: Double = 0.0 private var latitude: Double = 0.0 - private var data = -1.0//泄露默认值 + private var data = 0.0//泄露默认值 override fun initData() { diff --git a/app/src/main/java/com/casic/birmm/inspect/utils/retrofit/RetrofitService.kt b/app/src/main/java/com/casic/birmm/inspect/utils/retrofit/RetrofitService.kt index 1281613..cfd24bd 100644 --- a/app/src/main/java/com/casic/birmm/inspect/utils/retrofit/RetrofitService.kt +++ b/app/src/main/java/com/casic/birmm/inspect/utils/retrofit/RetrofitService.kt @@ -16,7 +16,7 @@ */ @FormUrlEncoded @POST("/user/appLogin") - suspend fun getLoginResult( + suspend fun login( @Field("username") account: String, @Field("password") secretKey: String ): String diff --git a/app/src/main/java/com/casic/birmm/inspect/utils/retrofit/RetrofitServiceManager.kt b/app/src/main/java/com/casic/birmm/inspect/utils/retrofit/RetrofitServiceManager.kt index 4c1f278..324cf23 100644 --- a/app/src/main/java/com/casic/birmm/inspect/utils/retrofit/RetrofitServiceManager.kt +++ b/app/src/main/java/com/casic/birmm/inspect/utils/retrofit/RetrofitServiceManager.kt @@ -28,8 +28,8 @@ /** * 登录并获取Token */ - suspend fun getLoginResult(account: String, secretKey: String): String { - return api.getLoginResult(account, secretKey) + suspend fun login(account: String, secretKey: String): String { + return api.login(account, secretKey) } /** diff --git a/app/src/main/java/com/casic/birmm/inspect/view/EventDetailActivity.kt b/app/src/main/java/com/casic/birmm/inspect/view/EventDetailActivity.kt index 6f3d166..5dd7f86 100644 --- a/app/src/main/java/com/casic/birmm/inspect/view/EventDetailActivity.kt +++ b/app/src/main/java/com/casic/birmm/inspect/view/EventDetailActivity.kt @@ -3,6 +3,9 @@ import androidx.core.content.ContextCompat import com.casic.birmm.inspect.R import com.casic.birmm.inspect.extensions.combineImagePath +import com.casic.birmm.inspect.model.EventListModel +import com.google.gson.Gson +import com.google.gson.reflect.TypeToken import com.gyf.immersionbar.ImmersionBar import com.pengxh.kt.lite.adapter.ReadOnlyImageAdapter import com.pengxh.kt.lite.base.KotlinBaseActivity @@ -16,6 +19,8 @@ class EventDetailActivity : KotlinBaseActivity() { + private val gson by lazy { Gson() } + override fun initLayoutView(): Int = R.layout.activity_event_detail override fun setupTopBarLayout() { @@ -29,11 +34,14 @@ } override fun initData() { - val args = intent.getStringArrayListExtra(Constant.INTENT_PARAM)!! + val args = intent.getStringExtra(Constant.INTENT_PARAM)!! + val model = gson.fromJson( + args, object : TypeToken() {}.type + ) - createTimeView.text = args[0] - descriptionView.text = args[1] - val data = args[2] + createTimeView.text = model.createTime + descriptionView.text = model.description + val data = model.data val value = if (data.isNullOrBlank()) { "0.0" } else { @@ -41,7 +49,7 @@ } dataView.text = value - val images = args[3] + val images = model.images /** * images: 2020-12/6528aeb21cff426c91c43a7f8b716d1e.jpg diff --git a/app/src/main/java/com/casic/birmm/inspect/view/LoginActivity.kt b/app/src/main/java/com/casic/birmm/inspect/view/LoginActivity.kt index b34abf4..cac1d23 100644 --- a/app/src/main/java/com/casic/birmm/inspect/view/LoginActivity.kt +++ b/app/src/main/java/com/casic/birmm/inspect/view/LoginActivity.kt @@ -83,7 +83,7 @@ SaveKeyValues.putValue(LocaleConstant.ACCOUNT, account) SaveKeyValues.putValue(LocaleConstant.PASSWORD, userPassword) - authenticateViewModel.obtainPublicKey() + authenticateViewModel.getPublicKey() authenticateViewModel.keyModel.observe(this) { if (it.code == 200) {//用code判断,别的判断可能有坑 val keyString = it.data!!.publicKey!! @@ -93,11 +93,12 @@ AuthenticationHelper.savePublicKey(keyString) val publicKey = RSAUtils.keyStrToPublicKey(keyString) - val dataByPublicKey = - RSAUtils.encryptDataByPublicKey(userPassword.toByteArray(), publicKey!!) + val dataByPublicKey = RSAUtils.encryptDataByPublicKey( + userPassword.toByteArray(), publicKey!! + ) //登录并获取Token,POST请求 - userViewModel.getLoginResult(account = account, secretKey = dataByPublicKey) + userViewModel.login(account, dataByPublicKey) userViewModel.loginResult.observe(this) { loginResult -> if (loginResult.code == 200) { AuthenticationHelper.saveToken(loginResult.data!!.token!!) diff --git a/app/src/main/java/com/casic/birmm/inspect/view/NewEventActivity.kt b/app/src/main/java/com/casic/birmm/inspect/view/NewEventActivity.kt index 8ea8a75..2593394 100644 --- a/app/src/main/java/com/casic/birmm/inspect/view/NewEventActivity.kt +++ b/app/src/main/java/com/casic/birmm/inspect/view/NewEventActivity.kt @@ -57,7 +57,7 @@ private lateinit var inspectionName: String private var longitude: Double = 0.0 private var latitude: Double = 0.0 - private var data = -1.0//泄露默认值 + private var data = 0.0//泄露默认值 private lateinit var type: String private lateinit var userModel: UserInfoModel diff --git a/app/src/main/java/com/casic/birmm/inspect/vm/AuthenticateViewModel.kt b/app/src/main/java/com/casic/birmm/inspect/vm/AuthenticateViewModel.kt index 572caee..3a9ae79 100644 --- a/app/src/main/java/com/casic/birmm/inspect/vm/AuthenticateViewModel.kt +++ b/app/src/main/java/com/casic/birmm/inspect/vm/AuthenticateViewModel.kt @@ -8,6 +8,7 @@ import com.casic.birmm.inspect.utils.retrofit.RetrofitServiceManager import com.google.gson.Gson import com.google.gson.reflect.TypeToken +import com.pengxh.kt.lite.extensions.isNetworkConnected import com.pengxh.kt.lite.extensions.launch import com.pengxh.kt.lite.extensions.show import com.pengxh.kt.lite.vm.BaseViewModel @@ -20,7 +21,7 @@ private val gson by lazy { Gson() } val keyModel = MutableLiveData() - fun obtainPublicKey() = launch({ + fun getPublicKey() = launch({ val response = RetrofitServiceManager.getPublicKey() val responseCode = response.separateResponseCode() if (responseCode == 200) { @@ -31,6 +32,10 @@ response.toErrorMessage().show(BaseApplication.get()) } }, { - it.cause.toString().show(BaseApplication.get()) + if (BaseApplication.get().isNetworkConnected()) { + "连接服务器失败,IP或端口错误".show(BaseApplication.get()) + } else { + "网络连接失败".show(BaseApplication.get()) + } }) } \ No newline at end of file diff --git a/app/src/main/java/com/casic/birmm/inspect/vm/UserViewModel.kt b/app/src/main/java/com/casic/birmm/inspect/vm/UserViewModel.kt index a6ae8ab..3b4d099 100644 --- a/app/src/main/java/com/casic/birmm/inspect/vm/UserViewModel.kt +++ b/app/src/main/java/com/casic/birmm/inspect/vm/UserViewModel.kt @@ -10,6 +10,7 @@ import com.casic.birmm.inspect.utils.retrofit.RetrofitServiceManager import com.google.gson.Gson import com.google.gson.reflect.TypeToken +import com.pengxh.kt.lite.extensions.isNetworkConnected import com.pengxh.kt.lite.extensions.launch import com.pengxh.kt.lite.extensions.show import com.pengxh.kt.lite.vm.BaseViewModel @@ -27,9 +28,9 @@ val outResultModel = MutableLiveData() val updateResult = MutableLiveData() - fun getLoginResult(account: String, secretKey: String) = launch({ + fun login(account: String, secretKey: String) = launch({ loadState.value = LoadState.Loading - val response = RetrofitServiceManager.getLoginResult(account, secretKey) + val response = RetrofitServiceManager.login(account, secretKey) val responseCode = response.separateResponseCode() if (responseCode == 200) { loadState.value = LoadState.Success @@ -42,7 +43,11 @@ } }, { loadState.value = LoadState.Fail - it.cause.toString().show(BaseApplication.get()) + if (BaseApplication.get().isNetworkConnected()) { + "连接服务器失败,IP或端口错误".show(BaseApplication.get()) + } else { + "网络连接失败".show(BaseApplication.get()) + } }) fun getUserInfo() = launch({ diff --git a/app/src/main/res/drawable/button_main_selector.xml b/app/src/main/res/drawable/button_main_selector.xml index 5cbaea0..e636381 100644 --- a/app/src/main/res/drawable/button_main_selector.xml +++ b/app/src/main/res/drawable/button_main_selector.xml @@ -11,8 +11,8 @@ - - + + \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml index 139dc2a..e7cbf98 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -11,6 +11,7 @@ + diff --git a/app/src/main/java/com/casic/birmm/inspect/fragment/HomePageFragment.kt b/app/src/main/java/com/casic/birmm/inspect/fragment/HomePageFragment.kt index 91cd394..a757dfb 100644 --- a/app/src/main/java/com/casic/birmm/inspect/fragment/HomePageFragment.kt +++ b/app/src/main/java/com/casic/birmm/inspect/fragment/HomePageFragment.kt @@ -8,6 +8,7 @@ import android.graphics.Color import android.os.Bundle import android.os.Handler +import android.os.Message import android.os.Vibrator import android.util.Log import android.view.LayoutInflater @@ -37,10 +38,7 @@ import com.casic.birmm.inspect.vm.EventViewModel import com.casic.birmm.inspect.vm.InspectionViewModel import com.google.gson.Gson -import com.pengxh.kt.lite.extensions.navigatePageTo -import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.extensions.timestampToCompleteDate -import com.pengxh.kt.lite.extensions.timestampToDate +import com.pengxh.kt.lite.extensions.* import com.pengxh.kt.lite.utils.SaveKeyValues import com.pengxh.kt.lite.utils.WeakReferenceHandler import com.pengxh.kt.lite.utils.ble.BLEManager @@ -51,20 +49,15 @@ import com.pengxh.kt.lite.widget.dialog.AlertControlDialog import com.pengxh.kt.lite.widget.dialog.AlertInputDialog import com.pengxh.kt.lite.widget.dialog.BottomActionSheet -import com.qmuiteam.qmui.util.QMUIDisplayHelper import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet import kotlinx.android.synthetic.main.fragment_map_inspect.view.* import java.util.* @SuppressLint("MissingPermission") -class HomePageFragment : Fragment() { +class HomePageFragment : Fragment(), Handler.Callback { private val kTag = "HomePageFragment" private val gson by lazy { Gson() } - private val isOpenWarning = - SaveKeyValues.getValue(LocaleConstant.OPEN_WARNING, false) as Boolean - private val isAutoRecord = - SaveKeyValues.getValue(LocaleConstant.AUTO_RECORD, false) as Boolean private lateinit var homeView: View private lateinit var userData: UserInfoModel.DataModel private lateinit var vibrator: Vibrator @@ -88,7 +81,7 @@ homeView = inflater.inflate(R.layout.fragment_map_inspect, container, false) //根据不同设备状态栏高度设置statusBarView高度 - val statusBarHeight = QMUIDisplayHelper.getStatusBarHeight(requireContext()) + val statusBarHeight = requireContext().getStatusBarHeight() val params = homeView.statusBarView.layoutParams as LinearLayout.LayoutParams params.height = statusBarHeight homeView.statusBarView.setBackgroundColor(Color.parseColor("#D6EEFE")) @@ -109,7 +102,7 @@ val userModelJson = SaveKeyValues.getValue(LocaleConstant.USER_OBJECT, "") as String userData = gson.fromJson(userModelJson, UserInfoModel::class.java).data!! - weakReferenceHandler = WeakReferenceHandler(callback) + weakReferenceHandler = WeakReferenceHandler(this) if (BLEManager.initBLE(requireContext())) { if (!BLEManager.isBluetoothEnable()) { @@ -126,12 +119,10 @@ uiSettings.isRotateGesturesEnabled = false//不许地图随手势旋转角度 //显示定位小蓝点 locationStyle = MyLocationStyle() - locationStyle locationStyle.showMyLocation(true)//设置是否显示定位小蓝点 - locationStyle.interval(10 * 1000)////设置连续定位模式下的定位间隔,只在连续定位模式下生效。单位为毫秒 aMap.myLocationStyle = locationStyle aMap.isMyLocationEnabled = true - aMap.moveCamera(CameraUpdateFactory.zoomTo(14.toFloat())) + aMap.moveCamera(CameraUpdateFactory.zoomTo(16.toFloat())) initEvent() @@ -179,15 +170,14 @@ .setOnActionSheetListener(object : BottomActionSheet.OnActionSheetListener { override fun onActionItemClick(position: Int) { //获取当前定位 - val currentLng = SaveKeyValues.getValue( + val lng = SaveKeyValues.getValue( LocaleConstant.CURRENT_LONGITUDE, "0.0" ) as String - val currentLat = - SaveKeyValues.getValue(LocaleConstant.CURRENT_LATITUDE, "0.0") as String + val lat = SaveKeyValues.getValue( + LocaleConstant.CURRENT_LATITUDE, "0.0" + ) as String requireContext().navigatePageTo( - addAll( - position.toString(), model.id, model.name, currentLng, currentLat - ) + addAll(position.toString(), model.id, model.name, lng, lat) ) } }).build().show() @@ -303,7 +293,7 @@ } } - private val callback = Handler.Callback { msg -> + override fun handleMessage(msg: Message): Boolean { when (msg.what) { LocaleConstant.BLUETOOTH_ON -> { "蓝牙已开启".show(requireContext()) @@ -372,7 +362,7 @@ ) LocaleConstant.DISCONNECT_SUCCESS -> curConnectState = false } - true + return true } private fun startConnectDevice(device: BluetoothDevice) { @@ -529,11 +519,15 @@ homeView.settingsValueView.text = dataModel.alarmValue.toString() homeView.maxValueView.text = dataModel.maxPotency.toString() //判断是否需要报警 + val isOpenWarning = + SaveKeyValues.getValue(LocaleConstant.SINGLE_OPEN_WARNING, false) as Boolean if (isOpenWarning) { if (dataModel.potency >= dataModel.alarmValue) { //当前值大于设置值,需要报警 SoundPoolHelper.playSound(requireContext(), R.raw.alarm) vibrator.vibrate(1000) + val isAutoRecord = + SaveKeyValues.getValue(LocaleConstant.SINGLE_AUTO_RECORD, false) as Boolean if (isAutoRecord) { //如果连续超过10个报警,自动生成报警事件 alarmCount++ diff --git a/app/src/main/java/com/casic/birmm/inspect/fragment/QueryEventFragment.kt b/app/src/main/java/com/casic/birmm/inspect/fragment/QueryEventFragment.kt index 82a23c9..d134e0b 100644 --- a/app/src/main/java/com/casic/birmm/inspect/fragment/QueryEventFragment.kt +++ b/app/src/main/java/com/casic/birmm/inspect/fragment/QueryEventFragment.kt @@ -3,7 +3,6 @@ import android.os.Handler import androidx.lifecycle.ViewModelProvider import com.casic.birmm.inspect.R -import com.casic.birmm.inspect.extensions.addAll import com.casic.birmm.inspect.extensions.combineImagePath import com.casic.birmm.inspect.model.EventListModel import com.casic.birmm.inspect.view.EventDetailActivity @@ -11,9 +10,9 @@ import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseFragment -import com.pengxh.kt.lite.extensions.filterSpaceOrEnter import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show +import com.pengxh.kt.lite.extensions.toJson import com.pengxh.kt.lite.utils.WeakReferenceHandler import kotlinx.android.synthetic.main.fragment_query_event.* import kotlinx.android.synthetic.main.include_empty_view.* @@ -83,7 +82,6 @@ override fun onResume() { super.onResume() - pageIndex = 1 getEventList() } @@ -119,7 +117,7 @@ viewHolder.setText(R.id.inspectMsgView, item.name) .setText(R.id.inspectTypeView, "类型:${item.type}") - .setText(R.id.inspectDateView, "上报时间:${item.createTime}") + .setText(R.id.inspectDateView, "时间:${item.createTime}") } } eventRecyclerView.adapter = eventListAdapter @@ -128,11 +126,7 @@ override fun onItemClicked( position: Int, t: EventListModel.DataModel.RowsModel ) { - requireContext().navigatePageTo( - addAll( - t.createTime, t.description!!.filterSpaceOrEnter(), t.data, t.images - ) - ) + requireContext().navigatePageTo(t.toJson()) } }) } diff --git a/app/src/main/java/com/casic/birmm/inspect/single/fragment/HomePageFragment.kt b/app/src/main/java/com/casic/birmm/inspect/single/fragment/HomePageFragment.kt index 81ffffd..4a898ce 100644 --- a/app/src/main/java/com/casic/birmm/inspect/single/fragment/HomePageFragment.kt +++ b/app/src/main/java/com/casic/birmm/inspect/single/fragment/HomePageFragment.kt @@ -8,6 +8,7 @@ import android.graphics.Color import android.os.Bundle import android.os.Handler +import android.os.Message import android.os.Vibrator import android.util.Log import android.view.LayoutInflater @@ -33,10 +34,7 @@ import com.casic.birmm.inspect.utils.LocaleConstant import com.casic.birmm.inspect.utils.SoundPoolHelper import com.google.gson.Gson -import com.pengxh.kt.lite.extensions.navigatePageTo -import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.extensions.timestampToCompleteDate -import com.pengxh.kt.lite.extensions.timestampToDate +import com.pengxh.kt.lite.extensions.* import com.pengxh.kt.lite.utils.SaveKeyValues import com.pengxh.kt.lite.utils.WeakReferenceHandler import com.pengxh.kt.lite.utils.ble.BLEManager @@ -46,20 +44,15 @@ import com.pengxh.kt.lite.widget.dialog.AlertControlDialog import com.pengxh.kt.lite.widget.dialog.AlertInputDialog import com.pengxh.kt.lite.widget.dialog.BottomActionSheet -import com.qmuiteam.qmui.util.QMUIDisplayHelper import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet import kotlinx.android.synthetic.main.single_fragment_map_inspect.view.* import java.util.* @SuppressLint("MissingPermission") -class HomePageFragment : Fragment() { +class HomePageFragment : Fragment(), Handler.Callback { private val kTag = "HomePageFragment" private val gson by lazy { Gson() } - private val isOpenWarning = - SaveKeyValues.getValue(LocaleConstant.SINGLE_OPEN_WARNING, false) as Boolean - private val isAutoRecord = - SaveKeyValues.getValue(LocaleConstant.SINGLE_AUTO_RECORD, false) as Boolean private lateinit var homeView: View private lateinit var vibrator: Vibrator private lateinit var aMap: AMap @@ -80,14 +73,14 @@ homeView = inflater.inflate(R.layout.single_fragment_map_inspect, container, false) //根据不同设备状态栏高度设置statusBarView高度 - val statusBarHeight = QMUIDisplayHelper.getStatusBarHeight(requireContext()) + val statusBarHeight = requireContext().getStatusBarHeight() val params = homeView.statusBarView.layoutParams as LinearLayout.LayoutParams params.height = statusBarHeight homeView.statusBarView.setBackgroundColor(Color.parseColor("#D6EEFE")) homeView.statusBarView.requestLayout() vibrator = requireContext().getSystemService(Context.VIBRATOR_SERVICE) as Vibrator - weakReferenceHandler = WeakReferenceHandler(callback) + weakReferenceHandler = WeakReferenceHandler(this) if (BLEManager.initBLE(requireContext())) { if (!BLEManager.isBluetoothEnable()) { @@ -104,12 +97,10 @@ uiSettings.isRotateGesturesEnabled = false//不许地图随手势旋转角度 //显示定位小蓝点 locationStyle = MyLocationStyle() - locationStyle locationStyle.showMyLocation(true)//设置是否显示定位小蓝点 - locationStyle.interval(10 * 1000)////设置连续定位模式下的定位间隔,只在连续定位模式下生效。单位为毫秒 aMap.myLocationStyle = locationStyle aMap.isMyLocationEnabled = true - aMap.moveCamera(CameraUpdateFactory.zoomTo(14.toFloat())) + aMap.moveCamera(CameraUpdateFactory.zoomTo(16.toFloat())) initEvent() @@ -157,15 +148,14 @@ .setOnActionSheetListener(object : BottomActionSheet.OnActionSheetListener { override fun onActionItemClick(position: Int) { //获取当前定位 - val currentLng = SaveKeyValues.getValue( + val lng = SaveKeyValues.getValue( LocaleConstant.CURRENT_LONGITUDE, "0.0" ) as String - val currentLat = - SaveKeyValues.getValue(LocaleConstant.CURRENT_LATITUDE, "0.0") as String + val lat = SaveKeyValues.getValue( + LocaleConstant.CURRENT_LATITUDE, "0.0" + ) as String requireContext().navigatePageTo( - addAll( - position.toString(), model.id, model.name, currentLng, currentLat - ) + addAll(position.toString(), model.id, model.name, lng, lat) ) } }).build().show() @@ -281,7 +271,7 @@ } } - private val callback = Handler.Callback { msg -> + override fun handleMessage(msg: Message): Boolean { when (msg.what) { LocaleConstant.BLUETOOTH_ON -> { "蓝牙已开启".show(requireContext()) @@ -350,7 +340,7 @@ ) LocaleConstant.DISCONNECT_SUCCESS -> curConnectState = false } - true + return true } private fun startConnectDevice(device: BluetoothDevice) { @@ -502,11 +492,15 @@ homeView.settingsValueView.text = dataModel.alarmValue.toString() homeView.maxValueView.text = dataModel.maxPotency.toString() //判断是否需要报警 + val isOpenWarning = + SaveKeyValues.getValue(LocaleConstant.SINGLE_OPEN_WARNING, false) as Boolean if (isOpenWarning) { if (dataModel.potency >= dataModel.alarmValue) { //当前值大于设置值,需要报警 SoundPoolHelper.playSound(requireContext(), R.raw.alarm) vibrator.vibrate(1000) + val isAutoRecord = + SaveKeyValues.getValue(LocaleConstant.SINGLE_AUTO_RECORD, false) as Boolean if (isAutoRecord) { //如果连续超过10个报警,自动生成报警事件 alarmCount++ diff --git a/app/src/main/java/com/casic/birmm/inspect/single/fragment/QueryEventFragment.kt b/app/src/main/java/com/casic/birmm/inspect/single/fragment/QueryEventFragment.kt index 96dba16..812d329 100644 --- a/app/src/main/java/com/casic/birmm/inspect/single/fragment/QueryEventFragment.kt +++ b/app/src/main/java/com/casic/birmm/inspect/single/fragment/QueryEventFragment.kt @@ -3,15 +3,14 @@ import androidx.lifecycle.lifecycleScope import com.bumptech.glide.Glide import com.casic.birmm.inspect.R -import com.casic.birmm.inspect.extensions.addAll import com.casic.birmm.inspect.model.EventListModel import com.casic.birmm.inspect.single.view.EventDetailActivity import com.casic.birmm.inspect.utils.DataBaseManager import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseFragment -import com.pengxh.kt.lite.extensions.filterSpaceOrEnter import com.pengxh.kt.lite.extensions.navigatePageTo +import com.pengxh.kt.lite.extensions.toJson import kotlinx.android.synthetic.main.include_empty_view.* import kotlinx.android.synthetic.main.single_fragment_query_event.* import kotlinx.coroutines.Dispatchers @@ -41,8 +40,7 @@ R.layout.item_event_rv_l, dataBeans ) { override fun convertView( - viewHolder: ViewHolder, - position: Int, + viewHolder: ViewHolder, position: Int, item: EventListModel.DataModel.RowsModel ) { if (!item.images.isNullOrBlank()) { @@ -61,22 +59,15 @@ } viewHolder.setText(R.id.inspectMsgView, item.name) - .setText(R.id.inspectMsgView, "类型:${item.type}") - .setText(R.id.inspectMsgView, "上报时间:${item.createTime}") + .setText(R.id.inspectTypeView, "类型:${item.type}") + .setText(R.id.inspectDateView, "时间:${item.createTime}") } } eventRecyclerView.adapter = eventListAdapter eventListAdapter.setOnItemClickedListener(object : NormalRecyclerAdapter.OnItemClickedListener { override fun onItemClicked(position: Int, t: EventListModel.DataModel.RowsModel) { - requireContext().navigatePageTo( - addAll( - t.createTime.toString(), - t.description!!.filterSpaceOrEnter(), - t.data.toString(), - t.images.toString() - ) - ) + requireContext().navigatePageTo(t.toJson()) } }) } diff --git a/app/src/main/java/com/casic/birmm/inspect/single/view/EventDetailActivity.kt b/app/src/main/java/com/casic/birmm/inspect/single/view/EventDetailActivity.kt index f00bbae..b7d59e8 100644 --- a/app/src/main/java/com/casic/birmm/inspect/single/view/EventDetailActivity.kt +++ b/app/src/main/java/com/casic/birmm/inspect/single/view/EventDetailActivity.kt @@ -2,7 +2,10 @@ import androidx.core.content.ContextCompat import com.casic.birmm.inspect.R +import com.casic.birmm.inspect.model.EventListModel import com.casic.birmm.inspect.view.BigImageActivity +import com.google.gson.Gson +import com.google.gson.reflect.TypeToken import com.gyf.immersionbar.ImmersionBar import com.pengxh.kt.lite.adapter.ReadOnlyImageAdapter import com.pengxh.kt.lite.base.KotlinBaseActivity @@ -15,12 +18,17 @@ class EventDetailActivity : KotlinBaseActivity() { - override fun initData() { - val args = intent.getStringArrayListExtra(Constant.INTENT_PARAM)!! + private val gson by lazy { Gson() } - createTimeView.text = args[0] - descriptionView.text = args[1] - val data = args[2] + override fun initData() { + val args = intent.getStringExtra(Constant.INTENT_PARAM)!! + val model = gson.fromJson( + args, object : TypeToken() {}.type + ) + + createTimeView.text = model.createTime + descriptionView.text = model.description + val data = model.data val value = if (data.isNullOrBlank()) { "0.0" } else { @@ -28,7 +36,7 @@ } dataView.text = value - val images = args[3] + val images = model.images /** * images: 2020-12/6528aeb21cff426c91c43a7f8b716d1e.jpg diff --git a/app/src/main/java/com/casic/birmm/inspect/single/view/NewEventActivity.kt b/app/src/main/java/com/casic/birmm/inspect/single/view/NewEventActivity.kt index b77a8f2..7e4f7e7 100644 --- a/app/src/main/java/com/casic/birmm/inspect/single/view/NewEventActivity.kt +++ b/app/src/main/java/com/casic/birmm/inspect/single/view/NewEventActivity.kt @@ -39,7 +39,7 @@ private var isWarning: Boolean = true private var longitude: Double = 0.0 private var latitude: Double = 0.0 - private var data = -1.0//泄露默认值 + private var data = 0.0//泄露默认值 override fun initData() { diff --git a/app/src/main/java/com/casic/birmm/inspect/utils/retrofit/RetrofitService.kt b/app/src/main/java/com/casic/birmm/inspect/utils/retrofit/RetrofitService.kt index 1281613..cfd24bd 100644 --- a/app/src/main/java/com/casic/birmm/inspect/utils/retrofit/RetrofitService.kt +++ b/app/src/main/java/com/casic/birmm/inspect/utils/retrofit/RetrofitService.kt @@ -16,7 +16,7 @@ */ @FormUrlEncoded @POST("/user/appLogin") - suspend fun getLoginResult( + suspend fun login( @Field("username") account: String, @Field("password") secretKey: String ): String diff --git a/app/src/main/java/com/casic/birmm/inspect/utils/retrofit/RetrofitServiceManager.kt b/app/src/main/java/com/casic/birmm/inspect/utils/retrofit/RetrofitServiceManager.kt index 4c1f278..324cf23 100644 --- a/app/src/main/java/com/casic/birmm/inspect/utils/retrofit/RetrofitServiceManager.kt +++ b/app/src/main/java/com/casic/birmm/inspect/utils/retrofit/RetrofitServiceManager.kt @@ -28,8 +28,8 @@ /** * 登录并获取Token */ - suspend fun getLoginResult(account: String, secretKey: String): String { - return api.getLoginResult(account, secretKey) + suspend fun login(account: String, secretKey: String): String { + return api.login(account, secretKey) } /** diff --git a/app/src/main/java/com/casic/birmm/inspect/view/EventDetailActivity.kt b/app/src/main/java/com/casic/birmm/inspect/view/EventDetailActivity.kt index 6f3d166..5dd7f86 100644 --- a/app/src/main/java/com/casic/birmm/inspect/view/EventDetailActivity.kt +++ b/app/src/main/java/com/casic/birmm/inspect/view/EventDetailActivity.kt @@ -3,6 +3,9 @@ import androidx.core.content.ContextCompat import com.casic.birmm.inspect.R import com.casic.birmm.inspect.extensions.combineImagePath +import com.casic.birmm.inspect.model.EventListModel +import com.google.gson.Gson +import com.google.gson.reflect.TypeToken import com.gyf.immersionbar.ImmersionBar import com.pengxh.kt.lite.adapter.ReadOnlyImageAdapter import com.pengxh.kt.lite.base.KotlinBaseActivity @@ -16,6 +19,8 @@ class EventDetailActivity : KotlinBaseActivity() { + private val gson by lazy { Gson() } + override fun initLayoutView(): Int = R.layout.activity_event_detail override fun setupTopBarLayout() { @@ -29,11 +34,14 @@ } override fun initData() { - val args = intent.getStringArrayListExtra(Constant.INTENT_PARAM)!! + val args = intent.getStringExtra(Constant.INTENT_PARAM)!! + val model = gson.fromJson( + args, object : TypeToken() {}.type + ) - createTimeView.text = args[0] - descriptionView.text = args[1] - val data = args[2] + createTimeView.text = model.createTime + descriptionView.text = model.description + val data = model.data val value = if (data.isNullOrBlank()) { "0.0" } else { @@ -41,7 +49,7 @@ } dataView.text = value - val images = args[3] + val images = model.images /** * images: 2020-12/6528aeb21cff426c91c43a7f8b716d1e.jpg diff --git a/app/src/main/java/com/casic/birmm/inspect/view/LoginActivity.kt b/app/src/main/java/com/casic/birmm/inspect/view/LoginActivity.kt index b34abf4..cac1d23 100644 --- a/app/src/main/java/com/casic/birmm/inspect/view/LoginActivity.kt +++ b/app/src/main/java/com/casic/birmm/inspect/view/LoginActivity.kt @@ -83,7 +83,7 @@ SaveKeyValues.putValue(LocaleConstant.ACCOUNT, account) SaveKeyValues.putValue(LocaleConstant.PASSWORD, userPassword) - authenticateViewModel.obtainPublicKey() + authenticateViewModel.getPublicKey() authenticateViewModel.keyModel.observe(this) { if (it.code == 200) {//用code判断,别的判断可能有坑 val keyString = it.data!!.publicKey!! @@ -93,11 +93,12 @@ AuthenticationHelper.savePublicKey(keyString) val publicKey = RSAUtils.keyStrToPublicKey(keyString) - val dataByPublicKey = - RSAUtils.encryptDataByPublicKey(userPassword.toByteArray(), publicKey!!) + val dataByPublicKey = RSAUtils.encryptDataByPublicKey( + userPassword.toByteArray(), publicKey!! + ) //登录并获取Token,POST请求 - userViewModel.getLoginResult(account = account, secretKey = dataByPublicKey) + userViewModel.login(account, dataByPublicKey) userViewModel.loginResult.observe(this) { loginResult -> if (loginResult.code == 200) { AuthenticationHelper.saveToken(loginResult.data!!.token!!) diff --git a/app/src/main/java/com/casic/birmm/inspect/view/NewEventActivity.kt b/app/src/main/java/com/casic/birmm/inspect/view/NewEventActivity.kt index 8ea8a75..2593394 100644 --- a/app/src/main/java/com/casic/birmm/inspect/view/NewEventActivity.kt +++ b/app/src/main/java/com/casic/birmm/inspect/view/NewEventActivity.kt @@ -57,7 +57,7 @@ private lateinit var inspectionName: String private var longitude: Double = 0.0 private var latitude: Double = 0.0 - private var data = -1.0//泄露默认值 + private var data = 0.0//泄露默认值 private lateinit var type: String private lateinit var userModel: UserInfoModel diff --git a/app/src/main/java/com/casic/birmm/inspect/vm/AuthenticateViewModel.kt b/app/src/main/java/com/casic/birmm/inspect/vm/AuthenticateViewModel.kt index 572caee..3a9ae79 100644 --- a/app/src/main/java/com/casic/birmm/inspect/vm/AuthenticateViewModel.kt +++ b/app/src/main/java/com/casic/birmm/inspect/vm/AuthenticateViewModel.kt @@ -8,6 +8,7 @@ import com.casic.birmm.inspect.utils.retrofit.RetrofitServiceManager import com.google.gson.Gson import com.google.gson.reflect.TypeToken +import com.pengxh.kt.lite.extensions.isNetworkConnected import com.pengxh.kt.lite.extensions.launch import com.pengxh.kt.lite.extensions.show import com.pengxh.kt.lite.vm.BaseViewModel @@ -20,7 +21,7 @@ private val gson by lazy { Gson() } val keyModel = MutableLiveData() - fun obtainPublicKey() = launch({ + fun getPublicKey() = launch({ val response = RetrofitServiceManager.getPublicKey() val responseCode = response.separateResponseCode() if (responseCode == 200) { @@ -31,6 +32,10 @@ response.toErrorMessage().show(BaseApplication.get()) } }, { - it.cause.toString().show(BaseApplication.get()) + if (BaseApplication.get().isNetworkConnected()) { + "连接服务器失败,IP或端口错误".show(BaseApplication.get()) + } else { + "网络连接失败".show(BaseApplication.get()) + } }) } \ No newline at end of file diff --git a/app/src/main/java/com/casic/birmm/inspect/vm/UserViewModel.kt b/app/src/main/java/com/casic/birmm/inspect/vm/UserViewModel.kt index a6ae8ab..3b4d099 100644 --- a/app/src/main/java/com/casic/birmm/inspect/vm/UserViewModel.kt +++ b/app/src/main/java/com/casic/birmm/inspect/vm/UserViewModel.kt @@ -10,6 +10,7 @@ import com.casic.birmm.inspect.utils.retrofit.RetrofitServiceManager import com.google.gson.Gson import com.google.gson.reflect.TypeToken +import com.pengxh.kt.lite.extensions.isNetworkConnected import com.pengxh.kt.lite.extensions.launch import com.pengxh.kt.lite.extensions.show import com.pengxh.kt.lite.vm.BaseViewModel @@ -27,9 +28,9 @@ val outResultModel = MutableLiveData() val updateResult = MutableLiveData() - fun getLoginResult(account: String, secretKey: String) = launch({ + fun login(account: String, secretKey: String) = launch({ loadState.value = LoadState.Loading - val response = RetrofitServiceManager.getLoginResult(account, secretKey) + val response = RetrofitServiceManager.login(account, secretKey) val responseCode = response.separateResponseCode() if (responseCode == 200) { loadState.value = LoadState.Success @@ -42,7 +43,11 @@ } }, { loadState.value = LoadState.Fail - it.cause.toString().show(BaseApplication.get()) + if (BaseApplication.get().isNetworkConnected()) { + "连接服务器失败,IP或端口错误".show(BaseApplication.get()) + } else { + "网络连接失败".show(BaseApplication.get()) + } }) fun getUserInfo() = launch({ diff --git a/app/src/main/res/drawable/button_main_selector.xml b/app/src/main/res/drawable/button_main_selector.xml index 5cbaea0..e636381 100644 --- a/app/src/main/res/drawable/button_main_selector.xml +++ b/app/src/main/res/drawable/button_main_selector.xml @@ -11,8 +11,8 @@ - - + + \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_map_inspect.xml b/app/src/main/res/layout/fragment_map_inspect.xml index ce2b604..b48c80a 100644 --- a/app/src/main/res/layout/fragment_map_inspect.xml +++ b/app/src/main/res/layout/fragment_map_inspect.xml @@ -47,7 +47,7 @@ android:layout_width="0dp" android:layout_height="wrap_content" android:layout_marginEnd="5dp" - android:hint="巡检记录" + android:hint="未开始巡检" android:paddingVertical="3dp" android:singleLine="true" android:textColor="@color/black" @@ -62,7 +62,6 @@ android:layout_height="wrap_content" android:layout_marginStart="5dp" android:paddingVertical="3dp" - android:hint="yyyy-MM-dd HH:mm:ss" android:textColor="@color/black" android:textSize="@dimen/sp_14" app:layout_constraintEnd_toEndOf="parent" diff --git a/.idea/misc.xml b/.idea/misc.xml index 139dc2a..e7cbf98 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -11,6 +11,7 @@ + diff --git a/app/src/main/java/com/casic/birmm/inspect/fragment/HomePageFragment.kt b/app/src/main/java/com/casic/birmm/inspect/fragment/HomePageFragment.kt index 91cd394..a757dfb 100644 --- a/app/src/main/java/com/casic/birmm/inspect/fragment/HomePageFragment.kt +++ b/app/src/main/java/com/casic/birmm/inspect/fragment/HomePageFragment.kt @@ -8,6 +8,7 @@ import android.graphics.Color import android.os.Bundle import android.os.Handler +import android.os.Message import android.os.Vibrator import android.util.Log import android.view.LayoutInflater @@ -37,10 +38,7 @@ import com.casic.birmm.inspect.vm.EventViewModel import com.casic.birmm.inspect.vm.InspectionViewModel import com.google.gson.Gson -import com.pengxh.kt.lite.extensions.navigatePageTo -import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.extensions.timestampToCompleteDate -import com.pengxh.kt.lite.extensions.timestampToDate +import com.pengxh.kt.lite.extensions.* import com.pengxh.kt.lite.utils.SaveKeyValues import com.pengxh.kt.lite.utils.WeakReferenceHandler import com.pengxh.kt.lite.utils.ble.BLEManager @@ -51,20 +49,15 @@ import com.pengxh.kt.lite.widget.dialog.AlertControlDialog import com.pengxh.kt.lite.widget.dialog.AlertInputDialog import com.pengxh.kt.lite.widget.dialog.BottomActionSheet -import com.qmuiteam.qmui.util.QMUIDisplayHelper import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet import kotlinx.android.synthetic.main.fragment_map_inspect.view.* import java.util.* @SuppressLint("MissingPermission") -class HomePageFragment : Fragment() { +class HomePageFragment : Fragment(), Handler.Callback { private val kTag = "HomePageFragment" private val gson by lazy { Gson() } - private val isOpenWarning = - SaveKeyValues.getValue(LocaleConstant.OPEN_WARNING, false) as Boolean - private val isAutoRecord = - SaveKeyValues.getValue(LocaleConstant.AUTO_RECORD, false) as Boolean private lateinit var homeView: View private lateinit var userData: UserInfoModel.DataModel private lateinit var vibrator: Vibrator @@ -88,7 +81,7 @@ homeView = inflater.inflate(R.layout.fragment_map_inspect, container, false) //根据不同设备状态栏高度设置statusBarView高度 - val statusBarHeight = QMUIDisplayHelper.getStatusBarHeight(requireContext()) + val statusBarHeight = requireContext().getStatusBarHeight() val params = homeView.statusBarView.layoutParams as LinearLayout.LayoutParams params.height = statusBarHeight homeView.statusBarView.setBackgroundColor(Color.parseColor("#D6EEFE")) @@ -109,7 +102,7 @@ val userModelJson = SaveKeyValues.getValue(LocaleConstant.USER_OBJECT, "") as String userData = gson.fromJson(userModelJson, UserInfoModel::class.java).data!! - weakReferenceHandler = WeakReferenceHandler(callback) + weakReferenceHandler = WeakReferenceHandler(this) if (BLEManager.initBLE(requireContext())) { if (!BLEManager.isBluetoothEnable()) { @@ -126,12 +119,10 @@ uiSettings.isRotateGesturesEnabled = false//不许地图随手势旋转角度 //显示定位小蓝点 locationStyle = MyLocationStyle() - locationStyle locationStyle.showMyLocation(true)//设置是否显示定位小蓝点 - locationStyle.interval(10 * 1000)////设置连续定位模式下的定位间隔,只在连续定位模式下生效。单位为毫秒 aMap.myLocationStyle = locationStyle aMap.isMyLocationEnabled = true - aMap.moveCamera(CameraUpdateFactory.zoomTo(14.toFloat())) + aMap.moveCamera(CameraUpdateFactory.zoomTo(16.toFloat())) initEvent() @@ -179,15 +170,14 @@ .setOnActionSheetListener(object : BottomActionSheet.OnActionSheetListener { override fun onActionItemClick(position: Int) { //获取当前定位 - val currentLng = SaveKeyValues.getValue( + val lng = SaveKeyValues.getValue( LocaleConstant.CURRENT_LONGITUDE, "0.0" ) as String - val currentLat = - SaveKeyValues.getValue(LocaleConstant.CURRENT_LATITUDE, "0.0") as String + val lat = SaveKeyValues.getValue( + LocaleConstant.CURRENT_LATITUDE, "0.0" + ) as String requireContext().navigatePageTo( - addAll( - position.toString(), model.id, model.name, currentLng, currentLat - ) + addAll(position.toString(), model.id, model.name, lng, lat) ) } }).build().show() @@ -303,7 +293,7 @@ } } - private val callback = Handler.Callback { msg -> + override fun handleMessage(msg: Message): Boolean { when (msg.what) { LocaleConstant.BLUETOOTH_ON -> { "蓝牙已开启".show(requireContext()) @@ -372,7 +362,7 @@ ) LocaleConstant.DISCONNECT_SUCCESS -> curConnectState = false } - true + return true } private fun startConnectDevice(device: BluetoothDevice) { @@ -529,11 +519,15 @@ homeView.settingsValueView.text = dataModel.alarmValue.toString() homeView.maxValueView.text = dataModel.maxPotency.toString() //判断是否需要报警 + val isOpenWarning = + SaveKeyValues.getValue(LocaleConstant.SINGLE_OPEN_WARNING, false) as Boolean if (isOpenWarning) { if (dataModel.potency >= dataModel.alarmValue) { //当前值大于设置值,需要报警 SoundPoolHelper.playSound(requireContext(), R.raw.alarm) vibrator.vibrate(1000) + val isAutoRecord = + SaveKeyValues.getValue(LocaleConstant.SINGLE_AUTO_RECORD, false) as Boolean if (isAutoRecord) { //如果连续超过10个报警,自动生成报警事件 alarmCount++ diff --git a/app/src/main/java/com/casic/birmm/inspect/fragment/QueryEventFragment.kt b/app/src/main/java/com/casic/birmm/inspect/fragment/QueryEventFragment.kt index 82a23c9..d134e0b 100644 --- a/app/src/main/java/com/casic/birmm/inspect/fragment/QueryEventFragment.kt +++ b/app/src/main/java/com/casic/birmm/inspect/fragment/QueryEventFragment.kt @@ -3,7 +3,6 @@ import android.os.Handler import androidx.lifecycle.ViewModelProvider import com.casic.birmm.inspect.R -import com.casic.birmm.inspect.extensions.addAll import com.casic.birmm.inspect.extensions.combineImagePath import com.casic.birmm.inspect.model.EventListModel import com.casic.birmm.inspect.view.EventDetailActivity @@ -11,9 +10,9 @@ import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseFragment -import com.pengxh.kt.lite.extensions.filterSpaceOrEnter import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show +import com.pengxh.kt.lite.extensions.toJson import com.pengxh.kt.lite.utils.WeakReferenceHandler import kotlinx.android.synthetic.main.fragment_query_event.* import kotlinx.android.synthetic.main.include_empty_view.* @@ -83,7 +82,6 @@ override fun onResume() { super.onResume() - pageIndex = 1 getEventList() } @@ -119,7 +117,7 @@ viewHolder.setText(R.id.inspectMsgView, item.name) .setText(R.id.inspectTypeView, "类型:${item.type}") - .setText(R.id.inspectDateView, "上报时间:${item.createTime}") + .setText(R.id.inspectDateView, "时间:${item.createTime}") } } eventRecyclerView.adapter = eventListAdapter @@ -128,11 +126,7 @@ override fun onItemClicked( position: Int, t: EventListModel.DataModel.RowsModel ) { - requireContext().navigatePageTo( - addAll( - t.createTime, t.description!!.filterSpaceOrEnter(), t.data, t.images - ) - ) + requireContext().navigatePageTo(t.toJson()) } }) } diff --git a/app/src/main/java/com/casic/birmm/inspect/single/fragment/HomePageFragment.kt b/app/src/main/java/com/casic/birmm/inspect/single/fragment/HomePageFragment.kt index 81ffffd..4a898ce 100644 --- a/app/src/main/java/com/casic/birmm/inspect/single/fragment/HomePageFragment.kt +++ b/app/src/main/java/com/casic/birmm/inspect/single/fragment/HomePageFragment.kt @@ -8,6 +8,7 @@ import android.graphics.Color import android.os.Bundle import android.os.Handler +import android.os.Message import android.os.Vibrator import android.util.Log import android.view.LayoutInflater @@ -33,10 +34,7 @@ import com.casic.birmm.inspect.utils.LocaleConstant import com.casic.birmm.inspect.utils.SoundPoolHelper import com.google.gson.Gson -import com.pengxh.kt.lite.extensions.navigatePageTo -import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.extensions.timestampToCompleteDate -import com.pengxh.kt.lite.extensions.timestampToDate +import com.pengxh.kt.lite.extensions.* import com.pengxh.kt.lite.utils.SaveKeyValues import com.pengxh.kt.lite.utils.WeakReferenceHandler import com.pengxh.kt.lite.utils.ble.BLEManager @@ -46,20 +44,15 @@ import com.pengxh.kt.lite.widget.dialog.AlertControlDialog import com.pengxh.kt.lite.widget.dialog.AlertInputDialog import com.pengxh.kt.lite.widget.dialog.BottomActionSheet -import com.qmuiteam.qmui.util.QMUIDisplayHelper import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet import kotlinx.android.synthetic.main.single_fragment_map_inspect.view.* import java.util.* @SuppressLint("MissingPermission") -class HomePageFragment : Fragment() { +class HomePageFragment : Fragment(), Handler.Callback { private val kTag = "HomePageFragment" private val gson by lazy { Gson() } - private val isOpenWarning = - SaveKeyValues.getValue(LocaleConstant.SINGLE_OPEN_WARNING, false) as Boolean - private val isAutoRecord = - SaveKeyValues.getValue(LocaleConstant.SINGLE_AUTO_RECORD, false) as Boolean private lateinit var homeView: View private lateinit var vibrator: Vibrator private lateinit var aMap: AMap @@ -80,14 +73,14 @@ homeView = inflater.inflate(R.layout.single_fragment_map_inspect, container, false) //根据不同设备状态栏高度设置statusBarView高度 - val statusBarHeight = QMUIDisplayHelper.getStatusBarHeight(requireContext()) + val statusBarHeight = requireContext().getStatusBarHeight() val params = homeView.statusBarView.layoutParams as LinearLayout.LayoutParams params.height = statusBarHeight homeView.statusBarView.setBackgroundColor(Color.parseColor("#D6EEFE")) homeView.statusBarView.requestLayout() vibrator = requireContext().getSystemService(Context.VIBRATOR_SERVICE) as Vibrator - weakReferenceHandler = WeakReferenceHandler(callback) + weakReferenceHandler = WeakReferenceHandler(this) if (BLEManager.initBLE(requireContext())) { if (!BLEManager.isBluetoothEnable()) { @@ -104,12 +97,10 @@ uiSettings.isRotateGesturesEnabled = false//不许地图随手势旋转角度 //显示定位小蓝点 locationStyle = MyLocationStyle() - locationStyle locationStyle.showMyLocation(true)//设置是否显示定位小蓝点 - locationStyle.interval(10 * 1000)////设置连续定位模式下的定位间隔,只在连续定位模式下生效。单位为毫秒 aMap.myLocationStyle = locationStyle aMap.isMyLocationEnabled = true - aMap.moveCamera(CameraUpdateFactory.zoomTo(14.toFloat())) + aMap.moveCamera(CameraUpdateFactory.zoomTo(16.toFloat())) initEvent() @@ -157,15 +148,14 @@ .setOnActionSheetListener(object : BottomActionSheet.OnActionSheetListener { override fun onActionItemClick(position: Int) { //获取当前定位 - val currentLng = SaveKeyValues.getValue( + val lng = SaveKeyValues.getValue( LocaleConstant.CURRENT_LONGITUDE, "0.0" ) as String - val currentLat = - SaveKeyValues.getValue(LocaleConstant.CURRENT_LATITUDE, "0.0") as String + val lat = SaveKeyValues.getValue( + LocaleConstant.CURRENT_LATITUDE, "0.0" + ) as String requireContext().navigatePageTo( - addAll( - position.toString(), model.id, model.name, currentLng, currentLat - ) + addAll(position.toString(), model.id, model.name, lng, lat) ) } }).build().show() @@ -281,7 +271,7 @@ } } - private val callback = Handler.Callback { msg -> + override fun handleMessage(msg: Message): Boolean { when (msg.what) { LocaleConstant.BLUETOOTH_ON -> { "蓝牙已开启".show(requireContext()) @@ -350,7 +340,7 @@ ) LocaleConstant.DISCONNECT_SUCCESS -> curConnectState = false } - true + return true } private fun startConnectDevice(device: BluetoothDevice) { @@ -502,11 +492,15 @@ homeView.settingsValueView.text = dataModel.alarmValue.toString() homeView.maxValueView.text = dataModel.maxPotency.toString() //判断是否需要报警 + val isOpenWarning = + SaveKeyValues.getValue(LocaleConstant.SINGLE_OPEN_WARNING, false) as Boolean if (isOpenWarning) { if (dataModel.potency >= dataModel.alarmValue) { //当前值大于设置值,需要报警 SoundPoolHelper.playSound(requireContext(), R.raw.alarm) vibrator.vibrate(1000) + val isAutoRecord = + SaveKeyValues.getValue(LocaleConstant.SINGLE_AUTO_RECORD, false) as Boolean if (isAutoRecord) { //如果连续超过10个报警,自动生成报警事件 alarmCount++ diff --git a/app/src/main/java/com/casic/birmm/inspect/single/fragment/QueryEventFragment.kt b/app/src/main/java/com/casic/birmm/inspect/single/fragment/QueryEventFragment.kt index 96dba16..812d329 100644 --- a/app/src/main/java/com/casic/birmm/inspect/single/fragment/QueryEventFragment.kt +++ b/app/src/main/java/com/casic/birmm/inspect/single/fragment/QueryEventFragment.kt @@ -3,15 +3,14 @@ import androidx.lifecycle.lifecycleScope import com.bumptech.glide.Glide import com.casic.birmm.inspect.R -import com.casic.birmm.inspect.extensions.addAll import com.casic.birmm.inspect.model.EventListModel import com.casic.birmm.inspect.single.view.EventDetailActivity import com.casic.birmm.inspect.utils.DataBaseManager import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseFragment -import com.pengxh.kt.lite.extensions.filterSpaceOrEnter import com.pengxh.kt.lite.extensions.navigatePageTo +import com.pengxh.kt.lite.extensions.toJson import kotlinx.android.synthetic.main.include_empty_view.* import kotlinx.android.synthetic.main.single_fragment_query_event.* import kotlinx.coroutines.Dispatchers @@ -41,8 +40,7 @@ R.layout.item_event_rv_l, dataBeans ) { override fun convertView( - viewHolder: ViewHolder, - position: Int, + viewHolder: ViewHolder, position: Int, item: EventListModel.DataModel.RowsModel ) { if (!item.images.isNullOrBlank()) { @@ -61,22 +59,15 @@ } viewHolder.setText(R.id.inspectMsgView, item.name) - .setText(R.id.inspectMsgView, "类型:${item.type}") - .setText(R.id.inspectMsgView, "上报时间:${item.createTime}") + .setText(R.id.inspectTypeView, "类型:${item.type}") + .setText(R.id.inspectDateView, "时间:${item.createTime}") } } eventRecyclerView.adapter = eventListAdapter eventListAdapter.setOnItemClickedListener(object : NormalRecyclerAdapter.OnItemClickedListener { override fun onItemClicked(position: Int, t: EventListModel.DataModel.RowsModel) { - requireContext().navigatePageTo( - addAll( - t.createTime.toString(), - t.description!!.filterSpaceOrEnter(), - t.data.toString(), - t.images.toString() - ) - ) + requireContext().navigatePageTo(t.toJson()) } }) } diff --git a/app/src/main/java/com/casic/birmm/inspect/single/view/EventDetailActivity.kt b/app/src/main/java/com/casic/birmm/inspect/single/view/EventDetailActivity.kt index f00bbae..b7d59e8 100644 --- a/app/src/main/java/com/casic/birmm/inspect/single/view/EventDetailActivity.kt +++ b/app/src/main/java/com/casic/birmm/inspect/single/view/EventDetailActivity.kt @@ -2,7 +2,10 @@ import androidx.core.content.ContextCompat import com.casic.birmm.inspect.R +import com.casic.birmm.inspect.model.EventListModel import com.casic.birmm.inspect.view.BigImageActivity +import com.google.gson.Gson +import com.google.gson.reflect.TypeToken import com.gyf.immersionbar.ImmersionBar import com.pengxh.kt.lite.adapter.ReadOnlyImageAdapter import com.pengxh.kt.lite.base.KotlinBaseActivity @@ -15,12 +18,17 @@ class EventDetailActivity : KotlinBaseActivity() { - override fun initData() { - val args = intent.getStringArrayListExtra(Constant.INTENT_PARAM)!! + private val gson by lazy { Gson() } - createTimeView.text = args[0] - descriptionView.text = args[1] - val data = args[2] + override fun initData() { + val args = intent.getStringExtra(Constant.INTENT_PARAM)!! + val model = gson.fromJson( + args, object : TypeToken() {}.type + ) + + createTimeView.text = model.createTime + descriptionView.text = model.description + val data = model.data val value = if (data.isNullOrBlank()) { "0.0" } else { @@ -28,7 +36,7 @@ } dataView.text = value - val images = args[3] + val images = model.images /** * images: 2020-12/6528aeb21cff426c91c43a7f8b716d1e.jpg diff --git a/app/src/main/java/com/casic/birmm/inspect/single/view/NewEventActivity.kt b/app/src/main/java/com/casic/birmm/inspect/single/view/NewEventActivity.kt index b77a8f2..7e4f7e7 100644 --- a/app/src/main/java/com/casic/birmm/inspect/single/view/NewEventActivity.kt +++ b/app/src/main/java/com/casic/birmm/inspect/single/view/NewEventActivity.kt @@ -39,7 +39,7 @@ private var isWarning: Boolean = true private var longitude: Double = 0.0 private var latitude: Double = 0.0 - private var data = -1.0//泄露默认值 + private var data = 0.0//泄露默认值 override fun initData() { diff --git a/app/src/main/java/com/casic/birmm/inspect/utils/retrofit/RetrofitService.kt b/app/src/main/java/com/casic/birmm/inspect/utils/retrofit/RetrofitService.kt index 1281613..cfd24bd 100644 --- a/app/src/main/java/com/casic/birmm/inspect/utils/retrofit/RetrofitService.kt +++ b/app/src/main/java/com/casic/birmm/inspect/utils/retrofit/RetrofitService.kt @@ -16,7 +16,7 @@ */ @FormUrlEncoded @POST("/user/appLogin") - suspend fun getLoginResult( + suspend fun login( @Field("username") account: String, @Field("password") secretKey: String ): String diff --git a/app/src/main/java/com/casic/birmm/inspect/utils/retrofit/RetrofitServiceManager.kt b/app/src/main/java/com/casic/birmm/inspect/utils/retrofit/RetrofitServiceManager.kt index 4c1f278..324cf23 100644 --- a/app/src/main/java/com/casic/birmm/inspect/utils/retrofit/RetrofitServiceManager.kt +++ b/app/src/main/java/com/casic/birmm/inspect/utils/retrofit/RetrofitServiceManager.kt @@ -28,8 +28,8 @@ /** * 登录并获取Token */ - suspend fun getLoginResult(account: String, secretKey: String): String { - return api.getLoginResult(account, secretKey) + suspend fun login(account: String, secretKey: String): String { + return api.login(account, secretKey) } /** diff --git a/app/src/main/java/com/casic/birmm/inspect/view/EventDetailActivity.kt b/app/src/main/java/com/casic/birmm/inspect/view/EventDetailActivity.kt index 6f3d166..5dd7f86 100644 --- a/app/src/main/java/com/casic/birmm/inspect/view/EventDetailActivity.kt +++ b/app/src/main/java/com/casic/birmm/inspect/view/EventDetailActivity.kt @@ -3,6 +3,9 @@ import androidx.core.content.ContextCompat import com.casic.birmm.inspect.R import com.casic.birmm.inspect.extensions.combineImagePath +import com.casic.birmm.inspect.model.EventListModel +import com.google.gson.Gson +import com.google.gson.reflect.TypeToken import com.gyf.immersionbar.ImmersionBar import com.pengxh.kt.lite.adapter.ReadOnlyImageAdapter import com.pengxh.kt.lite.base.KotlinBaseActivity @@ -16,6 +19,8 @@ class EventDetailActivity : KotlinBaseActivity() { + private val gson by lazy { Gson() } + override fun initLayoutView(): Int = R.layout.activity_event_detail override fun setupTopBarLayout() { @@ -29,11 +34,14 @@ } override fun initData() { - val args = intent.getStringArrayListExtra(Constant.INTENT_PARAM)!! + val args = intent.getStringExtra(Constant.INTENT_PARAM)!! + val model = gson.fromJson( + args, object : TypeToken() {}.type + ) - createTimeView.text = args[0] - descriptionView.text = args[1] - val data = args[2] + createTimeView.text = model.createTime + descriptionView.text = model.description + val data = model.data val value = if (data.isNullOrBlank()) { "0.0" } else { @@ -41,7 +49,7 @@ } dataView.text = value - val images = args[3] + val images = model.images /** * images: 2020-12/6528aeb21cff426c91c43a7f8b716d1e.jpg diff --git a/app/src/main/java/com/casic/birmm/inspect/view/LoginActivity.kt b/app/src/main/java/com/casic/birmm/inspect/view/LoginActivity.kt index b34abf4..cac1d23 100644 --- a/app/src/main/java/com/casic/birmm/inspect/view/LoginActivity.kt +++ b/app/src/main/java/com/casic/birmm/inspect/view/LoginActivity.kt @@ -83,7 +83,7 @@ SaveKeyValues.putValue(LocaleConstant.ACCOUNT, account) SaveKeyValues.putValue(LocaleConstant.PASSWORD, userPassword) - authenticateViewModel.obtainPublicKey() + authenticateViewModel.getPublicKey() authenticateViewModel.keyModel.observe(this) { if (it.code == 200) {//用code判断,别的判断可能有坑 val keyString = it.data!!.publicKey!! @@ -93,11 +93,12 @@ AuthenticationHelper.savePublicKey(keyString) val publicKey = RSAUtils.keyStrToPublicKey(keyString) - val dataByPublicKey = - RSAUtils.encryptDataByPublicKey(userPassword.toByteArray(), publicKey!!) + val dataByPublicKey = RSAUtils.encryptDataByPublicKey( + userPassword.toByteArray(), publicKey!! + ) //登录并获取Token,POST请求 - userViewModel.getLoginResult(account = account, secretKey = dataByPublicKey) + userViewModel.login(account, dataByPublicKey) userViewModel.loginResult.observe(this) { loginResult -> if (loginResult.code == 200) { AuthenticationHelper.saveToken(loginResult.data!!.token!!) diff --git a/app/src/main/java/com/casic/birmm/inspect/view/NewEventActivity.kt b/app/src/main/java/com/casic/birmm/inspect/view/NewEventActivity.kt index 8ea8a75..2593394 100644 --- a/app/src/main/java/com/casic/birmm/inspect/view/NewEventActivity.kt +++ b/app/src/main/java/com/casic/birmm/inspect/view/NewEventActivity.kt @@ -57,7 +57,7 @@ private lateinit var inspectionName: String private var longitude: Double = 0.0 private var latitude: Double = 0.0 - private var data = -1.0//泄露默认值 + private var data = 0.0//泄露默认值 private lateinit var type: String private lateinit var userModel: UserInfoModel diff --git a/app/src/main/java/com/casic/birmm/inspect/vm/AuthenticateViewModel.kt b/app/src/main/java/com/casic/birmm/inspect/vm/AuthenticateViewModel.kt index 572caee..3a9ae79 100644 --- a/app/src/main/java/com/casic/birmm/inspect/vm/AuthenticateViewModel.kt +++ b/app/src/main/java/com/casic/birmm/inspect/vm/AuthenticateViewModel.kt @@ -8,6 +8,7 @@ import com.casic.birmm.inspect.utils.retrofit.RetrofitServiceManager import com.google.gson.Gson import com.google.gson.reflect.TypeToken +import com.pengxh.kt.lite.extensions.isNetworkConnected import com.pengxh.kt.lite.extensions.launch import com.pengxh.kt.lite.extensions.show import com.pengxh.kt.lite.vm.BaseViewModel @@ -20,7 +21,7 @@ private val gson by lazy { Gson() } val keyModel = MutableLiveData() - fun obtainPublicKey() = launch({ + fun getPublicKey() = launch({ val response = RetrofitServiceManager.getPublicKey() val responseCode = response.separateResponseCode() if (responseCode == 200) { @@ -31,6 +32,10 @@ response.toErrorMessage().show(BaseApplication.get()) } }, { - it.cause.toString().show(BaseApplication.get()) + if (BaseApplication.get().isNetworkConnected()) { + "连接服务器失败,IP或端口错误".show(BaseApplication.get()) + } else { + "网络连接失败".show(BaseApplication.get()) + } }) } \ No newline at end of file diff --git a/app/src/main/java/com/casic/birmm/inspect/vm/UserViewModel.kt b/app/src/main/java/com/casic/birmm/inspect/vm/UserViewModel.kt index a6ae8ab..3b4d099 100644 --- a/app/src/main/java/com/casic/birmm/inspect/vm/UserViewModel.kt +++ b/app/src/main/java/com/casic/birmm/inspect/vm/UserViewModel.kt @@ -10,6 +10,7 @@ import com.casic.birmm.inspect.utils.retrofit.RetrofitServiceManager import com.google.gson.Gson import com.google.gson.reflect.TypeToken +import com.pengxh.kt.lite.extensions.isNetworkConnected import com.pengxh.kt.lite.extensions.launch import com.pengxh.kt.lite.extensions.show import com.pengxh.kt.lite.vm.BaseViewModel @@ -27,9 +28,9 @@ val outResultModel = MutableLiveData() val updateResult = MutableLiveData() - fun getLoginResult(account: String, secretKey: String) = launch({ + fun login(account: String, secretKey: String) = launch({ loadState.value = LoadState.Loading - val response = RetrofitServiceManager.getLoginResult(account, secretKey) + val response = RetrofitServiceManager.login(account, secretKey) val responseCode = response.separateResponseCode() if (responseCode == 200) { loadState.value = LoadState.Success @@ -42,7 +43,11 @@ } }, { loadState.value = LoadState.Fail - it.cause.toString().show(BaseApplication.get()) + if (BaseApplication.get().isNetworkConnected()) { + "连接服务器失败,IP或端口错误".show(BaseApplication.get()) + } else { + "网络连接失败".show(BaseApplication.get()) + } }) fun getUserInfo() = launch({ diff --git a/app/src/main/res/drawable/button_main_selector.xml b/app/src/main/res/drawable/button_main_selector.xml index 5cbaea0..e636381 100644 --- a/app/src/main/res/drawable/button_main_selector.xml +++ b/app/src/main/res/drawable/button_main_selector.xml @@ -11,8 +11,8 @@ - - + + \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_map_inspect.xml b/app/src/main/res/layout/fragment_map_inspect.xml index ce2b604..b48c80a 100644 --- a/app/src/main/res/layout/fragment_map_inspect.xml +++ b/app/src/main/res/layout/fragment_map_inspect.xml @@ -47,7 +47,7 @@ android:layout_width="0dp" android:layout_height="wrap_content" android:layout_marginEnd="5dp" - android:hint="巡检记录" + android:hint="未开始巡检" android:paddingVertical="3dp" android:singleLine="true" android:textColor="@color/black" @@ -62,7 +62,6 @@ android:layout_height="wrap_content" android:layout_marginStart="5dp" android:paddingVertical="3dp" - android:hint="yyyy-MM-dd HH:mm:ss" android:textColor="@color/black" android:textSize="@dimen/sp_14" app:layout_constraintEnd_toEndOf="parent" diff --git a/app/src/main/res/layout/item_event_rv_l.xml b/app/src/main/res/layout/item_event_rv_l.xml index f22d137..e7d44d7 100644 --- a/app/src/main/res/layout/item_event_rv_l.xml +++ b/app/src/main/res/layout/item_event_rv_l.xml @@ -38,6 +38,7 @@ android:id="@+id/inspectTypeView" android:layout_width="match_parent" android:layout_height="wrap_content" + android:layout_marginVertical="@dimen/dp_3" android:singleLine="true" android:text="类型:报警事件" android:textColor="@color/gray" @@ -50,7 +51,7 @@ android:layout_weight="1" android:gravity="bottom" android:singleLine="true" - android:text="上报时间:2021年07月09日" + android:text="时间:2021年07月09日" android:textColor="@color/gray" android:textSize="@dimen/sp_12" /> diff --git a/.idea/misc.xml b/.idea/misc.xml index 139dc2a..e7cbf98 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -11,6 +11,7 @@ + diff --git a/app/src/main/java/com/casic/birmm/inspect/fragment/HomePageFragment.kt b/app/src/main/java/com/casic/birmm/inspect/fragment/HomePageFragment.kt index 91cd394..a757dfb 100644 --- a/app/src/main/java/com/casic/birmm/inspect/fragment/HomePageFragment.kt +++ b/app/src/main/java/com/casic/birmm/inspect/fragment/HomePageFragment.kt @@ -8,6 +8,7 @@ import android.graphics.Color import android.os.Bundle import android.os.Handler +import android.os.Message import android.os.Vibrator import android.util.Log import android.view.LayoutInflater @@ -37,10 +38,7 @@ import com.casic.birmm.inspect.vm.EventViewModel import com.casic.birmm.inspect.vm.InspectionViewModel import com.google.gson.Gson -import com.pengxh.kt.lite.extensions.navigatePageTo -import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.extensions.timestampToCompleteDate -import com.pengxh.kt.lite.extensions.timestampToDate +import com.pengxh.kt.lite.extensions.* import com.pengxh.kt.lite.utils.SaveKeyValues import com.pengxh.kt.lite.utils.WeakReferenceHandler import com.pengxh.kt.lite.utils.ble.BLEManager @@ -51,20 +49,15 @@ import com.pengxh.kt.lite.widget.dialog.AlertControlDialog import com.pengxh.kt.lite.widget.dialog.AlertInputDialog import com.pengxh.kt.lite.widget.dialog.BottomActionSheet -import com.qmuiteam.qmui.util.QMUIDisplayHelper import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet import kotlinx.android.synthetic.main.fragment_map_inspect.view.* import java.util.* @SuppressLint("MissingPermission") -class HomePageFragment : Fragment() { +class HomePageFragment : Fragment(), Handler.Callback { private val kTag = "HomePageFragment" private val gson by lazy { Gson() } - private val isOpenWarning = - SaveKeyValues.getValue(LocaleConstant.OPEN_WARNING, false) as Boolean - private val isAutoRecord = - SaveKeyValues.getValue(LocaleConstant.AUTO_RECORD, false) as Boolean private lateinit var homeView: View private lateinit var userData: UserInfoModel.DataModel private lateinit var vibrator: Vibrator @@ -88,7 +81,7 @@ homeView = inflater.inflate(R.layout.fragment_map_inspect, container, false) //根据不同设备状态栏高度设置statusBarView高度 - val statusBarHeight = QMUIDisplayHelper.getStatusBarHeight(requireContext()) + val statusBarHeight = requireContext().getStatusBarHeight() val params = homeView.statusBarView.layoutParams as LinearLayout.LayoutParams params.height = statusBarHeight homeView.statusBarView.setBackgroundColor(Color.parseColor("#D6EEFE")) @@ -109,7 +102,7 @@ val userModelJson = SaveKeyValues.getValue(LocaleConstant.USER_OBJECT, "") as String userData = gson.fromJson(userModelJson, UserInfoModel::class.java).data!! - weakReferenceHandler = WeakReferenceHandler(callback) + weakReferenceHandler = WeakReferenceHandler(this) if (BLEManager.initBLE(requireContext())) { if (!BLEManager.isBluetoothEnable()) { @@ -126,12 +119,10 @@ uiSettings.isRotateGesturesEnabled = false//不许地图随手势旋转角度 //显示定位小蓝点 locationStyle = MyLocationStyle() - locationStyle locationStyle.showMyLocation(true)//设置是否显示定位小蓝点 - locationStyle.interval(10 * 1000)////设置连续定位模式下的定位间隔,只在连续定位模式下生效。单位为毫秒 aMap.myLocationStyle = locationStyle aMap.isMyLocationEnabled = true - aMap.moveCamera(CameraUpdateFactory.zoomTo(14.toFloat())) + aMap.moveCamera(CameraUpdateFactory.zoomTo(16.toFloat())) initEvent() @@ -179,15 +170,14 @@ .setOnActionSheetListener(object : BottomActionSheet.OnActionSheetListener { override fun onActionItemClick(position: Int) { //获取当前定位 - val currentLng = SaveKeyValues.getValue( + val lng = SaveKeyValues.getValue( LocaleConstant.CURRENT_LONGITUDE, "0.0" ) as String - val currentLat = - SaveKeyValues.getValue(LocaleConstant.CURRENT_LATITUDE, "0.0") as String + val lat = SaveKeyValues.getValue( + LocaleConstant.CURRENT_LATITUDE, "0.0" + ) as String requireContext().navigatePageTo( - addAll( - position.toString(), model.id, model.name, currentLng, currentLat - ) + addAll(position.toString(), model.id, model.name, lng, lat) ) } }).build().show() @@ -303,7 +293,7 @@ } } - private val callback = Handler.Callback { msg -> + override fun handleMessage(msg: Message): Boolean { when (msg.what) { LocaleConstant.BLUETOOTH_ON -> { "蓝牙已开启".show(requireContext()) @@ -372,7 +362,7 @@ ) LocaleConstant.DISCONNECT_SUCCESS -> curConnectState = false } - true + return true } private fun startConnectDevice(device: BluetoothDevice) { @@ -529,11 +519,15 @@ homeView.settingsValueView.text = dataModel.alarmValue.toString() homeView.maxValueView.text = dataModel.maxPotency.toString() //判断是否需要报警 + val isOpenWarning = + SaveKeyValues.getValue(LocaleConstant.SINGLE_OPEN_WARNING, false) as Boolean if (isOpenWarning) { if (dataModel.potency >= dataModel.alarmValue) { //当前值大于设置值,需要报警 SoundPoolHelper.playSound(requireContext(), R.raw.alarm) vibrator.vibrate(1000) + val isAutoRecord = + SaveKeyValues.getValue(LocaleConstant.SINGLE_AUTO_RECORD, false) as Boolean if (isAutoRecord) { //如果连续超过10个报警,自动生成报警事件 alarmCount++ diff --git a/app/src/main/java/com/casic/birmm/inspect/fragment/QueryEventFragment.kt b/app/src/main/java/com/casic/birmm/inspect/fragment/QueryEventFragment.kt index 82a23c9..d134e0b 100644 --- a/app/src/main/java/com/casic/birmm/inspect/fragment/QueryEventFragment.kt +++ b/app/src/main/java/com/casic/birmm/inspect/fragment/QueryEventFragment.kt @@ -3,7 +3,6 @@ import android.os.Handler import androidx.lifecycle.ViewModelProvider import com.casic.birmm.inspect.R -import com.casic.birmm.inspect.extensions.addAll import com.casic.birmm.inspect.extensions.combineImagePath import com.casic.birmm.inspect.model.EventListModel import com.casic.birmm.inspect.view.EventDetailActivity @@ -11,9 +10,9 @@ import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseFragment -import com.pengxh.kt.lite.extensions.filterSpaceOrEnter import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show +import com.pengxh.kt.lite.extensions.toJson import com.pengxh.kt.lite.utils.WeakReferenceHandler import kotlinx.android.synthetic.main.fragment_query_event.* import kotlinx.android.synthetic.main.include_empty_view.* @@ -83,7 +82,6 @@ override fun onResume() { super.onResume() - pageIndex = 1 getEventList() } @@ -119,7 +117,7 @@ viewHolder.setText(R.id.inspectMsgView, item.name) .setText(R.id.inspectTypeView, "类型:${item.type}") - .setText(R.id.inspectDateView, "上报时间:${item.createTime}") + .setText(R.id.inspectDateView, "时间:${item.createTime}") } } eventRecyclerView.adapter = eventListAdapter @@ -128,11 +126,7 @@ override fun onItemClicked( position: Int, t: EventListModel.DataModel.RowsModel ) { - requireContext().navigatePageTo( - addAll( - t.createTime, t.description!!.filterSpaceOrEnter(), t.data, t.images - ) - ) + requireContext().navigatePageTo(t.toJson()) } }) } diff --git a/app/src/main/java/com/casic/birmm/inspect/single/fragment/HomePageFragment.kt b/app/src/main/java/com/casic/birmm/inspect/single/fragment/HomePageFragment.kt index 81ffffd..4a898ce 100644 --- a/app/src/main/java/com/casic/birmm/inspect/single/fragment/HomePageFragment.kt +++ b/app/src/main/java/com/casic/birmm/inspect/single/fragment/HomePageFragment.kt @@ -8,6 +8,7 @@ import android.graphics.Color import android.os.Bundle import android.os.Handler +import android.os.Message import android.os.Vibrator import android.util.Log import android.view.LayoutInflater @@ -33,10 +34,7 @@ import com.casic.birmm.inspect.utils.LocaleConstant import com.casic.birmm.inspect.utils.SoundPoolHelper import com.google.gson.Gson -import com.pengxh.kt.lite.extensions.navigatePageTo -import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.extensions.timestampToCompleteDate -import com.pengxh.kt.lite.extensions.timestampToDate +import com.pengxh.kt.lite.extensions.* import com.pengxh.kt.lite.utils.SaveKeyValues import com.pengxh.kt.lite.utils.WeakReferenceHandler import com.pengxh.kt.lite.utils.ble.BLEManager @@ -46,20 +44,15 @@ import com.pengxh.kt.lite.widget.dialog.AlertControlDialog import com.pengxh.kt.lite.widget.dialog.AlertInputDialog import com.pengxh.kt.lite.widget.dialog.BottomActionSheet -import com.qmuiteam.qmui.util.QMUIDisplayHelper import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet import kotlinx.android.synthetic.main.single_fragment_map_inspect.view.* import java.util.* @SuppressLint("MissingPermission") -class HomePageFragment : Fragment() { +class HomePageFragment : Fragment(), Handler.Callback { private val kTag = "HomePageFragment" private val gson by lazy { Gson() } - private val isOpenWarning = - SaveKeyValues.getValue(LocaleConstant.SINGLE_OPEN_WARNING, false) as Boolean - private val isAutoRecord = - SaveKeyValues.getValue(LocaleConstant.SINGLE_AUTO_RECORD, false) as Boolean private lateinit var homeView: View private lateinit var vibrator: Vibrator private lateinit var aMap: AMap @@ -80,14 +73,14 @@ homeView = inflater.inflate(R.layout.single_fragment_map_inspect, container, false) //根据不同设备状态栏高度设置statusBarView高度 - val statusBarHeight = QMUIDisplayHelper.getStatusBarHeight(requireContext()) + val statusBarHeight = requireContext().getStatusBarHeight() val params = homeView.statusBarView.layoutParams as LinearLayout.LayoutParams params.height = statusBarHeight homeView.statusBarView.setBackgroundColor(Color.parseColor("#D6EEFE")) homeView.statusBarView.requestLayout() vibrator = requireContext().getSystemService(Context.VIBRATOR_SERVICE) as Vibrator - weakReferenceHandler = WeakReferenceHandler(callback) + weakReferenceHandler = WeakReferenceHandler(this) if (BLEManager.initBLE(requireContext())) { if (!BLEManager.isBluetoothEnable()) { @@ -104,12 +97,10 @@ uiSettings.isRotateGesturesEnabled = false//不许地图随手势旋转角度 //显示定位小蓝点 locationStyle = MyLocationStyle() - locationStyle locationStyle.showMyLocation(true)//设置是否显示定位小蓝点 - locationStyle.interval(10 * 1000)////设置连续定位模式下的定位间隔,只在连续定位模式下生效。单位为毫秒 aMap.myLocationStyle = locationStyle aMap.isMyLocationEnabled = true - aMap.moveCamera(CameraUpdateFactory.zoomTo(14.toFloat())) + aMap.moveCamera(CameraUpdateFactory.zoomTo(16.toFloat())) initEvent() @@ -157,15 +148,14 @@ .setOnActionSheetListener(object : BottomActionSheet.OnActionSheetListener { override fun onActionItemClick(position: Int) { //获取当前定位 - val currentLng = SaveKeyValues.getValue( + val lng = SaveKeyValues.getValue( LocaleConstant.CURRENT_LONGITUDE, "0.0" ) as String - val currentLat = - SaveKeyValues.getValue(LocaleConstant.CURRENT_LATITUDE, "0.0") as String + val lat = SaveKeyValues.getValue( + LocaleConstant.CURRENT_LATITUDE, "0.0" + ) as String requireContext().navigatePageTo( - addAll( - position.toString(), model.id, model.name, currentLng, currentLat - ) + addAll(position.toString(), model.id, model.name, lng, lat) ) } }).build().show() @@ -281,7 +271,7 @@ } } - private val callback = Handler.Callback { msg -> + override fun handleMessage(msg: Message): Boolean { when (msg.what) { LocaleConstant.BLUETOOTH_ON -> { "蓝牙已开启".show(requireContext()) @@ -350,7 +340,7 @@ ) LocaleConstant.DISCONNECT_SUCCESS -> curConnectState = false } - true + return true } private fun startConnectDevice(device: BluetoothDevice) { @@ -502,11 +492,15 @@ homeView.settingsValueView.text = dataModel.alarmValue.toString() homeView.maxValueView.text = dataModel.maxPotency.toString() //判断是否需要报警 + val isOpenWarning = + SaveKeyValues.getValue(LocaleConstant.SINGLE_OPEN_WARNING, false) as Boolean if (isOpenWarning) { if (dataModel.potency >= dataModel.alarmValue) { //当前值大于设置值,需要报警 SoundPoolHelper.playSound(requireContext(), R.raw.alarm) vibrator.vibrate(1000) + val isAutoRecord = + SaveKeyValues.getValue(LocaleConstant.SINGLE_AUTO_RECORD, false) as Boolean if (isAutoRecord) { //如果连续超过10个报警,自动生成报警事件 alarmCount++ diff --git a/app/src/main/java/com/casic/birmm/inspect/single/fragment/QueryEventFragment.kt b/app/src/main/java/com/casic/birmm/inspect/single/fragment/QueryEventFragment.kt index 96dba16..812d329 100644 --- a/app/src/main/java/com/casic/birmm/inspect/single/fragment/QueryEventFragment.kt +++ b/app/src/main/java/com/casic/birmm/inspect/single/fragment/QueryEventFragment.kt @@ -3,15 +3,14 @@ import androidx.lifecycle.lifecycleScope import com.bumptech.glide.Glide import com.casic.birmm.inspect.R -import com.casic.birmm.inspect.extensions.addAll import com.casic.birmm.inspect.model.EventListModel import com.casic.birmm.inspect.single.view.EventDetailActivity import com.casic.birmm.inspect.utils.DataBaseManager import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseFragment -import com.pengxh.kt.lite.extensions.filterSpaceOrEnter import com.pengxh.kt.lite.extensions.navigatePageTo +import com.pengxh.kt.lite.extensions.toJson import kotlinx.android.synthetic.main.include_empty_view.* import kotlinx.android.synthetic.main.single_fragment_query_event.* import kotlinx.coroutines.Dispatchers @@ -41,8 +40,7 @@ R.layout.item_event_rv_l, dataBeans ) { override fun convertView( - viewHolder: ViewHolder, - position: Int, + viewHolder: ViewHolder, position: Int, item: EventListModel.DataModel.RowsModel ) { if (!item.images.isNullOrBlank()) { @@ -61,22 +59,15 @@ } viewHolder.setText(R.id.inspectMsgView, item.name) - .setText(R.id.inspectMsgView, "类型:${item.type}") - .setText(R.id.inspectMsgView, "上报时间:${item.createTime}") + .setText(R.id.inspectTypeView, "类型:${item.type}") + .setText(R.id.inspectDateView, "时间:${item.createTime}") } } eventRecyclerView.adapter = eventListAdapter eventListAdapter.setOnItemClickedListener(object : NormalRecyclerAdapter.OnItemClickedListener { override fun onItemClicked(position: Int, t: EventListModel.DataModel.RowsModel) { - requireContext().navigatePageTo( - addAll( - t.createTime.toString(), - t.description!!.filterSpaceOrEnter(), - t.data.toString(), - t.images.toString() - ) - ) + requireContext().navigatePageTo(t.toJson()) } }) } diff --git a/app/src/main/java/com/casic/birmm/inspect/single/view/EventDetailActivity.kt b/app/src/main/java/com/casic/birmm/inspect/single/view/EventDetailActivity.kt index f00bbae..b7d59e8 100644 --- a/app/src/main/java/com/casic/birmm/inspect/single/view/EventDetailActivity.kt +++ b/app/src/main/java/com/casic/birmm/inspect/single/view/EventDetailActivity.kt @@ -2,7 +2,10 @@ import androidx.core.content.ContextCompat import com.casic.birmm.inspect.R +import com.casic.birmm.inspect.model.EventListModel import com.casic.birmm.inspect.view.BigImageActivity +import com.google.gson.Gson +import com.google.gson.reflect.TypeToken import com.gyf.immersionbar.ImmersionBar import com.pengxh.kt.lite.adapter.ReadOnlyImageAdapter import com.pengxh.kt.lite.base.KotlinBaseActivity @@ -15,12 +18,17 @@ class EventDetailActivity : KotlinBaseActivity() { - override fun initData() { - val args = intent.getStringArrayListExtra(Constant.INTENT_PARAM)!! + private val gson by lazy { Gson() } - createTimeView.text = args[0] - descriptionView.text = args[1] - val data = args[2] + override fun initData() { + val args = intent.getStringExtra(Constant.INTENT_PARAM)!! + val model = gson.fromJson( + args, object : TypeToken() {}.type + ) + + createTimeView.text = model.createTime + descriptionView.text = model.description + val data = model.data val value = if (data.isNullOrBlank()) { "0.0" } else { @@ -28,7 +36,7 @@ } dataView.text = value - val images = args[3] + val images = model.images /** * images: 2020-12/6528aeb21cff426c91c43a7f8b716d1e.jpg diff --git a/app/src/main/java/com/casic/birmm/inspect/single/view/NewEventActivity.kt b/app/src/main/java/com/casic/birmm/inspect/single/view/NewEventActivity.kt index b77a8f2..7e4f7e7 100644 --- a/app/src/main/java/com/casic/birmm/inspect/single/view/NewEventActivity.kt +++ b/app/src/main/java/com/casic/birmm/inspect/single/view/NewEventActivity.kt @@ -39,7 +39,7 @@ private var isWarning: Boolean = true private var longitude: Double = 0.0 private var latitude: Double = 0.0 - private var data = -1.0//泄露默认值 + private var data = 0.0//泄露默认值 override fun initData() { diff --git a/app/src/main/java/com/casic/birmm/inspect/utils/retrofit/RetrofitService.kt b/app/src/main/java/com/casic/birmm/inspect/utils/retrofit/RetrofitService.kt index 1281613..cfd24bd 100644 --- a/app/src/main/java/com/casic/birmm/inspect/utils/retrofit/RetrofitService.kt +++ b/app/src/main/java/com/casic/birmm/inspect/utils/retrofit/RetrofitService.kt @@ -16,7 +16,7 @@ */ @FormUrlEncoded @POST("/user/appLogin") - suspend fun getLoginResult( + suspend fun login( @Field("username") account: String, @Field("password") secretKey: String ): String diff --git a/app/src/main/java/com/casic/birmm/inspect/utils/retrofit/RetrofitServiceManager.kt b/app/src/main/java/com/casic/birmm/inspect/utils/retrofit/RetrofitServiceManager.kt index 4c1f278..324cf23 100644 --- a/app/src/main/java/com/casic/birmm/inspect/utils/retrofit/RetrofitServiceManager.kt +++ b/app/src/main/java/com/casic/birmm/inspect/utils/retrofit/RetrofitServiceManager.kt @@ -28,8 +28,8 @@ /** * 登录并获取Token */ - suspend fun getLoginResult(account: String, secretKey: String): String { - return api.getLoginResult(account, secretKey) + suspend fun login(account: String, secretKey: String): String { + return api.login(account, secretKey) } /** diff --git a/app/src/main/java/com/casic/birmm/inspect/view/EventDetailActivity.kt b/app/src/main/java/com/casic/birmm/inspect/view/EventDetailActivity.kt index 6f3d166..5dd7f86 100644 --- a/app/src/main/java/com/casic/birmm/inspect/view/EventDetailActivity.kt +++ b/app/src/main/java/com/casic/birmm/inspect/view/EventDetailActivity.kt @@ -3,6 +3,9 @@ import androidx.core.content.ContextCompat import com.casic.birmm.inspect.R import com.casic.birmm.inspect.extensions.combineImagePath +import com.casic.birmm.inspect.model.EventListModel +import com.google.gson.Gson +import com.google.gson.reflect.TypeToken import com.gyf.immersionbar.ImmersionBar import com.pengxh.kt.lite.adapter.ReadOnlyImageAdapter import com.pengxh.kt.lite.base.KotlinBaseActivity @@ -16,6 +19,8 @@ class EventDetailActivity : KotlinBaseActivity() { + private val gson by lazy { Gson() } + override fun initLayoutView(): Int = R.layout.activity_event_detail override fun setupTopBarLayout() { @@ -29,11 +34,14 @@ } override fun initData() { - val args = intent.getStringArrayListExtra(Constant.INTENT_PARAM)!! + val args = intent.getStringExtra(Constant.INTENT_PARAM)!! + val model = gson.fromJson( + args, object : TypeToken() {}.type + ) - createTimeView.text = args[0] - descriptionView.text = args[1] - val data = args[2] + createTimeView.text = model.createTime + descriptionView.text = model.description + val data = model.data val value = if (data.isNullOrBlank()) { "0.0" } else { @@ -41,7 +49,7 @@ } dataView.text = value - val images = args[3] + val images = model.images /** * images: 2020-12/6528aeb21cff426c91c43a7f8b716d1e.jpg diff --git a/app/src/main/java/com/casic/birmm/inspect/view/LoginActivity.kt b/app/src/main/java/com/casic/birmm/inspect/view/LoginActivity.kt index b34abf4..cac1d23 100644 --- a/app/src/main/java/com/casic/birmm/inspect/view/LoginActivity.kt +++ b/app/src/main/java/com/casic/birmm/inspect/view/LoginActivity.kt @@ -83,7 +83,7 @@ SaveKeyValues.putValue(LocaleConstant.ACCOUNT, account) SaveKeyValues.putValue(LocaleConstant.PASSWORD, userPassword) - authenticateViewModel.obtainPublicKey() + authenticateViewModel.getPublicKey() authenticateViewModel.keyModel.observe(this) { if (it.code == 200) {//用code判断,别的判断可能有坑 val keyString = it.data!!.publicKey!! @@ -93,11 +93,12 @@ AuthenticationHelper.savePublicKey(keyString) val publicKey = RSAUtils.keyStrToPublicKey(keyString) - val dataByPublicKey = - RSAUtils.encryptDataByPublicKey(userPassword.toByteArray(), publicKey!!) + val dataByPublicKey = RSAUtils.encryptDataByPublicKey( + userPassword.toByteArray(), publicKey!! + ) //登录并获取Token,POST请求 - userViewModel.getLoginResult(account = account, secretKey = dataByPublicKey) + userViewModel.login(account, dataByPublicKey) userViewModel.loginResult.observe(this) { loginResult -> if (loginResult.code == 200) { AuthenticationHelper.saveToken(loginResult.data!!.token!!) diff --git a/app/src/main/java/com/casic/birmm/inspect/view/NewEventActivity.kt b/app/src/main/java/com/casic/birmm/inspect/view/NewEventActivity.kt index 8ea8a75..2593394 100644 --- a/app/src/main/java/com/casic/birmm/inspect/view/NewEventActivity.kt +++ b/app/src/main/java/com/casic/birmm/inspect/view/NewEventActivity.kt @@ -57,7 +57,7 @@ private lateinit var inspectionName: String private var longitude: Double = 0.0 private var latitude: Double = 0.0 - private var data = -1.0//泄露默认值 + private var data = 0.0//泄露默认值 private lateinit var type: String private lateinit var userModel: UserInfoModel diff --git a/app/src/main/java/com/casic/birmm/inspect/vm/AuthenticateViewModel.kt b/app/src/main/java/com/casic/birmm/inspect/vm/AuthenticateViewModel.kt index 572caee..3a9ae79 100644 --- a/app/src/main/java/com/casic/birmm/inspect/vm/AuthenticateViewModel.kt +++ b/app/src/main/java/com/casic/birmm/inspect/vm/AuthenticateViewModel.kt @@ -8,6 +8,7 @@ import com.casic.birmm.inspect.utils.retrofit.RetrofitServiceManager import com.google.gson.Gson import com.google.gson.reflect.TypeToken +import com.pengxh.kt.lite.extensions.isNetworkConnected import com.pengxh.kt.lite.extensions.launch import com.pengxh.kt.lite.extensions.show import com.pengxh.kt.lite.vm.BaseViewModel @@ -20,7 +21,7 @@ private val gson by lazy { Gson() } val keyModel = MutableLiveData() - fun obtainPublicKey() = launch({ + fun getPublicKey() = launch({ val response = RetrofitServiceManager.getPublicKey() val responseCode = response.separateResponseCode() if (responseCode == 200) { @@ -31,6 +32,10 @@ response.toErrorMessage().show(BaseApplication.get()) } }, { - it.cause.toString().show(BaseApplication.get()) + if (BaseApplication.get().isNetworkConnected()) { + "连接服务器失败,IP或端口错误".show(BaseApplication.get()) + } else { + "网络连接失败".show(BaseApplication.get()) + } }) } \ No newline at end of file diff --git a/app/src/main/java/com/casic/birmm/inspect/vm/UserViewModel.kt b/app/src/main/java/com/casic/birmm/inspect/vm/UserViewModel.kt index a6ae8ab..3b4d099 100644 --- a/app/src/main/java/com/casic/birmm/inspect/vm/UserViewModel.kt +++ b/app/src/main/java/com/casic/birmm/inspect/vm/UserViewModel.kt @@ -10,6 +10,7 @@ import com.casic.birmm.inspect.utils.retrofit.RetrofitServiceManager import com.google.gson.Gson import com.google.gson.reflect.TypeToken +import com.pengxh.kt.lite.extensions.isNetworkConnected import com.pengxh.kt.lite.extensions.launch import com.pengxh.kt.lite.extensions.show import com.pengxh.kt.lite.vm.BaseViewModel @@ -27,9 +28,9 @@ val outResultModel = MutableLiveData() val updateResult = MutableLiveData() - fun getLoginResult(account: String, secretKey: String) = launch({ + fun login(account: String, secretKey: String) = launch({ loadState.value = LoadState.Loading - val response = RetrofitServiceManager.getLoginResult(account, secretKey) + val response = RetrofitServiceManager.login(account, secretKey) val responseCode = response.separateResponseCode() if (responseCode == 200) { loadState.value = LoadState.Success @@ -42,7 +43,11 @@ } }, { loadState.value = LoadState.Fail - it.cause.toString().show(BaseApplication.get()) + if (BaseApplication.get().isNetworkConnected()) { + "连接服务器失败,IP或端口错误".show(BaseApplication.get()) + } else { + "网络连接失败".show(BaseApplication.get()) + } }) fun getUserInfo() = launch({ diff --git a/app/src/main/res/drawable/button_main_selector.xml b/app/src/main/res/drawable/button_main_selector.xml index 5cbaea0..e636381 100644 --- a/app/src/main/res/drawable/button_main_selector.xml +++ b/app/src/main/res/drawable/button_main_selector.xml @@ -11,8 +11,8 @@ - - + + \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_map_inspect.xml b/app/src/main/res/layout/fragment_map_inspect.xml index ce2b604..b48c80a 100644 --- a/app/src/main/res/layout/fragment_map_inspect.xml +++ b/app/src/main/res/layout/fragment_map_inspect.xml @@ -47,7 +47,7 @@ android:layout_width="0dp" android:layout_height="wrap_content" android:layout_marginEnd="5dp" - android:hint="巡检记录" + android:hint="未开始巡检" android:paddingVertical="3dp" android:singleLine="true" android:textColor="@color/black" @@ -62,7 +62,6 @@ android:layout_height="wrap_content" android:layout_marginStart="5dp" android:paddingVertical="3dp" - android:hint="yyyy-MM-dd HH:mm:ss" android:textColor="@color/black" android:textSize="@dimen/sp_14" app:layout_constraintEnd_toEndOf="parent" diff --git a/app/src/main/res/layout/item_event_rv_l.xml b/app/src/main/res/layout/item_event_rv_l.xml index f22d137..e7d44d7 100644 --- a/app/src/main/res/layout/item_event_rv_l.xml +++ b/app/src/main/res/layout/item_event_rv_l.xml @@ -38,6 +38,7 @@ android:id="@+id/inspectTypeView" android:layout_width="match_parent" android:layout_height="wrap_content" + android:layout_marginVertical="@dimen/dp_3" android:singleLine="true" android:text="类型:报警事件" android:textColor="@color/gray" @@ -50,7 +51,7 @@ android:layout_weight="1" android:gravity="bottom" android:singleLine="true" - android:text="上报时间:2021年07月09日" + android:text="时间:2021年07月09日" android:textColor="@color/gray" android:textSize="@dimen/sp_12" /> diff --git a/app/src/main/res/layout/single_fragment_map_inspect.xml b/app/src/main/res/layout/single_fragment_map_inspect.xml index ce2b604..b48c80a 100644 --- a/app/src/main/res/layout/single_fragment_map_inspect.xml +++ b/app/src/main/res/layout/single_fragment_map_inspect.xml @@ -47,7 +47,7 @@ android:layout_width="0dp" android:layout_height="wrap_content" android:layout_marginEnd="5dp" - android:hint="巡检记录" + android:hint="未开始巡检" android:paddingVertical="3dp" android:singleLine="true" android:textColor="@color/black" @@ -62,7 +62,6 @@ android:layout_height="wrap_content" android:layout_marginStart="5dp" android:paddingVertical="3dp" - android:hint="yyyy-MM-dd HH:mm:ss" android:textColor="@color/black" android:textSize="@dimen/sp_14" app:layout_constraintEnd_toEndOf="parent"