Skip to content
Merged
3 changes: 2 additions & 1 deletion app/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,8 @@
xmlns:tools="http://schemas.android.com/tools">

<uses-sdk tools:overrideLibrary="androidx.security" />

<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<application
android:name=".App"
android:allowBackup="false"
Expand Down
Original file line number Diff line number Diff line change
@@ -1,13 +1,17 @@
package com.fingerprintjs.android.fpjs_pro_demo

import android.Manifest
import android.animation.ObjectAnimator
import android.content.pm.PackageManager
import android.os.Build
import android.os.Bundle
import android.view.View
import android.view.animation.AccelerateInterpolator
import androidx.activity.ComponentActivity
import androidx.activity.compose.setContent
import androidx.activity.result.contract.ActivityResultContracts
import androidx.core.animation.doOnEnd
import androidx.core.app.ActivityCompat
import androidx.core.splashscreen.SplashScreen.Companion.installSplashScreen
import com.fingerprintjs.android.fpjs_pro_demo.ui.navigation.NavScreen
import com.fingerprintjs.android.fpjs_pro_demo.ui.theme.AppTheme
Expand Down Expand Up @@ -37,5 +41,40 @@ class MainActivity : ComponentActivity() {
NavScreen()
}
}

checkLocationPermissions()
}

fun checkLocationPermissions() {
if (isAnyLocationPermissionEnabled()) {
// We have at least some location permission, so we can proceed with getVisitorId
return
}

val locationPermissionRequest = registerForActivityResult(
ActivityResultContracts.RequestMultiplePermissions()
) { permissions ->
// Whether they give us permission or not, we can now make the Fingerprint call
}

// Request permission
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

seems this can be removed

locationPermissionRequest.launch(
arrayOf(
Manifest.permission.ACCESS_FINE_LOCATION,
Manifest.permission.ACCESS_COARSE_LOCATION
)
)
}

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
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -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 = 30_000L,
allowUseOfLocationData = true,
)
)
}
Expand Down
4 changes: 2 additions & 2 deletions gradle/libs.versions.toml
Original file line number Diff line number Diff line change
Expand Up @@ -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"
Expand Down