﻿B4A=true
Group=Class
ModulesStructureVersion=1
Type=StaticCode
Version=9
@EndOfDesignText@
Private Sub Process_Globals
  
	Dim phone As Phone
	Dim su As StringUtils

End Sub

Sub ToastSUCCESS(s_msg As String)
	
	ToastMessageShow(s_msg,False)

End Sub

Sub ToastERROR(s_msg As String)
 
	ToastMessageShow(s_msg,False)

End Sub
 
Sub choose2DIR As String
	
	Return File.DirRootExternal&"/Download"
	
End Sub
    
Sub font3 As String
	Try
		Return File.ReadString(File.DirInternal,"font3")
	Catch
		Dim lan2FaEn As String = (readNIS("lan2FaEn",1))
	
		If lan2FaEn = 3 Then
			File.WriteString(File.DirInternal,"font3","en1font.ttf")
		Else
			File.WriteString(File.DirInternal,"font3","sahel.ttf")
		End If

		Return File.ReadString(File.DirInternal,"font3")

		Log(LastException)
	End Try
End Sub
  
  
Sub MinimomFontLabel(L As Label, font As Int)
	For i = font To 1 Step -1
		L.TextSize = i
		If su.MeasureMultilineTextHeight(L, L.Text) <= L.Height Then
			Exit
		End If
	Next
End Sub

Sub ChangeColorSeekbar(seek1 As View,color1 As Int,color2 As Int)
  
	Dim j1 As javaClass
	j1.Initialize
	j1.ChangeColorSeekbar(seek1,color1,color2)

End Sub
 
Sub hazf(s11 As String)
  
	Dim j1 As javaClass
	j1.Initialize
	j1.hazf(s11)

End Sub
 

Sub SetRipple (ViewHolder As View, DefaultColor As Int, OnTouchColor As Int, OldRadius As Float)
	
 	
'	Dim dl1 As ColorDrawable
'	dl1.Initialize(DefaultColor,OldRadius)
	'
'	Dim dl11 As ColorDrawable
'	dl11.Initialize(OnTouchColor,OldRadius)
'	
'	Dim sld As StateListDrawable
'	sld.Initialize
'	sld.AddState(sld.State_Disabled, dl1)
'	sld.AddState (sld.State_Pressed, dl11)
'	ViewHolder.Background = sld

	Dim Gradient1 As GradientDrawable
	Dim Clrs(2) As Int
	Clrs(0) = DefaultColor
	Clrs(1) = DefaultColor
	Gradient1.Initialize("LEFT_RIGHT",Clrs)
	Gradient1.CornerRadius = OldRadius
	
	Dim Gradient2 As GradientDrawable
	Dim Clrs1(2) As Int
	Clrs1(0) = OnTouchColor
	Clrs1(1) = OnTouchColor
	Gradient2.Initialize("LEFT_RIGHT",Clrs1)
	Gradient2.CornerRadius = OldRadius

	Dim sld As StateListDrawable
	sld.Initialize
	sld.AddState(sld.State_Disabled, Gradient1)
	sld.AddState (sld.State_Pressed, Gradient2)
	ViewHolder.Background = sld
	
End Sub

Sub SetRipple1 (ViewHolder As View, DefaultColor As Int, OnTouchColor As Int, OldRadius As Float,borderwidth As Int,colorboreder As Int)
	
 	
	Dim dl1 As ColorDrawable
	dl1.Initialize2(DefaultColor,OldRadius,borderwidth,colorboreder)
 	
	Dim dl11 As ColorDrawable
	dl11.Initialize2(OnTouchColor,OldRadius,borderwidth,colorboreder)
	
	Dim sld As StateListDrawable
	sld.Initialize
	sld.AddState(sld.State_Disabled, dl1)
	sld.AddState (sld.State_Pressed, dl11)
	ViewHolder.Background = sld
	
End Sub
  
Sub SetRipple3 (ViewHolder As View, DefaultColor As GradientDrawable, OnTouchColor As GradientDrawable)
   	
	Dim sld As StateListDrawable
	sld.Initialize
	sld.AddState(sld.State_Disabled, DefaultColor)
	sld.AddState (sld.State_Pressed, OnTouchColor)
	ViewHolder.Background = sld
	
