Changes of com.discord v278

This commit is contained in:
DisTok 2019-02-04 21:05:16 +01:00
commit 50139b7f2b
9540 changed files with 1817693 additions and 0 deletions

View file

@ -0,0 +1,354 @@
.class public Lbolts/AggregateException;
.super Ljava/lang/Exception;
.source "AggregateException.java"
# static fields
.field private static final DEFAULT_MESSAGE:Ljava/lang/String; = "There were multiple errors."
.field private static final serialVersionUID:J = 0x1L
# instance fields
.field private innerThrowables:Ljava/util/List;
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/util/List",
"<",
"Ljava/lang/Throwable;",
">;"
}
.end annotation
.end field
# direct methods
.method public constructor <init>(Ljava/lang/String;Ljava/util/List;)V
.locals 1
.param p1, "detailMessage" # Ljava/lang/String;
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/lang/String;",
"Ljava/util/List",
"<+",
"Ljava/lang/Throwable;",
">;)V"
}
.end annotation
.prologue
.local p2, "innerThrowables":Ljava/util/List;, "Ljava/util/List<+Ljava/lang/Throwable;>;"
if-eqz p2, :cond_0
invoke-interface {p2}, Ljava/util/List;->size()I
move-result v0
if-lez v0, :cond_0
const/4 v0, 0x0
invoke-interface {p2, v0}, Ljava/util/List;->get(I)Ljava/lang/Object;
move-result-object v0
check-cast v0, Ljava/lang/Throwable;
:goto_0
invoke-direct {p0, p1, v0}, Ljava/lang/Exception;-><init>(Ljava/lang/String;Ljava/lang/Throwable;)V
invoke-static {p2}, Ljava/util/Collections;->unmodifiableList(Ljava/util/List;)Ljava/util/List;
move-result-object v0
iput-object v0, p0, Lbolts/AggregateException;->innerThrowables:Ljava/util/List;
return-void
:cond_0
const/4 v0, 0x0
goto :goto_0
.end method
.method public constructor <init>(Ljava/lang/String;[Ljava/lang/Throwable;)V
.locals 1
.param p1, "detailMessage" # Ljava/lang/String;
.param p2, "innerThrowables" # [Ljava/lang/Throwable;
.prologue
invoke-static {p2}, Ljava/util/Arrays;->asList([Ljava/lang/Object;)Ljava/util/List;
move-result-object v0
invoke-direct {p0, p1, v0}, Lbolts/AggregateException;-><init>(Ljava/lang/String;Ljava/util/List;)V
return-void
.end method
.method public constructor <init>(Ljava/util/List;)V
.locals 1
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/util/List",
"<+",
"Ljava/lang/Throwable;",
">;)V"
}
.end annotation
.prologue
.local p1, "innerThrowables":Ljava/util/List;, "Ljava/util/List<+Ljava/lang/Throwable;>;"
const-string v0, "There were multiple errors."
invoke-direct {p0, v0, p1}, Lbolts/AggregateException;-><init>(Ljava/lang/String;Ljava/util/List;)V
return-void
.end method
# virtual methods
.method public getCauses()[Ljava/lang/Throwable;
.locals 2
.annotation runtime Ljava/lang/Deprecated;
.end annotation
.prologue
iget-object v0, p0, Lbolts/AggregateException;->innerThrowables:Ljava/util/List;
iget-object v1, p0, Lbolts/AggregateException;->innerThrowables:Ljava/util/List;
invoke-interface {v1}, Ljava/util/List;->size()I
move-result v1
new-array v1, v1, [Ljava/lang/Throwable;
invoke-interface {v0, v1}, Ljava/util/List;->toArray([Ljava/lang/Object;)[Ljava/lang/Object;
move-result-object v0
check-cast v0, [Ljava/lang/Throwable;
return-object v0
.end method
.method public getErrors()Ljava/util/List;
.locals 4
.annotation system Ldalvik/annotation/Signature;
value = {
"()",
"Ljava/util/List",
"<",
"Ljava/lang/Exception;",
">;"
}
.end annotation
.annotation runtime Ljava/lang/Deprecated;
.end annotation
.prologue
new-instance v1, Ljava/util/ArrayList;
invoke-direct {v1}, Ljava/util/ArrayList;-><init>()V
.local v1, "errors":Ljava/util/List;, "Ljava/util/List<Ljava/lang/Exception;>;"
iget-object v3, p0, Lbolts/AggregateException;->innerThrowables:Ljava/util/List;
if-nez v3, :cond_1
:cond_0
return-object v1
:cond_1
iget-object v3, p0, Lbolts/AggregateException;->innerThrowables:Ljava/util/List;
invoke-interface {v3}, Ljava/util/List;->iterator()Ljava/util/Iterator;
move-result-object v2
.local v2, "i$":Ljava/util/Iterator;
:goto_0
invoke-interface {v2}, Ljava/util/Iterator;->hasNext()Z
move-result v3
if-eqz v3, :cond_0
invoke-interface {v2}, Ljava/util/Iterator;->next()Ljava/lang/Object;
move-result-object v0
check-cast v0, Ljava/lang/Throwable;
.local v0, "cause":Ljava/lang/Throwable;
instance-of v3, v0, Ljava/lang/Exception;
if-eqz v3, :cond_2
check-cast v0, Ljava/lang/Exception;
.end local v0 # "cause":Ljava/lang/Throwable;
invoke-interface {v1, v0}, Ljava/util/List;->add(Ljava/lang/Object;)Z
goto :goto_0
.restart local v0 # "cause":Ljava/lang/Throwable;
:cond_2
new-instance v3, Ljava/lang/Exception;
invoke-direct {v3, v0}, Ljava/lang/Exception;-><init>(Ljava/lang/Throwable;)V
invoke-interface {v1, v3}, Ljava/util/List;->add(Ljava/lang/Object;)Z
goto :goto_0
.end method
.method public getInnerThrowables()Ljava/util/List;
.locals 1
.annotation system Ldalvik/annotation/Signature;
value = {
"()",
"Ljava/util/List",
"<",
"Ljava/lang/Throwable;",
">;"
}
.end annotation
.prologue
iget-object v0, p0, Lbolts/AggregateException;->innerThrowables:Ljava/util/List;
return-object v0
.end method
.method public printStackTrace(Ljava/io/PrintStream;)V
.locals 4
.param p1, "err" # Ljava/io/PrintStream;
.prologue
invoke-super {p0, p1}, Ljava/lang/Exception;->printStackTrace(Ljava/io/PrintStream;)V
const/4 v0, -0x1
.local v0, "currentIndex":I
iget-object v3, p0, Lbolts/AggregateException;->innerThrowables:Ljava/util/List;
invoke-interface {v3}, Ljava/util/List;->iterator()Ljava/util/Iterator;
move-result-object v1
.local v1, "i$":Ljava/util/Iterator;
:goto_0
invoke-interface {v1}, Ljava/util/Iterator;->hasNext()Z
move-result v3
if-eqz v3, :cond_0
invoke-interface {v1}, Ljava/util/Iterator;->next()Ljava/lang/Object;
move-result-object v2
check-cast v2, Ljava/lang/Throwable;
.local v2, "throwable":Ljava/lang/Throwable;
const-string v3, "\n"
invoke-virtual {p1, v3}, Ljava/io/PrintStream;->append(Ljava/lang/CharSequence;)Ljava/io/PrintStream;
const-string v3, " Inner throwable #"
invoke-virtual {p1, v3}, Ljava/io/PrintStream;->append(Ljava/lang/CharSequence;)Ljava/io/PrintStream;
add-int/lit8 v0, v0, 0x1
invoke-static {v0}, Ljava/lang/Integer;->toString(I)Ljava/lang/String;
move-result-object v3
invoke-virtual {p1, v3}, Ljava/io/PrintStream;->append(Ljava/lang/CharSequence;)Ljava/io/PrintStream;
const-string v3, ": "
invoke-virtual {p1, v3}, Ljava/io/PrintStream;->append(Ljava/lang/CharSequence;)Ljava/io/PrintStream;
invoke-virtual {v2, p1}, Ljava/lang/Throwable;->printStackTrace(Ljava/io/PrintStream;)V
const-string v3, "\n"
invoke-virtual {p1, v3}, Ljava/io/PrintStream;->append(Ljava/lang/CharSequence;)Ljava/io/PrintStream;
goto :goto_0
.end local v2 # "throwable":Ljava/lang/Throwable;
:cond_0
return-void
.end method
.method public printStackTrace(Ljava/io/PrintWriter;)V
.locals 4
.param p1, "err" # Ljava/io/PrintWriter;
.prologue
invoke-super {p0, p1}, Ljava/lang/Exception;->printStackTrace(Ljava/io/PrintWriter;)V
const/4 v0, -0x1
.local v0, "currentIndex":I
iget-object v3, p0, Lbolts/AggregateException;->innerThrowables:Ljava/util/List;
invoke-interface {v3}, Ljava/util/List;->iterator()Ljava/util/Iterator;
move-result-object v1
.local v1, "i$":Ljava/util/Iterator;
:goto_0
invoke-interface {v1}, Ljava/util/Iterator;->hasNext()Z
move-result v3
if-eqz v3, :cond_0
invoke-interface {v1}, Ljava/util/Iterator;->next()Ljava/lang/Object;
move-result-object v2
check-cast v2, Ljava/lang/Throwable;
.local v2, "throwable":Ljava/lang/Throwable;
const-string v3, "\n"
invoke-virtual {p1, v3}, Ljava/io/PrintWriter;->append(Ljava/lang/CharSequence;)Ljava/io/PrintWriter;
const-string v3, " Inner throwable #"
invoke-virtual {p1, v3}, Ljava/io/PrintWriter;->append(Ljava/lang/CharSequence;)Ljava/io/PrintWriter;
add-int/lit8 v0, v0, 0x1
invoke-static {v0}, Ljava/lang/Integer;->toString(I)Ljava/lang/String;
move-result-object v3
invoke-virtual {p1, v3}, Ljava/io/PrintWriter;->append(Ljava/lang/CharSequence;)Ljava/io/PrintWriter;
const-string v3, ": "
invoke-virtual {p1, v3}, Ljava/io/PrintWriter;->append(Ljava/lang/CharSequence;)Ljava/io/PrintWriter;
invoke-virtual {v2, p1}, Ljava/lang/Throwable;->printStackTrace(Ljava/io/PrintWriter;)V
const-string v3, "\n"
invoke-virtual {p1, v3}, Ljava/io/PrintWriter;->append(Ljava/lang/CharSequence;)Ljava/io/PrintWriter;
goto :goto_0
.end local v2 # "throwable":Ljava/lang/Throwable;
:cond_0
return-void
.end method

View file

@ -0,0 +1,14 @@
.class synthetic Lbolts/AndroidExecutors$1;
.super Ljava/lang/Object;
.source "AndroidExecutors.java"
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Lbolts/AndroidExecutors;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x1008
name = null
.end annotation

View file

@ -0,0 +1,58 @@
.class Lbolts/AndroidExecutors$UIThreadExecutor;
.super Ljava/lang/Object;
.source "AndroidExecutors.java"
# interfaces
.implements Ljava/util/concurrent/Executor;
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Lbolts/AndroidExecutors;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0xa
name = "UIThreadExecutor"
.end annotation
# direct methods
.method private constructor <init>()V
.locals 0
.prologue
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
return-void
.end method
.method synthetic constructor <init>(Lbolts/AndroidExecutors$1;)V
.locals 0
.param p1, "x0" # Lbolts/AndroidExecutors$1;
.prologue
invoke-direct {p0}, Lbolts/AndroidExecutors$UIThreadExecutor;-><init>()V
return-void
.end method
# virtual methods
.method public execute(Ljava/lang/Runnable;)V
.locals 2
.param p1, "command" # Ljava/lang/Runnable;
.prologue
new-instance v0, Landroid/os/Handler;
invoke-static {}, Landroid/os/Looper;->getMainLooper()Landroid/os/Looper;
move-result-object v1
invoke-direct {v0, v1}, Landroid/os/Handler;-><init>(Landroid/os/Looper;)V
invoke-virtual {v0, p1}, Landroid/os/Handler;->post(Ljava/lang/Runnable;)Z
return-void
.end method

View file

@ -0,0 +1,177 @@
.class final Lbolts/AndroidExecutors;
.super Ljava/lang/Object;
.source "AndroidExecutors.java"
# annotations
.annotation system Ldalvik/annotation/MemberClasses;
value = {
Lbolts/AndroidExecutors$1;,
Lbolts/AndroidExecutors$UIThreadExecutor;
}
.end annotation
# static fields
.field static final CORE_POOL_SIZE:I
.field private static final CPU_COUNT:I
.field private static final INSTANCE:Lbolts/AndroidExecutors;
.field static final KEEP_ALIVE_TIME:J = 0x1L
.field static final MAX_POOL_SIZE:I
# instance fields
.field private final uiThread:Ljava/util/concurrent/Executor;
# direct methods
.method static constructor <clinit>()V
.locals 1
.prologue
new-instance v0, Lbolts/AndroidExecutors;
invoke-direct {v0}, Lbolts/AndroidExecutors;-><init>()V
sput-object v0, Lbolts/AndroidExecutors;->INSTANCE:Lbolts/AndroidExecutors;
invoke-static {}, Ljava/lang/Runtime;->getRuntime()Ljava/lang/Runtime;
move-result-object v0
invoke-virtual {v0}, Ljava/lang/Runtime;->availableProcessors()I
move-result v0
sput v0, Lbolts/AndroidExecutors;->CPU_COUNT:I
sget v0, Lbolts/AndroidExecutors;->CPU_COUNT:I
add-int/lit8 v0, v0, 0x1
sput v0, Lbolts/AndroidExecutors;->CORE_POOL_SIZE:I
sget v0, Lbolts/AndroidExecutors;->CPU_COUNT:I
mul-int/lit8 v0, v0, 0x2
add-int/lit8 v0, v0, 0x1
sput v0, Lbolts/AndroidExecutors;->MAX_POOL_SIZE:I
return-void
.end method
.method private constructor <init>()V
.locals 2
.prologue
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
new-instance v0, Lbolts/AndroidExecutors$UIThreadExecutor;
const/4 v1, 0x0
invoke-direct {v0, v1}, Lbolts/AndroidExecutors$UIThreadExecutor;-><init>(Lbolts/AndroidExecutors$1;)V
iput-object v0, p0, Lbolts/AndroidExecutors;->uiThread:Ljava/util/concurrent/Executor;
return-void
.end method
.method public static allowCoreThreadTimeout(Ljava/util/concurrent/ThreadPoolExecutor;Z)V
.locals 2
.param p0, "executor" # Ljava/util/concurrent/ThreadPoolExecutor;
.param p1, "value" # Z
.annotation build Landroid/annotation/SuppressLint;
value = {
"NewApi"
}
.end annotation
.prologue
sget v0, Landroid/os/Build$VERSION;->SDK_INT:I
const/16 v1, 0x9
if-lt v0, v1, :cond_0
invoke-virtual {p0, p1}, Ljava/util/concurrent/ThreadPoolExecutor;->allowCoreThreadTimeOut(Z)V
:cond_0
return-void
.end method
.method public static newCachedThreadPool()Ljava/util/concurrent/ExecutorService;
.locals 8
.prologue
new-instance v1, Ljava/util/concurrent/ThreadPoolExecutor;
sget v2, Lbolts/AndroidExecutors;->CORE_POOL_SIZE:I
sget v3, Lbolts/AndroidExecutors;->MAX_POOL_SIZE:I
const-wide/16 v4, 0x1
sget-object v6, Ljava/util/concurrent/TimeUnit;->SECONDS:Ljava/util/concurrent/TimeUnit;
new-instance v7, Ljava/util/concurrent/LinkedBlockingQueue;
invoke-direct {v7}, Ljava/util/concurrent/LinkedBlockingQueue;-><init>()V
invoke-direct/range {v1 .. v7}, Ljava/util/concurrent/ThreadPoolExecutor;-><init>(IIJLjava/util/concurrent/TimeUnit;Ljava/util/concurrent/BlockingQueue;)V
.local v1, "executor":Ljava/util/concurrent/ThreadPoolExecutor;
const/4 v0, 0x1
invoke-static {v1, v0}, Lbolts/AndroidExecutors;->allowCoreThreadTimeout(Ljava/util/concurrent/ThreadPoolExecutor;Z)V
return-object v1
.end method
.method public static newCachedThreadPool(Ljava/util/concurrent/ThreadFactory;)Ljava/util/concurrent/ExecutorService;
.locals 9
.param p0, "threadFactory" # Ljava/util/concurrent/ThreadFactory;
.prologue
new-instance v1, Ljava/util/concurrent/ThreadPoolExecutor;
sget v2, Lbolts/AndroidExecutors;->CORE_POOL_SIZE:I
sget v3, Lbolts/AndroidExecutors;->MAX_POOL_SIZE:I
const-wide/16 v4, 0x1
sget-object v6, Ljava/util/concurrent/TimeUnit;->SECONDS:Ljava/util/concurrent/TimeUnit;
new-instance v7, Ljava/util/concurrent/LinkedBlockingQueue;
invoke-direct {v7}, Ljava/util/concurrent/LinkedBlockingQueue;-><init>()V
move-object v8, p0
invoke-direct/range {v1 .. v8}, Ljava/util/concurrent/ThreadPoolExecutor;-><init>(IIJLjava/util/concurrent/TimeUnit;Ljava/util/concurrent/BlockingQueue;Ljava/util/concurrent/ThreadFactory;)V
.local v1, "executor":Ljava/util/concurrent/ThreadPoolExecutor;
const/4 v0, 0x1
invoke-static {v1, v0}, Lbolts/AndroidExecutors;->allowCoreThreadTimeout(Ljava/util/concurrent/ThreadPoolExecutor;Z)V
return-object v1
.end method
.method public static uiThread()Ljava/util/concurrent/Executor;
.locals 1
.prologue
sget-object v0, Lbolts/AndroidExecutors;->INSTANCE:Lbolts/AndroidExecutors;
iget-object v0, v0, Lbolts/AndroidExecutors;->uiThread:Ljava/util/concurrent/Executor;
return-object v0
.end method

View file

@ -0,0 +1,14 @@
.class synthetic Lbolts/BoltsExecutors$1;
.super Ljava/lang/Object;
.source "BoltsExecutors.java"
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Lbolts/BoltsExecutors;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x1008
name = null
.end annotation

View file

@ -0,0 +1,197 @@
.class Lbolts/BoltsExecutors$ImmediateExecutor;
.super Ljava/lang/Object;
.source "BoltsExecutors.java"
# interfaces
.implements Ljava/util/concurrent/Executor;
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Lbolts/BoltsExecutors;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0xa
name = "ImmediateExecutor"
.end annotation
# static fields
.field private static final MAX_DEPTH:I = 0xf
# instance fields
.field private executionDepth:Ljava/lang/ThreadLocal;
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/lang/ThreadLocal",
"<",
"Ljava/lang/Integer;",
">;"
}
.end annotation
.end field
# direct methods
.method private constructor <init>()V
.locals 1
.prologue
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
new-instance v0, Ljava/lang/ThreadLocal;
invoke-direct {v0}, Ljava/lang/ThreadLocal;-><init>()V
iput-object v0, p0, Lbolts/BoltsExecutors$ImmediateExecutor;->executionDepth:Ljava/lang/ThreadLocal;
return-void
.end method
.method synthetic constructor <init>(Lbolts/BoltsExecutors$1;)V
.locals 0
.param p1, "x0" # Lbolts/BoltsExecutors$1;
.prologue
invoke-direct {p0}, Lbolts/BoltsExecutors$ImmediateExecutor;-><init>()V
return-void
.end method
.method private decrementDepth()I
.locals 4
.prologue
iget-object v2, p0, Lbolts/BoltsExecutors$ImmediateExecutor;->executionDepth:Ljava/lang/ThreadLocal;
invoke-virtual {v2}, Ljava/lang/ThreadLocal;->get()Ljava/lang/Object;
move-result-object v1
check-cast v1, Ljava/lang/Integer;
.local v1, "oldDepth":Ljava/lang/Integer;
if-nez v1, :cond_0
const/4 v2, 0x0
invoke-static {v2}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object v1
:cond_0
invoke-virtual {v1}, Ljava/lang/Integer;->intValue()I
move-result v2
add-int/lit8 v0, v2, -0x1
.local v0, "newDepth":I
if-nez v0, :cond_1
iget-object v2, p0, Lbolts/BoltsExecutors$ImmediateExecutor;->executionDepth:Ljava/lang/ThreadLocal;
invoke-virtual {v2}, Ljava/lang/ThreadLocal;->remove()V
:goto_0
return v0
:cond_1
iget-object v2, p0, Lbolts/BoltsExecutors$ImmediateExecutor;->executionDepth:Ljava/lang/ThreadLocal;
invoke-static {v0}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object v3
invoke-virtual {v2, v3}, Ljava/lang/ThreadLocal;->set(Ljava/lang/Object;)V
goto :goto_0
.end method
.method private incrementDepth()I
.locals 4
.prologue
iget-object v2, p0, Lbolts/BoltsExecutors$ImmediateExecutor;->executionDepth:Ljava/lang/ThreadLocal;
invoke-virtual {v2}, Ljava/lang/ThreadLocal;->get()Ljava/lang/Object;
move-result-object v1
check-cast v1, Ljava/lang/Integer;
.local v1, "oldDepth":Ljava/lang/Integer;
if-nez v1, :cond_0
const/4 v2, 0x0
invoke-static {v2}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object v1
:cond_0
invoke-virtual {v1}, Ljava/lang/Integer;->intValue()I
move-result v2
add-int/lit8 v0, v2, 0x1
.local v0, "newDepth":I
iget-object v2, p0, Lbolts/BoltsExecutors$ImmediateExecutor;->executionDepth:Ljava/lang/ThreadLocal;
invoke-static {v0}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object v3
invoke-virtual {v2, v3}, Ljava/lang/ThreadLocal;->set(Ljava/lang/Object;)V
return v0
.end method
# virtual methods
.method public execute(Ljava/lang/Runnable;)V
.locals 2
.param p1, "command" # Ljava/lang/Runnable;
.prologue
invoke-direct {p0}, Lbolts/BoltsExecutors$ImmediateExecutor;->incrementDepth()I
move-result v0
.local v0, "depth":I
const/16 v1, 0xf
if-gt v0, v1, :cond_0
:try_start_0
invoke-interface {p1}, Ljava/lang/Runnable;->run()V
:try_end_0
.catchall {:try_start_0 .. :try_end_0} :catchall_0
:goto_0
invoke-direct {p0}, Lbolts/BoltsExecutors$ImmediateExecutor;->decrementDepth()I
return-void
:cond_0
:try_start_1
invoke-static {}, Lbolts/BoltsExecutors;->background()Ljava/util/concurrent/ExecutorService;
move-result-object v1
invoke-interface {v1, p1}, Ljava/util/concurrent/ExecutorService;->execute(Ljava/lang/Runnable;)V
:try_end_1
.catchall {:try_start_1 .. :try_end_1} :catchall_0
goto :goto_0
:catchall_0
move-exception v1
invoke-direct {p0}, Lbolts/BoltsExecutors$ImmediateExecutor;->decrementDepth()I
throw v1
.end method

View file

@ -0,0 +1,149 @@
.class final Lbolts/BoltsExecutors;
.super Ljava/lang/Object;
.source "BoltsExecutors.java"
# annotations
.annotation system Ldalvik/annotation/MemberClasses;
value = {
Lbolts/BoltsExecutors$1;,
Lbolts/BoltsExecutors$ImmediateExecutor;
}
.end annotation
# static fields
.field private static final INSTANCE:Lbolts/BoltsExecutors;
# instance fields
.field private final background:Ljava/util/concurrent/ExecutorService;
.field private final immediate:Ljava/util/concurrent/Executor;
.field private final scheduled:Ljava/util/concurrent/ScheduledExecutorService;
# direct methods
.method static constructor <clinit>()V
.locals 1
.prologue
new-instance v0, Lbolts/BoltsExecutors;
invoke-direct {v0}, Lbolts/BoltsExecutors;-><init>()V
sput-object v0, Lbolts/BoltsExecutors;->INSTANCE:Lbolts/BoltsExecutors;
return-void
.end method
.method private constructor <init>()V
.locals 2
.prologue
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
invoke-static {}, Lbolts/BoltsExecutors;->isAndroidRuntime()Z
move-result v0
if-nez v0, :cond_0
invoke-static {}, Ljava/util/concurrent/Executors;->newCachedThreadPool()Ljava/util/concurrent/ExecutorService;
move-result-object v0
:goto_0
iput-object v0, p0, Lbolts/BoltsExecutors;->background:Ljava/util/concurrent/ExecutorService;
invoke-static {}, Ljava/util/concurrent/Executors;->newSingleThreadScheduledExecutor()Ljava/util/concurrent/ScheduledExecutorService;
move-result-object v0
iput-object v0, p0, Lbolts/BoltsExecutors;->scheduled:Ljava/util/concurrent/ScheduledExecutorService;
new-instance v0, Lbolts/BoltsExecutors$ImmediateExecutor;
const/4 v1, 0x0
invoke-direct {v0, v1}, Lbolts/BoltsExecutors$ImmediateExecutor;-><init>(Lbolts/BoltsExecutors$1;)V
iput-object v0, p0, Lbolts/BoltsExecutors;->immediate:Ljava/util/concurrent/Executor;
return-void
:cond_0
invoke-static {}, Lbolts/AndroidExecutors;->newCachedThreadPool()Ljava/util/concurrent/ExecutorService;
move-result-object v0
goto :goto_0
.end method
.method public static background()Ljava/util/concurrent/ExecutorService;
.locals 1
.prologue
sget-object v0, Lbolts/BoltsExecutors;->INSTANCE:Lbolts/BoltsExecutors;
iget-object v0, v0, Lbolts/BoltsExecutors;->background:Ljava/util/concurrent/ExecutorService;
return-object v0
.end method
.method static immediate()Ljava/util/concurrent/Executor;
.locals 1
.prologue
sget-object v0, Lbolts/BoltsExecutors;->INSTANCE:Lbolts/BoltsExecutors;
iget-object v0, v0, Lbolts/BoltsExecutors;->immediate:Ljava/util/concurrent/Executor;
return-object v0
.end method
.method private static isAndroidRuntime()Z
.locals 3
.prologue
const-string v1, "java.runtime.name"
invoke-static {v1}, Ljava/lang/System;->getProperty(Ljava/lang/String;)Ljava/lang/String;
move-result-object v0
.local v0, "javaRuntimeName":Ljava/lang/String;
if-nez v0, :cond_0
const/4 v1, 0x0
:goto_0
return v1
:cond_0
sget-object v1, Ljava/util/Locale;->US:Ljava/util/Locale;
invoke-virtual {v0, v1}, Ljava/lang/String;->toLowerCase(Ljava/util/Locale;)Ljava/lang/String;
move-result-object v1
const-string v2, "android"
invoke-virtual {v1, v2}, Ljava/lang/String;->contains(Ljava/lang/CharSequence;)Z
move-result v1
goto :goto_0
.end method
.method static scheduled()Ljava/util/concurrent/ScheduledExecutorService;
.locals 1
.prologue
sget-object v0, Lbolts/BoltsExecutors;->INSTANCE:Lbolts/BoltsExecutors;
iget-object v0, v0, Lbolts/BoltsExecutors;->scheduled:Ljava/util/concurrent/ScheduledExecutorService;
return-object v0
.end method

View file

@ -0,0 +1,123 @@
.class public Lbolts/CancellationToken;
.super Ljava/lang/Object;
.source "CancellationToken.java"
# instance fields
.field private final tokenSource:Lbolts/CancellationTokenSource;
# direct methods
.method constructor <init>(Lbolts/CancellationTokenSource;)V
.locals 0
.param p1, "tokenSource" # Lbolts/CancellationTokenSource;
.prologue
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
iput-object p1, p0, Lbolts/CancellationToken;->tokenSource:Lbolts/CancellationTokenSource;
return-void
.end method
# virtual methods
.method public isCancellationRequested()Z
.locals 1
.prologue
iget-object v0, p0, Lbolts/CancellationToken;->tokenSource:Lbolts/CancellationTokenSource;
invoke-virtual {v0}, Lbolts/CancellationTokenSource;->isCancellationRequested()Z
move-result v0
return v0
.end method
.method public register(Ljava/lang/Runnable;)Lbolts/CancellationTokenRegistration;
.locals 1
.param p1, "action" # Ljava/lang/Runnable;
.prologue
iget-object v0, p0, Lbolts/CancellationToken;->tokenSource:Lbolts/CancellationTokenSource;
invoke-virtual {v0, p1}, Lbolts/CancellationTokenSource;->register(Ljava/lang/Runnable;)Lbolts/CancellationTokenRegistration;
move-result-object v0
return-object v0
.end method
.method public throwIfCancellationRequested()V
.locals 1
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/util/concurrent/CancellationException;
}
.end annotation
.prologue
iget-object v0, p0, Lbolts/CancellationToken;->tokenSource:Lbolts/CancellationTokenSource;
invoke-virtual {v0}, Lbolts/CancellationTokenSource;->throwIfCancellationRequested()V
return-void
.end method
.method public toString()Ljava/lang/String;
.locals 5
.prologue
sget-object v0, Ljava/util/Locale;->US:Ljava/util/Locale;
const-string v1, "%s@%s[cancellationRequested=%s]"
const/4 v2, 0x3
new-array v2, v2, [Ljava/lang/Object;
const/4 v3, 0x0
invoke-virtual {p0}, Ljava/lang/Object;->getClass()Ljava/lang/Class;
move-result-object v4
invoke-virtual {v4}, Ljava/lang/Class;->getName()Ljava/lang/String;
move-result-object v4
aput-object v4, v2, v3
const/4 v3, 0x1
invoke-virtual {p0}, Ljava/lang/Object;->hashCode()I
move-result v4
invoke-static {v4}, Ljava/lang/Integer;->toHexString(I)Ljava/lang/String;
move-result-object v4
aput-object v4, v2, v3
const/4 v3, 0x2
iget-object v4, p0, Lbolts/CancellationToken;->tokenSource:Lbolts/CancellationTokenSource;
invoke-virtual {v4}, Lbolts/CancellationTokenSource;->isCancellationRequested()Z
move-result v4
invoke-static {v4}, Ljava/lang/Boolean;->toString(Z)Ljava/lang/String;
move-result-object v4
aput-object v4, v2, v3
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

View file

@ -0,0 +1,141 @@
.class public Lbolts/CancellationTokenRegistration;
.super Ljava/lang/Object;
.source "CancellationTokenRegistration.java"
# interfaces
.implements Ljava/io/Closeable;
# instance fields
.field private action:Ljava/lang/Runnable;
.field private closed:Z
.field private final lock:Ljava/lang/Object;
.field private tokenSource:Lbolts/CancellationTokenSource;
# direct methods
.method constructor <init>(Lbolts/CancellationTokenSource;Ljava/lang/Runnable;)V
.locals 1
.param p1, "tokenSource" # Lbolts/CancellationTokenSource;
.param p2, "action" # Ljava/lang/Runnable;
.prologue
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
new-instance v0, Ljava/lang/Object;
invoke-direct {v0}, Ljava/lang/Object;-><init>()V
iput-object v0, p0, Lbolts/CancellationTokenRegistration;->lock:Ljava/lang/Object;
iput-object p1, p0, Lbolts/CancellationTokenRegistration;->tokenSource:Lbolts/CancellationTokenSource;
iput-object p2, p0, Lbolts/CancellationTokenRegistration;->action:Ljava/lang/Runnable;
return-void
.end method
.method private throwIfClosed()V
.locals 2
.prologue
iget-boolean v0, p0, Lbolts/CancellationTokenRegistration;->closed:Z
if-eqz v0, :cond_0
new-instance v0, Ljava/lang/IllegalStateException;
const-string v1, "Object already closed"
invoke-direct {v0, v1}, Ljava/lang/IllegalStateException;-><init>(Ljava/lang/String;)V
throw v0
:cond_0
return-void
.end method
# virtual methods
.method public close()V
.locals 2
.prologue
iget-object v1, p0, Lbolts/CancellationTokenRegistration;->lock:Ljava/lang/Object;
monitor-enter v1
:try_start_0
iget-boolean v0, p0, Lbolts/CancellationTokenRegistration;->closed:Z
if-eqz v0, :cond_0
monitor-exit v1
:goto_0
return-void
:cond_0
const/4 v0, 0x1
iput-boolean v0, p0, Lbolts/CancellationTokenRegistration;->closed:Z
iget-object v0, p0, Lbolts/CancellationTokenRegistration;->tokenSource:Lbolts/CancellationTokenSource;
invoke-virtual {v0, p0}, Lbolts/CancellationTokenSource;->unregister(Lbolts/CancellationTokenRegistration;)V
const/4 v0, 0x0
iput-object v0, p0, Lbolts/CancellationTokenRegistration;->tokenSource:Lbolts/CancellationTokenSource;
const/4 v0, 0x0
iput-object v0, p0, Lbolts/CancellationTokenRegistration;->action:Ljava/lang/Runnable;
monitor-exit v1
goto :goto_0
:catchall_0
move-exception v0
monitor-exit v1
:try_end_0
.catchall {:try_start_0 .. :try_end_0} :catchall_0
throw v0
.end method
.method runAction()V
.locals 2
.prologue
iget-object v1, p0, Lbolts/CancellationTokenRegistration;->lock:Ljava/lang/Object;
monitor-enter v1
:try_start_0
invoke-direct {p0}, Lbolts/CancellationTokenRegistration;->throwIfClosed()V
iget-object v0, p0, Lbolts/CancellationTokenRegistration;->action:Ljava/lang/Runnable;
invoke-interface {v0}, Ljava/lang/Runnable;->run()V
invoke-virtual {p0}, Lbolts/CancellationTokenRegistration;->close()V
monitor-exit v1
return-void
:catchall_0
move-exception v0
monitor-exit v1
:try_end_0
.catchall {:try_start_0 .. :try_end_0} :catchall_0
throw v0
.end method

View file

@ -0,0 +1,76 @@
.class Lbolts/CancellationTokenSource$1;
.super Ljava/lang/Object;
.source "CancellationTokenSource.java"
# interfaces
.implements Ljava/lang/Runnable;
# annotations
.annotation system Ldalvik/annotation/EnclosingMethod;
value = Lbolts/CancellationTokenSource;->cancelAfter(JLjava/util/concurrent/TimeUnit;)V
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x0
name = null
.end annotation
# instance fields
.field final synthetic this$0:Lbolts/CancellationTokenSource;
# direct methods
.method constructor <init>(Lbolts/CancellationTokenSource;)V
.locals 0
.prologue
iput-object p1, p0, Lbolts/CancellationTokenSource$1;->this$0:Lbolts/CancellationTokenSource;
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
return-void
.end method
# virtual methods
.method public run()V
.locals 3
.prologue
iget-object v0, p0, Lbolts/CancellationTokenSource$1;->this$0:Lbolts/CancellationTokenSource;
invoke-static {v0}, Lbolts/CancellationTokenSource;->access$000(Lbolts/CancellationTokenSource;)Ljava/lang/Object;
move-result-object v1
monitor-enter v1
:try_start_0
iget-object v0, p0, Lbolts/CancellationTokenSource$1;->this$0:Lbolts/CancellationTokenSource;
const/4 v2, 0x0
invoke-static {v0, v2}, Lbolts/CancellationTokenSource;->access$102(Lbolts/CancellationTokenSource;Ljava/util/concurrent/ScheduledFuture;)Ljava/util/concurrent/ScheduledFuture;
monitor-exit v1
:try_end_0
.catchall {:try_start_0 .. :try_end_0} :catchall_0
iget-object v0, p0, Lbolts/CancellationTokenSource$1;->this$0:Lbolts/CancellationTokenSource;
invoke-virtual {v0}, Lbolts/CancellationTokenSource;->cancel()V
return-void
:catchall_0
move-exception v0
:try_start_1
monitor-exit v1
:try_end_1
.catchall {:try_start_1 .. :try_end_1} :catchall_0
throw v0
.end method

View file

@ -0,0 +1,627 @@
.class public Lbolts/CancellationTokenSource;
.super Ljava/lang/Object;
.source "CancellationTokenSource.java"
# interfaces
.implements Ljava/io/Closeable;
# instance fields
.field private cancellationRequested:Z
.field private closed:Z
.field private final executor:Ljava/util/concurrent/ScheduledExecutorService;
.field private final lock:Ljava/lang/Object;
.field private final registrations:Ljava/util/List;
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/util/List",
"<",
"Lbolts/CancellationTokenRegistration;",
">;"
}
.end annotation
.end field
.field private scheduledCancellation:Ljava/util/concurrent/ScheduledFuture;
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/util/concurrent/ScheduledFuture",
"<*>;"
}
.end annotation
.end field
# direct methods
.method public constructor <init>()V
.locals 1
.prologue
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
new-instance v0, Ljava/lang/Object;
invoke-direct {v0}, Ljava/lang/Object;-><init>()V
iput-object v0, p0, Lbolts/CancellationTokenSource;->lock:Ljava/lang/Object;
new-instance v0, Ljava/util/ArrayList;
invoke-direct {v0}, Ljava/util/ArrayList;-><init>()V
iput-object v0, p0, Lbolts/CancellationTokenSource;->registrations:Ljava/util/List;
invoke-static {}, Lbolts/BoltsExecutors;->scheduled()Ljava/util/concurrent/ScheduledExecutorService;
move-result-object v0
iput-object v0, p0, Lbolts/CancellationTokenSource;->executor:Ljava/util/concurrent/ScheduledExecutorService;
return-void
.end method
.method static synthetic access$000(Lbolts/CancellationTokenSource;)Ljava/lang/Object;
.locals 1
.param p0, "x0" # Lbolts/CancellationTokenSource;
.prologue
iget-object v0, p0, Lbolts/CancellationTokenSource;->lock:Ljava/lang/Object;
return-object v0
.end method
.method static synthetic access$102(Lbolts/CancellationTokenSource;Ljava/util/concurrent/ScheduledFuture;)Ljava/util/concurrent/ScheduledFuture;
.locals 0
.param p0, "x0" # Lbolts/CancellationTokenSource;
.param p1, "x1" # Ljava/util/concurrent/ScheduledFuture;
.prologue
iput-object p1, p0, Lbolts/CancellationTokenSource;->scheduledCancellation:Ljava/util/concurrent/ScheduledFuture;
return-object p1
.end method
.method private cancelAfter(JLjava/util/concurrent/TimeUnit;)V
.locals 5
.param p1, "delay" # J
.param p3, "timeUnit" # Ljava/util/concurrent/TimeUnit;
.prologue
const-wide/16 v2, -0x1
cmp-long v0, p1, v2
if-gez v0, :cond_0
new-instance v0, Ljava/lang/IllegalArgumentException;
const-string v1, "Delay must be >= -1"
invoke-direct {v0, v1}, Ljava/lang/IllegalArgumentException;-><init>(Ljava/lang/String;)V
throw v0
:cond_0
const-wide/16 v0, 0x0
cmp-long v0, p1, v0
if-nez v0, :cond_1
invoke-virtual {p0}, Lbolts/CancellationTokenSource;->cancel()V
:goto_0
return-void
:cond_1
iget-object v1, p0, Lbolts/CancellationTokenSource;->lock:Ljava/lang/Object;
monitor-enter v1
:try_start_0
iget-boolean v0, p0, Lbolts/CancellationTokenSource;->cancellationRequested:Z
if-eqz v0, :cond_2
monitor-exit v1
goto :goto_0
:catchall_0
move-exception v0
monitor-exit v1
:try_end_0
.catchall {:try_start_0 .. :try_end_0} :catchall_0
throw v0
:cond_2
:try_start_1
invoke-direct {p0}, Lbolts/CancellationTokenSource;->cancelScheduledCancellation()V
cmp-long v0, p1, v2
if-eqz v0, :cond_3
iget-object v0, p0, Lbolts/CancellationTokenSource;->executor:Ljava/util/concurrent/ScheduledExecutorService;
new-instance v2, Lbolts/CancellationTokenSource$1;
invoke-direct {v2, p0}, Lbolts/CancellationTokenSource$1;-><init>(Lbolts/CancellationTokenSource;)V
invoke-interface {v0, v2, p1, p2, p3}, Ljava/util/concurrent/ScheduledExecutorService;->schedule(Ljava/lang/Runnable;JLjava/util/concurrent/TimeUnit;)Ljava/util/concurrent/ScheduledFuture;
move-result-object v0
iput-object v0, p0, Lbolts/CancellationTokenSource;->scheduledCancellation:Ljava/util/concurrent/ScheduledFuture;
:cond_3
monitor-exit v1
:try_end_1
.catchall {:try_start_1 .. :try_end_1} :catchall_0
goto :goto_0
.end method
.method private cancelScheduledCancellation()V
.locals 2
.prologue
iget-object v0, p0, Lbolts/CancellationTokenSource;->scheduledCancellation:Ljava/util/concurrent/ScheduledFuture;
if-eqz v0, :cond_0
iget-object v0, p0, Lbolts/CancellationTokenSource;->scheduledCancellation:Ljava/util/concurrent/ScheduledFuture;
const/4 v1, 0x1
invoke-interface {v0, v1}, Ljava/util/concurrent/ScheduledFuture;->cancel(Z)Z
const/4 v0, 0x0
iput-object v0, p0, Lbolts/CancellationTokenSource;->scheduledCancellation:Ljava/util/concurrent/ScheduledFuture;
:cond_0
return-void
.end method
.method private notifyListeners(Ljava/util/List;)V
.locals 3
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/util/List",
"<",
"Lbolts/CancellationTokenRegistration;",
">;)V"
}
.end annotation
.prologue
.local p1, "registrations":Ljava/util/List;, "Ljava/util/List<Lbolts/CancellationTokenRegistration;>;"
invoke-interface {p1}, Ljava/util/List;->iterator()Ljava/util/Iterator;
move-result-object v0
.local v0, "i$":Ljava/util/Iterator;
:goto_0
invoke-interface {v0}, Ljava/util/Iterator;->hasNext()Z
move-result v2
if-eqz v2, :cond_0
invoke-interface {v0}, Ljava/util/Iterator;->next()Ljava/lang/Object;
move-result-object v1
check-cast v1, Lbolts/CancellationTokenRegistration;
.local v1, "registration":Lbolts/CancellationTokenRegistration;
invoke-virtual {v1}, Lbolts/CancellationTokenRegistration;->runAction()V
goto :goto_0
.end local v1 # "registration":Lbolts/CancellationTokenRegistration;
:cond_0
return-void
.end method
.method private throwIfClosed()V
.locals 2
.prologue
iget-boolean v0, p0, Lbolts/CancellationTokenSource;->closed:Z
if-eqz v0, :cond_0
new-instance v0, Ljava/lang/IllegalStateException;
const-string v1, "Object already closed"
invoke-direct {v0, v1}, Ljava/lang/IllegalStateException;-><init>(Ljava/lang/String;)V
throw v0
:cond_0
return-void
.end method
# virtual methods
.method public cancel()V
.locals 3
.prologue
iget-object v2, p0, Lbolts/CancellationTokenSource;->lock:Ljava/lang/Object;
monitor-enter v2
:try_start_0
invoke-direct {p0}, Lbolts/CancellationTokenSource;->throwIfClosed()V
iget-boolean v1, p0, Lbolts/CancellationTokenSource;->cancellationRequested:Z
if-eqz v1, :cond_0
monitor-exit v2
:goto_0
return-void
:cond_0
invoke-direct {p0}, Lbolts/CancellationTokenSource;->cancelScheduledCancellation()V
const/4 v1, 0x1
iput-boolean v1, p0, Lbolts/CancellationTokenSource;->cancellationRequested:Z
new-instance v0, Ljava/util/ArrayList;
iget-object v1, p0, Lbolts/CancellationTokenSource;->registrations:Ljava/util/List;
invoke-direct {v0, v1}, Ljava/util/ArrayList;-><init>(Ljava/util/Collection;)V
.local v0, "registrations":Ljava/util/List;, "Ljava/util/List<Lbolts/CancellationTokenRegistration;>;"
monitor-exit v2
:try_end_0
.catchall {:try_start_0 .. :try_end_0} :catchall_0
invoke-direct {p0, v0}, Lbolts/CancellationTokenSource;->notifyListeners(Ljava/util/List;)V
goto :goto_0
.end local v0 # "registrations":Ljava/util/List;, "Ljava/util/List<Lbolts/CancellationTokenRegistration;>;"
:catchall_0
move-exception v1
:try_start_1
monitor-exit v2
:try_end_1
.catchall {:try_start_1 .. :try_end_1} :catchall_0
throw v1
.end method
.method public cancelAfter(J)V
.locals 1
.param p1, "delay" # J
.prologue
sget-object v0, Ljava/util/concurrent/TimeUnit;->MILLISECONDS:Ljava/util/concurrent/TimeUnit;
invoke-direct {p0, p1, p2, v0}, Lbolts/CancellationTokenSource;->cancelAfter(JLjava/util/concurrent/TimeUnit;)V
return-void
.end method
.method public close()V
.locals 4
.prologue
iget-object v3, p0, Lbolts/CancellationTokenSource;->lock:Ljava/lang/Object;
monitor-enter v3
:try_start_0
iget-boolean v2, p0, Lbolts/CancellationTokenSource;->closed:Z
if-eqz v2, :cond_0
monitor-exit v3
:goto_0
return-void
:cond_0
invoke-direct {p0}, Lbolts/CancellationTokenSource;->cancelScheduledCancellation()V
iget-object v2, p0, Lbolts/CancellationTokenSource;->registrations:Ljava/util/List;
invoke-interface {v2}, Ljava/util/List;->iterator()Ljava/util/Iterator;
move-result-object v0
.local v0, "i$":Ljava/util/Iterator;
:goto_1
invoke-interface {v0}, Ljava/util/Iterator;->hasNext()Z
move-result v2
if-eqz v2, :cond_1
invoke-interface {v0}, Ljava/util/Iterator;->next()Ljava/lang/Object;
move-result-object v1
check-cast v1, Lbolts/CancellationTokenRegistration;
.local v1, "registration":Lbolts/CancellationTokenRegistration;
invoke-virtual {v1}, Lbolts/CancellationTokenRegistration;->close()V
goto :goto_1
.end local v0 # "i$":Ljava/util/Iterator;
.end local v1 # "registration":Lbolts/CancellationTokenRegistration;
:catchall_0
move-exception v2
monitor-exit v3
:try_end_0
.catchall {:try_start_0 .. :try_end_0} :catchall_0
throw v2
.restart local v0 # "i$":Ljava/util/Iterator;
:cond_1
:try_start_1
iget-object v2, p0, Lbolts/CancellationTokenSource;->registrations:Ljava/util/List;
invoke-interface {v2}, Ljava/util/List;->clear()V
const/4 v2, 0x1
iput-boolean v2, p0, Lbolts/CancellationTokenSource;->closed:Z
monitor-exit v3
:try_end_1
.catchall {:try_start_1 .. :try_end_1} :catchall_0
goto :goto_0
.end method
.method public getToken()Lbolts/CancellationToken;
.locals 2
.prologue
iget-object v1, p0, Lbolts/CancellationTokenSource;->lock:Ljava/lang/Object;
monitor-enter v1
:try_start_0
invoke-direct {p0}, Lbolts/CancellationTokenSource;->throwIfClosed()V
new-instance v0, Lbolts/CancellationToken;
invoke-direct {v0, p0}, Lbolts/CancellationToken;-><init>(Lbolts/CancellationTokenSource;)V
monitor-exit v1
return-object v0
:catchall_0
move-exception v0
monitor-exit v1
:try_end_0
.catchall {:try_start_0 .. :try_end_0} :catchall_0
throw v0
.end method
.method public isCancellationRequested()Z
.locals 2
.prologue
iget-object v1, p0, Lbolts/CancellationTokenSource;->lock:Ljava/lang/Object;
monitor-enter v1
:try_start_0
invoke-direct {p0}, Lbolts/CancellationTokenSource;->throwIfClosed()V
iget-boolean v0, p0, Lbolts/CancellationTokenSource;->cancellationRequested:Z
monitor-exit v1
return v0
:catchall_0
move-exception v0
monitor-exit v1
:try_end_0
.catchall {:try_start_0 .. :try_end_0} :catchall_0
throw v0
.end method
.method register(Ljava/lang/Runnable;)Lbolts/CancellationTokenRegistration;
.locals 3
.param p1, "action" # Ljava/lang/Runnable;
.prologue
iget-object v2, p0, Lbolts/CancellationTokenSource;->lock:Ljava/lang/Object;
monitor-enter v2
:try_start_0
invoke-direct {p0}, Lbolts/CancellationTokenSource;->throwIfClosed()V
new-instance v0, Lbolts/CancellationTokenRegistration;
invoke-direct {v0, p0, p1}, Lbolts/CancellationTokenRegistration;-><init>(Lbolts/CancellationTokenSource;Ljava/lang/Runnable;)V
.local v0, "ctr":Lbolts/CancellationTokenRegistration;
iget-boolean v1, p0, Lbolts/CancellationTokenSource;->cancellationRequested:Z
if-eqz v1, :cond_0
invoke-virtual {v0}, Lbolts/CancellationTokenRegistration;->runAction()V
:goto_0
monitor-exit v2
return-object v0
:cond_0
iget-object v1, p0, Lbolts/CancellationTokenSource;->registrations:Ljava/util/List;
invoke-interface {v1, v0}, Ljava/util/List;->add(Ljava/lang/Object;)Z
goto :goto_0
.end local v0 # "ctr":Lbolts/CancellationTokenRegistration;
:catchall_0
move-exception v1
monitor-exit v2
:try_end_0
.catchall {:try_start_0 .. :try_end_0} :catchall_0
throw v1
.end method
.method throwIfCancellationRequested()V
.locals 2
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/util/concurrent/CancellationException;
}
.end annotation
.prologue
iget-object v1, p0, Lbolts/CancellationTokenSource;->lock:Ljava/lang/Object;
monitor-enter v1
:try_start_0
invoke-direct {p0}, Lbolts/CancellationTokenSource;->throwIfClosed()V
iget-boolean v0, p0, Lbolts/CancellationTokenSource;->cancellationRequested:Z
if-eqz v0, :cond_0
new-instance v0, Ljava/util/concurrent/CancellationException;
invoke-direct {v0}, Ljava/util/concurrent/CancellationException;-><init>()V
throw v0
:catchall_0
move-exception v0
monitor-exit v1
:try_end_0
.catchall {:try_start_0 .. :try_end_0} :catchall_0
throw v0
:cond_0
:try_start_1
monitor-exit v1
:try_end_1
.catchall {:try_start_1 .. :try_end_1} :catchall_0
return-void
.end method
.method public toString()Ljava/lang/String;
.locals 5
.prologue
sget-object v0, Ljava/util/Locale;->US:Ljava/util/Locale;
const-string v1, "%s@%s[cancellationRequested=%s]"
const/4 v2, 0x3
new-array v2, v2, [Ljava/lang/Object;
const/4 v3, 0x0
invoke-virtual {p0}, Ljava/lang/Object;->getClass()Ljava/lang/Class;
move-result-object v4
invoke-virtual {v4}, Ljava/lang/Class;->getName()Ljava/lang/String;
move-result-object v4
aput-object v4, v2, v3
const/4 v3, 0x1
invoke-virtual {p0}, Ljava/lang/Object;->hashCode()I
move-result v4
invoke-static {v4}, Ljava/lang/Integer;->toHexString(I)Ljava/lang/String;
move-result-object v4
aput-object v4, v2, v3
const/4 v3, 0x2
invoke-virtual {p0}, Lbolts/CancellationTokenSource;->isCancellationRequested()Z
move-result v4
invoke-static {v4}, Ljava/lang/Boolean;->toString(Z)Ljava/lang/String;
move-result-object v4
aput-object v4, v2, v3
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
.method unregister(Lbolts/CancellationTokenRegistration;)V
.locals 2
.param p1, "registration" # Lbolts/CancellationTokenRegistration;
.prologue
iget-object v1, p0, Lbolts/CancellationTokenSource;->lock:Ljava/lang/Object;
monitor-enter v1
:try_start_0
invoke-direct {p0}, Lbolts/CancellationTokenSource;->throwIfClosed()V
iget-object v0, p0, Lbolts/CancellationTokenSource;->registrations:Ljava/util/List;
invoke-interface {v0, p1}, Ljava/util/List;->remove(Ljava/lang/Object;)Z
monitor-exit v1
return-void
:catchall_0
move-exception v0
monitor-exit v1
:try_end_0
.catchall {:try_start_0 .. :try_end_0} :catchall_0
throw v0
.end method

View file

@ -0,0 +1,87 @@
.class public Lbolts/Capture;
.super Ljava/lang/Object;
.source "Capture.java"
# annotations
.annotation system Ldalvik/annotation/Signature;
value = {
"<T:",
"Ljava/lang/Object;",
">",
"Ljava/lang/Object;"
}
.end annotation
# instance fields
.field private value:Ljava/lang/Object;
.annotation system Ldalvik/annotation/Signature;
value = {
"TT;"
}
.end annotation
.end field
# direct methods
.method public constructor <init>()V
.locals 0
.prologue
.local p0, "this":Lbolts/Capture;, "Lbolts/Capture<TT;>;"
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
return-void
.end method
.method public constructor <init>(Ljava/lang/Object;)V
.locals 0
.annotation system Ldalvik/annotation/Signature;
value = {
"(TT;)V"
}
.end annotation
.prologue
.local p0, "this":Lbolts/Capture;, "Lbolts/Capture<TT;>;"
.local p1, "value":Ljava/lang/Object;, "TT;"
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
iput-object p1, p0, Lbolts/Capture;->value:Ljava/lang/Object;
return-void
.end method
# virtual methods
.method public get()Ljava/lang/Object;
.locals 1
.annotation system Ldalvik/annotation/Signature;
value = {
"()TT;"
}
.end annotation
.prologue
.local p0, "this":Lbolts/Capture;, "Lbolts/Capture<TT;>;"
iget-object v0, p0, Lbolts/Capture;->value:Ljava/lang/Object;
return-object v0
.end method
.method public set(Ljava/lang/Object;)V
.locals 0
.annotation system Ldalvik/annotation/Signature;
value = {
"(TT;)V"
}
.end annotation
.prologue
.local p0, "this":Lbolts/Capture;, "Lbolts/Capture<TT;>;"
.local p1, "value":Ljava/lang/Object;, "TT;"
iput-object p1, p0, Lbolts/Capture;->value:Ljava/lang/Object;
return-void
.end method

View file

@ -0,0 +1,34 @@
.class public interface abstract Lbolts/Continuation;
.super Ljava/lang/Object;
.source "Continuation.java"
# annotations
.annotation system Ldalvik/annotation/Signature;
value = {
"<TTaskResult:",
"Ljava/lang/Object;",
"TContinuationResult:",
"Ljava/lang/Object;",
">",
"Ljava/lang/Object;"
}
.end annotation
# virtual methods
.method public abstract then(Lbolts/Task;)Ljava/lang/Object;
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Lbolts/Task",
"<TTTaskResult;>;)TTContinuationResult;"
}
.end annotation
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/lang/Exception;
}
.end annotation
.end method

