Fix: Fixed locked apps to also allow DEVICE_CREDENTIAL not only Fingerprint
Signed-off-by: HeCodes2Much <wayne6324@gmail.com>
This commit is contained in:
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -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)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -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)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user