.class public final Lcom/nostra13/universalimageloader/utils/ImageSizeUtils; .super Ljava/lang/Object; .source "ImageSizeUtils.java" # static fields .field private static final DEFAULT_MAX_BITMAP_DIMENSION:I = 0x800 .field private static maxBitmapSize:Lcom/nostra13/universalimageloader/core/assist/ImageSize; # direct methods .method static constructor ()V .registers 3 const/4 v0, 0x1 .line 39 new-array v0, v0, [I const/16 v1, 0xd33 const/4 v2, 0x0 .line 40 invoke-static {v1, v0, v2}, Landroid/opengl/GLES10;->glGetIntegerv(I[II)V .line 41 aget v0, v0, v2 const/16 v1, 0x800 invoke-static {v0, v1}, Ljava/lang/Math;->max(II)I move-result v0 .line 42 new-instance v1, Lcom/nostra13/universalimageloader/core/assist/ImageSize; invoke-direct {v1, v0, v0}, Lcom/nostra13/universalimageloader/core/assist/ImageSize;->(II)V sput-object v1, Lcom/nostra13/universalimageloader/utils/ImageSizeUtils;->maxBitmapSize:Lcom/nostra13/universalimageloader/core/assist/ImageSize; return-void .end method .method private constructor ()V .registers 1 .line 45 invoke-direct {p0}, Ljava/lang/Object;->()V return-void .end method .method public static computeImageSampleSize(Lcom/nostra13/universalimageloader/core/assist/ImageSize;Lcom/nostra13/universalimageloader/core/assist/ImageSize;Lcom/nostra13/universalimageloader/core/assist/ViewScaleType;Z)I .registers 10 .line 92 invoke-virtual {p0}, Lcom/nostra13/universalimageloader/core/assist/ImageSize;->getWidth()I move-result v0 .line 93 invoke-virtual {p0}, Lcom/nostra13/universalimageloader/core/assist/ImageSize;->getHeight()I move-result p0 .line 94 invoke-virtual {p1}, Lcom/nostra13/universalimageloader/core/assist/ImageSize;->getWidth()I move-result v1 .line 95 invoke-virtual {p1}, Lcom/nostra13/universalimageloader/core/assist/ImageSize;->getHeight()I move-result p1 .line 99 sget-object v2, Lcom/nostra13/universalimageloader/utils/ImageSizeUtils$1;->$SwitchMap$com$nostra13$universalimageloader$core$assist$ViewScaleType:[I invoke-virtual {p2}, Lcom/nostra13/universalimageloader/core/assist/ViewScaleType;->ordinal()I move-result p2 aget p2, v2, p2 const/4 v2, 0x1 if-eq p2, v2, :cond_3b const/4 v3, 0x2 if-eq p2, v3, :cond_20 move v4, v2 goto :goto_55 :cond_20 if-eqz p3, :cond_32 .line 113 div-int/lit8 p2, v0, 0x2 .line 114 div-int/lit8 v3, p0, 0x2 move v4, v2 .line 115 :goto_27 div-int v5, p2, v4 if-le v5, v1, :cond_55 div-int v5, v3, v4 if-le v5, p1, :cond_55 mul-int/lit8 v4, v4, 0x2 goto :goto_27 .line 119 :cond_32 div-int p2, v0, v1 div-int p1, p0, p1 invoke-static {p2, p1}, Ljava/lang/Math;->min(II)I move-result v4 goto :goto_55 :cond_3b if-eqz p3, :cond_4d .line 102 div-int/lit8 p2, v0, 0x2 .line 103 div-int/lit8 v3, p0, 0x2 move v4, v2 .line 104 :goto_42 div-int v5, p2, v4 if-gt v5, v1, :cond_4a div-int v5, v3, v4 if-le v5, p1, :cond_55 :cond_4a mul-int/lit8 v4, v4, 0x2 goto :goto_42 .line 108 :cond_4d div-int p2, v0, v1 div-int p1, p0, p1 invoke-static {p2, p1}, Ljava/lang/Math;->max(II)I move-result v4 :cond_55 :goto_55 if-ge v4, v2, :cond_58 goto :goto_59 :cond_58 move v2, v4 .line 127 :goto_59 invoke-static {v0, p0, v2, p3}, Lcom/nostra13/universalimageloader/utils/ImageSizeUtils;->considerMaxTextureSize(IIIZ)I move-result p0 return p0 .end method .method public static computeImageScale(Lcom/nostra13/universalimageloader/core/assist/ImageSize;Lcom/nostra13/universalimageloader/core/assist/ImageSize;Lcom/nostra13/universalimageloader/core/assist/ViewScaleType;Z)F .registers 11 .line 190 invoke-virtual {p0}, Lcom/nostra13/universalimageloader/core/assist/ImageSize;->getWidth()I move-result v0 .line 191 invoke-virtual {p0}, Lcom/nostra13/universalimageloader/core/assist/ImageSize;->getHeight()I move-result p0 .line 192 invoke-virtual {p1}, Lcom/nostra13/universalimageloader/core/assist/ImageSize;->getWidth()I move-result v1 .line 193 invoke-virtual {p1}, Lcom/nostra13/universalimageloader/core/assist/ImageSize;->getHeight()I move-result p1 int-to-float v2, v0 int-to-float v3, v1 div-float v3, v2, v3 int-to-float v4, p0 int-to-float v5, p1 div-float v5, v4, v5 .line 200 sget-object v6, Lcom/nostra13/universalimageloader/core/assist/ViewScaleType;->FIT_INSIDE:Lcom/nostra13/universalimageloader/core/assist/ViewScaleType; if-ne p2, v6, :cond_20 cmpl-float v6, v3, v5 if-gez v6, :cond_28 :cond_20 sget-object v6, Lcom/nostra13/universalimageloader/core/assist/ViewScaleType;->CROP:Lcom/nostra13/universalimageloader/core/assist/ViewScaleType; if-ne p2, v6, :cond_2b cmpg-float p2, v3, v5 if-gez p2, :cond_2b :cond_28 div-float/2addr v4, v3 float-to-int p1, v4 goto :goto_2e :cond_2b div-float p2, v2, v5 float-to-int v1, p2 :goto_2e if-nez p3, :cond_34 if-ge v1, v0, :cond_34 if-lt p1, p0, :cond_3a :cond_34 if-eqz p3, :cond_3d if-eq v1, v0, :cond_3d if-eq p1, p0, :cond_3d :cond_3a int-to-float p0, v1 div-float/2addr p0, v2 goto :goto_3f :cond_3d const/high16 p0, 0x3f800000 # 1.0f :goto_3f return p0 .end method .method public static computeMinImageSampleSize(Lcom/nostra13/universalimageloader/core/assist/ImageSize;)I .registers 4 .line 155 invoke-virtual {p0}, Lcom/nostra13/universalimageloader/core/assist/ImageSize;->getWidth()I move-result v0 .line 156 invoke-virtual {p0}, Lcom/nostra13/universalimageloader/core/assist/ImageSize;->getHeight()I move-result p0 .line 157 sget-object v1, Lcom/nostra13/universalimageloader/utils/ImageSizeUtils;->maxBitmapSize:Lcom/nostra13/universalimageloader/core/assist/ImageSize; invoke-virtual {v1}, Lcom/nostra13/universalimageloader/core/assist/ImageSize;->getWidth()I move-result v1 .line 158 sget-object v2, Lcom/nostra13/universalimageloader/utils/ImageSizeUtils;->maxBitmapSize:Lcom/nostra13/universalimageloader/core/assist/ImageSize; invoke-virtual {v2}, Lcom/nostra13/universalimageloader/core/assist/ImageSize;->getHeight()I move-result v2 int-to-float v0, v0 int-to-float v1, v1 div-float/2addr v0, v1 float-to-double v0, v0 .line 160 invoke-static {v0, v1}, Ljava/lang/Math;->ceil(D)D move-result-wide v0 double-to-int v0, v0 int-to-float p0, p0 int-to-float v1, v2 div-float/2addr p0, v1 float-to-double v1, p0 .line 161 invoke-static {v1, v2}, Ljava/lang/Math;->ceil(D)D move-result-wide v1 double-to-int p0, v1 .line 163 invoke-static {v0, p0}, Ljava/lang/Math;->max(II)I move-result p0 return p0 .end method .method private static considerMaxTextureSize(IIIZ)I .registers 7 .line 133 sget-object v0, Lcom/nostra13/universalimageloader/utils/ImageSizeUtils;->maxBitmapSize:Lcom/nostra13/universalimageloader/core/assist/ImageSize; invoke-virtual {v0}, Lcom/nostra13/universalimageloader/core/assist/ImageSize;->getWidth()I move-result v0 .line 134 sget-object v1, Lcom/nostra13/universalimageloader/utils/ImageSizeUtils;->maxBitmapSize:Lcom/nostra13/universalimageloader/core/assist/ImageSize; invoke-virtual {v1}, Lcom/nostra13/universalimageloader/core/assist/ImageSize;->getHeight()I move-result v1 .line 135 :goto_c div-int v2, p0, p2 if-gt v2, v0, :cond_16 div-int v2, p1, p2 if-le v2, v1, :cond_15 goto :goto_16 :cond_15 return p2 :cond_16 :goto_16 if-eqz p3, :cond_1b mul-int/lit8 p2, p2, 0x2 goto :goto_c :cond_1b add-int/lit8 p2, p2, 0x1 goto :goto_c .end method .method public static defineTargetSizeForView(Lcom/nostra13/universalimageloader/core/imageaware/ImageAware;Lcom/nostra13/universalimageloader/core/assist/ImageSize;)Lcom/nostra13/universalimageloader/core/assist/ImageSize; .registers 3 .line 54 invoke-interface {p0}, Lcom/nostra13/universalimageloader/core/imageaware/ImageAware;->getWidth()I move-result v0 if-gtz v0, :cond_a .line 55 invoke-virtual {p1}, Lcom/nostra13/universalimageloader/core/assist/ImageSize;->getWidth()I move-result v0 .line 57 :cond_a invoke-interface {p0}, Lcom/nostra13/universalimageloader/core/imageaware/ImageAware;->getHeight()I move-result p0 if-gtz p0, :cond_14 .line 58 invoke-virtual {p1}, Lcom/nostra13/universalimageloader/core/assist/ImageSize;->getHeight()I move-result p0 .line 60 :cond_14 new-instance p1, Lcom/nostra13/universalimageloader/core/assist/ImageSize; invoke-direct {p1, v0, p0}, Lcom/nostra13/universalimageloader/core/assist/ImageSize;->(II)V return-object p1 .end method