View file

@ -0,0 +1,17 @@
.class public Lbolts/ExecutorException;
.super Ljava/lang/RuntimeException;
.source "ExecutorException.java"
# direct methods
.method public constructor <init>(Ljava/lang/Exception;)V
.locals 1
.param p1, "e" # Ljava/lang/Exception;
.prologue
const-string v0, "An exception was thrown by an Executor"
invoke-direct {p0, v0, p1}, Ljava/lang/RuntimeException;-><init>(Ljava/lang/String;Ljava/lang/Throwable;)V
return-void
.end method

View file

@ -0,0 +1,49 @@
.class final Lbolts/Task$1;
.super Ljava/lang/Object;
.source "Task.java"
# interfaces
.implements Ljava/lang/Runnable;
# annotations
.annotation system Ldalvik/annotation/EnclosingMethod;
value = Lbolts/Task;->delay(JLjava/util/concurrent/ScheduledExecutorService;Lbolts/CancellationToken;)Lbolts/Task;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x8
name = null
.end annotation
# instance fields
.field final synthetic val$tcs:Lbolts/TaskCompletionSource;
# direct methods
.method constructor <init>(Lbolts/TaskCompletionSource;)V
.locals 0
.prologue
iput-object p1, p0, Lbolts/Task$1;->val$tcs:Lbolts/TaskCompletionSource;
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
return-void
.end method
# virtual methods
.method public run()V
.locals 2
.prologue
iget-object v0, p0, Lbolts/Task$1;->val$tcs:Lbolts/TaskCompletionSource;
const/4 v1, 0x0
invoke-virtual {v0, v1}, Lbolts/TaskCompletionSource;->trySetResult(Ljava/lang/Object;)Z
return-void
.end method

