﻿B4A=true
Group=Book\matnBook
ModulesStructureVersion=1
Type=Service
Version=10.5
@EndOfDesignText@
#Region  Service Attributes 
	#StartAtBoot: False
	
#End Region

Private Sub Process_Globals
	
	Public playBook As MediaPlayer
  
	Private mCallBack As Object
	Private mEventName As String
 
	Public play2Book As MediaPlayerStream

 	Private nid As Int

	Private bool1sq As Boolean
	Private bool2sq As Boolean
	Private boolClcK As Boolean

End Sub

Sub Service_Create
 		
	Service.AutomaticForegroundMode = Service.AUTOMATIC_FOREGROUND_NEVER

	If playBook.IsInitialized = False Then
		playBook.Initialize2("playBook")
	End If
	
	If play2Book.IsInitialized = False Then
		play2Book.Initialize("play2Book")
	End If

	bool1sq = False
	bool2sq = False
	boolClcK = False

	Dim jo As JavaObject
	jo.InitializeContext
	jo = jo.RunMethod("getSystemService", Array("audio"))
	Dim event As Object = jo.CreateEventFromUI("android.media.AudioManager.OnAudioFocusChangeListener", _
     "audio", Null)
	Dim p As Phone
	Log("sallam: "&jo.RunMethod("requestAudioFocus", Array (event, p.VOLUME_MUSIC, 2)))

End Sub

Sub audio_Event (MethodName As String, Args() As Object) As Object
	
	Try
		
		Dim ii As Int
		Try
			ii = Args(0)
		Catch
			ii = 0
 		End Try
	
		Log("audio_Event: "&ii)
  
		If ii = -2 Then
			
			boolClcK = True
			
			bool1sq = False
			bool2sq = False
		
			bool1sq = playBook.IsPlaying
			bool2sq = play2Book.IsPlaying
		
			If bool1sq Then
				playBook.Pause
			Else if bool2sq Then
				play2Book.Pause
			End If

		Else If ii = 1 Then
			If boolClcK Then
				boolClcK = False
				
				If bool1sq Then
					playBook.Play
				Else if bool2sq Then
					play2Book.Play
				End If
				
			End If

		End If
  
	Catch
		Log(LastException)
	End Try

	Return Null
	
End Sub


Private Sub Service_Start (StartingIntent As Intent)
	
	If playBook.IsInitialized = False Then
		playBook.Initialize2("playBook")
	End If
	
	If play2Book.IsInitialized = False Then
		play2Book.Initialize("play2Book")
	End If
 
	bool1sq = False
	bool2sq = False
	boolClcK = False

	nid = 2
	Service.StartForeground(nid, EdNotifi3)
	
End Sub
   
Private Sub addSub (Caller As Object, pEventName As String)
	
	mCallBack = Caller
	mEventName = pEventName
 
	If playBook.IsInitialized = False Then
		playBook.Initialize2("playBook")
	End If

	If play2Book.IsInitialized = False Then
		play2Book.Initialize("play2Book")
	End If

End Sub

Public Sub playLoad(idSure As Int)
	play2Book.load(urls.ch2Li&"/bookQuran/Book/"&idSure&"/1.mp3")
End Sub
 
Private Sub play2Book_StreamReady
	If SubExists(mCallBack, mEventName & "_StreamReady") Then
		CallSub(mCallBack, mEventName & "_StreamReady")
	End If
End Sub
 
Private Sub play2Book_StreamBuffer(Percentage As Int)
	If SubExists(mCallBack, mEventName & "_StreamBuffer") Then
		CallSub2(mCallBack, mEventName & "_StreamBuffer",Percentage)
	End If
End Sub

Private Sub play2Book_StreamError (ErrorCode As String, ExtraData As Int)
	If SubExists(mCallBack, mEventName & "_StreamError") Then
		CallSub(mCallBack, mEventName & "_StreamError")
	End If
End Sub
  
Private Sub play2Book_Complete
	playBook_Complete
End Sub

Private Sub playBook_Complete

	If SubExists(mCallBack, mEventName & "_Complete") Then
		CallSub(mCallBack, mEventName & "_Complete")
	End If
  	
End Sub
 

Sub Service_Destroy
	Try
		If func.readPFM("psbook")= 1 Then
			func.savePFM("psbook",-1)
			playBook.Stop
			play2Book.Stop
			
			Service.StopForeground(nid)

		Else
			StartService(Me)
		End If
	Catch
		Log(LastException)
	End Try
 
End Sub
 
 
Public Sub showNotific(list As List)
	
	Dim aye As String		= list.Get(0)
	Dim nameSure As String  = list.Get(1)
	Dim bill As Boolean = list.Get(2)
	
 	EdNotifi(aye,nameSure,bill)
	
End Sub
   
Private Sub EdNotifi(aye As String,nameSure As String,bill As Boolean)
    	
	Dim n As NB6
	If n.IsInitialized<>True Then
		n.Initialize("default", Application.LabelName, "LOW").SmallIcon(Application.Icon)
	End If
	
	Dim sdsd As String
	If bill Then
		sdsd = "book2"
	Else
		sdsd = "book"
	End If
	
	n.AddButtonAction(Application.Icon, func.gland(96), myService, "pause;;"&sdsd)
	n.AddButtonAction(Null,func.gland(95), myService, "play;;"&sdsd)
   	
	n.Build(func.gland(161), func.gland(115)&" "&nameSure &" "&func.gland(121)&" "&aye , "tag", actBook).Notify(2)
  	
End Sub
  

Public Sub EdNotifi3 As Notification
 	
	Private n As NB6
  	
	If n.IsInitialized<>True Then
		n.Initialize("default", Application.LabelName, "LOW").SmallIcon(Application.Icon)
	End If
	
	Return n.Build(Application.LabelName,func.gland(392) , "tag", actBook)
 
End Sub
 


 