TransitionManager.smali
.class public Landroid/support/transition/TransitionManager;
.super Ljava/lang/Object;
# annotations
.annotation system Ldalvik/annotation/MemberClasses;
value = {
Landroid/support/transition/TransitionManager$MultiListener;
}
.end annotation
# static fields
.field private static final LOG_TAG:Ljava/lang/String; = "TransitionManager"
.field private static sDefaultTransition:Landroid/support/transition/Transition;
.field private static sPendingTransitions:Ljava/util/ArrayList;
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/util/ArrayList",
"<",
"Landroid/view/ViewGroup;",
">;"
}
.end annotation
.end field
.field private static sRunningTransitions:Ljava/lang/ThreadLocal;
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/lang/ThreadLocal",
"<",
"Ljava/lang/ref/WeakReference",
"<",
"Landroid/support/v4/util/ArrayMap",
"<",
"Landroid/view/ViewGroup;",
"Ljava/util/ArrayList",
"<",
"Landroid/support/transition/Transition;",
">;>;>;>;"
}
.end annotation
.end field
# instance fields
.field private mScenePairTransitions:Landroid/support/v4/util/ArrayMap;
.annotation system Ldalvik/annotation/Signature;
value = {
"Landroid/support/v4/util/ArrayMap",
"<",
"Landroid/support/transition/Scene;",
"Landroid/support/v4/util/ArrayMap",
"<",
"Landroid/support/transition/Scene;",
"Landroid/support/transition/Transition;",
">;>;"
}
.end annotation
.end field
.field private mSceneTransitions:Landroid/support/v4/util/ArrayMap;
.annotation system Ldalvik/annotation/Signature;
value = {
"Landroid/support/v4/util/ArrayMap",
"<",
"Landroid/support/transition/Scene;",
"Landroid/support/transition/Transition;",
">;"
}
.end annotation
.end field
# direct methods
.method static constructor <clinit>()V
.registers 1
new-instance v0, Landroid/support/transition/AutoTransition;
invoke-direct {v0}, Landroid/support/transition/AutoTransition;-><init>()V
sput-object v0, Landroid/support/transition/TransitionManager;->sDefaultTransition:Landroid/support/transition/Transition;
new-instance v0, Ljava/lang/ThreadLocal;
invoke-direct {v0}, Ljava/lang/ThreadLocal;-><init>()V
sput-object v0, Landroid/support/transition/TransitionManager;->sRunningTransitions:Ljava/lang/ThreadLocal;
new-instance v0, Ljava/util/ArrayList;
invoke-direct {v0}, Ljava/util/ArrayList;-><init>()V
sput-object v0, Landroid/support/transition/TransitionManager;->sPendingTransitions:Ljava/util/ArrayList;
return-void
.end method
.method public constructor <init>()V
.registers 2
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
new-instance v0, Landroid/support/v4/util/ArrayMap;
invoke-direct {v0}, Landroid/support/v4/util/ArrayMap;-><init>()V
iput-object v0, p0, Landroid/support/transition/TransitionManager;->mSceneTransitions:Landroid/support/v4/util/ArrayMap;
new-instance v0, Landroid/support/v4/util/ArrayMap;
invoke-direct {v0}, Landroid/support/v4/util/ArrayMap;-><init>()V
iput-object v0, p0, Landroid/support/transition/TransitionManager;->mScenePairTransitions:Landroid/support/v4/util/ArrayMap;
return-void
.end method
.method static synthetic access$000()Ljava/util/ArrayList;
.registers 1
sget-object v0, Landroid/support/transition/TransitionManager;->sPendingTransitions:Ljava/util/ArrayList;
return-object v0
.end method
.method public static beginDelayedTransition(Landroid/view/ViewGroup;)V
.registers 2
.param p0 # Landroid/view/ViewGroup;
.annotation build Landroid/support/annotation/NonNull;
.end annotation
.end param
const/4 v0, 0x0
invoke-static {p0, v0}, Landroid/support/transition/TransitionManager;->beginDelayedTransition(Landroid/view/ViewGroup;Landroid/support/transition/Transition;)V
return-void
.end method
.method public static beginDelayedTransition(Landroid/view/ViewGroup;Landroid/support/transition/Transition;)V
.registers 4
.param p0 # Landroid/view/ViewGroup;
.annotation build Landroid/support/annotation/NonNull;
.end annotation
.end param
.param p1 # Landroid/support/transition/Transition;
.annotation build Landroid/support/annotation/Nullable;
.end annotation
.end param
sget-object v0, Landroid/support/transition/TransitionManager;->sPendingTransitions:Ljava/util/ArrayList;
invoke-virtual {v0, p0}, Ljava/util/ArrayList;->contains(Ljava/lang/Object;)Z
move-result v0
if-nez v0, :cond_25
invoke-static {p0}, Landroid/support/v4/view/ViewCompat;->isLaidOut(Landroid/view/View;)Z
move-result v0
if-eqz v0, :cond_25
sget-object v0, Landroid/support/transition/TransitionManager;->sPendingTransitions:Ljava/util/ArrayList;
invoke-virtual {v0, p0}, Ljava/util/ArrayList;->add(Ljava/lang/Object;)Z
if-nez p1, :cond_17
sget-object p1, Landroid/support/transition/TransitionManager;->sDefaultTransition:Landroid/support/transition/Transition;
:cond_17
invoke-virtual {p1}, Landroid/support/transition/Transition;->clone()Landroid/support/transition/Transition;
move-result-object v0
invoke-static {p0, v0}, Landroid/support/transition/TransitionManager;->sceneChangeSetup(Landroid/view/ViewGroup;Landroid/support/transition/Transition;)V
const/4 v1, 0x0
invoke-static {p0, v1}, Landroid/support/transition/Scene;->setCurrentScene(Landroid/view/View;Landroid/support/transition/Scene;)V
invoke-static {p0, v0}, Landroid/support/transition/TransitionManager;->sceneChangeRunTransition(Landroid/view/ViewGroup;Landroid/support/transition/Transition;)V
:cond_25
return-void
.end method
.method private static changeScene(Landroid/support/transition/Scene;Landroid/support/transition/Transition;)V
.registers 5
invoke-virtual {p0}, Landroid/support/transition/Scene;->getSceneRoot()Landroid/view/ViewGroup;
move-result-object v0
sget-object v1, Landroid/support/transition/TransitionManager;->sPendingTransitions:Ljava/util/ArrayList;
invoke-virtual {v1, v0}, Ljava/util/ArrayList;->contains(Ljava/lang/Object;)Z
move-result v1
if-nez v1, :cond_11
if-nez p1, :cond_12
invoke-virtual {p0}, Landroid/support/transition/Scene;->enter()V
:cond_11
:goto_11
return-void
:cond_12
sget-object v1, Landroid/support/transition/TransitionManager;->sPendingTransitions:Ljava/util/ArrayList;
invoke-virtual {v1, v0}, Ljava/util/ArrayList;->add(Ljava/lang/Object;)Z
invoke-virtual {p1}, Landroid/support/transition/Transition;->clone()Landroid/support/transition/Transition;
move-result-object v1
invoke-virtual {v1, v0}, Landroid/support/transition/Transition;->setSceneRoot(Landroid/view/ViewGroup;)Landroid/support/transition/Transition;
invoke-static {v0}, Landroid/support/transition/Scene;->getCurrentScene(Landroid/view/View;)Landroid/support/transition/Scene;
move-result-object v2
if-eqz v2, :cond_2e
invoke-virtual {v2}, Landroid/support/transition/Scene;->isCreatedFromLayoutResource()Z
move-result v2
if-eqz v2, :cond_2e
const/4 v2, 0x1
invoke-virtual {v1, v2}, Landroid/support/transition/Transition;->setCanRemoveViews(Z)V
:cond_2e
invoke-static {v0, v1}, Landroid/support/transition/TransitionManager;->sceneChangeSetup(Landroid/view/ViewGroup;Landroid/support/transition/Transition;)V
invoke-virtual {p0}, Landroid/support/transition/Scene;->enter()V
invoke-static {v0, v1}, Landroid/support/transition/TransitionManager;->sceneChangeRunTransition(Landroid/view/ViewGroup;Landroid/support/transition/Transition;)V
goto :goto_11
.end method
.method public static endTransitions(Landroid/view/ViewGroup;)V
.registers 4
sget-object v0, Landroid/support/transition/TransitionManager;->sPendingTransitions:Ljava/util/ArrayList;
invoke-virtual {v0, p0}, Ljava/util/ArrayList;->remove(Ljava/lang/Object;)Z
invoke-static {}, Landroid/support/transition/TransitionManager;->getRunningTransitions()Landroid/support/v4/util/ArrayMap;
move-result-object v0
invoke-virtual {v0, p0}, Landroid/support/v4/util/ArrayMap;->get(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v0
check-cast v0, Ljava/util/ArrayList;
if-eqz v0, :cond_32
invoke-virtual {v0}, Ljava/util/ArrayList;->isEmpty()Z
move-result v1
if-nez v1, :cond_32
new-instance v2, Ljava/util/ArrayList;
invoke-direct {v2, v0}, Ljava/util/ArrayList;-><init>(Ljava/util/Collection;)V
invoke-virtual {v2}, Ljava/util/ArrayList;->size()I
move-result v0
add-int/lit8 v0, v0, -0x1
move v1, v0
:goto_23
if-ltz v1, :cond_32
invoke-virtual {v2, v1}, Ljava/util/ArrayList;->get(I)Ljava/lang/Object;
move-result-object v0
check-cast v0, Landroid/support/transition/Transition;
invoke-virtual {v0, p0}, Landroid/support/transition/Transition;->forceToEnd(Landroid/view/ViewGroup;)V
add-int/lit8 v0, v1, -0x1
move v1, v0
goto :goto_23
:cond_32
return-void
.end method
.method static getRunningTransitions()Landroid/support/v4/util/ArrayMap;
.registers 2
.annotation system Ldalvik/annotation/Signature;
value = {
"()",
"Landroid/support/v4/util/ArrayMap",
"<",
"Landroid/view/ViewGroup;",
"Ljava/util/ArrayList",
"<",
"Landroid/support/transition/Transition;",
">;>;"
}
.end annotation
sget-object v0, Landroid/support/transition/TransitionManager;->sRunningTransitions:Ljava/lang/ThreadLocal;
invoke-virtual {v0}, Ljava/lang/ThreadLocal;->get()Ljava/lang/Object;
move-result-object v0
check-cast v0, Ljava/lang/ref/WeakReference;
if-eqz v0, :cond_10
invoke-virtual {v0}, Ljava/lang/ref/WeakReference;->get()Ljava/lang/Object;
move-result-object v1
if-nez v1, :cond_1f
:cond_10
new-instance v1, Landroid/support/v4/util/ArrayMap;
invoke-direct {v1}, Landroid/support/v4/util/ArrayMap;-><init>()V
new-instance v0, Ljava/lang/ref/WeakReference;
invoke-direct {v0, v1}, Ljava/lang/ref/WeakReference;-><init>(Ljava/lang/Object;)V
sget-object v1, Landroid/support/transition/TransitionManager;->sRunningTransitions:Ljava/lang/ThreadLocal;
invoke-virtual {v1, v0}, Ljava/lang/ThreadLocal;->set(Ljava/lang/Object;)V
:cond_1f
invoke-virtual {v0}, Ljava/lang/ref/WeakReference;->get()Ljava/lang/Object;
move-result-object v0
check-cast v0, Landroid/support/v4/util/ArrayMap;
return-object v0
.end method
.method private getTransition(Landroid/support/transition/Scene;)Landroid/support/transition/Transition;
.registers 4
invoke-virtual {p1}, Landroid/support/transition/Scene;->getSceneRoot()Landroid/view/ViewGroup;
move-result-object v0
if-eqz v0, :cond_1f
invoke-static {v0}, Landroid/support/transition/Scene;->getCurrentScene(Landroid/view/View;)Landroid/support/transition/Scene;
move-result-object v1
if-eqz v1, :cond_1f
iget-object v0, p0, Landroid/support/transition/TransitionManager;->mScenePairTransitions:Landroid/support/v4/util/ArrayMap;
invoke-virtual {v0, p1}, Landroid/support/v4/util/ArrayMap;->get(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v0
check-cast v0, Landroid/support/v4/util/ArrayMap;
if-eqz v0, :cond_1f
invoke-virtual {v0, v1}, Landroid/support/v4/util/ArrayMap;->get(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v0
check-cast v0, Landroid/support/transition/Transition;
if-eqz v0, :cond_1f
:cond_1e
:goto_1e
return-object v0
:cond_1f
iget-object v0, p0, Landroid/support/transition/TransitionManager;->mSceneTransitions:Landroid/support/v4/util/ArrayMap;
invoke-virtual {v0, p1}, Landroid/support/v4/util/ArrayMap;->get(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v0
check-cast v0, Landroid/support/transition/Transition;
if-nez v0, :cond_1e
sget-object v0, Landroid/support/transition/TransitionManager;->sDefaultTransition:Landroid/support/transition/Transition;
goto :goto_1e
.end method
.method public static go(Landroid/support/transition/Scene;)V
.registers 2
.param p0 # Landroid/support/transition/Scene;
.annotation build Landroid/support/annotation/NonNull;
.end annotation
.end param
sget-object v0, Landroid/support/transition/TransitionManager;->sDefaultTransition:Landroid/support/transition/Transition;
invoke-static {p0, v0}, Landroid/support/transition/TransitionManager;->changeScene(Landroid/support/transition/Scene;Landroid/support/transition/Transition;)V
return-void
.end method
.method public static go(Landroid/support/transition/Scene;Landroid/support/transition/Transition;)V
.registers 2
.param p0 # Landroid/support/transition/Scene;
.annotation build Landroid/support/annotation/NonNull;
.end annotation
.end param
.param p1 # Landroid/support/transition/Transition;
.annotation build Landroid/support/annotation/Nullable;
.end annotation
.end param
invoke-static {p0, p1}, Landroid/support/transition/TransitionManager;->changeScene(Landroid/support/transition/Scene;Landroid/support/transition/Transition;)V
return-void
.end method
.method private static sceneChangeRunTransition(Landroid/view/ViewGroup;Landroid/support/transition/Transition;)V
.registers 4
if-eqz p1, :cond_13
if-eqz p0, :cond_13
new-instance v0, Landroid/support/transition/TransitionManager$MultiListener;
invoke-direct {v0, p1, p0}, Landroid/support/transition/TransitionManager$MultiListener;-><init>(Landroid/support/transition/Transition;Landroid/view/ViewGroup;)V
invoke-virtual {p0, v0}, Landroid/view/ViewGroup;->addOnAttachStateChangeListener(Landroid/view/View$OnAttachStateChangeListener;)V
invoke-virtual {p0}, Landroid/view/ViewGroup;->getViewTreeObserver()Landroid/view/ViewTreeObserver;
move-result-object v1
invoke-virtual {v1, v0}, Landroid/view/ViewTreeObserver;->addOnPreDrawListener(Landroid/view/ViewTreeObserver$OnPreDrawListener;)V
:cond_13
return-void
.end method
.method private static sceneChangeSetup(Landroid/view/ViewGroup;Landroid/support/transition/Transition;)V
.registers 4
invoke-static {}, Landroid/support/transition/TransitionManager;->getRunningTransitions()Landroid/support/v4/util/ArrayMap;
move-result-object v0
invoke-virtual {v0, p0}, Landroid/support/v4/util/ArrayMap;->get(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v0
check-cast v0, Ljava/util/ArrayList;
if-eqz v0, :cond_26
invoke-virtual {v0}, Ljava/util/ArrayList;->size()I
move-result v1
if-lez v1, :cond_26
invoke-virtual {v0}, Ljava/util/ArrayList;->iterator()Ljava/util/Iterator;
move-result-object v1
:goto_16
invoke-interface {v1}, Ljava/util/Iterator;->hasNext()Z
move-result v0
if-eqz v0, :cond_26
invoke-interface {v1}, Ljava/util/Iterator;->next()Ljava/lang/Object;
move-result-object v0
check-cast v0, Landroid/support/transition/Transition;
invoke-virtual {v0, p0}, Landroid/support/transition/Transition;->pause(Landroid/view/View;)V
goto :goto_16
:cond_26
if-eqz p1, :cond_2c
const/4 v0, 0x1
invoke-virtual {p1, p0, v0}, Landroid/support/transition/Transition;->captureValues(Landroid/view/ViewGroup;Z)V
:cond_2c
invoke-static {p0}, Landroid/support/transition/Scene;->getCurrentScene(Landroid/view/View;)Landroid/support/transition/Scene;
move-result-object v0
if-eqz v0, :cond_35
invoke-virtual {v0}, Landroid/support/transition/Scene;->exit()V
:cond_35
return-void
.end method
# virtual methods
.method public setTransition(Landroid/support/transition/Scene;Landroid/support/transition/Scene;Landroid/support/transition/Transition;)V
.registers 6
.param p1 # Landroid/support/transition/Scene;
.annotation build Landroid/support/annotation/NonNull;
.end annotation
.end param
.param p2 # Landroid/support/transition/Scene;
.annotation build Landroid/support/annotation/NonNull;
.end annotation
.end param
.param p3 # Landroid/support/transition/Transition;
.annotation build Landroid/support/annotation/Nullable;
.end annotation
.end param
iget-object v0, p0, Landroid/support/transition/TransitionManager;->mScenePairTransitions:Landroid/support/v4/util/ArrayMap;
invoke-virtual {v0, p2}, Landroid/support/v4/util/ArrayMap;->get(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v0
check-cast v0, Landroid/support/v4/util/ArrayMap;
if-nez v0, :cond_14
new-instance v0, Landroid/support/v4/util/ArrayMap;
invoke-direct {v0}, Landroid/support/v4/util/ArrayMap;-><init>()V
iget-object v1, p0, Landroid/support/transition/TransitionManager;->mScenePairTransitions:Landroid/support/v4/util/ArrayMap;
invoke-virtual {v1, p2, v0}, Landroid/support/v4/util/ArrayMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
:cond_14
invoke-virtual {v0, p1, p3}, Landroid/support/v4/util/ArrayMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
return-void
.end method
.method public setTransition(Landroid/support/transition/Scene;Landroid/support/transition/Transition;)V
.registers 4
.param p1 # Landroid/support/transition/Scene;
.annotation build Landroid/support/annotation/NonNull;
.end annotation
.end param
.param p2 # Landroid/support/transition/Transition;
.annotation build Landroid/support/annotation/Nullable;
.end annotation
.end param
iget-object v0, p0, Landroid/support/transition/TransitionManager;->mSceneTransitions:Landroid/support/v4/util/ArrayMap;
invoke-virtual {v0, p1, p2}, Landroid/support/v4/util/ArrayMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
return-void
.end method
.method public transitionTo(Landroid/support/transition/Scene;)V
.registers 3
.param p1 # Landroid/support/transition/Scene;
.annotation build Landroid/support/annotation/NonNull;
.end annotation
.end param
invoke-direct {p0, p1}, Landroid/support/transition/TransitionManager;->getTransition(Landroid/support/transition/Scene;)Landroid/support/transition/Transition;
move-result-object v0
invoke-static {p1, v0}, Landroid/support/transition/TransitionManager;->changeScene(Landroid/support/transition/Scene;Landroid/support/transition/Transition;)V
return-void
.end method