diff --git a/app/src/main/java/com/github/droidworksstudio/launcher/helper/FingerprintHelper.kt b/app/src/main/java/com/github/droidworksstudio/launcher/helper/BiometricHelper.kt similarity index 88% rename from app/src/main/java/com/github/droidworksstudio/launcher/helper/FingerprintHelper.kt rename to app/src/main/java/com/github/droidworksstudio/launcher/helper/BiometricHelper.kt index 4999d23..40c49a8 100644 --- a/app/src/main/java/com/github/droidworksstudio/launcher/helper/FingerprintHelper.kt +++ b/app/src/main/java/com/github/droidworksstudio/launcher/helper/BiometricHelper.kt @@ -12,7 +12,7 @@ import com.github.droidworksstudio.launcher.data.entities.AppInfo import com.github.droidworksstudio.launcher.utils.Constants import javax.inject.Inject -class FingerprintHelper @Inject constructor(private val fragment: Fragment) { +class BiometricHelper @Inject constructor(private val fragment: Fragment) { private lateinit var callback: Callback @@ -25,7 +25,7 @@ class FingerprintHelper @Inject constructor(private val fragment: Fragment) { fun onAuthenticationError(errorCode: Int, errorMessage: CharSequence?) } - fun startFingerprintAuth(appInfo: AppInfo, callback: Callback) { + fun startBiometricAuth(appInfo: AppInfo, callback: Callback) { this.callback = callback val authenticationCallback = object : BiometricPrompt.AuthenticationCallback() { @@ -45,20 +45,23 @@ class FingerprintHelper @Inject constructor(private val fragment: Fragment) { val executor = ContextCompat.getMainExecutor(fragment.requireContext()) val biometricPrompt = BiometricPrompt(fragment, executor, authenticationCallback) + val authenticators = + BiometricManager.Authenticators.BIOMETRIC_STRONG or BiometricManager.Authenticators.DEVICE_CREDENTIAL + val canAuthenticate = + BiometricManager.from(fragment.requireContext()).canAuthenticate(authenticators) + val promptInfo = BiometricPrompt.PromptInfo.Builder() .setTitle(fragment.getString(R.string.authentication_title)) .setSubtitle(fragment.getString(R.string.authentication_subtitle)) - .setAllowedAuthenticators(BiometricManager.Authenticators.BIOMETRIC_WEAK or BiometricManager.Authenticators.DEVICE_CREDENTIAL) + .setAllowedAuthenticators(authenticators) .build() - val canAuthenticate = BiometricManager.from(fragment.requireContext()) - .canAuthenticate(BiometricManager.Authenticators.BIOMETRIC_STRONG) if (canAuthenticate == BiometricManager.BIOMETRIC_SUCCESS) { biometricPrompt.authenticate(promptInfo) } } - fun startFingerprintSettingsAuth(runNavigation: Int) { + fun startBiometricSettingsAuth(runNavigation: Int) { val executor = ContextCompat.getMainExecutor(fragment.requireContext()) val biometricPrompt = @@ -92,7 +95,7 @@ class FingerprintHelper @Inject constructor(private val fragment: Fragment) { .setSubtitle(fragment.getString(R.string.authentication_subtitle)) val authenticators = - BiometricManager.Authenticators.BIOMETRIC_WEAK or BiometricManager.Authenticators.DEVICE_CREDENTIAL + BiometricManager.Authenticators.BIOMETRIC_STRONG or BiometricManager.Authenticators.DEVICE_CREDENTIAL val canAuthenticate = BiometricManager.from(fragment.requireContext()).canAuthenticate(authenticators) diff --git a/app/src/main/java/com/github/droidworksstudio/launcher/ui/bottomsheetdialog/AppInfoBottomSheetFragment.kt b/app/src/main/java/com/github/droidworksstudio/launcher/ui/bottomsheetdialog/AppInfoBottomSheetFragment.kt index e228401..082593d 100644 --- a/app/src/main/java/com/github/droidworksstudio/launcher/ui/bottomsheetdialog/AppInfoBottomSheetFragment.kt +++ b/app/src/main/java/com/github/droidworksstudio/launcher/ui/bottomsheetdialog/AppInfoBottomSheetFragment.kt @@ -20,7 +20,7 @@ import com.github.droidworksstudio.launcher.data.entities.AppInfo import com.github.droidworksstudio.launcher.databinding.BottomsheetDialogBinding import com.github.droidworksstudio.launcher.helper.AppHelper import com.github.droidworksstudio.launcher.helper.BottomDialogHelper -import com.github.droidworksstudio.launcher.helper.FingerprintHelper +import com.github.droidworksstudio.launcher.helper.BiometricHelper import com.github.droidworksstudio.launcher.listener.OnItemClickedListener import com.github.droidworksstudio.launcher.viewmodel.AppViewModel import dagger.hilt.android.AndroidEntryPoint @@ -28,7 +28,7 @@ import javax.inject.Inject @AndroidEntryPoint class AppInfoBottomSheetFragment(private val appInfo: AppInfo) : BottomSheetDialogFragment(), - FingerprintHelper.Callback { + BiometricHelper.Callback { private var _binding: BottomsheetDialogBinding? = null @@ -43,7 +43,7 @@ class AppInfoBottomSheetFragment(private val appInfo: AppInfo) : BottomSheetDial lateinit var bottomDialogHelper: BottomDialogHelper @Inject - lateinit var fingerHelper: FingerprintHelper + lateinit var fingerHelper: BiometricHelper private var appStateClickListener: OnItemClickedListener.OnAppStateClickListener? = null @@ -159,7 +159,7 @@ class AppInfoBottomSheetFragment(private val appInfo: AppInfo) : BottomSheetDial binding.bottomSheetLock.setOnClickListener { if (appInfo.lock) { - fingerHelper.startFingerprintAuth(appInfo, this) + fingerHelper.startBiometricAuth(appInfo, this) } else { appInfo.lock = true viewModel.updateAppLock(appInfo, appInfo.lock) diff --git a/app/src/main/java/com/github/droidworksstudio/launcher/ui/drawer/DrawFragment.kt b/app/src/main/java/com/github/droidworksstudio/launcher/ui/drawer/DrawFragment.kt index 2c774f4..4a34986 100644 --- a/app/src/main/java/com/github/droidworksstudio/launcher/ui/drawer/DrawFragment.kt +++ b/app/src/main/java/com/github/droidworksstudio/launcher/ui/drawer/DrawFragment.kt @@ -28,7 +28,7 @@ import com.github.droidworksstudio.launcher.adapter.drawer.DrawAdapter import com.github.droidworksstudio.launcher.data.entities.AppInfo import com.github.droidworksstudio.launcher.databinding.FragmentDrawBinding import com.github.droidworksstudio.launcher.helper.AppHelper -import com.github.droidworksstudio.launcher.helper.FingerprintHelper +import com.github.droidworksstudio.launcher.helper.BiometricHelper import com.github.droidworksstudio.launcher.helper.PreferenceHelper import com.github.droidworksstudio.launcher.listener.OnItemClickedListener import com.github.droidworksstudio.launcher.listener.OnSwipeTouchListener @@ -48,7 +48,7 @@ class DrawFragment : Fragment(), OnItemClickedListener.OnAppLongClickedListener, OnItemClickedListener.BottomSheetDismissListener, OnItemClickedListener.OnAppStateClickListener, - FingerprintHelper.Callback, ScrollEventListener { + BiometricHelper.Callback, ScrollEventListener { private var _binding: FragmentDrawBinding? = null private val binding get() = _binding!! @@ -60,7 +60,7 @@ class DrawFragment : Fragment(), lateinit var appHelper: AppHelper @Inject - lateinit var fingerHelper: FingerprintHelper + lateinit var fingerHelper: BiometricHelper private val viewModel: AppViewModel by viewModels() @@ -274,7 +274,7 @@ class DrawFragment : Fragment(), if (!appInfo.lock) { context.launchApp(appInfo) } else { - fingerHelper.startFingerprintAuth(appInfo, this) + fingerHelper.startBiometricAuth(appInfo, this) } } diff --git a/app/src/main/java/com/github/droidworksstudio/launcher/ui/favorite/FavoriteFragment.kt b/app/src/main/java/com/github/droidworksstudio/launcher/ui/favorite/FavoriteFragment.kt index a9295ee..61ade72 100644 --- a/app/src/main/java/com/github/droidworksstudio/launcher/ui/favorite/FavoriteFragment.kt +++ b/app/src/main/java/com/github/droidworksstudio/launcher/ui/favorite/FavoriteFragment.kt @@ -23,7 +23,7 @@ import com.github.droidworksstudio.launcher.adapter.favorite.FavoriteAdapter import com.github.droidworksstudio.launcher.data.entities.AppInfo import com.github.droidworksstudio.launcher.databinding.FragmentFavoriteBinding import com.github.droidworksstudio.launcher.helper.AppHelper -import com.github.droidworksstudio.launcher.helper.FingerprintHelper +import com.github.droidworksstudio.launcher.helper.BiometricHelper import com.github.droidworksstudio.launcher.helper.PreferenceHelper import com.github.droidworksstudio.launcher.listener.OnItemClickedListener import com.github.droidworksstudio.launcher.listener.OnItemMoveListener @@ -41,7 +41,7 @@ class FavoriteFragment : Fragment(), OnItemClickedListener.BottomSheetDismissListener, OnItemClickedListener.OnAppStateClickListener, OnItemMoveListener.OnItemActionListener, - FingerprintHelper.Callback { + BiometricHelper.Callback { private var _binding: FragmentFavoriteBinding? = null private val binding get() = _binding!! @@ -54,7 +54,7 @@ class FavoriteFragment : Fragment(), lateinit var preferenceHelper: PreferenceHelper @Inject - lateinit var fingerHelper: FingerprintHelper + lateinit var fingerHelper: BiometricHelper @Inject lateinit var appHelper: AppHelper @@ -204,7 +204,7 @@ class FavoriteFragment : Fragment(), if (!appInfo.lock) { context.launchApp(appInfo) } else { - fingerHelper.startFingerprintAuth(appInfo, this) + fingerHelper.startBiometricAuth(appInfo, this) } } diff --git a/app/src/main/java/com/github/droidworksstudio/launcher/ui/hidden/HiddenFragment.kt b/app/src/main/java/com/github/droidworksstudio/launcher/ui/hidden/HiddenFragment.kt index 2188494..3128330 100644 --- a/app/src/main/java/com/github/droidworksstudio/launcher/ui/hidden/HiddenFragment.kt +++ b/app/src/main/java/com/github/droidworksstudio/launcher/ui/hidden/HiddenFragment.kt @@ -20,7 +20,7 @@ import com.github.droidworksstudio.launcher.adapter.hidden.HiddenAdapter import com.github.droidworksstudio.launcher.data.entities.AppInfo import com.github.droidworksstudio.launcher.databinding.FragmentHiddenBinding import com.github.droidworksstudio.launcher.helper.AppHelper -import com.github.droidworksstudio.launcher.helper.FingerprintHelper +import com.github.droidworksstudio.launcher.helper.BiometricHelper import com.github.droidworksstudio.launcher.helper.PreferenceHelper import com.github.droidworksstudio.launcher.listener.OnItemClickedListener import com.github.droidworksstudio.launcher.listener.OnSwipeTouchListener @@ -35,7 +35,7 @@ class HiddenFragment : Fragment(), OnItemClickedListener.OnAppLongClickedListener, OnItemClickedListener.BottomSheetDismissListener, OnItemClickedListener.OnAppStateClickListener, - FingerprintHelper.Callback { + BiometricHelper.Callback { private var _binding: FragmentHiddenBinding? = null private val binding get() = _binding!! @@ -45,7 +45,7 @@ class HiddenFragment : Fragment(), private lateinit var context: Context @Inject - lateinit var fingerHelper: FingerprintHelper + lateinit var fingerHelper: BiometricHelper @Inject lateinit var appHelper: AppHelper @@ -121,7 +121,7 @@ class HiddenFragment : Fragment(), if (!appInfo.lock) { context.launchApp(appInfo) } else { - fingerHelper.startFingerprintAuth(appInfo, this) + fingerHelper.startBiometricAuth(appInfo, this) } } diff --git a/app/src/main/java/com/github/droidworksstudio/launcher/ui/home/HomeFragment.kt b/app/src/main/java/com/github/droidworksstudio/launcher/ui/home/HomeFragment.kt index af52952..1e14b93 100644 --- a/app/src/main/java/com/github/droidworksstudio/launcher/ui/home/HomeFragment.kt +++ b/app/src/main/java/com/github/droidworksstudio/launcher/ui/home/HomeFragment.kt @@ -35,7 +35,7 @@ import com.github.droidworksstudio.launcher.adapter.home.HomeAdapter import com.github.droidworksstudio.launcher.data.entities.AppInfo import com.github.droidworksstudio.launcher.databinding.FragmentHomeBinding import com.github.droidworksstudio.launcher.helper.AppHelper -import com.github.droidworksstudio.launcher.helper.FingerprintHelper +import com.github.droidworksstudio.launcher.helper.BiometricHelper import com.github.droidworksstudio.launcher.helper.PreferenceHelper import com.github.droidworksstudio.launcher.helper.UpdateManagerHelper import com.github.droidworksstudio.launcher.listener.OnItemClickedListener @@ -62,7 +62,7 @@ class HomeFragment : Fragment(), OnItemClickedListener.OnAppLongClickedListener, OnItemClickedListener.BottomSheetDismissListener, OnItemClickedListener.OnAppStateClickListener, - FingerprintHelper.Callback, ScrollEventListener { + BiometricHelper.Callback, ScrollEventListener { private var _binding: FragmentHomeBinding? = null @@ -76,7 +76,7 @@ class HomeFragment : Fragment(), @Inject - lateinit var fingerHelper: FingerprintHelper + lateinit var fingerHelper: BiometricHelper private val viewModel: AppViewModel by viewModels() private val preferenceViewModel: PreferenceViewModel by viewModels() @@ -283,7 +283,7 @@ class HomeFragment : Fragment(), if (!appInfo.lock) context.launchApp(appInfo) else - fingerHelper.startFingerprintAuth(appInfo, this) + fingerHelper.startBiometricAuth(appInfo, this) } private fun showSelectedApp(appInfo: AppInfo) { @@ -455,7 +455,7 @@ class HomeFragment : Fragment(), }) if (preferenceHelper.settingsLock) { - fingerHelper.startFingerprintSettingsAuth(R.id.action_HomeFragment_to_SettingsFragment) + fingerHelper.startBiometricSettingsAuth(R.id.action_HomeFragment_to_SettingsFragment) } else { val actionTypeNavOptions: NavOptions = appHelper.getActionType(Constants.Swipe.DoubleTap)