View file

@ -0,0 +1,110 @@
.class Lbolts/Task$10;
.super Ljava/lang/Object;
.source "Task.java"
# interfaces
.implements Lbolts/Continuation;
# annotations
.annotation system Ldalvik/annotation/EnclosingMethod;
value = Lbolts/Task;->continueWith(Lbolts/Continuation;Ljava/util/concurrent/Executor;Lbolts/CancellationToken;)Lbolts/Task;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x0
name = null
.end annotation
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/lang/Object;",
"Lbolts/Continuation",
"<TTResult;",
"Ljava/lang/Void;",
">;"
}
.end annotation
# instance fields
.field final synthetic this$0:Lbolts/Task;
.field final synthetic val$continuation:Lbolts/Continuation;
.field final synthetic val$ct:Lbolts/CancellationToken;
.field final synthetic val$executor:Ljava/util/concurrent/Executor;
.field final synthetic val$tcs:Lbolts/TaskCompletionSource;
# direct methods
.method constructor <init>(Lbolts/Task;Lbolts/TaskCompletionSource;Lbolts/Continuation;Ljava/util/concurrent/Executor;Lbolts/CancellationToken;)V
.locals 0
.prologue
.local p0, "this":Lbolts/Task$10;, "Lbolts/Task.10;"
iput-object p1, p0, Lbolts/Task$10;->this$0:Lbolts/Task;
iput-object p2, p0, Lbolts/Task$10;->val$tcs:Lbolts/TaskCompletionSource;
iput-object p3, p0, Lbolts/Task$10;->val$continuation:Lbolts/Continuation;
iput-object p4, p0, Lbolts/Task$10;->val$executor:Ljava/util/concurrent/Executor;
iput-object p5, p0, Lbolts/Task$10;->val$ct:Lbolts/CancellationToken;
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
return-void
.end method
# virtual methods
.method public bridge synthetic then(Lbolts/Task;)Ljava/lang/Object;
.locals 1
.param p1, "x0" # Lbolts/Task;
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/lang/Exception;
}
.end annotation
.prologue
.local p0, "this":Lbolts/Task$10;, "Lbolts/Task.10;"
invoke-virtual {p0, p1}, Lbolts/Task$10;->then(Lbolts/Task;)Ljava/lang/Void;
move-result-object v0
return-object v0
.end method
.method public then(Lbolts/Task;)Ljava/lang/Void;
.locals 4
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Lbolts/Task",
"<TTResult;>;)",
"Ljava/lang/Void;"
}
.end annotation
.prologue
.local p0, "this":Lbolts/Task$10;, "Lbolts/Task.10;"
.local p1, "task":Lbolts/Task;, "Lbolts/Task<TTResult;>;"
iget-object v0, p0, Lbolts/Task$10;->val$tcs:Lbolts/TaskCompletionSource;
iget-object v1, p0, Lbolts/Task$10;->val$continuation:Lbolts/Continuation;
iget-object v2, p0, Lbolts/Task$10;->val$executor:Ljava/util/concurrent/Executor;
iget-object v3, p0, Lbolts/Task$10;->val$ct:Lbolts/CancellationToken;
invoke-static {v0, v1, p1, v2, v3}, Lbolts/Task;->access$000(Lbolts/TaskCompletionSource;Lbolts/Continuation;Lbolts/Task;Ljava/util/concurrent/Executor;Lbolts/CancellationToken;)V
const/4 v0, 0x0
return-object v0
.end method

