TPTaskManager.smali

.class public Lcom/tradplus/ads/base/common/TPTaskManager;
.super Ljava/lang/Object;


# static fields
.field public static final TYPE_NORMAL:I = 0x2

.field public static final TYPE_SINGLE:I = 0x1

.field private static a:Lcom/tradplus/ads/base/common/TPTaskManager;


# instance fields
.field private b:Ljava/util/concurrent/ExecutorService;

.field private c:Ljava/util/concurrent/ExecutorService;

.field private d:Landroid/os/HandlerThread;

.field private e:Landroid/os/Handler;

.field private f:Landroid/os/Handler;


# direct methods
.method static constructor <clinit>()V
    .registers 0

    return-void
.end method

.method protected constructor <init>()V
    .registers 5

    invoke-direct {p0}, Ljava/lang/Object;-><init>()V

    invoke-static {}, Ljava/util/concurrent/Executors;->newCachedThreadPool()Ljava/util/concurrent/ExecutorService;

    move-result-object v0

    iput-object v0, p0, Lcom/tradplus/ads/base/common/TPTaskManager;->b:Ljava/util/concurrent/ExecutorService;

    invoke-static {}, Ljava/util/concurrent/Executors;->newSingleThreadExecutor()Ljava/util/concurrent/ExecutorService;

    move-result-object v0

    iput-object v0, p0, Lcom/tradplus/ads/base/common/TPTaskManager;->c:Ljava/util/concurrent/ExecutorService;

    new-instance v0, Landroid/os/HandlerThread;

    new-instance v1, Ljava/lang/StringBuilder;

    invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V

    const-string v2, "tp-thread-"

    invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    invoke-static {}, Ljava/lang/System;->currentTimeMillis()J

    move-result-wide v2

    invoke-virtual {v1, v2, v3}, Ljava/lang/StringBuilder;->append(J)Ljava/lang/StringBuilder;

    invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;

    move-result-object v1

    invoke-direct {v0, v1}, Landroid/os/HandlerThread;-><init>(Ljava/lang/String;)V

    iput-object v0, p0, Lcom/tradplus/ads/base/common/TPTaskManager;->d:Landroid/os/HandlerThread;

    iget-object v0, p0, Lcom/tradplus/ads/base/common/TPTaskManager;->d:Landroid/os/HandlerThread;

    invoke-virtual {v0}, Landroid/os/HandlerThread;->start()V

    new-instance v0, Landroid/os/Handler;

    iget-object v1, p0, Lcom/tradplus/ads/base/common/TPTaskManager;->d:Landroid/os/HandlerThread;

    invoke-virtual {v1}, Landroid/os/HandlerThread;->getLooper()Landroid/os/Looper;

    move-result-object v1

    invoke-direct {v0, v1}, Landroid/os/Handler;-><init>(Landroid/os/Looper;)V

    iput-object v0, p0, Lcom/tradplus/ads/base/common/TPTaskManager;->e:Landroid/os/Handler;

    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

    iput-object v0, p0, Lcom/tradplus/ads/base/common/TPTaskManager;->f:Landroid/os/Handler;

    return-void
.end method

.method public static declared-synchronized getInstance()Lcom/tradplus/ads/base/common/TPTaskManager;
    .registers 2

    const-class v0, Lcom/tradplus/ads/base/common/TPTaskManager;

    monitor-enter v0

    :try_start_3
    sget-object v1, Lcom/tradplus/ads/base/common/TPTaskManager;->a:Lcom/tradplus/ads/base/common/TPTaskManager;

    if-nez v1, :cond_e

    new-instance v1, Lcom/tradplus/ads/base/common/TPTaskManager;

    invoke-direct {v1}, Lcom/tradplus/ads/base/common/TPTaskManager;-><init>()V

    sput-object v1, Lcom/tradplus/ads/base/common/TPTaskManager;->a:Lcom/tradplus/ads/base/common/TPTaskManager;

    :cond_e
    sget-object v1, Lcom/tradplus/ads/base/common/TPTaskManager;->a:Lcom/tradplus/ads/base/common/TPTaskManager;
    :try_end_10
    .catchall {:try_start_3 .. :try_end_10} :catchall_12

    monitor-exit v0

    return-object v1

    :catchall_12
    move-exception v1

    monitor-exit v0

    throw v1
