discord-jadx/app/src/main/java/androidx/transition/TransitionManager.java

221 lines
9.3 KiB
Java

package androidx.transition;
import android.view.View;
import android.view.ViewGroup;
import android.view.ViewTreeObserver;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.collection.ArrayMap;
import androidx.core.view.ViewCompat;
import java.lang.ref.WeakReference;
import java.util.ArrayList;
import java.util.Iterator;
public class TransitionManager {
private static final String LOG_TAG = "TransitionManager";
private static Transition sDefaultTransition = new AutoTransition();
public static ArrayList<ViewGroup> sPendingTransitions = new ArrayList<>();
private static ThreadLocal<WeakReference<ArrayMap<ViewGroup, ArrayList<Transition>>>> sRunningTransitions = new ThreadLocal<>();
private ArrayMap<Scene, ArrayMap<Scene, Transition>> mScenePairTransitions = new ArrayMap<>();
private ArrayMap<Scene, Transition> mSceneTransitions = new ArrayMap<>();
public static class MultiListener implements ViewTreeObserver.OnPreDrawListener, View.OnAttachStateChangeListener {
public ViewGroup mSceneRoot;
public Transition mTransition;
/* renamed from: androidx.transition.TransitionManager$MultiListener$1 reason: invalid class name */
public class AnonymousClass1 extends TransitionListenerAdapter {
public final /* synthetic */ ArrayMap val$runningTransitions;
public AnonymousClass1(ArrayMap arrayMap) {
this.val$runningTransitions = arrayMap;
}
@Override // androidx.transition.TransitionListenerAdapter, androidx.transition.Transition.TransitionListener
public void onTransitionEnd(@NonNull Transition transition) {
this.val$runningTransitions.get(MultiListener.this.mSceneRoot).remove(transition);
transition.removeListener(this);
}
}
public MultiListener(Transition transition, ViewGroup viewGroup) {
this.mTransition = transition;
this.mSceneRoot = viewGroup;
}
private void removeListeners() {
this.mSceneRoot.getViewTreeObserver().removeOnPreDrawListener(this);
this.mSceneRoot.removeOnAttachStateChangeListener(this);
}
@Override // android.view.ViewTreeObserver.OnPreDrawListener
public boolean onPreDraw() {
removeListeners();
if (!TransitionManager.sPendingTransitions.remove(this.mSceneRoot)) {
return true;
}
ArrayMap<ViewGroup, ArrayList<Transition>> runningTransitions = TransitionManager.getRunningTransitions();
ArrayList<Transition> arrayList = runningTransitions.get(this.mSceneRoot);
ArrayList arrayList2 = null;
if (arrayList == null) {
arrayList = new ArrayList<>();
runningTransitions.put(this.mSceneRoot, arrayList);
} else if (arrayList.size() > 0) {
arrayList2 = new ArrayList(arrayList);
}
arrayList.add(this.mTransition);
this.mTransition.addListener(new AnonymousClass1(runningTransitions));
this.mTransition.captureValues(this.mSceneRoot, false);
if (arrayList2 != null) {
Iterator it = arrayList2.iterator();
while (it.hasNext()) {
((Transition) it.next()).resume(this.mSceneRoot);
}
}
this.mTransition.playTransition(this.mSceneRoot);
return true;
}
@Override // android.view.View.OnAttachStateChangeListener
public void onViewAttachedToWindow(View view) {
}
@Override // android.view.View.OnAttachStateChangeListener
public void onViewDetachedFromWindow(View view) {
removeListeners();
TransitionManager.sPendingTransitions.remove(this.mSceneRoot);
ArrayList<Transition> arrayList = TransitionManager.getRunningTransitions().get(this.mSceneRoot);
if (arrayList != null && arrayList.size() > 0) {
Iterator<Transition> it = arrayList.iterator();
while (it.hasNext()) {
it.next().resume(this.mSceneRoot);
}
}
this.mTransition.clearValues(true);
}
}
public static void beginDelayedTransition(@NonNull ViewGroup viewGroup) {
beginDelayedTransition(viewGroup, null);
}
public static void beginDelayedTransition(@NonNull ViewGroup viewGroup, @Nullable Transition transition) {
if (!sPendingTransitions.contains(viewGroup) && ViewCompat.isLaidOut(viewGroup)) {
sPendingTransitions.add(viewGroup);
if (transition == null) {
transition = sDefaultTransition;
}
Transition clone = transition.clone();
sceneChangeSetup(viewGroup, clone);
Scene.setCurrentScene(viewGroup, null);
sceneChangeRunTransition(viewGroup, clone);
}
}
private static void changeScene(Scene scene, Transition transition) {
ViewGroup sceneRoot = scene.getSceneRoot();
if (!sPendingTransitions.contains(sceneRoot)) {
Scene currentScene = Scene.getCurrentScene(sceneRoot);
if (transition == null) {
if (currentScene != null) {
currentScene.exit();
}
scene.enter();
return;
}
sPendingTransitions.add(sceneRoot);
Transition clone = transition.clone();
clone.setSceneRoot(sceneRoot);
if (currentScene != null && currentScene.isCreatedFromLayoutResource()) {
clone.setCanRemoveViews(true);
}
sceneChangeSetup(sceneRoot, clone);
scene.enter();
sceneChangeRunTransition(sceneRoot, clone);
}
}
public static void endTransitions(ViewGroup viewGroup) {
sPendingTransitions.remove(viewGroup);
ArrayList<Transition> arrayList = getRunningTransitions().get(viewGroup);
if (!(arrayList == null || arrayList.isEmpty())) {
ArrayList arrayList2 = new ArrayList(arrayList);
for (int size = arrayList2.size() - 1; size >= 0; size--) {
((Transition) arrayList2.get(size)).forceToEnd(viewGroup);
}
}
}
public static ArrayMap<ViewGroup, ArrayList<Transition>> getRunningTransitions() {
ArrayMap<ViewGroup, ArrayList<Transition>> arrayMap;
WeakReference<ArrayMap<ViewGroup, ArrayList<Transition>>> weakReference = sRunningTransitions.get();
if (weakReference != null && (arrayMap = weakReference.get()) != null) {
return arrayMap;
}
ArrayMap<ViewGroup, ArrayList<Transition>> arrayMap2 = new ArrayMap<>();
sRunningTransitions.set(new WeakReference<>(arrayMap2));
return arrayMap2;
}
private Transition getTransition(Scene scene) {
Scene currentScene;
ArrayMap<Scene, Transition> arrayMap;
Transition transition;
ViewGroup sceneRoot = scene.getSceneRoot();
if (sceneRoot != null && (currentScene = Scene.getCurrentScene(sceneRoot)) != null && (arrayMap = this.mScenePairTransitions.get(scene)) != null && (transition = arrayMap.get(currentScene)) != null) {
return transition;
}
Transition transition2 = this.mSceneTransitions.get(scene);
return transition2 != null ? transition2 : sDefaultTransition;
}
public static void go(@NonNull Scene scene) {
changeScene(scene, sDefaultTransition);
}
public static void go(@NonNull Scene scene, @Nullable Transition transition) {
changeScene(scene, transition);
}
private static void sceneChangeRunTransition(ViewGroup viewGroup, Transition transition) {
if (transition != null && viewGroup != null) {
MultiListener multiListener = new MultiListener(transition, viewGroup);
viewGroup.addOnAttachStateChangeListener(multiListener);
viewGroup.getViewTreeObserver().addOnPreDrawListener(multiListener);
}
}
private static void sceneChangeSetup(ViewGroup viewGroup, Transition transition) {
ArrayList<Transition> arrayList = getRunningTransitions().get(viewGroup);
if (arrayList != null && arrayList.size() > 0) {
Iterator<Transition> it = arrayList.iterator();
while (it.hasNext()) {
it.next().pause(viewGroup);
}
}
if (transition != null) {
transition.captureValues(viewGroup, true);
}
Scene currentScene = Scene.getCurrentScene(viewGroup);
if (currentScene != null) {
currentScene.exit();
}
}
public void setTransition(@NonNull Scene scene, @NonNull Scene scene2, @Nullable Transition transition) {
ArrayMap<Scene, Transition> arrayMap = this.mScenePairTransitions.get(scene2);
if (arrayMap == null) {
arrayMap = new ArrayMap<>();
this.mScenePairTransitions.put(scene2, arrayMap);
}
arrayMap.put(scene, transition);
}
public void setTransition(@NonNull Scene scene, @Nullable Transition transition) {
this.mSceneTransitions.put(scene, transition);
}
public void transitionTo(@NonNull Scene scene) {
changeScene(scene, getTransition(scene));
}
}