GDPAndroid$CPUTemperature.smali

.class Lio/agora/rtc2/internal/gdp/GDPAndroid$CPUTemperature;
.super Ljava/lang/Object;

# interfaces
.implements Ljava/lang/Runnable;


# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
    value = Lio/agora/rtc2/internal/gdp/GDPAndroid;
.end annotation

.annotation system Ldalvik/annotation/InnerClass;
    accessFlags = 0x8
    name = "CPUTemperature"
.end annotation


# static fields
.field static currentTemp:D


# instance fields
.field final runDone:Ljava/util/concurrent/CountDownLatch;


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

    return-void
.end method

.method constructor <init>()V
    .registers 3

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

    new-instance v0, Ljava/util/concurrent/CountDownLatch;

    const/4 v1, 0x1

    invoke-direct {v0, v1}, Ljava/util/concurrent/CountDownLatch;-><init>(I)V

    iput-object v0, p0, Lio/agora/rtc2/internal/gdp/GDPAndroid$CPUTemperature;->runDone:Ljava/util/concurrent/CountDownLatch;

    return-void
.end method


# virtual methods
.method public getCpuTemperatureSafe()I
    .registers 5

    new-instance v0, Ljava/lang/Thread;

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

    invoke-virtual {v0}, Ljava/lang/Thread;->start()V

    iget-object v0, p0, Lio/agora/rtc2/internal/gdp/GDPAndroid$CPUTemperature;->runDone:Ljava/util/concurrent/CountDownLatch;

    const-wide/16 v1, 0x14

    invoke-static {v0, v1, v2}, Lio/agora/base/internal/ThreadUtils;->awaitUninterruptibly(Ljava/util/concurrent/CountDownLatch;J)Z

    move-result v0

    if-nez v0, :cond_19

    const-string v0, "GDPAndroid"

    const-string v1, "getCpuTemperatureSafe timeout"

    invoke-static {v0, v1}, Lio/agora/base/internal/Logging;->e(Ljava/lang/String;Ljava/lang/String;)V

    :cond_19
    sget-wide v0, Lio/agora/rtc2/internal/gdp/GDPAndroid$CPUTemperature;->currentTemp:D

    const-wide v2, 0x408f400000000000L    # 1000.0

    mul-double/2addr v0, v2

    double-to-int v0, v0

    return v0
.end method

.method public run()V
    .registers 10

    const/4 v0, 0x0

    :goto_1
    # getter for: Lio/agora/rtc2/internal/gdp/GDPAndroid;->CPU_TEMP_FILE_PATHS:Ljava/util/List;
    invoke-static {}, Lio/agora/rtc2/internal/gdp/GDPAndroid;->access$200()Ljava/util/List;

    move-result-object v1

    invoke-interface {v1}, Ljava/util/List;->size()I

    move-result v1

    if-ge v0, v1, :cond_5a

    # getter for: Lio/agora/rtc2/internal/gdp/GDPAndroid;->CPU_TEMP_FILE_PATHS:Ljava/util/List;
    invoke-static {}, Lio/agora/rtc2/internal/gdp/GDPAndroid;->access$200()Ljava/util/List;

    move-result-object v1

    invoke-interface {v1, v0}, Ljava/util/List;->get(I)Ljava/lang/Object;

    move-result-object v1

    check-cast v1, Ljava/lang/String;

    new-instance v2, Ljava/io/File;

    invoke-direct {v2, v1}, Ljava/io/File;-><init>(Ljava/lang/String;)V

    # invokes: Lio/agora/rtc2/internal/gdp/GDPAndroid;->readOneLine(Ljava/io/File;)D
    invoke-static {v2}, Lio/agora/rtc2/internal/gdp/GDPAndroid;->access$300(Ljava/io/File;)D

    move-result-wide v2

    # invokes: Lio/agora/rtc2/internal/gdp/GDPAndroid;->isTemperatureValid(D)Z
    invoke-static {v2, v3}, Lio/agora/rtc2/internal/gdp/GDPAndroid;->access$400(D)Z

    move-result v4

    const-string v5, "getCpuTemperature valid path:"

    const-string v6, "GDPAndroid"

    if-nez v4, :cond_46

    # getter for: Lio/agora/rtc2/internal/gdp/GDPAndroid;->mockGDPAndroid:Z
    invoke-static {}, Lio/agora/rtc2/internal/gdp/GDPAndroid;->access$500()Z

    move-result v4

    if-eqz v4, :cond_2f

    goto :goto_46

    :cond_2f
    const-wide v7, 0x408f400000000000L    # 1000.0

    div-double/2addr v2, v7

    # invokes: Lio/agora/rtc2/internal/gdp/GDPAndroid;->isTemperatureValid(D)Z
    invoke-static {v2, v3}, Lio/agora/rtc2/internal/gdp/GDPAndroid;->access$400(D)Z

    move-result v4

    if-eqz v4, :cond_43

    sput-wide v2, Lio/agora/rtc2/internal/gdp/GDPAndroid$CPUTemperature;->currentTemp:D

    new-instance v0, Ljava/lang/StringBuilder;

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

    goto :goto_4d

    :cond_43
    add-int/lit8 v0, v0, 0x1

    goto :goto_1

    :cond_46
    :goto_46
    sput-wide v2, Lio/agora/rtc2/internal/gdp/GDPAndroid$CPUTemperature;->currentTemp:D

    new-instance v0, Ljava/lang/StringBuilder;

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

    :goto_4d
    invoke-virtual {v0, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

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

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

    move-result-object v0

    invoke-static {v6, v0}, Lio/agora/base/internal/Logging;->d(Ljava/lang/String;Ljava/lang/String;)V

    :cond_5a
    iget-object v0, p0, Lio/agora/rtc2/internal/gdp/GDPAndroid$CPUTemperature;->runDone:Ljava/util/concurrent/CountDownLatch;

    invoke-virtual {v0}, Ljava/util/concurrent/CountDownLatch;->countDown()V

    return-void
.end method