From 166a56a75d0eedec9d4cd521c78397e59ba49487 Mon Sep 17 00:00:00 2001 From: Mike Cumings Date: Fri, 22 Apr 2022 10:09:30 -0700 Subject: [PATCH 1/2] Extract `RadioNotConnectedException` out of `RadioInterfaceService` --- .../java/com/geeksville/mesh/service/RadioInterfaceService.kt | 4 ---- .../com/geeksville/mesh/service/RadioNotConnectedException.kt | 4 ++++ 2 files changed, 4 insertions(+), 4 deletions(-) create mode 100644 app/src/main/java/com/geeksville/mesh/service/RadioNotConnectedException.kt diff --git a/app/src/main/java/com/geeksville/mesh/service/RadioInterfaceService.kt b/app/src/main/java/com/geeksville/mesh/service/RadioInterfaceService.kt index 559d8c673..953db4b06 100644 --- a/app/src/main/java/com/geeksville/mesh/service/RadioInterfaceService.kt +++ b/app/src/main/java/com/geeksville/mesh/service/RadioInterfaceService.kt @@ -25,10 +25,6 @@ import kotlinx.coroutines.* import javax.inject.Inject -open class RadioNotConnectedException(message: String = "Not connected to radio") : - BLEException(message) - - /** * Handles the bluetooth link with a mesh radio device. Does not cache any device state, * just does bluetooth comms etc... diff --git a/app/src/main/java/com/geeksville/mesh/service/RadioNotConnectedException.kt b/app/src/main/java/com/geeksville/mesh/service/RadioNotConnectedException.kt new file mode 100644 index 000000000..21454800d --- /dev/null +++ b/app/src/main/java/com/geeksville/mesh/service/RadioNotConnectedException.kt @@ -0,0 +1,4 @@ +package com.geeksville.mesh.service + +open class RadioNotConnectedException(message: String = "Not connected to radio") : + BLEException(message) \ No newline at end of file From 4f6357103b21dc7309606f936990bc7c8bfbe909 Mon Sep 17 00:00:00 2001 From: Mike Cumings Date: Fri, 22 Apr 2022 10:22:03 -0700 Subject: [PATCH 2/2] Move radio service code verbatim into `repository/radio` --- app/src/main/AndroidManifest.xml | 2 +- app/src/main/java/com/geeksville/mesh/MainActivity.kt | 2 ++ .../java/com/geeksville/mesh/android/ContextServices.kt | 2 +- .../{service => repository/radio}/BluetoothInterface.kt | 3 ++- .../{service => repository/radio}/IRadioInterface.kt | 2 +- .../{service => repository/radio}/InterfaceFactory.kt | 2 +- .../mesh/{service => repository/radio}/MockInterface.kt | 2 +- .../mesh/{service => repository/radio}/NopInterface.kt | 2 +- .../radio}/RadioInterfaceService.kt | 9 +++++++-- .../{service => repository/radio}/SerialInterface.kt | 2 +- .../{service => repository/radio}/StreamInterface.kt | 2 +- .../mesh/{service => repository/radio}/TCPInterface.kt | 2 +- .../main/java/com/geeksville/mesh/service/MeshService.kt | 2 ++ .../main/java/com/geeksville/mesh/ui/SettingsFragment.kt | 4 ++++ 14 files changed, 26 insertions(+), 12 deletions(-) rename app/src/main/java/com/geeksville/mesh/{service => repository/radio}/BluetoothInterface.kt (99%) rename app/src/main/java/com/geeksville/mesh/{service => repository/radio}/IRadioInterface.kt (70%) rename app/src/main/java/com/geeksville/mesh/{service => repository/radio}/InterfaceFactory.kt (94%) rename app/src/main/java/com/geeksville/mesh/{service => repository/radio}/MockInterface.kt (99%) rename app/src/main/java/com/geeksville/mesh/{service => repository/radio}/NopInterface.kt (93%) rename app/src/main/java/com/geeksville/mesh/{service => repository/radio}/RadioInterfaceService.kt (97%) rename app/src/main/java/com/geeksville/mesh/{service => repository/radio}/SerialInterface.kt (98%) rename app/src/main/java/com/geeksville/mesh/{service => repository/radio}/StreamInterface.kt (99%) rename app/src/main/java/com/geeksville/mesh/{service => repository/radio}/TCPInterface.kt (98%) diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 723da6332..f9b82f0b3 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -117,7 +117,7 @@ diff --git a/app/src/main/java/com/geeksville/mesh/MainActivity.kt b/app/src/main/java/com/geeksville/mesh/MainActivity.kt index 66ce9a683..9af48e8cd 100644 --- a/app/src/main/java/com/geeksville/mesh/MainActivity.kt +++ b/app/src/main/java/com/geeksville/mesh/MainActivity.kt @@ -39,6 +39,8 @@ import com.geeksville.mesh.model.BluetoothViewModel import com.geeksville.mesh.model.ChannelSet import com.geeksville.mesh.model.DeviceVersion import com.geeksville.mesh.model.UIViewModel +import com.geeksville.mesh.repository.radio.RadioInterfaceService +import com.geeksville.mesh.repository.radio.SerialInterface import com.geeksville.mesh.repository.usb.UsbRepository import com.geeksville.mesh.service.* import com.geeksville.mesh.ui.* diff --git a/app/src/main/java/com/geeksville/mesh/android/ContextServices.kt b/app/src/main/java/com/geeksville/mesh/android/ContextServices.kt index 6f2312bf8..11b9e9f82 100644 --- a/app/src/main/java/com/geeksville/mesh/android/ContextServices.kt +++ b/app/src/main/java/com/geeksville/mesh/android/ContextServices.kt @@ -8,7 +8,7 @@ import android.content.pm.PackageManager import android.hardware.usb.UsbManager import android.os.Build import androidx.core.content.ContextCompat -import com.geeksville.mesh.service.BluetoothInterface +import com.geeksville.mesh.repository.radio.BluetoothInterface /** * @return null on platforms without a BlueTooth driver (i.e. the emulator) diff --git a/app/src/main/java/com/geeksville/mesh/service/BluetoothInterface.kt b/app/src/main/java/com/geeksville/mesh/repository/radio/BluetoothInterface.kt similarity index 99% rename from app/src/main/java/com/geeksville/mesh/service/BluetoothInterface.kt rename to app/src/main/java/com/geeksville/mesh/repository/radio/BluetoothInterface.kt index c483ae204..f4861f782 100644 --- a/app/src/main/java/com/geeksville/mesh/service/BluetoothInterface.kt +++ b/app/src/main/java/com/geeksville/mesh/repository/radio/BluetoothInterface.kt @@ -1,4 +1,4 @@ -package com.geeksville.mesh.service +package com.geeksville.mesh.repository.radio import android.annotation.SuppressLint import android.bluetooth.BluetoothAdapter @@ -11,6 +11,7 @@ import android.os.Build import com.geeksville.android.Logging import com.geeksville.concurrent.handledLaunch import com.geeksville.mesh.repository.usb.UsbRepository +import com.geeksville.mesh.service.* import com.geeksville.util.anonymize import com.geeksville.util.exceptionReporter import com.geeksville.util.ignoreException diff --git a/app/src/main/java/com/geeksville/mesh/service/IRadioInterface.kt b/app/src/main/java/com/geeksville/mesh/repository/radio/IRadioInterface.kt similarity index 70% rename from app/src/main/java/com/geeksville/mesh/service/IRadioInterface.kt rename to app/src/main/java/com/geeksville/mesh/repository/radio/IRadioInterface.kt index a45d0aa99..e60b7804e 100644 --- a/app/src/main/java/com/geeksville/mesh/service/IRadioInterface.kt +++ b/app/src/main/java/com/geeksville/mesh/repository/radio/IRadioInterface.kt @@ -1,4 +1,4 @@ -package com.geeksville.mesh.service +package com.geeksville.mesh.repository.radio import java.io.Closeable diff --git a/app/src/main/java/com/geeksville/mesh/service/InterfaceFactory.kt b/app/src/main/java/com/geeksville/mesh/repository/radio/InterfaceFactory.kt similarity index 94% rename from app/src/main/java/com/geeksville/mesh/service/InterfaceFactory.kt rename to app/src/main/java/com/geeksville/mesh/repository/radio/InterfaceFactory.kt index 02d6d26f2..0720a79a4 100644 --- a/app/src/main/java/com/geeksville/mesh/service/InterfaceFactory.kt +++ b/app/src/main/java/com/geeksville/mesh/repository/radio/InterfaceFactory.kt @@ -1,4 +1,4 @@ -package com.geeksville.mesh.service +package com.geeksville.mesh.repository.radio import android.content.Context import com.geeksville.mesh.repository.usb.UsbRepository diff --git a/app/src/main/java/com/geeksville/mesh/service/MockInterface.kt b/app/src/main/java/com/geeksville/mesh/repository/radio/MockInterface.kt similarity index 99% rename from app/src/main/java/com/geeksville/mesh/service/MockInterface.kt rename to app/src/main/java/com/geeksville/mesh/repository/radio/MockInterface.kt index ecad79c29..e019fb691 100644 --- a/app/src/main/java/com/geeksville/mesh/service/MockInterface.kt +++ b/app/src/main/java/com/geeksville/mesh/repository/radio/MockInterface.kt @@ -1,4 +1,4 @@ -package com.geeksville.mesh.service +package com.geeksville.mesh.repository.radio import android.content.Context import com.geeksville.android.BuildUtils diff --git a/app/src/main/java/com/geeksville/mesh/service/NopInterface.kt b/app/src/main/java/com/geeksville/mesh/repository/radio/NopInterface.kt similarity index 93% rename from app/src/main/java/com/geeksville/mesh/service/NopInterface.kt rename to app/src/main/java/com/geeksville/mesh/repository/radio/NopInterface.kt index 48d72d90c..c71a958bf 100644 --- a/app/src/main/java/com/geeksville/mesh/service/NopInterface.kt +++ b/app/src/main/java/com/geeksville/mesh/repository/radio/NopInterface.kt @@ -1,4 +1,4 @@ -package com.geeksville.mesh.service +package com.geeksville.mesh.repository.radio import com.geeksville.android.Logging import com.geeksville.mesh.repository.usb.UsbRepository diff --git a/app/src/main/java/com/geeksville/mesh/service/RadioInterfaceService.kt b/app/src/main/java/com/geeksville/mesh/repository/radio/RadioInterfaceService.kt similarity index 97% rename from app/src/main/java/com/geeksville/mesh/service/RadioInterfaceService.kt rename to app/src/main/java/com/geeksville/mesh/repository/radio/RadioInterfaceService.kt index 953db4b06..b64896179 100644 --- a/app/src/main/java/com/geeksville/mesh/service/RadioInterfaceService.kt +++ b/app/src/main/java/com/geeksville/mesh/repository/radio/RadioInterfaceService.kt @@ -1,4 +1,4 @@ -package com.geeksville.mesh.service +package com.geeksville.mesh.repository.radio import android.annotation.SuppressLint import android.app.Service @@ -17,6 +17,10 @@ import com.geeksville.concurrent.handledLaunch import com.geeksville.mesh.IRadioInterfaceService import com.geeksville.mesh.repository.bluetooth.BluetoothRepository import com.geeksville.mesh.repository.usb.UsbRepository +import com.geeksville.mesh.service.EXTRA_CONNECTED +import com.geeksville.mesh.service.EXTRA_PAYLOAD +import com.geeksville.mesh.service.EXTRA_PERMANENT +import com.geeksville.mesh.service.prefix import com.geeksville.util.anonymize import com.geeksville.util.ignoreException import com.geeksville.util.toRemoteExceptions @@ -122,7 +126,8 @@ class RadioInterfaceService : Service(), Logging { if (address != null) { val c = address[0] val rest = address.substring(1) - val isValid = InterfaceFactory.getFactory(c)?.addressValid(context, usbRepository, rest) ?: false + val isValid = InterfaceFactory.getFactory(c) + ?.addressValid(context, usbRepository, rest) ?: false if (!isValid) return null } diff --git a/app/src/main/java/com/geeksville/mesh/service/SerialInterface.kt b/app/src/main/java/com/geeksville/mesh/repository/radio/SerialInterface.kt similarity index 98% rename from app/src/main/java/com/geeksville/mesh/service/SerialInterface.kt rename to app/src/main/java/com/geeksville/mesh/repository/radio/SerialInterface.kt index 6e347e815..0c58a9546 100644 --- a/app/src/main/java/com/geeksville/mesh/service/SerialInterface.kt +++ b/app/src/main/java/com/geeksville/mesh/repository/radio/SerialInterface.kt @@ -1,4 +1,4 @@ -package com.geeksville.mesh.service +package com.geeksville.mesh.repository.radio import android.content.Context import com.geeksville.android.Logging diff --git a/app/src/main/java/com/geeksville/mesh/service/StreamInterface.kt b/app/src/main/java/com/geeksville/mesh/repository/radio/StreamInterface.kt similarity index 99% rename from app/src/main/java/com/geeksville/mesh/service/StreamInterface.kt rename to app/src/main/java/com/geeksville/mesh/repository/radio/StreamInterface.kt index 8090a35cf..b9c0aa4d1 100644 --- a/app/src/main/java/com/geeksville/mesh/service/StreamInterface.kt +++ b/app/src/main/java/com/geeksville/mesh/repository/radio/StreamInterface.kt @@ -1,4 +1,4 @@ -package com.geeksville.mesh.service +package com.geeksville.mesh.repository.radio import com.geeksville.android.Logging diff --git a/app/src/main/java/com/geeksville/mesh/service/TCPInterface.kt b/app/src/main/java/com/geeksville/mesh/repository/radio/TCPInterface.kt similarity index 98% rename from app/src/main/java/com/geeksville/mesh/service/TCPInterface.kt rename to app/src/main/java/com/geeksville/mesh/repository/radio/TCPInterface.kt index d200e1c4c..e9b1cb71c 100644 --- a/app/src/main/java/com/geeksville/mesh/service/TCPInterface.kt +++ b/app/src/main/java/com/geeksville/mesh/repository/radio/TCPInterface.kt @@ -1,4 +1,4 @@ -package com.geeksville.mesh.service +package com.geeksville.mesh.repository.radio import com.geeksville.android.Logging import com.geeksville.mesh.repository.usb.UsbRepository diff --git a/app/src/main/java/com/geeksville/mesh/service/MeshService.kt b/app/src/main/java/com/geeksville/mesh/service/MeshService.kt index aa7b32baa..54de09d63 100644 --- a/app/src/main/java/com/geeksville/mesh/service/MeshService.kt +++ b/app/src/main/java/com/geeksville/mesh/service/MeshService.kt @@ -25,6 +25,8 @@ import com.geeksville.mesh.android.hasBackgroundPermission import com.geeksville.mesh.database.PacketRepository import com.geeksville.mesh.database.entity.Packet import com.geeksville.mesh.model.DeviceVersion +import com.geeksville.mesh.repository.radio.BluetoothInterface +import com.geeksville.mesh.repository.radio.RadioInterfaceService import com.geeksville.mesh.repository.usb.UsbRepository import com.geeksville.mesh.service.SoftwareUpdateService.Companion.ProgressNotStarted import com.geeksville.util.* diff --git a/app/src/main/java/com/geeksville/mesh/ui/SettingsFragment.kt b/app/src/main/java/com/geeksville/mesh/ui/SettingsFragment.kt index 9e414443c..6f3199a76 100644 --- a/app/src/main/java/com/geeksville/mesh/ui/SettingsFragment.kt +++ b/app/src/main/java/com/geeksville/mesh/ui/SettingsFragment.kt @@ -36,6 +36,10 @@ import com.geeksville.mesh.android.* import com.geeksville.mesh.databinding.SettingsFragmentBinding import com.geeksville.mesh.model.BluetoothViewModel import com.geeksville.mesh.model.UIViewModel +import com.geeksville.mesh.repository.radio.BluetoothInterface +import com.geeksville.mesh.repository.radio.MockInterface +import com.geeksville.mesh.repository.radio.RadioInterfaceService +import com.geeksville.mesh.repository.radio.SerialInterface import com.geeksville.mesh.repository.usb.UsbRepository import com.geeksville.mesh.service.* import com.geeksville.mesh.service.SoftwareUpdateService.Companion.ACTION_UPDATE_PROGRESS