=========
`xMova Android <../doc.html>`_
=========
-------
INPUT
-------
``Versão 2.7+``
Esta funcionalidade permite requerer valores ao usuário; tanto textuais como numéricos, permite também a utilização de algorítmos de geração de senhas que funcionam offline para avaliar se o usuário pode continuar a execução do fluxo ou não. Para continuar é preciso informar a senha correta.
Quando é utilizada a funcionalidade com **passwordType* o valor retornado é 0 ou 1. (1 para a senha válida e 0 para a senha inválida).
---------
Atributos:
---------
* ``title`` : Define o título da tela que será exibida ao usuário, caso não seja informado é utilizado o nome do aplicativo. Pode conter um valor primitivo como no exemplo abaixo, valores de campo ou um valor de lang.
* ``text`` : Define a mensagem que será exibida ao usuário no topo da tela. Pode conter um valor primitivo como no exemplo abaixo, valores de campo ou um valor de lang.
* ``hint`` : Define a mensagem que será exida abaixo do campo de input. Pode conter valores primitivos, valores de campo ou um lang.
* ``type`` : Define o tipo do input, se será numérico ou textual. (Ex.: Integer, Long, Decimal, String...).
* ``minValue`` : Define o valor mínimo que o usuário deve informar para que o valor seja considerado como válido.
* ``maxLength``: Define a quantidade máxima de caracteres que o usuário pode informar.
* ``mask`` : Define a máscara que deverá ser usada para a inserção do valor pelo usuário.
* ``defaultValue`` : Define o valor inicial que virá no input quando for solicitada a inserção do valor pelo usuário.
* ``decimalSize`` : Define a quantidade de casas decimais, quando o valor a ser inserido é do tipo decimal
* ``manualDecimal`` : Desabilita a formatação automática e apresenta o separador decimal no teclado para que o usuário possa definir quando inserir a separação decimal, quando o valor é do tipo decimal.
* ``password`` : Define que os valores digitados pelo usuário devem ser substituídos por '*' para que não sejam visualizados.
* ``textArea`` : Define que será possível a inserção de quebras de linha, quando o input for textual.
* ``notBack``: Desabilita a ação de voltar da tela
* ``backAfterOk`` : Determina que o aplicativo deve executar a ação de voltar após a inserção e confirmação do valor pelo usuário.
* ``passwordType`` : Determina qual algorítimo deve ser usado para a geração da senha que deve ser digitada pelo usuário. Valores: **random**, **against** ou **counter**
* ``passwordSeeds``: Quando o tipo é **against** ou **counter** podem ser passados valores para serem usados para a geração da senha. Podem ser valores primitivos e ou valores de campo; os valores devem ser numéricos e separados por vírgula.
------
Langs :
------
* ``FixedKeyMsgInvalidValue`` : Exibida quando o valor digitado pelo usuário não atende aos requisitos de preenchimento.
* ``FixedKeyCommandOK`` : Exibida no teclado para que o usuário confirme a inserção do valor (Teclado Nativo).
* ``FixedKeyInputKeyboardDecimalSymbol`` : Usada para exibir o símbolo de separação decimal quando o input contém o atributo **manualDecimal** (Teclado Customizado).
* ``FixedKeyInputKeyboardDone`` : Exibida no teclado para que o usuário confirme a inserção do valor (Teclado Customizado).
* ``FixedKeyInputKeyboardBackspace`` : Exibida no teclado para que o usuário apague um valor digitado (Teclado Customizado).
**Exemplo**::
ApontamentoServico sync=out cleanupDays=20 notSavedMessage openFinish
id inc
codigoTecnico CodigoTecnico
idOS int notFill
codigoOS long notFormatThousand fillCondition="boletim.osIniciada == 0 && tipoApontamentoOS == %TipoCriarOS" maxLength=10
server name=Apontamento
fieldEvents
onValidate
codigoOS
if codigoOS == 0
toast @"Valor Inválido!"
return false
OrdemServico os = SelectFirst FROM OrdemServico WHERE codigo == :codigoOS
if os != null
if os.status == %TipoStatusOSAguardandoPecas
toast @"OS está aguardando peça!"
return false
if os != null
if os.status == %TipoStatusOSFaturamento
toast @"OS já finalizada!"
return false
startWait
if os != null
idOs = os.id
stopWait
return confirm text=custom.OSExistente
stopWait
return input title=@"Senha" text=@"Digite a senha para continuar" hint=@"Valor gerado " passwordType=counter passwordSeeds=codigoOs,codigoTecnico
A tag **** deve ser adicionada onde deve aparecer o valor randômico gerado pelo aplicativo quando utilizando a funcionalidade de inserção de senha.