Refactor: Moved the getActionType function into AppHelper class.

Signed-off-by: HeCodes2Much <wayne6324@gmail.com>
This commit is contained in:
HeCodes2Much
2024-06-02 19:56:46 +01:00
parent ccd114c0b1
commit 48b2913797
3 changed files with 72 additions and 55 deletions

View File

@@ -16,6 +16,7 @@ import android.view.Window
import android.view.WindowInsets
import android.widget.TextView
import androidx.appcompat.widget.LinearLayoutCompat
import androidx.navigation.NavOptions
import com.github.droidworksstudio.common.backupSharedPreferences
import com.github.droidworksstudio.common.restoreSharedPreferences
import com.github.droidworksstudio.common.showLongToast
@@ -192,4 +193,53 @@ class AppHelper @Inject constructor() {
fun restoreSharedPreferences(context: Context) {
context.restoreSharedPreferences(context.getString(R.string.settings_backups_file))
}
fun getActionType(actionType: Constants.Swipe): NavOptions {
return when (actionType) {
Constants.Swipe.DoubleTap -> {
NavOptions.Builder()
.setEnterAnim(R.anim.zoom_in)
.setExitAnim(R.anim.zoom_out)
.setPopEnterAnim(R.anim.zoom_in)
.setPopExitAnim(R.anim.zoom_out)
.build()
}
Constants.Swipe.Up -> {
NavOptions.Builder()
.setEnterAnim(R.anim.slide_in_top)
.setExitAnim(R.anim.slide_out_top)
.setPopEnterAnim(R.anim.slide_in_bottom)
.setPopExitAnim(R.anim.slide_out_bottom)
.build()
}
Constants.Swipe.Down -> {
NavOptions.Builder()
.setEnterAnim(R.anim.slide_in_bottom)
.setExitAnim(R.anim.slide_out_bottom)
.setPopEnterAnim(R.anim.slide_in_top)
.setPopExitAnim(R.anim.slide_out_top)
.build()
}
Constants.Swipe.Left -> {
NavOptions.Builder()
.setEnterAnim(R.anim.slide_in_right)
.setExitAnim(R.anim.slide_out_right)
.setPopEnterAnim(R.anim.slide_in_left)
.setPopExitAnim(R.anim.slide_out_left)
.build()
}
Constants.Swipe.Right -> {
NavOptions.Builder()
.setEnterAnim(R.anim.slide_in_left)
.setExitAnim(R.anim.slide_out_left)
.setPopEnterAnim(R.anim.slide_in_right)
.setPopExitAnim(R.anim.slide_out_right)
.build()
}
}
}
}

View File