.end method


# virtual methods
.method public getThreadHandler()Landroid/os/Handler;
    .registers 2

    iget-object v0, p0, Lcom/tradplus/ads/base/common/TPTaskManager;->e:Landroid/os/Handler;

    return-object v0
.end method

.method public runNormalTask(Ljava/lang/Runnable;)V
    .registers 3

    const/4 v0, 0x2

    invoke-virtual {p0, p1, v0}, Lcom/tradplus/ads/base/common/TPTaskManager;->runTask(Ljava/lang/Runnable;I)V

    return-void
.end method

.method public runOnMainThread(Ljava/lang/Runnable;)V
    .registers 3

    iget-object v0, p0, Lcom/tradplus/ads/base/common/TPTaskManager;->f:Landroid/os/Handler;

    invoke-virtual {v0, p1}, Landroid/os/Handler;->post(Ljava/lang/Runnable;)Z

    return-void
.end method

.method public runOnMainThreadDelayed(Ljava/lang/Runnable;J)V
    .registers 5

    iget-object v0, p0, Lcom/tradplus/ads/base/common/TPTaskManager;->f:Landroid/os/Handler;

    invoke-virtual {v0, p1, p2, p3}, Landroid/os/Handler;->postDelayed(Ljava/lang/Runnable;J)Z

    return-void
.end method

.method public runOnThread(Ljava/lang/Runnable;)V
    .registers 3

    iget-object v0, p0, Lcom/tradplus/ads/base/common/TPTaskManager;->e:Landroid/os/Handler;

    invoke-virtual {v0, p1}, Landroid/os/Handler;->post(Ljava/lang/Runnable;)Z

    return-void
.end method

.method public runOnThreadDelayed(Ljava/lang/Runnable;J)V
    .registers 5

    iget-object v0, p0, Lcom/tradplus/ads/base/common/TPTaskManager;->e:Landroid/os/Handler;

    invoke-virtual {v0, p1, p2, p3}, Landroid/os/Handler;->postDelayed(Ljava/lang/Runnable;J)Z

    return-void
.end method

.method public runTask(Ljava/lang/Runnable;I)V
    .registers 4

    const/4 v0, 0x1

    if-eq p2, v0, :cond_a

    const/4 v0, 0x2

    if-eq p2, v0, :cond_7

    goto :goto_f

    :cond_7
    iget-object p2, p0, Lcom/tradplus/ads/base/common/TPTaskManager;->b:Ljava/util/concurrent/ExecutorService;

    goto :goto_c

    :cond_a
    iget-object p2, p0, Lcom/tradplus/ads/base/common/TPTaskManager;->c:Ljava/util/concurrent/ExecutorService;

    :goto_c
    invoke-interface {p2, p1}, Ljava/util/concurrent/ExecutorService;->execute(Ljava/lang/Runnable;)V

    :goto_f
    return-void
.end method

.method public runTaskDelayed(Ljava/lang/Runnable;J)V
    .registers 5

    new-instance v0, Lcom/tradplus/ads/base/common/TPTaskManager$1;

    invoke-direct {v0, p0, p1}, Lcom/tradplus/ads/base/common/TPTaskManager$1;-><init>(Lcom/tradplus/ads/base/common/TPTaskManager;Ljava/lang/Runnable;)V

    invoke-virtual {p0, v0, p2, p3}, Lcom/tradplus/ads/base/common/TPTaskManager;->runOnThreadDelayed(Ljava/lang/Runnable;J)V

    return-void
.end method