BtcAutoFormat.smali
.class public final Lorg/bitcoinj/utils/BtcAutoFormat;
.super Lorg/bitcoinj/utils/BtcFormat;
.source "BtcAutoFormat.java"
# direct methods
.method protected constructor <init>(Ljava/util/Locale;Lorg/bitcoinj/utils/BtcAutoFormat$Style;I)V
.registers 6
.prologue
.line 112
invoke-static {p1}, Ljava/text/NumberFormat;->getCurrencyInstance(Ljava/util/Locale;)Ljava/text/NumberFormat;
move-result-object v0
check-cast v0, Ljava/text/DecimalFormat;
invoke-static {}, Lcom/google/common/collect/ImmutableList;->of()Lcom/google/common/collect/ImmutableList;
move-result-object v1
invoke-direct {p0, v0, p3, v1}, Lorg/bitcoinj/utils/BtcFormat;-><init>(Ljava/text/DecimalFormat;ILjava/util/List;)V
.line 113
iget-object v0, p0, Lorg/bitcoinj/utils/BtcAutoFormat;->numberFormat:Ljava/text/DecimalFormat;
invoke-virtual {p2, v0}, Lorg/bitcoinj/utils/BtcAutoFormat$Style;->apply(Ljava/text/DecimalFormat;)V
.line 114
return-void
.end method
# virtual methods
.method public final equals(Ljava/lang/Object;)Z
.registers 3
.prologue
.line 189
if-ne p0, p1, :cond_4
const/4 v0, 0x1
.line 191
:goto_3
return v0
.line 190
:cond_4
instance-of v0, p1, Lorg/bitcoinj/utils/BtcAutoFormat;
if-nez v0, :cond_a
const/4 v0, 0x0
goto :goto_3
.line 191
:cond_a
invoke-super {p0, p1}, Lorg/bitcoinj/utils/BtcFormat;->equals(Ljava/lang/Object;)Z
move-result v0
goto :goto_3
.end method
.method public final fractionPlaces()I
.registers 2
.prologue
.line 183
iget v0, p0, Lorg/bitcoinj/utils/BtcAutoFormat;->minimumFractionDigits:I
return v0
.end method
.method protected final scale()I
.registers 2
.prologue
.line 178
const/4 v0, 0x0
return v0
.end method
.method protected final scale(Ljava/math/BigInteger;I)I
.registers 12
.prologue
const/4 v2, 0x6
const/4 v1, 0x3
const/4 v0, 0x0
.line 142
rsub-int/lit8 v3, p2, 0x8
invoke-static {v3, v0}, Ljava/lang/Math;->max(II)I
move-result v3
.line 143
new-instance v4, Ljava/math/BigDecimal;
invoke-direct {v4, p1}, Ljava/math/BigDecimal;-><init>(Ljava/math/BigInteger;)V
invoke-virtual {v4, v3}, Ljava/math/BigDecimal;->movePointLeft(I)Ljava/math/BigDecimal;
move-result-object v4
.line 144
sget-object v5, Ljava/math/BigDecimal;->ONE:Ljava/math/BigDecimal;
invoke-virtual {v4, v5}, Ljava/math/BigDecimal;->remainder(Ljava/math/BigDecimal;)Ljava/math/BigDecimal;
move-result-object v5
sget-object v6, Ljava/math/BigDecimal;->ZERO:Ljava/math/BigDecimal;
invoke-virtual {v5, v6}, Ljava/math/BigDecimal;->compareTo(Ljava/math/BigDecimal;)I
move-result v5
if-nez v5, :cond_26
.line 170
:cond_20
:goto_20
iget-object v1, p0, Lorg/bitcoinj/utils/BtcAutoFormat;->numberFormat:Ljava/text/DecimalFormat;
invoke-static {v1, v0}, Lorg/bitcoinj/utils/BtcAutoFormat;->prefixUnitsIndicator(Ljava/text/DecimalFormat;I)V
.line 171
return v0
.line 147
:cond_26
invoke-virtual {v4, v1}, Ljava/math/BigDecimal;->movePointRight(I)Ljava/math/BigDecimal;
move-result-object v5
.line 148
sget-object v6, Ljava/math/BigDecimal;->ONE:Ljava/math/BigDecimal;
invoke-virtual {v5, v6}, Ljava/math/BigDecimal;->remainder(Ljava/math/BigDecimal;)Ljava/math/BigDecimal;
move-result-object v6
sget-object v7, Ljava/math/BigDecimal;->ZERO:Ljava/math/BigDecimal;
invoke-virtual {v6, v7}, Ljava/math/BigDecimal;->compareTo(Ljava/math/BigDecimal;)I
move-result v6
if-nez v6, :cond_3a
move v0, v1
.line 149
goto :goto_20
.line 151
:cond_3a
invoke-virtual {v4, v2}, Ljava/math/BigDecimal;->movePointRight(I)Ljava/math/BigDecimal;
move-result-object v6
.line 152
sget-object v7, Ljava/math/BigDecimal;->ONE:Ljava/math/BigDecimal;
invoke-virtual {v6, v7}, Ljava/math/BigDecimal;->remainder(Ljava/math/BigDecimal;)Ljava/math/BigDecimal;
move-result-object v7
sget-object v8, Ljava/math/BigDecimal;->ZERO:Ljava/math/BigDecimal;
invoke-virtual {v7, v8}, Ljava/math/BigDecimal;->compareTo(Ljava/math/BigDecimal;)I
move-result v7
if-eqz v7, :cond_9c
.line 156
sget-object v7, Ljava/math/RoundingMode;->HALF_UP:Ljava/math/RoundingMode;
invoke-virtual {v4, v0, v7}, Ljava/math/BigDecimal;->setScale(ILjava/math/RoundingMode;)Ljava/math/BigDecimal;
move-result-object v7
invoke-virtual {v4, v7}, Ljava/math/BigDecimal;->subtract(Ljava/math/BigDecimal;)Ljava/math/BigDecimal;
move-result-object v4
.line 157
invoke-virtual {v4, v3}, Ljava/math/BigDecimal;->movePointRight(I)Ljava/math/BigDecimal;
move-result-object v4
invoke-virtual {v4}, Ljava/math/BigDecimal;->abs()Ljava/math/BigDecimal;
move-result-object v4
.line 158
sget-object v7, Ljava/math/RoundingMode;->HALF_UP:Ljava/math/RoundingMode;
invoke-virtual {v5, v0, v7}, Ljava/math/BigDecimal;->setScale(ILjava/math/RoundingMode;)Ljava/math/BigDecimal;
move-result-object v7
invoke-virtual {v5, v7}, Ljava/math/BigDecimal;->subtract(Ljava/math/BigDecimal;)Ljava/math/BigDecimal;
move-result-object v5
add-int/lit8 v7, v3, -0x3
.line 159
invoke-virtual {v5, v7}, Ljava/math/BigDecimal;->movePointRight(I)Ljava/math/BigDecimal;
move-result-object v5
invoke-virtual {v5}, Ljava/math/BigDecimal;->abs()Ljava/math/BigDecimal;
move-result-object v5
.line 160
sget-object v7, Ljava/math/RoundingMode;->HALF_UP:Ljava/math/RoundingMode;
invoke-virtual {v6, v0, v7}, Ljava/math/BigDecimal;->setScale(ILjava/math/RoundingMode;)Ljava/math/BigDecimal;
move-result-object v7
invoke-virtual {v6, v7}, Ljava/math/BigDecimal;->subtract(Ljava/math/BigDecimal;)Ljava/math/BigDecimal;
move-result-object v6
add-int/lit8 v3, v3, -0x6
.line 161
invoke-virtual {v6, v3}, Ljava/math/BigDecimal;->movePointRight(I)Ljava/math/BigDecimal;
move-result-object v3
invoke-virtual {v3}, Ljava/math/BigDecimal;->abs()Ljava/math/BigDecimal;
move-result-object v3
.line 162
invoke-virtual {v4, v5}, Ljava/math/BigDecimal;->compareTo(Ljava/math/BigDecimal;)I
move-result v6
if-gez v6, :cond_94
.line 163
invoke-virtual {v4, v3}, Ljava/math/BigDecimal;->compareTo(Ljava/math/BigDecimal;)I
move-result v1
if-ltz v1, :cond_20
move v0, v2
.line 164
goto :goto_20
.line 165
:cond_94
invoke-virtual {v5, v3}, Ljava/math/BigDecimal;->compareTo(Ljava/math/BigDecimal;)I
move-result v0
if-gez v0, :cond_9c
move v0, v1
goto :goto_20
:cond_9c
move v0, v2
.line 166
goto :goto_20
.end method
.method public final toString()Ljava/lang/String;
.registers 3
.prologue
.line 200
new-instance v0, Ljava/lang/StringBuilder;
const-string v1, "Auto-format "
invoke-direct {v0, v1}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
invoke-virtual {p0}, Lorg/bitcoinj/utils/BtcAutoFormat;->pattern()Ljava/lang/String;
move-result-object v1
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v0
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
return-object v0
.end method