End Sub
  
Sub setGrv (ViewHolder As View)
   	
	Dim Gradient1 As GradientDrawable
	Dim Clrs(2) As Int
	Clrs(0) = Colors.White
	Clrs(1) = Colors.White
	Gradient1.Initialize("LEFT_RIGHT",Clrs)
	Gradient1.CornerRadius = 25
	
	Dim Gradient2 As GradientDrawable
	Dim Clrs1(2) As Int
	Clrs1(0) = 0xaaeeeeee
	Clrs1(1) = 0xaaeeeeee
	Gradient2.Initialize("LEFT_RIGHT",Clrs1)
	Gradient2.CornerRadius = 25
 
	Dim sld As StateListDrawable
	sld.Initialize
 	sld.AddState(sld.State_Disabled, Gradient1)
	sld.AddState (sld.State_Pressed, Gradient2)
	ViewHolder.Background = sld
	
End Sub
 
Sub SetRipple_app (ViewHolder As View)
	
	Dim ac As AppCompat
	ac.SetClickEffect(ViewHolder,True)
	
End Sub

Sub color_border(ViewHolder As View,view_color As Int,cornerradius As Int)
	
	Dim drlabvanet As ColorDrawable
	drlabvanet.Initialize2(view_color,cornerradius,0dip,Colors.LightGray)
	ViewHolder.Background = drlabvanet
	
End Sub

Sub color_border1(ViewHolder As View,view_color As Int,cornerradius As Int,border As Int,colorborder As Int)
	
	Dim drlabvanet As ColorDrawable
	drlabvanet.Initialize2(view_color,cornerradius,border,colorborder)
	ViewHolder.Background = drlabvanet
	
End Sub
  
Sub ConvertMillisecondsToString(t As Long) As String
	Dim hours, minutes, seconds As Int
	hours = t / DateTime.TicksPerHour
	minutes = (t Mod DateTime.TicksPerHour) / DateTime.TicksPerMinute
	seconds = (t Mod DateTime.TicksPerMinute) / DateTime.TicksPerSecond
	
	If hours = 0 Then
		Return   NumberFormat(minutes, 2, 0)  & ":" & NumberFormat(seconds, 2, 0)
	End If
	
	Return  NumberFormat(hours, 2, 0) & ":" & NumberFormat(minutes, 2, 0)  & ":" & NumberFormat(seconds, 2, 0)
	
End Sub

Sub search_string(target As String , source As String , seperator As String) As Boolean
	Dim sr() As String
	sr = Regex.Split(seperator ,source)
	For i  = 0 To sr.Length-1
		If(sr(i)==target)Then
			Return True
		End If
	Next
	
	Return False
	
End Sub
  
Sub gland(key As Int) As String
	Try
		Dim coljRoot As Map = Starter.mpLan.Get(key-1)
		Return coljRoot.Get(readNIS("lanFaEn","persian"))
	Catch
		Log(LastException)
	End Try
	Return "noting"
End Sub
  
Sub PersianNumbers(Text As String) As String
	
	Dim lan2FaEn As String = (readNIS("lan2FaEn",1))
	
	If lan2FaEn = 3 Then
		Return ENumbers(Text)
 	Else
		Return per(Text)
	End If

End Sub
  
Sub per(Text As String) As String
	Dim s As String = Text
	s = s.Replace("0","۰")
	s = s.Replace("1","۱")
	s = s.Replace("2","۲")
	s = s.Replace("3","۳")
	s = s.Replace("4","۴")
	s = s.Replace("5","۵")
	s = s.Replace("6","۶")
	s = s.Replace("7","۷")
	s = s.Replace("8","۸")
	s = s.Replace("9","۹")
	Return s
End Sub

Sub ENumbers(Text As String) As String
	Dim s As String = Text
	s = s.Replace("۰","0")
	s = s.Replace("۱","1")
	s = s.Replace("۲","2")
	s = s.Replace("۳","3")
	s = s.Replace("۴","4")
	s = s.Replace("۵","5")
	s = s.Replace("۶","6")
	s = s.Replace("۷","7")
	s = s.Replace("۸","8")
	s = s.Replace("۹","9")
	Return s
