.class public Lcom/yalantis/ucrop/task/BitmapCropTask; .super Landroid/os/AsyncTask; .source "BitmapCropTask.java" # annotations .annotation system Ldalvik/annotation/Signature; value = { "Landroid/os/AsyncTask<", "Ljava/lang/Void;", "Ljava/lang/Void;", "Ljava/lang/Throwable;", ">;" } .end annotation # static fields .field private static final TAG:Ljava/lang/String; = "BitmapCropTask" # instance fields .field private cropOffsetX:I .field private cropOffsetY:I .field private final mCompressFormat:Landroid/graphics/Bitmap$CompressFormat; .field private final mCompressQuality:I .field private final mContext:Ljava/lang/ref/WeakReference; .annotation system Ldalvik/annotation/Signature; value = { "Ljava/lang/ref/WeakReference<", "Landroid/content/Context;", ">;" } .end annotation .end field .field private final mCropCallback:Lcom/yalantis/ucrop/callback/BitmapCropCallback; .field private final mCropRect:Landroid/graphics/RectF; .field private mCroppedImageHeight:I .field private mCroppedImageWidth:I .field private mCurrentAngle:F .field private final mCurrentImageRect:Landroid/graphics/RectF; .field private mCurrentScale:F .field private final mExifInfo:Lcom/yalantis/ucrop/model/ExifInfo; .field private final mImageInputUri:Landroid/net/Uri; .field private final mImageOutputPath:Ljava/lang/String; .field private final mMaxResultImageSizeX:I .field private final mMaxResultImageSizeY:I .field private mViewBitmap:Landroid/graphics/Bitmap; # direct methods .method public constructor (Landroid/content/Context;Landroid/graphics/Bitmap;Lcom/yalantis/ucrop/model/ImageState;Lcom/yalantis/ucrop/model/CropParameters;Lcom/yalantis/ucrop/callback/BitmapCropCallback;)V .registers 7 .line 64 invoke-direct {p0}, Landroid/os/AsyncTask;->()V .line 66 new-instance v0, Ljava/lang/ref/WeakReference; invoke-direct {v0, p1}, Ljava/lang/ref/WeakReference;->(Ljava/lang/Object;)V iput-object v0, p0, Lcom/yalantis/ucrop/task/BitmapCropTask;->mContext:Ljava/lang/ref/WeakReference; .line 68 iput-object p2, p0, Lcom/yalantis/ucrop/task/BitmapCropTask;->mViewBitmap:Landroid/graphics/Bitmap; .line 69 invoke-virtual {p3}, Lcom/yalantis/ucrop/model/ImageState;->getCropRect()Landroid/graphics/RectF; move-result-object p1 iput-object p1, p0, Lcom/yalantis/ucrop/task/BitmapCropTask;->mCropRect:Landroid/graphics/RectF; .line 70 invoke-virtual {p3}, Lcom/yalantis/ucrop/model/ImageState;->getCurrentImageRect()Landroid/graphics/RectF; move-result-object p1 iput-object p1, p0, Lcom/yalantis/ucrop/task/BitmapCropTask;->mCurrentImageRect:Landroid/graphics/RectF; .line 72 invoke-virtual {p3}, Lcom/yalantis/ucrop/model/ImageState;->getCurrentScale()F move-result p1 iput p1, p0, Lcom/yalantis/ucrop/task/BitmapCropTask;->mCurrentScale:F .line 73 invoke-virtual {p3}, Lcom/yalantis/ucrop/model/ImageState;->getCurrentAngle()F move-result p1 iput p1, p0, Lcom/yalantis/ucrop/task/BitmapCropTask;->mCurrentAngle:F .line 74 invoke-virtual {p4}, Lcom/yalantis/ucrop/model/CropParameters;->getMaxResultImageSizeX()I move-result p1 iput p1, p0, Lcom/yalantis/ucrop/task/BitmapCropTask;->mMaxResultImageSizeX:I .line 75 invoke-virtual {p4}, Lcom/yalantis/ucrop/model/CropParameters;->getMaxResultImageSizeY()I move-result p1 iput p1, p0, Lcom/yalantis/ucrop/task/BitmapCropTask;->mMaxResultImageSizeY:I .line 77 invoke-virtual {p4}, Lcom/yalantis/ucrop/model/CropParameters;->getCompressFormat()Landroid/graphics/Bitmap$CompressFormat; move-result-object p1 iput-object p1, p0, Lcom/yalantis/ucrop/task/BitmapCropTask;->mCompressFormat:Landroid/graphics/Bitmap$CompressFormat; .line 78 invoke-virtual {p4}, Lcom/yalantis/ucrop/model/CropParameters;->getCompressQuality()I move-result p1 iput p1, p0, Lcom/yalantis/ucrop/task/BitmapCropTask;->mCompressQuality:I .line 80 invoke-virtual {p4}, Lcom/yalantis/ucrop/model/CropParameters;->getImageInputUri()Landroid/net/Uri; move-result-object p1 iput-object p1, p0, Lcom/yalantis/ucrop/task/BitmapCropTask;->mImageInputUri:Landroid/net/Uri; .line 81 invoke-virtual {p4}, Lcom/yalantis/ucrop/model/CropParameters;->getImageOutputPath()Ljava/lang/String; move-result-object p1 iput-object p1, p0, Lcom/yalantis/ucrop/task/BitmapCropTask;->mImageOutputPath:Ljava/lang/String; .line 82 invoke-virtual {p4}, Lcom/yalantis/ucrop/model/CropParameters;->getExifInfo()Lcom/yalantis/ucrop/model/ExifInfo; move-result-object p1 iput-object p1, p0, Lcom/yalantis/ucrop/task/BitmapCropTask;->mExifInfo:Lcom/yalantis/ucrop/model/ExifInfo; .line 84 iput-object p5, p0, Lcom/yalantis/ucrop/task/BitmapCropTask;->mCropCallback:Lcom/yalantis/ucrop/callback/BitmapCropCallback; return-void .end method .method private crop()Z .registers 10 .annotation system Ldalvik/annotation/Throws; value = { Ljava/io/IOException; } .end annotation .line 112 iget v0, p0, Lcom/yalantis/ucrop/task/BitmapCropTask;->mMaxResultImageSizeX:I const/4 v1, 0x0 if-lez v0, :cond_5d iget v0, p0, Lcom/yalantis/ucrop/task/BitmapCropTask;->mMaxResultImageSizeY:I if-lez v0, :cond_5d .line 113 iget-object v0, p0, Lcom/yalantis/ucrop/task/BitmapCropTask;->mCropRect:Landroid/graphics/RectF; invoke-virtual {v0}, Landroid/graphics/RectF;->width()F move-result v0 iget v2, p0, Lcom/yalantis/ucrop/task/BitmapCropTask;->mCurrentScale:F div-float/2addr v0, v2 .line 114 iget-object v2, p0, Lcom/yalantis/ucrop/task/BitmapCropTask;->mCropRect:Landroid/graphics/RectF; invoke-virtual {v2}, Landroid/graphics/RectF;->height()F move-result v2 iget v3, p0, Lcom/yalantis/ucrop/task/BitmapCropTask;->mCurrentScale:F div-float/2addr v2, v3 .line 116 iget v3, p0, Lcom/yalantis/ucrop/task/BitmapCropTask;->mMaxResultImageSizeX:I int-to-float v4, v3 cmpl-float v4, v0, v4 if-gtz v4, :cond_29 iget v4, p0, Lcom/yalantis/ucrop/task/BitmapCropTask;->mMaxResultImageSizeY:I int-to-float v4, v4 cmpl-float v4, v2, v4 if-lez v4, :cond_5d :cond_29 int-to-float v3, v3 div-float/2addr v3, v0 .line 119 iget v0, p0, Lcom/yalantis/ucrop/task/BitmapCropTask;->mMaxResultImageSizeY:I int-to-float v0, v0 div-float/2addr v0, v2 .line 120 invoke-static {v3, v0}, Ljava/lang/Math;->min(FF)F move-result v0 .line 122 iget-object v2, p0, Lcom/yalantis/ucrop/task/BitmapCropTask;->mViewBitmap:Landroid/graphics/Bitmap; .line 123 invoke-virtual {v2}, Landroid/graphics/Bitmap;->getWidth()I move-result v3 int-to-float v3, v3 mul-float/2addr v3, v0 invoke-static {v3}, Ljava/lang/Math;->round(F)I move-result v3 iget-object v4, p0, Lcom/yalantis/ucrop/task/BitmapCropTask;->mViewBitmap:Landroid/graphics/Bitmap; .line 124 invoke-virtual {v4}, Landroid/graphics/Bitmap;->getHeight()I move-result v4 int-to-float v4, v4 mul-float/2addr v4, v0 invoke-static {v4}, Ljava/lang/Math;->round(F)I move-result v4 .line 122 invoke-static {v2, v3, v4, v1}, Landroid/graphics/Bitmap;->createScaledBitmap(Landroid/graphics/Bitmap;IIZ)Landroid/graphics/Bitmap; move-result-object v2 .line 125 iget-object v3, p0, Lcom/yalantis/ucrop/task/BitmapCropTask;->mViewBitmap:Landroid/graphics/Bitmap; if-eq v3, v2, :cond_56 .line 126 invoke-virtual {v3}, Landroid/graphics/Bitmap;->recycle()V .line 128 :cond_56 iput-object v2, p0, Lcom/yalantis/ucrop/task/BitmapCropTask;->mViewBitmap:Landroid/graphics/Bitmap; .line 130 iget v2, p0, Lcom/yalantis/ucrop/task/BitmapCropTask;->mCurrentScale:F div-float/2addr v2, v0 iput v2, p0, Lcom/yalantis/ucrop/task/BitmapCropTask;->mCurrentScale:F .line 135 :cond_5d iget v0, p0, Lcom/yalantis/ucrop/task/BitmapCropTask;->mCurrentAngle:F const/4 v2, 0x0 cmpl-float v0, v0, v2 if-eqz v0, :cond_9c .line 136 new-instance v7, Landroid/graphics/Matrix; invoke-direct {v7}, Landroid/graphics/Matrix;->()V .line 137 iget v0, p0, Lcom/yalantis/ucrop/task/BitmapCropTask;->mCurrentAngle:F iget-object v2, p0, Lcom/yalantis/ucrop/task/BitmapCropTask;->mViewBitmap:Landroid/graphics/Bitmap; invoke-virtual {v2}, Landroid/graphics/Bitmap;->getWidth()I move-result v2 div-int/lit8 v2, v2, 0x2 int-to-float v2, v2 iget-object v3, p0, Lcom/yalantis/ucrop/task/BitmapCropTask;->mViewBitmap:Landroid/graphics/Bitmap; invoke-virtual {v3}, Landroid/graphics/Bitmap;->getHeight()I move-result v3 div-int/lit8 v3, v3, 0x2 int-to-float v3, v3 invoke-virtual {v7, v0, v2, v3}, Landroid/graphics/Matrix;->setRotate(FFF)V .line 139 iget-object v2, p0, Lcom/yalantis/ucrop/task/BitmapCropTask;->mViewBitmap:Landroid/graphics/Bitmap; invoke-virtual {v2}, Landroid/graphics/Bitmap;->getWidth()I move-result v5 iget-object v0, p0, Lcom/yalantis/ucrop/task/BitmapCropTask;->mViewBitmap:Landroid/graphics/Bitmap; invoke-virtual {v0}, Landroid/graphics/Bitmap;->getHeight()I move-result v6 const/4 v8, 0x1 const/4 v3, 0x0 const/4 v4, 0x0 invoke-static/range {v2 .. v8}, Landroid/graphics/Bitmap;->createBitmap(Landroid/graphics/Bitmap;IIIILandroid/graphics/Matrix;Z)Landroid/graphics/Bitmap; move-result-object v0 .line 141 iget-object v2, p0, Lcom/yalantis/ucrop/task/BitmapCropTask;->mViewBitmap:Landroid/graphics/Bitmap; if-eq v2, v0, :cond_9a .line 142 invoke-virtual {v2}, Landroid/graphics/Bitmap;->recycle()V .line 144 :cond_9a iput-object v0, p0, Lcom/yalantis/ucrop/task/BitmapCropTask;->mViewBitmap:Landroid/graphics/Bitmap; .line 147 :cond_9c iget-object v0, p0, Lcom/yalantis/ucrop/task/BitmapCropTask;->mCropRect:Landroid/graphics/RectF; iget v0, v0, Landroid/graphics/RectF;->left:F iget-object v2, p0, Lcom/yalantis/ucrop/task/BitmapCropTask;->mCurrentImageRect:Landroid/graphics/RectF; iget v2, v2, Landroid/graphics/RectF;->left:F sub-float/2addr v0, v2 iget v2, p0, Lcom/yalantis/ucrop/task/BitmapCropTask;->mCurrentScale:F div-float/2addr v0, v2 invoke-static {v0}, Ljava/lang/Math;->round(F)I move-result v0 iput v0, p0, Lcom/yalantis/ucrop/task/BitmapCropTask;->cropOffsetX:I .line 148 iget-object v0, p0, Lcom/yalantis/ucrop/task/BitmapCropTask;->mCropRect:Landroid/graphics/RectF; iget v0, v0, Landroid/graphics/RectF;->top:F iget-object v2, p0, Lcom/yalantis/ucrop/task/BitmapCropTask;->mCurrentImageRect:Landroid/graphics/RectF; iget v2, v2, Landroid/graphics/RectF;->top:F sub-float/2addr v0, v2 iget v2, p0, Lcom/yalantis/ucrop/task/BitmapCropTask;->mCurrentScale:F div-float/2addr v0, v2 invoke-static {v0}, Ljava/lang/Math;->round(F)I move-result v0 iput v0, p0, Lcom/yalantis/ucrop/task/BitmapCropTask;->cropOffsetY:I .line 149 iget-object v0, p0, Lcom/yalantis/ucrop/task/BitmapCropTask;->mCropRect:Landroid/graphics/RectF; invoke-virtual {v0}, Landroid/graphics/RectF;->width()F move-result v0 iget v2, p0, Lcom/yalantis/ucrop/task/BitmapCropTask;->mCurrentScale:F div-float/2addr v0, v2 invoke-static {v0}, Ljava/lang/Math;->round(F)I move-result v0 iput v0, p0, Lcom/yalantis/ucrop/task/BitmapCropTask;->mCroppedImageWidth:I .line 150 iget-object v0, p0, Lcom/yalantis/ucrop/task/BitmapCropTask;->mCropRect:Landroid/graphics/RectF; invoke-virtual {v0}, Landroid/graphics/RectF;->height()F move-result v0 iget v2, p0, Lcom/yalantis/ucrop/task/BitmapCropTask;->mCurrentScale:F div-float/2addr v0, v2 invoke-static {v0}, Ljava/lang/Math;->round(F)I move-result v0 iput v0, p0, Lcom/yalantis/ucrop/task/BitmapCropTask;->mCroppedImageHeight:I .line 152 iget v2, p0, Lcom/yalantis/ucrop/task/BitmapCropTask;->mCroppedImageWidth:I invoke-direct {p0, v2, v0}, Lcom/yalantis/ucrop/task/BitmapCropTask;->shouldCrop(II)Z move-result v0 .line 153 new-instance v2, Ljava/lang/StringBuilder; const-string v3, "Should crop: " invoke-direct {v2, v3}, Ljava/lang/StringBuilder;->(Ljava/lang/String;)V invoke-virtual {v2, v0}, Ljava/lang/StringBuilder;->append(Z)Ljava/lang/StringBuilder; move-result-object v2 invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object v2 const-string v3, "BitmapCropTask" invoke-static {v3, v2}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I .line 154 iget-object v2, p0, Lcom/yalantis/ucrop/task/BitmapCropTask;->mContext:Ljava/lang/ref/WeakReference; .line 155 invoke-virtual {v2}, Ljava/lang/ref/WeakReference;->get()Ljava/lang/Object; move-result-object v2 check-cast v2, Landroid/content/Context; invoke-virtual {v2}, Landroid/content/Context;->getContentResolver()Landroid/content/ContentResolver; move-result-object v2 iget-object v3, p0, Lcom/yalantis/ucrop/task/BitmapCropTask;->mImageInputUri:Landroid/net/Uri; const-string v4, "r" invoke-virtual {v2, v3, v4}, Landroid/content/ContentResolver;->openFileDescriptor(Landroid/net/Uri;Ljava/lang/String;)Landroid/os/ParcelFileDescriptor; move-result-object v2 .line 156 new-instance v3, Ljava/io/FileInputStream; invoke-virtual {v2}, Landroid/os/ParcelFileDescriptor;->getFileDescriptor()Ljava/io/FileDescriptor; move-result-object v2 invoke-direct {v3, v2}, Ljava/io/FileInputStream;->(Ljava/io/FileDescriptor;)V .line 157 invoke-static {v3}, Lcom/yalantis/ucrop/util/FileUtils;->extSuffix(Ljava/io/InputStream;)Ljava/lang/String; move-result-object v2 .line 158 sget v4, Landroid/os/Build$VERSION;->SDK_INT:I const/16 v5, 0x1d const/4 v6, 0x1 if-lt v4, v5, :cond_121 move v1, v6 :cond_121 if-eqz v0, :cond_16f .line 160 invoke-static {v2}, Lcom/yalantis/ucrop/util/FileUtils;->isGifForSuffix(Ljava/lang/String;)Z move-result v0 if-eqz v0, :cond_137 if-nez v1, :cond_136 .line 163 iget-object v0, p0, Lcom/yalantis/ucrop/task/BitmapCropTask;->mImageInputUri:Landroid/net/Uri; invoke-virtual {v0}, Landroid/net/Uri;->getPath()Ljava/lang/String; move-result-object v0 iget-object v1, p0, Lcom/yalantis/ucrop/task/BitmapCropTask;->mImageOutputPath:Ljava/lang/String; invoke-static {v0, v1}, Lcom/yalantis/ucrop/util/FileUtils;->copyFile(Ljava/lang/String;Ljava/lang/String;)V :cond_136 return v6 :cond_137 if-eqz v1, :cond_13f .line 169 new-instance v0, Landroid/media/ExifInterface; invoke-direct {v0, v3}, Landroid/media/ExifInterface;->(Ljava/io/InputStream;)V goto :goto_14a .line 171 :cond_13f new-instance v0, Landroid/media/ExifInterface; iget-object v1, p0, Lcom/yalantis/ucrop/task/BitmapCropTask;->mImageInputUri:Landroid/net/Uri; invoke-virtual {v1}, Landroid/net/Uri;->getPath()Ljava/lang/String; move-result-object v1 invoke-direct {v0, v1}, Landroid/media/ExifInterface;->(Ljava/lang/String;)V .line 173 :goto_14a iget-object v1, p0, Lcom/yalantis/ucrop/task/BitmapCropTask;->mViewBitmap:Landroid/graphics/Bitmap; iget v2, p0, Lcom/yalantis/ucrop/task/BitmapCropTask;->cropOffsetX:I iget v3, p0, Lcom/yalantis/ucrop/task/BitmapCropTask;->cropOffsetY:I iget v4, p0, Lcom/yalantis/ucrop/task/BitmapCropTask;->mCroppedImageWidth:I iget v5, p0, Lcom/yalantis/ucrop/task/BitmapCropTask;->mCroppedImageHeight:I invoke-static {v1, v2, v3, v4, v5}, Landroid/graphics/Bitmap;->createBitmap(Landroid/graphics/Bitmap;IIII)Landroid/graphics/Bitmap; move-result-object v1 invoke-direct {p0, v1}, Lcom/yalantis/ucrop/task/BitmapCropTask;->saveImage(Landroid/graphics/Bitmap;)V .line 174 iget-object v1, p0, Lcom/yalantis/ucrop/task/BitmapCropTask;->mCompressFormat:Landroid/graphics/Bitmap$CompressFormat; sget-object v2, Landroid/graphics/Bitmap$CompressFormat;->JPEG:Landroid/graphics/Bitmap$CompressFormat; invoke-virtual {v1, v2}, Landroid/graphics/Bitmap$CompressFormat;->equals(Ljava/lang/Object;)Z move-result v1 if-eqz v1, :cond_16e .line 175 iget v1, p0, Lcom/yalantis/ucrop/task/BitmapCropTask;->mCroppedImageWidth:I iget v2, p0, Lcom/yalantis/ucrop/task/BitmapCropTask;->mCroppedImageHeight:I iget-object v3, p0, Lcom/yalantis/ucrop/task/BitmapCropTask;->mImageOutputPath:Ljava/lang/String; invoke-static {v0, v1, v2, v3}, Lcom/yalantis/ucrop/util/ImageHeaderParser;->copyExif(Landroid/media/ExifInterface;IILjava/lang/String;)V :cond_16e return v6 :cond_16f if-eqz v1, :cond_172 return v6 .line 182 :cond_172 iget-object v0, p0, Lcom/yalantis/ucrop/task/BitmapCropTask;->mImageInputUri:Landroid/net/Uri; invoke-virtual {v0}, Landroid/net/Uri;->getPath()Ljava/lang/String; move-result-object v0 iget-object v1, p0, Lcom/yalantis/ucrop/task/BitmapCropTask;->mImageOutputPath:Ljava/lang/String; invoke-static {v0, v1}, Lcom/yalantis/ucrop/util/FileUtils;->copyFile(Ljava/lang/String;Ljava/lang/String;)V return v6 .end method .method private saveImage(Landroid/graphics/Bitmap;)V .registers 6 .annotation system Ldalvik/annotation/Throws; value = { Ljava/io/FileNotFoundException; } .end annotation .line 189 iget-object v0, p0, Lcom/yalantis/ucrop/task/BitmapCropTask;->mContext:Ljava/lang/ref/WeakReference; invoke-virtual {v0}, Ljava/lang/ref/WeakReference;->get()Ljava/lang/Object; move-result-object v0 check-cast v0, Landroid/content/Context; if-nez v0, :cond_b return-void :cond_b const/4 v1, 0x0 .line 196 :try_start_c invoke-virtual {v0}, Landroid/content/Context;->getContentResolver()Landroid/content/ContentResolver; move-result-object v0 new-instance v2, Ljava/io/File; iget-object v3, p0, Lcom/yalantis/ucrop/task/BitmapCropTask;->mImageOutputPath:Ljava/lang/String; invoke-direct {v2, v3}, Ljava/io/File;->(Ljava/lang/String;)V invoke-static {v2}, Landroid/net/Uri;->fromFile(Ljava/io/File;)Landroid/net/Uri; move-result-object v2 invoke-virtual {v0, v2}, Landroid/content/ContentResolver;->openOutputStream(Landroid/net/Uri;)Ljava/io/OutputStream; move-result-object v1 .line 197 iget-object v0, p0, Lcom/yalantis/ucrop/task/BitmapCropTask;->mCompressFormat:Landroid/graphics/Bitmap$CompressFormat; iget v2, p0, Lcom/yalantis/ucrop/task/BitmapCropTask;->mCompressQuality:I invoke-virtual {p1, v0, v2, v1}, Landroid/graphics/Bitmap;->compress(Landroid/graphics/Bitmap$CompressFormat;ILjava/io/OutputStream;)Z .line 198 invoke-virtual {p1}, Landroid/graphics/Bitmap;->recycle()V :try_end_29 .catchall {:try_start_c .. :try_end_29} :catchall_2d .line 200 invoke-static {v1}, Lcom/yalantis/ucrop/util/BitmapLoadUtils;->close(Ljava/io/Closeable;)V return-void :catchall_2d move-exception p1 invoke-static {v1}, Lcom/yalantis/ucrop/util/BitmapLoadUtils;->close(Ljava/io/Closeable;)V .line 201 throw p1 .end method .method private shouldCrop(II)Z .registers 5 .line 214 invoke-static {p1, p2}, Ljava/lang/Math;->max(II)I move-result p1 int-to-float p1, p1 const/high16 p2, 0x447a0000 # 1000.0f div-float/2addr p1, p2 invoke-static {p1}, Ljava/lang/Math;->round(F)I move-result p1 const/4 p2, 0x1 add-int/2addr p1, p2 .line 215 iget v0, p0, Lcom/yalantis/ucrop/task/BitmapCropTask;->mMaxResultImageSizeX:I if-lez v0, :cond_16 iget v0, p0, Lcom/yalantis/ucrop/task/BitmapCropTask;->mMaxResultImageSizeY:I if-gtz v0, :cond_5d :cond_16 iget-object v0, p0, Lcom/yalantis/ucrop/task/BitmapCropTask;->mCropRect:Landroid/graphics/RectF; iget v0, v0, Landroid/graphics/RectF;->left:F iget-object v1, p0, Lcom/yalantis/ucrop/task/BitmapCropTask;->mCurrentImageRect:Landroid/graphics/RectF; iget v1, v1, Landroid/graphics/RectF;->left:F sub-float/2addr v0, v1 .line 216 invoke-static {v0}, Ljava/lang/Math;->abs(F)F move-result v0 int-to-float p1, p1 cmpl-float v0, v0, p1 if-gtz v0, :cond_5d iget-object v0, p0, Lcom/yalantis/ucrop/task/BitmapCropTask;->mCropRect:Landroid/graphics/RectF; iget v0, v0, Landroid/graphics/RectF;->top:F iget-object v1, p0, Lcom/yalantis/ucrop/task/BitmapCropTask;->mCurrentImageRect:Landroid/graphics/RectF; iget v1, v1, Landroid/graphics/RectF;->top:F sub-float/2addr v0, v1 .line 217 invoke-static {v0}, Ljava/lang/Math;->abs(F)F move-result v0 cmpl-float v0, v0, p1 if-gtz v0, :cond_5d iget-object v0, p0, Lcom/yalantis/ucrop/task/BitmapCropTask;->mCropRect:Landroid/graphics/RectF; iget v0, v0, Landroid/graphics/RectF;->bottom:F iget-object v1, p0, Lcom/yalantis/ucrop/task/BitmapCropTask;->mCurrentImageRect:Landroid/graphics/RectF; iget v1, v1, Landroid/graphics/RectF;->bottom:F sub-float/2addr v0, v1 .line 218 invoke-static {v0}, Ljava/lang/Math;->abs(F)F move-result v0 cmpl-float v0, v0, p1 if-gtz v0, :cond_5d iget-object v0, p0, Lcom/yalantis/ucrop/task/BitmapCropTask;->mCropRect:Landroid/graphics/RectF; iget v0, v0, Landroid/graphics/RectF;->right:F iget-object v1, p0, Lcom/yalantis/ucrop/task/BitmapCropTask;->mCurrentImageRect:Landroid/graphics/RectF; iget v1, v1, Landroid/graphics/RectF;->right:F sub-float/2addr v0, v1 .line 219 invoke-static {v0}, Ljava/lang/Math;->abs(F)F move-result v0 cmpl-float p1, v0, p1 if-lez p1, :cond_5c goto :goto_5d :cond_5c const/4 p2, 0x0 :cond_5d :goto_5d return p2 .end method # virtual methods .method protected bridge synthetic doInBackground([Ljava/lang/Object;)Ljava/lang/Object; .registers 2 .line 39 check-cast p1, [Ljava/lang/Void; invoke-virtual {p0, p1}, Lcom/yalantis/ucrop/task/BitmapCropTask;->doInBackground([Ljava/lang/Void;)Ljava/lang/Throwable; move-result-object p1 return-object p1 .end method .method protected varargs doInBackground([Ljava/lang/Void;)Ljava/lang/Throwable; .registers 3 .line 90 iget-object p1, p0, Lcom/yalantis/ucrop/task/BitmapCropTask;->mViewBitmap:Landroid/graphics/Bitmap; if-nez p1, :cond_c .line 91 new-instance p1, Ljava/lang/NullPointerException; const-string v0, "ViewBitmap is null" invoke-direct {p1, v0}, Ljava/lang/NullPointerException;->(Ljava/lang/String;)V return-object p1 .line 92 :cond_c invoke-virtual {p1}, Landroid/graphics/Bitmap;->isRecycled()Z move-result p1 if-eqz p1, :cond_1a .line 93 new-instance p1, Ljava/lang/NullPointerException; const-string v0, "ViewBitmap is recycled" invoke-direct {p1, v0}, Ljava/lang/NullPointerException;->(Ljava/lang/String;)V return-object p1 .line 94 :cond_1a iget-object p1, p0, Lcom/yalantis/ucrop/task/BitmapCropTask;->mCurrentImageRect:Landroid/graphics/RectF; invoke-virtual {p1}, Landroid/graphics/RectF;->isEmpty()Z move-result p1 if-eqz p1, :cond_2a .line 95 new-instance p1, Ljava/lang/NullPointerException; const-string v0, "CurrentImageRect is empty" invoke-direct {p1, v0}, Ljava/lang/NullPointerException;->(Ljava/lang/String;)V return-object p1 .line 100 :cond_2a :try_start_2a invoke-direct {p0}, Lcom/yalantis/ucrop/task/BitmapCropTask;->crop()Z const/4 p1, 0x0 .line 101 iput-object p1, p0, Lcom/yalantis/ucrop/task/BitmapCropTask;->mViewBitmap:Landroid/graphics/Bitmap; :try_end_30 .catchall {:try_start_2a .. :try_end_30} :catchall_31 return-object p1 :catchall_31 move-exception p1 return-object p1 .end method .method protected bridge synthetic onPostExecute(Ljava/lang/Object;)V .registers 2 .line 39 check-cast p1, Ljava/lang/Throwable; invoke-virtual {p0, p1}, Lcom/yalantis/ucrop/task/BitmapCropTask;->onPostExecute(Ljava/lang/Throwable;)V return-void .end method .method protected onPostExecute(Ljava/lang/Throwable;)V .registers 9 .line 224 iget-object v0, p0, Lcom/yalantis/ucrop/task/BitmapCropTask;->mCropCallback:Lcom/yalantis/ucrop/callback/BitmapCropCallback; if-eqz v0, :cond_22 if-nez p1, :cond_1f .line 226 new-instance p1, Ljava/io/File; iget-object v0, p0, Lcom/yalantis/ucrop/task/BitmapCropTask;->mImageOutputPath:Ljava/lang/String; invoke-direct {p1, v0}, Ljava/io/File;->(Ljava/lang/String;)V invoke-static {p1}, Landroid/net/Uri;->fromFile(Ljava/io/File;)Landroid/net/Uri; move-result-object v2 .line 227 iget-object v1, p0, Lcom/yalantis/ucrop/task/BitmapCropTask;->mCropCallback:Lcom/yalantis/ucrop/callback/BitmapCropCallback; iget v3, p0, Lcom/yalantis/ucrop/task/BitmapCropTask;->cropOffsetX:I iget v4, p0, Lcom/yalantis/ucrop/task/BitmapCropTask;->cropOffsetY:I iget v5, p0, Lcom/yalantis/ucrop/task/BitmapCropTask;->mCroppedImageWidth:I iget v6, p0, Lcom/yalantis/ucrop/task/BitmapCropTask;->mCroppedImageHeight:I invoke-interface/range {v1 .. v6}, Lcom/yalantis/ucrop/callback/BitmapCropCallback;->onBitmapCropped(Landroid/net/Uri;IIII)V goto :goto_22 .line 229 :cond_1f invoke-interface {v0, p1}, Lcom/yalantis/ucrop/callback/BitmapCropCallback;->onCropFailure(Ljava/lang/Throwable;)V :cond_22 :goto_22 return-void .end method