BitmapAnimationBackend.smali
.class public Lcom/facebook/fresco/animation/bitmap/BitmapAnimationBackend;
.super Ljava/lang/Object;
.source "SourceFile"
# interfaces
.implements Lcom/facebook/fresco/animation/backend/AnimationBackend;
.implements Lcom/facebook/fresco/animation/backend/AnimationBackendDelegateWithInactivityCheck$InactivityListener;
# annotations
.annotation system Ldalvik/annotation/MemberClasses;
value = {
Lcom/facebook/fresco/animation/bitmap/BitmapAnimationBackend$FrameType;,
Lcom/facebook/fresco/animation/bitmap/BitmapAnimationBackend$FrameListener;
}
.end annotation
# static fields
.field public static final FRAME_TYPE_CACHED:I = 0x0
.field public static final FRAME_TYPE_CREATED:I = 0x2
.field public static final FRAME_TYPE_FALLBACK:I = 0x3
.field public static final FRAME_TYPE_REUSED:I = 0x1
.field public static final FRAME_TYPE_UNKNOWN:I = -0x1
.field private static final TAG:Ljava/lang/Class;
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/lang/Class<",
"*>;"
}
.end annotation
.end field
# instance fields
.field private final mAnimationInformation:Lcom/facebook/fresco/animation/backend/AnimationInformation;
.field private mBitmapConfig:Landroid/graphics/Bitmap$Config;
.field private final mBitmapFrameCache:Lcom/facebook/fresco/animation/bitmap/BitmapFrameCache;
.field private final mBitmapFramePreparationStrategy:Lcom/facebook/fresco/animation/bitmap/preparation/BitmapFramePreparationStrategy;
.field private final mBitmapFramePreparer:Lcom/facebook/fresco/animation/bitmap/preparation/BitmapFramePreparer;
.field private final mBitmapFrameRenderer:Lcom/facebook/fresco/animation/bitmap/BitmapFrameRenderer;
.field private mBitmapHeight:I
.field private mBitmapWidth:I
.field private mBounds:Landroid/graphics/Rect;
.field private mFrameListener:Lcom/facebook/fresco/animation/bitmap/BitmapAnimationBackend$FrameListener;
.field private final mPaint:Landroid/graphics/Paint;
.field private final mPlatformBitmapFactory:Lcom/facebook/imagepipeline/bitmaps/PlatformBitmapFactory;
.field private mRoundHelper:Lcom/facebook/fresco/animation/drawable/AnimationRoundHelper;
# direct methods
.method static constructor <clinit>()V
.registers 1
.line 92
const-class v0, Lcom/facebook/fresco/animation/bitmap/BitmapAnimationBackend;
sput-object v0, Lcom/facebook/fresco/animation/bitmap/BitmapAnimationBackend;->TAG:Ljava/lang/Class;
return-void
.end method
.method public constructor <init>(Lcom/facebook/imagepipeline/bitmaps/PlatformBitmapFactory;Lcom/facebook/fresco/animation/bitmap/BitmapFrameCache;Lcom/facebook/fresco/animation/backend/AnimationInformation;Lcom/facebook/fresco/animation/bitmap/BitmapFrameRenderer;Lcom/facebook/fresco/animation/bitmap/preparation/BitmapFramePreparationStrategy;Lcom/facebook/fresco/animation/bitmap/preparation/BitmapFramePreparer;)V
.registers 8
.line 118
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 108
sget-object v0, Landroid/graphics/Bitmap$Config;->ARGB_8888:Landroid/graphics/Bitmap$Config;
iput-object v0, p0, Lcom/facebook/fresco/animation/bitmap/BitmapAnimationBackend;->mBitmapConfig:Landroid/graphics/Bitmap$Config;
.line 119
iput-object p1, p0, Lcom/facebook/fresco/animation/bitmap/BitmapAnimationBackend;->mPlatformBitmapFactory:Lcom/facebook/imagepipeline/bitmaps/PlatformBitmapFactory;
.line 120
iput-object p2, p0, Lcom/facebook/fresco/animation/bitmap/BitmapAnimationBackend;->mBitmapFrameCache:Lcom/facebook/fresco/animation/bitmap/BitmapFrameCache;
.line 121
iput-object p3, p0, Lcom/facebook/fresco/animation/bitmap/BitmapAnimationBackend;->mAnimationInformation:Lcom/facebook/fresco/animation/backend/AnimationInformation;
.line 122
iput-object p4, p0, Lcom/facebook/fresco/animation/bitmap/BitmapAnimationBackend;->mBitmapFrameRenderer:Lcom/facebook/fresco/animation/bitmap/BitmapFrameRenderer;
.line 123
iput-object p5, p0, Lcom/facebook/fresco/animation/bitmap/BitmapAnimationBackend;->mBitmapFramePreparationStrategy:Lcom/facebook/fresco/animation/bitmap/preparation/BitmapFramePreparationStrategy;
.line 124
iput-object p6, p0, Lcom/facebook/fresco/animation/bitmap/BitmapAnimationBackend;->mBitmapFramePreparer:Lcom/facebook/fresco/animation/bitmap/preparation/BitmapFramePreparer;
.line 126
new-instance p1, Landroid/graphics/Paint;
const/4 p2, 0x6
invoke-direct {p1, p2}, Landroid/graphics/Paint;-><init>(I)V
iput-object p1, p0, Lcom/facebook/fresco/animation/bitmap/BitmapAnimationBackend;->mPaint:Landroid/graphics/Paint;
.line 127
invoke-direct {p0}, Lcom/facebook/fresco/animation/bitmap/BitmapAnimationBackend;->updateBitmapDimensions()V
return-void
.end method
.method private drawBitmapAndCache(Landroid/graphics/drawable/Drawable;ILcom/facebook/common/references/CloseableReference;Landroid/graphics/Canvas;I)Z
.registers 14
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Landroid/graphics/drawable/Drawable;",
"I",
"Lcom/facebook/common/references/CloseableReference<",
"Landroid/graphics/Bitmap;",
">;",
"Landroid/graphics/Canvas;",
"I)Z"
}
.end annotation
.line 342
invoke-static {p3}, Lcom/facebook/common/references/CloseableReference;->isValid(Lcom/facebook/common/references/CloseableReference;)Z
move-result v0
if-nez v0, :cond_8
const/4 p1, 0x0
return p1
.line 346
:cond_8
instance-of v0, p1, Lcom/facebook/fresco/animation/drawable/AnimationRoundParams;
if-eqz v0, :cond_3e
.line 347
new-instance v0, Lcom/facebook/fresco/animation/drawable/AnimationRoundHelper;
move-object v7, p1
check-cast v7, Lcom/facebook/fresco/animation/drawable/AnimationRoundParams;
.line 348
invoke-interface {v7}, Lcom/facebook/fresco/animation/drawable/AnimationRoundParams;->getTransformCallback()Lcom/facebook/drawee/drawable/TransformCallback;
move-result-object v2
.line 350
invoke-virtual {p1}, Landroid/graphics/drawable/Drawable;->getBounds()Landroid/graphics/Rect;
move-result-object v4
.line 351
invoke-virtual {p3}, Lcom/facebook/common/references/CloseableReference;->get()Ljava/lang/Object;
move-result-object p1
check-cast p1, Landroid/graphics/Bitmap;
invoke-virtual {p1}, Landroid/graphics/Bitmap;->getWidth()I
move-result v5
.line 352
invoke-virtual {p3}, Lcom/facebook/common/references/CloseableReference;->get()Ljava/lang/Object;
move-result-object p1
check-cast p1, Landroid/graphics/Bitmap;
invoke-virtual {p1}, Landroid/graphics/Bitmap;->getHeight()I
move-result v6
move-object v1, v0
move-object v3, v7
invoke-direct/range {v1 .. v6}, Lcom/facebook/fresco/animation/drawable/AnimationRoundHelper;-><init>(Lcom/facebook/drawee/drawable/TransformCallback;Lcom/facebook/fresco/animation/drawable/AnimationRoundParams;Landroid/graphics/Rect;II)V
iput-object v0, p0, Lcom/facebook/fresco/animation/bitmap/BitmapAnimationBackend;->mRoundHelper:Lcom/facebook/fresco/animation/drawable/AnimationRoundHelper;
.line 353
invoke-virtual {p3}, Lcom/facebook/common/references/CloseableReference;->get()Ljava/lang/Object;
move-result-object p1
check-cast p1, Landroid/graphics/Bitmap;
invoke-direct {p0, p4, v7, p1}, Lcom/facebook/fresco/animation/bitmap/BitmapAnimationBackend;->drawBitmapWithRound(Landroid/graphics/Canvas;Lcom/facebook/fresco/animation/drawable/AnimationRoundParams;Landroid/graphics/Bitmap;)V
goto :goto_47
.line 355
:cond_3e
invoke-virtual {p3}, Lcom/facebook/common/references/CloseableReference;->get()Ljava/lang/Object;
move-result-object p1
check-cast p1, Landroid/graphics/Bitmap;
invoke-direct {p0, p4, p1}, Lcom/facebook/fresco/animation/bitmap/BitmapAnimationBackend;->drawBitmapNormal(Landroid/graphics/Canvas;Landroid/graphics/Bitmap;)V
:goto_47
const/4 p1, 0x3
if-eq p5, p1, :cond_4f
.line 361
iget-object p1, p0, Lcom/facebook/fresco/animation/bitmap/BitmapAnimationBackend;->mBitmapFrameCache:Lcom/facebook/fresco/animation/bitmap/BitmapFrameCache;
invoke-interface {p1, p2, p3, p5}, Lcom/facebook/fresco/animation/bitmap/BitmapFrameCache;->onFrameRendered(ILcom/facebook/common/references/CloseableReference;I)V
.line 367
:cond_4f
iget-object p1, p0, Lcom/facebook/fresco/animation/bitmap/BitmapAnimationBackend;->mFrameListener:Lcom/facebook/fresco/animation/bitmap/BitmapAnimationBackend$FrameListener;
if-eqz p1, :cond_56
.line 368
invoke-interface {p1, p0, p2, p5}, Lcom/facebook/fresco/animation/bitmap/BitmapAnimationBackend$FrameListener;->onFrameDrawn(Lcom/facebook/fresco/animation/bitmap/BitmapAnimationBackend;II)V
:cond_56
const/4 p1, 0x1
return p1
.end method
.method private drawBitmapNormal(Landroid/graphics/Canvas;Landroid/graphics/Bitmap;)V
.registers 6
.line 382
iget-object v0, p0, Lcom/facebook/fresco/animation/bitmap/BitmapAnimationBackend;->mBounds:Landroid/graphics/Rect;
if-nez v0, :cond_b
.line 383
iget-object v0, p0, Lcom/facebook/fresco/animation/bitmap/BitmapAnimationBackend;->mPaint:Landroid/graphics/Paint;
const/4 v1, 0x0
invoke-virtual {p1, p2, v1, v1, v0}, Landroid/graphics/Canvas;->drawBitmap(Landroid/graphics/Bitmap;FFLandroid/graphics/Paint;)V
return-void
:cond_b
const/4 v1, 0x0
.line 385
iget-object v2, p0, Lcom/facebook/fresco/animation/bitmap/BitmapAnimationBackend;->mPaint:Landroid/graphics/Paint;
invoke-virtual {p1, p2, v1, v0, v2}, Landroid/graphics/Canvas;->drawBitmap(Landroid/graphics/Bitmap;Landroid/graphics/Rect;Landroid/graphics/Rect;Landroid/graphics/Paint;)V
return-void
.end method
.method private drawBitmapWithRound(Landroid/graphics/Canvas;Lcom/facebook/fresco/animation/drawable/AnimationRoundParams;Landroid/graphics/Bitmap;)V
.registers 4
.line 374
invoke-interface {p2}, Lcom/facebook/fresco/animation/drawable/AnimationRoundParams;->shouldRound()Z
move-result p2
if-nez p2, :cond_a
.line 375
invoke-direct {p0, p1, p3}, Lcom/facebook/fresco/animation/bitmap/BitmapAnimationBackend;->drawBitmapNormal(Landroid/graphics/Canvas;Landroid/graphics/Bitmap;)V
return-void
.line 377
:cond_a
iget-object p2, p0, Lcom/facebook/fresco/animation/bitmap/BitmapAnimationBackend;->mRoundHelper:Lcom/facebook/fresco/animation/drawable/AnimationRoundHelper;
invoke-virtual {p2, p1, p3}, Lcom/facebook/fresco/animation/drawable/AnimationRoundHelper;->drawBitmap(Landroid/graphics/Canvas;Landroid/graphics/Bitmap;)V
return-void
.end method
.method private drawFrameOrFallback(Landroid/graphics/drawable/Drawable;Landroid/graphics/Canvas;II)Z
.registers 18
move-object v7, p0
move/from16 v0, p3
move/from16 v1, p4
:goto_5
const/4 v8, 0x3
const/4 v9, 0x2
const/4 v10, -0x1
const/4 v2, 0x0
const/4 v11, 0x1
if-eqz v1, :cond_81
const/4 v12, 0x0
if-eq v1, v11, :cond_5f
if-eq v1, v9, :cond_2b
if-eq v1, v8, :cond_17
.line 233
invoke-static {v2}, Lcom/facebook/common/references/CloseableReference;->closeSafely(Lcom/facebook/common/references/CloseableReference;)V
return v12
.line 225
:cond_17
:try_start_17
iget-object v1, v7, Lcom/facebook/fresco/animation/bitmap/BitmapAnimationBackend;->mBitmapFrameCache:Lcom/facebook/fresco/animation/bitmap/BitmapFrameCache;
invoke-interface {v1, v0}, Lcom/facebook/fresco/animation/bitmap/BitmapFrameCache;->getFallbackFrame(I)Lcom/facebook/common/references/CloseableReference;
move-result-object v8
:try_end_1d
.catchall {:try_start_17 .. :try_end_1d} :catchall_a1
const/4 v6, 0x3
move-object v1, p0
move-object v2, p1
move/from16 v3, p3
move-object v4, v8
move-object v5, p2
.line 226
:try_start_24
invoke-direct/range {v1 .. v6}, Lcom/facebook/fresco/animation/bitmap/BitmapAnimationBackend;->drawBitmapAndCache(Landroid/graphics/drawable/Drawable;ILcom/facebook/common/references/CloseableReference;Landroid/graphics/Canvas;I)Z
move-result v1
:try_end_28
.catchall {:try_start_24 .. :try_end_28} :catchall_9e
const/4 v11, -0x1
goto/16 :goto_92
.line 210
:cond_2b
:try_start_2b
iget-object v1, v7, Lcom/facebook/fresco/animation/bitmap/BitmapAnimationBackend;->mPlatformBitmapFactory:Lcom/facebook/imagepipeline/bitmaps/PlatformBitmapFactory;
iget v3, v7, Lcom/facebook/fresco/animation/bitmap/BitmapAnimationBackend;->mBitmapWidth:I
iget v4, v7, Lcom/facebook/fresco/animation/bitmap/BitmapAnimationBackend;->mBitmapHeight:I
iget-object v5, v7, Lcom/facebook/fresco/animation/bitmap/BitmapAnimationBackend;->mBitmapConfig:Landroid/graphics/Bitmap$Config;
.line 211
invoke-virtual {v1, v3, v4, v5}, Lcom/facebook/imagepipeline/bitmaps/PlatformBitmapFactory;->createBitmap(IILandroid/graphics/Bitmap$Config;)Lcom/facebook/common/references/CloseableReference;
move-result-object v9
:try_end_37
.catch Ljava/lang/RuntimeException; {:try_start_2b .. :try_end_37} :catch_53
.catchall {:try_start_2b .. :try_end_37} :catchall_a1
.line 219
:try_start_37
invoke-direct {p0, v0, v9}, Lcom/facebook/fresco/animation/bitmap/BitmapAnimationBackend;->renderFrameInBitmap(ILcom/facebook/common/references/CloseableReference;)Z
move-result v1
if-eqz v1, :cond_4b
const/4 v6, 0x2
move-object v1, p0
move-object v2, p1
move/from16 v3, p3
move-object v4, v9
move-object v5, p2
.line 220
invoke-direct/range {v1 .. v6}, Lcom/facebook/fresco/animation/bitmap/BitmapAnimationBackend;->drawBitmapAndCache(Landroid/graphics/drawable/Drawable;ILcom/facebook/common/references/CloseableReference;Landroid/graphics/Canvas;I)Z
move-result v1
:try_end_48
.catchall {:try_start_37 .. :try_end_48} :catchall_50
if-eqz v1, :cond_4b
goto :goto_4c
:cond_4b
const/4 v11, 0x0
:goto_4c
move-object v8, v9
move v1, v11
const/4 v11, 0x3
goto :goto_92
:catchall_50
move-exception v0
move-object v2, v9
goto :goto_a2
:catch_53
move-exception v0
.line 215
:try_start_54
sget-object v1, Lcom/facebook/fresco/animation/bitmap/BitmapAnimationBackend;->TAG:Ljava/lang/Class;
const-string v3, "Failed to create frame bitmap"
invoke-static {v1, v3, v0}, Lcom/facebook/common/logging/FLog;->w(Ljava/lang/Class;Ljava/lang/String;Ljava/lang/Throwable;)V
:try_end_5b
.catchall {:try_start_54 .. :try_end_5b} :catchall_a1
.line 233
invoke-static {v2}, Lcom/facebook/common/references/CloseableReference;->closeSafely(Lcom/facebook/common/references/CloseableReference;)V
return v12
.line 200
:cond_5f
:try_start_5f
iget-object v1, v7, Lcom/facebook/fresco/animation/bitmap/BitmapAnimationBackend;->mBitmapFrameCache:Lcom/facebook/fresco/animation/bitmap/BitmapFrameCache;
iget v3, v7, Lcom/facebook/fresco/animation/bitmap/BitmapAnimationBackend;->mBitmapWidth:I
iget v4, v7, Lcom/facebook/fresco/animation/bitmap/BitmapAnimationBackend;->mBitmapHeight:I
.line 201
invoke-interface {v1, v0, v3, v4}, Lcom/facebook/fresco/animation/bitmap/BitmapFrameCache;->getBitmapToReuseForFrame(III)Lcom/facebook/common/references/CloseableReference;
move-result-object v8
:try_end_69
.catchall {:try_start_5f .. :try_end_69} :catchall_a1
.line 203
:try_start_69
invoke-direct {p0, v0, v8}, Lcom/facebook/fresco/animation/bitmap/BitmapAnimationBackend;->renderFrameInBitmap(ILcom/facebook/common/references/CloseableReference;)Z
move-result v1
if-eqz v1, :cond_7d
const/4 v6, 0x1
move-object v1, p0
move-object v2, p1
move/from16 v3, p3
move-object v4, v8
move-object v5, p2
.line 204
invoke-direct/range {v1 .. v6}, Lcom/facebook/fresco/animation/bitmap/BitmapAnimationBackend;->drawBitmapAndCache(Landroid/graphics/drawable/Drawable;ILcom/facebook/common/references/CloseableReference;Landroid/graphics/Canvas;I)Z
move-result v1
:try_end_7a
.catchall {:try_start_69 .. :try_end_7a} :catchall_9e
if-eqz v1, :cond_7d
goto :goto_7e
:cond_7d
const/4 v11, 0x0
:goto_7e
move v1, v11
const/4 v11, 0x2
goto :goto_92
.line 194
:cond_81
:try_start_81
iget-object v1, v7, Lcom/facebook/fresco/animation/bitmap/BitmapAnimationBackend;->mBitmapFrameCache:Lcom/facebook/fresco/animation/bitmap/BitmapFrameCache;
invoke-interface {v1, v0}, Lcom/facebook/fresco/animation/bitmap/BitmapFrameCache;->getCachedFrame(I)Lcom/facebook/common/references/CloseableReference;
move-result-object v8
:try_end_87
.catchall {:try_start_81 .. :try_end_87} :catchall_a1
const/4 v6, 0x0
move-object v1, p0
move-object v2, p1
move/from16 v3, p3
move-object v4, v8
move-object v5, p2
.line 195
:try_start_8e
invoke-direct/range {v1 .. v6}, Lcom/facebook/fresco/animation/bitmap/BitmapAnimationBackend;->drawBitmapAndCache(Landroid/graphics/drawable/Drawable;ILcom/facebook/common/references/CloseableReference;Landroid/graphics/Canvas;I)Z
move-result v1
:try_end_92
.catchall {:try_start_8e .. :try_end_92} :catchall_9e
.line 233
:goto_92
invoke-static {v8}, Lcom/facebook/common/references/CloseableReference;->closeSafely(Lcom/facebook/common/references/CloseableReference;)V
if-nez v1, :cond_9d
if-ne v11, v10, :cond_9a
goto :goto_9d
:cond_9a
move v1, v11
goto/16 :goto_5
:cond_9d
:goto_9d
return v1
:catchall_9e
move-exception v0
move-object v2, v8
goto :goto_a2
:catchall_a1
move-exception v0
:goto_a2
invoke-static {v2}, Lcom/facebook/common/references/CloseableReference;->closeSafely(Lcom/facebook/common/references/CloseableReference;)V
goto :goto_a7
:goto_a6
throw v0
:goto_a7
goto :goto_a6
.end method
.method private renderFrameInBitmap(ILcom/facebook/common/references/CloseableReference;)Z
.registers 5
.annotation system Ldalvik/annotation/Signature;
value = {
"(I",
"Lcom/facebook/common/references/CloseableReference<",
"Landroid/graphics/Bitmap;",
">;)Z"
}
.end annotation
.line 310
invoke-static {p2}, Lcom/facebook/common/references/CloseableReference;->isValid(Lcom/facebook/common/references/CloseableReference;)Z
move-result v0
if-nez v0, :cond_8
const/4 p1, 0x0
return p1
.line 314
:cond_8
iget-object v0, p0, Lcom/facebook/fresco/animation/bitmap/BitmapAnimationBackend;->mBitmapFrameRenderer:Lcom/facebook/fresco/animation/bitmap/BitmapFrameRenderer;
.line 315
invoke-virtual {p2}, Lcom/facebook/common/references/CloseableReference;->get()Ljava/lang/Object;
move-result-object v1
check-cast v1, Landroid/graphics/Bitmap;
invoke-interface {v0, p1, v1}, Lcom/facebook/fresco/animation/bitmap/BitmapFrameRenderer;->renderFrame(ILandroid/graphics/Bitmap;)Z
move-result p1
if-nez p1, :cond_19
.line 317
invoke-static {p2}, Lcom/facebook/common/references/CloseableReference;->closeSafely(Lcom/facebook/common/references/CloseableReference;)V
:cond_19
return p1
.end method
.method private updateBitmapDimensions()V
.registers 3
.line 287
iget-object v0, p0, Lcom/facebook/fresco/animation/bitmap/BitmapAnimationBackend;->mBitmapFrameRenderer:Lcom/facebook/fresco/animation/bitmap/BitmapFrameRenderer;
invoke-interface {v0}, Lcom/facebook/fresco/animation/bitmap/BitmapFrameRenderer;->getIntrinsicWidth()I
move-result v0
iput v0, p0, Lcom/facebook/fresco/animation/bitmap/BitmapAnimationBackend;->mBitmapWidth:I
const/4 v1, -0x1
if-ne v0, v1, :cond_17
.line 289
iget-object v0, p0, Lcom/facebook/fresco/animation/bitmap/BitmapAnimationBackend;->mBounds:Landroid/graphics/Rect;
if-nez v0, :cond_11
const/4 v0, -0x1
goto :goto_15
:cond_11
invoke-virtual {v0}, Landroid/graphics/Rect;->width()I
move-result v0
:goto_15
iput v0, p0, Lcom/facebook/fresco/animation/bitmap/BitmapAnimationBackend;->mBitmapWidth:I
.line 292
:cond_17
iget-object v0, p0, Lcom/facebook/fresco/animation/bitmap/BitmapAnimationBackend;->mBitmapFrameRenderer:Lcom/facebook/fresco/animation/bitmap/BitmapFrameRenderer;
invoke-interface {v0}, Lcom/facebook/fresco/animation/bitmap/BitmapFrameRenderer;->getIntrinsicHeight()I
move-result v0
iput v0, p0, Lcom/facebook/fresco/animation/bitmap/BitmapAnimationBackend;->mBitmapHeight:I
if-ne v0, v1, :cond_2c
.line 294
iget-object v0, p0, Lcom/facebook/fresco/animation/bitmap/BitmapAnimationBackend;->mBounds:Landroid/graphics/Rect;
if-nez v0, :cond_26
goto :goto_2a
:cond_26
invoke-virtual {v0}, Landroid/graphics/Rect;->height()I
move-result v1
:goto_2a
iput v1, p0, Lcom/facebook/fresco/animation/bitmap/BitmapAnimationBackend;->mBitmapHeight:I
:cond_2c
return-void
.end method
# virtual methods
.method public clear()V
.registers 2
.line 277
iget-object v0, p0, Lcom/facebook/fresco/animation/bitmap/BitmapAnimationBackend;->mBitmapFrameCache:Lcom/facebook/fresco/animation/bitmap/BitmapFrameCache;
invoke-interface {v0}, Lcom/facebook/fresco/animation/bitmap/BitmapFrameCache;->clear()V
return-void
.end method
.method public drawFrame(Landroid/graphics/drawable/Drawable;Landroid/graphics/Canvas;I)Z
.registers 6
.line 163
iget-object v0, p0, Lcom/facebook/fresco/animation/bitmap/BitmapAnimationBackend;->mFrameListener:Lcom/facebook/fresco/animation/bitmap/BitmapAnimationBackend$FrameListener;
if-eqz v0, :cond_7
.line 164
invoke-interface {v0, p0, p3}, Lcom/facebook/fresco/animation/bitmap/BitmapAnimationBackend$FrameListener;->onDrawFrameStart(Lcom/facebook/fresco/animation/bitmap/BitmapAnimationBackend;I)V
:cond_7
const/4 v0, 0x0
.line 167
invoke-direct {p0, p1, p2, p3, v0}, Lcom/facebook/fresco/animation/bitmap/BitmapAnimationBackend;->drawFrameOrFallback(Landroid/graphics/drawable/Drawable;Landroid/graphics/Canvas;II)Z
move-result p1
if-nez p1, :cond_15
.line 170
iget-object p2, p0, Lcom/facebook/fresco/animation/bitmap/BitmapAnimationBackend;->mFrameListener:Lcom/facebook/fresco/animation/bitmap/BitmapAnimationBackend$FrameListener;
if-eqz p2, :cond_15
.line 171
invoke-interface {p2, p0, p3}, Lcom/facebook/fresco/animation/bitmap/BitmapAnimationBackend$FrameListener;->onFrameDropped(Lcom/facebook/fresco/animation/bitmap/BitmapAnimationBackend;I)V
.line 175
:cond_15
iget-object p2, p0, Lcom/facebook/fresco/animation/bitmap/BitmapAnimationBackend;->mBitmapFramePreparationStrategy:Lcom/facebook/fresco/animation/bitmap/preparation/BitmapFramePreparationStrategy;
if-eqz p2, :cond_22
iget-object v0, p0, Lcom/facebook/fresco/animation/bitmap/BitmapAnimationBackend;->mBitmapFramePreparer:Lcom/facebook/fresco/animation/bitmap/preparation/BitmapFramePreparer;
if-eqz v0, :cond_22
.line 176
iget-object v1, p0, Lcom/facebook/fresco/animation/bitmap/BitmapAnimationBackend;->mBitmapFrameCache:Lcom/facebook/fresco/animation/bitmap/BitmapFrameCache;
invoke-interface {p2, v0, v1, p0, p3}, Lcom/facebook/fresco/animation/bitmap/preparation/BitmapFramePreparationStrategy;->prepareFrames(Lcom/facebook/fresco/animation/bitmap/preparation/BitmapFramePreparer;Lcom/facebook/fresco/animation/bitmap/BitmapFrameCache;Lcom/facebook/fresco/animation/backend/AnimationBackend;I)V
:cond_22
return p1
.end method
.method public getFrameCount()I
.registers 2
.line 145
iget-object v0, p0, Lcom/facebook/fresco/animation/bitmap/BitmapAnimationBackend;->mAnimationInformation:Lcom/facebook/fresco/animation/backend/AnimationInformation;
invoke-interface {v0}, Lcom/facebook/fresco/animation/backend/AnimationInformation;->getFrameCount()I
move-result v0
return v0
.end method
.method public getFrameDurationMs(I)I
.registers 3
.line 150
iget-object v0, p0, Lcom/facebook/fresco/animation/bitmap/BitmapAnimationBackend;->mAnimationInformation:Lcom/facebook/fresco/animation/backend/AnimationInformation;
invoke-interface {v0, p1}, Lcom/facebook/fresco/animation/backend/AnimationInformation;->getFrameDurationMs(I)I
move-result p1
return p1
.end method
.method public getIntrinsicHeight()I
.registers 2
.line 267
iget v0, p0, Lcom/facebook/fresco/animation/bitmap/BitmapAnimationBackend;->mBitmapHeight:I
return v0
.end method
.method public getIntrinsicWidth()I
.registers 2
.line 262
iget v0, p0, Lcom/facebook/fresco/animation/bitmap/BitmapAnimationBackend;->mBitmapWidth:I
return v0
.end method
.method public getLoopCount()I
.registers 2
.line 155
iget-object v0, p0, Lcom/facebook/fresco/animation/bitmap/BitmapAnimationBackend;->mAnimationInformation:Lcom/facebook/fresco/animation/backend/AnimationInformation;
invoke-interface {v0}, Lcom/facebook/fresco/animation/backend/AnimationInformation;->getLoopCount()I
move-result v0
return v0
.end method
.method public getSizeInBytes()I
.registers 2
.line 272
iget-object v0, p0, Lcom/facebook/fresco/animation/bitmap/BitmapAnimationBackend;->mBitmapFrameCache:Lcom/facebook/fresco/animation/bitmap/BitmapFrameCache;
invoke-interface {v0}, Lcom/facebook/fresco/animation/bitmap/BitmapFrameCache;->getSizeInBytes()I
move-result v0
return v0
.end method
.method public onInactive()V
.registers 1
.line 282
invoke-virtual {p0}, Lcom/facebook/fresco/animation/bitmap/BitmapAnimationBackend;->clear()V
return-void
.end method
.method public setAlpha(I)V
.registers 3
.line 245
iget-object v0, p0, Lcom/facebook/fresco/animation/bitmap/BitmapAnimationBackend;->mPaint:Landroid/graphics/Paint;
invoke-virtual {v0, p1}, Landroid/graphics/Paint;->setAlpha(I)V
return-void
.end method
.method public setBitmapConfig(Landroid/graphics/Bitmap$Config;)V
.registers 2
.line 136
iput-object p1, p0, Lcom/facebook/fresco/animation/bitmap/BitmapAnimationBackend;->mBitmapConfig:Landroid/graphics/Bitmap$Config;
return-void
.end method
.method public setBounds(Landroid/graphics/Rect;)V
.registers 3
.line 255
iput-object p1, p0, Lcom/facebook/fresco/animation/bitmap/BitmapAnimationBackend;->mBounds:Landroid/graphics/Rect;
.line 256
iget-object v0, p0, Lcom/facebook/fresco/animation/bitmap/BitmapAnimationBackend;->mBitmapFrameRenderer:Lcom/facebook/fresco/animation/bitmap/BitmapFrameRenderer;
invoke-interface {v0, p1}, Lcom/facebook/fresco/animation/bitmap/BitmapFrameRenderer;->setBounds(Landroid/graphics/Rect;)V
.line 257
invoke-direct {p0}, Lcom/facebook/fresco/animation/bitmap/BitmapAnimationBackend;->updateBitmapDimensions()V
return-void
.end method
.method public setColorFilter(Landroid/graphics/ColorFilter;)V
.registers 3
.line 250
iget-object v0, p0, Lcom/facebook/fresco/animation/bitmap/BitmapAnimationBackend;->mPaint:Landroid/graphics/Paint;
invoke-virtual {v0, p1}, Landroid/graphics/Paint;->setColorFilter(Landroid/graphics/ColorFilter;)Landroid/graphics/ColorFilter;
return-void
.end method
.method public setFrameListener(Lcom/facebook/fresco/animation/bitmap/BitmapAnimationBackend$FrameListener;)V
.registers 2
.line 140
iput-object p1, p0, Lcom/facebook/fresco/animation/bitmap/BitmapAnimationBackend;->mFrameListener:Lcom/facebook/fresco/animation/bitmap/BitmapAnimationBackend$FrameListener;
return-void
.end method