#Region Service Attributes
#StartAtBoot: True
#End Region
Sub Process_Globals
Dim fm As FirebaseMessaging
Dim Token As String
Dim n As Notification
Dim tim As Timer
End Sub
Sub Service_Create
fm.Initialize("fm")
tim.Initialize("tim", 2000)
SubscribeToTopics
tim.Enabled = True 'pause for getting the token, as sometimes it's empty returned
End Sub
Public Sub SubscribeToTopics
fm.SubscribeToTopic("general") 'you can subscribe to more topics
End Sub
Sub Service_Start (StartingIntent As Intent)
If StartingIntent.IsInitialized And fm.HandleIntent(StartingIntent) Then Return
End Sub
Sub fm_MessageArrived (Message As RemoteMessage)
Log("Message arrived")
Log($"Message data: ${Message.GetData}"$)
Dim title As String = Message.GetData.Get("title")
Dim body As String = Message.GetData.Get("body")
Log(Message.GetData) '(MyMap) {priority=high, vibration=1, body=Тело, sound=default, title=title, orderId=2033}
Dim requestId As String = Message.GetData.Get("requestId")
If requestId <> "" Then
orders.CurOrderID = orderId
orders.push = True
If IsPaused(orders) Then
Else
CallSub(orders, "Activity_Resume")
End If
n.Initialize
n.Icon = "icon"
n.SetInfo(title, body, orders)
n.Notify(1)
End If
End Sub
Sub Service_Destroy
End Sub
Sub fm_TokenRefresh
Log("In Refresh " & $"Token(${fm.Token})"$)
tim_Tick
End Sub
Sub tim_Tick
Dim a As String = fm.Token
If a <> "" Then
Token = a
tim.Enabled = False
End If
Log("In Service_Create " & $"Token(${fm.Token})"$)
End Sub