Files
ReplyAutoV1---WIP/B4A/B4XReglas.bas
2023-09-24 03:29:06 -06:00

610 lines
21 KiB
QBasic

B4A=true
Group=Default Group
ModulesStructureVersion=1
Type=Class
Version=9.86
@EndOfDesignText@
Sub Class_Globals
Private Root As B4XView 'ignore
Private xui As XUI 'ignore
Dim ime As IME 'ignore
' Private lblHello As B4XView
Private ImageView1 As B4XView 'ignore
' Private Page3 As B4XPage3
Private CustomListView1 As CustomListView 'ignore
' Private Tree As CLVTree
' Private b_colapsa As Button
' Private b_expande As Button
' Private Panel2 As Panel
Private clv_reglas2 As CustomListView
Private et_regla As EditText
Private p_rules As Panel
Private l_tit As Label
' Private l_rule As Label
Private p_reglas As Panel
Private l_tit2 As Label
Private et_regla2 As EditText
Private cb_activa As CheckBox
Private l_regla As Label
Private p_editarRegla As Panel
Private et_nombre As EditText
Private b_cancelar As Button
Private et_entra As EditText
Private et_sale As EditText
Private l_sale As Label
Private l_regla_1 As Label
Private l_regla_2 As Label
Private p_separador As Panel
Private r_destinatario_p As RadioButton
Private r_destinatario_g As RadioButton
Private r_destinatario_a As RadioButton
Dim destinatario As String = "Personas"
Private l_flecha As Label
Private fb_add As cvFloatingBtn
Private p_msgBox As Panel
Private l_msgBoxTitle As Label
Private l_msgBoxText As Label
Private b_msgBoxYes As Button
Private b_msgBoxNo As Button
Private p_sombra As Panel
Private p_contestacion As Panel
Private l_sale2 As Label
Private et_sale2 As EditText
Private p_recibimos As Panel
Private l_entra As Label
Private p_contactosEspecificos As Panel
Private et_contEsp As EditText
Private l_contEsp As Label
Dim contactsPermission As Boolean = False
Private clv_contactPicker As CustomListView
Private PCLV As PreoptimizedCLV
Private l_contact As Label
Private cb_selectContact As CheckBox
Private p_contacts As Panel
Private p_contactPicker As Panel
Dim contactosEspecificos As List
Private p_conEsp As Panel
Private b_guardaConEsp As Button
Private et_conEsp As EditText
Private et_conEsp2 As EditText
Private b_getContacts As Button
Dim listaReglasContestaciones As List
Private b_addET As Button
Private ScrollView1 As ScrollView
Private l_idRegla As Label
End Sub
'You can add more parameters here.
Public Sub Initialize
End Sub
'This event will be called once, before the page becomes visible.
Private Sub B4XPage_Created (Root1 As B4XView)
Root = Root1
'load the layout to Root
Root.LoadLayout("Reglas")
' Root.LoadLayout("floatbutton_layout")
B4XPages.SetTitle(Me, "Reglas")
' Page3 = B4XPages.GetPage("Page 3")
contactosEspecificos.Initialize
PCLV.Initialize(Me, "PCLV", clv_contactPicker)
PCLV_AddItems
muestraReglas
End Sub
Private Sub B4XPage_Appear
If Starter.logger Then Log("======================= REGLAS =====================")
Subs.traeReglas
' NotificationService.mapReglas = Subs.traeReglas
' clv_reglas2.Clear
' clv_reglas2.PressedColor = Colors.Transparent
' For Each m As Map In NotificationService.mapReglas.Values
' clv_reglas2.Add(CreateListItem(m.get("id"), m.get("nombre"), "Recibimos:", m.Get("recibe"), "Contestamos:", m.Get("contesta"), m.Get("activa"), 386dip, 90dip), m.get("id"))
' Next
' p_editarRegla.Visible = False
' p_sombra.Visible = False
' p_reglas.Width = Root.Width - 20
' Subs.centraPanel(p_editarRegla, Root.Width)
End Sub
Sub clv_contactPicker_VisibleRangeChanged (FirstIndex As Int, LastIndex As Int)
For Each i As Int In PCLV.VisibleRangeChanged(FirstIndex, LastIndex)
Dim item As CLVItem = clv_contactPicker.GetRawListItem(i)
Dim pnl As B4XView = xui.CreatePanel("")
pnl.Color = Colors.White
item.Color = Colors.White
item.Panel.AddView(pnl, 0, 0, item.Panel.Width, item.Panel.Height)
'Create the item layout
pnl.LoadLayout("contactItem")
cb_selectContact.Tag = item.Value
l_contact.Text = item.Value
Next
End Sub
Sub PCLV_AddItems
For Each contact As String In Subs.getContactos
PCLV.AddItem(40dip, xui.Color_White, contact)
Next
PCLV.Commit
End Sub
'Return the hint that will be displayed when the user fast scrolls the list. It can be a string or CSBuilder.
Sub PCLV_HintRequested (Index As Int) As Object
Dim word As String = clv_contactPicker.GetValue(Index)
Return word
End Sub
Sub muestraReglas
NotificationService.mapReglas = Subs.traeReglas
' Log("mapReglas=" & NotificationService.mapReglas)
clv_reglas2.Clear
clv_reglas2.PressedColor = Colors.Transparent
' clv_reglas2.AsView.Color = Colors.red
For Each m As Map In NotificationService.mapReglas.Values
clv_reglas2.Add(CreateListItem(m.get("id"), m.get("nombre"), "Recibimos:", m.Get("recibe"), "Contestamos:", m.Get("contesta"), m.Get("activa"), 386dip, 90dip), m.get("id"))
Next
p_editarRegla.Visible = False
p_sombra.Visible = False
p_reglas.Width = Root.Width
p_reglas.Height = Root.Height - 20
fb_add.Top = p_reglas.Height - 50dip
fb_add.Left = p_reglas.Width - 50dip
clv_reglas2.GetBase.SetLayoutAnimated(0, 5dip, 5dip, Root.Width + 10, Root.Height) 'Cambiamos el tamaño y posición de la lista de reglas
clv_reglas2.Base_Resize(clv_reglas2.GetBase.Width, clv_reglas2.GetBase.Height) 'Cambiamos el tamaño del panel interno de la lista para que ajuste al nuevo tamaño.
p_sombra.Width = Root.Width
p_sombra.Height = Root.Height
If Starter.logger Then Log($"${Root.Width}, ${p_reglas.Width}, ${p_sombra.Width}, ${clv_reglas2.AsView.Width }"$)
Subs.centraPanel(p_editarRegla, Root.Width)
' Subs.centraPanel(p_sombra, Root.Width)
End Sub
Sub CreateListItem(id As Int, nom As String, tit As String, rule As String, tit2 As String, rule2 As String, activa As Int, Width As Int, Height As Int) As Panel
Dim p As B4XView = xui.CreatePanel("")
Dim active As Boolean = False
' Private pLeft = p_rules.left
If activa = 1 Then active = True
p.SetLayoutAnimated(0, 0, 0, Width, Height)
p.LoadLayout("ruleItem")
l_tit.Text = tit
l_regla_1.Text = rule
l_tit2.Text = tit2
l_regla_2.Text = rule2
p_rules.Width = Root.Width - 10dip
Subs.SetButtonTintList(cb_activa, Colors.red, Colors.RGB(7, 183, 0))
If nom.IndexOf(".") > -1 Then
Private cuantos As Int = Subs.CountChars(nom, ".")
' Log(cuantos)
Private leftOffs As Int = 15
If cuantos > 0 Then leftOffs = leftOffs * cuantos
p_rules.Left = p_rules.Left + leftOffs
p_rules.Width = p_rules.Width - leftOffs
l_regla_1.Width = l_regla_1.Width - leftOffs
l_regla_2.Width = l_regla_2.Width - leftOffs
cb_activa.Left = cb_activa.Left - leftOffs
Dim cd1 As ColorDrawable
cd1.Initialize2(Colors.White, 30, 5, Colors.Red)
l_regla.TextColor = Colors.red
' l_flecha.TextColor = Colors.red
' p_rules.Color = Colors.RGB(209, 0, 0)
p_rules.Background = cd1
If cuantos > 0 Then
l_flecha.Visible = True
l_regla.Left = l_regla.Left + 40
' If cuantos = 2 Then p_rules.Color = Colors.RGB(134, 246, 126)
' If cuantos > 2 Then p_rules.Color = Colors.RGB(217, 217, 217)
If cuantos = 2 Then
cd1.Initialize2(Colors.White, 30, 5, Colors.Gray)
l_regla.TextColor = Colors.Gray
' l_flecha.TextColor = Colors.Gray
End If
If cuantos = 3 Then
cd1.Initialize2(Colors.White, 30, 6, Colors.RGB(255, 140, 125))
l_regla.TextColor = Colors.RGB(255, 140, 125)
' l_flecha.TextColor = Colors.RGB(255, 140, 125)
End If
If cuantos > 3 Then
cd1.Initialize2(Colors.White, 30, 6, Colors.RGB(250, 161, 38))
l_regla.TextColor = Colors.RGB(250, 161, 38)
' l_regla.TextColor = Colors.RGB(250, 161, 38)
End If
p_rules.Background = cd1
End If
End If
Dim su As StringUtils
' recalculate new heights
' Dim prhTemp As Int = p_rules.Height
l_regla_1.height = su.MeasureMultilineTextHeight(l_regla_1, l_regla_1.Text)
l_regla_2.height = su.MeasureMultilineTextHeight(l_regla_2, l_regla_2.Text)
p_separador.Top = l_regla_1.Top + l_regla_1.Height + 10
l_tit2.Top = p_separador.Top + 20
l_regla_2.Top = l_tit2.top
p_rules.Height = l_regla_1.Height + l_regla_2.Height + 110
p.SetLayoutAnimated(0, 0, 0, Width, p_rules.Height +10)
cb_activa.Checked = active
cb_activa.Tag = id
l_regla.Text = nom
l_regla.Tag = id
Return p
End Sub
'You can see the list of page related events in the B4XPagesManager object. The event name is B4XPage.
Sub b_1_Click
' B4XPages.ShowPage("Page 3")
End Sub
Sub btnSignOut_Click
' Page3.ClearImage
' UpdateImage
' B4XPages.ShowPageAndRemovePreviousPages("MainPage")
End Sub
Private Sub cb_activa_CheckedChange(Checked As Boolean)
Dim chk As CheckBox = Sender
' if starter.showLogs then Log(Checked & " | " & chk.tag )
If chk.Tag <> Null And chk.Tag <> "" Then
Dim p_regla As Panel = Sender.As(View).Parent.As(Panel)
' if starter.showLogs then Log("|"&p_regla.NumberOfViews)
Private idRegla As Int = chk.tag
Private activa As Boolean = Checked
' Private recibimos As String = p_regla.GetView(1).as(Label).text
' Private mandamos As String = p_regla.GetView(3).as(Label).text
If Starter.showLogs Then Log("|"&p_regla.GetView(5))
Subs.guardaRegla(idRegla, activa)
NotificationService.mapReglas = Subs.traeReglas
End If
' Log(NotificationService.mapReglas)
End Sub
'Borramos la regla.
Sub cb_activa_LongClick
Private chk As CheckBox = Sender
If Starter.showLogs Then Log(chk.tag)
p_msgBox.Top = (Root.Height/2) - (p_msgBox.Height/2)
Subs.centraPanel(p_msgBox, Root.Width)
l_msgBoxTitle.Text = "Borrar regla"
l_msgBoxText.text = $"¿Seguro que desea borrar la regla ${chk.tag}?"$
p_msgBox.Visible = True
b_msgBoxYes.Tag = chk.tag
p_msgBox.Tag = clv_reglas2.GetItemFromView(Sender.As(View))
If Starter.showLogs Then LogColor(p_msgBox.tag, Colors.Magenta)
' if starter.showLogs then LogColor(clv_reglas2.Size,Colors.Magenta)
End Sub
Private Sub b_msgBoxYes_Click
p_msgBox.Visible = False
If Starter.showLogs Then Log(Sender.As(Button).tag)
Subs.borrarRegla(Sender.As(Button).tag)
NotificationService.mapReglas = Subs.traeReglas
' B4XPage_Appear
clv_reglas2.RemoveAt(p_msgBox.Tag)
' muestraReglas
End Sub
Private Sub b_msgBoxNo_Click
p_msgBox.Visible = False
End Sub
Sub p_msgBox_Click
'Do nothing
End Sub
Private Sub et_regla_TextChanged (Old As String, New As String)
Dim p_regla As Panel = Sender.As(View).Parent.As(Panel)
Private cb As CheckBox = p_regla.GetView(2)
cb.Checked = False
' Log(cb.checked)
End Sub
Private Sub et_regla2_TextChanged (Old As String, New As String)
Dim p_regla As Panel = Sender.As(View).Parent.As(Panel)
Private cb As CheckBox = p_regla.GetView(2)
cb.Checked = False
' Log(cb.checked)
End Sub
Private Sub L_regla_LongClick
' et_nombre.Text = Sender.As(Label).text
' et_nombre.Tag = Sender.As(Label).tag
' Log(Sender.As(Label))
'' Log(Sender.As(Label).Tag & "|"&NotificationService.mapReglas)
' Private d As Map = NotificationService.mapReglas.Get(Sender.As(Label).tag)
'' Log(d)
' et_entra.Text = d.Get("recibe")
' et_sale.Text = d.Get("contesta")
' p_editarRegla.visible = True
' RecalculateHeightViews
End Sub
Private Sub b_guardar_Click
For i = 0 To listaReglasContestaciones.Size -1
et_sale.Text = et_sale.Text & "//" & listaReglasContestaciones.Get(i).As(EditText).text
Next
If Starter.showLogs Then Log(et_sale.text)
Subs.actualizaRegla(et_nombre.Tag, et_nombre.text, et_entra.Text, et_sale.text, r_destinatario_p.tag, et_contEsp.text)
' NotificationService.mapReglas = Subs.traeReglas
muestraReglas
p_editarRegla.Visible = False
p_sombra.Visible = False
ime.HideKeyboard
End Sub
Private Sub b_cancelar_Click
p_editarRegla.Visible = False
p_editarRegla.SendToBack
' ScrollView1.Visible = False
p_sombra.Visible = False
ime.HideKeyboard
End Sub
Sub RecalculateHeightViews
' Log("Recalcula")
Dim su As StringUtils
'Recalculate new heights
et_entra.height = su.MeasureMultilineTextHeight(et_entra, et_entra.Text) + 60
et_sale.height = su.MeasureMultilineTextHeight(et_sale, et_sale.Text)+ 60
et_contEsp.Height = su.MeasureMultilineTextHeight(et_contEsp, et_contEsp.Text)+ 60
p_recibimos.Height = et_entra.Height + 20
p_contestacion.Height = et_sale.Height + 20
p_contactosEspecificos.Height = et_contEsp.Height + 20
' Recalculate new vertical positions
p_recibimos.Top =l_entra.Top + l_entra.Height + 5
l_sale.Top = p_recibimos.Top + p_recibimos.height + 5
p_contestacion.Top = l_sale.Top + l_sale.height + 5
If listaReglasContestaciones.Size > 0 Then
For j = 0 To listaReglasContestaciones.Size - 1
listaReglasContestaciones.Get(j).As(EditText).Height = su.MeasureMultilineTextHeight(listaReglasContestaciones.Get(j).As(EditText), listaReglasContestaciones.Get(j).As(EditText).Text) + 60
p_contestacion.Height = p_contestacion.Height + listaReglasContestaciones.Get(j).As(EditText).Height - 15
Next
End If
ScrollView1.Panel.Height = p_recibimos.Height + p_contestacion.Height + p_contactosEspecificos.Height + 500
For n = 0 To listaReglasContestaciones.Size - 1
If n = 0 Then
listaReglasContestaciones.Get(n).As(EditText).Top = et_sale.Top + et_sale.Height - 15
Else if n > 0 Then
listaReglasContestaciones.Get(n).As(EditText).Top = listaReglasContestaciones.Get(n-1).As(EditText).Top + listaReglasContestaciones.Get(n-1).As(EditText).Height - 15
End If
' LogColor(listaReglasContestaciones.Get(n).As(EditText).Top, Colors.red)
Next
r_destinatario_p.Top = p_contestacion.Top + p_contestacion.Height
r_destinatario_g.Top = r_destinatario_p.top
r_destinatario_a.Top = r_destinatario_p.top
l_contEsp.Top = r_destinatario_p.Top + r_destinatario_p.Height
b_addET.Top = l_sale.top - 1
b_getContacts.Top = l_contEsp.top - 5
p_contactosEspecificos.Top = l_contEsp.Top + l_contEsp.Height
End Sub
Private Sub et_entra_TextChanged (Old As String, New As String)
RecalculateHeightViews
End Sub
Private Sub et_sale_TextChanged (Old As String, New As String)
RecalculateHeightViews
End Sub
Private Sub et_sale2_TextChanged (Old As String, New As String)
RecalculateHeightViews
End Sub
Private Sub et_contEsp_TextChanged (Old As String, New As String)
RecalculateHeightViews
End Sub
Private Sub clv_reglas2_ItemClick (Index As Int, Value As Object)
If Starter.showLogs Then Log(Index &"|" & Value)
listaReglasContestaciones.Initialize
' p_editarRegla.Visible = True
' p_editarRegla.BringToFront
ScrollView1.Panel.RemoveAllViews
ScrollView1.Panel.LoadLayout("editaRegla")
ScrollView1.Height = p_editarRegla.Height * 0.9
ScrollView1.Panel.Height = ScrollView1.Height
Private et_sale As EditText
et_sale.Initialize("et_sale")
et_sale.TextColor = Colors.Black
et_sale.TextSize = 15
p_contestacion.RemoveAllViews
p_contestacion.AddView(et_sale, 10, 10, (p_contestacion.Width*0.95), 30dip)
Private d As Map = NotificationService.mapReglas.Get(Value)
If Starter.showLogs Then Log(d)
et_entra.InputType = Bit.Or(0x00080000, 0x00000090) 'TYPE_TEXT_FLAG_NO_SUGGESTIONS | TYPE_TEXT_VARIATION_VISIBLE_PASSWORD
et_entra.SingleLine = False
et_sale.InputType = Bit.Or(0x00080000, 0x00000090) 'TYPE_TEXT_FLAG_NO_SUGGESTIONS | TYPE_TEXT_VARIATION_VISIBLE_PASSWORD
et_sale.SingleLine = False
et_contEsp.InputType = Bit.Or(0x00080000, 0x00000090) 'TYPE_TEXT_FLAG_NO_SUGGESTIONS | TYPE_TEXT_VARIATION_VISIBLE_PASSWORD
et_contEsp.SingleLine = False
et_nombre.Tag = Value
et_nombre.Text = d.Get("nombre")
l_idRegla.Text = "(" & d.Get("id") & ")"
et_entra.Text = d.Get("recibe")
Private ets() As String = Regex.Split("//", d.Get("contesta")) 'Dividimos el regla en sus multiples respuestas.
' et_sale.Text = d.Get("contesta")
et_sale.Text = ets(0).trim
If ets.Length > 1 Then
For x = 1 To ets.Length - 1
addET(ets(x).Trim)
Next
End If
destinatario = "Personas"
If d.Get("destinatario") <> Null Then destinatario = d.Get("destinatario")
If destinatario = "Personas" Then r_destinatario_p.Checked = True
If destinatario = "Grupos" Then r_destinatario_g.Checked = True
If destinatario = "Ambos" Then r_destinatario_a.Checked = True
et_contEsp.Text = d.Get("contactoEspecifico")
r_destinatario_p.Tag = destinatario
p_editarRegla.visible = True
p_sombra.Visible = True
If Starter.showLogs Then Log(contactsPermission)
' If contactsPermission Then
' Dim res As List = InputMultiList(Subs.getContactos, "Select")
' Log(res)
' End If
RecalculateHeightViews
End Sub
Private Sub r_destinatario_p_CheckedChange(Checked As Boolean)
If Starter.showLogs Then Log(Sender.As(RadioButton).text & "|" &Checked)
destinatario = Sender.As(RadioButton).text
r_destinatario_p.Tag = destinatario
End Sub
Private Sub r_destinatario_g_CheckedChange(Checked As Boolean)
If Starter.showLogs Then Log(Sender.As(RadioButton).text & "|" &Checked)
destinatario = Sender.As(RadioButton).text
r_destinatario_p.Tag = destinatario
End Sub
Private Sub r_destinatario_a_CheckedChange(Checked As Boolean)
' Log(Sender.As(RadioButton).text & "|" &Checked)
destinatario = Sender.As(RadioButton).text
r_destinatario_p.Tag = destinatario
End Sub
'Agregamos regla.
Sub fb_add_Clicked(X As Float,Y As Float)
' ToastMessageShow("Button Clicked",False)
Subs.agregaRegla
NotificationService.mapReglas = Subs.traeReglas
' B4XPage_Appear
muestraReglas
End Sub
Private Sub B4XPage_CloseRequest As ResumableSub
Sleep(0)
If Starter.showLogs Then Log("B4XPage_CloseRequest")
' if starter.showLogs then Log(p_contactPicker.Visible)
If p_contactPicker.Visible = True Then
p_contactPicker.Visible = False
Return False
End If
If p_editarRegla.Visible Then
p_editarRegla.Visible = False
p_sombra.Visible = False
Return False
End If
Return True
End Sub
Private Sub p_editarRegla_Click
'Nothing here.
End Sub
Private Sub p_sombra_Click
'Nothing here.
End Sub
Sub muestraContactos
If Starter.showLogs Then Log("muestraContactos")
p_contactPicker.Visible = True
ime.HideKeyboard
p_contactPicker.left = 0
p_contactPicker.Top = 0
p_contactPicker.Width = Root.Width
p_contactPicker.Height = Root.Height
clv_contactPicker.GetBase.SetLayoutAnimated(0, 5dip, 30dip, Root.Width - 10, Root.Height * 0.68) 'Cambiamos el tamaño y posición de la lista de productos
clv_contactPicker.Base_Resize(clv_contactPicker.GetBase.Width, clv_contactPicker.GetBase.Height) 'Cambiamos el tamaño del panel interno de la lista para que ajuste al nuevo tamaño.
p_conEsp.Top = clv_contactPicker.GetBase.Top + clv_contactPicker.GetBase.Height + 20
b_guardaConEsp.top = p_conEsp.Top + p_conEsp.Height + 20
End Sub
Sub CreateContactsItem(nom As String, Width As Int, Height As Int) As Panel 'ignore
Dim p As B4XView = xui.CreatePanel("")
p.SetLayoutAnimated(0, 0, 0, Width, Height)
p.LoadLayout("contactItem")
l_contact.Text = nom
p_contacts.Height = Height
' Log($"${p_contacts.Height}, ${l_contact.Height}"$)
cb_selectContact.Top = (p_contacts.Height/2) - (cb_selectContact.Height/2)
l_contact.Top = (p_contacts.Height/2) - (l_contact.Height/2)
Subs.SetButtonTintList(cb_selectContact, Colors.red, Colors.RGB(7, 183, 0))
cb_selectContact.Tag = nom
l_contact.Text = nom
Return p
End Sub
Private Sub clv_contactPicker_ItemClick (Index As Int, Value As Object)
' Log($"${Index}, ${Value}"$ )
Dim cb As CheckBox = clv_contactPicker.GetPanel(Index).GetView(0).GetView(0)
If cb.Checked Then cb.Checked = False Else cb.Checked = True
End Sub
Private Sub et_contEsp_FocusChanged (HasFocus As Boolean)
' If HasFocus Then
' muestraContactos
' End If
End Sub
Private Sub cb_selectContact_CheckedChange(Checked As Boolean)
If Starter.showLogs Then Log(Sender.As(CheckBox).tag)
et_conEsp2.Text = ""
If Checked Then
contactosEspecificos.Add(Sender.As(CheckBox).tag) 'Si no está en la lista, lo agregamos.
Else
If contactosEspecificos.IndexOf(Sender.As(CheckBox).tag) > -1 Then
contactosEspecificos.RemoveAt(contactosEspecificos.IndexOf(Sender.As(CheckBox).tag)) 'Si ya esta en la lista lo quitamos.
End If
End If
' if starter.showLogs then Log(contactosEspecificos)
For Each c In contactosEspecificos
If et_conEsp2.Text <> "" Then et_conEsp2.Text = et_conEsp2.Text & ", " & c Else et_conEsp2.Text = c
Next
End Sub
Private Sub b_guardaConEsp_Click
Dim l As List
l.initialize
Dim t() As String = Regex.Split(",", et_contEsp.text)
For i = 0 To t.Length-1
l.add(t(i).trim)
Next
contactosEspecificos.AddAll(l)
contactosEspecificos = Subs.removeListDuplicates(contactosEspecificos)
et_contEsp.Text = ""
For Each c In contactosEspecificos
If et_contEsp.Text <> "" Then et_contEsp.Text = et_contEsp.Text & ", " & c Else et_contEsp.Text = c
Next
et_contEsp.text = et_contEsp.text.Replace(", ,", ",")
p_contactPicker.Visible = False
et_conEsp2.Text = ""
contactosEspecificos.Clear
clv_contactPicker.Clear
PCLV_AddItems
End Sub
Private Sub b_getContacts_Click
muestraContactos
End Sub
Sub addET(texto As String)
Dim etX As EditText
etX.Initialize("etX")
etX.TextColor = Colors.Black
etX.TextSize = 12
etX.Tag = listaReglasContestaciones.size
listaReglasContestaciones.add(etX)
Dim newTop As Int = et_sale.top + et_sale.Height
If listaReglasContestaciones.Size > 0 Then
For k = 0 To listaReglasContestaciones.Size - 1
newTop = newTop + listaReglasContestaciones.Get(k).As(EditText).Height
Next
End If
p_contestacion.AddView(etX, et_sale.left, newTop, et_sale.Width, 35dip)
etX.Text = texto
End Sub
Private Sub b_addET_Click
addET("")
' Log("Agregamos ET, " & listaReglasContestaciones.size & "|" & etX.Tag & ", top=" & newTop)
RecalculateHeightViews
' Log(etX.top)
End Sub
Sub etX_TextChanged (Old As String, New As String)
' Log(Sender.As(EditText).tag)
RecalculateHeightViews
End Sub