View file

@ -0,0 +1,110 @@
.class Lbolts/Task$11;
.super Ljava/lang/Object;
.source "Task.java"
# interfaces
.implements Lbolts/Continuation;
# annotations
.annotation system Ldalvik/annotation/EnclosingMethod;
value = Lbolts/Task;->continueWithTask(Lbolts/Continuation;Ljava/util/concurrent/Executor;Lbolts/CancellationToken;)Lbolts/Task;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x0
name = null
.end annotation
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/lang/Object;",
"Lbolts/Continuation",
"<TTResult;",
"Ljava/lang/Void;",
">;"
}
.end annotation
# instance fields
.field final synthetic this$0:Lbolts/Task;
.field final synthetic val$continuation:Lbolts/Continuation;
.field final synthetic val$ct:Lbolts/CancellationToken;
.field final synthetic val$executor:Ljava/util/concurrent/Executor;
.field final synthetic val$tcs:Lbolts/TaskCompletionSource;
# direct methods
.method constructor <init>(Lbolts/Task;Lbolts/TaskCompletionSource;Lbolts/Continuation;Ljava/util/concurrent/Executor;Lbolts/CancellationToken;)V
.locals 0
.prologue
.local p0, "this":Lbolts/Task$11;, "Lbolts/Task.11;"
iput-object p1, p0, Lbolts/Task$11;->this$0:Lbolts/Task;
iput-object p2, p0, Lbolts/Task$11;->val$tcs:Lbolts/TaskCompletionSource;
iput-object p3, p0, Lbolts/Task$11;->val$continuation:Lbolts/Continuation;
iput-object p4, p0, Lbolts/Task$11;->val$executor:Ljava/util/concurrent/Executor;
iput-object p5, p0, Lbolts/Task$11;->val$ct:Lbolts/CancellationToken;
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
return-void
.end method
# virtual methods
.method public bridge synthetic then(Lbolts/Task;)Ljava/lang/Object;
.locals 1
.param p1, "x0" # Lbolts/Task;
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/lang/Exception;
}
.end annotation
.prologue
.local p0, "this":Lbolts/Task$11;, "Lbolts/Task.11;"
invoke-virtual {p0, p1}, Lbolts/Task$11;->then(Lbolts/Task;)Ljava/lang/Void;
move-result-object v0
return-object v0
.end method
.method public then(Lbolts/Task;)Ljava/lang/Void;
.locals 4
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Lbolts/Task",
"<TTResult;>;)",
"Ljava/lang/Void;"
}
.end annotation
.prologue
.local p0, "this":Lbolts/Task$11;, "Lbolts/Task.11;"
.local p1, "task":Lbolts/Task;, "Lbolts/Task<TTResult;>;"
iget-object v0, p0, Lbolts/Task$11;->val$tcs:Lbolts/TaskCompletionSource;
iget-object v1, p0, Lbolts/Task$11;->val$continuation:Lbolts/Continuation;
iget-object v2, p0, Lbolts/Task$11;->val$executor:Ljava/util/concurrent/Executor;
iget-object v3, p0, Lbolts/Task$11;->val$ct:Lbolts/CancellationToken;
invoke-static {v0, v1, p1, v2, v3}, Lbolts/Task;->access$100(Lbolts/TaskCompletionSource;Lbolts/Continuation;Lbolts/Task;Ljava/util/concurrent/Executor;Lbolts/CancellationToken;)V
const/4 v0, 0x0
return-object v0
.end method

