MaxLayout.smali
.class public Lcom/sandboxol/gamedetail/view/widget/MaxLayout;
.super Landroid/widget/FrameLayout;
.source "MaxLayout.java"
# static fields
.field public static final DEF_VALUE:F = -1.0f
.field public static final H_W:I = 0x2
.field public static final STANDRAD:I = 0x0
.field private static final TAG:Ljava/lang/String; = "MaxLayout"
.field public static final W_H:I = 0x1
# instance fields
.field private mContext:Landroid/content/Context;
.field private mMaxHeight:F
.field private mMaxWidth:F
.field private mRatio:F
.field private mRatioStandrad:I
# direct methods
.method public constructor <init>(Landroid/content/Context;)V
.registers 4
const/4 v0, 0x0
const/4 v1, 0x0
.line 1
invoke-direct {p0, p1, v0, v1}, Lcom/sandboxol/gamedetail/view/widget/MaxLayout;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V
return-void
.end method
.method public constructor <init>(Landroid/content/Context;Landroid/util/AttributeSet;)V
.registers 4
const/4 v0, 0x0
.line 2
invoke-direct {p0, p1, p2, v0}, Lcom/sandboxol/gamedetail/view/widget/MaxLayout;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V
return-void
.end method
.method public constructor <init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V
.registers 4
.line 3
invoke-direct {p0, p1, p2, p3}, Landroid/widget/FrameLayout;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V
const/high16 p3, -0x40800000 # -1.0f
.line 4
iput p3, p0, Lcom/sandboxol/gamedetail/view/widget/MaxLayout;->mMaxHeight:F
.line 5
iput p3, p0, Lcom/sandboxol/gamedetail/view/widget/MaxLayout;->mMaxWidth:F
.line 6
iput-object p1, p0, Lcom/sandboxol/gamedetail/view/widget/MaxLayout;->mContext:Landroid/content/Context;
.line 7
invoke-direct {p0, p2}, Lcom/sandboxol/gamedetail/view/widget/MaxLayout;->initAttrs(Landroid/util/AttributeSet;)V
return-void
.end method
.method private getHeight(I)I
.registers 4
.line 1
iget v0, p0, Lcom/sandboxol/gamedetail/view/widget/MaxLayout;->mMaxHeight:F
const/high16 v1, -0x40800000 # -1.0f
cmpg-float v1, v0, v1
if-gtz v1, :cond_9
return p1
:cond_9
int-to-float v1, p1
cmpg-float v1, v1, v0
if-gtz v1, :cond_f
goto :goto_10
:cond_f
float-to-int p1, v0
:goto_10
return p1
.end method
.method private getWidth(I)I
.registers 4
.line 1
iget v0, p0, Lcom/sandboxol/gamedetail/view/widget/MaxLayout;->mMaxWidth:F
const/high16 v1, -0x40800000 # -1.0f
cmpg-float v1, v0, v1
if-gtz v1, :cond_9
return p1
:cond_9
int-to-float v1, p1
cmpg-float v1, v1, v0
if-gtz v1, :cond_f
goto :goto_10
:cond_f
float-to-int p1, v0
:goto_10
return p1
.end method
.method private initAttrs(Landroid/util/AttributeSet;)V
.registers 4
.line 1
iget-object v0, p0, Lcom/sandboxol/gamedetail/view/widget/MaxLayout;->mContext:Landroid/content/Context;
sget-object v1, Lcom/sandboxol/gamedetail/R$styleable;->MaxLayout:[I
invoke-virtual {v0, p1, v1}, Landroid/content/Context;->obtainStyledAttributes(Landroid/util/AttributeSet;[I)Landroid/content/res/TypedArray;
move-result-object p1
.line 2
sget v0, Lcom/sandboxol/gamedetail/R$styleable;->MaxLayout_ml_maxheight:I
const/high16 v1, -0x40800000 # -1.0f
invoke-virtual {p1, v0, v1}, Landroid/content/res/TypedArray;->getDimension(IF)F
move-result v0
iput v0, p0, Lcom/sandboxol/gamedetail/view/widget/MaxLayout;->mMaxHeight:F
.line 3
sget v0, Lcom/sandboxol/gamedetail/R$styleable;->MaxLayout_ml_maxWidth:I
invoke-virtual {p1, v0, v1}, Landroid/content/res/TypedArray;->getDimension(IF)F
move-result v0
iput v0, p0, Lcom/sandboxol/gamedetail/view/widget/MaxLayout;->mMaxWidth:F
.line 4
sget v0, Lcom/sandboxol/gamedetail/R$styleable;->MaxLayout_ml_ratio_standard:I
const/4 v1, 0x0
invoke-virtual {p1, v0, v1}, Landroid/content/res/TypedArray;->getInt(II)I
move-result v0
iput v0, p0, Lcom/sandboxol/gamedetail/view/widget/MaxLayout;->mRatioStandrad:I
.line 5
sget v0, Lcom/sandboxol/gamedetail/R$styleable;->MaxLayout_ml_ratio:I
const/4 v1, 0x0
invoke-virtual {p1, v0, v1}, Landroid/content/res/TypedArray;->getFloat(IF)F
move-result v0
iput v0, p0, Lcom/sandboxol/gamedetail/view/widget/MaxLayout;->mRatio:F
.line 6
invoke-virtual {p1}, Landroid/content/res/TypedArray;->recycle()V
return-void
.end method
.method private isSetRatio()Z
.registers 4
.line 1
iget v0, p0, Lcom/sandboxol/gamedetail/view/widget/MaxLayout;->mRatio:F
const/4 v1, 0x1
const/4 v2, 0x0
cmpl-float v0, v0, v2
if-lez v0, :cond_10
iget v0, p0, Lcom/sandboxol/gamedetail/view/widget/MaxLayout;->mRatioStandrad:I
if-eq v0, v1, :cond_11
const/4 v2, 0x2
if-ne v0, v2, :cond_10
goto :goto_11
:cond_10
const/4 v1, 0x0
:cond_11
:goto_11
return v1
.end method
# virtual methods
.method public clearMaxHeightFlag()V
.registers 2
const/high16 v0, -0x40800000 # -1.0f
.line 1
iput v0, p0, Lcom/sandboxol/gamedetail/view/widget/MaxLayout;->mMaxHeight:F
return-void
.end method
.method public clearMaxWidthFlag()V
.registers 2
const/high16 v0, -0x40800000 # -1.0f
.line 1
iput v0, p0, Lcom/sandboxol/gamedetail/view/widget/MaxLayout;->mMaxWidth:F
return-void
.end method
.method public getMaxHeight()F
.registers 2
.line 1
iget v0, p0, Lcom/sandboxol/gamedetail/view/widget/MaxLayout;->mMaxHeight:F
return v0
.end method
.method public getMaxWidth()F
.registers 2
.line 1
iget v0, p0, Lcom/sandboxol/gamedetail/view/widget/MaxLayout;->mMaxWidth:F
return v0
.end method
.method public getRatio()F
.registers 2
.line 1
iget v0, p0, Lcom/sandboxol/gamedetail/view/widget/MaxLayout;->mRatio:F
return v0
.end method
.method public getRatioStandrad()I
.registers 2
.line 1
iget v0, p0, Lcom/sandboxol/gamedetail/view/widget/MaxLayout;->mRatioStandrad:I
return v0
.end method
.method protected onMeasure(II)V
.registers 11
.line 1
invoke-direct {p0}, Lcom/sandboxol/gamedetail/view/widget/MaxLayout;->isSetRatio()Z
move-result v0
.line 2
iget v1, p0, Lcom/sandboxol/gamedetail/view/widget/MaxLayout;->mMaxWidth:F
const/high16 v2, -0x40800000 # -1.0f
cmpg-float v1, v1, v2
if-gtz v1, :cond_18
iget v1, p0, Lcom/sandboxol/gamedetail/view/widget/MaxLayout;->mMaxHeight:F
cmpg-float v1, v1, v2
if-gtz v1, :cond_18
if-nez v0, :cond_18
.line 3
invoke-super {p0, p1, p2}, Landroid/widget/FrameLayout;->onMeasure(II)V
return-void
.line 4
:cond_18
invoke-static {p2}, Landroid/view/View$MeasureSpec;->getMode(I)I
move-result v0
.line 5
invoke-static {p2}, Landroid/view/View$MeasureSpec;->getSize(I)I
move-result p2
.line 6
invoke-static {p1}, Landroid/view/View$MeasureSpec;->getMode(I)I
move-result v1
.line 7
invoke-static {p1}, Landroid/view/View$MeasureSpec;->getSize(I)I
move-result p1
.line 8
new-instance v2, Ljava/lang/StringBuilder;
invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
const-string v3, "origin onMeasure: widthSize ="
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v2, p1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
const-string v3, "heightSize = "
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v2, p2}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v2
const-string v4, "MaxLayout"
invoke-static {v4, v2}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
.line 9
iget v2, p0, Lcom/sandboxol/gamedetail/view/widget/MaxLayout;->mRatioStandrad:I
const/4 v5, 0x1
const/high16 v6, 0x40000000 # 2.0f
const/4 v7, 0x0
if-ne v2, v5, :cond_6c
.line 10
invoke-direct {p0, p1}, Lcom/sandboxol/gamedetail/view/widget/MaxLayout;->getWidth(I)I
move-result p1
.line 11
iget v0, p0, Lcom/sandboxol/gamedetail/view/widget/MaxLayout;->mRatio:F
cmpl-float v2, v0, v7
if-ltz v2, :cond_5c
int-to-float p2, p1
mul-float p2, p2, v0
float-to-int p2, p2
.line 12
:cond_5c
invoke-direct {p0, p2}, Lcom/sandboxol/gamedetail/view/widget/MaxLayout;->getHeight(I)I
move-result p2
.line 13
invoke-static {p2, v6}, Landroid/view/View$MeasureSpec;->makeMeasureSpec(II)I
move-result v0
.line 14
invoke-static {p1, v1}, Landroid/view/View$MeasureSpec;->makeMeasureSpec(II)I
move-result v1
.line 15
invoke-super {p0, v1, v0}, Landroid/widget/FrameLayout;->onMeasure(II)V
goto :goto_a0
:cond_6c
const/4 v5, 0x2
if-ne v2, v5, :cond_8d
.line 16
invoke-direct {p0, p2}, Lcom/sandboxol/gamedetail/view/widget/MaxLayout;->getHeight(I)I
move-result p2
.line 17
iget v1, p0, Lcom/sandboxol/gamedetail/view/widget/MaxLayout;->mRatio:F
cmpl-float v2, v1, v7
if-ltz v2, :cond_7d
int-to-float p1, p2
mul-float p1, p1, v1
float-to-int p1, p1
.line 18
:cond_7d
invoke-direct {p0, p1}, Lcom/sandboxol/gamedetail/view/widget/MaxLayout;->getWidth(I)I
move-result p1
.line 19
invoke-static {p2, v0}, Landroid/view/View$MeasureSpec;->makeMeasureSpec(II)I
move-result v0
.line 20
invoke-static {p1, v6}, Landroid/view/View$MeasureSpec;->makeMeasureSpec(II)I
move-result v1
.line 21
invoke-super {p0, v1, v0}, Landroid/widget/FrameLayout;->onMeasure(II)V
goto :goto_a0
.line 22
:cond_8d
invoke-direct {p0, p1}, Lcom/sandboxol/gamedetail/view/widget/MaxLayout;->getWidth(I)I
move-result p1
.line 23
invoke-direct {p0, p2}, Lcom/sandboxol/gamedetail/view/widget/MaxLayout;->getHeight(I)I
move-result p2
.line 24
invoke-static {p2, v0}, Landroid/view/View$MeasureSpec;->makeMeasureSpec(II)I
move-result v0
.line 25
invoke-static {p1, v1}, Landroid/view/View$MeasureSpec;->makeMeasureSpec(II)I
move-result v1
.line 26
invoke-super {p0, v1, v0}, Landroid/widget/FrameLayout;->onMeasure(II)V
.line 27
:goto_a0
new-instance v0, Ljava/lang/StringBuilder;
invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
const-string v1, "adjust onMeasure: widthSize ="
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v0, p1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
invoke-virtual {v0, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v0, p2}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object p1
invoke-static {v4, p1}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
return-void
.end method
.method public setMaxHeight(F)V
.registers 2
.line 1
iput p1, p0, Lcom/sandboxol/gamedetail/view/widget/MaxLayout;->mMaxHeight:F
return-void
.end method
.method public setMaxWidth(F)V
.registers 2
.line 1
iput p1, p0, Lcom/sandboxol/gamedetail/view/widget/MaxLayout;->mMaxWidth:F
return-void
.end method
.method public setRatio(F)V
.registers 2
.line 1
iput p1, p0, Lcom/sandboxol/gamedetail/view/widget/MaxLayout;->mRatio:F
return-void
.end method
.method public setRatioStandrad(I)V
.registers 2
.line 1
iput p1, p0, Lcom/sandboxol/gamedetail/view/widget/MaxLayout;->mRatioStandrad:I
return-void
.end method