1186 lines
29 KiB
Smali
1186 lines
29 KiB
Smali
.class public Lpl/droidsonroids/gif/GifDrawable;
|
|
.super Landroid/graphics/drawable/Drawable;
|
|
.source "GifDrawable.java"
|
|
|
|
# interfaces
|
|
.implements Landroid/graphics/drawable/Animatable;
|
|
.implements Landroid/widget/MediaController$MediaPlayerControl;
|
|
|
|
|
|
# instance fields
|
|
.field final a:Ljava/util/concurrent/ScheduledThreadPoolExecutor;
|
|
|
|
.field volatile b:Z
|
|
|
|
.field c:J
|
|
|
|
.field protected final d:Landroid/graphics/Paint;
|
|
|
|
.field final e:Landroid/graphics/Bitmap;
|
|
|
|
.field final f:Lpl/droidsonroids/gif/GifInfoHandle;
|
|
|
|
.field final g:Ljava/util/concurrent/ConcurrentLinkedQueue;
|
|
.annotation system Ldalvik/annotation/Signature;
|
|
value = {
|
|
"Ljava/util/concurrent/ConcurrentLinkedQueue<",
|
|
"Lpl/droidsonroids/gif/AnimationListener;",
|
|
">;"
|
|
}
|
|
.end annotation
|
|
.end field
|
|
|
|
.field final h:Z
|
|
|
|
.field final i:Lpl/droidsonroids/gif/InvalidationHandler;
|
|
|
|
.field private final j:Landroid/graphics/Rect;
|
|
|
|
.field private k:Landroid/content/res/ColorStateList;
|
|
|
|
.field private l:Landroid/graphics/PorterDuffColorFilter;
|
|
|
|
.field private m:Landroid/graphics/PorterDuff$Mode;
|
|
|
|
.field private final n:Ljava/lang/Runnable;
|
|
|
|
.field private final o:Landroid/graphics/Rect;
|
|
|
|
|
|
# direct methods
|
|
.method public constructor <init>(Ljava/io/File;)V
|
|
.locals 2
|
|
.annotation system Ldalvik/annotation/Throws;
|
|
value = {
|
|
Ljava/io/IOException;
|
|
}
|
|
.end annotation
|
|
|
|
.line 135
|
|
invoke-virtual {p1}, Ljava/io/File;->getPath()Ljava/lang/String;
|
|
|
|
move-result-object p1
|
|
|
|
const/4 v0, 0x0
|
|
|
|
invoke-static {p1, v0}, Lpl/droidsonroids/gif/GifInfoHandle;->openFile(Ljava/lang/String;Z)Lpl/droidsonroids/gif/GifInfoHandle;
|
|
|
|
move-result-object p1
|
|
|
|
const/4 v0, 0x0
|
|
|
|
const/4 v1, 0x1
|
|
|
|
invoke-direct {p0, p1, v0, v0, v1}, Lpl/droidsonroids/gif/GifDrawable;-><init>(Lpl/droidsonroids/gif/GifInfoHandle;Lpl/droidsonroids/gif/GifDrawable;Ljava/util/concurrent/ScheduledThreadPoolExecutor;Z)V
|
|
|
|
return-void
|
|
.end method
|
|
|
|
.method public constructor <init>(Ljava/lang/String;)V
|
|
.locals 2
|
|
.annotation system Ldalvik/annotation/Throws;
|
|
value = {
|
|
Ljava/io/IOException;
|
|
}
|
|
.end annotation
|
|
|
|
const/4 v0, 0x0
|
|
|
|
.line 121
|
|
invoke-static {p1, v0}, Lpl/droidsonroids/gif/GifInfoHandle;->openFile(Ljava/lang/String;Z)Lpl/droidsonroids/gif/GifInfoHandle;
|
|
|
|
move-result-object p1
|
|
|
|
const/4 v0, 0x0
|
|
|
|
const/4 v1, 0x1
|
|
|
|
invoke-direct {p0, p1, v0, v0, v1}, Lpl/droidsonroids/gif/GifDrawable;-><init>(Lpl/droidsonroids/gif/GifInfoHandle;Lpl/droidsonroids/gif/GifDrawable;Ljava/util/concurrent/ScheduledThreadPoolExecutor;Z)V
|
|
|
|
return-void
|
|
.end method
|
|
|
|
.method constructor <init>(Lpl/droidsonroids/gif/GifInfoHandle;Lpl/droidsonroids/gif/GifDrawable;Ljava/util/concurrent/ScheduledThreadPoolExecutor;Z)V
|
|
.locals 2
|
|
|
|
.line 237
|
|
invoke-direct {p0}, Landroid/graphics/drawable/Drawable;-><init>()V
|
|
|
|
const/4 v0, 0x1
|
|
|
|
.line 47
|
|
iput-boolean v0, p0, Lpl/droidsonroids/gif/GifDrawable;->b:Z
|
|
|
|
const-wide/high16 v0, -0x8000000000000000L
|
|
|
|
.line 48
|
|
iput-wide v0, p0, Lpl/droidsonroids/gif/GifDrawable;->c:J
|
|
|
|
.line 50
|
|
new-instance v0, Landroid/graphics/Rect;
|
|
|
|
invoke-direct {v0}, Landroid/graphics/Rect;-><init>()V
|
|
|
|
iput-object v0, p0, Lpl/droidsonroids/gif/GifDrawable;->j:Landroid/graphics/Rect;
|
|
|
|
.line 54
|
|
new-instance v0, Landroid/graphics/Paint;
|
|
|
|
const/4 v1, 0x6
|
|
|
|
invoke-direct {v0, v1}, Landroid/graphics/Paint;-><init>(I)V
|
|
|
|
iput-object v0, p0, Lpl/droidsonroids/gif/GifDrawable;->d:Landroid/graphics/Paint;
|
|
|
|
.line 61
|
|
new-instance v0, Ljava/util/concurrent/ConcurrentLinkedQueue;
|
|
|
|
invoke-direct {v0}, Ljava/util/concurrent/ConcurrentLinkedQueue;-><init>()V
|
|
|
|
iput-object v0, p0, Lpl/droidsonroids/gif/GifDrawable;->g:Ljava/util/concurrent/ConcurrentLinkedQueue;
|
|
|
|
.line 68
|
|
new-instance v0, Lpl/droidsonroids/gif/RenderTask;
|
|
|
|
invoke-direct {v0, p0}, Lpl/droidsonroids/gif/RenderTask;-><init>(Lpl/droidsonroids/gif/GifDrawable;)V
|
|
|
|
iput-object v0, p0, Lpl/droidsonroids/gif/GifDrawable;->n:Ljava/lang/Runnable;
|
|
|
|
.line 240
|
|
iput-boolean p4, p0, Lpl/droidsonroids/gif/GifDrawable;->h:Z
|
|
|
|
if-eqz p3, :cond_0
|
|
|
|
goto :goto_0
|
|
|
|
.line 242
|
|
:cond_0
|
|
invoke-static {}, Lpl/droidsonroids/gif/GifRenderingExecutor;->a()Lpl/droidsonroids/gif/GifRenderingExecutor;
|
|
|
|
move-result-object p3
|
|
|
|
.line 241
|
|
:goto_0
|
|
iput-object p3, p0, Lpl/droidsonroids/gif/GifDrawable;->a:Ljava/util/concurrent/ScheduledThreadPoolExecutor;
|
|
|
|
.line 243
|
|
iput-object p1, p0, Lpl/droidsonroids/gif/GifDrawable;->f:Lpl/droidsonroids/gif/GifInfoHandle;
|
|
|
|
const/4 p1, 0x0
|
|
|
|
const/4 p3, 0x0
|
|
|
|
if-eqz p2, :cond_2
|
|
|
|
.line 246
|
|
iget-object p4, p2, Lpl/droidsonroids/gif/GifDrawable;->f:Lpl/droidsonroids/gif/GifInfoHandle;
|
|
|
|
monitor-enter p4
|
|
|
|
.line 247
|
|
:try_start_0
|
|
iget-object v0, p2, Lpl/droidsonroids/gif/GifDrawable;->f:Lpl/droidsonroids/gif/GifInfoHandle;
|
|
|
|
invoke-virtual {v0}, Lpl/droidsonroids/gif/GifInfoHandle;->j()Z
|
|
|
|
move-result v0
|
|
|
|
if-nez v0, :cond_1
|
|
|
|
.line 248
|
|
iget-object v0, p2, Lpl/droidsonroids/gif/GifDrawable;->f:Lpl/droidsonroids/gif/GifInfoHandle;
|
|
|
|
iget v0, v0, Lpl/droidsonroids/gif/GifInfoHandle;->b:I
|
|
|
|
iget-object v1, p0, Lpl/droidsonroids/gif/GifDrawable;->f:Lpl/droidsonroids/gif/GifInfoHandle;
|
|
|
|
iget v1, v1, Lpl/droidsonroids/gif/GifInfoHandle;->b:I
|
|
|
|
if-lt v0, v1, :cond_1
|
|
|
|
.line 249
|
|
iget-object v0, p2, Lpl/droidsonroids/gif/GifDrawable;->f:Lpl/droidsonroids/gif/GifInfoHandle;
|
|
|
|
iget v0, v0, Lpl/droidsonroids/gif/GifInfoHandle;->a:I
|
|
|
|
iget-object v1, p0, Lpl/droidsonroids/gif/GifDrawable;->f:Lpl/droidsonroids/gif/GifInfoHandle;
|
|
|
|
iget v1, v1, Lpl/droidsonroids/gif/GifInfoHandle;->a:I
|
|
|
|
if-lt v0, v1, :cond_1
|
|
|
|
.line 250
|
|
invoke-direct {p2}, Lpl/droidsonroids/gif/GifDrawable;->e()V
|
|
|
|
.line 251
|
|
iget-object p1, p2, Lpl/droidsonroids/gif/GifDrawable;->e:Landroid/graphics/Bitmap;
|
|
|
|
.line 252
|
|
invoke-virtual {p1, p3}, Landroid/graphics/Bitmap;->eraseColor(I)V
|
|
|
|
.line 246
|
|
:cond_1
|
|
monitor-exit p4
|
|
|
|
goto :goto_1
|
|
|
|
:catchall_0
|
|
move-exception p1
|
|
|
|
monitor-exit p4
|
|
:try_end_0
|
|
.catchall {:try_start_0 .. :try_end_0} :catchall_0
|
|
|
|
throw p1
|
|
|
|
.line 257
|
|
:cond_2
|
|
:goto_1
|
|
iget-object p2, p0, Lpl/droidsonroids/gif/GifDrawable;->f:Lpl/droidsonroids/gif/GifInfoHandle;
|
|
|
|
monitor-enter p2
|
|
|
|
if-nez p1, :cond_3
|
|
|
|
.line 259
|
|
:try_start_1
|
|
iget-object p1, p0, Lpl/droidsonroids/gif/GifDrawable;->f:Lpl/droidsonroids/gif/GifInfoHandle;
|
|
|
|
iget p1, p1, Lpl/droidsonroids/gif/GifInfoHandle;->a:I
|
|
|
|
.line 260
|
|
iget-object p4, p0, Lpl/droidsonroids/gif/GifDrawable;->f:Lpl/droidsonroids/gif/GifInfoHandle;
|
|
|
|
iget p4, p4, Lpl/droidsonroids/gif/GifInfoHandle;->b:I
|
|
|
|
sget-object v0, Landroid/graphics/Bitmap$Config;->ARGB_8888:Landroid/graphics/Bitmap$Config;
|
|
|
|
.line 259
|
|
invoke-static {p1, p4, v0}, Landroid/graphics/Bitmap;->createBitmap(IILandroid/graphics/Bitmap$Config;)Landroid/graphics/Bitmap;
|
|
|
|
move-result-object p1
|
|
|
|
iput-object p1, p0, Lpl/droidsonroids/gif/GifDrawable;->e:Landroid/graphics/Bitmap;
|
|
|
|
goto :goto_2
|
|
|
|
:catchall_1
|
|
move-exception p1
|
|
|
|
goto :goto_4
|
|
|
|
.line 262
|
|
:cond_3
|
|
iput-object p1, p0, Lpl/droidsonroids/gif/GifDrawable;->e:Landroid/graphics/Bitmap;
|
|
|
|
.line 257
|
|
:goto_2
|
|
monitor-exit p2
|
|
:try_end_1
|
|
.catchall {:try_start_1 .. :try_end_1} :catchall_1
|
|
|
|
.line 266
|
|
new-instance p1, Landroid/graphics/Rect;
|
|
|
|
iget-object p2, p0, Lpl/droidsonroids/gif/GifDrawable;->f:Lpl/droidsonroids/gif/GifInfoHandle;
|
|
|
|
iget p2, p2, Lpl/droidsonroids/gif/GifInfoHandle;->a:I
|
|
|
|
.line 267
|
|
iget-object p4, p0, Lpl/droidsonroids/gif/GifDrawable;->f:Lpl/droidsonroids/gif/GifInfoHandle;
|
|
|
|
iget p4, p4, Lpl/droidsonroids/gif/GifInfoHandle;->b:I
|
|
|
|
invoke-direct {p1, p3, p3, p2, p4}, Landroid/graphics/Rect;-><init>(IIII)V
|
|
|
|
.line 266
|
|
iput-object p1, p0, Lpl/droidsonroids/gif/GifDrawable;->o:Landroid/graphics/Rect;
|
|
|
|
.line 268
|
|
new-instance p1, Lpl/droidsonroids/gif/InvalidationHandler;
|
|
|
|
invoke-direct {p1, p0}, Lpl/droidsonroids/gif/InvalidationHandler;-><init>(Lpl/droidsonroids/gif/GifDrawable;)V
|
|
|
|
iput-object p1, p0, Lpl/droidsonroids/gif/GifDrawable;->i:Lpl/droidsonroids/gif/InvalidationHandler;
|
|
|
|
.line 269
|
|
iget-boolean p1, p0, Lpl/droidsonroids/gif/GifDrawable;->h:Z
|
|
|
|
if-eqz p1, :cond_4
|
|
|
|
const-wide/16 p1, 0x0
|
|
|
|
.line 270
|
|
iput-wide p1, p0, Lpl/droidsonroids/gif/GifDrawable;->c:J
|
|
|
|
goto :goto_3
|
|
|
|
.line 272
|
|
:cond_4
|
|
iget-object p1, p0, Lpl/droidsonroids/gif/GifDrawable;->a:Ljava/util/concurrent/ScheduledThreadPoolExecutor;
|
|
|
|
iget-object p2, p0, Lpl/droidsonroids/gif/GifDrawable;->n:Ljava/lang/Runnable;
|
|
|
|
invoke-virtual {p1, p2}, Ljava/util/concurrent/ScheduledThreadPoolExecutor;->execute(Ljava/lang/Runnable;)V
|
|
|
|
:goto_3
|
|
return-void
|
|
|
|
.line 257
|
|
:goto_4
|
|
:try_start_2
|
|
monitor-exit p2
|
|
:try_end_2
|
|
.catchall {:try_start_2 .. :try_end_2} :catchall_1
|
|
|
|
throw p1
|
|
.end method
|
|
|
|
.method private a(Landroid/content/res/ColorStateList;Landroid/graphics/PorterDuff$Mode;)Landroid/graphics/PorterDuffColorFilter;
|
|
.locals 2
|
|
|
|
if-eqz p1, :cond_1
|
|
|
|
if-nez p2, :cond_0
|
|
|
|
goto :goto_0
|
|
|
|
.line 892
|
|
:cond_0
|
|
invoke-virtual {p0}, Lpl/droidsonroids/gif/GifDrawable;->getState()[I
|
|
|
|
move-result-object v0
|
|
|
|
const/4 v1, 0x0
|
|
|
|
invoke-virtual {p1, v0, v1}, Landroid/content/res/ColorStateList;->getColorForState([II)I
|
|
|
|
move-result p1
|
|
|
|
.line 893
|
|
new-instance v0, Landroid/graphics/PorterDuffColorFilter;
|
|
|
|
invoke-direct {v0, p1, p2}, Landroid/graphics/PorterDuffColorFilter;-><init>(ILandroid/graphics/PorterDuff$Mode;)V
|
|
|
|
return-object v0
|
|
|
|
:cond_1
|
|
:goto_0
|
|
const/4 p1, 0x0
|
|
|
|
return-object p1
|
|
.end method
|
|
|
|
.method private e()V
|
|
.locals 2
|
|
|
|
const/4 v0, 0x0
|
|
|
|
.line 288
|
|
iput-boolean v0, p0, Lpl/droidsonroids/gif/GifDrawable;->b:Z
|
|
|
|
.line 289
|
|
iget-object v1, p0, Lpl/droidsonroids/gif/GifDrawable;->i:Lpl/droidsonroids/gif/InvalidationHandler;
|
|
|
|
invoke-virtual {v1, v0}, Lpl/droidsonroids/gif/InvalidationHandler;->removeMessages(I)V
|
|
|
|
.line 290
|
|
iget-object v0, p0, Lpl/droidsonroids/gif/GifDrawable;->f:Lpl/droidsonroids/gif/GifInfoHandle;
|
|
|
|
invoke-virtual {v0}, Lpl/droidsonroids/gif/GifInfoHandle;->a()V
|
|
|
|
return-void
|
|
.end method
|
|
|
|
|
|
# virtual methods
|
|
.method a(J)V
|
|
.locals 3
|
|
|
|
const-wide/16 v0, 0x0
|
|
|
|
cmp-long v2, p1, v0
|
|
|
|
if-ltz v2, :cond_1
|
|
|
|
.line 343
|
|
iget-boolean v2, p0, Lpl/droidsonroids/gif/GifDrawable;->h:Z
|
|
|
|
if-eqz v2, :cond_0
|
|
|
|
.line 344
|
|
iput-wide v0, p0, Lpl/droidsonroids/gif/GifDrawable;->c:J
|
|
|
|
.line 345
|
|
iget-object p1, p0, Lpl/droidsonroids/gif/GifDrawable;->i:Lpl/droidsonroids/gif/InvalidationHandler;
|
|
|
|
const/4 p2, 0x0
|
|
|
|
invoke-virtual {p1, p2, v0, v1}, Lpl/droidsonroids/gif/InvalidationHandler;->sendEmptyMessageAtTime(IJ)Z
|
|
|
|
goto :goto_0
|
|
|
|
.line 348
|
|
:cond_0
|
|
iget-object v0, p0, Lpl/droidsonroids/gif/GifDrawable;->a:Ljava/util/concurrent/ScheduledThreadPoolExecutor;
|
|
|
|
invoke-virtual {v0}, Ljava/util/concurrent/ScheduledThreadPoolExecutor;->getQueue()Ljava/util/concurrent/BlockingQueue;
|
|
|
|
move-result-object v0
|
|
|
|
iget-object v1, p0, Lpl/droidsonroids/gif/GifDrawable;->n:Ljava/lang/Runnable;
|
|
|
|
invoke-interface {v0, v1}, Ljava/util/concurrent/BlockingQueue;->remove(Ljava/lang/Object;)Z
|
|
|
|
move-result v0
|
|
|
|
if-nez v0, :cond_0
|
|
|
|
.line 350
|
|
iget-object v0, p0, Lpl/droidsonroids/gif/GifDrawable;->a:Ljava/util/concurrent/ScheduledThreadPoolExecutor;
|
|
|
|
iget-object v1, p0, Lpl/droidsonroids/gif/GifDrawable;->n:Ljava/lang/Runnable;
|
|
|
|
.line 351
|
|
sget-object v2, Ljava/util/concurrent/TimeUnit;->MILLISECONDS:Ljava/util/concurrent/TimeUnit;
|
|
|
|
.line 350
|
|
invoke-virtual {v0, v1, p1, p2, v2}, Ljava/util/concurrent/ScheduledThreadPoolExecutor;->schedule(Ljava/lang/Runnable;JLjava/util/concurrent/TimeUnit;)Ljava/util/concurrent/ScheduledFuture;
|
|
|
|
:cond_1
|
|
:goto_0
|
|
return-void
|
|
.end method
|
|
|
|
.method public a()Z
|
|
.locals 1
|
|
|
|
.line 297
|
|
iget-object v0, p0, Lpl/droidsonroids/gif/GifDrawable;->f:Lpl/droidsonroids/gif/GifInfoHandle;
|
|
|
|
invoke-virtual {v0}, Lpl/droidsonroids/gif/GifInfoHandle;->j()Z
|
|
|
|
move-result v0
|
|
|
|
return v0
|
|
.end method
|
|
|
|
.method public b()V
|
|
.locals 2
|
|
|
|
.line 361
|
|
iget-object v0, p0, Lpl/droidsonroids/gif/GifDrawable;->a:Ljava/util/concurrent/ScheduledThreadPoolExecutor;
|
|
|
|
new-instance v1, Lpl/droidsonroids/gif/GifDrawable$1;
|
|
|
|
invoke-direct {v1, p0, p0}, Lpl/droidsonroids/gif/GifDrawable$1;-><init>(Lpl/droidsonroids/gif/GifDrawable;Lpl/droidsonroids/gif/GifDrawable;)V
|
|
|
|
invoke-virtual {v0, v1}, Ljava/util/concurrent/ScheduledThreadPoolExecutor;->execute(Ljava/lang/Runnable;)V
|
|
|
|
return-void
|
|
.end method
|
|
|
|
.method public c()I
|
|
.locals 1
|
|
|
|
.line 437
|
|
iget-object v0, p0, Lpl/droidsonroids/gif/GifDrawable;->f:Lpl/droidsonroids/gif/GifInfoHandle;
|
|
|
|
iget v0, v0, Lpl/droidsonroids/gif/GifInfoHandle;->c:I
|
|
|
|
return v0
|
|
.end method
|
|
|
|
.method public canPause()Z
|
|
.locals 1
|
|
|
|
const/4 v0, 0x1
|
|
|
|
return v0
|
|
.end method
|
|
|
|
.method public canSeekBackward()Z
|
|
.locals 2
|
|
|
|
.line 658
|
|
invoke-virtual {p0}, Lpl/droidsonroids/gif/GifDrawable;->c()I
|
|
|
|
move-result v0
|
|
|
|
const/4 v1, 0x1
|
|
|
|
if-le v0, v1, :cond_0
|
|
|
|
return v1
|
|
|
|
:cond_0
|
|
const/4 v0, 0x0
|
|
|
|
return v0
|
|
.end method
|
|
|
|
.method public canSeekForward()Z
|
|
.locals 2
|
|
|
|
.line 668
|
|
invoke-virtual {p0}, Lpl/droidsonroids/gif/GifDrawable;->c()I
|
|
|
|
move-result v0
|
|
|
|
const/4 v1, 0x1
|
|
|
|
if-le v0, v1, :cond_0
|
|
|
|
return v1
|
|
|
|
:cond_0
|
|
const/4 v0, 0x0
|
|
|
|
return v0
|
|
.end method
|
|
|
|
.method public d()I
|
|
.locals 1
|
|
|
|
.line 959
|
|
iget-object v0, p0, Lpl/droidsonroids/gif/GifDrawable;->f:Lpl/droidsonroids/gif/GifInfoHandle;
|
|
|
|
invoke-virtual {v0}, Lpl/droidsonroids/gif/GifInfoHandle;->i()I
|
|
|
|
move-result v0
|
|
|
|
return v0
|
|
.end method
|
|
|
|
.method public draw(Landroid/graphics/Canvas;)V
|
|
.locals 8
|
|
|
|
.line 783
|
|
iget-object v0, p0, Lpl/droidsonroids/gif/GifDrawable;->l:Landroid/graphics/PorterDuffColorFilter;
|
|
|
|
if-eqz v0, :cond_0
|
|
|
|
iget-object v0, p0, Lpl/droidsonroids/gif/GifDrawable;->d:Landroid/graphics/Paint;
|
|
|
|
invoke-virtual {v0}, Landroid/graphics/Paint;->getColorFilter()Landroid/graphics/ColorFilter;
|
|
|
|
move-result-object v0
|
|
|
|
if-nez v0, :cond_0
|
|
|
|
.line 784
|
|
iget-object v0, p0, Lpl/droidsonroids/gif/GifDrawable;->d:Landroid/graphics/Paint;
|
|
|
|
iget-object v1, p0, Lpl/droidsonroids/gif/GifDrawable;->l:Landroid/graphics/PorterDuffColorFilter;
|
|
|
|
invoke-virtual {v0, v1}, Landroid/graphics/Paint;->setColorFilter(Landroid/graphics/ColorFilter;)Landroid/graphics/ColorFilter;
|
|
|
|
const/4 v0, 0x1
|
|
|
|
goto :goto_0
|
|
|
|
:cond_0
|
|
const/4 v0, 0x0
|
|
|
|
.line 789
|
|
:goto_0
|
|
iget-object v1, p0, Lpl/droidsonroids/gif/GifDrawable;->d:Landroid/graphics/Paint;
|
|
|
|
invoke-virtual {v1}, Landroid/graphics/Paint;->getShader()Landroid/graphics/Shader;
|
|
|
|
move-result-object v1
|
|
|
|
if-nez v1, :cond_1
|
|
|
|
.line 790
|
|
iget-object v1, p0, Lpl/droidsonroids/gif/GifDrawable;->e:Landroid/graphics/Bitmap;
|
|
|
|
iget-object v2, p0, Lpl/droidsonroids/gif/GifDrawable;->o:Landroid/graphics/Rect;
|
|
|
|
iget-object v3, p0, Lpl/droidsonroids/gif/GifDrawable;->j:Landroid/graphics/Rect;
|
|
|
|
iget-object v4, p0, Lpl/droidsonroids/gif/GifDrawable;->d:Landroid/graphics/Paint;
|
|
|
|
invoke-virtual {p1, v1, v2, v3, v4}, Landroid/graphics/Canvas;->drawBitmap(Landroid/graphics/Bitmap;Landroid/graphics/Rect;Landroid/graphics/Rect;Landroid/graphics/Paint;)V
|
|
|
|
goto :goto_1
|
|
|
|
.line 792
|
|
:cond_1
|
|
iget-object v1, p0, Lpl/droidsonroids/gif/GifDrawable;->j:Landroid/graphics/Rect;
|
|
|
|
iget-object v2, p0, Lpl/droidsonroids/gif/GifDrawable;->d:Landroid/graphics/Paint;
|
|
|
|
invoke-virtual {p1, v1, v2}, Landroid/graphics/Canvas;->drawRect(Landroid/graphics/Rect;Landroid/graphics/Paint;)V
|
|
|
|
:goto_1
|
|
if-eqz v0, :cond_2
|
|
|
|
.line 795
|
|
iget-object p1, p0, Lpl/droidsonroids/gif/GifDrawable;->d:Landroid/graphics/Paint;
|
|
|
|
const/4 v0, 0x0
|
|
|
|
invoke-virtual {p1, v0}, Landroid/graphics/Paint;->setColorFilter(Landroid/graphics/ColorFilter;)Landroid/graphics/ColorFilter;
|
|
|
|
.line 798
|
|
:cond_2
|
|
iget-boolean p1, p0, Lpl/droidsonroids/gif/GifDrawable;->h:Z
|
|
|
|
if-eqz p1, :cond_3
|
|
|
|
iget-boolean p1, p0, Lpl/droidsonroids/gif/GifDrawable;->b:Z
|
|
|
|
if-eqz p1, :cond_3
|
|
|
|
.line 799
|
|
iget-wide v0, p0, Lpl/droidsonroids/gif/GifDrawable;->c:J
|
|
|
|
const-wide/high16 v2, -0x8000000000000000L
|
|
|
|
cmp-long p1, v0, v2
|
|
|
|
if-eqz p1, :cond_3
|
|
|
|
const-wide/16 v0, 0x0
|
|
|
|
.line 800
|
|
iget-wide v4, p0, Lpl/droidsonroids/gif/GifDrawable;->c:J
|
|
|
|
.line 801
|
|
invoke-static {}, Landroid/os/SystemClock;->uptimeMillis()J
|
|
|
|
move-result-wide v6
|
|
|
|
sub-long/2addr v4, v6
|
|
|
|
.line 800
|
|
invoke-static {v0, v1, v4, v5}, Ljava/lang/Math;->max(JJ)J
|
|
|
|
move-result-wide v0
|
|
|
|
.line 802
|
|
iput-wide v2, p0, Lpl/droidsonroids/gif/GifDrawable;->c:J
|
|
|
|
.line 803
|
|
iget-object p1, p0, Lpl/droidsonroids/gif/GifDrawable;->a:Ljava/util/concurrent/ScheduledThreadPoolExecutor;
|
|
|
|
iget-object v2, p0, Lpl/droidsonroids/gif/GifDrawable;->n:Ljava/lang/Runnable;
|
|
|
|
sget-object v3, Ljava/util/concurrent/TimeUnit;->MILLISECONDS:Ljava/util/concurrent/TimeUnit;
|
|
|
|
invoke-virtual {p1, v2, v0, v1, v3}, Ljava/util/concurrent/ScheduledThreadPoolExecutor;->schedule(Ljava/lang/Runnable;JLjava/util/concurrent/TimeUnit;)Ljava/util/concurrent/ScheduledFuture;
|
|
|
|
:cond_3
|
|
return-void
|
|
.end method
|
|
|
|
.method public getAlpha()I
|
|
.locals 1
|
|
|
|
.line 817
|
|
iget-object v0, p0, Lpl/droidsonroids/gif/GifDrawable;->d:Landroid/graphics/Paint;
|
|
|
|
invoke-virtual {v0}, Landroid/graphics/Paint;->getAlpha()I
|
|
|
|
move-result v0
|
|
|
|
return v0
|
|
.end method
|
|
|
|
.method public getAudioSessionId()I
|
|
.locals 1
|
|
|
|
const/4 v0, 0x0
|
|
|
|
return v0
|
|
.end method
|
|
|
|
.method public getBufferPercentage()I
|
|
.locals 1
|
|
|
|
const/16 v0, 0x64
|
|
|
|
return v0
|
|
.end method
|
|
|
|
.method public getColorFilter()Landroid/graphics/ColorFilter;
|
|
.locals 1
|
|
|
|
.line 874
|
|
iget-object v0, p0, Lpl/droidsonroids/gif/GifDrawable;->d:Landroid/graphics/Paint;
|
|
|
|
invoke-virtual {v0}, Landroid/graphics/Paint;->getColorFilter()Landroid/graphics/ColorFilter;
|
|
|
|
move-result-object v0
|
|
|
|
return-object v0
|
|
.end method
|
|
|
|
.method public getCurrentPosition()I
|
|
.locals 1
|
|
|
|
.line 517
|
|
iget-object v0, p0, Lpl/droidsonroids/gif/GifDrawable;->f:Lpl/droidsonroids/gif/GifInfoHandle;
|
|
|
|
invoke-virtual {v0}, Lpl/droidsonroids/gif/GifInfoHandle;->h()I
|
|
|
|
move-result v0
|
|
|
|
return v0
|
|
.end method
|
|
|
|
.method public getDuration()I
|
|
.locals 1
|
|
|
|
.line 506
|
|
iget-object v0, p0, Lpl/droidsonroids/gif/GifDrawable;->f:Lpl/droidsonroids/gif/GifInfoHandle;
|
|
|
|
invoke-virtual {v0}, Lpl/droidsonroids/gif/GifInfoHandle;->g()I
|
|
|
|
move-result v0
|
|
|
|
return v0
|
|
.end method
|
|
|
|
.method public getIntrinsicHeight()I
|
|
.locals 1
|
|
|
|
.line 302
|
|
iget-object v0, p0, Lpl/droidsonroids/gif/GifDrawable;->f:Lpl/droidsonroids/gif/GifInfoHandle;
|
|
|
|
iget v0, v0, Lpl/droidsonroids/gif/GifInfoHandle;->b:I
|
|
|
|
return v0
|
|
.end method
|
|
|
|
.method public getIntrinsicWidth()I
|
|
.locals 1
|
|
|
|
.line 307
|
|
iget-object v0, p0, Lpl/droidsonroids/gif/GifDrawable;->f:Lpl/droidsonroids/gif/GifInfoHandle;
|
|
|
|
iget v0, v0, Lpl/droidsonroids/gif/GifInfoHandle;->a:I
|
|
|
|
return v0
|
|
.end method
|
|
|
|
.method public getMinimumHeight()I
|
|
.locals 1
|
|
|
|
.line 834
|
|
iget-object v0, p0, Lpl/droidsonroids/gif/GifDrawable;->f:Lpl/droidsonroids/gif/GifInfoHandle;
|
|
|
|
iget v0, v0, Lpl/droidsonroids/gif/GifInfoHandle;->b:I
|
|
|
|
return v0
|
|
.end method
|
|
|
|
.method public getMinimumWidth()I
|
|
.locals 1
|
|
|
|
.line 839
|
|
iget-object v0, p0, Lpl/droidsonroids/gif/GifDrawable;->f:Lpl/droidsonroids/gif/GifInfoHandle;
|
|
|
|
iget v0, v0, Lpl/droidsonroids/gif/GifInfoHandle;->a:I
|
|
|
|
return v0
|
|
.end method
|
|
|
|
.method public getOpacity()I
|
|
.locals 1
|
|
|
|
const/4 v0, -0x2
|
|
|
|
return v0
|
|
.end method
|
|
|
|
.method public isPlaying()Z
|
|
.locals 1
|
|
|
|
.line 627
|
|
iget-boolean v0, p0, Lpl/droidsonroids/gif/GifDrawable;->b:Z
|
|
|
|
return v0
|
|
.end method
|
|
|
|
.method public isRunning()Z
|
|
.locals 1
|
|
|
|
.line 387
|
|
iget-boolean v0, p0, Lpl/droidsonroids/gif/GifDrawable;->b:Z
|
|
|
|
return v0
|
|
.end method
|
|
|
|
.method public isStateful()Z
|
|
.locals 1
|
|
|
|
.line 919
|
|
invoke-super {p0}, Landroid/graphics/drawable/Drawable;->isStateful()Z
|
|
|
|
move-result v0
|
|
|
|
if-nez v0, :cond_1
|
|
|
|
iget-object v0, p0, Lpl/droidsonroids/gif/GifDrawable;->k:Landroid/content/res/ColorStateList;
|
|
|
|
if-eqz v0, :cond_0
|
|
|
|
iget-object v0, p0, Lpl/droidsonroids/gif/GifDrawable;->k:Landroid/content/res/ColorStateList;
|
|
|
|
invoke-virtual {v0}, Landroid/content/res/ColorStateList;->isStateful()Z
|
|
|
|
move-result v0
|
|
|
|
if-nez v0, :cond_1
|
|
|
|
:cond_0
|
|
const/4 v0, 0x0
|
|
|
|
return v0
|
|
|
|
:cond_1
|
|
const/4 v0, 0x1
|
|
|
|
return v0
|
|
.end method
|
|
|
|
.method protected onBoundsChange(Landroid/graphics/Rect;)V
|
|
.locals 1
|
|
|
|
.line 771
|
|
iget-object v0, p0, Lpl/droidsonroids/gif/GifDrawable;->j:Landroid/graphics/Rect;
|
|
|
|
invoke-virtual {v0, p1}, Landroid/graphics/Rect;->set(Landroid/graphics/Rect;)V
|
|
|
|
return-void
|
|
.end method
|
|
|
|
.method protected onStateChange([I)Z
|
|
.locals 1
|
|
|
|
.line 910
|
|
iget-object p1, p0, Lpl/droidsonroids/gif/GifDrawable;->k:Landroid/content/res/ColorStateList;
|
|
|
|
if-eqz p1, :cond_0
|
|
|
|
iget-object p1, p0, Lpl/droidsonroids/gif/GifDrawable;->m:Landroid/graphics/PorterDuff$Mode;
|
|
|
|
if-eqz p1, :cond_0
|
|
|
|
.line 911
|
|
iget-object p1, p0, Lpl/droidsonroids/gif/GifDrawable;->k:Landroid/content/res/ColorStateList;
|
|
|
|
iget-object v0, p0, Lpl/droidsonroids/gif/GifDrawable;->m:Landroid/graphics/PorterDuff$Mode;
|
|
|
|
invoke-direct {p0, p1, v0}, Lpl/droidsonroids/gif/GifDrawable;->a(Landroid/content/res/ColorStateList;Landroid/graphics/PorterDuff$Mode;)Landroid/graphics/PorterDuffColorFilter;
|
|
|
|
move-result-object p1
|
|
|
|
iput-object p1, p0, Lpl/droidsonroids/gif/GifDrawable;->l:Landroid/graphics/PorterDuffColorFilter;
|
|
|
|
const/4 p1, 0x1
|
|
|
|
return p1
|
|
|
|
:cond_0
|
|
const/4 p1, 0x0
|
|
|
|
return p1
|
|
.end method
|
|
|
|
.method public pause()V
|
|
.locals 0
|
|
|
|
.line 491
|
|
invoke-virtual {p0}, Lpl/droidsonroids/gif/GifDrawable;->stop()V
|
|
|
|
return-void
|
|
.end method
|
|
|
|
.method public seekTo(I)V
|
|
.locals 2
|
|
|
|
if-ltz p1, :cond_0
|
|
|
|
.line 542
|
|
iget-object v0, p0, Lpl/droidsonroids/gif/GifDrawable;->a:Ljava/util/concurrent/ScheduledThreadPoolExecutor;
|
|
|
|
new-instance v1, Lpl/droidsonroids/gif/GifDrawable$2;
|
|
|
|
invoke-direct {v1, p0, p0, p1}, Lpl/droidsonroids/gif/GifDrawable$2;-><init>(Lpl/droidsonroids/gif/GifDrawable;Lpl/droidsonroids/gif/GifDrawable;I)V
|
|
|
|
invoke-virtual {v0, v1}, Ljava/util/concurrent/ScheduledThreadPoolExecutor;->execute(Ljava/lang/Runnable;)V
|
|
|
|
return-void
|
|
|
|
.line 540
|
|
:cond_0
|
|
new-instance p1, Ljava/lang/IllegalArgumentException;
|
|
|
|
const-string v0, "Position is not positive"
|
|
|
|
invoke-direct {p1, v0}, Ljava/lang/IllegalArgumentException;-><init>(Ljava/lang/String;)V
|
|
|
|
throw p1
|
|
.end method
|
|
|
|
.method public setAlpha(I)V
|
|
.locals 1
|
|
|
|
.line 312
|
|
iget-object v0, p0, Lpl/droidsonroids/gif/GifDrawable;->d:Landroid/graphics/Paint;
|
|
|
|
invoke-virtual {v0, p1}, Landroid/graphics/Paint;->setAlpha(I)V
|
|
|
|
return-void
|
|
.end method
|
|
|
|
.method public setColorFilter(Landroid/graphics/ColorFilter;)V
|
|
.locals 1
|
|
|
|
.line 317
|
|
iget-object v0, p0, Lpl/droidsonroids/gif/GifDrawable;->d:Landroid/graphics/Paint;
|
|
|
|
invoke-virtual {v0, p1}, Landroid/graphics/Paint;->setColorFilter(Landroid/graphics/ColorFilter;)Landroid/graphics/ColorFilter;
|
|
|
|
return-void
|
|
.end method
|
|
|
|
.method public setDither(Z)V
|
|
.locals 1
|
|
|
|
.line 828
|
|
iget-object v0, p0, Lpl/droidsonroids/gif/GifDrawable;->d:Landroid/graphics/Paint;
|
|
|
|
invoke-virtual {v0, p1}, Landroid/graphics/Paint;->setDither(Z)V
|
|
|
|
.line 829
|
|
invoke-virtual {p0}, Lpl/droidsonroids/gif/GifDrawable;->invalidateSelf()V
|
|
|
|
return-void
|
|
.end method
|
|
|
|
.method public setFilterBitmap(Z)V
|
|
.locals 1
|
|
|
|
.line 822
|
|
iget-object v0, p0, Lpl/droidsonroids/gif/GifDrawable;->d:Landroid/graphics/Paint;
|
|
|
|
invoke-virtual {v0, p1}, Landroid/graphics/Paint;->setFilterBitmap(Z)V
|
|
|
|
.line 823
|
|
invoke-virtual {p0}, Lpl/droidsonroids/gif/GifDrawable;->invalidateSelf()V
|
|
|
|
return-void
|
|
.end method
|
|
|
|
.method public setTintList(Landroid/content/res/ColorStateList;)V
|
|
.locals 1
|
|
|
|
.line 897
|
|
iput-object p1, p0, Lpl/droidsonroids/gif/GifDrawable;->k:Landroid/content/res/ColorStateList;
|
|
|
|
.line 898
|
|
iget-object v0, p0, Lpl/droidsonroids/gif/GifDrawable;->m:Landroid/graphics/PorterDuff$Mode;
|
|
|
|
invoke-direct {p0, p1, v0}, Lpl/droidsonroids/gif/GifDrawable;->a(Landroid/content/res/ColorStateList;Landroid/graphics/PorterDuff$Mode;)Landroid/graphics/PorterDuffColorFilter;
|
|
|
|
move-result-object p1
|
|
|
|
iput-object p1, p0, Lpl/droidsonroids/gif/GifDrawable;->l:Landroid/graphics/PorterDuffColorFilter;
|
|
|
|
.line 899
|
|
invoke-virtual {p0}, Lpl/droidsonroids/gif/GifDrawable;->invalidateSelf()V
|
|
|
|
return-void
|
|
.end method
|
|
|
|
.method public setTintMode(Landroid/graphics/PorterDuff$Mode;)V
|
|
.locals 1
|
|
|
|
.line 903
|
|
iput-object p1, p0, Lpl/droidsonroids/gif/GifDrawable;->m:Landroid/graphics/PorterDuff$Mode;
|
|
|
|
.line 904
|
|
iget-object v0, p0, Lpl/droidsonroids/gif/GifDrawable;->k:Landroid/content/res/ColorStateList;
|
|
|
|
invoke-direct {p0, v0, p1}, Lpl/droidsonroids/gif/GifDrawable;->a(Landroid/content/res/ColorStateList;Landroid/graphics/PorterDuff$Mode;)Landroid/graphics/PorterDuffColorFilter;
|
|
|
|
move-result-object p1
|
|
|
|
iput-object p1, p0, Lpl/droidsonroids/gif/GifDrawable;->l:Landroid/graphics/PorterDuffColorFilter;
|
|
|
|
.line 905
|
|
invoke-virtual {p0}, Lpl/droidsonroids/gif/GifDrawable;->invalidateSelf()V
|
|
|
|
return-void
|
|
.end method
|
|
|
|
.method public setVisible(ZZ)Z
|
|
.locals 1
|
|
|
|
.line 938
|
|
invoke-super {p0, p1, p2}, Landroid/graphics/drawable/Drawable;->setVisible(ZZ)Z
|
|
|
|
move-result v0
|
|
|
|
if-eqz p1, :cond_1
|
|
|
|
if-eqz p2, :cond_0
|
|
|
|
.line 941
|
|
invoke-virtual {p0}, Lpl/droidsonroids/gif/GifDrawable;->b()V
|
|
|
|
:cond_0
|
|
if-eqz v0, :cond_2
|
|
|
|
.line 944
|
|
invoke-virtual {p0}, Lpl/droidsonroids/gif/GifDrawable;->start()V
|
|
|
|
goto :goto_0
|
|
|
|
:cond_1
|
|
if-eqz v0, :cond_2
|
|
|
|
.line 947
|
|
invoke-virtual {p0}, Lpl/droidsonroids/gif/GifDrawable;->stop()V
|
|
|
|
:cond_2
|
|
:goto_0
|
|
return v0
|
|
.end method
|
|
|
|
.method public start()V
|
|
.locals 2
|
|
|
|
const/4 v0, 0x1
|
|
|
|
.line 336
|
|
iput-boolean v0, p0, Lpl/droidsonroids/gif/GifDrawable;->b:Z
|
|
|
|
.line 337
|
|
iget-object v0, p0, Lpl/droidsonroids/gif/GifDrawable;->f:Lpl/droidsonroids/gif/GifInfoHandle;
|
|
|
|
invoke-virtual {v0}, Lpl/droidsonroids/gif/GifInfoHandle;->b()J
|
|
|
|
move-result-wide v0
|
|
|
|
.line 338
|
|
invoke-virtual {p0, v0, v1}, Lpl/droidsonroids/gif/GifDrawable;->a(J)V
|
|
|
|
return-void
|
|
.end method
|
|
|
|
.method public stop()V
|
|
.locals 2
|
|
|
|
const/4 v0, 0x0
|
|
|
|
.line 377
|
|
iput-boolean v0, p0, Lpl/droidsonroids/gif/GifDrawable;->b:Z
|
|
|
|
.line 378
|
|
iget-object v1, p0, Lpl/droidsonroids/gif/GifDrawable;->i:Lpl/droidsonroids/gif/InvalidationHandler;
|
|
|
|
invoke-virtual {v1, v0}, Lpl/droidsonroids/gif/InvalidationHandler;->removeMessages(I)V
|
|
|
|
.line 380
|
|
:cond_0
|
|
iget-object v0, p0, Lpl/droidsonroids/gif/GifDrawable;->a:Ljava/util/concurrent/ScheduledThreadPoolExecutor;
|
|
|
|
invoke-virtual {v0}, Ljava/util/concurrent/ScheduledThreadPoolExecutor;->getQueue()Ljava/util/concurrent/BlockingQueue;
|
|
|
|
move-result-object v0
|
|
|
|
iget-object v1, p0, Lpl/droidsonroids/gif/GifDrawable;->n:Ljava/lang/Runnable;
|
|
|
|
invoke-interface {v0, v1}, Ljava/util/concurrent/BlockingQueue;->remove(Ljava/lang/Object;)Z
|
|
|
|
move-result v0
|
|
|
|
if-nez v0, :cond_0
|
|
|
|
.line 382
|
|
iget-object v0, p0, Lpl/droidsonroids/gif/GifDrawable;->f:Lpl/droidsonroids/gif/GifInfoHandle;
|
|
|
|
invoke-virtual {v0}, Lpl/droidsonroids/gif/GifInfoHandle;->d()V
|
|
|
|
return-void
|
|
.end method
|
|
|
|
.method public toString()Ljava/lang/String;
|
|
.locals 5
|
|
|
|
.line 426
|
|
sget-object v0, Ljava/util/Locale;->US:Ljava/util/Locale;
|
|
|
|
const-string v1, "GIF: size: %dx%d, frames: %d, error: %d"
|
|
|
|
const/4 v2, 0x4
|
|
|
|
.line 427
|
|
new-array v2, v2, [Ljava/lang/Object;
|
|
|
|
.line 428
|
|
iget-object v3, p0, Lpl/droidsonroids/gif/GifDrawable;->f:Lpl/droidsonroids/gif/GifInfoHandle;
|
|
|
|
iget v3, v3, Lpl/droidsonroids/gif/GifInfoHandle;->a:I
|
|
|
|
invoke-static {v3}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
|
|
|
|
move-result-object v3
|
|
|
|
const/4 v4, 0x0
|
|
|
|
aput-object v3, v2, v4
|
|
|
|
iget-object v3, p0, Lpl/droidsonroids/gif/GifDrawable;->f:Lpl/droidsonroids/gif/GifInfoHandle;
|
|
|
|
iget v3, v3, Lpl/droidsonroids/gif/GifInfoHandle;->b:I
|
|
|
|
invoke-static {v3}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
|
|
|
|
move-result-object v3
|
|
|
|
const/4 v4, 0x1
|
|
|
|
aput-object v3, v2, v4
|
|
|
|
.line 429
|
|
iget-object v3, p0, Lpl/droidsonroids/gif/GifDrawable;->f:Lpl/droidsonroids/gif/GifInfoHandle;
|
|
|
|
iget v3, v3, Lpl/droidsonroids/gif/GifInfoHandle;->c:I
|
|
|
|
invoke-static {v3}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
|
|
|
|
move-result-object v3
|
|
|
|
const/4 v4, 0x2
|
|
|
|
aput-object v3, v2, v4
|
|
|
|
.line 430
|
|
iget-object v3, p0, Lpl/droidsonroids/gif/GifDrawable;->f:Lpl/droidsonroids/gif/GifInfoHandle;
|
|
|
|
invoke-virtual {v3}, Lpl/droidsonroids/gif/GifInfoHandle;->f()I
|
|
|
|
move-result v3
|
|
|
|
invoke-static {v3}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
|
|
|
|
move-result-object v3
|
|
|
|
const/4 v4, 0x3
|
|
|
|
aput-object v3, v2, v4
|
|
|
|
.line 426
|
|
invoke-static {v0, v1, v2}, Ljava/lang/String;->format(Ljava/util/Locale;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
|
|
|
|
move-result-object v0
|
|
|
|
return-object v0
|
|
.end method
|