End Sub
 

Sub IsList(Var As Object) As Boolean
	Try
		Dim kk As List = Var
		Dim ll As String = kk.Get(0) 'ignore
		Return True
	Catch
		Return False
	End Try
End Sub
 
Sub setRotation(v As View, Angle As Float)
	Dim jo = v As JavaObject
	jo.RunMethod("setRotation", Array As Object(Angle))
End Sub

Sub SInt(i As String) As Int
	Return i
End Sub
 

Sub SearchHighLight(str As String,srch As String)As RichString
	
 	str=str.Replace(srch,"|"&srch&"|")
	Dim rs As RichString
	rs.Initialize(str)
	rs.BackColor2(0xFFCECE4A,"|")
 	
	Return rs
	 
End Sub
   
Sub setThing00(str As String,sThing As String)As String
 	
	Dim sThing2 As String = "¥"
	
	str = str.Replace(sThing,sThing&sThing2)
	str = str.Replace(sThing2,CRLF)
	
	Return str

End Sub
  
   
Sub setThing0(str As String,sThing As String)As RichString
 	
	Dim sThing1 As String = "#"
	Dim sThing2 As String = "¥"
	Dim sThing3 As String = "⌡"
	
	str = str.Replace(sThing,sThing&sThing1&sThing2)
	str = str.Replace(sThing2,CRLF)
	str = str.Replace("ⱹ","ⱹ"&sThing3)

	Dim rsb As RichStringBuilder
	rsb.Initialize
	
	rsb.Append(str)
	
	Dim rs As RichString
	rs.Initialize(rsb) 'ignore
   
	rs.Color2(Colors.Red, sThing1)
	rs.Style2(rs.STYLE_BOLD,sThing)
 	
	rs.Color2(0xFF00A900, "Ꞵ")
	rs.Color2(0xFF00A900, "ꝭ")
	
	rs.Color2(0xFF3A1BA3,sThing3)
	
	rs.Style2(rs.STYLE_BOLD,"ⱹ")
	rs.Style2(rs.STYLE_BOLD,"ꬸ")
	rs.Style2(rs.STYLE_BOLD,"Ï")

	Return rs

End Sub
   
Sub setThing1(str As String,sThing As String)As RichString
  	
	Dim rs As RichString
	rs.Initialize(str)

	rs.Style2(rs.STYLE_BOLD,sThing)
		
	Return rs

End Sub

Sub setThing2(str As String,sThing As String)As RichString
 	
	Dim sThing1 As String = "#"
 	
	str = str.Replace(sThing,sThing&sThing1)
 	
	Dim rsb As RichStringBuilder
	rsb.Initialize
	
	rsb.Append(str)
	
	Dim rs As RichString
	rs.Initialize(rsb) 'ignore
   
	rs.Color2(Colors.Red, sThing1)
	rs.Style2(rs.STYLE_BOLD,sThing)
 	
	rs.Color2(0xFF00A900, "Ꞵ")
	rs.Color2(0xFF00A900, "ꝭ")
	
	rs.Style2(rs.STYLE_BOLD,"ⱹ")
	rs.Style2(rs.STYLE_BOLD,"ꬸ")
	rs.Style2(rs.STYLE_BOLD,"Ï")
		
	Return rs

End Sub

Sub setThing3(str As String,sThing As String)As RichString
  	
	Dim rs As RichString
	rs.Initialize(str)

	rs.Color2(Colors.Blue,sThing)
		
	Return rs

End Sub

  
Sub setJustificationMode(target As View) '
	If readPFM("justy") = -1 Then
		If phone.SdkVersion >= 26 Then
			Dim dirRTL As JavaObject = target
			dirRTL.RunMethod("setJustificationMode",Array(1))
		End If
	End If
End Sub

