Эх сурвалжийг харах

Don't send normal transient disconnect state when phone is offline

Tulir Asokan 3 жил өмнө
parent
commit
9b6ca8d6f1
1 өөрчлөгдсөн 5 нэмэгдсэн , 1 устгасан
  1. 5 1
      user.go

+ 5 - 1
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")