├── .github └── ISSUE_TEMPLATE │ ├── bug_report.md │ ├── custom.md │ └── feature_request.md ├── .gitignore ├── CODE_OF_CONDUCT.md ├── CONTRIBUTING.md ├── LICENSE ├── README.md ├── app ├── .gitignore ├── build.gradle.kts ├── proguard-rules.pro └── src │ └── main │ ├── AndroidManifest.xml │ ├── java │ └── com │ │ └── simform │ │ └── customedittextoutlineborder │ │ ├── BaseActivity.kt │ │ ├── MainActivity.kt │ │ ├── MainActivityViewModel.kt │ │ ├── SplashActivity.kt │ │ ├── SplashActivityViewModel.kt │ │ └── extention │ │ ├── LifeCycleExtensions.kt │ │ └── ValidationExtentions.kt │ └── res │ ├── drawable-v24 │ └── ic_launcher_foreground.xml │ ├── drawable │ ├── bg_bottom_sheet.xml │ ├── bg_button.xml │ ├── bg_custom_edittext.xml │ ├── ic_github_svgrepo_com.xml │ └── ic_launcher_background.xml │ ├── layout │ ├── activity_main.xml │ └── activity_splash.xml │ ├── mipmap-anydpi-v26 │ ├── ic_launcher.xml │ └── ic_launcher_round.xml │ ├── mipmap-hdpi │ ├── ic_launcher.png │ └── ic_launcher_round.png │ ├── mipmap-mdpi │ ├── ic_launcher.png │ └── ic_launcher_round.png │ ├── mipmap-xhdpi │ ├── ic_launcher.png │ └── ic_launcher_round.png │ ├── mipmap-xxhdpi │ ├── ic_launcher.png │ └── ic_launcher_round.png │ ├── mipmap-xxxhdpi │ ├── ic_launcher.png │ └── ic_launcher_round.png │ └── values │ ├── colors.xml │ ├── strings.xml │ └── styles.xml ├── build.gradle.kts ├── buildSrc ├── build.gradle.kts ├── build │ ├── classes │ │ └── kotlin │ │ │ └── main │ │ │ ├── ClassPaths.class │ │ │ ├── Configs.class │ │ │ ├── DepsBuilder.class │ │ │ ├── DepsBuilderKt.class │ │ │ ├── Libs$Android.class │ │ │ ├── Libs$Androidx.class │ │ │ ├── Libs$Kotlin.class │ │ │ ├── Libs.class │ │ │ ├── META-INF │ │ │ └── buildSrc.kotlin_module │ │ │ ├── Plugins.class │ │ │ ├── TestLibraries$Versions.class │ │ │ ├── TestLibraries.class │ │ │ ├── Urls.class │ │ │ └── Versions.class │ ├── kotlin │ │ ├── buildSrcjar-classes.txt │ │ └── compileKotlin │ │ │ ├── build-history.bin │ │ │ ├── caches-jvm │ │ │ ├── inputs │ │ │ │ ├── source-to-output.tab │ │ │ │ ├── source-to-output.tab.keystream │ │ │ │ ├── source-to-output.tab.keystream.len │ │ │ │ ├── source-to-output.tab.len │ │ │ │ ├── source-to-output.tab.values.at │ │ │ │ ├── source-to-output.tab_i │ │ │ │ └── source-to-output.tab_i.len │ │ │ ├── jvm │ │ │ │ └── kotlin │ │ │ │ │ ├── class-fq-name-to-source.tab │ │ │ │ │ ├── class-fq-name-to-source.tab.keystream │ │ │ │ │ ├── class-fq-name-to-source.tab.keystream.len │ │ │ │ │ ├── class-fq-name-to-source.tab.len │ │ │ │ │ ├── class-fq-name-to-source.tab.values.at │ │ │ │ │ ├── class-fq-name-to-source.tab_i │ │ │ │ │ ├── class-fq-name-to-source.tab_i.len │ │ │ │ │ ├── constants.tab │ │ │ │ │ ├── constants.tab.keystream │ │ │ │ │ ├── constants.tab.keystream.len │ │ │ │ │ ├── constants.tab.len │ │ │ │ │ ├── constants.tab.values.at │ │ │ │ │ ├── constants.tab_i │ │ │ │ │ ├── constants.tab_i.len │ │ │ │ │ ├── internal-name-to-source.tab │ │ │ │ │ ├── internal-name-to-source.tab.keystream │ │ │ │ │ ├── internal-name-to-source.tab.keystream.len │ │ │ │ │ ├── internal-name-to-source.tab.len │ │ │ │ │ ├── internal-name-to-source.tab.values.at │ │ │ │ │ ├── internal-name-to-source.tab_i │ │ │ │ │ ├── internal-name-to-source.tab_i.len │ │ │ │ │ ├── package-parts.tab │ │ │ │ │ ├── package-parts.tab.keystream │ │ │ │ │ ├── package-parts.tab.keystream.len │ │ │ │ │ ├── package-parts.tab.len │ │ │ │ │ ├── package-parts.tab.values.at │ │ │ │ │ ├── package-parts.tab_i │ │ │ │ │ ├── package-parts.tab_i.len │ │ │ │ │ ├── proto.tab │ │ │ │ │ ├── proto.tab.keystream │ │ │ │ │ ├── proto.tab.keystream.len │ │ │ │ │ ├── proto.tab.len │ │ │ │ │ ├── proto.tab.values.at │ │ │ │ │ ├── proto.tab_i │ │ │ │ │ ├── proto.tab_i.len │ │ │ │ │ ├── source-to-classes.tab │ │ │ │ │ ├── source-to-classes.tab.keystream │ │ │ │ │ ├── source-to-classes.tab.keystream.len │ │ │ │ │ ├── source-to-classes.tab.len │ │ │ │ │ ├── source-to-classes.tab.values.at │ │ │ │ │ ├── source-to-classes.tab_i │ │ │ │ │ └── source-to-classes.tab_i.len │ │ │ └── lookups │ │ │ │ ├── counters.tab │ │ │ │ ├── file-to-id.tab │ │ │ │ ├── file-to-id.tab.keystream │ │ │ │ ├── file-to-id.tab.keystream.len │ │ │ │ ├── file-to-id.tab.len │ │ │ │ ├── file-to-id.tab.values.at │ │ │ │ ├── file-to-id.tab_i │ │ │ │ ├── file-to-id.tab_i.len │ │ │ │ ├── id-to-file.tab │ │ │ │ ├── id-to-file.tab.keystream │ │ │ │ ├── id-to-file.tab.keystream.len │ │ │ │ ├── id-to-file.tab.len │ │ │ │ ├── id-to-file.tab.values.at │ │ │ │ ├── id-to-file.tab_i │ │ │ │ ├── id-to-file.tab_i.len │ │ │ │ ├── lookups.tab │ │ │ │ ├── lookups.tab.keystream │ │ │ │ ├── lookups.tab.keystream.len │ │ │ │ ├── lookups.tab.len │ │ │ │ ├── lookups.tab.values.at │ │ │ │ ├── lookups.tab_i │ │ │ │ └── lookups.tab_i.len │ │ │ └── last-build.bin │ ├── libs │ │ └── buildSrc.jar │ ├── pluginUnderTestMetadata │ │ └── plugin-under-test-metadata.properties │ ├── reports │ │ └── plugin-development │ │ │ └── validation-report.txt │ ├── source-roots │ │ └── buildSrc │ │ │ └── source-roots.txt │ └── tmp │ │ └── jar │ │ └── MANIFEST.MF └── src │ └── main │ └── kotlin │ ├── Dependencies.kt │ └── DepsBuilder.kt ├── customedittextoutlinedborder ├── .gitignore ├── build.gradle ├── consumer-rules.pro ├── proguard-rules.pro └── src │ └── main │ ├── AndroidManifest.xml │ ├── java │ └── com │ │ └── simform │ │ ├── customcomponent │ │ └── SSCustomEdittextOutlinedBorder.kt │ │ └── databinding │ │ └── SSCustomEditTextBinder.kt │ └── res │ ├── drawable │ ├── bg_custom_edittext.xml │ ├── ic_baseline_visibility_24.xml │ └── ic_baseline_visibility_off_24.xml │ ├── font │ └── graphik_regular.ttf │ ├── layout │ └── layout_custom_edittext.xml │ └── values │ ├── attrs.xml │ ├── colors.xml │ ├── strings.xml │ └── styles.xml ├── github.properties ├── gradle.properties ├── gradle └── wrapper │ ├── gradle-wrapper.jar │ └── gradle-wrapper.properties ├── gradlew ├── gradlew.bat ├── images ├── data.gif ├── data_new.gif ├── demo_gif.gif ├── demo_new.gif ├── test_1.png └── test_3.png ├── jitpack.yml └── settings.gradle.kts /.github/ISSUE_TEMPLATE/bug_report.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Bug report 3 | about: Create a report to help us improve 4 | title: '' 5 | labels: '' 6 | assignees: '' 7 | 8 | --- 9 | 10 | **Describe the bug** 11 | A clear and concise description of what the bug is. 12 | 13 | **To Reproduce** 14 | Steps to reproduce the behavior: 15 | 1. Go to '...' 16 | 2. Click on '....' 17 | 3. Scroll down to '....' 18 | 4. See error 19 | 20 | **Expected behavior** 21 | A clear and concise description of what you expected to happen. 22 | 23 | **Screenshots** 24 | If applicable, add screenshots to help explain your problem. 25 | 26 | **Desktop (please complete the following information):** 27 | - OS: [e.g. iOS] 28 | - Browser [e.g. chrome, safari] 29 | - Version [e.g. 22] 30 | 31 | **Smartphone (please complete the following information):** 32 | - Device: [e.g. iPhone6] 33 | - OS: [e.g. iOS8.1] 34 | - Browser [e.g. stock browser, safari] 35 | - Version [e.g. 22] 36 | 37 | **Additional context** 38 | Add any other context about the problem here. 39 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/custom.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Custom issue template 3 | about: Describe this issue template's purpose here. 4 | title: '' 5 | labels: '' 6 | assignees: '' 7 | 8 | --- 9 | 10 | 11 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/feature_request.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Feature request 3 | about: Suggest an idea for this project 4 | title: '' 5 | labels: '' 6 | assignees: '' 7 | 8 | --- 9 | 10 | **Is your feature request related to a problem? Please describe.** 11 | A clear and concise description of what the problem is. Ex. I'm always frustrated when [...] 12 | 13 | **Describe the solution you'd like** 14 | A clear and concise description of what you want to happen. 15 | 16 | **Describe alternatives you've considered** 17 | A clear and concise description of any alternative solutions or features you've considered. 18 | 19 | **Additional context** 20 | Add any other context or screenshots about the feature request here. 21 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | *.iml 2 | .gradle 3 | /local.properties 4 | /.idea/caches 5 | /.idea/libraries 6 | /.idea/modules.xml 7 | /.idea/workspace.xml 8 | /.idea/navEditor.xml 9 | /.idea/assetWizardSettings.xml 10 | .DS_Store 11 | /build 12 | /captures 13 | .externalNativeBuild 14 | .cxx 15 | github.properties 16 | -------------------------------------------------------------------------------- /CODE_OF_CONDUCT.md: -------------------------------------------------------------------------------- 1 | # Contributor Covenant Code of Conduct 2 | 3 | ## Our Pledge 4 | 5 | We as members, contributors, and leaders pledge to make participation in our 6 | community a harassment-free experience for everyone, regardless of age, body 7 | size, visible or invisible disability, ethnicity, sex characteristics, gender 8 | identity and expression, level of experience, education, socio-economic status, 9 | nationality, personal appearance, race, religion, or sexual identity 10 | and orientation. 11 | 12 | We pledge to act and interact in ways that contribute to an open, welcoming, 13 | diverse, inclusive, and healthy community. 14 | 15 | ## Our Standards 16 | 17 | Examples of behavior that contributes to a positive environment for our 18 | community include: 19 | 20 | * Demonstrating empathy and kindness toward other people 21 | * Being respectful of differing opinions, viewpoints, and experiences 22 | * Giving and gracefully accepting constructive feedback 23 | * Accepting responsibility and apologizing to those affected by our mistakes, 24 | and learning from the experience 25 | * Focusing on what is best not just for us as individuals, but for the 26 | overall community 27 | 28 | Examples of unacceptable behavior include: 29 | 30 | * The use of sexualized language or imagery, and sexual attention or 31 | advances of any kind 32 | * Trolling, insulting or derogatory comments, and personal or political attacks 33 | * Public or private harassment 34 | * Publishing others' private information, such as a physical or email 35 | address, without their explicit permission 36 | * Other conduct which could reasonably be considered inappropriate in a 37 | professional setting 38 | 39 | ## Enforcement Responsibilities 40 | 41 | Community leaders are responsible for clarifying and enforcing our standards of 42 | acceptable behavior and will take appropriate and fair corrective action in 43 | response to any behavior that they deem inappropriate, threatening, offensive, 44 | or harmful. 45 | 46 | Community leaders have the right and responsibility to remove, edit, or reject 47 | comments, commits, code, wiki edits, issues, and other contributions that are 48 | not aligned to this Code of Conduct, and will communicate reasons for moderation 49 | decisions when appropriate. 50 | 51 | ## Scope 52 | 53 | This Code of Conduct applies within all community spaces, and also applies when 54 | an individual is officially representing the community in public spaces. 55 | Examples of representing our community include using an official e-mail address, 56 | posting via an official social media account, or acting as an appointed 57 | representative at an online or offline event. 58 | 59 | ## Enforcement 60 | 61 | Instances of abusive, harassing, or otherwise unacceptable behavior may be 62 | reported to the community leaders responsible for enforcement at 63 | 📇 CODE_OF_CONDUCT.md. 64 | All complaints will be reviewed and investigated promptly and fairly. 65 | 66 | All community leaders are obligated to respect the privacy and security of the 67 | reporter of any incident. 68 | 69 | ## Enforcement Guidelines 70 | 71 | Community leaders will follow these Community Impact Guidelines in determining 72 | the consequences for any action they deem in violation of this Code of Conduct: 73 | 74 | ### 1. Correction 75 | 76 | **Community Impact**: Use of inappropriate language or other behavior deemed 77 | unprofessional or unwelcome in the community. 78 | 79 | **Consequence**: A private, written warning from community leaders, providing 80 | clarity around the nature of the violation and an explanation of why the 81 | behavior was inappropriate. A public apology may be requested. 82 | 83 | ### 2. Warning 84 | 85 | **Community Impact**: A violation through a single incident or series 86 | of actions. 87 | 88 | **Consequence**: A warning with consequences for continued behavior. No 89 | interaction with the people involved, including unsolicited interaction with 90 | those enforcing the Code of Conduct, for a specified period of time. This 91 | includes avoiding interactions in community spaces as well as external channels 92 | like social media. Violating these terms may lead to a temporary or 93 | permanent ban. 94 | 95 | ### 3. Temporary Ban 96 | 97 | **Community Impact**: A serious violation of community standards, including 98 | sustained inappropriate behavior. 99 | 100 | **Consequence**: A temporary ban from any sort of interaction or public 101 | communication with the community for a specified period of time. No public or 102 | private interaction with the people involved, including unsolicited interaction 103 | with those enforcing the Code of Conduct, is allowed during this period. 104 | Violating these terms may lead to a permanent ban. 105 | 106 | ### 4. Permanent Ban 107 | 108 | **Community Impact**: Demonstrating a pattern of violation of community 109 | standards, including sustained inappropriate behavior, harassment of an 110 | individual, or aggression toward or disparagement of classes of individuals. 111 | 112 | **Consequence**: A permanent ban from any sort of public interaction within 113 | the community. 114 | 115 | ## Attribution 116 | 117 | This Code of Conduct is adapted from the [Contributor Covenant][homepage], 118 | version 2.0, available at 119 | https://www.contributor-covenant.org/version/2/0/code_of_conduct.html. 120 | 121 | Community Impact Guidelines were inspired by [Mozilla's code of conduct 122 | enforcement ladder](https://github.com/mozilla/diversity). 123 | 124 | [homepage]: https://www.contributor-covenant.org 125 | 126 | For answers to common questions about this code of conduct, see the FAQ at 127 | https://www.contributor-covenant.org/faq. Translations are available at 128 | https://www.contributor-covenant.org/translations. 129 | -------------------------------------------------------------------------------- /CONTRIBUTING.md: -------------------------------------------------------------------------------- 1 | # Way to contribute 2 | 3 | 1. Fork the repo and create your branch from `master`. 4 | 2. Clone the project to your own machine. (Please have a look at [**Readme.md**](https://github.com/SimformSolutionsPvtLtd/SSCustomEditTextOutLineBorder/blob/master/README.md) to understand how to run this project on your machine) 5 | 3. Commit changes to your own branch 6 | 4. Make sure your code lints. 7 | 5. Push your work back up to your fork. 8 | 6. Issue that pull request! 9 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | Apache License 2 | Version 2.0, January 2004 3 | http://www.apache.org/licenses/ 4 | 5 | TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION 6 | 7 | 1. Definitions. 8 | 9 | "License" shall mean the terms and conditions for use, reproduction, 10 | and distribution as defined by Sections 1 through 9 of this document. 11 | 12 | "Licensor" shall mean the copyright owner or entity authorized by 13 | the copyright owner that is granting the License. 14 | 15 | "Legal Entity" shall mean the union of the acting entity and all 16 | other entities that control, are controlled by, or are under common 17 | control with that entity. For the purposes of this definition, 18 | "control" means (i) the power, direct or indirect, to cause the 19 | direction or management of such entity, whether by contract or 20 | otherwise, or (ii) ownership of fifty percent (50%) or more of the 21 | outstanding shares, or (iii) beneficial ownership of such entity. 22 | 23 | "You" (or "Your") shall mean an individual or Legal Entity 24 | exercising permissions granted by this License. 25 | 26 | "Source" form shall mean the preferred form for making modifications, 27 | including but not limited to software source code, documentation 28 | source, and configuration files. 29 | 30 | "Object" form shall mean any form resulting from mechanical 31 | transformation or translation of a Source form, including but 32 | not limited to compiled object code, generated documentation, 33 | and conversions to other media types. 34 | 35 | "Work" shall mean the work of authorship, whether in Source or 36 | Object form, made available under the License, as indicated by a 37 | copyright notice that is included in or attached to the work 38 | (an example is provided in the Appendix below). 39 | 40 | "Derivative Works" shall mean any work, whether in Source or Object 41 | form, that is based on (or derived from) the Work and for which the 42 | editorial revisions, annotations, elaborations, or other modifications 43 | represent, as a whole, an original work of authorship. For the purposes 44 | of this License, Derivative Works shall not include works that remain 45 | separable from, or merely link (or bind by name) to the interfaces of, 46 | the Work and Derivative Works thereof. 47 | 48 | "Contribution" shall mean any work of authorship, including 49 | the original version of the Work and any modifications or additions 50 | to that Work or Derivative Works thereof, that is intentionally 51 | submitted to Licensor for inclusion in the Work by the copyright owner 52 | or by an individual or Legal Entity authorized to submit on behalf of 53 | the copyright owner. For the purposes of this definition, "submitted" 54 | means any form of electronic, verbal, or written communication sent 55 | to the Licensor or its representatives, including but not limited to 56 | communication on electronic mailing lists, source code control systems, 57 | and issue tracking systems that are managed by, or on behalf of, the 58 | Licensor for the purpose of discussing and improving the Work, but 59 | excluding communication that is conspicuously marked or otherwise 60 | designated in writing by the copyright owner as "Not a Contribution." 61 | 62 | "Contributor" shall mean Licensor and any individual or Legal Entity 63 | on behalf of whom a Contribution has been received by Licensor and 64 | subsequently incorporated within the Work. 65 | 66 | 2. Grant of Copyright License. Subject to the terms and conditions of 67 | this License, each Contributor hereby grants to You a perpetual, 68 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable 69 | copyright license to reproduce, prepare Derivative Works of, 70 | publicly display, publicly perform, sublicense, and distribute the 71 | Work and such Derivative Works in Source or Object form. 72 | 73 | 3. Grant of Patent License. Subject to the terms and conditions of 74 | this License, each Contributor hereby grants to You a perpetual, 75 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable 76 | (except as stated in this section) patent license to make, have made, 77 | use, offer to sell, sell, import, and otherwise transfer the Work, 78 | where such license applies only to those patent claims licensable 79 | by such Contributor that are necessarily infringed by their 80 | Contribution(s) alone or by combination of their Contribution(s) 81 | with the Work to which such Contribution(s) was submitted. If You 82 | institute patent litigation against any entity (including a 83 | cross-claim or counterclaim in a lawsuit) alleging that the Work 84 | or a Contribution incorporated within the Work constitutes direct 85 | or contributory patent infringement, then any patent licenses 86 | granted to You under this License for that Work shall terminate 87 | as of the date such litigation is filed. 88 | 89 | 4. Redistribution. You may reproduce and distribute copies of the 90 | Work or Derivative Works thereof in any medium, with or without 91 | modifications, and in Source or Object form, provided that You 92 | meet the following conditions: 93 | 94 | (a) You must give any other recipients of the Work or 95 | Derivative Works a copy of this License; and 96 | 97 | (b) You must cause any modified files to carry prominent notices 98 | stating that You changed the files; and 99 | 100 | (c) You must retain, in the Source form of any Derivative Works 101 | that You distribute, all copyright, patent, trademark, and 102 | attribution notices from the Source form of the Work, 103 | excluding those notices that do not pertain to any part of 104 | the Derivative Works; and 105 | 106 | (d) If the Work includes a "NOTICE" text file as part of its 107 | distribution, then any Derivative Works that You distribute must 108 | include a readable copy of the attribution notices contained 109 | within such NOTICE file, excluding those notices that do not 110 | pertain to any part of the Derivative Works, in at least one 111 | of the following places: within a NOTICE text file distributed 112 | as part of the Derivative Works; within the Source form or 113 | documentation, if provided along with the Derivative Works; or, 114 | within a display generated by the Derivative Works, if and 115 | wherever such third-party notices normally appear. The contents 116 | of the NOTICE file are for informational purposes only and 117 | do not modify the License. You may add Your own attribution 118 | notices within Derivative Works that You distribute, alongside 119 | or as an addendum to the NOTICE text from the Work, provided 120 | that such additional attribution notices cannot be construed 121 | as modifying the License. 122 | 123 | You may add Your own copyright statement to Your modifications and 124 | may provide additional or different license terms and conditions 125 | for use, reproduction, or distribution of Your modifications, or 126 | for any such Derivative Works as a whole, provided Your use, 127 | reproduction, and distribution of the Work otherwise complies with 128 | the conditions stated in this License. 129 | 130 | 5. Submission of Contributions. Unless You explicitly state otherwise, 131 | any Contribution intentionally submitted for inclusion in the Work 132 | by You to the Licensor shall be under the terms and conditions of 133 | this License, without any additional terms or conditions. 134 | Notwithstanding the above, nothing herein shall supersede or modify 135 | the terms of any separate license agreement you may have executed 136 | with Licensor regarding such Contributions. 137 | 138 | 6. Trademarks. This License does not grant permission to use the trade 139 | names, trademarks, service marks, or product names of the Licensor, 140 | except as required for reasonable and customary use in describing the 141 | origin of the Work and reproducing the content of the NOTICE file. 142 | 143 | 7. Disclaimer of Warranty. Unless required by applicable law or 144 | agreed to in writing, Licensor provides the Work (and each 145 | Contributor provides its Contributions) on an "AS IS" BASIS, 146 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 147 | implied, including, without limitation, any warranties or conditions 148 | of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A 149 | PARTICULAR PURPOSE. You are solely responsible for determining the 150 | appropriateness of using or redistributing the Work and assume any 151 | risks associated with Your exercise of permissions under this License. 152 | 153 | 8. Limitation of Liability. In no event and under no legal theory, 154 | whether in tort (including negligence), contract, or otherwise, 155 | unless required by applicable law (such as deliberate and grossly 156 | negligent acts) or agreed to in writing, shall any Contributor be 157 | liable to You for damages, including any direct, indirect, special, 158 | incidental, or consequential damages of any character arising as a 159 | result of this License or out of the use or inability to use the 160 | Work (including but not limited to damages for loss of goodwill, 161 | work stoppage, computer failure or malfunction, or any and all 162 | other commercial damages or losses), even if such Contributor 163 | has been advised of the possibility of such damages. 164 | 165 | 9. Accepting Warranty or Additional Liability. While redistributing 166 | the Work or Derivative Works thereof, You may choose to offer, 167 | and charge a fee for, acceptance of support, warranty, indemnity, 168 | or other liability obligations and/or rights consistent with this 169 | License. However, in accepting such obligations, You may act only 170 | on Your own behalf and on Your sole responsibility, not on behalf 171 | of any other Contributor, and only if You agree to indemnify, 172 | defend, and hold each Contributor harmless for any liability 173 | incurred by, or claims asserted against, such Contributor by reason 174 | of your accepting any such warranty or additional liability. 175 | 176 | END OF TERMS AND CONDITIONS 177 | 178 | APPENDIX: How to apply the Apache License to your work. 179 | 180 | To apply the Apache License to your work, attach the following 181 | boilerplate notice, with the fields enclosed by brackets "[]" 182 | replaced with your own identifying information. (Don't include 183 | the brackets!) The text should be enclosed in the appropriate 184 | comment syntax for the file format. We also recommend that a 185 | file or class name and description of purpose be included on the 186 | same "printed page" as the copyright notice for easier 187 | identification within third-party archives. 188 | 189 | Copyright 2020 Simform Solutions 190 | 191 | Licensed under the Apache License, Version 2.0 (the "License"); 192 | you may not use this file except in compliance with the License. 193 | You may obtain a copy of the License at 194 | 195 | http://www.apache.org/licenses/LICENSE-2.0 196 | 197 | Unless required by applicable law or agreed to in writing, software 198 | distributed under the License is distributed on an "AS IS" BASIS, 199 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 200 | See the License for the specific language governing permissions and 201 | limitations under the License. 202 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # README # 2 | 3 | # SSCustomEditTextOutlineBorder 4 | 5 | [![](https://jitpack.io/v/SimformSolutionsPvtLtd/SSCustomEditTextOutLineBorder.svg)](https://jitpack.io/#SimformSolutionsPvtLtd/SSCustomEditTextOutLineBorder) 6 | [![Kotlin Version](https://img.shields.io/badge/Kotlin-v1.7.0-blue.svg)](https://kotlinlang.org) 7 | [![Platform](https://img.shields.io/badge/Platform-Android-green.svg?style=flat)](https://www.android.com/) 8 | [![API](https://img.shields.io/badge/API-21%2B-brightgreen.svg?style=flat)](https://android-arsenal.com/api?level=21) 9 | [![Android Weekly](https://img.shields.io/badge/Android%20Weekly-%23402-orange)](https://androidweekly.net/issues/issue-402) 10 | [![Android Arsenal]( https://img.shields.io/badge/Android%20Arsenal-SSCustomEditTextOutLineBorder-green.svg?style=flat )]( https://android-arsenal.com/details/1/8072) 11 | 12 | Getting Started 13 | ------------------------ 14 | `SSCustomEditTextOutLineBorder` is a small kotlin library for android to support outlined (stroked) text in EditText widgets same as [Material Design Outlined Box](https://material.io/develop/android/components/text-input-layout/) but without Floating Label. 15 | 16 | The actual features are: 17 | 18 | * Outlined text fields with a label which have custom-built text, color, errorColor and backgroundColor. 19 | * Outlined box border has customizable color and errorColor. 20 | * EditText with custom-made backgroundColor, hint text, max-min line, max length. 21 | * Error color customized with error enabled or not. 22 | 23 | ### Demo 24 | ------------------------ 25 | 26 | ![demo_data](https://github.com/simformsolutions/CustomEditTextOutLineBorder/blob/master/images/demo_new.gif) 27 | 28 | ### Gradle Dependency 29 | * Add the JitPack repository to your project's build.gradle file 30 | 31 | - For Gradle version 5.x.x or less 32 | ``` 33 | allprojects { 34 | repositories { 35 | ... 36 | maven { url 'https://jitpack.io' } 37 | } 38 | } 39 | ``` 40 | - For Gradle version 6.x.x and above, in settings.gradle file inside `pluginManagement` block 41 | ``` 42 | pluginManagement { 43 | repositories { 44 | ... 45 | maven { url 'https://jitpack.io' } 46 | } 47 | } 48 | ``` 49 | 50 | * Add the dependency in your app's build.gradle file 51 | 52 | ``` 53 | dependencies { 54 | implementation 'com.github.simformsolutions:SSCustomEditTextOutLineBorder:1.0.15' 55 | } 56 | ``` 57 | 58 | ### All Attributes 59 | ------------------------ 60 | 61 | | Attribute | Description | Default | 62 | | --- | --- | --- | 63 | | `app:isErrorEnable` | Whether the EditText error is enabled | `false` | 64 | | `app:custom_component_title` | Set Outlined border title text | `R.string.app_name` | 65 | | `app:custom_component_editText_hint` | Set EditText hint | `R.string.app_name` | 66 | | `app:custom_component_maxline` | Set maximum height of the EditText | `1` | 67 | | `app:custom_component_minline` | Set minimum height of the EditText | `1` | 68 | | `app:custom_component_title_color` | Set Outlined title color | `#666666` | 69 | | `app:custom_component_title_error_color` | Set Outlined title error color | `#f15454` | 70 | | `app:custom_component_border_color` | Set Outlined border color | `#979797` | 71 | | `app:custom_component_border_error_color` | Set Outlined border error color | `#f15454` | 72 | | `app:custom_component_title_bg_color` | Set Outlined border title background color | `R.color.colorPrimary` | 73 | | `app:custom_component_editText_bg_color` | Set EditText background color | `R.color.colorPrimary` | 74 | | `app:custom_component_maxLength` | Set EditText maxLength | `99` | 75 | | `android:inputType` | Set EditText inputType | `EditorInfo.TYPE_TEXT_VARIATION_NORMAL` | 76 | | `app:custom_component_border_width` | Set Outlined border width | `1` | 77 | | `app:isToggleEnable` | Whether Password Toggle is enabled | `false` | 78 | 79 | ### Usage 80 | ------------------------ 81 | 82 | ``` 83 | 105 | ``` 106 | 107 | ## Find this library useful? :heart: 108 | Support it by joining __[stargazers](https://github.com/simformsolutions/SSCustomEditTextOutLineBorder/stargazers)__ for this repository. :star: 109 | 110 | ## 🤝 How to Contribute 111 | 112 | Whether you're helping us fix bugs, improve the docs, or a feature request, we'd love to have you! :muscle: 113 | 114 | Check out our [**Contributing Guide**](https://github.com/SimformSolutionsPvtLtd/SSCustomEditTextOutLineBorder/blob/master/CONTRIBUTING.md) for ideas on contributing. 115 | 116 | ## Bugs and Feedback 117 | 118 | For bugs, feature requests, and discussion please use [GitHub Issues](https://github.com/SimformSolutionsPvtLtd/SSCustomEditTextOutLineBorder/issues). 119 | 120 | ## Awesome Mobile Libraries 121 | - Check out our other available [awesome mobile libraries](https://github.com/SimformSolutionsPvtLtd/Awesome-Mobile-Libraries) 122 | 123 | ## License 124 | 125 | ``` 126 | Copyright 2020 Simform Solutions 127 | 128 | Licensed under the Apache License, Version 2.0 (the "License"); 129 | you may not use this file except in compliance with the License. 130 | You may obtain a copy of the License at 131 | 132 | http://www.apache.org/licenses/LICENSE-2.0 133 | 134 | Unless required by applicable law or agreed to in writing, software 135 | distributed under the License is distributed on an "AS IS" BASIS, 136 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 137 | See the License for the specific language governing permissions and 138 | limitations under the License. 139 | ``` 140 | -------------------------------------------------------------------------------- /app/.gitignore: -------------------------------------------------------------------------------- 1 | *.iml 2 | .gradle 3 | /local.properties 4 | /.idea 5 | /.idea/workspace.xml 6 | /.idea/libraries 7 | .DS_Store 8 | /build 9 | /captures 10 | .externalNativeBuild 11 | libs/ 12 | .idea/gradle.xml 13 | .idea/misc.xml 14 | .idea/modules.xml 15 | .idea/runConfigurations.xml 16 | .idea/vcs.xml 17 | 18 | -------------------------------------------------------------------------------- /app/build.gradle.kts: -------------------------------------------------------------------------------- 1 | plugins { 2 | id(Plugins.androidApplication) 3 | id(Plugins.kotlinAndroid) 4 | id(Plugins.kotlinExtensions) 5 | id(Plugins.kapt) 6 | } 7 | 8 | android { 9 | compileSdkVersion(Configs.compileSdkVersion) 10 | defaultConfig { 11 | applicationId = applicationId 12 | minSdkVersion(Configs.minSdkVersion) 13 | targetSdkVersion(Configs.targetSdkVersion) 14 | versionCode = Configs.versionCode 15 | versionName = Configs.versionName 16 | dataBinding.isEnabled = true 17 | vectorDrawables.useSupportLibrary = true 18 | testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" 19 | } 20 | 21 | compileOptions { 22 | sourceCompatibility = JavaVersion.VERSION_11 23 | targetCompatibility = JavaVersion.VERSION_11 24 | } 25 | 26 | /*tasks.withType { 27 | kotlinOptions { 28 | jvmTarget = JavaVersion.VERSION_1_8.toString() 29 | } 30 | }*/ 31 | 32 | buildTypes { 33 | getByName("release") { 34 | isMinifyEnabled = false 35 | proguardFiles(getDefaultProguardFile("proguard-android-optimize.txt"), "proguard-rules.pro") 36 | } 37 | } 38 | } 39 | 40 | dependencies { 41 | implementation(fileTree(mapOf("dir" to "libs", "include" to listOf("*.jar")))) 42 | 43 | implementation { 44 | +Libs.Kotlin.stdLib 45 | +Libs.Androidx.appCompat 46 | +Libs.Kotlin.ktxCore 47 | +Libs.Kotlin.coroutinesAndroid 48 | +Libs.Kotlin.viewModelKtx 49 | +Libs.sdp 50 | +Libs.ssp 51 | +Libs.timber 52 | +Libs.Androidx.constraintLayout 53 | +Libs.Kotlin.lifecycle 54 | } 55 | 56 | implementation(project(":customedittextoutlinedborder")) 57 | } 58 | -------------------------------------------------------------------------------- /app/proguard-rules.pro: -------------------------------------------------------------------------------- 1 | # Add project specific ProGuard rules here. 2 | # You can control the set of applied configuration files using the 3 | # proguardFiles setting in build.gradle.kts.kts. 4 | # 5 | # For more details, see 6 | # http://developer.android.com/guide/developing/tools/proguard.html 7 | 8 | # If your project uses WebView with JS, uncomment the following 9 | # and specify the fully qualified class name to the JavaScript interface 10 | # class: 11 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview { 12 | # public *; 13 | #} 14 | 15 | # Uncomment this to preserve the line number information for 16 | # debugging stack traces. 17 | #-keepattributes SourceFile,LineNumberTable 18 | 19 | # If you keep the line number information, uncomment this to 20 | # hide the original source file name. 21 | #-renamesourcefileattribute SourceFile 22 | -------------------------------------------------------------------------------- /app/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 12 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /app/src/main/java/com/simform/customedittextoutlineborder/BaseActivity.kt: -------------------------------------------------------------------------------- 1 | package com.simform.customedittextoutlineborder 2 | 3 | import android.os.Bundle 4 | import android.view.View 5 | import androidx.annotation.LayoutRes 6 | import androidx.appcompat.app.AppCompatActivity 7 | import androidx.databinding.DataBindingUtil 8 | import androidx.databinding.ViewDataBinding 9 | import com.simform.customcomponent.BR 10 | 11 | /** 12 | * This is base activity of all activities 13 | */ 14 | abstract class BaseActivity : AppCompatActivity(), View.OnClickListener { 15 | 16 | protected lateinit var bindObject: Binding 17 | protected abstract val mViewModel: ViewModel 18 | 19 | override fun onCreate(savedInstanceState: Bundle?) { 20 | super.onCreate(savedInstanceState) 21 | performViewModelBinding() 22 | initializeObservers() 23 | } 24 | 25 | /** 26 | * This function is used to get layout resource id for all the screens. 27 | */ 28 | @LayoutRes 29 | abstract fun getLayoutResId(): Int 30 | 31 | /** 32 | * This function is used to call on create method in all activities. 33 | */ 34 | abstract fun init() 35 | 36 | /** 37 | * This function is used to initialize observers. 38 | */ 39 | open fun initializeObservers() { 40 | } 41 | 42 | private fun performViewModelBinding() { 43 | bindObject = DataBindingUtil.setContentView(this, getLayoutResId()) 44 | bindObject.setLifecycleOwner(this) 45 | bindObject.setVariable(BR.viewModel, mViewModel) 46 | bindObject.executePendingBindings() 47 | init() 48 | } 49 | } -------------------------------------------------------------------------------- /app/src/main/java/com/simform/customedittextoutlineborder/MainActivity.kt: -------------------------------------------------------------------------------- 1 | package com.simform.customedittextoutlineborder 2 | 3 | import android.view.View 4 | import android.widget.Toast 5 | import androidx.lifecycle.ViewModelProviders 6 | import com.simform.customedittextoutlineborder.extention.watch 7 | import shweta.com.customedittextoutlineborder.R 8 | import shweta.com.customedittextoutlineborder.databinding.MainActivityBinding 9 | 10 | class MainActivity : BaseActivity() { 11 | override val mViewModel: MainActivityViewModel 12 | get() = ViewModelProviders.of(this).get(MainActivityViewModel::class.java) 13 | 14 | 15 | override fun getLayoutResId(): Int = R.layout.activity_main 16 | 17 | override fun init() { 18 | bindObject.clickHandler = this 19 | } 20 | 21 | override fun onClick(v: View?) { 22 | 23 | } 24 | 25 | override fun initializeObservers() { 26 | mViewModel.formValidationLiveData.watch(this) { message -> 27 | message.run { 28 | when { 29 | formIsValid != 0 -> { 30 | Toast.makeText(this@MainActivity, "Validation Success", Toast.LENGTH_LONG).show() 31 | } 32 | } 33 | } 34 | bindObject.formMessage = message 35 | } 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /app/src/main/java/com/simform/customedittextoutlineborder/MainActivityViewModel.kt: -------------------------------------------------------------------------------- 1 | package com.simform.customedittextoutlineborder 2 | 3 | import android.view.View 4 | import android.widget.Toast 5 | import androidx.annotation.StringRes 6 | import androidx.lifecycle.MutableLiveData 7 | import androidx.lifecycle.ViewModel 8 | import shweta.com.customedittextoutlineborder.R 9 | import com.simform.customedittextoutlineborder.extention.isValidEmail 10 | import com.simform.customedittextoutlineborder.extention.isValidPasswordLength 11 | 12 | class MainActivityViewModel : ViewModel() { 13 | 14 | var email: String = "" 15 | var password: String = "" 16 | var about: String = "" 17 | 18 | fun onLoginButtonClick(view: View) { 19 | if (isFormValid()) { 20 | Toast.makeText(view.context, "Login Success", Toast.LENGTH_LONG).show() 21 | } 22 | } 23 | 24 | private fun isFormValid(): Boolean { 25 | when { 26 | email.isEmpty() -> formValidationLiveData.value = FormMessage(email = "Please enter Email ID", isEmailError = true) 27 | !email.isValidEmail() -> formValidationLiveData.value = FormMessage(email = "Please enter a valid Email ID", isEmailError = true) 28 | password.isEmpty() -> formValidationLiveData.value = FormMessage(password = "Please enter password", isPasswordError = true) 29 | !password.isValidPasswordLength() -> formValidationLiveData.value = FormMessage(password = "Password must contains 6 character", isPasswordError = true) 30 | about.isEmpty() -> formValidationLiveData.value = FormMessage(about = "Please enter little info about yourself", isAboutError = true) 31 | else -> { 32 | formValidationLiveData.postValue(FormMessage(formIsValid = R.string.form_is_valid)) 33 | return true 34 | } 35 | } 36 | return false 37 | } 38 | 39 | /** 40 | * This data class is used to return error message for login screen 41 | */ 42 | data class FormMessage( 43 | var email: String = "", 44 | var password: String = "", 45 | var about: String = "", 46 | var isEmailError: Boolean = false, 47 | var isPasswordError: Boolean = false, 48 | var isAboutError: Boolean = false, @StringRes val formIsValid: Int = 0 49 | ) 50 | 51 | val formValidationLiveData = MutableLiveData() 52 | 53 | } -------------------------------------------------------------------------------- /app/src/main/java/com/simform/customedittextoutlineborder/SplashActivity.kt: -------------------------------------------------------------------------------- 1 | package com.simform.customedittextoutlineborder 2 | 3 | import android.content.Intent 4 | import android.graphics.Color 5 | import android.os.Bundle 6 | import android.view.View 7 | import androidx.lifecycle.Observer 8 | import androidx.lifecycle.ViewModelProviders 9 | import shweta.com.customedittextoutlineborder.R 10 | import shweta.com.customedittextoutlineborder.databinding.SplashActivityBinding 11 | import timber.log.Timber 12 | 13 | class SplashActivity : BaseActivity() { 14 | 15 | override val mViewModel: SplashActivityViewModel 16 | get() = ViewModelProviders.of(this).get(SplashActivityViewModel::class.java) 17 | 18 | override fun getLayoutResId(): Int = R.layout.activity_splash 19 | 20 | override fun init() { 21 | 22 | } 23 | 24 | override fun onPostCreate(savedInstanceState: Bundle?) { 25 | super.onPostCreate(savedInstanceState) 26 | window.decorView.systemUiVisibility = View.SYSTEM_UI_FLAG_LAYOUT_STABLE or View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN 27 | window.statusBarColor = Color.TRANSPARENT 28 | } 29 | 30 | override fun initializeObservers() { 31 | mViewModel.mutableLiveData.observe(this, Observer { 32 | when (it) { 33 | is SplashActivityViewModel.SplashState.MainActivity -> { 34 | startActivity(Intent(this, MainActivity::class.java)) 35 | finish() 36 | } 37 | } 38 | }) 39 | } 40 | 41 | 42 | override fun onClick(v: View?) { 43 | Timber.e("init") 44 | } 45 | } 46 | -------------------------------------------------------------------------------- /app/src/main/java/com/simform/customedittextoutlineborder/SplashActivityViewModel.kt: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2019 PoolTrader 3 | * Develop By Shweta Chauhan 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package com.simform.customedittextoutlineborder 17 | 18 | import androidx.lifecycle.MutableLiveData 19 | import androidx.lifecycle.ViewModel 20 | import androidx.lifecycle.viewModelScope 21 | import kotlinx.coroutines.delay 22 | import kotlinx.coroutines.launch 23 | 24 | /** 25 | * Splash ActivityViewModel 26 | */ 27 | class SplashActivityViewModel : ViewModel() { 28 | val mutableLiveData = MutableLiveData() 29 | private val splashScreenDelay: Long = 3000 30 | 31 | init { 32 | viewModelScope.launch { 33 | delay(splashScreenDelay) 34 | mutableLiveData.postValue(SplashState.MainActivity) 35 | } 36 | } 37 | 38 | /** 39 | * This class is used to show splash state. 40 | */ 41 | sealed class SplashState { 42 | /** 43 | * This object is used to navigate splash screen to main activity. 44 | */ 45 | object MainActivity : SplashState() 46 | } 47 | } 48 | -------------------------------------------------------------------------------- /app/src/main/java/com/simform/customedittextoutlineborder/extention/LifeCycleExtensions.kt: -------------------------------------------------------------------------------- 1 | package com.simform.customedittextoutlineborder.extention 2 | 3 | import androidx.lifecycle.LifecycleOwner 4 | import androidx.lifecycle.LiveData 5 | import androidx.lifecycle.Observer 6 | 7 | /** 8 | * Extension function for observing [LiveData] 9 | * @param owner is [LifecycleOwner] which will be used to listen lifecycle changes 10 | * @param func is a function which will be executed whenever [LiveData] is changed 11 | * */ 12 | fun LiveData.watch(owner: LifecycleOwner, func: (T) -> Unit) = observe(owner, Observer { value -> 13 | value?.let { 14 | func(it) 15 | } 16 | }) -------------------------------------------------------------------------------- /app/src/main/java/com/simform/customedittextoutlineborder/extention/ValidationExtentions.kt: -------------------------------------------------------------------------------- 1 | package com.simform.customedittextoutlineborder.extention 2 | 3 | import android.util.Patterns 4 | 5 | /** 6 | * Check given string is contain at least char and size 7 | * @receiver String 8 | * @return Boolean 9 | */ 10 | fun String.isValidPasswordLength(): Boolean { 11 | return length >= 6 12 | } 13 | 14 | /** 15 | * Thus fun is used to check email is valid or not. 16 | * @receiver String 17 | * @return Boolean 18 | */ 19 | fun String.isValidEmail(): Boolean = isNotEmpty() && Patterns.EMAIL_ADDRESS.matcher(this).matches() 20 | -------------------------------------------------------------------------------- /app/src/main/res/drawable-v24/ic_launcher_foreground.xml: -------------------------------------------------------------------------------- 1 | 7 | 12 | 13 | 19 | 22 | 25 | 26 | 27 | 28 | 34 | 35 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/bg_bottom_sheet.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 7 | 8 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/bg_button.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/bg_custom_edittext.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_github_svgrepo_com.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 12 | 15 | 18 | 21 | 24 | 27 | 30 | 31 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_launcher_background.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 10 | 15 | 20 | 25 | 30 | 35 | 40 | 45 | 50 | 55 | 60 | 65 | 70 | 75 | 80 | 85 | 90 | 95 | 100 | 105 | 110 | 115 | 120 | 125 | 130 | 135 | 140 | 145 | 150 | 155 | 160 | 165 | 170 | 171 | -------------------------------------------------------------------------------- /app/src/main/res/layout/activity_main.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 9 | 10 | 13 | 14 | 17 | 18 | 19 | 26 | 27 | 35 | 36 | 46 | 47 | 48 | 49 | 58 | 59 | 82 | 83 | 106 | 107 | 131 | 132 | 144 | 145 | 146 | 147 | -------------------------------------------------------------------------------- /app/src/main/res/layout/activity_splash.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 8 | 9 | 10 | 17 | 18 | 27 | 28 | 29 | -------------------------------------------------------------------------------- /app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /app/src/main/res/mipmap-hdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimformSolutionsPvtLtd/SSCustomEditTextOutLineBorder/462a0724e807baaf9967e461ffa61d77dc481f02/app/src/main/res/mipmap-hdpi/ic_launcher.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-hdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimformSolutionsPvtLtd/SSCustomEditTextOutLineBorder/462a0724e807baaf9967e461ffa61d77dc481f02/app/src/main/res/mipmap-hdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-mdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimformSolutionsPvtLtd/SSCustomEditTextOutLineBorder/462a0724e807baaf9967e461ffa61d77dc481f02/app/src/main/res/mipmap-mdpi/ic_launcher.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-mdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimformSolutionsPvtLtd/SSCustomEditTextOutLineBorder/462a0724e807baaf9967e461ffa61d77dc481f02/app/src/main/res/mipmap-mdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimformSolutionsPvtLtd/SSCustomEditTextOutLineBorder/462a0724e807baaf9967e461ffa61d77dc481f02/app/src/main/res/mipmap-xhdpi/ic_launcher.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimformSolutionsPvtLtd/SSCustomEditTextOutLineBorder/462a0724e807baaf9967e461ffa61d77dc481f02/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimformSolutionsPvtLtd/SSCustomEditTextOutLineBorder/462a0724e807baaf9967e461ffa61d77dc481f02/app/src/main/res/mipmap-xxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimformSolutionsPvtLtd/SSCustomEditTextOutLineBorder/462a0724e807baaf9967e461ffa61d77dc481f02/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimformSolutionsPvtLtd/SSCustomEditTextOutLineBorder/462a0724e807baaf9967e461ffa61d77dc481f02/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimformSolutionsPvtLtd/SSCustomEditTextOutLineBorder/462a0724e807baaf9967e461ffa61d77dc481f02/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /app/src/main/res/values/colors.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | #1A00FF 4 | #1400CB 5 | #007aff 6 | 7 | #979797 8 | #999999 9 | #666666 10 | #f15454 11 | #ecd67b 12 | #ffffff 13 | #2800BD 14 | #3B00E9 15 | #3400D8 16 | 17 | -------------------------------------------------------------------------------- /app/src/main/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | CustomEditTextOutlineBorder 3 | 4 | Please enter Email ID 5 | Please enter a valid Email ID 6 | Email 7 | Enter your email ID 8 | 9 | Password 10 | ********* 11 | Please enter password 12 | Password must contains 6 character 13 | Form is valid 14 | 15 | About 16 | Enter little info about yourself 17 | Please enter little info about yourself 18 | 19 | Login 20 | Sign Up 21 | 22 | 23 | -------------------------------------------------------------------------------- /app/src/main/res/values/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 13 | 14 | -------------------------------------------------------------------------------- /build.gradle.kts: -------------------------------------------------------------------------------- 1 | // Top-level build file where you can add configuration options common to all sub-projects/modules. 2 | 3 | buildscript { 4 | repositories { 5 | google() 6 | jcenter() 7 | 8 | } 9 | dependencies { 10 | classpath(ClassPaths.gradlePlugin) 11 | classpath(ClassPaths.kotlinPlugin) 12 | classpath(ClassPaths.googleServicesPlugin) 13 | classpath(ClassPaths.githubMaven) 14 | // NOTE: Do not place your application dependencies here; they belong 15 | // in the individual module build.gradle.kts files 16 | } 17 | } 18 | 19 | allprojects { 20 | repositories { 21 | google() 22 | jcenter() 23 | } 24 | } 25 | 26 | tasks.register("clean").configure { 27 | delete("build") 28 | } -------------------------------------------------------------------------------- /buildSrc/build.gradle.kts: -------------------------------------------------------------------------------- 1 | repositories { 2 | jcenter() 3 | } 4 | 5 | plugins { 6 | `kotlin-dsl` 7 | } -------------------------------------------------------------------------------- /buildSrc/build/classes/kotlin/main/ClassPaths.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimformSolutionsPvtLtd/SSCustomEditTextOutLineBorder/462a0724e807baaf9967e461ffa61d77dc481f02/buildSrc/build/classes/kotlin/main/ClassPaths.class -------------------------------------------------------------------------------- /buildSrc/build/classes/kotlin/main/Configs.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimformSolutionsPvtLtd/SSCustomEditTextOutLineBorder/462a0724e807baaf9967e461ffa61d77dc481f02/buildSrc/build/classes/kotlin/main/Configs.class -------------------------------------------------------------------------------- /buildSrc/build/classes/kotlin/main/DepsBuilder.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimformSolutionsPvtLtd/SSCustomEditTextOutLineBorder/462a0724e807baaf9967e461ffa61d77dc481f02/buildSrc/build/classes/kotlin/main/DepsBuilder.class -------------------------------------------------------------------------------- /buildSrc/build/classes/kotlin/main/DepsBuilderKt.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimformSolutionsPvtLtd/SSCustomEditTextOutLineBorder/462a0724e807baaf9967e461ffa61d77dc481f02/buildSrc/build/classes/kotlin/main/DepsBuilderKt.class -------------------------------------------------------------------------------- /buildSrc/build/classes/kotlin/main/Libs$Android.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimformSolutionsPvtLtd/SSCustomEditTextOutLineBorder/462a0724e807baaf9967e461ffa61d77dc481f02/buildSrc/build/classes/kotlin/main/Libs$Android.class -------------------------------------------------------------------------------- /buildSrc/build/classes/kotlin/main/Libs$Androidx.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimformSolutionsPvtLtd/SSCustomEditTextOutLineBorder/462a0724e807baaf9967e461ffa61d77dc481f02/buildSrc/build/classes/kotlin/main/Libs$Androidx.class -------------------------------------------------------------------------------- /buildSrc/build/classes/kotlin/main/Libs$Kotlin.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimformSolutionsPvtLtd/SSCustomEditTextOutLineBorder/462a0724e807baaf9967e461ffa61d77dc481f02/buildSrc/build/classes/kotlin/main/Libs$Kotlin.class -------------------------------------------------------------------------------- /buildSrc/build/classes/kotlin/main/Libs.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimformSolutionsPvtLtd/SSCustomEditTextOutLineBorder/462a0724e807baaf9967e461ffa61d77dc481f02/buildSrc/build/classes/kotlin/main/Libs.class -------------------------------------------------------------------------------- /buildSrc/build/classes/kotlin/main/META-INF/buildSrc.kotlin_module: -------------------------------------------------------------------------------- 1 |  2 |  3 |  DepsBuilderKt"* -------------------------------------------------------------------------------- /buildSrc/build/classes/kotlin/main/Plugins.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimformSolutionsPvtLtd/SSCustomEditTextOutLineBorder/462a0724e807baaf9967e461ffa61d77dc481f02/buildSrc/build/classes/kotlin/main/Plugins.class -------------------------------------------------------------------------------- /buildSrc/build/classes/kotlin/main/TestLibraries$Versions.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimformSolutionsPvtLtd/SSCustomEditTextOutLineBorder/462a0724e807baaf9967e461ffa61d77dc481f02/buildSrc/build/classes/kotlin/main/TestLibraries$Versions.class -------------------------------------------------------------------------------- /buildSrc/build/classes/kotlin/main/TestLibraries.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimformSolutionsPvtLtd/SSCustomEditTextOutLineBorder/462a0724e807baaf9967e461ffa61d77dc481f02/buildSrc/build/classes/kotlin/main/TestLibraries.class -------------------------------------------------------------------------------- /buildSrc/build/classes/kotlin/main/Urls.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimformSolutionsPvtLtd/SSCustomEditTextOutLineBorder/462a0724e807baaf9967e461ffa61d77dc481f02/buildSrc/build/classes/kotlin/main/Urls.class -------------------------------------------------------------------------------- /buildSrc/build/classes/kotlin/main/Versions.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimformSolutionsPvtLtd/SSCustomEditTextOutLineBorder/462a0724e807baaf9967e461ffa61d77dc481f02/buildSrc/build/classes/kotlin/main/Versions.class -------------------------------------------------------------------------------- /buildSrc/build/kotlin/buildSrcjar-classes.txt: -------------------------------------------------------------------------------- 1 | /Users/shweta.chauhan/Desktop/opensource/SSCustomEditTextOutLineBorder/buildSrc/build/classes/kotlin/main/ClassPaths.class:/Users/shweta.chauhan/Desktop/opensource/SSCustomEditTextOutLineBorder/buildSrc/build/classes/kotlin/main/Configs.class:/Users/shweta.chauhan/Desktop/opensource/SSCustomEditTextOutLineBorder/buildSrc/build/classes/kotlin/main/DepsBuilder.class:/Users/shweta.chauhan/Desktop/opensource/SSCustomEditTextOutLineBorder/buildSrc/build/classes/kotlin/main/DepsBuilderKt.class:/Users/shweta.chauhan/Desktop/opensource/SSCustomEditTextOutLineBorder/buildSrc/build/classes/kotlin/main/Libs$Android.class:/Users/shweta.chauhan/Desktop/opensource/SSCustomEditTextOutLineBorder/buildSrc/build/classes/kotlin/main/Libs$Androidx.class:/Users/shweta.chauhan/Desktop/opensource/SSCustomEditTextOutLineBorder/buildSrc/build/classes/kotlin/main/Libs$Kotlin.class:/Users/shweta.chauhan/Desktop/opensource/SSCustomEditTextOutLineBorder/buildSrc/build/classes/kotlin/main/Libs.class:/Users/shweta.chauhan/Desktop/opensource/SSCustomEditTextOutLineBorder/buildSrc/build/classes/kotlin/main/Plugins.class:/Users/shweta.chauhan/Desktop/opensource/SSCustomEditTextOutLineBorder/buildSrc/build/classes/kotlin/main/TestLibraries$Versions.class:/Users/shweta.chauhan/Desktop/opensource/SSCustomEditTextOutLineBorder/buildSrc/build/classes/kotlin/main/TestLibraries.class:/Users/shweta.chauhan/Desktop/opensource/SSCustomEditTextOutLineBorder/buildSrc/build/classes/kotlin/main/Urls.class:/Users/shweta.chauhan/Desktop/opensource/SSCustomEditTextOutLineBorder/buildSrc/build/classes/kotlin/main/Versions.class -------------------------------------------------------------------------------- /buildSrc/build/kotlin/compileKotlin/build-history.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimformSolutionsPvtLtd/SSCustomEditTextOutLineBorder/462a0724e807baaf9967e461ffa61d77dc481f02/buildSrc/build/kotlin/compileKotlin/build-history.bin -------------------------------------------------------------------------------- /buildSrc/build/kotlin/compileKotlin/caches-jvm/inputs/source-to-output.tab: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimformSolutionsPvtLtd/SSCustomEditTextOutLineBorder/462a0724e807baaf9967e461ffa61d77dc481f02/buildSrc/build/kotlin/compileKotlin/caches-jvm/inputs/source-to-output.tab -------------------------------------------------------------------------------- /buildSrc/build/kotlin/compileKotlin/caches-jvm/inputs/source-to-output.tab.keystream: -------------------------------------------------------------------------------- 1 | n/Users/shweta.chauhan/Desktop/opensource/SSCustomEditTextOutLineBorder/buildSrc/src/main/kotlin/DepsBuilder.kto/Users/shweta.chauhan/Desktop/opensource/SSCustomEditTextOutLineBorder/buildSrc/src/main/kotlin/Dependencies.kt -------------------------------------------------------------------------------- /buildSrc/build/kotlin/compileKotlin/caches-jvm/inputs/source-to-output.tab.keystream.len: -------------------------------------------------------------------------------- 1 | � -------------------------------------------------------------------------------- /buildSrc/build/kotlin/compileKotlin/caches-jvm/inputs/source-to-output.tab.len: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimformSolutionsPvtLtd/SSCustomEditTextOutLineBorder/462a0724e807baaf9967e461ffa61d77dc481f02/buildSrc/build/kotlin/compileKotlin/caches-jvm/inputs/source-to-output.tab.len -------------------------------------------------------------------------------- /buildSrc/build/kotlin/compileKotlin/caches-jvm/inputs/source-to-output.tab.values.at: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimformSolutionsPvtLtd/SSCustomEditTextOutLineBorder/462a0724e807baaf9967e461ffa61d77dc481f02/buildSrc/build/kotlin/compileKotlin/caches-jvm/inputs/source-to-output.tab.values.at -------------------------------------------------------------------------------- /buildSrc/build/kotlin/compileKotlin/caches-jvm/inputs/source-to-output.tab_i: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimformSolutionsPvtLtd/SSCustomEditTextOutLineBorder/462a0724e807baaf9967e461ffa61d77dc481f02/buildSrc/build/kotlin/compileKotlin/caches-jvm/inputs/source-to-output.tab_i -------------------------------------------------------------------------------- /buildSrc/build/kotlin/compileKotlin/caches-jvm/inputs/source-to-output.tab_i.len: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimformSolutionsPvtLtd/SSCustomEditTextOutLineBorder/462a0724e807baaf9967e461ffa61d77dc481f02/buildSrc/build/kotlin/compileKotlin/caches-jvm/inputs/source-to-output.tab_i.len -------------------------------------------------------------------------------- /buildSrc/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimformSolutionsPvtLtd/SSCustomEditTextOutLineBorder/462a0724e807baaf9967e461ffa61d77dc481f02/buildSrc/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab -------------------------------------------------------------------------------- /buildSrc/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.keystream: -------------------------------------------------------------------------------- 1 | PluginsConfigsVersions 2 | ClassPathsLibs Libs.Kotlin Libs.Android Libs.Androidx TestLibrariesTestLibraries.VersionsUrls DepsBuilder -------------------------------------------------------------------------------- /buildSrc/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.keystream.len: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimformSolutionsPvtLtd/SSCustomEditTextOutLineBorder/462a0724e807baaf9967e461ffa61d77dc481f02/buildSrc/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.keystream.len -------------------------------------------------------------------------------- /buildSrc/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.len: -------------------------------------------------------------------------------- 1 | � -------------------------------------------------------------------------------- /buildSrc/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.values.at: -------------------------------------------------------------------------------- 1 | /Header Record For PersistentHashMapValueStoragepo/Users/shweta.chauhan/Desktop/opensource/SSCustomEditTextOutLineBorder/buildSrc/src/main/kotlin/Dependencies.ktpo/Users/shweta.chauhan/Desktop/opensource/SSCustomEditTextOutLineBorder/buildSrc/src/main/kotlin/Dependencies.ktpo/Users/shweta.chauhan/Desktop/opensource/SSCustomEditTextOutLineBorder/buildSrc/src/main/kotlin/Dependencies.ktpo/Users/shweta.chauhan/Desktop/opensource/SSCustomEditTextOutLineBorder/buildSrc/src/main/kotlin/Dependencies.ktpo/Users/shweta.chauhan/Desktop/opensource/SSCustomEditTextOutLineBorder/buildSrc/src/main/kotlin/Dependencies.ktpo/Users/shweta.chauhan/Desktop/opensource/SSCustomEditTextOutLineBorder/buildSrc/src/main/kotlin/Dependencies.ktpo/Users/shweta.chauhan/Desktop/opensource/SSCustomEditTextOutLineBorder/buildSrc/src/main/kotlin/Dependencies.ktpo/Users/shweta.chauhan/Desktop/opensource/SSCustomEditTextOutLineBorder/buildSrc/src/main/kotlin/Dependencies.ktpo/Users/shweta.chauhan/Desktop/opensource/SSCustomEditTextOutLineBorder/buildSrc/src/main/kotlin/Dependencies.ktpo/Users/shweta.chauhan/Desktop/opensource/SSCustomEditTextOutLineBorder/buildSrc/src/main/kotlin/Dependencies.ktpo/Users/shweta.chauhan/Desktop/opensource/SSCustomEditTextOutLineBorder/buildSrc/src/main/kotlin/Dependencies.kton/Users/shweta.chauhan/Desktop/opensource/SSCustomEditTextOutLineBorder/buildSrc/src/main/kotlin/DepsBuilder.kt -------------------------------------------------------------------------------- /buildSrc/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab_i: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimformSolutionsPvtLtd/SSCustomEditTextOutLineBorder/462a0724e807baaf9967e461ffa61d77dc481f02/buildSrc/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab_i -------------------------------------------------------------------------------- /buildSrc/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab_i.len: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimformSolutionsPvtLtd/SSCustomEditTextOutLineBorder/462a0724e807baaf9967e461ffa61d77dc481f02/buildSrc/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab_i.len -------------------------------------------------------------------------------- /buildSrc/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/constants.tab: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimformSolutionsPvtLtd/SSCustomEditTextOutLineBorder/462a0724e807baaf9967e461ffa61d77dc481f02/buildSrc/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/constants.tab -------------------------------------------------------------------------------- /buildSrc/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/constants.tab.keystream: -------------------------------------------------------------------------------- 1 | PluginsConfigsVersions 2 | ClassPathsLibs Libs$Kotlin Libs$Android Libs$Androidx TestLibrariesTestLibraries$VersionsUrls -------------------------------------------------------------------------------- /buildSrc/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/constants.tab.keystream.len: -------------------------------------------------------------------------------- 1 | z -------------------------------------------------------------------------------- /buildSrc/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/constants.tab.len: -------------------------------------------------------------------------------- 1 | � -------------------------------------------------------------------------------- /buildSrc/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/constants.tab.values.at: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimformSolutionsPvtLtd/SSCustomEditTextOutLineBorder/462a0724e807baaf9967e461ffa61d77dc481f02/buildSrc/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/constants.tab.values.at -------------------------------------------------------------------------------- /buildSrc/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/constants.tab_i: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimformSolutionsPvtLtd/SSCustomEditTextOutLineBorder/462a0724e807baaf9967e461ffa61d77dc481f02/buildSrc/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/constants.tab_i -------------------------------------------------------------------------------- /buildSrc/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/constants.tab_i.len: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimformSolutionsPvtLtd/SSCustomEditTextOutLineBorder/462a0724e807baaf9967e461ffa61d77dc481f02/buildSrc/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/constants.tab_i.len -------------------------------------------------------------------------------- /buildSrc/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/internal-name-to-source.tab: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimformSolutionsPvtLtd/SSCustomEditTextOutLineBorder/462a0724e807baaf9967e461ffa61d77dc481f02/buildSrc/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/internal-name-to-source.tab -------------------------------------------------------------------------------- /buildSrc/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/internal-name-to-source.tab.keystream: -------------------------------------------------------------------------------- 1 | PluginsConfigsVersions 2 | ClassPathsLibs Libs$Kotlin Libs$Android Libs$Androidx TestLibrariesTestLibraries$VersionsUrls DepsBuilder DepsBuilderKt -------------------------------------------------------------------------------- /buildSrc/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/internal-name-to-source.tab.keystream.len: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimformSolutionsPvtLtd/SSCustomEditTextOutLineBorder/462a0724e807baaf9967e461ffa61d77dc481f02/buildSrc/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/internal-name-to-source.tab.keystream.len -------------------------------------------------------------------------------- /buildSrc/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/internal-name-to-source.tab.len: -------------------------------------------------------------------------------- 1 | � -------------------------------------------------------------------------------- /buildSrc/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/internal-name-to-source.tab.values.at: -------------------------------------------------------------------------------- 1 | /Header Record For PersistentHashMapValueStoragepo/Users/shweta.chauhan/Desktop/opensource/SSCustomEditTextOutLineBorder/buildSrc/src/main/kotlin/Dependencies.ktpo/Users/shweta.chauhan/Desktop/opensource/SSCustomEditTextOutLineBorder/buildSrc/src/main/kotlin/Dependencies.ktpo/Users/shweta.chauhan/Desktop/opensource/SSCustomEditTextOutLineBorder/buildSrc/src/main/kotlin/Dependencies.ktpo/Users/shweta.chauhan/Desktop/opensource/SSCustomEditTextOutLineBorder/buildSrc/src/main/kotlin/Dependencies.ktpo/Users/shweta.chauhan/Desktop/opensource/SSCustomEditTextOutLineBorder/buildSrc/src/main/kotlin/Dependencies.ktpo/Users/shweta.chauhan/Desktop/opensource/SSCustomEditTextOutLineBorder/buildSrc/src/main/kotlin/Dependencies.ktpo/Users/shweta.chauhan/Desktop/opensource/SSCustomEditTextOutLineBorder/buildSrc/src/main/kotlin/Dependencies.ktpo/Users/shweta.chauhan/Desktop/opensource/SSCustomEditTextOutLineBorder/buildSrc/src/main/kotlin/Dependencies.ktpo/Users/shweta.chauhan/Desktop/opensource/SSCustomEditTextOutLineBorder/buildSrc/src/main/kotlin/Dependencies.ktpo/Users/shweta.chauhan/Desktop/opensource/SSCustomEditTextOutLineBorder/buildSrc/src/main/kotlin/Dependencies.ktpo/Users/shweta.chauhan/Desktop/opensource/SSCustomEditTextOutLineBorder/buildSrc/src/main/kotlin/Dependencies.kton/Users/shweta.chauhan/Desktop/opensource/SSCustomEditTextOutLineBorder/buildSrc/src/main/kotlin/DepsBuilder.kton/Users/shweta.chauhan/Desktop/opensource/SSCustomEditTextOutLineBorder/buildSrc/src/main/kotlin/DepsBuilder.kt -------------------------------------------------------------------------------- /buildSrc/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/internal-name-to-source.tab_i: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimformSolutionsPvtLtd/SSCustomEditTextOutLineBorder/462a0724e807baaf9967e461ffa61d77dc481f02/buildSrc/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/internal-name-to-source.tab_i -------------------------------------------------------------------------------- /buildSrc/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/internal-name-to-source.tab_i.len: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimformSolutionsPvtLtd/SSCustomEditTextOutLineBorder/462a0724e807baaf9967e461ffa61d77dc481f02/buildSrc/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/internal-name-to-source.tab_i.len -------------------------------------------------------------------------------- /buildSrc/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/package-parts.tab: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimformSolutionsPvtLtd/SSCustomEditTextOutLineBorder/462a0724e807baaf9967e461ffa61d77dc481f02/buildSrc/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/package-parts.tab -------------------------------------------------------------------------------- /buildSrc/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/package-parts.tab.keystream: -------------------------------------------------------------------------------- 1 | DepsBuilderKt -------------------------------------------------------------------------------- /buildSrc/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/package-parts.tab.keystream.len: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /buildSrc/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/package-parts.tab.len: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimformSolutionsPvtLtd/SSCustomEditTextOutLineBorder/462a0724e807baaf9967e461ffa61d77dc481f02/buildSrc/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/package-parts.tab.len -------------------------------------------------------------------------------- /buildSrc/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/package-parts.tab.values.at: -------------------------------------------------------------------------------- 1 | /Header Record For PersistentHashMapValueStorage -------------------------------------------------------------------------------- /buildSrc/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/package-parts.tab_i: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimformSolutionsPvtLtd/SSCustomEditTextOutLineBorder/462a0724e807baaf9967e461ffa61d77dc481f02/buildSrc/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/package-parts.tab_i -------------------------------------------------------------------------------- /buildSrc/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/package-parts.tab_i.len: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimformSolutionsPvtLtd/SSCustomEditTextOutLineBorder/462a0724e807baaf9967e461ffa61d77dc481f02/buildSrc/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/package-parts.tab_i.len -------------------------------------------------------------------------------- /buildSrc/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/proto.tab: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimformSolutionsPvtLtd/SSCustomEditTextOutLineBorder/462a0724e807baaf9967e461ffa61d77dc481f02/buildSrc/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/proto.tab -------------------------------------------------------------------------------- /buildSrc/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/proto.tab.keystream: -------------------------------------------------------------------------------- 1 | PluginsConfigsVersions 2 | ClassPathsLibs Libs$Kotlin Libs$Android Libs$Androidx TestLibrariesTestLibraries$VersionsUrls DepsBuilder DepsBuilderKt.kotlin_module -------------------------------------------------------------------------------- /buildSrc/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/proto.tab.keystream.len: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimformSolutionsPvtLtd/SSCustomEditTextOutLineBorder/462a0724e807baaf9967e461ffa61d77dc481f02/buildSrc/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/proto.tab.keystream.len -------------------------------------------------------------------------------- /buildSrc/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/proto.tab.len: -------------------------------------------------------------------------------- 1 | � -------------------------------------------------------------------------------- /buildSrc/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/proto.tab.values.at: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimformSolutionsPvtLtd/SSCustomEditTextOutLineBorder/462a0724e807baaf9967e461ffa61d77dc481f02/buildSrc/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/proto.tab.values.at -------------------------------------------------------------------------------- /buildSrc/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/proto.tab_i: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimformSolutionsPvtLtd/SSCustomEditTextOutLineBorder/462a0724e807baaf9967e461ffa61d77dc481f02/buildSrc/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/proto.tab_i -------------------------------------------------------------------------------- /buildSrc/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/proto.tab_i.len: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimformSolutionsPvtLtd/SSCustomEditTextOutLineBorder/462a0724e807baaf9967e461ffa61d77dc481f02/buildSrc/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/proto.tab_i.len -------------------------------------------------------------------------------- /buildSrc/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/source-to-classes.tab: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimformSolutionsPvtLtd/SSCustomEditTextOutLineBorder/462a0724e807baaf9967e461ffa61d77dc481f02/buildSrc/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/source-to-classes.tab -------------------------------------------------------------------------------- /buildSrc/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/source-to-classes.tab.keystream: -------------------------------------------------------------------------------- 1 | -$PROJECT_DIR$/src/main/kotlin/Dependencies.kt,$PROJECT_DIR$/src/main/kotlin/DepsBuilder.kt -------------------------------------------------------------------------------- /buildSrc/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/source-to-classes.tab.keystream.len: -------------------------------------------------------------------------------- 1 | [ -------------------------------------------------------------------------------- /buildSrc/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/source-to-classes.tab.len: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimformSolutionsPvtLtd/SSCustomEditTextOutLineBorder/462a0724e807baaf9967e461ffa61d77dc481f02/buildSrc/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/source-to-classes.tab.len -------------------------------------------------------------------------------- /buildSrc/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/source-to-classes.tab.values.at: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimformSolutionsPvtLtd/SSCustomEditTextOutLineBorder/462a0724e807baaf9967e461ffa61d77dc481f02/buildSrc/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/source-to-classes.tab.values.at -------------------------------------------------------------------------------- /buildSrc/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/source-to-classes.tab_i: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimformSolutionsPvtLtd/SSCustomEditTextOutLineBorder/462a0724e807baaf9967e461ffa61d77dc481f02/buildSrc/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/source-to-classes.tab_i -------------------------------------------------------------------------------- /buildSrc/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/source-to-classes.tab_i.len: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimformSolutionsPvtLtd/SSCustomEditTextOutLineBorder/462a0724e807baaf9967e461ffa61d77dc481f02/buildSrc/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/source-to-classes.tab_i.len -------------------------------------------------------------------------------- /buildSrc/build/kotlin/compileKotlin/caches-jvm/lookups/counters.tab: -------------------------------------------------------------------------------- 1 | 2 2 | 0 -------------------------------------------------------------------------------- /buildSrc/build/kotlin/compileKotlin/caches-jvm/lookups/file-to-id.tab: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimformSolutionsPvtLtd/SSCustomEditTextOutLineBorder/462a0724e807baaf9967e461ffa61d77dc481f02/buildSrc/build/kotlin/compileKotlin/caches-jvm/lookups/file-to-id.tab -------------------------------------------------------------------------------- /buildSrc/build/kotlin/compileKotlin/caches-jvm/lookups/file-to-id.tab.keystream: -------------------------------------------------------------------------------- 1 | -$PROJECT_DIR$/src/main/kotlin/Dependencies.kt,$PROJECT_DIR$/src/main/kotlin/DepsBuilder.kt -------------------------------------------------------------------------------- /buildSrc/build/kotlin/compileKotlin/caches-jvm/lookups/file-to-id.tab.keystream.len: -------------------------------------------------------------------------------- 1 | [ -------------------------------------------------------------------------------- /buildSrc/build/kotlin/compileKotlin/caches-jvm/lookups/file-to-id.tab.len: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimformSolutionsPvtLtd/SSCustomEditTextOutLineBorder/462a0724e807baaf9967e461ffa61d77dc481f02/buildSrc/build/kotlin/compileKotlin/caches-jvm/lookups/file-to-id.tab.len -------------------------------------------------------------------------------- /buildSrc/build/kotlin/compileKotlin/caches-jvm/lookups/file-to-id.tab.values.at: -------------------------------------------------------------------------------- 1 | /Header Record For PersistentHashMapValueStorage -------------------------------------------------------------------------------- /buildSrc/build/kotlin/compileKotlin/caches-jvm/lookups/file-to-id.tab_i: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimformSolutionsPvtLtd/SSCustomEditTextOutLineBorder/462a0724e807baaf9967e461ffa61d77dc481f02/buildSrc/build/kotlin/compileKotlin/caches-jvm/lookups/file-to-id.tab_i -------------------------------------------------------------------------------- /buildSrc/build/kotlin/compileKotlin/caches-jvm/lookups/file-to-id.tab_i.len: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimformSolutionsPvtLtd/SSCustomEditTextOutLineBorder/462a0724e807baaf9967e461ffa61d77dc481f02/buildSrc/build/kotlin/compileKotlin/caches-jvm/lookups/file-to-id.tab_i.len -------------------------------------------------------------------------------- /buildSrc/build/kotlin/compileKotlin/caches-jvm/lookups/id-to-file.tab: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimformSolutionsPvtLtd/SSCustomEditTextOutLineBorder/462a0724e807baaf9967e461ffa61d77dc481f02/buildSrc/build/kotlin/compileKotlin/caches-jvm/lookups/id-to-file.tab -------------------------------------------------------------------------------- /buildSrc/build/kotlin/compileKotlin/caches-jvm/lookups/id-to-file.tab.keystream: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /buildSrc/build/kotlin/compileKotlin/caches-jvm/lookups/id-to-file.tab.keystream.len: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /buildSrc/build/kotlin/compileKotlin/caches-jvm/lookups/id-to-file.tab.len: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimformSolutionsPvtLtd/SSCustomEditTextOutLineBorder/462a0724e807baaf9967e461ffa61d77dc481f02/buildSrc/build/kotlin/compileKotlin/caches-jvm/lookups/id-to-file.tab.len -------------------------------------------------------------------------------- /buildSrc/build/kotlin/compileKotlin/caches-jvm/lookups/id-to-file.tab.values.at: -------------------------------------------------------------------------------- 1 | /Header Record For PersistentHashMapValueStoragepo/Users/shweta.chauhan/Desktop/opensource/SSCustomEditTextOutLineBorder/buildSrc/src/main/kotlin/Dependencies.kton/Users/shweta.chauhan/Desktop/opensource/SSCustomEditTextOutLineBorder/buildSrc/src/main/kotlin/DepsBuilder.kt -------------------------------------------------------------------------------- /buildSrc/build/kotlin/compileKotlin/caches-jvm/lookups/id-to-file.tab_i: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimformSolutionsPvtLtd/SSCustomEditTextOutLineBorder/462a0724e807baaf9967e461ffa61d77dc481f02/buildSrc/build/kotlin/compileKotlin/caches-jvm/lookups/id-to-file.tab_i -------------------------------------------------------------------------------- /buildSrc/build/kotlin/compileKotlin/caches-jvm/lookups/id-to-file.tab_i.len: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimformSolutionsPvtLtd/SSCustomEditTextOutLineBorder/462a0724e807baaf9967e461ffa61d77dc481f02/buildSrc/build/kotlin/compileKotlin/caches-jvm/lookups/id-to-file.tab_i.len -------------------------------------------------------------------------------- /buildSrc/build/kotlin/compileKotlin/caches-jvm/lookups/lookups.tab: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimformSolutionsPvtLtd/SSCustomEditTextOutLineBorder/462a0724e807baaf9967e461ffa61d77dc481f02/buildSrc/build/kotlin/compileKotlin/caches-jvm/lookups/lookups.tab -------------------------------------------------------------------------------- /buildSrc/build/kotlin/compileKotlin/caches-jvm/lookups/lookups.tab.keystream: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimformSolutionsPvtLtd/SSCustomEditTextOutLineBorder/462a0724e807baaf9967e461ffa61d77dc481f02/buildSrc/build/kotlin/compileKotlin/caches-jvm/lookups/lookups.tab.keystream -------------------------------------------------------------------------------- /buildSrc/build/kotlin/compileKotlin/caches-jvm/lookups/lookups.tab.keystream.len: -------------------------------------------------------------------------------- 1 | p -------------------------------------------------------------------------------- /buildSrc/build/kotlin/compileKotlin/caches-jvm/lookups/lookups.tab.len: -------------------------------------------------------------------------------- 1 | � -------------------------------------------------------------------------------- /buildSrc/build/kotlin/compileKotlin/caches-jvm/lookups/lookups.tab.values.at: -------------------------------------------------------------------------------- 1 | /Header Record For PersistentHashMapValueStorage -------------------------------------------------------------------------------- /buildSrc/build/kotlin/compileKotlin/caches-jvm/lookups/lookups.tab_i: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimformSolutionsPvtLtd/SSCustomEditTextOutLineBorder/462a0724e807baaf9967e461ffa61d77dc481f02/buildSrc/build/kotlin/compileKotlin/caches-jvm/lookups/lookups.tab_i -------------------------------------------------------------------------------- /buildSrc/build/kotlin/compileKotlin/caches-jvm/lookups/lookups.tab_i.len: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimformSolutionsPvtLtd/SSCustomEditTextOutLineBorder/462a0724e807baaf9967e461ffa61d77dc481f02/buildSrc/build/kotlin/compileKotlin/caches-jvm/lookups/lookups.tab_i.len -------------------------------------------------------------------------------- /buildSrc/build/kotlin/compileKotlin/last-build.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimformSolutionsPvtLtd/SSCustomEditTextOutLineBorder/462a0724e807baaf9967e461ffa61d77dc481f02/buildSrc/build/kotlin/compileKotlin/last-build.bin -------------------------------------------------------------------------------- /buildSrc/build/libs/buildSrc.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimformSolutionsPvtLtd/SSCustomEditTextOutLineBorder/462a0724e807baaf9967e461ffa61d77dc481f02/buildSrc/build/libs/buildSrc.jar -------------------------------------------------------------------------------- /buildSrc/build/pluginUnderTestMetadata/plugin-under-test-metadata.properties: -------------------------------------------------------------------------------- 1 | implementation-classpath=/Users/shweta.chauhan/Desktop/opensource/SSCustomEditTextOutLineBorder/buildSrc/build/classes/java/main\:/Users/shweta.chauhan/Desktop/opensource/SSCustomEditTextOutLineBorder/buildSrc/build/classes/groovy/main\:/Users/shweta.chauhan/Desktop/opensource/SSCustomEditTextOutLineBorder/buildSrc/build/classes/kotlin/main\:/Users/shweta.chauhan/Desktop/opensource/SSCustomEditTextOutLineBorder/buildSrc/build/resources/main 2 | -------------------------------------------------------------------------------- /buildSrc/build/reports/plugin-development/validation-report.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimformSolutionsPvtLtd/SSCustomEditTextOutLineBorder/462a0724e807baaf9967e461ffa61d77dc481f02/buildSrc/build/reports/plugin-development/validation-report.txt -------------------------------------------------------------------------------- /buildSrc/build/source-roots/buildSrc/source-roots.txt: -------------------------------------------------------------------------------- 1 | src/main/resources 2 | src/main/java 3 | src/main/groovy 4 | src/main/kotlin 5 | src/test/resources 6 | src/test/java 7 | src/test/groovy 8 | src/test/kotlin 9 | -------------------------------------------------------------------------------- /buildSrc/build/tmp/jar/MANIFEST.MF: -------------------------------------------------------------------------------- 1 | Manifest-Version: 1.0 2 | 3 | -------------------------------------------------------------------------------- /buildSrc/src/main/kotlin/Dependencies.kt: -------------------------------------------------------------------------------- 1 | /** 2 | * Contains gradle plugins 3 | * */ 4 | object Plugins { 5 | const val androidApplication = "com.android.application" 6 | const val kotlinAndroid = "kotlin-android" 7 | const val kotlinExtensions = "kotlin-android-extensions" 8 | const val kapt = "kotlin-kapt" 9 | } 10 | 11 | /** 12 | * Contains gradle app configs 13 | * */ 14 | object Configs { 15 | const val applicationId = "com.pooltrader" 16 | const val compileSdkVersion = 31 17 | const val minSdkVersion = 21 18 | const val targetSdkVersion = 31 19 | const val versionCode = 1 20 | const val versionName = "1.0.16" 21 | } 22 | 23 | /** 24 | * Contains all the versions of libraries, plugins, classpaths, etc used in gradle files 25 | * */ 26 | object Versions { 27 | // project build.gradle.kts 28 | const val gradlePlugin = "7.0.3" 29 | const val googleServicesPlugin = "4.3.10" 30 | 31 | // kotlin 32 | const val kotlin = "1.7.0" 33 | const val ktx = "1.8.0" 34 | const val kotlinCoroutines = "1.3.9" 35 | const val koin = "2.0.1" 36 | 37 | // android 38 | const val supportAppCompat = "1.4.2" 39 | const val constraintLayout = "2.1.4" 40 | 41 | 42 | const val sdp = "1.0.6" 43 | const val ssp = "1.0.6" 44 | const val timber = "5.0.1" 45 | 46 | // arch 47 | const val lifecycle_version = "2.1.0" 48 | const val archVersion = "2.4.0" 49 | 50 | } 51 | 52 | /** 53 | * Contains classpaths for gradle files 54 | * */ 55 | object ClassPaths { 56 | const val gradlePlugin = "com.android.tools.build:gradle:${Versions.gradlePlugin}" 57 | const val kotlinPlugin = "org.jetbrains.kotlin:kotlin-gradle-plugin:${Versions.kotlin}" 58 | const val googleServicesPlugin = "com.google.gms:google-services:${Versions.googleServicesPlugin}" 59 | const val githubMaven = "com.github.dcendents:android-maven-gradle-plugin:2.1" 60 | } 61 | 62 | /** 63 | * Contains dependencies for gradle files 64 | * */ 65 | object Libs { 66 | 67 | /** 68 | * Contains kotlin related dependencies 69 | * */ 70 | object Kotlin { 71 | const val stdLib = "org.jetbrains.kotlin:kotlin-stdlib-jdk8:${Versions.kotlin}" 72 | const val ktxCore = "androidx.core:core-ktx:${Versions.ktx}" 73 | const val lifecycle = "androidx.lifecycle:lifecycle-extensions:${Versions.lifecycle_version}" 74 | const val coroutinesAndroid = "org.jetbrains.kotlinx:kotlinx-coroutines-android:${Versions.kotlinCoroutines}" 75 | const val viewModel = "org.koin:koin-androidx-viewmodel:${Versions.koin}" 76 | const val viewModelKtx = "androidx.lifecycle:lifecycle-viewmodel-ktx:${Versions.archVersion}" 77 | } 78 | 79 | /** 80 | * Contains android core related dependencies 81 | * */ 82 | object Android { 83 | const val support = "com.android.support:support-v4:28.0.0-alpha1" 84 | } 85 | 86 | /** 87 | * Contains androidx dependencies 88 | * */ 89 | object Androidx { 90 | const val appCompat = "androidx.appcompat:appcompat:${Versions.supportAppCompat}" 91 | const val constraintLayout = "androidx.constraintlayout:constraintlayout:${Versions.constraintLayout}" 92 | } 93 | 94 | 95 | const val sdp = "com.intuit.sdp:sdp-android:${Versions.sdp}" 96 | const val ssp = "com.intuit.ssp:ssp-android:${Versions.ssp}" 97 | const val timber = "com.jakewharton.timber:timber:${Versions.timber}" 98 | } 99 | 100 | /** 101 | * Contains dependencies for unit test 102 | * */ 103 | 104 | object TestLibraries { 105 | private object Versions { 106 | const val junit4 = "4.12" 107 | const val testRunner = "1.1.1" 108 | const val espresso = "3.2.0" 109 | } 110 | 111 | const val junit4 = "junit:junit:${Versions.junit4}" 112 | const val testRunner = "androidx.test:runner:${Versions.testRunner}" 113 | const val extJunit = "androidx.test.ext:junit:${Versions.testRunner}" 114 | const val espresso = "androidx.test.espresso:espresso-core:${Versions.espresso}" 115 | } 116 | 117 | /** 118 | * Contains urls for gradle. 119 | */ 120 | object Urls { 121 | const val jitPack = "https://jitpack.io" 122 | const val fabric = "https://maven.fabric.io/public" 123 | } -------------------------------------------------------------------------------- /buildSrc/src/main/kotlin/DepsBuilder.kt: -------------------------------------------------------------------------------- 1 | import org.gradle.kotlin.dsl.DependencyHandlerScope 2 | 3 | /** 4 | * Helper class for building dependency extension 5 | * */ 6 | class DepsBuilder { 7 | internal val list = ArrayList() 8 | 9 | /** 10 | * overrides unary operator to add string dependencies into array directly 11 | * */ 12 | operator fun String.unaryPlus() = list.add(this) 13 | } 14 | 15 | /** 16 | * Extension function for implementation type of dependencies 17 | * 18 | * @param func is a lambda receiver of [DepsBuilder] class which provides a block to add dependencies 19 | * */ 20 | fun DependencyHandlerScope.`implementation`(func: DepsBuilder.() -> Unit) = 21 | DepsBuilder().apply { 22 | func() 23 | list.forEach { dep -> 24 | dependencies.add("implementation", dep) 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /customedittextoutlinedborder/.gitignore: -------------------------------------------------------------------------------- 1 | *.iml 2 | .gradle 3 | /local.properties 4 | /.idea 5 | /.idea/workspace.xml 6 | /.idea/libraries 7 | .DS_Store 8 | /build 9 | /captures 10 | .externalNativeBuild 11 | libs/ 12 | .idea/gradle.xml 13 | .idea/misc.xml 14 | .idea/modules.xml 15 | .idea/runConfigurations.xml 16 | .idea/vcs.xml 17 | -------------------------------------------------------------------------------- /customedittextoutlinedborder/build.gradle: -------------------------------------------------------------------------------- 1 | plugins { 2 | id 'com.android.library' 3 | id 'kotlin-android' 4 | id 'maven-publish' 5 | id 'kotlin-android-extensions' 6 | id 'kotlin-kapt' 7 | } 8 | 9 | afterEvaluate { 10 | publishing { 11 | publications { 12 | // Creates a Maven publication called "release". 13 | release(MavenPublication) { 14 | from components.release 15 | groupId = 'com.github.simformsolutions' 16 | artifactId = 'customedittextoutlineborder' 17 | version = '1.0.16' 18 | } 19 | } 20 | } 21 | } 22 | 23 | android { 24 | compileSdkVersion 31 25 | buildToolsVersion "29.0.3" 26 | 27 | 28 | defaultConfig { 29 | minSdkVersion 21 30 | targetSdkVersion 31 31 | versionCode 1 32 | versionName "1.0.16" 33 | 34 | testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" 35 | consumerProguardFiles 'consumer-rules.pro' 36 | } 37 | 38 | buildTypes { 39 | release { 40 | minifyEnabled false 41 | proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' 42 | } 43 | } 44 | 45 | dataBinding{ 46 | enabled = true 47 | } 48 | 49 | } 50 | 51 | dependencies { 52 | implementation fileTree(dir: 'libs', include: ['*.jar']) 53 | implementation 'androidx.appcompat:appcompat:1.4.2' 54 | implementation 'androidx.core:core-ktx:1.8.0' 55 | implementation 'androidx.constraintlayout:constraintlayout:2.1.4' 56 | implementation 'com.intuit.sdp:sdp-android:1.0.6' 57 | implementation 'com.intuit.ssp:ssp-android:1.0.6' 58 | testImplementation 'junit:junit:4.13.2' 59 | androidTestImplementation 'androidx.test.ext:junit:1.1.3' 60 | androidTestImplementation 'androidx.test.espresso:espresso-core:3.4.0' 61 | } 62 | -------------------------------------------------------------------------------- /customedittextoutlinedborder/consumer-rules.pro: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimformSolutionsPvtLtd/SSCustomEditTextOutLineBorder/462a0724e807baaf9967e461ffa61d77dc481f02/customedittextoutlinedborder/consumer-rules.pro -------------------------------------------------------------------------------- /customedittextoutlinedborder/proguard-rules.pro: -------------------------------------------------------------------------------- 1 | # Add project specific ProGuard rules here. 2 | # You can control the set of applied configuration files using the 3 | # proguardFiles setting in build.gradle. 4 | # 5 | # For more details, see 6 | # http://developer.android.com/guide/developing/tools/proguard.html 7 | 8 | # If your project uses WebView with JS, uncomment the following 9 | # and specify the fully qualified class name to the JavaScript interface 10 | # class: 11 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview { 12 | # public *; 13 | #} 14 | 15 | # Uncomment this to preserve the line number information for 16 | # debugging stack traces. 17 | #-keepattributes SourceFile,LineNumberTable 18 | 19 | # If you keep the line number information, uncomment this to 20 | # hide the original source file name. 21 | #-renamesourcefileattribute SourceFile 22 | -------------------------------------------------------------------------------- /customedittextoutlinedborder/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 3 | -------------------------------------------------------------------------------- /customedittextoutlinedborder/src/main/java/com/simform/customcomponent/SSCustomEdittextOutlinedBorder.kt: -------------------------------------------------------------------------------- 1 | package com.simform.customcomponent 2 | 3 | import android.content.Context 4 | import android.graphics.Typeface 5 | import android.graphics.drawable.DrawableContainer.DrawableContainerState 6 | import android.graphics.drawable.GradientDrawable 7 | import android.graphics.drawable.StateListDrawable 8 | import android.text.Editable 9 | import android.text.InputFilter 10 | import android.text.TextWatcher 11 | import android.text.method.HideReturnsTransformationMethod 12 | import android.text.method.PasswordTransformationMethod 13 | import android.util.AttributeSet 14 | import android.view.Gravity 15 | import android.view.LayoutInflater 16 | import android.view.View 17 | import android.view.inputmethod.EditorInfo 18 | import android.widget.LinearLayout 19 | import androidx.annotation.ColorInt 20 | import androidx.core.content.ContextCompat 21 | import androidx.core.content.res.ResourcesCompat 22 | import androidx.core.view.isVisible 23 | import androidx.databinding.InverseBindingMethod 24 | import androidx.databinding.InverseBindingMethods 25 | import kotlinx.android.synthetic.main.layout_custom_edittext.view.* 26 | 27 | @InverseBindingMethods(value = [InverseBindingMethod(type = SSCustomEdittextOutlinedBorder::class, attribute = "textValue", event = "android:textAttrChanged", method = "getTextValue"), 28 | InverseBindingMethod(type = SSCustomEdittextOutlinedBorder::class, attribute = "errorTextValue"), 29 | InverseBindingMethod(type = SSCustomEdittextOutlinedBorder::class, attribute = "isErrorEnable")]) 30 | class SSCustomEdittextOutlinedBorder @JvmOverloads constructor(context: Context, attrs: AttributeSet?, defStyle: Int = 0, defStyleRes: Int = 0) : LinearLayout(context, attrs, defStyle, defStyleRes) { 31 | 32 | private var titleColor = ContextCompat.getColor(context, R.color.color_brownish_grey_two) 33 | private var titleErrorColor = ContextCompat.getColor(context, R.color.color_error) 34 | private var borderColor = ContextCompat.getColor(context, R.color.color_warm_grey) 35 | private var borderErrorColor = ContextCompat.getColor(context, R.color.color_error) 36 | private var borderWidth = 1 37 | private var onTextChangeListener: OnTextChangeListener? = null 38 | 39 | val getTextValue: String 40 | get() { 41 | return editText.text.toString() 42 | } 43 | 44 | init { 45 | LayoutInflater.from(context).inflate(R.layout.layout_custom_edittext, this, true) 46 | orientation = VERTICAL 47 | 48 | attrs?.let { 49 | val typedArray = context.obtainStyledAttributes(it, R.styleable.custom_component_attributes, 0, 0) 50 | val title = resources.getText(typedArray.getResourceId(R.styleable.custom_component_attributes_custom_component_title, R.string.app_name)) 51 | val editTextHint = resources.getText(typedArray.getResourceId(R.styleable.custom_component_attributes_custom_component_editText_hint, R.string.app_name)) 52 | val isErrorEnable = typedArray.getBoolean(R.styleable.custom_component_attributes_isErrorEnable, false) 53 | val inputType = typedArray.getInt(R.styleable.custom_component_attributes_android_inputType, EditorInfo.TYPE_TEXT_VARIATION_NORMAL) 54 | val maxLine = typedArray.getInt(R.styleable.custom_component_attributes_custom_component_maxline, 1) 55 | val minLine = typedArray.getInt(R.styleable.custom_component_attributes_custom_component_minline, 1) 56 | val maxLength = typedArray.getInt(R.styleable.custom_component_attributes_custom_component_maxLength, 99) 57 | val titleBgColor = typedArray.getColor(R.styleable.custom_component_attributes_custom_component_title_bg_color, ContextCompat.getColor(context, R.color.colorPrimary)) 58 | val editTextBgColor = typedArray.getColor(R.styleable.custom_component_attributes_custom_component_editText_bg_color, ContextCompat.getColor(context, R.color.colorPrimary)) 59 | val errorTextBgColor = typedArray.getColor(R.styleable.custom_component_attributes_custom_component_error_text_bg_color, ContextCompat.getColor(context, R.color.colorPrimary)) 60 | titleColor = typedArray.getColor(R.styleable.custom_component_attributes_custom_component_title_color, ContextCompat.getColor(context, R.color.color_brownish_grey_two)) 61 | titleErrorColor = typedArray.getColor(R.styleable.custom_component_attributes_custom_component_title_error_color, ContextCompat.getColor(context, R.color.color_error)) 62 | borderColor = typedArray.getColor(R.styleable.custom_component_attributes_custom_component_border_color, ContextCompat.getColor(context, R.color.color_warm_grey)) 63 | borderErrorColor = typedArray.getColor(R.styleable.custom_component_attributes_custom_component_border_error_color, ContextCompat.getColor(context, R.color.color_error)) 64 | borderWidth = typedArray.getInt(R.styleable.custom_component_attributes_custom_component_border_width, 1) 65 | val isToggleEnable = typedArray.getBoolean(R.styleable.custom_component_attributes_isToggleEnable, false) 66 | 67 | setTitle(title as String) 68 | setEditTextHint(editTextHint as String) 69 | setTextStyle(ResourcesCompat.getFont(context, R.font.graphik_regular)) 70 | setIsErrorEnable(isErrorEnable) 71 | setIsToggleEnable(isToggleEnable) 72 | setPasswordToggleClick() 73 | setTextChangeListeners() 74 | setStyle(inputType, maxLine, minLine, maxLength) 75 | setTitleBackGroundColor(titleBgColor) 76 | setEditTextBackGroundColor(editTextBgColor) 77 | setErrorTextBackGroundColor(errorTextBgColor); 78 | 79 | typedArray.recycle() 80 | } 81 | } 82 | 83 | fun setTextValue(value : String?){ 84 | value?.let { 85 | editText.setText(value) 86 | editText.setSelection(value.length) 87 | } 88 | } 89 | 90 | fun setIsErrorEnable(isShown: Boolean) { 91 | if (isShown) { 92 | setTitleColor(titleErrorColor) 93 | setBackgroundBorderErrorColor(borderErrorColor) 94 | lableError.visibility = View.VISIBLE 95 | } else { 96 | setTitleColor(titleColor) 97 | setBackgroundBorderErrorColor(borderColor) 98 | lableError.visibility = View.GONE 99 | } 100 | } 101 | 102 | private fun setIsToggleEnable(isToggleEnable: Boolean) { 103 | imagePasswordToggle.isVisible = isToggleEnable 104 | } 105 | 106 | private fun setPasswordToggleClick() { 107 | imagePasswordToggle.setOnClickListener { 108 | if (editText.transformationMethod.equals(PasswordTransformationMethod.getInstance())) { 109 | imagePasswordToggle.setImageDrawable( 110 | ContextCompat.getDrawable( 111 | context, 112 | R.drawable.ic_baseline_visibility_24 113 | ) 114 | ) 115 | editText.transformationMethod = HideReturnsTransformationMethod.getInstance() 116 | } else { 117 | imagePasswordToggle.setImageDrawable( 118 | ContextCompat.getDrawable( 119 | context, 120 | R.drawable.ic_baseline_visibility_off_24 121 | ) 122 | ) 123 | editText.transformationMethod = PasswordTransformationMethod.getInstance() 124 | } 125 | editText.text?.let { text -> editText.setSelection(text.length) } 126 | } 127 | } 128 | 129 | fun getClickListener(onclick: () -> Unit) { 130 | editText.setOnClickListener { 131 | onclick.invoke() 132 | } 133 | } 134 | 135 | interface OnTextChangeListener { 136 | fun beforeTextChange(s: CharSequence?, start: Int, count: Int, after: Int) 137 | fun onTextChange(s: CharSequence?, start: Int, count: Int, after: Int) 138 | fun afterTextChange(s: Editable?) 139 | } 140 | 141 | fun setOnTextChangeListener(onTextChangeListener: OnTextChangeListener?) { 142 | this.onTextChangeListener = onTextChangeListener 143 | } 144 | 145 | private fun setTextChangeListeners() { 146 | editText.addTextChangedListener(object : TextWatcher { 147 | override fun afterTextChanged(s: Editable?) { 148 | onTextChangeListener?.afterTextChange(s) 149 | } 150 | 151 | override fun beforeTextChanged(s: CharSequence?, start: Int, count: Int, after: Int) { 152 | onTextChangeListener?.beforeTextChange(s, start, count, after) 153 | } 154 | 155 | override fun onTextChanged(s: CharSequence?, start: Int, before: Int, count: Int) { 156 | onTextChangeListener?.onTextChange(s, start, before, count) 157 | } 158 | }) 159 | } 160 | 161 | private fun setTitleColor(@ColorInt colorID: Int) { 162 | lableTitle.setTextColor(colorID) 163 | } 164 | 165 | private fun setTitle(title: String) { 166 | lableTitle.text = title 167 | } 168 | 169 | private fun setTitleBackGroundColor(@ColorInt colorID: Int) { 170 | lableTitle.setBackgroundColor(colorID) 171 | } 172 | 173 | private fun setErrorTextBackGroundColor(@ColorInt colorID: Int) { 174 | lableError.setBackgroundColor(colorID) 175 | } 176 | 177 | private fun setEditTextBackGroundColor(@ColorInt colorID: Int) { 178 | val drawable = editText.background as StateListDrawable 179 | val dcs = drawable.constantState as DrawableContainerState? 180 | val drawableItems = dcs!!.children 181 | val gradientDrawableChecked = drawableItems[0] as GradientDrawable 182 | gradientDrawableChecked.setColor(colorID) 183 | } 184 | 185 | private fun setEditTextHint(hint: String) { 186 | editText.hint = hint 187 | } 188 | 189 | private fun setStyle(inputType: Int, maxLine: Int, minLine: Int, maxLength: Int) { 190 | editText.inputType = inputType 191 | editText.apply { 192 | maxLines = maxLine 193 | minLines = minLine 194 | gravity = Gravity.TOP or Gravity.START 195 | filters = arrayOf(InputFilter.LengthFilter(maxLength)) 196 | } 197 | } 198 | 199 | private fun setBackgroundBorderErrorColor(@ColorInt colorID: Int) { 200 | val drawable = editText.background as StateListDrawable 201 | val dcs = drawable.constantState as DrawableContainerState? 202 | val drawableItems = dcs!!.children 203 | val gradientDrawableChecked = drawableItems[0] as GradientDrawable 204 | gradientDrawableChecked.setStroke(borderWidth, colorID) 205 | } 206 | 207 | private fun setTextStyle(textStyle: Typeface?) { 208 | lableTitle.typeface = textStyle 209 | editText.typeface = textStyle 210 | lableError.typeface = textStyle 211 | } 212 | } 213 | -------------------------------------------------------------------------------- /customedittextoutlinedborder/src/main/java/com/simform/databinding/SSCustomEditTextBinder.kt: -------------------------------------------------------------------------------- 1 | package com.simform.databinding 2 | 3 | import android.text.Editable 4 | import android.text.TextWatcher 5 | import androidx.databinding.BindingAdapter 6 | import androidx.databinding.InverseBindingListener 7 | import androidx.databinding.adapters.ListenerUtil 8 | import androidx.databinding.adapters.TextViewBindingAdapter 9 | import com.simform.customcomponent.R 10 | import com.simform.customcomponent.SSCustomEdittextOutlinedBorder 11 | import kotlinx.android.synthetic.main.layout_custom_edittext.view.editText 12 | import kotlinx.android.synthetic.main.layout_custom_edittext.view.lableError 13 | 14 | object SSCustomEditTextBinder { 15 | 16 | /** 17 | * This binding adapter is used to set custom edittext value. 18 | * 19 | * @param customEditText 20 | * @param value 21 | */ 22 | @JvmStatic 23 | @BindingAdapter("textValue") 24 | fun setTextValue(customEditText: SSCustomEdittextOutlinedBorder, value: String?) { 25 | value?.let { 26 | customEditText.setTextValue(value) 27 | } 28 | } 29 | 30 | @JvmStatic 31 | @BindingAdapter("errorTextValue") 32 | fun setErrorTextValue(customEditText: SSCustomEdittextOutlinedBorder, value: String?) { 33 | value?.let { 34 | customEditText.lableError.text = value 35 | } 36 | } 37 | 38 | @JvmStatic 39 | @BindingAdapter("isErrorEnable") 40 | fun setIsErrorEnable(customEditText: SSCustomEdittextOutlinedBorder, value: Boolean) { 41 | customEditText.setIsErrorEnable(value) 42 | } 43 | 44 | @JvmStatic 45 | @BindingAdapter(value = ["android:afterTextChanged", "android:textAttrChanged"], requireAll = false) 46 | fun setTextWatcher(filterPositionView: SSCustomEdittextOutlinedBorder, test: TextViewBindingAdapter.AfterTextChanged?, textAttrChanged: InverseBindingListener?) { 47 | val newValue = object : TextWatcher { 48 | override fun beforeTextChanged(s: CharSequence, start: Int, count: Int, after: Int) {} 49 | override fun onTextChanged(s: CharSequence, start: Int, before: Int, count: Int) {} 50 | override fun afterTextChanged(s: Editable) { 51 | test?.let { 52 | test.afterTextChanged(s) 53 | } 54 | 55 | textAttrChanged?.let { 56 | textAttrChanged.onChange() 57 | } 58 | } 59 | } 60 | val oldValue = ListenerUtil.trackListener(filterPositionView.editText, newValue, R.id.textWatcher) 61 | if (oldValue != null) { 62 | filterPositionView.editText.removeTextChangedListener(oldValue) 63 | } 64 | filterPositionView.editText.addTextChangedListener(newValue) 65 | } 66 | } -------------------------------------------------------------------------------- /customedittextoutlinedborder/src/main/res/drawable/bg_custom_edittext.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /customedittextoutlinedborder/src/main/res/drawable/ic_baseline_visibility_24.xml: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /customedittextoutlinedborder/src/main/res/drawable/ic_baseline_visibility_off_24.xml: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /customedittextoutlinedborder/src/main/res/font/graphik_regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimformSolutionsPvtLtd/SSCustomEditTextOutLineBorder/462a0724e807baaf9967e461ffa61d77dc481f02/customedittextoutlinedborder/src/main/res/font/graphik_regular.ttf -------------------------------------------------------------------------------- /customedittextoutlinedborder/src/main/res/layout/layout_custom_edittext.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 9 | 10 | 15 | 16 | 32 | 33 | 46 | 47 | 61 | 62 | 71 | 72 | 73 | 74 | -------------------------------------------------------------------------------- /customedittextoutlinedborder/src/main/res/values/attrs.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | -------------------------------------------------------------------------------- /customedittextoutlinedborder/src/main/res/values/colors.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | #f6f7fb 4 | #f6f7fb 5 | #007aff 6 | 7 | #979797 8 | #999999 9 | #666666 10 | #f15454 11 | 12 | -------------------------------------------------------------------------------- /customedittextoutlinedborder/src/main/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | CustomEditTextOutlineBorder 3 | 4 | Please enter Email ID 5 | Please enter a valid Email ID 6 | Email 7 | Enter your email ID 8 | 9 | Password 10 | ********* 11 | Please enter password 12 | Password must contains 6 character 13 | Form is valid 14 | 15 | Login 16 | 17 | circularstd_black.ttf 18 | circularstd_blackitalic.ttf 19 | circularstd_bold.ttf 20 | graphik_regular.ttf 21 | 22 | -------------------------------------------------------------------------------- /customedittextoutlinedborder/src/main/res/values/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 13 | 14 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /github.properties: -------------------------------------------------------------------------------- 1 | sdk.dir=/Users/Shweta.Chauhan/Library/Android/sdk 2 | gpr.usr=simformsolutions 3 | gpr.key=8660a1c06c0c4d8c497fc492dc39a6911b99a77c -------------------------------------------------------------------------------- /gradle.properties: -------------------------------------------------------------------------------- 1 | # Project-wide Gradle settings. 2 | # IDE (e.g. Android Studio) users: 3 | # Gradle settings configured through the IDE *will override* 4 | # any settings specified in this file. 5 | # For more details on how to configure your build environment visit 6 | # http://www.gradle.org/docs/current/userguide/build_environment.html 7 | # Specifies the JVM arguments used for the daemon process. 8 | # The setting is particularly useful for tweaking memory settings. 9 | org.gradle.jvmargs=-Xmx1536m 10 | # When configured, Gradle will run in incubating parallel mode. 11 | # This option should only be used with decoupled projects. More details, visit 12 | # http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects 13 | # org.gradle.parallel=true 14 | # AndroidX package structure to make it clearer which packages are bundled with the 15 | # Android operating system, and which are packaged with your app's APK 16 | # https://developer.android.com/topic/libraries/support-library/androidx-rn 17 | android.useAndroidX=true 18 | # Automatically convert third-party libraries to use AndroidX 19 | android.enableJetifier=true 20 | # Kotlin code style for this project: "official" or "obsolete": 21 | kotlin.code.style=official 22 | -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimformSolutionsPvtLtd/SSCustomEditTextOutLineBorder/462a0724e807baaf9967e461ffa61d77dc481f02/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | #Fri Jun 25 19:00:03 IST 2021 2 | distributionBase=GRADLE_USER_HOME 3 | distributionUrl=https\://services.gradle.org/distributions/gradle-7.0.2-bin.zip 4 | distributionPath=wrapper/dists 5 | zipStorePath=wrapper/dists 6 | zipStoreBase=GRADLE_USER_HOME 7 | -------------------------------------------------------------------------------- /gradlew: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env sh 2 | 3 | ############################################################################## 4 | ## 5 | ## Gradle start up script for UN*X 6 | ## 7 | ############################################################################## 8 | 9 | # Attempt to set APP_HOME 10 | # Resolve links: $0 may be a link 11 | PRG="$0" 12 | # Need this for relative symlinks. 13 | while [ -h "$PRG" ] ; do 14 | ls=`ls -ld "$PRG"` 15 | link=`expr "$ls" : '.*-> \(.*\)$'` 16 | if expr "$link" : '/.*' > /dev/null; then 17 | PRG="$link" 18 | else 19 | PRG=`dirname "$PRG"`"/$link" 20 | fi 21 | done 22 | SAVED="`pwd`" 23 | cd "`dirname \"$PRG\"`/" >/dev/null 24 | APP_HOME="`pwd -P`" 25 | cd "$SAVED" >/dev/null 26 | 27 | APP_NAME="Gradle" 28 | APP_BASE_NAME=`basename "$0"` 29 | 30 | # Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. 31 | DEFAULT_JVM_OPTS="" 32 | 33 | # Use the maximum available, or set MAX_FD != -1 to use that value. 34 | MAX_FD="maximum" 35 | 36 | warn () { 37 | echo "$*" 38 | } 39 | 40 | die () { 41 | echo 42 | echo "$*" 43 | echo 44 | exit 1 45 | } 46 | 47 | # OS specific support (must be 'true' or 'false'). 48 | cygwin=false 49 | msys=false 50 | darwin=false 51 | nonstop=false 52 | case "`uname`" in 53 | CYGWIN* ) 54 | cygwin=true 55 | ;; 56 | Darwin* ) 57 | darwin=true 58 | ;; 59 | MINGW* ) 60 | msys=true 61 | ;; 62 | NONSTOP* ) 63 | nonstop=true 64 | ;; 65 | esac 66 | 67 | CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar 68 | 69 | # Determine the Java command to use to start the JVM. 70 | if [ -n "$JAVA_HOME" ] ; then 71 | if [ -x "$JAVA_HOME/jre/sh/java" ] ; then 72 | # IBM's JDK on AIX uses strange locations for the executables 73 | JAVACMD="$JAVA_HOME/jre/sh/java" 74 | else 75 | JAVACMD="$JAVA_HOME/bin/java" 76 | fi 77 | if [ ! -x "$JAVACMD" ] ; then 78 | die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME 79 | 80 | Please set the JAVA_HOME variable in your environment to match the 81 | location of your Java installation." 82 | fi 83 | else 84 | JAVACMD="java" 85 | which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. 86 | 87 | Please set the JAVA_HOME variable in your environment to match the 88 | location of your Java installation." 89 | fi 90 | 91 | # Increase the maximum file descriptors if we can. 92 | if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then 93 | MAX_FD_LIMIT=`ulimit -H -n` 94 | if [ $? -eq 0 ] ; then 95 | if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then 96 | MAX_FD="$MAX_FD_LIMIT" 97 | fi 98 | ulimit -n $MAX_FD 99 | if [ $? -ne 0 ] ; then 100 | warn "Could not set maximum file descriptor limit: $MAX_FD" 101 | fi 102 | else 103 | warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT" 104 | fi 105 | fi 106 | 107 | # For Darwin, add options to specify how the application appears in the dock 108 | if $darwin; then 109 | GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\"" 110 | fi 111 | 112 | # For Cygwin, switch paths to Windows format before running java 113 | if $cygwin ; then 114 | APP_HOME=`cygpath --path --mixed "$APP_HOME"` 115 | CLASSPATH=`cygpath --path --mixed "$CLASSPATH"` 116 | JAVACMD=`cygpath --unix "$JAVACMD"` 117 | 118 | # We build the pattern for arguments to be converted via cygpath 119 | ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null` 120 | SEP="" 121 | for dir in $ROOTDIRSRAW ; do 122 | ROOTDIRS="$ROOTDIRS$SEP$dir" 123 | SEP="|" 124 | done 125 | OURCYGPATTERN="(^($ROOTDIRS))" 126 | # Add a user-defined pattern to the cygpath arguments 127 | if [ "$GRADLE_CYGPATTERN" != "" ] ; then 128 | OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)" 129 | fi 130 | # Now convert the arguments - kludge to limit ourselves to /bin/sh 131 | i=0 132 | for arg in "$@" ; do 133 | CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -` 134 | CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option 135 | 136 | if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition 137 | eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"` 138 | else 139 | eval `echo args$i`="\"$arg\"" 140 | fi 141 | i=$((i+1)) 142 | done 143 | case $i in 144 | (0) set -- ;; 145 | (1) set -- "$args0" ;; 146 | (2) set -- "$args0" "$args1" ;; 147 | (3) set -- "$args0" "$args1" "$args2" ;; 148 | (4) set -- "$args0" "$args1" "$args2" "$args3" ;; 149 | (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;; 150 | (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;; 151 | (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;; 152 | (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;; 153 | (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;; 154 | esac 155 | fi 156 | 157 | # Escape application args 158 | save () { 159 | for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done 160 | echo " " 161 | } 162 | APP_ARGS=$(save "$@") 163 | 164 | # Collect all arguments for the java command, following the shell quoting and substitution rules 165 | eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS" 166 | 167 | # by default we should be in the correct project dir, but when run from Finder on Mac, the cwd is wrong 168 | if [ "$(uname)" = "Darwin" ] && [ "$HOME" = "$PWD" ]; then 169 | cd "$(dirname "$0")" 170 | fi 171 | 172 | exec "$JAVACMD" "$@" 173 | -------------------------------------------------------------------------------- /gradlew.bat: -------------------------------------------------------------------------------- 1 | @if "%DEBUG%" == "" @echo off 2 | @rem ########################################################################## 3 | @rem 4 | @rem Gradle startup script for Windows 5 | @rem 6 | @rem ########################################################################## 7 | 8 | @rem Set local scope for the variables with windows NT shell 9 | if "%OS%"=="Windows_NT" setlocal 10 | 11 | set DIRNAME=%~dp0 12 | if "%DIRNAME%" == "" set DIRNAME=. 13 | set APP_BASE_NAME=%~n0 14 | set APP_HOME=%DIRNAME% 15 | 16 | @rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. 17 | set DEFAULT_JVM_OPTS= 18 | 19 | @rem Find java.exe 20 | if defined JAVA_HOME goto findJavaFromJavaHome 21 | 22 | set JAVA_EXE=java.exe 23 | %JAVA_EXE% -version >NUL 2>&1 24 | if "%ERRORLEVEL%" == "0" goto init 25 | 26 | echo. 27 | echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. 28 | echo. 29 | echo Please set the JAVA_HOME variable in your environment to match the 30 | echo location of your Java installation. 31 | 32 | goto fail 33 | 34 | :findJavaFromJavaHome 35 | set JAVA_HOME=%JAVA_HOME:"=% 36 | set JAVA_EXE=%JAVA_HOME%/bin/java.exe 37 | 38 | if exist "%JAVA_EXE%" goto init 39 | 40 | echo. 41 | echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% 42 | echo. 43 | echo Please set the JAVA_HOME variable in your environment to match the 44 | echo location of your Java installation. 45 | 46 | goto fail 47 | 48 | :init 49 | @rem Get command-line arguments, handling Windows variants 50 | 51 | if not "%OS%" == "Windows_NT" goto win9xME_args 52 | 53 | :win9xME_args 54 | @rem Slurp the command line arguments. 55 | set CMD_LINE_ARGS= 56 | set _SKIP=2 57 | 58 | :win9xME_args_slurp 59 | if "x%~1" == "x" goto execute 60 | 61 | set CMD_LINE_ARGS=%* 62 | 63 | :execute 64 | @rem Setup the command line 65 | 66 | set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar 67 | 68 | @rem Execute Gradle 69 | "%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS% 70 | 71 | :end 72 | @rem End local scope for the variables with windows NT shell 73 | if "%ERRORLEVEL%"=="0" goto mainEnd 74 | 75 | :fail 76 | rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of 77 | rem the _cmd.exe /c_ return code! 78 | if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1 79 | exit /b 1 80 | 81 | :mainEnd 82 | if "%OS%"=="Windows_NT" endlocal 83 | 84 | :omega 85 | -------------------------------------------------------------------------------- /images/data.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimformSolutionsPvtLtd/SSCustomEditTextOutLineBorder/462a0724e807baaf9967e461ffa61d77dc481f02/images/data.gif -------------------------------------------------------------------------------- /images/data_new.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimformSolutionsPvtLtd/SSCustomEditTextOutLineBorder/462a0724e807baaf9967e461ffa61d77dc481f02/images/data_new.gif -------------------------------------------------------------------------------- /images/demo_gif.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimformSolutionsPvtLtd/SSCustomEditTextOutLineBorder/462a0724e807baaf9967e461ffa61d77dc481f02/images/demo_gif.gif -------------------------------------------------------------------------------- /images/demo_new.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimformSolutionsPvtLtd/SSCustomEditTextOutLineBorder/462a0724e807baaf9967e461ffa61d77dc481f02/images/demo_new.gif -------------------------------------------------------------------------------- /images/test_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimformSolutionsPvtLtd/SSCustomEditTextOutLineBorder/462a0724e807baaf9967e461ffa61d77dc481f02/images/test_1.png -------------------------------------------------------------------------------- /images/test_3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimformSolutionsPvtLtd/SSCustomEditTextOutLineBorder/462a0724e807baaf9967e461ffa61d77dc481f02/images/test_3.png -------------------------------------------------------------------------------- /jitpack.yml: -------------------------------------------------------------------------------- 1 | jdk: 2 | - openjdk11 -------------------------------------------------------------------------------- /settings.gradle.kts: -------------------------------------------------------------------------------- 1 | rootProject.buildFileName = "build.gradle.kts" 2 | include(":app",":customedittextoutlinedborder") 3 | //rootProject.name='CustomEditTextOutlineBorder' 4 | --------------------------------------------------------------------------------