gitextract_bmhm5g9q/ ├── .github/ │ ├── ISSUE_TEMPLATE/ │ │ ├── bug_report.md │ │ └── feature_request.md │ └── workflows/ │ └── android_master.yml ├── .gitignore ├── CHANGELOG.md ├── CODE_OF_CONDUCT.md ├── LICENSE.txt ├── PULL_REQUEST_TEMPLATE.md ├── README.md ├── build.gradle ├── canarinho/ │ ├── .gitignore │ ├── build.gradle │ └── src/ │ └── main/ │ ├── AndroidManifest.xml │ └── java/ │ └── br/ │ └── com/ │ └── concrete/ │ └── canarinho/ │ ├── DigitoPara.java │ ├── formatador/ │ │ ├── Formatador.java │ │ ├── FormatadorBase.java │ │ ├── FormatadorBoleto.java │ │ ├── FormatadorCEP.java │ │ ├── FormatadorCPFCNPJ.java │ │ ├── FormatadorLinhaDigitavel.java │ │ ├── FormatadorTelefone.java │ │ └── FormatadorValor.java │ ├── validator/ │ │ ├── Validador.java │ │ ├── ValidadorBoleto.java │ │ ├── ValidadorCEP.java │ │ ├── ValidadorCNPJ.java │ │ ├── ValidadorCPF.java │ │ ├── ValidadorCPFCNPJ.java │ │ └── ValidadorTelefone.java │ └── watcher/ │ ├── BaseCanarinhoTextWatcher.java │ ├── BoletoBancarioTextWatcher.java │ ├── CEPTextWatcher.java │ ├── CPFCNPJTextWatcher.java │ ├── MascaraNumericaTextWatcher.java │ ├── TelefoneTextWatcher.java │ ├── ValorMonetarioWatcher.java │ └── evento/ │ ├── EventoDeValidacao.java │ └── EventoDeValidacaoDeBoleto.java ├── gradle/ │ └── wrapper/ │ ├── gradle-wrapper.jar │ └── gradle-wrapper.properties ├── gradle.properties ├── gradlew ├── gradlew.bat ├── sample/ │ ├── .gitignore │ ├── build.gradle │ ├── proguard-rules.pro │ └── src/ │ ├── androidTest/ │ │ └── java/ │ │ └── br/ │ │ └── com/ │ │ └── concrete/ │ │ └── canarinho/ │ │ └── sample/ │ │ ├── BugOnApi28Test.java │ │ └── DemoWatchersInstrumentationTest.java │ ├── main/ │ │ ├── AndroidManifest.xml │ │ ├── java/ │ │ │ └── br/ │ │ │ └── com/ │ │ │ └── concrete/ │ │ │ └── canarinho/ │ │ │ └── sample/ │ │ │ └── ui/ │ │ │ ├── activity/ │ │ │ │ └── MainActivity.java │ │ │ ├── adapter/ │ │ │ │ └── WatchersPagerAdapter.java │ │ │ ├── fragment/ │ │ │ │ ├── BaseWatcherFragment.java │ │ │ │ ├── CanarinhoValorMonetarioWatcherFragment.java │ │ │ │ └── WatcherFragment.java │ │ │ └── model/ │ │ │ └── Watchers.java │ │ └── res/ │ │ ├── layout/ │ │ │ ├── fragment_canarinho_watcher.xml │ │ │ ├── fragment_valor_monetario_watcher.xml │ │ │ └── main_activity.xml │ │ └── values/ │ │ ├── strings.xml │ │ └── styles.xml │ └── test/ │ └── java/ │ └── br/ │ └── com/ │ └── concrete/ │ └── canarinho/ │ └── test/ │ ├── TesteFormatadorBOLETO.java │ ├── TesteFormatadorCEP.java │ ├── TesteFormatadorCNPJ.java │ ├── TesteFormatadorCPF.java │ ├── TesteFormatadorCPFCNPJ.java │ ├── TesteFormatadorLinhaDigitavel.java │ ├── TesteFormatadorTelefone.java │ ├── TesteFormatadorValor.java │ ├── TesteValidadores.java │ └── watcher/ │ ├── BoletoTextWatcherTest.java │ └── ValorMonetarioWatcherTest.java ├── settings.gradle └── tools/ ├── linters/ │ ├── checkstyle/ │ │ ├── checkstyle.xml │ │ └── suppressions.xml │ ├── linters.gradle │ └── pmd/ │ └── pmd-ruleset.xml └── publish.gradle