Sub setJustificationMode2(target As View) 'ignore
'	If readPFM("justy") = -1 Then
'		If phone.SdkVersion >= 26 Then
'			Dim dirRTL As JavaObject = target
'			dirRTL.RunMethod("setJustificationMode",Array(1))
'		End If
'	End If
End Sub

 
Sub setGravity(target As String) As Int
	
	If readPFM(target) = -1 Then
		Return Bit.Or(Gravity.CENTER,Gravity.CENTER_VERTICAL)
	Else
		Return Bit.Or(Gravity.RIGHT,Gravity.CENTER_VERTICAL)
	End If

End Sub
 

Sub setGravity1(target As String) As Int
	
	If readPFM(target) = -1 Then
		Return Bit.Or(Gravity.CENTER,Gravity.CENTER_VERTICAL)
	Else
		Return Bit.Or(Gravity.RIGHT,Gravity.CENTER_VERTICAL)
	End If

End Sub

Sub gravitis As Int
   	
	Dim lan2FaEn As String = (readNIS("lan2FaEn",2))
	
	If lan2FaEn = 3 Then
		Return Gravity.LEFT
	Else
		Return Gravity.RIGHT
	End If

End Sub

 
Sub LoadHtmlZoom(Path As String,FileName As String,WKWebView1 As WebView)
	Dim url As String
	url=WebViewAssetFile(Path,FileName)
	Dim html As String = $"<html>
			<head>
			<style type="text/css">
			div{
			background:url(${url}) no-repeat center center;
			background-size : contain;
			position: absolute;
			top: 0; right: 0; bottom: 0; left: 0;
			}
			</style>
			</head>
			<body>
			<div>
			</div>
			</body>
			</html>
			   "$
	WKWebView1.LoadHtml(html)
End Sub

Sub WebViewAssetFile (Path As String,FileName As String) As String 'ignore
   #if B4J
	Return File.GetUri(File.DirAssets, FileName)
   #Else If B4A
	Dim jo As JavaObject
	jo.InitializeStatic("anywheresoftware.b4a.objects.streams.File")
	If jo.GetField("virtualAssetsFolder") = Null Then
		Return "file:///android_asset/" & FileName.ToLowerCase
	Else
		Return "file://" & File.Combine(jo.GetField("virtualAssetsFolder"), _
       jo.RunMethod("getUnpackedVirtualAssetFile", Array As Object(FileName)))
	End If
   #Else If B4i
	Return $"file://${File.Combine(Path,FileName)}"$
   #End If
End Sub
  
Sub LoadHtmlZoom3(url As String,WKWebView1 As WebView)
 
	Dim html As String = $"<html>
			<head>
			<style type="text/css">
			div{
			background:url(${url}) no-repeat center center;
			background-size : contain;
			position: absolute;
			top: 0; right: 0; bottom: 0; left: 0;
			}
			</style>
			</head>
			<body>
			<div>
			</div>
			</body>
			</html>
			   "$
	WKWebView1.LoadHtml(html)
End Sub

Sub setEllipsize(TextView As Label, Mode As String)
	Dim jo = TextView As JavaObject
	jo.RunMethod("setSingleLine", Array As Object(True))
	jo.RunMethod("setEllipsize", Array As Object(Mode))
	jo.RunMethod("setSelected", Array As Object(True))  ' needed for MARQUEE
End Sub
 

Sub TextShare(str_tt As String)
	Dim In As Intent
	In.Initialize(In.ACTION_SEND,"")
	In.SetType("text/plain")
	In.PutExtra("android.intent.extra.TEXT",str_tt)
	In.WrapAsIntentChooser(gland(357)&":")
	StartActivity(In)
End Sub

Sub readList(fileName As String) As List
	
	Dim lan2FaEn As String = (readNIS("lan2FaEn",1))

	If lan2FaEn = 3 Then
		fileName = fileName&3
	Else If lan2FaEn = 2 Then
		fileName = fileName&2
	End If
	
	Return File.ReadList(File.DirInternal,fileName)
	
End Sub

Sub deleteList(fileName As String)  
	
	Dim lan2FaEn As String = (readNIS("lan2FaEn",1))

	If lan2FaEn = 3 Then
		fileName = fileName&3
	Else If lan2FaEn = 2 Then
		fileName = fileName&2
	End If
	
	File.Delete(File.DirInternal,fileName)
	
End Sub

