Rotate3dAnimation.smali

.class public Lcom/cleanmaster/hpsharelib/base/widget/Rotate3dAnimation;
.super Landroid/view/animation/Animation;
.source "Rotate3dAnimation.java"


# instance fields
.field private isMainAima:Z

.field private mCamera:Landroid/graphics/Camera;

.field private final mCenterX:F

.field private final mCenterY:F

.field private final mDepthZ:F

.field private final mFromDegrees:F

.field private final mIsY:Z

.field mLocationZ:I

.field private final mReverse:Z

.field private final mToDegrees:F


# direct methods
.method public constructor <init>(FFFFFZ)V
    .registers 15

    .prologue
    .line 58
    const/4 v7, 0x1

    move-object v0, p0

    move v1, p1

    move v2, p2

    move v3, p3

    move v4, p4

    move v5, p5

    move v6, p6

    invoke-direct/range {v0 .. v7}, Lcom/cleanmaster/hpsharelib/base/widget/Rotate3dAnimation;-><init>(FFFFFZZ)V

    .line 59
    return-void
.end method

.method public constructor <init>(FFFFFZZ)V
    .registers 9

    .prologue
    const/4 v0, 0x0

    .line 62
    invoke-direct {p0}, Landroid/view/animation/Animation;-><init>()V

    .line 39
    iput-boolean v0, p0, Lcom/cleanmaster/hpsharelib/base/widget/Rotate3dAnimation;->isMainAima:Z

    .line 72
    iput v0, p0, Lcom/cleanmaster/hpsharelib/base/widget/Rotate3dAnimation;->mLocationZ:I

    .line 63
    iput p1, p0, Lcom/cleanmaster/hpsharelib/base/widget/Rotate3dAnimation;->mFromDegrees:F

    .line 64
    iput p2, p0, Lcom/cleanmaster/hpsharelib/base/widget/Rotate3dAnimation;->mToDegrees:F

    .line 65
    iput p3, p0, Lcom/cleanmaster/hpsharelib/base/widget/Rotate3dAnimation;->mCenterX:F

    .line 66
    iput p4, p0, Lcom/cleanmaster/hpsharelib/base/widget/Rotate3dAnimation;->mCenterY:F

    .line 67
    iput p5, p0, Lcom/cleanmaster/hpsharelib/base/widget/Rotate3dAnimation;->mDepthZ:F

    .line 68
    iput-boolean p6, p0, Lcom/cleanmaster/hpsharelib/base/widget/Rotate3dAnimation;->mReverse:Z

    .line 69
    iput-boolean p7, p0, Lcom/cleanmaster/hpsharelib/base/widget/Rotate3dAnimation;->mIsY:Z

    .line 70
    return-void
.end method

.method public constructor <init>(FFFFFZZI)V
    .registers 10

    .prologue
    const/4 v0, 0x0

    .line 74
    invoke-direct {p0}, Landroid/view/animation/Animation;-><init>()V

    .line 39
    iput-boolean v0, p0, Lcom/cleanmaster/hpsharelib/base/widget/Rotate3dAnimation;->isMainAima:Z

    .line 72
    iput v0, p0, Lcom/cleanmaster/hpsharelib/base/widget/Rotate3dAnimation;->mLocationZ:I

    .line 75
    iput p1, p0, Lcom/cleanmaster/hpsharelib/base/widget/Rotate3dAnimation;->mFromDegrees:F

    .line 76
    iput p2, p0, Lcom/cleanmaster/hpsharelib/base/widget/Rotate3dAnimation;->mToDegrees:F

    .line 77
    iput p3, p0, Lcom/cleanmaster/hpsharelib/base/widget/Rotate3dAnimation;->mCenterX:F

    .line 78
    iput p4, p0, Lcom/cleanmaster/hpsharelib/base/widget/Rotate3dAnimation;->mCenterY:F

    .line 79
    iput p5, p0, Lcom/cleanmaster/hpsharelib/base/widget/Rotate3dAnimation;->mDepthZ:F

    .line 80
    iput-boolean p6, p0, Lcom/cleanmaster/hpsharelib/base/widget/Rotate3dAnimation;->mReverse:Z

    .line 81
    iput-boolean p7, p0, Lcom/cleanmaster/hpsharelib/base/widget/Rotate3dAnimation;->mIsY:Z

    .line 82
    iput p8, p0, Lcom/cleanmaster/hpsharelib/base/widget/Rotate3dAnimation;->mLocationZ:I

    .line 83
    return-void
.end method

