feat: remove navigation transition when clicking buttons on the bottom bar

This commit is contained in:
Steven Xu 2025-03-16 16:15:22 +11:00 committed by John Wu
parent 1fa318dc8c
commit bba0373808
2 changed files with 23 additions and 1 deletions

View File

@ -5,6 +5,8 @@ import androidx.databinding.ViewDataBinding
import androidx.navigation.NavController import androidx.navigation.NavController
import androidx.navigation.NavDirections import androidx.navigation.NavDirections
import androidx.navigation.fragment.NavHostFragment import androidx.navigation.fragment.NavHostFragment
import androidx.navigation.navOptions
import com.topjohnwu.magisk.utils.AccessibilityUtils
abstract class NavigationActivity<Binding : ViewDataBinding> : UIActivity<Binding>() { abstract class NavigationActivity<Binding : ViewDataBinding> : UIActivity<Binding>() {
@ -32,6 +34,12 @@ abstract class NavigationActivity<Binding : ViewDataBinding> : UIActivity<Bindin
} }
fun NavDirections.navigate() { fun NavDirections.navigate() {
navigation.navigate(this) if (AccessibilityUtils.isAnimationEnabled(contentResolver)) {
navigation.navigate(this)
} else {
navigation.navigate(this, navOptions {
anim { enter = 0; exit = 0; popEnter = 0; popExit = 0 }
})
}
} }
} }

View File

@ -0,0 +1,14 @@
package com.topjohnwu.magisk.utils
import android.content.ContentResolver
import android.provider.Settings
class AccessibilityUtils {
companion object {
fun isAnimationEnabled(cr: ContentResolver): Boolean {
return !(Settings.Global.getFloat(cr, Settings.Global.ANIMATOR_DURATION_SCALE, 1.0f) == 0.0f
&& Settings.Global.getFloat(cr, Settings.Global.TRANSITION_ANIMATION_SCALE, 1.0f) == 0.0f
&& Settings.Global.getFloat(cr, Settings.Global.WINDOW_ANIMATION_SCALE, 1.0f) == 0.0f)
}
}
}