From 9b6ca8d6f1194cda394b991feafd727f83a9c98d Mon Sep 17 00:00:00 2001 From: Tulir Asokan Date: Mon, 7 Mar 2022 22:45:19 +0200 Subject: [PATCH] Don't send normal transient disconnect state when phone is offline --- user.go | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/user.go b/user.go index 8965159..dfc7db2 100644 --- a/user.go +++ b/user.go @@ -626,7 +626,11 @@ func (user *User) HandleEvent(event interface{}) { go user.sendBridgeState(BridgeState{StateEvent: StateBadCredentials, Message: v.String()}) user.bridge.Metrics.TrackConnectionState(user.JID, false) case *events.Disconnected: - go user.sendBridgeState(BridgeState{StateEvent: StateTransientDisconnect, Message: "Disconnected from WhatsApp. Trying to reconnect."}) + // Don't send the normal transient disconnect state if we're already in a different transient disconnect state. + // TODO remove this if/when the phone offline state is moved to a sub-state of CONNECTED + if user.GetPrevBridgeState().Error != WAPhoneOffline { + go user.sendBridgeState(BridgeState{StateEvent: StateTransientDisconnect, Message: "Disconnected from WhatsApp. Trying to reconnect."}) + } user.bridge.Metrics.TrackConnectionState(user.JID, false) case *events.Contact: go user.syncPuppet(v.JID, "contact event")