.method private playMain(FLandroid/view/animation/Transformation;)V
    .registers 11
    .annotation build Landroid/annotation/TargetApi;
        value = 0xc
    .end annotation

    .prologue
    const/4 v7, 0x0

    .line 138
    iget v0, p0, Lcom/cleanmaster/hpsharelib/base/widget/Rotate3dAnimation;->mFromDegrees:F

    .line 139
    iget v1, p0, Lcom/cleanmaster/hpsharelib/base/widget/Rotate3dAnimation;->mToDegrees:F

    sub-float/2addr v1, v0

    mul-float/2addr v1, p1

    add-float/2addr v0, v1

    .line 142
    iget v1, p0, Lcom/cleanmaster/hpsharelib/base/widget/Rotate3dAnimation;->mCenterX:F

    .line 143
    iget v2, p0, Lcom/cleanmaster/hpsharelib/base/widget/Rotate3dAnimation;->mCenterY:F

    .line 144
    iget-object v3, p0, Lcom/cleanmaster/hpsharelib/base/widget/Rotate3dAnimation;->mCamera:Landroid/graphics/Camera;

    .line 146
    invoke-virtual {p2}, Landroid/view/animation/Transformation;->getMatrix()Landroid/graphics/Matrix;

    move-result-object v4

    .line 147
    sget v5, Landroid/os/Build$VERSION;->SDK_INT:I

    const/16 v6, 0xc

    if-lt v5, v6, :cond_22

    iget v5, p0, Lcom/cleanmaster/hpsharelib/base/widget/Rotate3dAnimation;->mLocationZ:I

    if-eqz v5, :cond_22

    .line 148
    iget v5, p0, Lcom/cleanmaster/hpsharelib/base/widget/Rotate3dAnimation;->mLocationZ:I

    int-to-float v5, v5

    invoke-virtual {v3, v7, v7, v5}, Landroid/graphics/Camera;->setLocation(FFF)V

    .line 150
    :cond_22
    invoke-virtual {v3}, Landroid/graphics/Camera;->save()V

    .line 151
    iget-boolean v5, p0, Lcom/cleanmaster/hpsharelib/base/widget/Rotate3dAnimation;->mReverse:Z

    if-eqz v5, :cond_41

    .line 152
    iget v5, p0, Lcom/cleanmaster/hpsharelib/base/widget/Rotate3dAnimation;->mDepthZ:F

    mul-float/2addr v5, p1

    invoke-virtual {v3, v7, v7, v5}, Landroid/graphics/Camera;->translate(FFF)V

    .line 156
    :goto_2f
    invoke-virtual {v3, v0}, Landroid/graphics/Camera;->rotateY(F)V

    .line 157
    invoke-virtual {v3, v4}, Landroid/graphics/Camera;->getMatrix(Landroid/graphics/Matrix;)V

    .line 158
    invoke-virtual {v3}, Landroid/graphics/Camera;->restore()V

    .line 160
    neg-float v0, v1

    neg-float v3, v2

    invoke-virtual {v4, v0, v3}, Landroid/graphics/Matrix;->preTranslate(FF)Z

    .line 161
    invoke-virtual {v4, v1, v2}, Landroid/graphics/Matrix;->postTranslate(FF)Z

    .line 162
    return-void

    .line 154
    :cond_41
    iget v5, p0, Lcom/cleanmaster/hpsharelib/base/widget/Rotate3dAnimation;->mDepthZ:F

    const/high16 v6, 0x3f800000    # 1.0f

    sub-float/2addr v6, p1

    mul-float/2addr v5, v6

    invoke-virtual {v3, v7, v7, v5}, Landroid/graphics/Camera;->translate(FFF)V

    goto :goto_2f
.end method

