.class public Landroidx/transition/Explode; .super Landroidx/transition/Visibility; .source "Explode.java" # static fields .field public static final b:Landroid/animation/TimeInterpolator; .field public static final c:Landroid/animation/TimeInterpolator; .field public static final d:Ljava/lang/String; = "android:explode:screenBounds" # instance fields .field public a:[I # direct methods .method public static constructor ()V .locals 1 .line 1 new-instance v0, Landroid/view/animation/DecelerateInterpolator; invoke-direct {v0}, Landroid/view/animation/DecelerateInterpolator;->()V sput-object v0, Landroidx/transition/Explode;->b:Landroid/animation/TimeInterpolator; .line 2 new-instance v0, Landroid/view/animation/AccelerateInterpolator; invoke-direct {v0}, Landroid/view/animation/AccelerateInterpolator;->()V sput-object v0, Landroidx/transition/Explode;->c:Landroid/animation/TimeInterpolator; return-void .end method .method public constructor ()V .locals 1 .line 1 invoke-direct {p0}, Landroidx/transition/Visibility;->()V const/4 v0, 0x2 new-array v0, v0, [I .line 2 iput-object v0, p0, Landroidx/transition/Explode;->a:[I .line 3 new-instance v0, Lh3/b; invoke-direct {v0}, Lh3/b;->()V invoke-virtual {p0, v0}, Landroidx/transition/Transition;->setPropagation(Lh3/n;)V return-void .end method .method public constructor (Landroid/content/Context;Landroid/util/AttributeSet;)V .locals 0 .line 4 invoke-direct {p0, p1, p2}, Landroidx/transition/Visibility;->(Landroid/content/Context;Landroid/util/AttributeSet;)V const/4 p1, 0x2 new-array p1, p1, [I .line 5 iput-object p1, p0, Landroidx/transition/Explode;->a:[I .line 6 new-instance p1, Lh3/b; invoke-direct {p1}, Lh3/b;->()V invoke-virtual {p0, p1}, Landroidx/transition/Transition;->setPropagation(Lh3/n;)V return-void .end method .method public static a(FF)F .locals 0 mul-float/2addr p0, p0 mul-float/2addr p1, p1 add-float/2addr p1, p0 float-to-double p0, p1 .line 1 invoke-static {p0, p1}, Ljava/lang/Math;->sqrt(D)D move-result-wide p0 double-to-float p0, p0 return p0 .end method .method public static b(Landroid/view/View;II)F .locals 1 .line 1 invoke-virtual {p0}, Landroid/view/View;->getWidth()I move-result v0 sub-int/2addr v0, p1 invoke-static {p1, v0}, Ljava/lang/Math;->max(II)I move-result p1 .line 2 invoke-virtual {p0}, Landroid/view/View;->getHeight()I move-result p0 sub-int/2addr p0, p2 invoke-static {p2, p0}, Ljava/lang/Math;->max(II)I move-result p0 int-to-float p1, p1 int-to-float p0, p0 .line 3 invoke-static {p1, p0}, Landroidx/transition/Explode;->a(FF)F move-result p0 return p0 .end method # virtual methods .method public final c(Landroid/view/View;Landroid/graphics/Rect;[I)V .locals 12 .line 1 iget-object v0, p0, Landroidx/transition/Explode;->a:[I invoke-virtual {p1, v0}, Landroid/view/View;->getLocationOnScreen([I)V .line 2 iget-object v0, p0, Landroidx/transition/Explode;->a:[I const/4 v1, 0x0 aget v2, v0, v1 const/4 v3, 0x1 .line 3 aget v0, v0, v3 .line 4 invoke-virtual {p0}, Landroidx/transition/Transition;->getEpicenter()Landroid/graphics/Rect; move-result-object v4 if-nez v4, :cond_0 .line 5 invoke-virtual {p1}, Landroid/view/View;->getWidth()I move-result v4 div-int/lit8 v4, v4, 0x2 add-int/2addr v4, v2 .line 6 invoke-virtual {p1}, Landroid/view/View;->getTranslationX()F move-result v5 invoke-static {v5}, Ljava/lang/Math;->round(F)I move-result v5 add-int/2addr v5, v4 .line 7 invoke-virtual {p1}, Landroid/view/View;->getHeight()I move-result v4 div-int/lit8 v4, v4, 0x2 add-int/2addr v4, v0 .line 8 invoke-virtual {p1}, Landroid/view/View;->getTranslationY()F move-result v6 invoke-static {v6}, Ljava/lang/Math;->round(F)I move-result v6 add-int/2addr v6, v4 goto :goto_0 .line 9 :cond_0 invoke-virtual {v4}, Landroid/graphics/Rect;->centerX()I move-result v5 .line 10 invoke-virtual {v4}, Landroid/graphics/Rect;->centerY()I move-result v6 .line 11 :goto_0 invoke-virtual {p2}, Landroid/graphics/Rect;->centerX()I move-result v4 .line 12 invoke-virtual {p2}, Landroid/graphics/Rect;->centerY()I move-result p2 sub-int/2addr v4, v5 int-to-float v4, v4 sub-int/2addr p2, v6 int-to-float p2, p2 const/4 v7, 0x0 cmpl-float v8, v4, v7 if-nez v8, :cond_1 cmpl-float v7, p2, v7 if-nez v7, :cond_1 .line 13 invoke-static {}, Ljava/lang/Math;->random()D move-result-wide v7 const-wide/high16 v9, 0x4000000000000000L # 2.0 mul-double/2addr v7, v9 double-to-float p2, v7 const/high16 v4, 0x3f800000 # 1.0f sub-float/2addr p2, v4 .line 14 invoke-static {}, Ljava/lang/Math;->random()D move-result-wide v7 mul-double/2addr v7, v9 double-to-float v7, v7 sub-float v4, v7, v4 move v11, v4 move v4, p2 move p2, v11 .line 15 :cond_1 invoke-static {v4, p2}, Landroidx/transition/Explode;->a(FF)F move-result v7 div-float/2addr v4, v7 div-float/2addr p2, v7 sub-int/2addr v5, v2 sub-int/2addr v6, v0 .line 16 invoke-static {p1, v5, v6}, Landroidx/transition/Explode;->b(Landroid/view/View;II)F move-result p1 mul-float/2addr v4, p1 .line 17 invoke-static {v4}, Ljava/lang/Math;->round(F)I move-result v0 aput v0, p3, v1 mul-float/2addr p1, p2 .line 18 invoke-static {p1}, Ljava/lang/Math;->round(F)I move-result p1 aput p1, p3, v3 return-void .end method .method public captureEndValues(Lh3/o;)V .locals 0 .param p1 # Lh3/o; .annotation build Landroidx/annotation/NonNull; .end annotation .end param .line 1 invoke-super {p0, p1}, Landroidx/transition/Visibility;->captureEndValues(Lh3/o;)V .line 2 invoke-virtual {p0, p1}, Landroidx/transition/Explode;->captureValues(Lh3/o;)V return-void .end method .method public captureStartValues(Lh3/o;)V .locals 0 .param p1 # Lh3/o; .annotation build Landroidx/annotation/NonNull; .end annotation .end param .line 1 invoke-super {p0, p1}, Landroidx/transition/Visibility;->captureStartValues(Lh3/o;)V .line 2 invoke-virtual {p0, p1}, Landroidx/transition/Explode;->captureValues(Lh3/o;)V return-void .end method .method public final captureValues(Lh3/o;)V .locals 5 .line 1 iget-object v0, p1, Lh3/o;->b:Landroid/view/View; .line 2 iget-object v1, p0, Landroidx/transition/Explode;->a:[I invoke-virtual {v0, v1}, Landroid/view/View;->getLocationOnScreen([I)V .line 3 iget-object v1, p0, Landroidx/transition/Explode;->a:[I const/4 v2, 0x0 aget v2, v1, v2 const/4 v3, 0x1 .line 4 aget v1, v1, v3 .line 5 invoke-virtual {v0}, Landroid/view/View;->getWidth()I move-result v3 add-int/2addr v3, v2 .line 6 invoke-virtual {v0}, Landroid/view/View;->getHeight()I move-result v0 add-int/2addr v0, v1 .line 7 iget-object p1, p1, Lh3/o;->a:Ljava/util/Map; new-instance v4, Landroid/graphics/Rect; invoke-direct {v4, v2, v1, v3, v0}, Landroid/graphics/Rect;->(IIII)V const-string v0, "android:explode:screenBounds" invoke-interface {p1, v0, v4}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; return-void .end method .method public onAppear(Landroid/view/ViewGroup;Landroid/view/View;Lh3/o;Lh3/o;)Landroid/animation/Animator; .locals 10 if-nez p4, :cond_0 const/4 p1, 0x0 return-object p1 .line 1 :cond_0 iget-object p3, p4, Lh3/o;->a:Ljava/util/Map; const-string v0, "android:explode:screenBounds" invoke-interface {p3, v0}, Ljava/util/Map;->get(Ljava/lang/Object;)Ljava/lang/Object; move-result-object p3 check-cast p3, Landroid/graphics/Rect; .line 2 invoke-virtual {p2}, Landroid/view/View;->getTranslationX()F move-result v6 .line 3 invoke-virtual {p2}, Landroid/view/View;->getTranslationY()F move-result v7 .line 4 iget-object v0, p0, Landroidx/transition/Explode;->a:[I invoke-virtual {p0, p1, p3, v0}, Landroidx/transition/Explode;->c(Landroid/view/View;Landroid/graphics/Rect;[I)V .line 5 iget-object p1, p0, Landroidx/transition/Explode;->a:[I const/4 v0, 0x0 aget v0, p1, v0 int-to-float v0, v0 add-float v4, v6, v0 const/4 v0, 0x1 .line 6 aget p1, p1, v0 int-to-float p1, p1 add-float v5, v7, p1 .line 7 iget v2, p3, Landroid/graphics/Rect;->left:I iget v3, p3, Landroid/graphics/Rect;->top:I sget-object v8, Landroidx/transition/Explode;->b:Landroid/animation/TimeInterpolator; move-object v0, p2 move-object v1, p4 move-object v9, p0 invoke-static/range {v0 .. v9}, Landroidx/transition/k;->a(Landroid/view/View;Lh3/o;IIFFFFLandroid/animation/TimeInterpolator;Landroidx/transition/Transition;)Landroid/animation/Animator; move-result-object p1 return-object p1 .end method .method public onDisappear(Landroid/view/ViewGroup;Landroid/view/View;Lh3/o;Lh3/o;)Landroid/animation/Animator; .locals 10 if-nez p3, :cond_0 const/4 p1, 0x0 return-object p1 .line 1 :cond_0 iget-object p4, p3, Lh3/o;->a:Ljava/util/Map; const-string v0, "android:explode:screenBounds" invoke-interface {p4, v0}, Ljava/util/Map;->get(Ljava/lang/Object;)Ljava/lang/Object; move-result-object p4 check-cast p4, Landroid/graphics/Rect; .line 2 iget v2, p4, Landroid/graphics/Rect;->left:I .line 3 iget v3, p4, Landroid/graphics/Rect;->top:I .line 4 invoke-virtual {p2}, Landroid/view/View;->getTranslationX()F move-result v4 .line 5 invoke-virtual {p2}, Landroid/view/View;->getTranslationY()F move-result v5 .line 6 iget-object v0, p3, Lh3/o;->b:Landroid/view/View; sget v1, Landroidx/transition/R$id;->transition_position:I invoke-virtual {v0, v1}, Landroid/view/View;->getTag(I)Ljava/lang/Object; move-result-object v0 check-cast v0, [I const/4 v1, 0x1 const/4 v6, 0x0 if-eqz v0, :cond_1 .line 7 aget v7, v0, v6 iget v8, p4, Landroid/graphics/Rect;->left:I sub-int/2addr v7, v8 int-to-float v7, v7 add-float/2addr v7, v4 .line 8 aget v8, v0, v1 iget v9, p4, Landroid/graphics/Rect;->top:I sub-int/2addr v8, v9 int-to-float v8, v8 add-float/2addr v8, v5 .line 9 aget v9, v0, v6 aget v0, v0, v1 invoke-virtual {p4, v9, v0}, Landroid/graphics/Rect;->offsetTo(II)V goto :goto_0 :cond_1 move v7, v4 move v8, v5 .line 10 :goto_0 iget-object v0, p0, Landroidx/transition/Explode;->a:[I invoke-virtual {p0, p1, p4, v0}, Landroidx/transition/Explode;->c(Landroid/view/View;Landroid/graphics/Rect;[I)V .line 11 iget-object p1, p0, Landroidx/transition/Explode;->a:[I aget p4, p1, v6 int-to-float p4, p4 add-float v6, v7, p4 .line 12 aget p1, p1, v1 int-to-float p1, p1 add-float v7, v8, p1 .line 13 sget-object v8, Landroidx/transition/Explode;->c:Landroid/animation/TimeInterpolator; move-object v0, p2 move-object v1, p3 move-object v9, p0 invoke-static/range {v0 .. v9}, Landroidx/transition/k;->a(Landroid/view/View;Lh3/o;IIFFFFLandroid/animation/TimeInterpolator;Landroidx/transition/Transition;)Landroid/animation/Animator; move-result-object p1 return-object p1 .end method