Revision control
Copy as Markdown
/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
package org.mozilla.focus.fragment
import android.content.res.Resources
import android.view.animation.Animation
import android.view.animation.AnimationSet
import android.view.animation.AnimationUtils
import androidx.core.view.isInvisible
import androidx.fragment.app.Fragment
import org.mozilla.focus.ext.hideToolbar
import org.mozilla.focus.ext.requireComponents
import org.mozilla.focus.state.Screen
abstract class BaseFragment : Fragment() {
private var animationSet: AnimationSet? = null
override fun onResume() {
super.onResume()
hideToolbar()
view?.isInvisible = requireComponents.appStore.state.screen == Screen.Locked()
}
fun cancelAnimation() {
if (animationSet != null) {
animationSet!!.duration = 0
animationSet!!.cancel()
}
}
override fun onPause() {
super.onPause()
view?.isInvisible = requireComponents.appStore.state.screen == Screen.Locked()
}
@Suppress("SwallowedException")
override fun onCreateAnimation(transit: Int, enter: Boolean, nextAnim: Int): Animation? {
var animation = super.onCreateAnimation(transit, enter, nextAnim)
if (animation == null && nextAnim != 0) {
animation = try {
AnimationUtils.loadAnimation(activity, nextAnim)
} catch (e: Resources.NotFoundException) {
return null
}
}
return if (animation != null) {
val animSet = AnimationSet(true)
animSet.addAnimation(animation)
animationSet = animSet
animSet
} else {
null
}
}
}