Better screen transitions (#4285)

I mostly took Android 13 transitions and removed the sliding for the
"deeper"/background one because "extend" animations are not available
until Android 13.

Here are the original ones:
https://cs.android.com/android/platform/superproject/+/android-13.0.0_r8:frameworks/base/core/res/res/anim/;bpv=1

Initially I've made separate versions fro Android 13+ that are close to
the original but I think it's not worth it to keep both.



https://github.com/tuskyapp/Tusky/assets/3099142/616fc40c-f944-45b4-bf6f-167f62d30493
This commit is contained in:
Willow 2024-02-25 16:20:15 +01:00 committed by GitHub
commit c666a6b534
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
17 changed files with 153 additions and 42 deletions

View file

@ -126,7 +126,7 @@ class LoginActivity : BaseActivity(), Injectable {
override fun finish() {
super.finish()
if (isAdditionalLogin() || isAccountMigration()) {
overridePendingTransition(R.anim.slide_from_left, R.anim.slide_to_right)
overridePendingTransition(R.anim.actitivity_close_enter, R.anim.activity_close_exit)
}
}

View file

@ -115,10 +115,10 @@ class PreferencesActivity :
fragment.setTargetFragment(caller, 0)
supportFragmentManager.commit {
setCustomAnimations(
R.anim.slide_from_right,
R.anim.slide_to_left,
R.anim.slide_from_left,
R.anim.slide_to_right
R.anim.activity_open_enter,
R.anim.activity_open_exit,
R.anim.actitivity_close_enter,
R.anim.activity_close_exit
)
replace(R.id.fragment_container, fragment)
addToBackStack(null)

View file

@ -16,7 +16,11 @@
package com.keylesspalace.tusky.components.preference
import android.os.Bundle
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import androidx.preference.PreferenceFragmentCompat
import com.google.android.material.color.MaterialColors
import com.keylesspalace.tusky.R
import com.keylesspalace.tusky.di.Injectable
import com.keylesspalace.tusky.settings.AccountPreferenceDataStore
@ -31,6 +35,17 @@ class TabFilterPreferencesFragment : PreferenceFragmentCompat(), Injectable {
@Inject
lateinit var accountPreferenceDataStore: AccountPreferenceDataStore
override fun onCreateView(
inflater: LayoutInflater,
container: ViewGroup?,
savedInstanceState: Bundle?
): View {
// Give view a background color so transitions show up correctly
return super.onCreateView(inflater, container, savedInstanceState).also { view ->
view.setBackgroundColor(MaterialColors.getColor(view, android.R.attr.colorBackground))
}
}
override fun onCreatePreferences(savedInstanceState: Bundle?, rootKey: String?) {
makePreferenceScreen {
preferenceCategory(R.string.title_home) { category ->

View file

@ -429,10 +429,10 @@ class ViewThreadFragment :
parentFragmentManager.commit {
setCustomAnimations(
R.anim.slide_from_right,
R.anim.slide_to_left,
R.anim.slide_from_left,
R.anim.slide_to_right
R.anim.activity_open_enter,
R.anim.activity_open_exit,
R.anim.actitivity_close_enter,
R.anim.activity_close_exit
)
replace(R.id.fragment_container, viewEditsFragment, "ViewEditsFragment_$id")
addToBackStack(null)