Escolar Documentos
Profissional Documentos
Cultura Documentos
MANUAL DE INTEGRAÇÃO
CUSTOMVIEW
VERSÃO 1.3
Este documento contém aspectos confidenciais e estratégicos da empresa Auttar, os quais foram entregues em
caráter restrito, não podendo ser distribuído, copiado ou divulgado a terceiros sem autorização prévia da mesma
Controle de Versão
Aprovação do Documento
2 CustomViewCTFClientActivity
Para customizar a UI de captura é necessário especializar a CustomViewCTFClientActivity e
implementar os métodos abstratos que definem cada comportamento da interação com o
usuário.
Caso a CustomView necessite receber dados adicionais para compor a UI, é possivel fornecer
esses dados com ajuda do setCustomData, disponivel na instância da LibCTFClient.IntentBuilder
e que recebe como parâmetro, tipos que implementam android.os.Parcelable. Para recuperar
os dados dentro da CustomView, devemos utilizar o getCustomData().
Observação:
• Se a implementação da CustomView sobrescrever os métodos onBackPressed, onResume
e onDestroy, ela deve obrigatoriamente realizar a chamada para o super de cada
método.
• A CustomView não suporta rotação da tela, sendo assim, a orientação da tela deve ser
travada (landacape ou portrait) antes da execução do método init().
2.1 Métodos
2.1.1 onOk
Utilizado para indicar ao SDK que o usuário já finalizou a entrada de dados. Logo a seguir, será
apresentado o método onShowDataCapture que descreve o comportamento do componente
Dessa forma, o método onOk deve ser associado ao botão “Enter” ou equivalente, que por sua
vez, deve sempre ser acionado para indicar ao SDK que ele deve recuperar os dados imputados
pelo usuário.
2.1.2 onCancel
Utilizado para indicar ao SDK que o usuário não deseja informar os dados solicitados. Deve ser
associado a um componente visual que possibilite essa ação. Ex.: botão no display ou botão
físico (voltar).
2.1.3 init
Responsável por iniciar os demais componentes de integração e UI do SDK. Deve ser solicitado
apenas quando todos os componentes de UI customizáveis estiverem prontos para execução.
Com a execução do método init, o SDK entende que deve iniciar o processamento e passa a
controlar todos os componentes que foram customizados pelo integrador.
O método init deve receber como parâmetro uma instancia do componente que será utilizado
para capturar dados do usuário.
A seguir, serão apresentados os métodos abstratos que devem ser implementados para
2.2.1 onShowDisplay
Responsável por exibir mensagens ao operador. O componente de display deve ser
implementado de forma independente dos demais componentes, uma vez que ele
complementa outros aspectos da interação com usuário. Ex.: Exibir uma mensagem ao usuário
ou associado a captura do número de parcelas enquanto aguardar uma confirmação do
usuário.
2.2.2 onShowDataCapture
Responsável por indicar se o componente de captura de dados deve ser exibido ou ocultado. O
componente de captura deve ser um componente EditText ou um componente personalizado
que especialize o EditText.
2.2.3 onShowMenu
Responsável por exibir um menu de seleção para o usuário. O menu deve conter o título
passado no parâmetro do método e a lista de opção, onde a seleção do usuário deve ser
indicada através da instancia do MenuResult.
2.2.5 onShowConfirmationButtons
Responsável em exibir um componente para confirmação de dados. O componente deve
compor 2 botões (Confirmar e Cancelar). Normalmente utilizado para solicitar ao usuário que
ele concorde ou indique confirmação dos dados apresentado.
O método será requisitado sempre que o SDK identificar que o controle de confirmação deve
ser exibido ou ocultado. Conforme mencionado anteriormente, o componente deve
disponibilizar botões de ação, onde seu estado (visível ou oculto) é controlado de forma
individual.
Após ação do usuário, o botão deve ser ocultado automaticamente. Ou seja, ao clicar no botão
“confirmar ou cancelar” o componente deve ser ocultado, sem aguardar uma ação do SDK.
2.2.6 onShowKeyboard
Responsável por indicar se o teclado deve ser exibido ao usuário. A implementação desse
método pode não ser aplicável para algumas customizações de UI. Ex.: Customizações onde o
Porém, mesmo com a definição de um teclado fixo, se for o caso, a implementação não deverá
ignorar o parâmetro inputType, que define o layout do teclado para captura de dados.
2.2.7 onClean
Responsável por “limpar” o componente de display modificado pelo onShowDisplay. O SDK
pode solicitar a execução do onClean combinado com um conjunto de interações com o
usuário. Ex.: Antes da execução do onShowDisplay ou antes do onShowMenu.
2.2.8 onAbort
Permite sinalizar para o SDK uma intenção de abort da operação em execução. Atualmente, o
SDK irá iniciar o processo de abort apenas durante o processamento da leitura do cartão ou
senha.
O processamento do abort não é 100% garantido, uma vez que depende da execução da
máquina de estado do SDK. Quando a solicitação de abort for elegível, o SDK irá retornar true.
Contudo, esse retorno apenas indica que a intenção foi aceita.
Observação:
A rotina de abort deve ser utilizada apenas quando for necessário forçar uma interrupção do
processamento do SDK. Essa rotina foi disponibilizada para atender soluções de ATM, onde
existe a necessita de recuperar o controle do processamento, uma vez, que o usuário
abandonou a operação durante o fluxo de leitura do cartão, por exemplo.
2.2.9 showQrCode
Método responsável por exibir a imagem QR Code nas transações com QR Code. O método
possuí a seguinte assinatura:
Parâmetros:
• image: Um Bitmap, possui a imagem do QR Code em si, devendo ser exibida em tela
obrigatoriamente para poder seguir com a transação.
• pinCode: String com o código para transações QR Code digitadas, aceita somente por
alguns wallets. É uma segunda opção para este tipo de transações, a preferência é o uso
2.2.10 closeQrCode
Método chamado após a conclusão ou fim do tempo para a leitura do QR Code exibido pela
showQrCode este por sua vez deve remover a tela de QR Code, seja ela uma Activity ou um
Dialog.
2.3.1 Result
Interface que representa a decisão do usuário.
2.3.2 MenuResult
Enum que indica o layout do teclado que deve ser utilizado para capturar os dados de entradas.
Atualmente, o SDK suporta apenas captura com teclado numérico.