View file

@ -0,0 +1,147 @@
.class Lbolts/Task$12;
.super Ljava/lang/Object;
.source "Task.java"
# interfaces
.implements Lbolts/Continuation;
# annotations
.annotation system Ldalvik/annotation/EnclosingMethod;
value = Lbolts/Task;->onSuccess(Lbolts/Continuation;Ljava/util/concurrent/Executor;Lbolts/CancellationToken;)Lbolts/Task;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x0
name = null
.end annotation
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/lang/Object;",
"Lbolts/Continuation",
"<TTResult;",
"Lbolts/Task",
"<TTContinuationResult;>;>;"
}
.end annotation
# instance fields
.field final synthetic this$0:Lbolts/Task;
.field final synthetic val$continuation:Lbolts/Continuation;
.field final synthetic val$ct:Lbolts/CancellationToken;
# direct methods
.method constructor <init>(Lbolts/Task;Lbolts/CancellationToken;Lbolts/Continuation;)V
.locals 0
.prologue
.local p0, "this":Lbolts/Task$12;, "Lbolts/Task.12;"
iput-object p1, p0, Lbolts/Task$12;->this$0:Lbolts/Task;
iput-object p2, p0, Lbolts/Task$12;->val$ct:Lbolts/CancellationToken;
iput-object p3, p0, Lbolts/Task$12;->val$continuation:Lbolts/Continuation;
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
return-void
.end method
# virtual methods
.method public then(Lbolts/Task;)Lbolts/Task;
.locals 1
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Lbolts/Task",
"<TTResult;>;)",
"Lbolts/Task",
"<TTContinuationResult;>;"
}
.end annotation
.prologue
.local p0, "this":Lbolts/Task$12;, "Lbolts/Task.12;"
.local p1, "task":Lbolts/Task;, "Lbolts/Task<TTResult;>;"
iget-object v0, p0, Lbolts/Task$12;->val$ct:Lbolts/CancellationToken;
if-eqz v0, :cond_0
iget-object v0, p0, Lbolts/Task$12;->val$ct:Lbolts/CancellationToken;
invoke-virtual {v0}, Lbolts/CancellationToken;->isCancellationRequested()Z
move-result v0
if-eqz v0, :cond_0
invoke-static {}, Lbolts/Task;->cancelled()Lbolts/Task;
move-result-object v0
:goto_0
return-object v0
:cond_0
invoke-virtual {p1}, Lbolts/Task;->isFaulted()Z
move-result v0
if-eqz v0, :cond_1
invoke-virtual {p1}, Lbolts/Task;->getError()Ljava/lang/Exception;
move-result-object v0
invoke-static {v0}, Lbolts/Task;->forError(Ljava/lang/Exception;)Lbolts/Task;
move-result-object v0
goto :goto_0
:cond_1
invoke-virtual {p1}, Lbolts/Task;->isCancelled()Z
move-result v0
if-eqz v0, :cond_2
invoke-static {}, Lbolts/Task;->cancelled()Lbolts/Task;
move-result-object v0
goto :goto_0
:cond_2
iget-object v0, p0, Lbolts/Task$12;->val$continuation:Lbolts/Continuation;
invoke-virtual {p1, v0}, Lbolts/Task;->continueWith(Lbolts/Continuation;)Lbolts/Task;
move-result-object v0
goto :goto_0
.end method
.method public bridge synthetic then(Lbolts/Task;)Ljava/lang/Object;
.locals 1
.param p1, "x0" # Lbolts/Task;
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/lang/Exception;
}
.end annotation
.prologue
.local p0, "this":Lbolts/Task$12;, "Lbolts/Task.12;"
invoke-virtual {p0, p1}, Lbolts/Task$12;->then(Lbolts/Task;)Lbolts/Task;
move-result-object v0
return-object v0
.end method

View file

@ -0,0 +1,147 @@
.class Lbolts/Task$13;
.super Ljava/lang/Object;
.source "Task.java"
# interfaces
.implements Lbolts/Continuation;
# annotations
.annotation system Ldalvik/annotation/EnclosingMethod;
value = Lbolts/Task;->onSuccessTask(Lbolts/Continuation;Ljava/util/concurrent/Executor;Lbolts/CancellationToken;)Lbolts/Task;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x0
name = null
.end annotation
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/lang/Object;",
"Lbolts/Continuation",
"<TTResult;",
"Lbolts/Task",
"<TTContinuationResult;>;>;"
}
.end annotation
# instance fields
.field final synthetic this$0:Lbolts/Task;
.field final synthetic val$continuation:Lbolts/Continuation;
.field final synthetic val$ct:Lbolts/CancellationToken;
# direct methods
.method constructor <init>(Lbolts/Task;Lbolts/CancellationToken;Lbolts/Continuation;)V
.locals 0
.prologue
.local p0, "this":Lbolts/Task$13;, "Lbolts/Task.13;"
iput-object p1, p0, Lbolts/Task$13;->this$0:Lbolts/Task;
iput-object p2, p0, Lbolts/Task$13;->val$ct:Lbolts/CancellationToken;
iput-object p3, p0, Lbolts/Task$13;->val$continuation:Lbolts/Continuation;
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
return-void
.end method
# virtual methods
.method public then(Lbolts/Task;)Lbolts/Task;
.locals 1
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Lbolts/Task",
"<TTResult;>;)",
"Lbolts/Task",
"<TTContinuationResult;>;"
}
.end annotation
.prologue
.local p0, "this":Lbolts/Task$13;, "Lbolts/Task.13;"
.local p1, "task":Lbolts/Task;, "Lbolts/Task<TTResult;>;"
iget-object v0, p0, Lbolts/Task$13;->val$ct:Lbolts/CancellationToken;
if-eqz v0, :cond_0
iget-object v0, p0, Lbolts/Task$13;->val$ct:Lbolts/CancellationToken;
invoke-virtual {v0}, Lbolts/CancellationToken;->isCancellationRequested()Z
move-result v0
if-eqz v0, :cond_0
invoke-static {}, Lbolts/Task;->cancelled()Lbolts/Task;
move-result-object v0
:goto_0
return-object v0
:cond_0
invoke-virtual {p1}, Lbolts/Task;->isFaulted()Z
move-result v0
if-eqz v0, :cond_1
invoke-virtual {p1}, Lbolts/Task;->getError()Ljava/lang/Exception;
move-result-object v0
invoke-static {v0}, Lbolts/Task;->forError(Ljava/lang/Exception;)Lbolts/Task;
move-result-object v0
goto :goto_0
:cond_1
invoke-virtual {p1}, Lbolts/Task;->isCancelled()Z
move-result v0
if-eqz v0, :cond_2
invoke-static {}, Lbolts/Task;->cancelled()Lbolts/Task;
move-result-object v0
goto :goto_0
:cond_2
iget-object v0, p0, Lbolts/Task$13;->val$continuation:Lbolts/Continuation;
invoke-virtual {p1, v0}, Lbolts/Task;->continueWithTask(Lbolts/Continuation;)Lbolts/Task;
move-result-object v0
goto :goto_0
.end method
.method public bridge synthetic then(Lbolts/Task;)Ljava/lang/Object;
.locals 1
.param p1, "x0" # Lbolts/Task;
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/lang/Exception;
}
.end annotation
.prologue
.local p0, "this":Lbolts/Task$13;, "Lbolts/Task.13;"
invoke-virtual {p0, p1}, Lbolts/Task$13;->then(Lbolts/Task;)Lbolts/Task;
move-result-object v0
return-object v0
.end method

View file

@ -0,0 +1,114 @@
.class final Lbolts/Task$14;
.super Ljava/lang/Object;
.source "Task.java"
# interfaces
.implements Ljava/lang/Runnable;
# annotations
.annotation system Ldalvik/annotation/EnclosingMethod;
value = Lbolts/Task;->completeImmediately(Lbolts/TaskCompletionSource;Lbolts/Continuation;Lbolts/Task;Ljava/util/concurrent/Executor;Lbolts/CancellationToken;)V
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x8
name = null
.end annotation
# instance fields
.field final synthetic val$continuation:Lbolts/Continuation;
.field final synthetic val$ct:Lbolts/CancellationToken;
.field final synthetic val$task:Lbolts/Task;
.field final synthetic val$tcs:Lbolts/TaskCompletionSource;
# direct methods
.method constructor <init>(Lbolts/CancellationToken;Lbolts/TaskCompletionSource;Lbolts/Continuation;Lbolts/Task;)V
.locals 0
.prologue
iput-object p1, p0, Lbolts/Task$14;->val$ct:Lbolts/CancellationToken;
iput-object p2, p0, Lbolts/Task$14;->val$tcs:Lbolts/TaskCompletionSource;
iput-object p3, p0, Lbolts/Task$14;->val$continuation:Lbolts/Continuation;
iput-object p4, p0, Lbolts/Task$14;->val$task:Lbolts/Task;
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
return-void
.end method
# virtual methods
.method public run()V
.locals 4
.prologue
iget-object v2, p0, Lbolts/Task$14;->val$ct:Lbolts/CancellationToken;
if-eqz v2, :cond_0
iget-object v2, p0, Lbolts/Task$14;->val$ct:Lbolts/CancellationToken;
invoke-virtual {v2}, Lbolts/CancellationToken;->isCancellationRequested()Z
move-result v2
if-eqz v2, :cond_0
iget-object v2, p0, Lbolts/Task$14;->val$tcs:Lbolts/TaskCompletionSource;
invoke-virtual {v2}, Lbolts/TaskCompletionSource;->setCancelled()V
:goto_0
return-void
:cond_0
:try_start_0
iget-object v2, p0, Lbolts/Task$14;->val$continuation:Lbolts/Continuation;
iget-object v3, p0, Lbolts/Task$14;->val$task:Lbolts/Task;
invoke-interface {v2, v3}, Lbolts/Continuation;->then(Lbolts/Task;)Ljava/lang/Object;
move-result-object v1
.local v1, "result":Ljava/lang/Object;, "TTContinuationResult;"
iget-object v2, p0, Lbolts/Task$14;->val$tcs:Lbolts/TaskCompletionSource;
invoke-virtual {v2, v1}, Lbolts/TaskCompletionSource;->setResult(Ljava/lang/Object;)V
:try_end_0
.catch Ljava/util/concurrent/CancellationException; {:try_start_0 .. :try_end_0} :catch_0
.catch Ljava/lang/Exception; {:try_start_0 .. :try_end_0} :catch_1
goto :goto_0
.end local v1 # "result":Ljava/lang/Object;, "TTContinuationResult;"
:catch_0
move-exception v0
.local v0, "e":Ljava/util/concurrent/CancellationException;
iget-object v2, p0, Lbolts/Task$14;->val$tcs:Lbolts/TaskCompletionSource;
invoke-virtual {v2}, Lbolts/TaskCompletionSource;->setCancelled()V
goto :goto_0
.end local v0 # "e":Ljava/util/concurrent/CancellationException;
:catch_1
move-exception v0
.local v0, "e":Ljava/lang/Exception;
iget-object v2, p0, Lbolts/Task$14;->val$tcs:Lbolts/TaskCompletionSource;
invoke-virtual {v2, v0}, Lbolts/TaskCompletionSource;->setError(Ljava/lang/Exception;)V
goto :goto_0
.end method

View file

