diff --git a/app/build.gradle b/app/build.gradle
index 2e5823b..9d0f82e 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -20,8 +20,8 @@
applicationId "com.casic.birmm.inspect"
minSdkVersion 23
targetSdkVersion 33
- versionCode 1070
- versionName "1.0.7"
+ versionCode 1071
+ versionName "1.0.7.1"
}
buildTypes {
diff --git a/app/build.gradle b/app/build.gradle
index 2e5823b..9d0f82e 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -20,8 +20,8 @@
applicationId "com.casic.birmm.inspect"
minSdkVersion 23
targetSdkVersion 33
- versionCode 1070
- versionName "1.0.7"
+ versionCode 1071
+ versionName "1.0.7.1"
}
buildTypes {
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 219d5e2..f5b12de 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -89,6 +89,7 @@
+
diff --git a/app/build.gradle b/app/build.gradle
index 2e5823b..9d0f82e 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -20,8 +20,8 @@
applicationId "com.casic.birmm.inspect"
minSdkVersion 23
targetSdkVersion 33
- versionCode 1070
- versionName "1.0.7"
+ versionCode 1071
+ versionName "1.0.7.1"
}
buildTypes {
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 219d5e2..f5b12de 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -89,6 +89,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 add127a..0e0d400 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
@@ -4,6 +4,8 @@
import android.bluetooth.BluetoothGattCharacteristic
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
@@ -58,6 +60,7 @@
import com.pengxh.kt.lite.utils.LoadState
import com.pengxh.kt.lite.utils.LoadingDialogHub
import com.pengxh.kt.lite.utils.SaveKeyValues
+import com.pengxh.kt.lite.utils.WeakReferenceHandler
import com.pengxh.kt.lite.widget.dialog.AlertControlDialog
import com.pengxh.kt.lite.widget.dialog.AlertInputDialog
import com.pengxh.kt.lite.widget.dialog.BottomActionSheet
@@ -68,7 +71,27 @@
import java.util.LinkedList
import java.util.UUID
-class HomePageFragment : KotlinBaseFragment() {
+class HomePageFragment : KotlinBaseFragment(), Handler.Callback {
+
+ companion object {
+ var weakReferenceHandler: WeakReferenceHandler? = null
+ }
+
+ override fun handleMessage(msg: Message): Boolean {
+ if (msg.what == LocaleConstant.BLUETOOTH_OFF) {
+ bleManager.disconnectAllDevice()
+ latLngs.clear()
+ aMap.clear()//清除原来的路线
+ SaveKeyValues.removeKey(LocaleConstant.DEVICE_CODE)
+ binding.currentValueView.text = "--"
+ binding.settingsValueView.text = "--"
+ binding.maxValueView.text = "--"
+ binding.deviceModelView.text = "产品型号:未连接"
+ binding.deviceCodeView.text = "设备编号:未连接"
+ "设备已断开连接".show(requireContext())
+ }
+ return true
+ }
private val kTag = "HomePageFragment"
private val bleManager by lazy { BleManager.getInstance() }
@@ -105,6 +128,7 @@
override fun initOnCreate(savedInstanceState: Bundle?) {
vibrator = requireContext().getSystemService()
+ weakReferenceHandler = WeakReferenceHandler(this)
bleManager.init(BaseApplication.get())
val scanConfig = BleScanRuleConfig.Builder().setScanTimeOut(3000).build()
diff --git a/app/build.gradle b/app/build.gradle
index 2e5823b..9d0f82e 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -20,8 +20,8 @@
applicationId "com.casic.birmm.inspect"
minSdkVersion 23
targetSdkVersion 33
- versionCode 1070
- versionName "1.0.7"
+ versionCode 1071
+ versionName "1.0.7.1"
}
buildTypes {
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 219d5e2..f5b12de 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -89,6 +89,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 add127a..0e0d400 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
@@ -4,6 +4,8 @@
import android.bluetooth.BluetoothGattCharacteristic
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
@@ -58,6 +60,7 @@
import com.pengxh.kt.lite.utils.LoadState
import com.pengxh.kt.lite.utils.LoadingDialogHub
import com.pengxh.kt.lite.utils.SaveKeyValues
+import com.pengxh.kt.lite.utils.WeakReferenceHandler
import com.pengxh.kt.lite.widget.dialog.AlertControlDialog
import com.pengxh.kt.lite.widget.dialog.AlertInputDialog
import com.pengxh.kt.lite.widget.dialog.BottomActionSheet
@@ -68,7 +71,27 @@
import java.util.LinkedList
import java.util.UUID
-class HomePageFragment : KotlinBaseFragment() {
+class HomePageFragment : KotlinBaseFragment(), Handler.Callback {
+
+ companion object {
+ var weakReferenceHandler: WeakReferenceHandler? = null
+ }
+
+ override fun handleMessage(msg: Message): Boolean {
+ if (msg.what == LocaleConstant.BLUETOOTH_OFF) {
+ bleManager.disconnectAllDevice()
+ latLngs.clear()
+ aMap.clear()//清除原来的路线
+ SaveKeyValues.removeKey(LocaleConstant.DEVICE_CODE)
+ binding.currentValueView.text = "--"
+ binding.settingsValueView.text = "--"
+ binding.maxValueView.text = "--"
+ binding.deviceModelView.text = "产品型号:未连接"
+ binding.deviceCodeView.text = "设备编号:未连接"
+ "设备已断开连接".show(requireContext())
+ }
+ return true
+ }
private val kTag = "HomePageFragment"
private val bleManager by lazy { BleManager.getInstance() }
@@ -105,6 +128,7 @@
override fun initOnCreate(savedInstanceState: Bundle?) {
vibrator = requireContext().getSystemService()
+ weakReferenceHandler = WeakReferenceHandler(this)
bleManager.init(BaseApplication.get())
val scanConfig = BleScanRuleConfig.Builder().setScanTimeOut(3000).build()
diff --git a/app/src/main/java/com/casic/birmm/inspect/service/BleStateService.kt b/app/src/main/java/com/casic/birmm/inspect/service/BleStateService.kt
new file mode 100644
index 0000000..c8604ab
--- /dev/null
+++ b/app/src/main/java/com/casic/birmm/inspect/service/BleStateService.kt
@@ -0,0 +1,58 @@
+package com.casic.birmm.inspect.service
+
+import android.app.Service
+import android.bluetooth.BluetoothAdapter
+import android.content.BroadcastReceiver
+import android.content.Context
+import android.content.Intent
+import android.os.IBinder
+import com.casic.birmm.inspect.single.fragment.HomePageFragment
+import com.casic.birmm.inspect.utils.CurrentScene
+import com.casic.birmm.inspect.utils.LocaleConstant
+import com.casic.birmm.inspect.utils.RuntimeCache
+import com.pengxh.kt.lite.utils.BroadcastManager
+
+class BleStateService : Service() {
+
+ private val broadcastManager by lazy { BroadcastManager(this) }
+
+ override fun onBind(intent: Intent?): IBinder? {
+ return null
+ }
+
+ override fun onCreate() {
+ super.onCreate()
+ broadcastManager.addAction(object : BroadcastReceiver() {
+ override fun onReceive(context: Context?, intent: Intent?) {
+ if (RuntimeCache.currentScene == null) {
+ return
+ }
+
+ when (intent?.getIntExtra(BluetoothAdapter.EXTRA_STATE, -1)) {
+ BluetoothAdapter.STATE_OFF -> {
+ when (RuntimeCache.currentScene) {
+ CurrentScene.Net -> {
+ com.casic.birmm.inspect.fragment.HomePageFragment.weakReferenceHandler?.sendEmptyMessage(
+ LocaleConstant.BLUETOOTH_OFF
+ )
+ }
+
+ CurrentScene.Single -> {
+ HomePageFragment.weakReferenceHandler?.sendEmptyMessage(
+ LocaleConstant.BLUETOOTH_OFF
+ )
+ }
+
+ else -> {}
+ }
+ }
+ }
+ }
+ }, BluetoothAdapter.ACTION_STATE_CHANGED)
+ }
+
+ override fun onDestroy() {
+ super.onDestroy()
+ broadcastManager.destroy(BluetoothAdapter.ACTION_STATE_CHANGED)
+ }
+}
\ No newline at end of file
diff --git a/app/build.gradle b/app/build.gradle
index 2e5823b..9d0f82e 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -20,8 +20,8 @@
applicationId "com.casic.birmm.inspect"
minSdkVersion 23
targetSdkVersion 33
- versionCode 1070
- versionName "1.0.7"
+ versionCode 1071
+ versionName "1.0.7.1"
}
buildTypes {
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 219d5e2..f5b12de 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -89,6 +89,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 add127a..0e0d400 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
@@ -4,6 +4,8 @@
import android.bluetooth.BluetoothGattCharacteristic
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
@@ -58,6 +60,7 @@
import com.pengxh.kt.lite.utils.LoadState
import com.pengxh.kt.lite.utils.LoadingDialogHub
import com.pengxh.kt.lite.utils.SaveKeyValues
+import com.pengxh.kt.lite.utils.WeakReferenceHandler
import com.pengxh.kt.lite.widget.dialog.AlertControlDialog
import com.pengxh.kt.lite.widget.dialog.AlertInputDialog
import com.pengxh.kt.lite.widget.dialog.BottomActionSheet
@@ -68,7 +71,27 @@
import java.util.LinkedList
import java.util.UUID
-class HomePageFragment : KotlinBaseFragment() {
+class HomePageFragment : KotlinBaseFragment(), Handler.Callback {
+
+ companion object {
+ var weakReferenceHandler: WeakReferenceHandler? = null
+ }
+
+ override fun handleMessage(msg: Message): Boolean {
+ if (msg.what == LocaleConstant.BLUETOOTH_OFF) {
+ bleManager.disconnectAllDevice()
+ latLngs.clear()
+ aMap.clear()//清除原来的路线
+ SaveKeyValues.removeKey(LocaleConstant.DEVICE_CODE)
+ binding.currentValueView.text = "--"
+ binding.settingsValueView.text = "--"
+ binding.maxValueView.text = "--"
+ binding.deviceModelView.text = "产品型号:未连接"
+ binding.deviceCodeView.text = "设备编号:未连接"
+ "设备已断开连接".show(requireContext())
+ }
+ return true
+ }
private val kTag = "HomePageFragment"
private val bleManager by lazy { BleManager.getInstance() }
@@ -105,6 +128,7 @@
override fun initOnCreate(savedInstanceState: Bundle?) {
vibrator = requireContext().getSystemService()
+ weakReferenceHandler = WeakReferenceHandler(this)
bleManager.init(BaseApplication.get())
val scanConfig = BleScanRuleConfig.Builder().setScanTimeOut(3000).build()
diff --git a/app/src/main/java/com/casic/birmm/inspect/service/BleStateService.kt b/app/src/main/java/com/casic/birmm/inspect/service/BleStateService.kt
new file mode 100644
index 0000000..c8604ab
--- /dev/null
+++ b/app/src/main/java/com/casic/birmm/inspect/service/BleStateService.kt
@@ -0,0 +1,58 @@
+package com.casic.birmm.inspect.service
+
+import android.app.Service
+import android.bluetooth.BluetoothAdapter
+import android.content.BroadcastReceiver
+import android.content.Context
+import android.content.Intent
+import android.os.IBinder
+import com.casic.birmm.inspect.single.fragment.HomePageFragment
+import com.casic.birmm.inspect.utils.CurrentScene
+import com.casic.birmm.inspect.utils.LocaleConstant
+import com.casic.birmm.inspect.utils.RuntimeCache
+import com.pengxh.kt.lite.utils.BroadcastManager
+
+class BleStateService : Service() {
+
+ private val broadcastManager by lazy { BroadcastManager(this) }
+
+ override fun onBind(intent: Intent?): IBinder? {
+ return null
+ }
+
+ override fun onCreate() {
+ super.onCreate()
+ broadcastManager.addAction(object : BroadcastReceiver() {
+ override fun onReceive(context: Context?, intent: Intent?) {
+ if (RuntimeCache.currentScene == null) {
+ return
+ }
+
+ when (intent?.getIntExtra(BluetoothAdapter.EXTRA_STATE, -1)) {
+ BluetoothAdapter.STATE_OFF -> {
+ when (RuntimeCache.currentScene) {
+ CurrentScene.Net -> {
+ com.casic.birmm.inspect.fragment.HomePageFragment.weakReferenceHandler?.sendEmptyMessage(
+ LocaleConstant.BLUETOOTH_OFF
+ )
+ }
+
+ CurrentScene.Single -> {
+ HomePageFragment.weakReferenceHandler?.sendEmptyMessage(
+ LocaleConstant.BLUETOOTH_OFF
+ )
+ }
+
+ else -> {}
+ }
+ }
+ }
+ }
+ }, BluetoothAdapter.ACTION_STATE_CHANGED)
+ }
+
+ override fun onDestroy() {
+ super.onDestroy()
+ broadcastManager.destroy(BluetoothAdapter.ACTION_STATE_CHANGED)
+ }
+}
\ No newline at end of file
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 f38bc93..098c79c 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
@@ -4,6 +4,8 @@
import android.bluetooth.BluetoothGattCharacteristic
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
@@ -52,6 +54,7 @@
import com.pengxh.kt.lite.extensions.timestampToDate
import com.pengxh.kt.lite.utils.LoadingDialogHub
import com.pengxh.kt.lite.utils.SaveKeyValues
+import com.pengxh.kt.lite.utils.WeakReferenceHandler
import com.pengxh.kt.lite.widget.dialog.AlertControlDialog
import com.pengxh.kt.lite.widget.dialog.AlertInputDialog
import com.pengxh.kt.lite.widget.dialog.BottomActionSheet
@@ -62,7 +65,27 @@
import java.util.LinkedList
import java.util.UUID
-class HomePageFragment : KotlinBaseFragment() {
+class HomePageFragment : KotlinBaseFragment(), Handler.Callback {
+
+ companion object {
+ var weakReferenceHandler: WeakReferenceHandler? = null
+ }
+
+ override fun handleMessage(msg: Message): Boolean {
+ if (msg.what == LocaleConstant.BLUETOOTH_OFF) {
+ bleManager.disconnectAllDevice()
+ latLngs.clear()
+ aMap.clear()//清除原来的路线
+ SaveKeyValues.removeKey(LocaleConstant.DEVICE_CODE)
+ binding.currentValueView.text = "--"
+ binding.settingsValueView.text = "--"
+ binding.maxValueView.text = "--"
+ binding.deviceModelView.text = "产品型号:未连接"
+ binding.deviceCodeView.text = "设备编号:未连接"
+ "设备已断开连接".show(requireContext())
+ }
+ return true
+ }
private val kTag = "HomePageFragment"
private val bleManager by lazy { BleManager.getInstance() }
@@ -95,6 +118,7 @@
override fun initOnCreate(savedInstanceState: Bundle?) {
vibrator = requireContext().getSystemService()
+ weakReferenceHandler = WeakReferenceHandler(this)
bleManager.init(BaseApplication.get())
val scanConfig = BleScanRuleConfig.Builder().setScanTimeOut(3000).build()
diff --git a/app/build.gradle b/app/build.gradle
index 2e5823b..9d0f82e 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -20,8 +20,8 @@
applicationId "com.casic.birmm.inspect"
minSdkVersion 23
targetSdkVersion 33
- versionCode 1070
- versionName "1.0.7"
+ versionCode 1071
+ versionName "1.0.7.1"
}
buildTypes {
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 219d5e2..f5b12de 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -89,6 +89,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 add127a..0e0d400 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
@@ -4,6 +4,8 @@
import android.bluetooth.BluetoothGattCharacteristic
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
@@ -58,6 +60,7 @@
import com.pengxh.kt.lite.utils.LoadState
import com.pengxh.kt.lite.utils.LoadingDialogHub
import com.pengxh.kt.lite.utils.SaveKeyValues
+import com.pengxh.kt.lite.utils.WeakReferenceHandler
import com.pengxh.kt.lite.widget.dialog.AlertControlDialog
import com.pengxh.kt.lite.widget.dialog.AlertInputDialog
import com.pengxh.kt.lite.widget.dialog.BottomActionSheet
@@ -68,7 +71,27 @@
import java.util.LinkedList
import java.util.UUID
-class HomePageFragment : KotlinBaseFragment() {
+class HomePageFragment : KotlinBaseFragment(), Handler.Callback {
+
+ companion object {
+ var weakReferenceHandler: WeakReferenceHandler? = null
+ }
+
+ override fun handleMessage(msg: Message): Boolean {
+ if (msg.what == LocaleConstant.BLUETOOTH_OFF) {
+ bleManager.disconnectAllDevice()
+ latLngs.clear()
+ aMap.clear()//清除原来的路线
+ SaveKeyValues.removeKey(LocaleConstant.DEVICE_CODE)
+ binding.currentValueView.text = "--"
+ binding.settingsValueView.text = "--"
+ binding.maxValueView.text = "--"
+ binding.deviceModelView.text = "产品型号:未连接"
+ binding.deviceCodeView.text = "设备编号:未连接"
+ "设备已断开连接".show(requireContext())
+ }
+ return true
+ }
private val kTag = "HomePageFragment"
private val bleManager by lazy { BleManager.getInstance() }
@@ -105,6 +128,7 @@
override fun initOnCreate(savedInstanceState: Bundle?) {
vibrator = requireContext().getSystemService()
+ weakReferenceHandler = WeakReferenceHandler(this)
bleManager.init(BaseApplication.get())
val scanConfig = BleScanRuleConfig.Builder().setScanTimeOut(3000).build()
diff --git a/app/src/main/java/com/casic/birmm/inspect/service/BleStateService.kt b/app/src/main/java/com/casic/birmm/inspect/service/BleStateService.kt
new file mode 100644
index 0000000..c8604ab
--- /dev/null
+++ b/app/src/main/java/com/casic/birmm/inspect/service/BleStateService.kt
@@ -0,0 +1,58 @@
+package com.casic.birmm.inspect.service
+
+import android.app.Service
+import android.bluetooth.BluetoothAdapter
+import android.content.BroadcastReceiver
+import android.content.Context
+import android.content.Intent
+import android.os.IBinder
+import com.casic.birmm.inspect.single.fragment.HomePageFragment
+import com.casic.birmm.inspect.utils.CurrentScene
+import com.casic.birmm.inspect.utils.LocaleConstant
+import com.casic.birmm.inspect.utils.RuntimeCache
+import com.pengxh.kt.lite.utils.BroadcastManager
+
+class BleStateService : Service() {
+
+ private val broadcastManager by lazy { BroadcastManager(this) }
+
+ override fun onBind(intent: Intent?): IBinder? {
+ return null
+ }
+
+ override fun onCreate() {
+ super.onCreate()
+ broadcastManager.addAction(object : BroadcastReceiver() {
+ override fun onReceive(context: Context?, intent: Intent?) {
+ if (RuntimeCache.currentScene == null) {
+ return
+ }
+
+ when (intent?.getIntExtra(BluetoothAdapter.EXTRA_STATE, -1)) {
+ BluetoothAdapter.STATE_OFF -> {
+ when (RuntimeCache.currentScene) {
+ CurrentScene.Net -> {
+ com.casic.birmm.inspect.fragment.HomePageFragment.weakReferenceHandler?.sendEmptyMessage(
+ LocaleConstant.BLUETOOTH_OFF
+ )
+ }
+
+ CurrentScene.Single -> {
+ HomePageFragment.weakReferenceHandler?.sendEmptyMessage(
+ LocaleConstant.BLUETOOTH_OFF
+ )
+ }
+
+ else -> {}
+ }
+ }
+ }
+ }
+ }, BluetoothAdapter.ACTION_STATE_CHANGED)
+ }
+
+ override fun onDestroy() {
+ super.onDestroy()
+ broadcastManager.destroy(BluetoothAdapter.ACTION_STATE_CHANGED)
+ }
+}
\ No newline at end of file
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 f38bc93..098c79c 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
@@ -4,6 +4,8 @@
import android.bluetooth.BluetoothGattCharacteristic
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
@@ -52,6 +54,7 @@
import com.pengxh.kt.lite.extensions.timestampToDate
import com.pengxh.kt.lite.utils.LoadingDialogHub
import com.pengxh.kt.lite.utils.SaveKeyValues
+import com.pengxh.kt.lite.utils.WeakReferenceHandler
import com.pengxh.kt.lite.widget.dialog.AlertControlDialog
import com.pengxh.kt.lite.widget.dialog.AlertInputDialog
import com.pengxh.kt.lite.widget.dialog.BottomActionSheet
@@ -62,7 +65,27 @@
import java.util.LinkedList
import java.util.UUID
-class HomePageFragment : KotlinBaseFragment() {
+class HomePageFragment : KotlinBaseFragment(), Handler.Callback {
+
+ companion object {
+ var weakReferenceHandler: WeakReferenceHandler? = null
+ }
+
+ override fun handleMessage(msg: Message): Boolean {
+ if (msg.what == LocaleConstant.BLUETOOTH_OFF) {
+ bleManager.disconnectAllDevice()
+ latLngs.clear()
+ aMap.clear()//清除原来的路线
+ SaveKeyValues.removeKey(LocaleConstant.DEVICE_CODE)
+ binding.currentValueView.text = "--"
+ binding.settingsValueView.text = "--"
+ binding.maxValueView.text = "--"
+ binding.deviceModelView.text = "产品型号:未连接"
+ binding.deviceCodeView.text = "设备编号:未连接"
+ "设备已断开连接".show(requireContext())
+ }
+ return true
+ }
private val kTag = "HomePageFragment"
private val bleManager by lazy { BleManager.getInstance() }
@@ -95,6 +118,7 @@
override fun initOnCreate(savedInstanceState: Bundle?) {
vibrator = requireContext().getSystemService()
+ weakReferenceHandler = WeakReferenceHandler(this)
bleManager.init(BaseApplication.get())
val scanConfig = BleScanRuleConfig.Builder().setScanTimeOut(3000).build()
diff --git a/app/src/main/java/com/casic/birmm/inspect/utils/CurrentScene.kt b/app/src/main/java/com/casic/birmm/inspect/utils/CurrentScene.kt
new file mode 100644
index 0000000..a67759e
--- /dev/null
+++ b/app/src/main/java/com/casic/birmm/inspect/utils/CurrentScene.kt
@@ -0,0 +1,13 @@
+package com.casic.birmm.inspect.utils
+
+sealed class CurrentScene {
+ /**
+ * 网络版
+ * */
+ object Net : CurrentScene()
+
+ /**
+ * 单机版
+ * */
+ object Single : CurrentScene()
+}
\ No newline at end of file
diff --git a/app/build.gradle b/app/build.gradle
index 2e5823b..9d0f82e 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -20,8 +20,8 @@
applicationId "com.casic.birmm.inspect"
minSdkVersion 23
targetSdkVersion 33
- versionCode 1070
- versionName "1.0.7"
+ versionCode 1071
+ versionName "1.0.7.1"
}
buildTypes {
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 219d5e2..f5b12de 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -89,6 +89,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 add127a..0e0d400 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
@@ -4,6 +4,8 @@
import android.bluetooth.BluetoothGattCharacteristic
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
@@ -58,6 +60,7 @@
import com.pengxh.kt.lite.utils.LoadState
import com.pengxh.kt.lite.utils.LoadingDialogHub
import com.pengxh.kt.lite.utils.SaveKeyValues
+import com.pengxh.kt.lite.utils.WeakReferenceHandler
import com.pengxh.kt.lite.widget.dialog.AlertControlDialog
import com.pengxh.kt.lite.widget.dialog.AlertInputDialog
import com.pengxh.kt.lite.widget.dialog.BottomActionSheet
@@ -68,7 +71,27 @@
import java.util.LinkedList
import java.util.UUID
-class HomePageFragment : KotlinBaseFragment() {
+class HomePageFragment : KotlinBaseFragment(), Handler.Callback {
+
+ companion object {
+ var weakReferenceHandler: WeakReferenceHandler? = null
+ }
+
+ override fun handleMessage(msg: Message): Boolean {
+ if (msg.what == LocaleConstant.BLUETOOTH_OFF) {
+ bleManager.disconnectAllDevice()
+ latLngs.clear()
+ aMap.clear()//清除原来的路线
+ SaveKeyValues.removeKey(LocaleConstant.DEVICE_CODE)
+ binding.currentValueView.text = "--"
+ binding.settingsValueView.text = "--"
+ binding.maxValueView.text = "--"
+ binding.deviceModelView.text = "产品型号:未连接"
+ binding.deviceCodeView.text = "设备编号:未连接"
+ "设备已断开连接".show(requireContext())
+ }
+ return true
+ }
private val kTag = "HomePageFragment"
private val bleManager by lazy { BleManager.getInstance() }
@@ -105,6 +128,7 @@
override fun initOnCreate(savedInstanceState: Bundle?) {
vibrator = requireContext().getSystemService()
+ weakReferenceHandler = WeakReferenceHandler(this)
bleManager.init(BaseApplication.get())
val scanConfig = BleScanRuleConfig.Builder().setScanTimeOut(3000).build()
diff --git a/app/src/main/java/com/casic/birmm/inspect/service/BleStateService.kt b/app/src/main/java/com/casic/birmm/inspect/service/BleStateService.kt
new file mode 100644
index 0000000..c8604ab
--- /dev/null
+++ b/app/src/main/java/com/casic/birmm/inspect/service/BleStateService.kt
@@ -0,0 +1,58 @@
+package com.casic.birmm.inspect.service
+
+import android.app.Service
+import android.bluetooth.BluetoothAdapter
+import android.content.BroadcastReceiver
+import android.content.Context
+import android.content.Intent
+import android.os.IBinder
+import com.casic.birmm.inspect.single.fragment.HomePageFragment
+import com.casic.birmm.inspect.utils.CurrentScene
+import com.casic.birmm.inspect.utils.LocaleConstant
+import com.casic.birmm.inspect.utils.RuntimeCache
+import com.pengxh.kt.lite.utils.BroadcastManager
+
+class BleStateService : Service() {
+
+ private val broadcastManager by lazy { BroadcastManager(this) }
+
+ override fun onBind(intent: Intent?): IBinder? {
+ return null
+ }
+
+ override fun onCreate() {
+ super.onCreate()
+ broadcastManager.addAction(object : BroadcastReceiver() {
+ override fun onReceive(context: Context?, intent: Intent?) {
+ if (RuntimeCache.currentScene == null) {
+ return
+ }
+
+ when (intent?.getIntExtra(BluetoothAdapter.EXTRA_STATE, -1)) {
+ BluetoothAdapter.STATE_OFF -> {
+ when (RuntimeCache.currentScene) {
+ CurrentScene.Net -> {
+ com.casic.birmm.inspect.fragment.HomePageFragment.weakReferenceHandler?.sendEmptyMessage(
+ LocaleConstant.BLUETOOTH_OFF
+ )
+ }
+
+ CurrentScene.Single -> {
+ HomePageFragment.weakReferenceHandler?.sendEmptyMessage(
+ LocaleConstant.BLUETOOTH_OFF
+ )
+ }
+
+ else -> {}
+ }
+ }
+ }
+ }
+ }, BluetoothAdapter.ACTION_STATE_CHANGED)
+ }
+
+ override fun onDestroy() {
+ super.onDestroy()
+ broadcastManager.destroy(BluetoothAdapter.ACTION_STATE_CHANGED)
+ }
+}
\ No newline at end of file
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 f38bc93..098c79c 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
@@ -4,6 +4,8 @@
import android.bluetooth.BluetoothGattCharacteristic
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
@@ -52,6 +54,7 @@
import com.pengxh.kt.lite.extensions.timestampToDate
import com.pengxh.kt.lite.utils.LoadingDialogHub
import com.pengxh.kt.lite.utils.SaveKeyValues
+import com.pengxh.kt.lite.utils.WeakReferenceHandler
import com.pengxh.kt.lite.widget.dialog.AlertControlDialog
import com.pengxh.kt.lite.widget.dialog.AlertInputDialog
import com.pengxh.kt.lite.widget.dialog.BottomActionSheet
@@ -62,7 +65,27 @@
import java.util.LinkedList
import java.util.UUID
-class HomePageFragment : KotlinBaseFragment() {
+class HomePageFragment : KotlinBaseFragment(), Handler.Callback {
+
+ companion object {
+ var weakReferenceHandler: WeakReferenceHandler? = null
+ }
+
+ override fun handleMessage(msg: Message): Boolean {
+ if (msg.what == LocaleConstant.BLUETOOTH_OFF) {
+ bleManager.disconnectAllDevice()
+ latLngs.clear()
+ aMap.clear()//清除原来的路线
+ SaveKeyValues.removeKey(LocaleConstant.DEVICE_CODE)
+ binding.currentValueView.text = "--"
+ binding.settingsValueView.text = "--"
+ binding.maxValueView.text = "--"
+ binding.deviceModelView.text = "产品型号:未连接"
+ binding.deviceCodeView.text = "设备编号:未连接"
+ "设备已断开连接".show(requireContext())
+ }
+ return true
+ }
private val kTag = "HomePageFragment"
private val bleManager by lazy { BleManager.getInstance() }
@@ -95,6 +118,7 @@
override fun initOnCreate(savedInstanceState: Bundle?) {
vibrator = requireContext().getSystemService()
+ weakReferenceHandler = WeakReferenceHandler(this)
bleManager.init(BaseApplication.get())
val scanConfig = BleScanRuleConfig.Builder().setScanTimeOut(3000).build()
diff --git a/app/src/main/java/com/casic/birmm/inspect/utils/CurrentScene.kt b/app/src/main/java/com/casic/birmm/inspect/utils/CurrentScene.kt
new file mode 100644
index 0000000..a67759e
--- /dev/null
+++ b/app/src/main/java/com/casic/birmm/inspect/utils/CurrentScene.kt
@@ -0,0 +1,13 @@
+package com.casic.birmm.inspect.utils
+
+sealed class CurrentScene {
+ /**
+ * 网络版
+ * */
+ object Net : CurrentScene()
+
+ /**
+ * 单机版
+ * */
+ object Single : CurrentScene()
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/birmm/inspect/utils/LocaleConstant.kt b/app/src/main/java/com/casic/birmm/inspect/utils/LocaleConstant.kt
index 0fc27b6..5b23f00 100644
--- a/app/src/main/java/com/casic/birmm/inspect/utils/LocaleConstant.kt
+++ b/app/src/main/java/com/casic/birmm/inspect/utils/LocaleConstant.kt
@@ -108,18 +108,7 @@
* */
const val PERMISSIONS_CODE = 999
const val PAGE_LIMIT = 10
- const val BLUETOOTH_ON = 20
const val BLUETOOTH_OFF = 21
- const val CONNECT_SUCCESS = 22
- const val CONNECT_FAILURE = 23
- const val DISCONNECT_SUCCESS = 24
- const val SEND_SUCCESS = 25
- const val SEND_FAILURE = 26
- const val RECEIVE_SUCCESS = 27
- const val RECEIVE_FAILURE = 28
- const val DISCOVERY_DEVICE = 29
- const val DISCOVERY_OUT_TIME = 30
- const val STOP_TASK = 31
const val LOAD_INSPECTION = 32
const val LOAD_EVENT = 33
diff --git a/app/build.gradle b/app/build.gradle
index 2e5823b..9d0f82e 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -20,8 +20,8 @@
applicationId "com.casic.birmm.inspect"
minSdkVersion 23
targetSdkVersion 33
- versionCode 1070
- versionName "1.0.7"
+ versionCode 1071
+ versionName "1.0.7.1"
}
buildTypes {
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 219d5e2..f5b12de 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -89,6 +89,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 add127a..0e0d400 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
@@ -4,6 +4,8 @@
import android.bluetooth.BluetoothGattCharacteristic
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
@@ -58,6 +60,7 @@
import com.pengxh.kt.lite.utils.LoadState
import com.pengxh.kt.lite.utils.LoadingDialogHub
import com.pengxh.kt.lite.utils.SaveKeyValues
+import com.pengxh.kt.lite.utils.WeakReferenceHandler
import com.pengxh.kt.lite.widget.dialog.AlertControlDialog
import com.pengxh.kt.lite.widget.dialog.AlertInputDialog
import com.pengxh.kt.lite.widget.dialog.BottomActionSheet
@@ -68,7 +71,27 @@
import java.util.LinkedList
import java.util.UUID
-class HomePageFragment : KotlinBaseFragment() {
+class HomePageFragment : KotlinBaseFragment(), Handler.Callback {
+
+ companion object {
+ var weakReferenceHandler: WeakReferenceHandler? = null
+ }
+
+ override fun handleMessage(msg: Message): Boolean {
+ if (msg.what == LocaleConstant.BLUETOOTH_OFF) {
+ bleManager.disconnectAllDevice()
+ latLngs.clear()
+ aMap.clear()//清除原来的路线
+ SaveKeyValues.removeKey(LocaleConstant.DEVICE_CODE)
+ binding.currentValueView.text = "--"
+ binding.settingsValueView.text = "--"
+ binding.maxValueView.text = "--"
+ binding.deviceModelView.text = "产品型号:未连接"
+ binding.deviceCodeView.text = "设备编号:未连接"
+ "设备已断开连接".show(requireContext())
+ }
+ return true
+ }
private val kTag = "HomePageFragment"
private val bleManager by lazy { BleManager.getInstance() }
@@ -105,6 +128,7 @@
override fun initOnCreate(savedInstanceState: Bundle?) {
vibrator = requireContext().getSystemService()
+ weakReferenceHandler = WeakReferenceHandler(this)
bleManager.init(BaseApplication.get())
val scanConfig = BleScanRuleConfig.Builder().setScanTimeOut(3000).build()
diff --git a/app/src/main/java/com/casic/birmm/inspect/service/BleStateService.kt b/app/src/main/java/com/casic/birmm/inspect/service/BleStateService.kt
new file mode 100644
index 0000000..c8604ab
--- /dev/null
+++ b/app/src/main/java/com/casic/birmm/inspect/service/BleStateService.kt
@@ -0,0 +1,58 @@
+package com.casic.birmm.inspect.service
+
+import android.app.Service
+import android.bluetooth.BluetoothAdapter
+import android.content.BroadcastReceiver
+import android.content.Context
+import android.content.Intent
+import android.os.IBinder
+import com.casic.birmm.inspect.single.fragment.HomePageFragment
+import com.casic.birmm.inspect.utils.CurrentScene
+import com.casic.birmm.inspect.utils.LocaleConstant
+import com.casic.birmm.inspect.utils.RuntimeCache
+import com.pengxh.kt.lite.utils.BroadcastManager
+
+class BleStateService : Service() {
+
+ private val broadcastManager by lazy { BroadcastManager(this) }
+
+ override fun onBind(intent: Intent?): IBinder? {
+ return null
+ }
+
+ override fun onCreate() {
+ super.onCreate()
+ broadcastManager.addAction(object : BroadcastReceiver() {
+ override fun onReceive(context: Context?, intent: Intent?) {
+ if (RuntimeCache.currentScene == null) {
+ return
+ }
+
+ when (intent?.getIntExtra(BluetoothAdapter.EXTRA_STATE, -1)) {
+ BluetoothAdapter.STATE_OFF -> {
+ when (RuntimeCache.currentScene) {
+ CurrentScene.Net -> {
+ com.casic.birmm.inspect.fragment.HomePageFragment.weakReferenceHandler?.sendEmptyMessage(
+ LocaleConstant.BLUETOOTH_OFF
+ )
+ }
+
+ CurrentScene.Single -> {
+ HomePageFragment.weakReferenceHandler?.sendEmptyMessage(
+ LocaleConstant.BLUETOOTH_OFF
+ )
+ }
+
+ else -> {}
+ }
+ }
+ }
+ }
+ }, BluetoothAdapter.ACTION_STATE_CHANGED)
+ }
+
+ override fun onDestroy() {
+ super.onDestroy()
+ broadcastManager.destroy(BluetoothAdapter.ACTION_STATE_CHANGED)
+ }
+}
\ No newline at end of file
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 f38bc93..098c79c 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
@@ -4,6 +4,8 @@
import android.bluetooth.BluetoothGattCharacteristic
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
@@ -52,6 +54,7 @@
import com.pengxh.kt.lite.extensions.timestampToDate
import com.pengxh.kt.lite.utils.LoadingDialogHub
import com.pengxh.kt.lite.utils.SaveKeyValues
+import com.pengxh.kt.lite.utils.WeakReferenceHandler
import com.pengxh.kt.lite.widget.dialog.AlertControlDialog
import com.pengxh.kt.lite.widget.dialog.AlertInputDialog
import com.pengxh.kt.lite.widget.dialog.BottomActionSheet
@@ -62,7 +65,27 @@
import java.util.LinkedList
import java.util.UUID
-class HomePageFragment : KotlinBaseFragment() {
+class HomePageFragment : KotlinBaseFragment(), Handler.Callback {
+
+ companion object {
+ var weakReferenceHandler: WeakReferenceHandler? = null
+ }
+
+ override fun handleMessage(msg: Message): Boolean {
+ if (msg.what == LocaleConstant.BLUETOOTH_OFF) {
+ bleManager.disconnectAllDevice()
+ latLngs.clear()
+ aMap.clear()//清除原来的路线
+ SaveKeyValues.removeKey(LocaleConstant.DEVICE_CODE)
+ binding.currentValueView.text = "--"
+ binding.settingsValueView.text = "--"
+ binding.maxValueView.text = "--"
+ binding.deviceModelView.text = "产品型号:未连接"
+ binding.deviceCodeView.text = "设备编号:未连接"
+ "设备已断开连接".show(requireContext())
+ }
+ return true
+ }
private val kTag = "HomePageFragment"
private val bleManager by lazy { BleManager.getInstance() }
@@ -95,6 +118,7 @@
override fun initOnCreate(savedInstanceState: Bundle?) {
vibrator = requireContext().getSystemService()
+ weakReferenceHandler = WeakReferenceHandler(this)
bleManager.init(BaseApplication.get())
val scanConfig = BleScanRuleConfig.Builder().setScanTimeOut(3000).build()
diff --git a/app/src/main/java/com/casic/birmm/inspect/utils/CurrentScene.kt b/app/src/main/java/com/casic/birmm/inspect/utils/CurrentScene.kt
new file mode 100644
index 0000000..a67759e
--- /dev/null
+++ b/app/src/main/java/com/casic/birmm/inspect/utils/CurrentScene.kt
@@ -0,0 +1,13 @@
+package com.casic.birmm.inspect.utils
+
+sealed class CurrentScene {
+ /**
+ * 网络版
+ * */
+ object Net : CurrentScene()
+
+ /**
+ * 单机版
+ * */
+ object Single : CurrentScene()
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/birmm/inspect/utils/LocaleConstant.kt b/app/src/main/java/com/casic/birmm/inspect/utils/LocaleConstant.kt
index 0fc27b6..5b23f00 100644
--- a/app/src/main/java/com/casic/birmm/inspect/utils/LocaleConstant.kt
+++ b/app/src/main/java/com/casic/birmm/inspect/utils/LocaleConstant.kt
@@ -108,18 +108,7 @@
* */
const val PERMISSIONS_CODE = 999
const val PAGE_LIMIT = 10
- const val BLUETOOTH_ON = 20
const val BLUETOOTH_OFF = 21
- const val CONNECT_SUCCESS = 22
- const val CONNECT_FAILURE = 23
- const val DISCONNECT_SUCCESS = 24
- const val SEND_SUCCESS = 25
- const val SEND_FAILURE = 26
- const val RECEIVE_SUCCESS = 27
- const val RECEIVE_FAILURE = 28
- const val DISCOVERY_DEVICE = 29
- const val DISCOVERY_OUT_TIME = 30
- const val STOP_TASK = 31
const val LOAD_INSPECTION = 32
const val LOAD_EVENT = 33
diff --git a/app/src/main/java/com/casic/birmm/inspect/utils/RuntimeCache.kt b/app/src/main/java/com/casic/birmm/inspect/utils/RuntimeCache.kt
new file mode 100644
index 0000000..b0ff912
--- /dev/null
+++ b/app/src/main/java/com/casic/birmm/inspect/utils/RuntimeCache.kt
@@ -0,0 +1,5 @@
+package com.casic.birmm.inspect.utils
+
+object RuntimeCache {
+ var currentScene: CurrentScene? = null
+}
\ No newline at end of file
diff --git a/app/build.gradle b/app/build.gradle
index 2e5823b..9d0f82e 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -20,8 +20,8 @@
applicationId "com.casic.birmm.inspect"
minSdkVersion 23
targetSdkVersion 33
- versionCode 1070
- versionName "1.0.7"
+ versionCode 1071
+ versionName "1.0.7.1"
}
buildTypes {
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 219d5e2..f5b12de 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -89,6 +89,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 add127a..0e0d400 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
@@ -4,6 +4,8 @@
import android.bluetooth.BluetoothGattCharacteristic
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
@@ -58,6 +60,7 @@
import com.pengxh.kt.lite.utils.LoadState
import com.pengxh.kt.lite.utils.LoadingDialogHub
import com.pengxh.kt.lite.utils.SaveKeyValues
+import com.pengxh.kt.lite.utils.WeakReferenceHandler
import com.pengxh.kt.lite.widget.dialog.AlertControlDialog
import com.pengxh.kt.lite.widget.dialog.AlertInputDialog
import com.pengxh.kt.lite.widget.dialog.BottomActionSheet
@@ -68,7 +71,27 @@
import java.util.LinkedList
import java.util.UUID
-class HomePageFragment : KotlinBaseFragment() {
+class HomePageFragment : KotlinBaseFragment(), Handler.Callback {
+
+ companion object {
+ var weakReferenceHandler: WeakReferenceHandler? = null
+ }
+
+ override fun handleMessage(msg: Message): Boolean {
+ if (msg.what == LocaleConstant.BLUETOOTH_OFF) {
+ bleManager.disconnectAllDevice()
+ latLngs.clear()
+ aMap.clear()//清除原来的路线
+ SaveKeyValues.removeKey(LocaleConstant.DEVICE_CODE)
+ binding.currentValueView.text = "--"
+ binding.settingsValueView.text = "--"
+ binding.maxValueView.text = "--"
+ binding.deviceModelView.text = "产品型号:未连接"
+ binding.deviceCodeView.text = "设备编号:未连接"
+ "设备已断开连接".show(requireContext())
+ }
+ return true
+ }
private val kTag = "HomePageFragment"
private val bleManager by lazy { BleManager.getInstance() }
@@ -105,6 +128,7 @@
override fun initOnCreate(savedInstanceState: Bundle?) {
vibrator = requireContext().getSystemService()
+ weakReferenceHandler = WeakReferenceHandler(this)
bleManager.init(BaseApplication.get())
val scanConfig = BleScanRuleConfig.Builder().setScanTimeOut(3000).build()
diff --git a/app/src/main/java/com/casic/birmm/inspect/service/BleStateService.kt b/app/src/main/java/com/casic/birmm/inspect/service/BleStateService.kt
new file mode 100644
index 0000000..c8604ab
--- /dev/null
+++ b/app/src/main/java/com/casic/birmm/inspect/service/BleStateService.kt
@@ -0,0 +1,58 @@
+package com.casic.birmm.inspect.service
+
+import android.app.Service
+import android.bluetooth.BluetoothAdapter
+import android.content.BroadcastReceiver
+import android.content.Context
+import android.content.Intent
+import android.os.IBinder
+import com.casic.birmm.inspect.single.fragment.HomePageFragment
+import com.casic.birmm.inspect.utils.CurrentScene
+import com.casic.birmm.inspect.utils.LocaleConstant
+import com.casic.birmm.inspect.utils.RuntimeCache
+import com.pengxh.kt.lite.utils.BroadcastManager
+
+class BleStateService : Service() {
+
+ private val broadcastManager by lazy { BroadcastManager(this) }
+
+ override fun onBind(intent: Intent?): IBinder? {
+ return null
+ }
+
+ override fun onCreate() {
+ super.onCreate()
+ broadcastManager.addAction(object : BroadcastReceiver() {
+ override fun onReceive(context: Context?, intent: Intent?) {
+ if (RuntimeCache.currentScene == null) {
+ return
+ }
+
+ when (intent?.getIntExtra(BluetoothAdapter.EXTRA_STATE, -1)) {
+ BluetoothAdapter.STATE_OFF -> {
+ when (RuntimeCache.currentScene) {
+ CurrentScene.Net -> {
+ com.casic.birmm.inspect.fragment.HomePageFragment.weakReferenceHandler?.sendEmptyMessage(
+ LocaleConstant.BLUETOOTH_OFF
+ )
+ }
+
+ CurrentScene.Single -> {
+ HomePageFragment.weakReferenceHandler?.sendEmptyMessage(
+ LocaleConstant.BLUETOOTH_OFF
+ )
+ }
+
+ else -> {}
+ }
+ }
+ }
+ }
+ }, BluetoothAdapter.ACTION_STATE_CHANGED)
+ }
+
+ override fun onDestroy() {
+ super.onDestroy()
+ broadcastManager.destroy(BluetoothAdapter.ACTION_STATE_CHANGED)
+ }
+}
\ No newline at end of file
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 f38bc93..098c79c 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
@@ -4,6 +4,8 @@
import android.bluetooth.BluetoothGattCharacteristic
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
@@ -52,6 +54,7 @@
import com.pengxh.kt.lite.extensions.timestampToDate
import com.pengxh.kt.lite.utils.LoadingDialogHub
import com.pengxh.kt.lite.utils.SaveKeyValues
+import com.pengxh.kt.lite.utils.WeakReferenceHandler
import com.pengxh.kt.lite.widget.dialog.AlertControlDialog
import com.pengxh.kt.lite.widget.dialog.AlertInputDialog
import com.pengxh.kt.lite.widget.dialog.BottomActionSheet
@@ -62,7 +65,27 @@
import java.util.LinkedList
import java.util.UUID
-class HomePageFragment : KotlinBaseFragment() {
+class HomePageFragment : KotlinBaseFragment(), Handler.Callback {
+
+ companion object {
+ var weakReferenceHandler: WeakReferenceHandler? = null
+ }
+
+ override fun handleMessage(msg: Message): Boolean {
+ if (msg.what == LocaleConstant.BLUETOOTH_OFF) {
+ bleManager.disconnectAllDevice()
+ latLngs.clear()
+ aMap.clear()//清除原来的路线
+ SaveKeyValues.removeKey(LocaleConstant.DEVICE_CODE)
+ binding.currentValueView.text = "--"
+ binding.settingsValueView.text = "--"
+ binding.maxValueView.text = "--"
+ binding.deviceModelView.text = "产品型号:未连接"
+ binding.deviceCodeView.text = "设备编号:未连接"
+ "设备已断开连接".show(requireContext())
+ }
+ return true
+ }
private val kTag = "HomePageFragment"
private val bleManager by lazy { BleManager.getInstance() }
@@ -95,6 +118,7 @@
override fun initOnCreate(savedInstanceState: Bundle?) {
vibrator = requireContext().getSystemService()
+ weakReferenceHandler = WeakReferenceHandler(this)
bleManager.init(BaseApplication.get())
val scanConfig = BleScanRuleConfig.Builder().setScanTimeOut(3000).build()
diff --git a/app/src/main/java/com/casic/birmm/inspect/utils/CurrentScene.kt b/app/src/main/java/com/casic/birmm/inspect/utils/CurrentScene.kt
new file mode 100644
index 0000000..a67759e
--- /dev/null
+++ b/app/src/main/java/com/casic/birmm/inspect/utils/CurrentScene.kt
@@ -0,0 +1,13 @@
+package com.casic.birmm.inspect.utils
+
+sealed class CurrentScene {
+ /**
+ * 网络版
+ * */
+ object Net : CurrentScene()
+
+ /**
+ * 单机版
+ * */
+ object Single : CurrentScene()
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/birmm/inspect/utils/LocaleConstant.kt b/app/src/main/java/com/casic/birmm/inspect/utils/LocaleConstant.kt
index 0fc27b6..5b23f00 100644
--- a/app/src/main/java/com/casic/birmm/inspect/utils/LocaleConstant.kt
+++ b/app/src/main/java/com/casic/birmm/inspect/utils/LocaleConstant.kt
@@ -108,18 +108,7 @@
* */
const val PERMISSIONS_CODE = 999
const val PAGE_LIMIT = 10
- const val BLUETOOTH_ON = 20
const val BLUETOOTH_OFF = 21
- const val CONNECT_SUCCESS = 22
- const val CONNECT_FAILURE = 23
- const val DISCONNECT_SUCCESS = 24
- const val SEND_SUCCESS = 25
- const val SEND_FAILURE = 26
- const val RECEIVE_SUCCESS = 27
- const val RECEIVE_FAILURE = 28
- const val DISCOVERY_DEVICE = 29
- const val DISCOVERY_OUT_TIME = 30
- const val STOP_TASK = 31
const val LOAD_INSPECTION = 32
const val LOAD_EVENT = 33
diff --git a/app/src/main/java/com/casic/birmm/inspect/utils/RuntimeCache.kt b/app/src/main/java/com/casic/birmm/inspect/utils/RuntimeCache.kt
new file mode 100644
index 0000000..b0ff912
--- /dev/null
+++ b/app/src/main/java/com/casic/birmm/inspect/utils/RuntimeCache.kt
@@ -0,0 +1,5 @@
+package com.casic.birmm.inspect.utils
+
+object RuntimeCache {
+ var currentScene: CurrentScene? = null
+}
\ No newline at end of file
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 9710a3c..531f5ca 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
@@ -1,14 +1,18 @@
package com.casic.birmm.inspect.view
+import android.content.Intent
import android.os.Build
import android.os.Bundle
import androidx.lifecycle.ViewModelProvider
import com.bumptech.glide.Glide
import com.casic.birmm.inspect.R
import com.casic.birmm.inspect.databinding.ActivityLoginBinding
+import com.casic.birmm.inspect.service.BleStateService
import com.casic.birmm.inspect.utils.AuthenticationHelper
+import com.casic.birmm.inspect.utils.CurrentScene
import com.casic.birmm.inspect.utils.LocaleConstant
import com.casic.birmm.inspect.utils.RSAUtils
+import com.casic.birmm.inspect.utils.RuntimeCache
import com.casic.birmm.inspect.vm.AuthenticateViewModel
import com.casic.birmm.inspect.vm.UserViewModel
import com.gyf.immersionbar.ImmersionBar
@@ -55,10 +59,14 @@
SaveKeyValues.putValue(LocaleConstant.USER_NAME, user.data.name)//保存用户对象
SaveKeyValues.putValue(LocaleConstant.USER_OBJECT, user.toJson())//保存用户对象
+ RuntimeCache.currentScene = CurrentScene.Net
+
ActivityStackManager.finishAllActivity()
navigatePageTo()
}
}
+
+ startService(Intent(this, BleStateService::class.java))
}
override fun observeRequestState() {
@@ -114,6 +122,7 @@
//单机模式
binding.singleModeView.setOnClickListener {
+ RuntimeCache.currentScene = CurrentScene.Single
navigatePageTo()
finish()
}