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.view.WindowInsets
import android.widget.TextView import android.widget.TextView
import androidx.appcompat.widget.LinearLayoutCompat import androidx.appcompat.widget.LinearLayoutCompat
import androidx.navigation.NavOptions
import com.github.droidworksstudio.common.backupSharedPreferences import com.github.droidworksstudio.common.backupSharedPreferences
import com.github.droidworksstudio.common.restoreSharedPreferences import com.github.droidworksstudio.common.restoreSharedPreferences
import com.github.droidworksstudio.common.showLongToast import com.github.droidworksstudio.common.showLongToast
@@ -192,4 +193,53 @@ class AppHelper @Inject constructor() {
fun restoreSharedPreferences(context: Context) { fun restoreSharedPreferences(context: Context) {
context.restoreSharedPreferences(context.getString(R.string.settings_backups_file)) 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.biometric.BiometricPrompt
import androidx.core.content.ContextCompat import androidx.core.content.ContextCompat
import androidx.fragment.app.Fragment import androidx.fragment.app.Fragment
import androidx.navigation.NavOptions
import androidx.navigation.fragment.findNavController import androidx.navigation.fragment.findNavController
import com.github.droidworksstudio.common.showLongToast import com.github.droidworksstudio.common.showLongToast
import com.github.droidworksstudio.launcher.R import com.github.droidworksstudio.launcher.R
import com.github.droidworksstudio.launcher.data.entities.AppInfo import com.github.droidworksstudio.launcher.data.entities.AppInfo
import com.github.droidworksstudio.launcher.utils.Constants
import javax.inject.Inject import javax.inject.Inject
class FingerprintHelper @Inject constructor(private val fragment: Fragment) { class FingerprintHelper @Inject constructor(private val fragment: Fragment) {
@@ -62,7 +64,9 @@ class FingerprintHelper @Inject constructor(private val fragment: Fragment) {
val biometricPrompt = val biometricPrompt =
BiometricPrompt(fragment, executor, object : BiometricPrompt.AuthenticationCallback() { BiometricPrompt(fragment, executor, object : BiometricPrompt.AuthenticationCallback() {
override fun onAuthenticationSucceeded(result: BiometricPrompt.AuthenticationResult) { 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() { override fun onAuthenticationFailed() {

View File

@@ -342,7 +342,7 @@ class HomeFragment : Fragment(),
} }
Constants.Action.ShowAppList -> { Constants.Action.ShowAppList -> {
val actionTypeNavOptions: NavOptions = getActionType(actionType) val actionTypeNavOptions: NavOptions = appHelper.getActionType(actionType)
Handler(Looper.getMainLooper()).post { Handler(Looper.getMainLooper()).post {
findNavController().navigate( findNavController().navigate(
R.id.action_HomeFragment_to_DrawFragment, R.id.action_HomeFragment_to_DrawFragment,
@@ -354,7 +354,7 @@ class HomeFragment : Fragment(),
Constants.Action.ShowFavoriteList -> { Constants.Action.ShowFavoriteList -> {
val actionTypeNavOptions: NavOptions = getActionType(actionType) val actionTypeNavOptions: NavOptions = appHelper.getActionType(actionType)
Handler(Looper.getMainLooper()).post { Handler(Looper.getMainLooper()).post {
findNavController().navigate( findNavController().navigate(
R.id.action_HomeFragment_to_FavoriteFragment, R.id.action_HomeFragment_to_FavoriteFragment,
@@ -374,7 +374,7 @@ class HomeFragment : Fragment(),
} }
Constants.Action.ShowWidgets -> { Constants.Action.ShowWidgets -> {
val actionTypeNavOptions: NavOptions = getActionType(actionType) val actionTypeNavOptions: NavOptions = appHelper.getActionType(actionType)
Handler(Looper.getMainLooper()).post { Handler(Looper.getMainLooper()).post {
findNavController().navigate( findNavController().navigate(
R.id.action_HomeFragment_to_WidgetsFragment, 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() { private fun trySettings() {
lifecycleScope.launch(Dispatchers.Main) { lifecycleScope.launch(Dispatchers.Main) {
biometricPrompt = BiometricPrompt(this@HomeFragment, biometricPrompt = BiometricPrompt(this@HomeFragment,
@@ -471,7 +422,13 @@ class HomeFragment : Fragment(),
} }
override fun onAuthenticationSucceeded(result: BiometricPrompt.AuthenticationResult) { 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() { override fun onAuthenticationFailed() {
@@ -482,7 +439,13 @@ class HomeFragment : Fragment(),
if (preferenceHelper.settingsLock) { if (preferenceHelper.settingsLock) {
fingerHelper.startFingerprintSettingsAuth(R.id.action_HomeFragment_to_SettingsFragment) fingerHelper.startFingerprintSettingsAuth(R.id.action_HomeFragment_to_SettingsFragment)
} else { } 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
)
} }
} }
} }