@ -0,0 +1,151 @@
.class Lbolts/Task$15$1;
.super Ljava/lang/Object;
.source "Task.java"
# interfaces
.implements Lbolts/Continuation;
# annotations
.annotation system Ldalvik/annotation/EnclosingMethod;
value = Lbolts/Task$15;->run()V
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x0
name = null
.end annotation
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/lang/Object;",
"Lbolts/Continuation",
"<TTContinuationResult;",
"Ljava/lang/Void;",
">;"
}
.end annotation
# instance fields
.field final synthetic this$0:Lbolts/Task$15;
# direct methods
.method constructor <init>(Lbolts/Task$15;)V
.locals 0
.prologue
iput-object p1, p0, Lbolts/Task$15$1;->this$0:Lbolts/Task$15;
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
return-void
.end method
# virtual methods
.method public bridge synthetic then(Lbolts/Task;)Ljava/lang/Object;
.locals 1
.param p1, "x0" # Lbolts/Task;
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/lang/Exception;
}
.end annotation
.prologue
invoke-virtual {p0, p1}, Lbolts/Task$15$1;->then(Lbolts/Task;)Ljava/lang/Void;
move-result-object v0
return-object v0
.end method
.method public then(Lbolts/Task;)Ljava/lang/Void;
.locals 3
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Lbolts/Task",
"<TTContinuationResult;>;)",
"Ljava/lang/Void;"
}
.end annotation
.prologue
.local p1, "task":Lbolts/Task;, "Lbolts/Task<TTContinuationResult;>;"
const/4 v2, 0x0
iget-object v0, p0, Lbolts/Task$15$1;->this$0:Lbolts/Task$15;
iget-object v0, v0, Lbolts/Task$15;->val$ct:Lbolts/CancellationToken;
if-eqz v0, :cond_0
iget-object v0, p0, Lbolts/Task$15$1;->this$0:Lbolts/Task$15;
iget-object v0, v0, Lbolts/Task$15;->val$ct:Lbolts/CancellationToken;
invoke-virtual {v0}, Lbolts/CancellationToken;->isCancellationRequested()Z
move-result v0
if-eqz v0, :cond_0
iget-object v0, p0, Lbolts/Task$15$1;->this$0:Lbolts/Task$15;
iget-object v0, v0, Lbolts/Task$15;->val$tcs:Lbolts/TaskCompletionSource;
invoke-virtual {v0}, Lbolts/TaskCompletionSource;->setCancelled()V
:goto_0
return-object v2
:cond_0
invoke-virtual {p1}, Lbolts/Task;->isCancelled()Z
move-result v0
if-eqz v0, :cond_1
iget-object v0, p0, Lbolts/Task$15$1;->this$0:Lbolts/Task$15;
iget-object v0, v0, Lbolts/Task$15;->val$tcs:Lbolts/TaskCompletionSource;
invoke-virtual {v0}, Lbolts/TaskCompletionSource;->setCancelled()V
goto :goto_0
:cond_1
invoke-virtual {p1}, Lbolts/Task;->isFaulted()Z
move-result v0
if-eqz v0, :cond_2
iget-object v0, p0, Lbolts/Task$15$1;->this$0:Lbolts/Task$15;
iget-object v0, v0, Lbolts/Task$15;->val$tcs:Lbolts/TaskCompletionSource;
invoke-virtual {p1}, Lbolts/Task;->getError()Ljava/lang/Exception;
move-result-object v1
invoke-virtual {v0, v1}, Lbolts/TaskCompletionSource;->setError(Ljava/lang/Exception;)V
goto :goto_0
:cond_2
iget-object v0, p0, Lbolts/Task$15$1;->this$0:Lbolts/Task$15;
iget-object v0, v0, Lbolts/Task$15;->val$tcs:Lbolts/TaskCompletionSource;
invoke-virtual {p1}, Lbolts/Task;->getResult()Ljava/lang/Object;
move-result-object v1
invoke-virtual {v0, v1}, Lbolts/TaskCompletionSource;->setResult(Ljava/lang/Object;)V
goto :goto_0
.end method

View file

@ -0,0 +1,135 @@
.class final Lbolts/Task$15;
.super Ljava/lang/Object;
.source "Task.java"
# interfaces
.implements Ljava/lang/Runnable;
# annotations
.annotation system Ldalvik/annotation/EnclosingMethod;
value = Lbolts/Task;->completeAfterTask(Lbolts/TaskCompletionSource;Lbolts/Continuation;Lbolts/Task;Ljava/util/concurrent/Executor;Lbolts/CancellationToken;)V
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x8
name = null
.end annotation
# instance fields
.field final synthetic val$continuation:Lbolts/Continuation;
.field final synthetic val$ct:Lbolts/CancellationToken;
.field final synthetic val$task:Lbolts/Task;
.field final synthetic val$tcs:Lbolts/TaskCompletionSource;
# direct methods
.method constructor <init>(Lbolts/CancellationToken;Lbolts/TaskCompletionSource;Lbolts/Continuation;Lbolts/Task;)V
.locals 0
.prologue
iput-object p1, p0, Lbolts/Task$15;->val$ct:Lbolts/CancellationToken;
iput-object p2, p0, Lbolts/Task$15;->val$tcs:Lbolts/TaskCompletionSource;
iput-object p3, p0, Lbolts/Task$15;->val$continuation:Lbolts/Continuation;
iput-object p4, p0, Lbolts/Task$15;->val$task:Lbolts/Task;
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
return-void
.end method
# virtual methods
.method public run()V
.locals 4
.prologue
iget-object v2, p0, Lbolts/Task$15;->val$ct:Lbolts/CancellationToken;
if-eqz v2, :cond_0
iget-object v2, p0, Lbolts/Task$15;->val$ct:Lbolts/CancellationToken;
invoke-virtual {v2}, Lbolts/CancellationToken;->isCancellationRequested()Z
move-result v2
if-eqz v2, :cond_0
iget-object v2, p0, Lbolts/Task$15;->val$tcs:Lbolts/TaskCompletionSource;
invoke-virtual {v2}, Lbolts/TaskCompletionSource;->setCancelled()V
:goto_0
return-void
:cond_0
:try_start_0
iget-object v2, p0, Lbolts/Task$15;->val$continuation:Lbolts/Continuation;
iget-object v3, p0, Lbolts/Task$15;->val$task:Lbolts/Task;
invoke-interface {v2, v3}, Lbolts/Continuation;->then(Lbolts/Task;)Ljava/lang/Object;
move-result-object v1
check-cast v1, Lbolts/Task;
.local v1, "result":Lbolts/Task;, "Lbolts/Task<TTContinuationResult;>;"
if-nez v1, :cond_1
iget-object v2, p0, Lbolts/Task$15;->val$tcs:Lbolts/TaskCompletionSource;
const/4 v3, 0x0
invoke-virtual {v2, v3}, Lbolts/TaskCompletionSource;->setResult(Ljava/lang/Object;)V
:try_end_0
.catch Ljava/util/concurrent/CancellationException; {:try_start_0 .. :try_end_0} :catch_0
.catch Ljava/lang/Exception; {:try_start_0 .. :try_end_0} :catch_1
goto :goto_0
.end local v1 # "result":Lbolts/Task;, "Lbolts/Task<TTContinuationResult;>;"
:catch_0
move-exception v0
.local v0, "e":Ljava/util/concurrent/CancellationException;
iget-object v2, p0, Lbolts/Task$15;->val$tcs:Lbolts/TaskCompletionSource;
invoke-virtual {v2}, Lbolts/TaskCompletionSource;->setCancelled()V
goto :goto_0
.end local v0 # "e":Ljava/util/concurrent/CancellationException;
.restart local v1 # "result":Lbolts/Task;, "Lbolts/Task<TTContinuationResult;>;"
:cond_1
:try_start_1
new-instance v2, Lbolts/Task$15$1;
invoke-direct {v2, p0}, Lbolts/Task$15$1;-><init>(Lbolts/Task$15;)V
invoke-virtual {v1, v2}, Lbolts/Task;->continueWith(Lbolts/Continuation;)Lbolts/Task;
:try_end_1
.catch Ljava/util/concurrent/CancellationException; {:try_start_1 .. :try_end_1} :catch_0
.catch Ljava/lang/Exception; {:try_start_1 .. :try_end_1} :catch_1
goto :goto_0
.end local v1 # "result":Lbolts/Task;, "Lbolts/Task<TTContinuationResult;>;"
:catch_1
move-exception v0
.local v0, "e":Ljava/lang/Exception;
iget-object v2, p0, Lbolts/Task$15;->val$tcs:Lbolts/TaskCompletionSource;
invoke-virtual {v2, v0}, Lbolts/TaskCompletionSource;->setError(Ljava/lang/Exception;)V
goto :goto_0
.end method

View file

@ -0,0 +1,57 @@
.class final Lbolts/Task$2;
.super Ljava/lang/Object;
.source "Task.java"
# interfaces
.implements Ljava/lang/Runnable;
# annotations
.annotation system Ldalvik/annotation/EnclosingMethod;
value = Lbolts/Task;->delay(JLjava/util/concurrent/ScheduledExecutorService;Lbolts/CancellationToken;)Lbolts/Task;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x8
name = null
.end annotation
# instance fields
.field final synthetic val$scheduled:Ljava/util/concurrent/ScheduledFuture;
.field final synthetic val$tcs:Lbolts/TaskCompletionSource;
# direct methods
.method constructor <init>(Ljava/util/concurrent/ScheduledFuture;Lbolts/TaskCompletionSource;)V
.locals 0
.prologue
iput-object p1, p0, Lbolts/Task$2;->val$scheduled:Ljava/util/concurrent/ScheduledFuture;
iput-object p2, p0, Lbolts/Task$2;->val$tcs:Lbolts/TaskCompletionSource;
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
return-void
.end method
# virtual methods
.method public run()V
.locals 2
.prologue
iget-object v0, p0, Lbolts/Task$2;->val$scheduled:Ljava/util/concurrent/ScheduledFuture;
const/4 v1, 0x1
invoke-interface {v0, v1}, Ljava/util/concurrent/ScheduledFuture;->cancel(Z)Z
iget-object v0, p0, Lbolts/Task$2;->val$tcs:Lbolts/TaskCompletionSource;
invoke-virtual {v0}, Lbolts/TaskCompletionSource;->trySetCancelled()Z
return-void
.end method

View file

@ -0,0 +1,130 @@
.class Lbolts/Task$3;
.super Ljava/lang/Object;
.source "Task.java"
# interfaces
.implements Lbolts/Continuation;
# annotations
.annotation system Ldalvik/annotation/EnclosingMethod;
value = Lbolts/Task;->makeVoid()Lbolts/Task;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x0
name = null
.end annotation
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/lang/Object;",
"Lbolts/Continuation",
"<TTResult;",
"Lbolts/Task",
"<",
"Ljava/lang/Void;",
">;>;"
}
.end annotation
# instance fields
.field final synthetic this$0:Lbolts/Task;
# direct methods
.method constructor <init>(Lbolts/Task;)V
.locals 0
.prologue
.local p0, "this":Lbolts/Task$3;, "Lbolts/Task.3;"
iput-object p1, p0, Lbolts/Task$3;->this$0:Lbolts/Task;
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
return-void
.end method
# virtual methods
.method public then(Lbolts/Task;)Lbolts/Task;
.locals 1
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Lbolts/Task",
"<TTResult;>;)",
"Lbolts/Task",
"<",
"Ljava/lang/Void;",
">;"
}
.end annotation
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/lang/Exception;
}
.end annotation
.prologue
.local p0, "this":Lbolts/Task$3;, "Lbolts/Task.3;"
.local p1, "task":Lbolts/Task;, "Lbolts/Task<TTResult;>;"
invoke-virtual {p1}, Lbolts/Task;->isCancelled()Z
move-result v0
if-eqz v0, :cond_0
invoke-static {}, Lbolts/Task;->cancelled()Lbolts/Task;
move-result-object v0
:goto_0
return-object v0
:cond_0
invoke-virtual {p1}, Lbolts/Task;->isFaulted()Z
move-result v0
if-eqz v0, :cond_1
invoke-virtual {p1}, Lbolts/Task;->getError()Ljava/lang/Exception;
move-result-object v0
invoke-static {v0}, Lbolts/Task;->forError(Ljava/lang/Exception;)Lbolts/Task;
move-result-object v0
goto :goto_0
:cond_1
const/4 v0, 0x0
invoke-static {v0}, Lbolts/Task;->forResult(Ljava/lang/Object;)Lbolts/Task;
move-result-object v0
goto :goto_0
.end method
.method public bridge synthetic then(Lbolts/Task;)Ljava/lang/Object;
.locals 1
.param p1, "x0" # Lbolts/Task;
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/lang/Exception;
}
.end annotation
.prologue
.local p0, "this":Lbolts/Task$3;, "Lbolts/Task.3;"
invoke-virtual {p0, p1}, Lbolts/Task$3;->then(Lbolts/Task;)Lbolts/Task;
move-result-object v0
return-object v0
.end method

View file

@ -0,0 +1,106 @@
.class final Lbolts/Task$4;
.super Ljava/lang/Object;
.source "Task.java"
# interfaces
.implements Ljava/lang/Runnable;
# annotations
.annotation system Ldalvik/annotation/EnclosingMethod;
value = Lbolts/Task;->call(Ljava/util/concurrent/Callable;Ljava/util/concurrent/Executor;Lbolts/CancellationToken;)Lbolts/Task;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x8
name = null
.end annotation
# instance fields
.field final synthetic val$callable:Ljava/util/concurrent/Callable;
.field final synthetic val$ct:Lbolts/CancellationToken;
.field final synthetic val$tcs:Lbolts/TaskCompletionSource;
# direct methods
.method constructor <init>(Lbolts/CancellationToken;Lbolts/TaskCompletionSource;Ljava/util/concurrent/Callable;)V
.locals 0
.prologue
iput-object p1, p0, Lbolts/Task$4;->val$ct:Lbolts/CancellationToken;
iput-object p2, p0, Lbolts/Task$4;->val$tcs:Lbolts/TaskCompletionSource;
iput-object p3, p0, Lbolts/Task$4;->val$callable:Ljava/util/concurrent/Callable;
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
return-void
.end method
# virtual methods
.method public run()V
.locals 3
.prologue
iget-object v1, p0, Lbolts/Task$4;->val$ct:Lbolts/CancellationToken;
if-eqz v1, :cond_0
iget-object v1, p0, Lbolts/Task$4;->val$ct:Lbolts/CancellationToken;
invoke-virtual {v1}, Lbolts/CancellationToken;->isCancellationRequested()Z
move-result v1
if-eqz v1, :cond_0
iget-object v1, p0, Lbolts/Task$4;->val$tcs:Lbolts/TaskCompletionSource;
invoke-virtual {v1}, Lbolts/TaskCompletionSource;->setCancelled()V
:goto_0
return-void
:cond_0
:try_start_0
iget-object v1, p0, Lbolts/Task$4;->val$tcs:Lbolts/TaskCompletionSource;
iget-object v2, p0, Lbolts/Task$4;->val$callable:Ljava/util/concurrent/Callable;
invoke-interface {v2}, Ljava/util/concurrent/Callable;->call()Ljava/lang/Object;
move-result-object v2
invoke-virtual {v1, v2}, Lbolts/TaskCompletionSource;->setResult(Ljava/lang/Object;)V
:try_end_0
.catch Ljava/util/concurrent/CancellationException; {:try_start_0 .. :try_end_0} :catch_0
.catch Ljava/lang/Exception; {:try_start_0 .. :try_end_0} :catch_1
goto :goto_0
:catch_0
move-exception v0
.local v0, "e":Ljava/util/concurrent/CancellationException;
iget-object v1, p0, Lbolts/Task$4;->val$tcs:Lbolts/TaskCompletionSource;
invoke-virtual {v1}, Lbolts/TaskCompletionSource;->setCancelled()V
goto :goto_0
.end local v0 # "e":Ljava/util/concurrent/CancellationException;
:catch_1
move-exception v0
.local v0, "e":Ljava/lang/Exception;
iget-object v1, p0, Lbolts/Task$4;->val$tcs:Lbolts/TaskCompletionSource;
invoke-virtual {v1, v0}, Lbolts/TaskCompletionSource;->setError(Ljava/lang/Exception;)V
goto :goto_0
.end method