Sub ExistList(fileName As String) As Boolean
	
	Dim lan2FaEn As String = (readNIS("lan2FaEn",1))

	If lan2FaEn = 3 Then
		fileName = fileName&3
	Else If lan2FaEn = 2 Then
		fileName = fileName&2
	End If
	
	Return File.Exists(File.DirInternal,fileName)
 
End Sub

Sub writeList(fileName As String,list As List)
	
	Dim lan2FaEn As String = (readNIS("lan2FaEn",1))

	If lan2FaEn = 3 Then
		fileName = fileName&3
	Else If lan2FaEn = 2 Then
		fileName = fileName&2
	End If

	File.WriteList(File.DirInternal,fileName,list)
End Sub

Sub setGrv2 (ViewHolder As View,color As Int)
   	
	Dim Gradient1 As GradientDrawable
	Dim Clrs(2) As Int
	Clrs(0) = color
	Clrs(1) = color
	Gradient1.Initialize("LEFT_RIGHT",Clrs)
	Gradient1.CornerRadius = 1
   
	Dim sld As StateListDrawable
	sld.Initialize
	sld.AddState(sld.State_Disabled, Gradient1)
	ViewHolder.Background = sld
	
End Sub

Sub savePFM(key As String,value As String)
	Dim save1 As AHPreferenceManager
	save1.SetString(key,value)
End Sub

Sub readPFM(key As String) As String
	Dim save1 As AHPreferenceManager
	Dim ss As String = save1.GetString(key)
	If ss = "" Then
		ss = -1
	End If
	Return ss
End Sub
 
Sub readNIS(key As String,defualt As String) As String
	
	Try
		Dim save1 As AHPreferenceManager
		Dim ss As String = save1.GetString(key)
		If ss = "" Then
			ss = defualt
		End If
		Return ss
	Catch
		Log(LastException)
	End Try

	Return defualt
 	
End Sub

Sub resetSettings
	
	savePFM("colorFarsi",-16777039)
 
	savePFM("colorFaal",-2883631)
 
	savePFM("colorArabi",-12303292)
 	
	savePFM("sizeArabi",24)

	savePFM("sizeFarsi",18)

	savePFM("fontArabi","hezareh.ttf")

	Dim lan2FaEn As String
	lan2FaEn = (readNIS("lan2FaEn",1))
	If lan2FaEn = 3 Then
		savePFM("fontFarsi","en1font.ttf")
 	Else
		savePFM("fontFarsi","sahel.ttf")
	End If
	
	If lan2FaEn = 2 Then
		savePFM("int_type",1)
	Else
		savePFM("int_type",0)
	End If

 
	savePFM("distancLine",1)

	savePFM("distancLine1",1)
	
 	deleteList("ColorK.stg")
	deleteList("ColorA.stg")
	deleteList("ColorK1.stg")
	deleteList("fontA.stg")
	deleteList("fontK.stg")
	deleteList("sizeK.stg")
	deleteList("sizeA.stg")

End Sub
 
Sub heightLabel(Label1 As Label,Text As String) As Int
  	Return su.MeasureMultilineTextHeight(Label1,Text)
 End Sub

Sub heightView(Label1 As Label,Text As String,offset As Int)
  
	Dim j1 As javaClass
	j1.Initialize
	j1.heightView(Label1,Text,offset)
 	
End Sub
 
Sub listInitialize(number As Int,Caller As Object,pEventName As String) As List
		
	Dim list As List
	list.Initialize
	list.Add(number)
	list.Add(Caller)
	list.Add(pEventName)
		
	Return list
	
End Sub
 
