From 3a94e1c64d3107e929ff277fd1d93f663000925b Mon Sep 17 00:00:00 2001 From: Bryan Logan Date: Mon, 11 Aug 2025 11:56:31 -0500 Subject: [PATCH 01/13] Location permissions --- app/src/main/AndroidManifest.xml | 3 +- .../android/fpjs_pro_demo/MainActivity.kt | 35 +++++++++++++++++++ 2 files changed, 37 insertions(+), 1 deletion(-) diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 9719cee..fc34761 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -3,7 +3,8 @@ xmlns:tools="http://schemas.android.com/tools"> - + + + // Whether they give us permission or not, we can now make the Fingerprint call + } + + // Request permission + locationPermissionRequest.launch( + arrayOf( + Manifest.permission.ACCESS_FINE_LOCATION, + Manifest.permission.ACCESS_COARSE_LOCATION + ) + ) } } From 6f4884b991714abb51313fdbbf5696b605635a52 Mon Sep 17 00:00:00 2001 From: Bryan Logan Date: Mon, 11 Aug 2025 11:56:43 -0500 Subject: [PATCH 02/13] Use newer library --- .../domain/identification/IdentificationProvider.kt | 2 ++ gradle/libs.versions.toml | 4 ++-- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/com/fingerprintjs/android/fpjs_pro_demo/domain/identification/IdentificationProvider.kt b/app/src/main/java/com/fingerprintjs/android/fpjs_pro_demo/domain/identification/IdentificationProvider.kt index b69d5c9..5257702 100644 --- a/app/src/main/java/com/fingerprintjs/android/fpjs_pro_demo/domain/identification/IdentificationProvider.kt +++ b/app/src/main/java/com/fingerprintjs/android/fpjs_pro_demo/domain/identification/IdentificationProvider.kt @@ -34,6 +34,8 @@ class IdentificationProvider @Inject constructor( apiKey = if (it.enabled) it.public else Credentials.apiKey, endpointUrl = if (it.enabled) it.region.endpointUrl else Credentials.endpointUrl, extendedResponseFormat = true, + locationTimeoutMillis = 4000, + allowUseOfLocationData = true ) ) } diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 47b1167..5c1d490 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -16,8 +16,8 @@ dagger = "2.51.1" junit = "4.13.2" junitExt = "1.2.1" espresso = "3.6.1" -fingerprint = "2.9.0" -fingerprintDebug = "2.9.0-debug" +fingerprint = "2.10.0" +fingerprintDebug = "2.10.0-debug" androidApplicationPlugin = "8.7.1" kotlin = "2.0.21" detekt = "1.23.8" From 88d2a7eb23a9e9bddcdc8f0b7611cfece281f234 Mon Sep 17 00:00:00 2001 From: Bryan Logan Date: Wed, 13 Aug 2025 08:30:28 -0500 Subject: [PATCH 03/13] Update timeout --- .../domain/identification/IdentificationProvider.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/java/com/fingerprintjs/android/fpjs_pro_demo/domain/identification/IdentificationProvider.kt b/app/src/main/java/com/fingerprintjs/android/fpjs_pro_demo/domain/identification/IdentificationProvider.kt index 5257702..6c7e3f9 100644 --- a/app/src/main/java/com/fingerprintjs/android/fpjs_pro_demo/domain/identification/IdentificationProvider.kt +++ b/app/src/main/java/com/fingerprintjs/android/fpjs_pro_demo/domain/identification/IdentificationProvider.kt @@ -34,7 +34,7 @@ class IdentificationProvider @Inject constructor( apiKey = if (it.enabled) it.public else Credentials.apiKey, endpointUrl = if (it.enabled) it.region.endpointUrl else Credentials.endpointUrl, extendedResponseFormat = true, - locationTimeoutMillis = 4000, + locationTimeoutMillis = 30000, allowUseOfLocationData = true ) ) From 673669eb74a547eb0608be6d2c606ad5c64a7b64 Mon Sep 17 00:00:00 2001 From: Bryan Logan Date: Wed, 13 Aug 2025 11:11:23 -0500 Subject: [PATCH 04/13] Detekt fixes --- .../android/fpjs_pro_demo/MainActivity.kt | 20 +++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/app/src/main/java/com/fingerprintjs/android/fpjs_pro_demo/MainActivity.kt b/app/src/main/java/com/fingerprintjs/android/fpjs_pro_demo/MainActivity.kt index a042d6e..98b4b72 100644 --- a/app/src/main/java/com/fingerprintjs/android/fpjs_pro_demo/MainActivity.kt +++ b/app/src/main/java/com/fingerprintjs/android/fpjs_pro_demo/MainActivity.kt @@ -46,14 +46,18 @@ class MainActivity : ComponentActivity() { } fun checkLocationPermissions() { - if ((ActivityCompat.checkSelfPermission( - this, - Manifest.permission.ACCESS_FINE_LOCATION) == - PackageManager.PERMISSION_GRANTED) || - (ActivityCompat.checkSelfPermission( - this, - Manifest.permission.ACCESS_COARSE_LOCATION) == - PackageManager.PERMISSION_GRANTED) + if (( + ActivityCompat.checkSelfPermission( + this, + Manifest.permission.ACCESS_FINE_LOCATION + ) == PackageManager.PERMISSION_GRANTED + ) || + ( + ActivityCompat.checkSelfPermission( + this, + Manifest.permission.ACCESS_COARSE_LOCATION + ) == PackageManager.PERMISSION_GRANTED + ) ) { // We have at least some location permission, so we can proceed return From 874ecc6e7f398eb6fdc8907312a8301091a79f7b Mon Sep 17 00:00:00 2001 From: Bryan Logan Date: Thu, 14 Aug 2025 14:32:11 -0500 Subject: [PATCH 05/13] Update app/src/main/java/com/fingerprintjs/android/fpjs_pro_demo/domain/identification/IdentificationProvider.kt Co-authored-by: Alex Z. --- .../domain/identification/IdentificationProvider.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/java/com/fingerprintjs/android/fpjs_pro_demo/domain/identification/IdentificationProvider.kt b/app/src/main/java/com/fingerprintjs/android/fpjs_pro_demo/domain/identification/IdentificationProvider.kt index 6c7e3f9..69d4b64 100644 --- a/app/src/main/java/com/fingerprintjs/android/fpjs_pro_demo/domain/identification/IdentificationProvider.kt +++ b/app/src/main/java/com/fingerprintjs/android/fpjs_pro_demo/domain/identification/IdentificationProvider.kt @@ -35,7 +35,7 @@ class IdentificationProvider @Inject constructor( endpointUrl = if (it.enabled) it.region.endpointUrl else Credentials.endpointUrl, extendedResponseFormat = true, locationTimeoutMillis = 30000, - allowUseOfLocationData = true + allowUseOfLocationData = true, ) ) } From 846d4afe8636d172ec2fbe4cf9e5c5d56d079dca Mon Sep 17 00:00:00 2001 From: Bryan Logan Date: Thu, 14 Aug 2025 14:32:24 -0500 Subject: [PATCH 06/13] Update app/src/main/java/com/fingerprintjs/android/fpjs_pro_demo/domain/identification/IdentificationProvider.kt Co-authored-by: Alex Z. --- .../domain/identification/IdentificationProvider.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/java/com/fingerprintjs/android/fpjs_pro_demo/domain/identification/IdentificationProvider.kt b/app/src/main/java/com/fingerprintjs/android/fpjs_pro_demo/domain/identification/IdentificationProvider.kt index 69d4b64..5135181 100644 --- a/app/src/main/java/com/fingerprintjs/android/fpjs_pro_demo/domain/identification/IdentificationProvider.kt +++ b/app/src/main/java/com/fingerprintjs/android/fpjs_pro_demo/domain/identification/IdentificationProvider.kt @@ -34,7 +34,7 @@ class IdentificationProvider @Inject constructor( apiKey = if (it.enabled) it.public else Credentials.apiKey, endpointUrl = if (it.enabled) it.region.endpointUrl else Credentials.endpointUrl, extendedResponseFormat = true, - locationTimeoutMillis = 30000, + locationTimeoutMillis = 30_000L, allowUseOfLocationData = true, ) ) From bb35a0853cf4087d4976d40c48fb1ca4181f45c8 Mon Sep 17 00:00:00 2001 From: Bryan Logan Date: Thu, 14 Aug 2025 14:38:50 -0500 Subject: [PATCH 07/13] Update MainActivity.kt --- .../android/fpjs_pro_demo/MainActivity.kt | 28 +++++++++---------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/app/src/main/java/com/fingerprintjs/android/fpjs_pro_demo/MainActivity.kt b/app/src/main/java/com/fingerprintjs/android/fpjs_pro_demo/MainActivity.kt index 98b4b72..ec101d1 100644 --- a/app/src/main/java/com/fingerprintjs/android/fpjs_pro_demo/MainActivity.kt +++ b/app/src/main/java/com/fingerprintjs/android/fpjs_pro_demo/MainActivity.kt @@ -46,20 +46,8 @@ class MainActivity : ComponentActivity() { } fun checkLocationPermissions() { - if (( - ActivityCompat.checkSelfPermission( - this, - Manifest.permission.ACCESS_FINE_LOCATION - ) == PackageManager.PERMISSION_GRANTED - ) || - ( - ActivityCompat.checkSelfPermission( - this, - Manifest.permission.ACCESS_COARSE_LOCATION - ) == PackageManager.PERMISSION_GRANTED - ) - ) { - // We have at least some location permission, so we can proceed + if (isAnyLocationPermissionEnabled()) { + // We have at least some location permission, so we can proceed with getVisitorId return } @@ -77,4 +65,16 @@ class MainActivity : ComponentActivity() { ) ) } + + private fun isAnyLocationPermissionEnabled(): Boolean { + return isPermissionGranted(Manifest.permission.ACCESS_FINE_LOCATION) + || isPermissionGranted(Manifest.permission.ACCESS_COARSE_LOCATION) + } + + private fun isPermissionGranted(permission: String): Boolean { + return ActivityCompat.checkSelfPermission( + this, + permission + ) == PackageManager.PERMISSION_GRANTED + } } From c15bbb60746f210e950c0ef470abe8897dabf0dd Mon Sep 17 00:00:00 2001 From: Bryan Logan Date: Thu, 14 Aug 2025 14:40:44 -0500 Subject: [PATCH 08/13] Update MainActivity.kt --- .../com/fingerprintjs/android/fpjs_pro_demo/MainActivity.kt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/com/fingerprintjs/android/fpjs_pro_demo/MainActivity.kt b/app/src/main/java/com/fingerprintjs/android/fpjs_pro_demo/MainActivity.kt index ec101d1..bb2f34c 100644 --- a/app/src/main/java/com/fingerprintjs/android/fpjs_pro_demo/MainActivity.kt +++ b/app/src/main/java/com/fingerprintjs/android/fpjs_pro_demo/MainActivity.kt @@ -67,8 +67,8 @@ class MainActivity : ComponentActivity() { } private fun isAnyLocationPermissionEnabled(): Boolean { - return isPermissionGranted(Manifest.permission.ACCESS_FINE_LOCATION) - || isPermissionGranted(Manifest.permission.ACCESS_COARSE_LOCATION) + return isPermissionGranted(Manifest.permission.ACCESS_FINE_LOCATION) || + isPermissionGranted(Manifest.permission.ACCESS_COARSE_LOCATION) } private fun isPermissionGranted(permission: String): Boolean { From 121143970632c7ee1fffe3c4d3c86f5895362400 Mon Sep 17 00:00:00 2001 From: Bryan Logan Date: Thu, 14 Aug 2025 14:51:34 -0500 Subject: [PATCH 09/13] Update app/src/main/java/com/fingerprintjs/android/fpjs_pro_demo/MainActivity.kt Co-authored-by: Alex Z. --- .../com/fingerprintjs/android/fpjs_pro_demo/MainActivity.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/java/com/fingerprintjs/android/fpjs_pro_demo/MainActivity.kt b/app/src/main/java/com/fingerprintjs/android/fpjs_pro_demo/MainActivity.kt index bb2f34c..214f527 100644 --- a/app/src/main/java/com/fingerprintjs/android/fpjs_pro_demo/MainActivity.kt +++ b/app/src/main/java/com/fingerprintjs/android/fpjs_pro_demo/MainActivity.kt @@ -66,7 +66,7 @@ class MainActivity : ComponentActivity() { ) } - private fun isAnyLocationPermissionEnabled(): Boolean { + private fun isAnyLocationPermissionGranted(): Boolean { return isPermissionGranted(Manifest.permission.ACCESS_FINE_LOCATION) || isPermissionGranted(Manifest.permission.ACCESS_COARSE_LOCATION) } From ad2bd9f58eab7b26ba9aef4c95c4ed4d6f46dcd6 Mon Sep 17 00:00:00 2001 From: Bryan Logan Date: Thu, 14 Aug 2025 14:59:29 -0500 Subject: [PATCH 10/13] Update MainActivity.kt --- .../com/fingerprintjs/android/fpjs_pro_demo/MainActivity.kt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/com/fingerprintjs/android/fpjs_pro_demo/MainActivity.kt b/app/src/main/java/com/fingerprintjs/android/fpjs_pro_demo/MainActivity.kt index 214f527..53c4def 100644 --- a/app/src/main/java/com/fingerprintjs/android/fpjs_pro_demo/MainActivity.kt +++ b/app/src/main/java/com/fingerprintjs/android/fpjs_pro_demo/MainActivity.kt @@ -46,8 +46,8 @@ class MainActivity : ComponentActivity() { } fun checkLocationPermissions() { - if (isAnyLocationPermissionEnabled()) { - // We have at least some location permission, so we can proceed with getVisitorId + if (isAnyLocationPermissionGranted()) { + // We have at least some location permission, so we can proceed with Fingerprint call return } From f5c6b212400b457890b5e479e06cfafbd0f4ca21 Mon Sep 17 00:00:00 2001 From: Bryan Logan Date: Thu, 14 Aug 2025 15:16:12 -0500 Subject: [PATCH 11/13] Update MainActivity.kt --- .../com/fingerprintjs/android/fpjs_pro_demo/MainActivity.kt | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/com/fingerprintjs/android/fpjs_pro_demo/MainActivity.kt b/app/src/main/java/com/fingerprintjs/android/fpjs_pro_demo/MainActivity.kt index 53c4def..8854f56 100644 --- a/app/src/main/java/com/fingerprintjs/android/fpjs_pro_demo/MainActivity.kt +++ b/app/src/main/java/com/fingerprintjs/android/fpjs_pro_demo/MainActivity.kt @@ -54,7 +54,8 @@ class MainActivity : ComponentActivity() { val locationPermissionRequest = registerForActivityResult( ActivityResultContracts.RequestMultiplePermissions() ) { permissions -> - // Whether they give us permission or not, we can now make the Fingerprint call + // Even if the user didn't give us permission, we now know the answer and therefore + // should proceed with the Fingerprint call } // Request permission From 31498282459de32c68e18cf34c1848a9c82904a0 Mon Sep 17 00:00:00 2001 From: Bryan Logan Date: Thu, 14 Aug 2025 15:28:04 -0500 Subject: [PATCH 12/13] Update MainActivity.kt --- .../com/fingerprintjs/android/fpjs_pro_demo/MainActivity.kt | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/app/src/main/java/com/fingerprintjs/android/fpjs_pro_demo/MainActivity.kt b/app/src/main/java/com/fingerprintjs/android/fpjs_pro_demo/MainActivity.kt index 8854f56..e31d2df 100644 --- a/app/src/main/java/com/fingerprintjs/android/fpjs_pro_demo/MainActivity.kt +++ b/app/src/main/java/com/fingerprintjs/android/fpjs_pro_demo/MainActivity.kt @@ -57,8 +57,7 @@ class MainActivity : ComponentActivity() { // Even if the user didn't give us permission, we now know the answer and therefore // should proceed with the Fingerprint call } - - // Request permission + locationPermissionRequest.launch( arrayOf( Manifest.permission.ACCESS_FINE_LOCATION, From 9d9aab4c9be856a3d353146df6a39dd3f47547e2 Mon Sep 17 00:00:00 2001 From: Bryan Logan Date: Thu, 14 Aug 2025 15:30:58 -0500 Subject: [PATCH 13/13] Update MainActivity.kt --- .../com/fingerprintjs/android/fpjs_pro_demo/MainActivity.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/java/com/fingerprintjs/android/fpjs_pro_demo/MainActivity.kt b/app/src/main/java/com/fingerprintjs/android/fpjs_pro_demo/MainActivity.kt index e31d2df..47683ba 100644 --- a/app/src/main/java/com/fingerprintjs/android/fpjs_pro_demo/MainActivity.kt +++ b/app/src/main/java/com/fingerprintjs/android/fpjs_pro_demo/MainActivity.kt @@ -57,7 +57,7 @@ class MainActivity : ComponentActivity() { // Even if the user didn't give us permission, we now know the answer and therefore // should proceed with the Fingerprint call } - + locationPermissionRequest.launch( arrayOf( Manifest.permission.ACCESS_FINE_LOCATION,