.method private playNormal(FLandroid/view/animation/Transformation;)V
    .registers 12

    .prologue
    const/high16 v8, 0x3f800000    # 1.0f

    const/4 v7, 0x0

    .line 102
    iget v0, p0, Lcom/cleanmaster/hpsharelib/base/widget/Rotate3dAnimation;->mFromDegrees:F

    .line 103
    iget v1, p0, Lcom/cleanmaster/hpsharelib/base/widget/Rotate3dAnimation;->mToDegrees:F

    sub-float/2addr v1, v0

    mul-float/2addr v1, p1

    add-float/2addr v0, v1

    .line 105
    iget v1, p0, Lcom/cleanmaster/hpsharelib/base/widget/Rotate3dAnimation;->mCenterX:F

    .line 106
    iget v2, p0, Lcom/cleanmaster/hpsharelib/base/widget/Rotate3dAnimation;->mCenterY:F

    .line 107
    iget-object v3, p0, Lcom/cleanmaster/hpsharelib/base/widget/Rotate3dAnimation;->mCamera:Landroid/graphics/Camera;

    .line 109
    invoke-virtual {p2}, Landroid/view/animation/Transformation;->getMatrix()Landroid/graphics/Matrix;

    move-result-object v4

    .line 111
    invoke-virtual {v3}, Landroid/graphics/Camera;->save()V

    .line 112
    iget-boolean v5, p0, Lcom/cleanmaster/hpsharelib/base/widget/Rotate3dAnimation;->mReverse:Z

    if-eqz v5, :cond_45

    .line 113
    iget v5, p0, Lcom/cleanmaster/hpsharelib/base/widget/Rotate3dAnimation;->mDepthZ:F

    mul-float/2addr v5, p1

    invoke-virtual {v3, v7, v7, v5}, Landroid/graphics/Camera;->translate(FFF)V

    .line 118
    :goto_21
    iget-boolean v5, p0, Lcom/cleanmaster/hpsharelib/base/widget/Rotate3dAnimation;->mIsY:Z

    if-eqz v5, :cond_4e

    .line 119
    invoke-virtual {v3, v0}, Landroid/graphics/Camera;->rotateY(F)V

    .line 123
    :goto_28
    invoke-virtual {v3, v4}, Landroid/graphics/Camera;->getMatrix(Landroid/graphics/Matrix;)V

    .line 124
    invoke-virtual {v3}, Landroid/graphics/Camera;->restore()V

    .line 126
    const v0, 0x3e4ccccd    # 0.2f

    .line 127
    iget-boolean v3, p0, Lcom/cleanmaster/hpsharelib/base/widget/Rotate3dAnimation;->mReverse:Z

    if-nez v3, :cond_52

    .line 128
    sub-float v3, v8, v0

    mul-float/2addr v3, p1

    add-float/2addr v0, v3

    invoke-virtual {p2, v0}, Landroid/view/animation/Transformation;->setAlpha(F)V

    .line 132
    :goto_3c
    neg-float v0, v1

    neg-float v3, v2

    invoke-virtual {v4, v0, v3}, Landroid/graphics/Matrix;->preTranslate(FF)Z

    .line 133
    invoke-virtual {v4, v1, v2}, Landroid/graphics/Matrix;->postTranslate(FF)Z

    .line 134
    return-void

    .line 115
    :cond_45
    iget v5, p0, Lcom/cleanmaster/hpsharelib/base/widget/Rotate3dAnimation;->mDepthZ:F

    sub-float v6, v8, p1

    mul-float/2addr v5, v6

    invoke-virtual {v3, v7, v7, v5}, Landroid/graphics/Camera;->translate(FFF)V

    goto :goto_21

    .line 121
    :cond_4e
    invoke-virtual {v3, v0}, Landroid/graphics/Camera;->rotateX(F)V

    goto :goto_28

    .line 130
    :cond_52
    mul-float/2addr v0, p1

    sub-float v0, v8, v0

    invoke-virtual {p2, v0}, Landroid/view/animation/Transformation;->setAlpha(F)V

    goto :goto_3c
.end method


# virtual methods
.method protected applyTransformation(FLandroid/view/animation/Transformation;)V
    .registers 4

    .prologue
    .line 94
    iget-boolean v0, p0, Lcom/cleanmaster/hpsharelib/base/widget/Rotate3dAnimation;->isMainAima:Z

    if-nez v0, :cond_8

    .line 95
    invoke-direct {p0, p1, p2}, Lcom/cleanmaster/hpsharelib/base/widget/Rotate3dAnimation;->playNormal(FLandroid/view/animation/Transformation;)V

    .line 99
    :goto_7
    return-void

    .line 97
    :cond_8
    invoke-direct {p0, p1, p2}, Lcom/cleanmaster/hpsharelib/base/widget/Rotate3dAnimation;->playMain(FLandroid/view/animation/Transformation;)V

    goto :goto_7
.end method

.method public initialize(IIII)V
    .registers 6

    .prologue
    .line 88
    invoke-super {p0, p1, p2, p3, p4}, Landroid/view/animation/Animation;->initialize(IIII)V

    .line 89
    new-instance v0, Landroid/graphics/Camera;

    invoke-direct {v0}, Landroid/graphics/Camera;-><init>()V

    iput-object v0, p0, Lcom/cleanmaster/hpsharelib/base/widget/Rotate3dAnimation;->mCamera:Landroid/graphics/Camera;

    .line 90
    return-void
.end method

.method public setMainAima()V
    .registers 2

    .prologue
    .line 165
    const/4 v0, 0x1

    iput-boolean v0, p0, Lcom/cleanmaster/hpsharelib/base/widget/Rotate3dAnimation;->isMainAima:Z

    .line 166
    return-void
.end method