Skip to content

Commit 45b94ee

Browse files
committed
Add logging to ConnectionManager disconnect error handling
1 parent 7c577fe commit 45b94ee

File tree

3 files changed

+10
-1
lines changed

3 files changed

+10
-1
lines changed

libs/cardreader/src/main/java/com/woocommerce/android/cardreader/CardReaderManagerFactory.kt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -77,6 +77,7 @@ object CardReaderManagerFactory {
7777
DiscoverReadersAction(terminal, logWrapper),
7878
terminalListener,
7979
application,
80+
logWrapper,
8081
),
8182
SoftwareUpdateManager(
8283
terminal,

libs/cardreader/src/main/java/com/woocommerce/android/cardreader/internal/connection/ConnectionManager.kt

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ import com.stripe.stripeterminal.external.models.Reader
1212
import com.stripe.stripeterminal.external.models.TerminalErrorCode
1313
import com.stripe.stripeterminal.external.models.TerminalException
1414
import com.woocommerce.android.cardreader.CardReaderManager
15+
import com.woocommerce.android.cardreader.LogWrapper
1516
import com.woocommerce.android.cardreader.connection.CardReader
1617
import com.woocommerce.android.cardreader.connection.CardReaderDiscoveryEvents
1718
import com.woocommerce.android.cardreader.connection.CardReaderImpl
@@ -33,14 +34,17 @@ import kotlinx.coroutines.flow.merge
3334
import kotlinx.coroutines.launch
3435

3536
private const val ARTIFICIAL_STATUS_UPDATE_DELAY_IN_MILLIS = 500L
37+
private const val LOG_TAG = "ConnectionManager"
3638

39+
@Suppress("LongParameterList")
3740
internal class ConnectionManager(
3841
private val terminal: TerminalWrapper,
3942
private val bluetoothReaderListener: BluetoothReaderListenerImpl,
4043
private val tapToPayReaderListener: TapToPayReaderListenerImpl,
4144
private val discoverReadersAction: DiscoverReadersAction,
4245
private val terminalListenerImpl: TerminalListenerImpl,
4346
private val application: Application,
47+
private val logWrapper: LogWrapper,
4448
) {
4549
val softwareUpdateStatus = bluetoothReaderListener.updateStatusEvents
4650
val softwareUpdateAvailability = bluetoothReaderListener.updateAvailabilityEvents
@@ -146,7 +150,8 @@ internal class ConnectionManager(
146150
terminal.disconnectReader()
147151
updateReaderStatus(CardReaderStatus.NotConnected())
148152
true
149-
} catch (@Suppress("SwallowedException") e: TerminalException) {
153+
} catch (e: TerminalException) {
154+
logWrapper.e(LOG_TAG, "Failed to disconnect reader: ${e.errorMessage}")
150155
updateReaderStatus(CardReaderStatus.NotConnected())
151156
false
152157
}

libs/cardreader/src/test/java/com/woocommerce/android/cardreader/internal/connection/ConnectionManagerTest.kt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import com.stripe.stripeterminal.external.models.DeviceType
55
import com.stripe.stripeterminal.external.models.Reader
66
import com.stripe.stripeterminal.external.models.TerminalErrorCode
77
import com.stripe.stripeterminal.external.models.TerminalException
8+
import com.woocommerce.android.cardreader.LogWrapper
89
import com.woocommerce.android.cardreader.connection.CardReaderDiscoveryEvents
910
import com.woocommerce.android.cardreader.connection.CardReaderDiscoveryEvents.ReadersFound
1011
import com.woocommerce.android.cardreader.connection.CardReaderImpl
@@ -45,6 +46,7 @@ class ConnectionManagerTest : CardReaderBaseUnitTest() {
4546
on { readerStatus }.thenReturn(MutableStateFlow(CardReaderStatus.NotConnected()))
4647
}
4748
private val application: Application = mock()
49+
private val logWrapper: LogWrapper = mock()
4850

4951
private val supportedReaders =
5052
CardReaderTypesToDiscover.SpecificReaders.ExternalReaders(
@@ -65,6 +67,7 @@ class ConnectionManagerTest : CardReaderBaseUnitTest() {
6567
discoverReadersAction,
6668
terminalListenerImpl,
6769
application,
70+
logWrapper,
6871
)
6972
}
7073

0 commit comments

Comments
 (0)