View file

@ -0,0 +1,107 @@
.class final Lbolts/Task$5;
.super Ljava/lang/Object;
.source "Task.java"
# interfaces
.implements Lbolts/Continuation;
# annotations
.annotation system Ldalvik/annotation/EnclosingMethod;
value = Lbolts/Task;->whenAnyResult(Ljava/util/Collection;)Lbolts/Task;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x8
name = null
.end annotation
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/lang/Object;",
"Lbolts/Continuation",
"<TTResult;",
"Ljava/lang/Void;",
">;"
}
.end annotation
# instance fields
.field final synthetic val$firstCompleted:Lbolts/TaskCompletionSource;
.field final synthetic val$isAnyTaskComplete:Ljava/util/concurrent/atomic/AtomicBoolean;
# direct methods
.method constructor <init>(Ljava/util/concurrent/atomic/AtomicBoolean;Lbolts/TaskCompletionSource;)V
.locals 0
.prologue
iput-object p1, p0, Lbolts/Task$5;->val$isAnyTaskComplete:Ljava/util/concurrent/atomic/AtomicBoolean;
iput-object p2, p0, Lbolts/Task$5;->val$firstCompleted:Lbolts/TaskCompletionSource;
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
return-void
.end method
# virtual methods
.method public bridge synthetic then(Lbolts/Task;)Ljava/lang/Object;
.locals 1
.param p1, "x0" # Lbolts/Task;
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/lang/Exception;
}
.end annotation
.prologue
invoke-virtual {p0, p1}, Lbolts/Task$5;->then(Lbolts/Task;)Ljava/lang/Void;
move-result-object v0
return-object v0
.end method
.method public then(Lbolts/Task;)Ljava/lang/Void;
.locals 3
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Lbolts/Task",
"<TTResult;>;)",
"Ljava/lang/Void;"
}
.end annotation
.prologue
.local p1, "task":Lbolts/Task;, "Lbolts/Task<TTResult;>;"
iget-object v0, p0, Lbolts/Task$5;->val$isAnyTaskComplete:Ljava/util/concurrent/atomic/AtomicBoolean;
const/4 v1, 0x0
const/4 v2, 0x1
invoke-virtual {v0, v1, v2}, Ljava/util/concurrent/atomic/AtomicBoolean;->compareAndSet(ZZ)Z
move-result v0
if-eqz v0, :cond_0
iget-object v0, p0, Lbolts/Task$5;->val$firstCompleted:Lbolts/TaskCompletionSource;
invoke-virtual {v0, p1}, Lbolts/TaskCompletionSource;->setResult(Ljava/lang/Object;)V
:goto_0
const/4 v0, 0x0
return-object v0
:cond_0
invoke-virtual {p1}, Lbolts/Task;->getError()Ljava/lang/Exception;
goto :goto_0
.end method

View file

@ -0,0 +1,110 @@
.class final Lbolts/Task$6;
.super Ljava/lang/Object;
.source "Task.java"
# interfaces
.implements Lbolts/Continuation;
# annotations
.annotation system Ldalvik/annotation/EnclosingMethod;
value = Lbolts/Task;->whenAny(Ljava/util/Collection;)Lbolts/Task;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x8
name = null
.end annotation
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/lang/Object;",
"Lbolts/Continuation",
"<",
"Ljava/lang/Object;",
"Ljava/lang/Void;",
">;"
}
.end annotation
# instance fields
.field final synthetic val$firstCompleted:Lbolts/TaskCompletionSource;
.field final synthetic val$isAnyTaskComplete:Ljava/util/concurrent/atomic/AtomicBoolean;
# direct methods
.method constructor <init>(Ljava/util/concurrent/atomic/AtomicBoolean;Lbolts/TaskCompletionSource;)V
.locals 0
.prologue
iput-object p1, p0, Lbolts/Task$6;->val$isAnyTaskComplete:Ljava/util/concurrent/atomic/AtomicBoolean;
iput-object p2, p0, Lbolts/Task$6;->val$firstCompleted:Lbolts/TaskCompletionSource;
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
return-void
.end method
# virtual methods
.method public bridge synthetic then(Lbolts/Task;)Ljava/lang/Object;
.locals 1
.param p1, "x0" # Lbolts/Task;
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/lang/Exception;
}
.end annotation
.prologue
invoke-virtual {p0, p1}, Lbolts/Task$6;->then(Lbolts/Task;)Ljava/lang/Void;
move-result-object v0
return-object v0
.end method
.method public then(Lbolts/Task;)Ljava/lang/Void;
.locals 3
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Lbolts/Task",
"<",
"Ljava/lang/Object;",
">;)",
"Ljava/lang/Void;"
}
.end annotation
.prologue
.local p1, "task":Lbolts/Task;, "Lbolts/Task<Ljava/lang/Object;>;"
iget-object v0, p0, Lbolts/Task$6;->val$isAnyTaskComplete:Ljava/util/concurrent/atomic/AtomicBoolean;
const/4 v1, 0x0
const/4 v2, 0x1
invoke-virtual {v0, v1, v2}, Ljava/util/concurrent/atomic/AtomicBoolean;->compareAndSet(ZZ)Z
move-result v0
if-eqz v0, :cond_0
iget-object v0, p0, Lbolts/Task$6;->val$firstCompleted:Lbolts/TaskCompletionSource;
invoke-virtual {v0, p1}, Lbolts/TaskCompletionSource;->setResult(Ljava/lang/Object;)V
:goto_0
const/4 v0, 0x0
return-object v0
:cond_0
invoke-virtual {p1}, Lbolts/Task;->getError()Ljava/lang/Exception;
goto :goto_0
.end method

View file

@ -0,0 +1,137 @@
.class final Lbolts/Task$7;
.super Ljava/lang/Object;
.source "Task.java"
# interfaces
.implements Lbolts/Continuation;
# annotations
.annotation system Ldalvik/annotation/EnclosingMethod;
value = Lbolts/Task;->whenAllResult(Ljava/util/Collection;)Lbolts/Task;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x8
name = null
.end annotation
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/lang/Object;",
"Lbolts/Continuation",
"<",
"Ljava/lang/Void;",
"Ljava/util/List",
"<TTResult;>;>;"
}
.end annotation
# instance fields
.field final synthetic val$tasks:Ljava/util/Collection;
# direct methods
.method constructor <init>(Ljava/util/Collection;)V
.locals 0
.prologue
iput-object p1, p0, Lbolts/Task$7;->val$tasks:Ljava/util/Collection;
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
return-void
.end method
# virtual methods
.method public bridge synthetic then(Lbolts/Task;)Ljava/lang/Object;
.locals 1
.param p1, "x0" # Lbolts/Task;
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/lang/Exception;
}
.end annotation
.prologue
invoke-virtual {p0, p1}, Lbolts/Task$7;->then(Lbolts/Task;)Ljava/util/List;
move-result-object v0
return-object v0
.end method
.method public then(Lbolts/Task;)Ljava/util/List;
.locals 4
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Lbolts/Task",
"<",
"Ljava/lang/Void;",
">;)",
"Ljava/util/List",
"<TTResult;>;"
}
.end annotation
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/lang/Exception;
}
.end annotation
.prologue
.local p1, "task":Lbolts/Task;, "Lbolts/Task<Ljava/lang/Void;>;"
iget-object v3, p0, Lbolts/Task$7;->val$tasks:Ljava/util/Collection;
invoke-interface {v3}, Ljava/util/Collection;->size()I
move-result v3
if-nez v3, :cond_1
invoke-static {}, Ljava/util/Collections;->emptyList()Ljava/util/List;
move-result-object v2
:cond_0
return-object v2
:cond_1
new-instance v2, Ljava/util/ArrayList;
invoke-direct {v2}, Ljava/util/ArrayList;-><init>()V
.local v2, "results":Ljava/util/List;, "Ljava/util/List<TTResult;>;"
iget-object v3, p0, Lbolts/Task$7;->val$tasks:Ljava/util/Collection;
invoke-interface {v3}, Ljava/util/Collection;->iterator()Ljava/util/Iterator;
move-result-object v0
.local v0, "i$":Ljava/util/Iterator;
:goto_0
invoke-interface {v0}, Ljava/util/Iterator;->hasNext()Z
move-result v3
if-eqz v3, :cond_0
invoke-interface {v0}, Ljava/util/Iterator;->next()Ljava/lang/Object;
move-result-object v1
check-cast v1, Lbolts/Task;
.local v1, "individualTask":Lbolts/Task;, "Lbolts/Task<TTResult;>;"
invoke-virtual {v1}, Lbolts/Task;->getResult()Ljava/lang/Object;
move-result-object v3
invoke-interface {v2, v3}, Ljava/util/List;->add(Ljava/lang/Object;)Z
goto :goto_0
.end method

View file

@ -0,0 +1,244 @@
.class final Lbolts/Task$8;
.super Ljava/lang/Object;
.source "Task.java"
# interfaces
.implements Lbolts/Continuation;
# annotations
.annotation system Ldalvik/annotation/EnclosingMethod;
value = Lbolts/Task;->whenAll(Ljava/util/Collection;)Lbolts/Task;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x8
name = null
.end annotation
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/lang/Object;",
"Lbolts/Continuation",
"<",
"Ljava/lang/Object;",
"Ljava/lang/Void;",
">;"
}
.end annotation
# instance fields
.field final synthetic val$allFinished:Lbolts/TaskCompletionSource;
.field final synthetic val$causes:Ljava/util/ArrayList;
.field final synthetic val$count:Ljava/util/concurrent/atomic/AtomicInteger;
.field final synthetic val$errorLock:Ljava/lang/Object;
.field final synthetic val$isCancelled:Ljava/util/concurrent/atomic/AtomicBoolean;
# direct methods
.method constructor <init>(Ljava/lang/Object;Ljava/util/ArrayList;Ljava/util/concurrent/atomic/AtomicBoolean;Ljava/util/concurrent/atomic/AtomicInteger;Lbolts/TaskCompletionSource;)V
.locals 0
.prologue
iput-object p1, p0, Lbolts/Task$8;->val$errorLock:Ljava/lang/Object;
iput-object p2, p0, Lbolts/Task$8;->val$causes:Ljava/util/ArrayList;
iput-object p3, p0, Lbolts/Task$8;->val$isCancelled:Ljava/util/concurrent/atomic/AtomicBoolean;
iput-object p4, p0, Lbolts/Task$8;->val$count:Ljava/util/concurrent/atomic/AtomicInteger;
iput-object p5, p0, Lbolts/Task$8;->val$allFinished:Lbolts/TaskCompletionSource;
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
return-void
.end method
# virtual methods
.method public bridge synthetic then(Lbolts/Task;)Ljava/lang/Object;
.locals 1
.param p1, "x0" # Lbolts/Task;
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/lang/Exception;
}
.end annotation
.prologue
invoke-virtual {p0, p1}, Lbolts/Task$8;->then(Lbolts/Task;)Ljava/lang/Void;
move-result-object v0
return-object v0
.end method
.method public then(Lbolts/Task;)Ljava/lang/Void;
.locals 7
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Lbolts/Task",
"<",
"Ljava/lang/Object;",
">;)",
"Ljava/lang/Void;"
}
.end annotation
.prologue
.local p1, "task":Lbolts/Task;, "Lbolts/Task<Ljava/lang/Object;>;"
const/4 v6, 0x0
const/4 v5, 0x0
const/4 v4, 0x1
invoke-virtual {p1}, Lbolts/Task;->isFaulted()Z
move-result v1
if-eqz v1, :cond_0
iget-object v2, p0, Lbolts/Task$8;->val$errorLock:Ljava/lang/Object;
monitor-enter v2
:try_start_0
iget-object v1, p0, Lbolts/Task$8;->val$causes:Ljava/util/ArrayList;
invoke-virtual {p1}, Lbolts/Task;->getError()Ljava/lang/Exception;
move-result-object v3
invoke-virtual {v1, v3}, Ljava/util/ArrayList;->add(Ljava/lang/Object;)Z
monitor-exit v2
:try_end_0
.catchall {:try_start_0 .. :try_end_0} :catchall_0
:cond_0
invoke-virtual {p1}, Lbolts/Task;->isCancelled()Z
move-result v1
if-eqz v1, :cond_1
iget-object v1, p0, Lbolts/Task$8;->val$isCancelled:Ljava/util/concurrent/atomic/AtomicBoolean;
invoke-virtual {v1, v4}, Ljava/util/concurrent/atomic/AtomicBoolean;->set(Z)V
:cond_1
iget-object v1, p0, Lbolts/Task$8;->val$count:Ljava/util/concurrent/atomic/AtomicInteger;
invoke-virtual {v1}, Ljava/util/concurrent/atomic/AtomicInteger;->decrementAndGet()I
move-result v1
if-nez v1, :cond_2
iget-object v1, p0, Lbolts/Task$8;->val$causes:Ljava/util/ArrayList;
invoke-virtual {v1}, Ljava/util/ArrayList;->size()I
move-result v1
if-eqz v1, :cond_4
iget-object v1, p0, Lbolts/Task$8;->val$causes:Ljava/util/ArrayList;
invoke-virtual {v1}, Ljava/util/ArrayList;->size()I
move-result v1
if-ne v1, v4, :cond_3
iget-object v2, p0, Lbolts/Task$8;->val$allFinished:Lbolts/TaskCompletionSource;
iget-object v1, p0, Lbolts/Task$8;->val$causes:Ljava/util/ArrayList;
invoke-virtual {v1, v5}, Ljava/util/ArrayList;->get(I)Ljava/lang/Object;
move-result-object v1
check-cast v1, Ljava/lang/Exception;
invoke-virtual {v2, v1}, Lbolts/TaskCompletionSource;->setError(Ljava/lang/Exception;)V
:cond_2
:goto_0
return-object v6
:catchall_0
move-exception v1
:try_start_1
monitor-exit v2
:try_end_1
.catchall {:try_start_1 .. :try_end_1} :catchall_0
throw v1
:cond_3
new-instance v0, Lbolts/AggregateException;
const-string v1, "There were %d exceptions."
new-array v2, v4, [Ljava/lang/Object;
iget-object v3, p0, Lbolts/Task$8;->val$causes:Ljava/util/ArrayList;
invoke-virtual {v3}, Ljava/util/ArrayList;->size()I
move-result v3
invoke-static {v3}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object v3
aput-object v3, v2, v5
invoke-static {v1, v2}, Ljava/lang/String;->format(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
move-result-object v1
iget-object v2, p0, Lbolts/Task$8;->val$causes:Ljava/util/ArrayList;
invoke-direct {v0, v1, v2}, Lbolts/AggregateException;-><init>(Ljava/lang/String;Ljava/util/List;)V
.local v0, "error":Ljava/lang/Exception;
iget-object v1, p0, Lbolts/Task$8;->val$allFinished:Lbolts/TaskCompletionSource;
invoke-virtual {v1, v0}, Lbolts/TaskCompletionSource;->setError(Ljava/lang/Exception;)V
goto :goto_0
.end local v0 # "error":Ljava/lang/Exception;
:cond_4
iget-object v1, p0, Lbolts/Task$8;->val$isCancelled:Ljava/util/concurrent/atomic/AtomicBoolean;
invoke-virtual {v1}, Ljava/util/concurrent/atomic/AtomicBoolean;->get()Z
move-result v1
if-eqz v1, :cond_5
iget-object v1, p0, Lbolts/Task$8;->val$allFinished:Lbolts/TaskCompletionSource;
invoke-virtual {v1}, Lbolts/TaskCompletionSource;->setCancelled()V
goto :goto_0
:cond_5
iget-object v1, p0, Lbolts/Task$8;->val$allFinished:Lbolts/TaskCompletionSource;
invoke-virtual {v1, v6}, Lbolts/TaskCompletionSource;->setResult(Ljava/lang/Object;)V
goto :goto_0
.end method

View file

@ -0,0 +1,185 @@
.class Lbolts/Task$9;
.super Ljava/lang/Object;
.source "Task.java"
# interfaces
.implements Lbolts/Continuation;
# annotations
.annotation system Ldalvik/annotation/EnclosingMethod;
value = Lbolts/Task;->continueWhile(Ljava/util/concurrent/Callable;Lbolts/Continuation;Ljava/util/concurrent/Executor;Lbolts/CancellationToken;)Lbolts/Task;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x0
name = null
.end annotation
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/lang/Object;",
"Lbolts/Continuation",
"<",
"Ljava/lang/Void;",
"Lbolts/Task",
"<",
"Ljava/lang/Void;",
">;>;"
}
.end annotation
# instance fields
.field final synthetic this$0:Lbolts/Task;
.field final synthetic val$continuation:Lbolts/Continuation;
.field final synthetic val$ct:Lbolts/CancellationToken;
.field final synthetic val$executor:Ljava/util/concurrent/Executor;
.field final synthetic val$predicate:Ljava/util/concurrent/Callable;
.field final synthetic val$predicateContinuation:Lbolts/Capture;
# direct methods
.method constructor <init>(Lbolts/Task;Lbolts/CancellationToken;Ljava/util/concurrent/Callable;Lbolts/Continuation;Ljava/util/concurrent/Executor;Lbolts/Capture;)V
.locals 0
.prologue
.local p0, "this":Lbolts/Task$9;, "Lbolts/Task.9;"
iput-object p1, p0, Lbolts/Task$9;->this$0:Lbolts/Task;
iput-object p2, p0, Lbolts/Task$9;->val$ct:Lbolts/CancellationToken;
iput-object p3, p0, Lbolts/Task$9;->val$predicate:Ljava/util/concurrent/Callable;
iput-object p4, p0, Lbolts/Task$9;->val$continuation:Lbolts/Continuation;
iput-object p5, p0, Lbolts/Task$9;->val$executor:Ljava/util/concurrent/Executor;
iput-object p6, p0, Lbolts/Task$9;->val$predicateContinuation:Lbolts/Capture;
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
return-void
.end method
# virtual methods
.method public then(Lbolts/Task;)Lbolts/Task;
.locals 3
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Lbolts/Task",
"<",
"Ljava/lang/Void;",
">;)",
"Lbolts/Task",
"<",
"Ljava/lang/Void;",
">;"
}
.end annotation
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/lang/Exception;
}
.end annotation
.prologue
.local p0, "this":Lbolts/Task$9;, "Lbolts/Task.9;"
.local p1, "task":Lbolts/Task;, "Lbolts/Task<Ljava/lang/Void;>;"
const/4 v1, 0x0
iget-object v0, p0, Lbolts/Task$9;->val$ct:Lbolts/CancellationToken;
if-eqz v0, :cond_0
iget-object v0, p0, Lbolts/Task$9;->val$ct:Lbolts/CancellationToken;
invoke-virtual {v0}, Lbolts/CancellationToken;->isCancellationRequested()Z
move-result v0
if-eqz v0, :cond_0
invoke-static {}, Lbolts/Task;->cancelled()Lbolts/Task;
move-result-object v0
:goto_0
return-object v0
:cond_0
iget-object v0, p0, Lbolts/Task$9;->val$predicate:Ljava/util/concurrent/Callable;
invoke-interface {v0}, Ljava/util/concurrent/Callable;->call()Ljava/lang/Object;
move-result-object v0
check-cast v0, Ljava/lang/Boolean;
invoke-virtual {v0}, Ljava/lang/Boolean;->booleanValue()Z
move-result v0
if-eqz v0, :cond_1
invoke-static {v1}, Lbolts/Task;->forResult(Ljava/lang/Object;)Lbolts/Task;
move-result-object v0
iget-object v1, p0, Lbolts/Task$9;->val$continuation:Lbolts/Continuation;
iget-object v2, p0, Lbolts/Task$9;->val$executor:Ljava/util/concurrent/Executor;
invoke-virtual {v0, v1, v2}, Lbolts/Task;->onSuccessTask(Lbolts/Continuation;Ljava/util/concurrent/Executor;)Lbolts/Task;
move-result-object v1
iget-object v0, p0, Lbolts/Task$9;->val$predicateContinuation:Lbolts/Capture;
invoke-virtual {v0}, Lbolts/Capture;->get()Ljava/lang/Object;
move-result-object v0
check-cast v0, Lbolts/Continuation;
iget-object v2, p0, Lbolts/Task$9;->val$executor:Ljava/util/concurrent/Executor;
invoke-virtual {v1, v0, v2}, Lbolts/Task;->onSuccessTask(Lbolts/Continuation;Ljava/util/concurrent/Executor;)Lbolts/Task;
move-result-object v0
goto :goto_0
:cond_1
invoke-static {v1}, Lbolts/Task;->forResult(Ljava/lang/Object;)Lbolts/Task;
move-result-object v0
goto :goto_0
.end method
.method public bridge synthetic then(Lbolts/Task;)Ljava/lang/Object;
.locals 1
.param p1, "x0" # Lbolts/Task;
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/lang/Exception;
}
.end annotation
.prologue
.local p0, "this":Lbolts/Task$9;, "Lbolts/Task.9;"
invoke-virtual {p0, p1}, Lbolts/Task$9;->then(Lbolts/Task;)Lbolts/Task;
move-result-object v0
return-object v0
.end method