Sub setThing000(str As String,sThing As String)As RichString
 	
	Dim sThing1 As String = "#"
	Dim sThing2 As String = "¥"
	Dim sThing3 As String = "⌡"
	Dim sThing4 As String = "Ǐ"
	
	str = str.Replace(sThing,sThing&sThing1&sThing2)
	str = str.Replace(sThing2,CRLF)
	str = str.Replace("ⱹ","ⱹ"&sThing3)

	Dim rsb As RichStringBuilder
	rsb.Initialize
	
	rsb.Append(str)
	
	Dim rs As RichString
	rs.Initialize(rsb) 'ignore
   
	rs.Color2(Colors.Red, sThing1)
	rs.Style2(rs.STYLE_BOLD,sThing)
 	
	rs.Color2(0xFF00A900, "Ꞵ")
	rs.Color2(0xFF00A900, "ꝭ")
	
	rs.Color2(0xFF3A1BA3,sThing3)
	rs.RelativeSize2(2,sThing4)
	
  	rs.Style2(rs.STYLE_BOLD,"ⱹ")
	rs.Style2(rs.STYLE_BOLD,"ꬸ")
	rs.Style2(rs.STYLE_BOLD,"Ï")

	Return rs

End Sub
 
Public Sub LabelLinkSupport(l As Label)

'	titleText.setLinksClickable(True);
'	titleText.setAutoLinkMask(1);
'	titleText.setLinkTextColor(1);
	
	Dim jo = l As JavaObject
	jo.RunMethod("setLinksClickable", Array As Object(True))
	jo.RunMethod("setAutoLinkMask", Array As Object(1))
	jo.RunMethod("setLinkTextColor", Array As Object(Colors.Blue))
 	
'	Dim Obj1 As Reflector
'	Obj1.Target = Obj1.CreateObject("android.text.util.Linkify")
'	Dim args(2) As Object
'	Dim types(2) As String
'	args(0) = l
'	types(0) = "android.widget.TextView"
'	args(1) = 1
'	types(1) = "java.lang.int"
'	Obj1.RunMethod4("addLinks", args, types)

	
End Sub
   
Sub SetScrollbarColor(sv As ScrollView)
	
	Dim cd As ColorDrawable
	cd.Initialize(0xFF4C9A7B, 2)
	
	Dim p As Phone
	If p.SdkVersion >= 29 Then
		sv.As(JavaObject).RunMethod("setVerticalScrollbarThumbDrawable", Array(cd))
		
	Else
		Dim r As Reflector
		r.Target = sv
		r.Target = r.GetField("mScrollCache")
		r.Target = r.GetField("scrollBar")
		
		r.RunMethod4("setVerticalThumbDrawable", Array(cd), Array As String("android.graphics.drawable.Drawable"))
	End If
	
End Sub

 
Sub FinishActivity (ActivityName  As String)
	
	Try
		
		Dim jo As JavaObject
		jo.InitializeStatic(Application.PackageName&"."&ActivityName.ToLowerCase)
		jo=jo.GetField("previousOne")
		If jo<> Null Then
			jo=jo.RunMethod("get",Null)
			If jo<>Null Then
				jo.RunMethod("finish",Null)
				LogColor(ActivityName & " Finished!",Colors.Red)
			End If
		End If
	
	Catch
		Log(LastException)
	End Try

End Sub
  
    
Sub cacelNotific(id As Int)
	
	Dim n As NB6
	If n.IsInitialized<>True Then
		n.Initialize("default", Application.LabelName, "LOW").SmallIcon(Application.Icon)
	End If
	
	n.Cancel1(id)
 
End Sub
 
Sub FToF1(Text As String) As String
	Dim s As String = Text
	s = s.Replace("ئ","ی")
	s = s.Replace("ي","ی")
	s = s.Replace("ۀ","ه")
	s = s.Replace("ة","ه")
	s = s.Replace("ؤ","و")
	s = s.Replace("إ","ا")
	s = s.Replace("أ","ا")
	s = s.Replace("آ","ا")
	s = s.Replace("ك","ک")
	s = s.Replace("آ","ا")
  
	s = s.Replace("ٔ","")
	s = s.Replace("ٰ","")
	s = s.Replace("َ","")
	s = s.Replace("ً","")
	s = s.Replace("ُ","")
	s = s.Replace("ٌ","")
	s = s.Replace("ّ","")
	s = s.Replace("ْ","")
	s = s.Replace("ٕ","")
	s = s.Replace("ٖ","")
	s = s.Replace("ِ","")
	s = s.Replace("ٍ","")
	s = s.Replace("ٓ","")
 	
	Return s
End Sub

Sub Android_Id As String
	Return phone.getSettings("android_id")
End Sub

 

  
	
  