{"id":18080697,"url":"https://github.com/omaraflak/fingerprint","last_synced_at":"2025-07-20T04:33:48.922Z","repository":{"id":82863407,"uuid":"96032995","full_name":"omaraflak/Fingerprint","owner":"omaraflak","description":"Android library that simplifies the process of fingerprint authentications.","archived":false,"fork":false,"pushed_at":"2019-04-28T11:55:55.000Z","size":2276,"stargazers_count":68,"open_issues_count":6,"forks_count":29,"subscribers_count":6,"default_branch":"master","last_synced_at":"2025-04-12T14:22:57.450Z","etag":null,"topics":["android","android-library","authentication","cipher","dialog","fingerprint","fingerprint-dialog","library"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/omaraflak.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2017-07-02T15:43:04.000Z","updated_at":"2024-11-13T10:13:42.000Z","dependencies_parsed_at":"2023-03-02T04:46:07.843Z","dependency_job_id":null,"html_url":"https://github.com/omaraflak/Fingerprint","commit_stats":null,"previous_names":["omaflak/fingerprintdialog"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/omaraflak/Fingerprint","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/omaraflak%2FFingerprint","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/omaraflak%2FFingerprint/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/omaraflak%2FFingerprint/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/omaraflak%2FFingerprint/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/omaraflak","download_url":"https://codeload.github.com/omaraflak/Fingerprint/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/omaraflak%2FFingerprint/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":266067308,"owners_count":23871329,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["android","android-library","authentication","cipher","dialog","fingerprint","fingerprint-dialog","library"],"created_at":"2024-10-31T13:09:29.022Z","updated_at":"2025-07-20T04:33:48.912Z","avatar_url":"https://github.com/omaraflak.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Fingerprint [![Download](https://api.bintray.com/packages/omaflak/maven/fingerprint/images/download.svg)](https://bintray.com/omaflak/maven/fingerprint/_latestVersion)\n\n**Fingerprint** is an Android library that simplifies the process of fingerprint authentications. The library provides a fingerprint view that you can use like regulars xml views. Furthermore, it can display **dialogs** to perform fingerprint authentication very easily.\n\nIn both cases the Fingerprint library implements in a simple way the use of a CryptoObject.\n\n# Gradle Dependency\n\n```groovy\nimplementation 'me.aflak.libraries:fingerprint:2.5.3'\n```\n\n# Fingerprint View\n\nThe library provides a `Fingerprint` object which is a view that you can display the way you want and use for authentications. Customizations are at the end of the README.\n\n```xml\n\u003cme.aflak.libraries.view.Fingerprint\n    android:id=\"@+id/fingerprint\"\n    android:layout_width=\"200dp\"\n    android:layout_height=\"200dp\"/\u003e\n```\n\n## Without CryptoObject\n\nYou only want to check if the user's fingerprint is enrolled in the phone.\n\n```java\nFingerprint fingerprint = findViewById(R.id.fingerprint);\nfingerprint.callback(new FingerprintCallback(...));\nfingerprint.authenticate();\n```\n\n[**EXAMPLE**](https://github.com/OmarAflak/Fingerprint/blob/master/app/src/main/java/me/aflak/fingerprintdialoglibrary/SimpleView.java)\n\n## With CryptoObject\n\nCheck if the user's fingerprint is enrolled in the phone and detect if a new fingerprint was added since last time authentication was used.\n\n```java\nFingerprint fingerprint = findViewById(R.id.fingerprint);\nfingerprint.callback(new FingerprintDialogSecureCallback(...), \"Key\");\nfingerprint.authenticate();\n```\n\n[**EXAMPLE**](https://github.com/OmarAflak/Fingerprint/blob/master/app/src/main/java/me/aflak/fingerprintdialoglibrary/SecureView.java)\n\n# Fingerprint Dialog\n\n## Without CryptoObject\n\nYou only want to check if the user's fingerprint is enrolled in the phone.\n\n```java\nFingerprintDialog.initialize(this)\n    .title(R.string.title)\n    .message(R.string.message)\n    .callback(new FingerprintDialogCallback(...))\n    .show();\n```\n\n[**EXAMPLE**](https://github.com/OmarAflak/Fingerprint/blob/master/app/src/main/java/me/aflak/fingerprintdialoglibrary/SimpleDialog.java)\n        \n## With CryptoObject\n\nCheck if the user's fingerprint is enrolled in the phone and detect if a new fingerprint was added since last time authentication was used.\n\n```java\nFingerprintDialog.initialize(this)\n    .title(R.string.title)\n    .message(R.string.message)\n    .callback(new FingerprintDialogSecureCallback(...), \"Key\")\n    .show();\n```\n        \n[**EXAMPLE**](https://github.com/OmarAflak/Fingerprint/blob/master/app/src/main/java/me/aflak/fingerprintdialoglibrary/SecureDialog.java)\n\n# Secure a CryptoObject via authentication\n\nCryptoObject can be used to perform cryptographic operations on Android. You can set the CryptoObject to be valid only if the user has authenticated via fingerprint before. You have to use `setUserAuthenticationRequired(true)` when creating the CryptoObject.\n\n```java\nFingerprintManager.CryptoObject cryptoObject;\n// cryptoObject = ...\n\nif(FingerprintDialog.isAvailable(this)) {\n    FingerprintDialog.initialize(this)\n        .title(R.string.fingerprint_title)\n        .message(R.string.fingerprint_message)\n        .callback(new FingerprintCallback(...))\n        .cryptoObject(cryptoObject)\n        .show();\n}\n```\n\n# Customization\n\nYou can customize the fingerprint view directly from the xml.\n\n```xml\n\u003cme.aflak.libraries.view.Fingerprint\n    xmlns:fingerprint=\"http://schemas.android.com/apk/res-auto\"\n    fingerprint:circleScanningColor=\"@android:color/black\"\n    fingerprint:fingerprintScanningColor=\"@color/colorAccent\"\n    android:id=\"@+id/fingerprint\"\n    android:layout_width=\"200dp\"\n    android:layout_height=\"200dp\" /\u003e\n```\n\nSeveral functions are also available to customize your dialog.\n\n```java\nFingerprintDialog.initialize(this)\n    .title(R.string.fingerprint_title)\n    .message(R.string.fingerprint_message)\n    .enterAnimation(DialogAnimation.Enter.RIGHT)\n    .exitAnimation(DialogAnimation.Exit.RIGHT)\n    .circleScanningColor(R.color.colorAccent)\n    .callback(this)\n    .show();\n```\n\n# Rendering\n\n\u003cp float=\"left\"\u003e\n    \u003cimg src=\"https://github.com/omaflak/FingerprintDialog/blob/master/GIF/demo1.gif\" width=\"400\" /\u003e\n    \u003cimg src=\"https://github.com/omaflak/FingerprintDialog/blob/master/GIF/demo2.gif\" width=\"400\" /\u003e\n\u003c/p\u003e\n\n# License\n\n```\nMIT License\n\nCopyright (c) 2017 Michel Omar Aflak\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fomaraflak%2Ffingerprint","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fomaraflak%2Ffingerprint","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fomaraflak%2Ffingerprint/lists"}