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() }