@@ -4,10 +4,12 @@ import androidx.biometric.BiometricManager
import androidx.biometric.BiometricPrompt
import androidx.core.content.ContextCompat
import androidx.fragment.app.Fragment
import androidx.navigation.NavOptions
import androidx.navigation.fragment.findNavController
import com.github.droidworksstudio.common.showLongToast
import com.github.droidworksstudio.launcher.R
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) {
@@ -62,7 +64,9 @@ class FingerprintHelper @Inject constructor(private val fragment: Fragment) {
val biometricPrompt =
BiometricPrompt(fragment, executor, object : BiometricPrompt.AuthenticationCallback() {
override fun onAuthenticationSucceeded(result: BiometricPrompt.AuthenticationResult) {
fragment.findNavController().navigate(runNavigation)
val actionTypeNavOptions: NavOptions =
appHelper.getActionType(Constants.Swipe.DoubleTap)
fragment.findNavController().navigate(runNavigation, null, actionTypeNavOptions)
}
override fun onAuthenticationFailed() {

View File

@@ -342,7 +342,7 @@ class HomeFragment : Fragment(),
}
Constants.Action.ShowAppList -> {
val actionTypeNavOptions: NavOptions = getActionType(actionType)
val actionTypeNavOptions: NavOptions = appHelper.getActionType(actionType)
Handler(Looper.getMainLooper()).post {
findNavController().navigate(
R.id.action_HomeFragment_to_DrawFragment,
@@ -354,7 +354,7 @@ class HomeFragment : Fragment(),
Constants.Action.ShowFavoriteList -> {
val actionTypeNavOptions: NavOptions = getActionType(actionType)
val actionTypeNavOptions: NavOptions = appHelper.getActionType(actionType)
Handler(Looper.getMainLooper()).post {
findNavController().navigate(
R.id.action_HomeFragment_to_FavoriteFragment,
@@ -374,7 +374,7 @@ class HomeFragment : Fragment(),
}
Constants.Action.ShowWidgets -> {
val actionTypeNavOptions: NavOptions = getActionType(actionType)
val actionTypeNavOptions: NavOptions = appHelper.getActionType(actionType)
Handler(Looper.getMainLooper()).post {
findNavController().navigate(
R.id.action_HomeFragment_to_WidgetsFragment,
@@ -398,55 +398,6 @@ class HomeFragment : Fragment(),
}
}
private fun getActionType(actionType: Constants.Swipe): NavOptions {
return when (actionType) {
Constants.Swipe.DoubleTap -> {
NavOptions.Builder()
.setEnterAnim(R.anim.zoom_in)
.setExitAnim(R.anim.zoom_out)
.setPopEnterAnim(R.anim.zoom_in)
.setPopExitAnim(R.anim.zoom_out)
.build()
}
Constants.Swipe.Up -> {
NavOptions.Builder()
.setEnterAnim(R.anim.slide_in_top)
.setExitAnim(R.anim.slide_out_top)
.setPopEnterAnim(R.anim.slide_in_bottom)
.setPopExitAnim(R.anim.slide_out_bottom)
.build()
}
Constants.Swipe.Down -> {
NavOptions.Builder()
.setEnterAnim(R.anim.slide_in_bottom)
.setExitAnim(R.anim.slide_out_bottom)
.setPopEnterAnim(R.anim.slide_in_top)
.setPopExitAnim(R.anim.slide_out_top)
.build()
}
Constants.Swipe.Left -> {
NavOptions.Builder()
.setEnterAnim(R.anim.slide_in_right)
.setExitAnim(R.anim.slide_out_right)
.setPopEnterAnim(R.anim.slide_in_left)
.setPopExitAnim(R.anim.slide_out_left)
.build()
}
Constants.Swipe.Right -> {
NavOptions.Builder()
.setEnterAnim(R.anim.slide_in_left)
.setExitAnim(R.anim.slide_out_left)
.setPopEnterAnim(R.anim.slide_in_right)
.setPopExitAnim(R.anim.slide_out_right)
.build()
}
}
}
private fun trySettings() {
lifecycleScope.launch(Dispatchers.Main) {
biometricPrompt = BiometricPrompt(this@HomeFragment,
@@ -471,7 +422,13 @@ class HomeFragment : Fragment(),
}
override fun onAuthenticationSucceeded(result: BiometricPrompt.AuthenticationResult) {
findNavController().navigate(R.id.action_HomeFragment_to_SettingsFragment)
val actionTypeNavOptions: NavOptions =
appHelper.getActionType(Constants.Swipe.DoubleTap)
findNavController().navigate(
R.id.action_HomeFragment_to_SettingsFragment,
null,
actionTypeNavOptions
)
}
override fun onAuthenticationFailed() {
@@ -482,7 +439,13 @@ class HomeFragment : Fragment(),
if (preferenceHelper.settingsLock) {
fingerHelper.startFingerprintSettingsAuth(R.id.action_HomeFragment_to_SettingsFragment)
} else {
findNavController().navigate(R.id.action_HomeFragment_to_SettingsFragment)
val actionTypeNavOptions: NavOptions =
appHelper.getActionType(Constants.Swipe.DoubleTap)
findNavController().navigate(
R.id.action_HomeFragment_to_SettingsFragment,
null,
actionTypeNavOptions
)
}
}
}