﻿B4A=true
Group=Default Group
ModulesStructureVersion=1
Type=Service
Version=8.5
@EndOfDesignText@
#Region  Service Attributes 
	#StartAtBoot: true
#End Region

Sub Process_Globals
	'These global variables will be declared once when the application starts.
	'These variables can be accessed from all modules.
	Type Message (Address As String, Body As String)
	Dim Comando As String
'	Dim PE As PhoneEvents
'	Dim SI As SmsInterceptor
End Sub

Sub Service_Create
'	PE.Initialize("PE")
'	SI.Initialize("SI")
End Sub

Sub Service_Start(startingIntent As Intent)
	If startingIntent.Action = "android.provider.Telephony.SMS_RECEIVED" Then
		Dim messages() As Message
		messages = ParseSmsIntent(startingIntent)
		Log("NumeroMessaggi " & messages.Length)
		For i = 0 To messages.Length - 1
			Dim Paired As String
			If Main.IsMaster=True Then Paired=Main.NumeroTablet Else Paired=Main.PairedPhone
			If messages(i).Address=Paired Then
				'Log(messages(i))
				Comando=messages(0).Body
				CallSub2(Main,"RiceveSms",Comando)
				Exit
			End If
		Next
		
	End If
	Service.StopAutomaticForeground
End Sub

'Parses an SMS intent and returns an array of messages
Sub ParseSmsIntent (in As Intent) As Message()
	Dim messages() As Message
	If in.HasExtra("pdus") = False Then Return messages
	Dim pdus() As Object
	Dim r As Reflector
	pdus = in.GetExtra("pdus")
	'Log("ParseMessages" & pdus.Length)
	If pdus.Length > 0 Then
		Dim messages(pdus.Length) As Message
		For i = 0 To pdus.Length - 1
			r.Target = r.RunStaticMethod("android.telephony.SmsMessage", "createFromPdu", Array As Object(pdus(i)), Array As String("[B"))
			messages(i).Address = r.RunMethod("getOriginatingAddress")
			messages(i).Body = r.RunMethod("getMessageBody")
		Next
	End If
	Return messages
End Sub

Sub Service_Destroy

End Sub

'Sub SI_MessageReceived (From As String, Body As String)
'    Log("MessageReceived: From = " & From & ", Body = " & Body)
'	Dim Paired As String
'	If Main.IsMaster=True Then Paired=Main.NumeroTablet Else Paired=Main.PairedPhone
'   If From=Paired Then
'		CallSub2(Main,"RiceveSms",Body)
'	End If
'End Sub