View file

@ -0,0 +1,39 @@
.class public Lbolts/Task$TaskCompletionSource;
.super Lbolts/TaskCompletionSource;
.source "Task.java"
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Lbolts/Task;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x1
name = "TaskCompletionSource"
.end annotation
.annotation system Ldalvik/annotation/Signature;
value = {
"Lbolts/TaskCompletionSource",
"<TTResult;>;"
}
.end annotation
# instance fields
.field final synthetic this$0:Lbolts/Task;
# direct methods
.method constructor <init>(Lbolts/Task;)V
.locals 0
.prologue
.local p0, "this":Lbolts/Task$TaskCompletionSource;, "Lbolts/Task<TTResult;>.TaskCompletionSource;"
iput-object p1, p0, Lbolts/Task$TaskCompletionSource;->this$0:Lbolts/Task;
invoke-direct {p0}, Lbolts/TaskCompletionSource;-><init>()V
return-void
.end method

View file

@ -0,0 +1,28 @@
.class public interface abstract Lbolts/Task$UnobservedExceptionHandler;
.super Ljava/lang/Object;
.source "Task.java"
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Lbolts/Task;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x609
name = "UnobservedExceptionHandler"
.end annotation
# virtual methods
.method public abstract unobservedException(Lbolts/Task;Lbolts/UnobservedTaskException;)V
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Lbolts/Task",
"<*>;",
"Lbolts/UnobservedTaskException;",
")V"
}
.end annotation
.end method

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,187 @@
.class public Lbolts/TaskCompletionSource;
.super Ljava/lang/Object;
.source "TaskCompletionSource.java"
# annotations
.annotation system Ldalvik/annotation/Signature;
value = {
"<TResult:",
"Ljava/lang/Object;",
">",
"Ljava/lang/Object;"
}
.end annotation
# instance fields
.field private final task:Lbolts/Task;
.annotation system Ldalvik/annotation/Signature;
value = {
"Lbolts/Task",
"<TTResult;>;"
}
.end annotation
.end field
# direct methods
.method public constructor <init>()V
.locals 1
.prologue
.local p0, "this":Lbolts/TaskCompletionSource;, "Lbolts/TaskCompletionSource<TTResult;>;"
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
new-instance v0, Lbolts/Task;
invoke-direct {v0}, Lbolts/Task;-><init>()V
iput-object v0, p0, Lbolts/TaskCompletionSource;->task:Lbolts/Task;
return-void
.end method
# virtual methods
.method public getTask()Lbolts/Task;
.locals 1
.annotation system Ldalvik/annotation/Signature;
value = {
"()",
"Lbolts/Task",
"<TTResult;>;"
}
.end annotation
.prologue
.local p0, "this":Lbolts/TaskCompletionSource;, "Lbolts/TaskCompletionSource<TTResult;>;"
iget-object v0, p0, Lbolts/TaskCompletionSource;->task:Lbolts/Task;
return-object v0
.end method
.method public setCancelled()V
.locals 2
.prologue
.local p0, "this":Lbolts/TaskCompletionSource;, "Lbolts/TaskCompletionSource<TTResult;>;"
invoke-virtual {p0}, Lbolts/TaskCompletionSource;->trySetCancelled()Z
move-result v0
if-nez v0, :cond_0
new-instance v0, Ljava/lang/IllegalStateException;
const-string v1, "Cannot cancel a completed task."
invoke-direct {v0, v1}, Ljava/lang/IllegalStateException;-><init>(Ljava/lang/String;)V
throw v0
:cond_0
return-void
.end method
.method public setError(Ljava/lang/Exception;)V
.locals 2
.param p1, "error" # Ljava/lang/Exception;
.prologue
.local p0, "this":Lbolts/TaskCompletionSource;, "Lbolts/TaskCompletionSource<TTResult;>;"
invoke-virtual {p0, p1}, Lbolts/TaskCompletionSource;->trySetError(Ljava/lang/Exception;)Z
move-result v0
if-nez v0, :cond_0
new-instance v0, Ljava/lang/IllegalStateException;
const-string v1, "Cannot set the error on a completed task."
invoke-direct {v0, v1}, Ljava/lang/IllegalStateException;-><init>(Ljava/lang/String;)V
throw v0
:cond_0
return-void
.end method
.method public setResult(Ljava/lang/Object;)V
.locals 2
.annotation system Ldalvik/annotation/Signature;
value = {
"(TTResult;)V"
}
.end annotation
.prologue
.local p0, "this":Lbolts/TaskCompletionSource;, "Lbolts/TaskCompletionSource<TTResult;>;"
.local p1, "result":Ljava/lang/Object;, "TTResult;"
invoke-virtual {p0, p1}, Lbolts/TaskCompletionSource;->trySetResult(Ljava/lang/Object;)Z
move-result v0
if-nez v0, :cond_0
new-instance v0, Ljava/lang/IllegalStateException;
const-string v1, "Cannot set the result of a completed task."
invoke-direct {v0, v1}, Ljava/lang/IllegalStateException;-><init>(Ljava/lang/String;)V
throw v0
:cond_0
return-void
.end method
.method public trySetCancelled()Z
.locals 1
.prologue
.local p0, "this":Lbolts/TaskCompletionSource;, "Lbolts/TaskCompletionSource<TTResult;>;"
iget-object v0, p0, Lbolts/TaskCompletionSource;->task:Lbolts/Task;
invoke-virtual {v0}, Lbolts/Task;->trySetCancelled()Z
move-result v0
return v0
.end method
.method public trySetError(Ljava/lang/Exception;)Z
.locals 1
.param p1, "error" # Ljava/lang/Exception;
.prologue
.local p0, "this":Lbolts/TaskCompletionSource;, "Lbolts/TaskCompletionSource<TTResult;>;"
iget-object v0, p0, Lbolts/TaskCompletionSource;->task:Lbolts/Task;
invoke-virtual {v0, p1}, Lbolts/Task;->trySetError(Ljava/lang/Exception;)Z
move-result v0
return v0
.end method
.method public trySetResult(Ljava/lang/Object;)Z
.locals 1
.annotation system Ldalvik/annotation/Signature;
value = {
"(TTResult;)Z"
}
.end annotation
.prologue
.local p0, "this":Lbolts/TaskCompletionSource;, "Lbolts/TaskCompletionSource<TTResult;>;"
.local p1, "result":Ljava/lang/Object;, "TTResult;"
iget-object v0, p0, Lbolts/TaskCompletionSource;->task:Lbolts/Task;
invoke-virtual {v0, p1}, Lbolts/Task;->trySetResult(Ljava/lang/Object;)Z
move-result v0
return v0
.end method

View file

@ -0,0 +1,97 @@
.class Lbolts/UnobservedErrorNotifier;
.super Ljava/lang/Object;
.source "UnobservedErrorNotifier.java"
# instance fields
.field private task:Lbolts/Task;
.annotation system Ldalvik/annotation/Signature;
value = {
"Lbolts/Task",
"<*>;"
}
.end annotation
.end field
# direct methods
.method public constructor <init>(Lbolts/Task;)V
.locals 0
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Lbolts/Task",
"<*>;)V"
}
.end annotation
.prologue
.local p1, "task":Lbolts/Task;, "Lbolts/Task<*>;"
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
iput-object p1, p0, Lbolts/UnobservedErrorNotifier;->task:Lbolts/Task;
return-void
.end method
# virtual methods
.method protected finalize()V
.locals 4
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/lang/Throwable;
}
.end annotation
.prologue
:try_start_0
iget-object v0, p0, Lbolts/UnobservedErrorNotifier;->task:Lbolts/Task;
.local v0, "faultedTask":Lbolts/Task;
if-eqz v0, :cond_0
invoke-static {}, Lbolts/Task;->getUnobservedExceptionHandler()Lbolts/Task$UnobservedExceptionHandler;
move-result-object v1
.local v1, "ueh":Lbolts/Task$UnobservedExceptionHandler;
if-eqz v1, :cond_0
new-instance v2, Lbolts/UnobservedTaskException;
invoke-virtual {v0}, Lbolts/Task;->getError()Ljava/lang/Exception;
move-result-object v3
invoke-direct {v2, v3}, Lbolts/UnobservedTaskException;-><init>(Ljava/lang/Throwable;)V
invoke-interface {v1, v0, v2}, Lbolts/Task$UnobservedExceptionHandler;->unobservedException(Lbolts/Task;Lbolts/UnobservedTaskException;)V
:try_end_0
.catchall {:try_start_0 .. :try_end_0} :catchall_0
.end local v1 # "ueh":Lbolts/Task$UnobservedExceptionHandler;
:cond_0
invoke-super {p0}, Ljava/lang/Object;->finalize()V
return-void
.end local v0 # "faultedTask":Lbolts/Task;
:catchall_0
move-exception v2
invoke-super {p0}, Ljava/lang/Object;->finalize()V
throw v2
.end method
.method public setObserved()V
.locals 1
.prologue
const/4 v0, 0x0
iput-object v0, p0, Lbolts/UnobservedErrorNotifier;->task:Lbolts/Task;
return-void
.end method

View file

@ -0,0 +1,15 @@
.class public Lbolts/UnobservedTaskException;
.super Ljava/lang/RuntimeException;
.source "UnobservedTaskException.java"
# direct methods
.method public constructor <init>(Ljava/lang/Throwable;)V
.locals 0
.param p1, "cause" # Ljava/lang/Throwable;
.prologue
invoke-direct {p0, p1}, Ljava/lang/RuntimeException;-><init>(Ljava/lang/Throwable;)V
return-void
.end method