h.smali
.class public final Lcom/yysdk/mobile/sharedcontext/h;
.super Ljava/lang/Object;
.source "SourceFile"
# interfaces
.implements Lcom/yysdk/mobile/sharedcontext/f;
# instance fields
.field a:J
.field b:Z
.field c:Z
.field d:Lcom/yysdk/mobile/sharedcontext/d;
.field private e:Z
.field private f:Landroid/view/Surface;
# direct methods
.method public constructor <init>(ZLcom/yysdk/mobile/sharedcontext/d;)V
.registers 5
.line 39
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
const-wide/16 v0, 0x0
.line 28
iput-wide v0, p0, Lcom/yysdk/mobile/sharedcontext/h;->a:J
const/4 v0, 0x0
.line 29
iput-boolean v0, p0, Lcom/yysdk/mobile/sharedcontext/h;->b:Z
const/4 v1, 0x1
.line 32
iput-boolean v1, p0, Lcom/yysdk/mobile/sharedcontext/h;->e:Z
const/4 v1, 0x0
.line 34
iput-object v1, p0, Lcom/yysdk/mobile/sharedcontext/h;->f:Landroid/view/Surface;
.line 36
iput-boolean v0, p0, Lcom/yysdk/mobile/sharedcontext/h;->c:Z
.line 40
iput-boolean p1, p0, Lcom/yysdk/mobile/sharedcontext/h;->c:Z
.line 41
iput-object p2, p0, Lcom/yysdk/mobile/sharedcontext/h;->d:Lcom/yysdk/mobile/sharedcontext/d;
return-void
.end method
.method static f()Z
.registers 2
.line 270
sget v0, Landroid/os/Build$VERSION;->SDK_INT:I
const/16 v1, 0x12
if-gt v0, v1, :cond_8
const/4 v0, 0x1
return v0
:cond_8
const/4 v0, 0x0
return v0
.end method
# virtual methods
.method public final a(Landroid/view/SurfaceHolder;)V
.registers 8
.line 91
iget-boolean v0, p0, Lcom/yysdk/mobile/sharedcontext/h;->c:Z
if-eqz v0, :cond_5
return-void
.line 94
:cond_5
invoke-static {p1}, Ljava/lang/String;->valueOf(Ljava/lang/Object;)Ljava/lang/String;
move-result-object v0
const-string v1, "[attachSurfaceToContext] begin "
invoke-virtual {v1, v0}, Ljava/lang/String;->concat(Ljava/lang/String;)Ljava/lang/String;
move-result-object v0
const-string v1, "ShareContextEglOpImpl"
invoke-static {v1, v0}, Lsg/bigo/log/TraceLog;->i(Ljava/lang/String;Ljava/lang/String;)I
const/4 v0, 0x1
.line 95
iput-boolean v0, p0, Lcom/yysdk/mobile/sharedcontext/h;->e:Z
.line 97
new-instance v2, Ljava/util/concurrent/CountDownLatch;
invoke-direct {v2, v0}, Ljava/util/concurrent/CountDownLatch;-><init>(I)V
.line 98
iget-object v0, p0, Lcom/yysdk/mobile/sharedcontext/h;->d:Lcom/yysdk/mobile/sharedcontext/d;
new-instance v3, Lcom/yysdk/mobile/sharedcontext/h$2;
invoke-direct {v3, p0, p1, v2}, Lcom/yysdk/mobile/sharedcontext/h$2;-><init>(Lcom/yysdk/mobile/sharedcontext/h;Landroid/view/SurfaceHolder;Ljava/util/concurrent/CountDownLatch;)V
invoke-interface {v0, v3}, Lcom/yysdk/mobile/sharedcontext/d;->a(Ljava/lang/Runnable;)V
const-wide/16 v3, 0x5
.line 111
:try_start_28
sget-object p1, Ljava/util/concurrent/TimeUnit;->SECONDS:Ljava/util/concurrent/TimeUnit;
invoke-virtual {v2, v3, v4, p1}, Ljava/util/concurrent/CountDownLatch;->await(JLjava/util/concurrent/TimeUnit;)Z
:try_end_2d
.catch Ljava/lang/InterruptedException; {:try_start_28 .. :try_end_2d} :catch_2e
goto :goto_35
.line 114
:catch_2e
invoke-static {}, Ljava/lang/Thread;->currentThread()Ljava/lang/Thread;
move-result-object p1
invoke-virtual {p1}, Ljava/lang/Thread;->interrupt()V
.line 116
:goto_35
invoke-virtual {v2}, Ljava/util/concurrent/CountDownLatch;->getCount()J
move-result-wide v2
const-wide/16 v4, 0x0
cmp-long p1, v2, v4
if-nez p1, :cond_45
const-string p1, "[attachSurfaceToContext] wait ok"
.line 117
invoke-static {v1, p1}, Lsg/bigo/log/TraceLog;->i(Ljava/lang/String;Ljava/lang/String;)I
goto :goto_4a
:cond_45
const-string p1, "[attachSurfaceToContext] wait error/timeout"
.line 119
invoke-static {v1, p1}, Lsg/bigo/log/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
:goto_4a
const-string p1, "[attachSurfaceToContext] end"
.line 121
invoke-static {v1, p1}, Lsg/bigo/log/TraceLog;->i(Ljava/lang/String;Ljava/lang/String;)I
return-void
.end method
.method public final a()Z
.registers 9
.line 180
iget-boolean v0, p0, Lcom/yysdk/mobile/sharedcontext/h;->c:Z
const/4 v1, 0x0
const/4 v2, 0x1
const-wide/16 v3, 0x0
if-eqz v0, :cond_67
.line 182
invoke-static {}, Lcom/yysdk/mobile/sharedcontext/h;->f()Z
move-result v0
if-eqz v0, :cond_1b
.line 183
iget-object v0, p0, Lcom/yysdk/mobile/sharedcontext/h;->d:Lcom/yysdk/mobile/sharedcontext/d;
invoke-interface {v0}, Lcom/yysdk/mobile/sharedcontext/d;->d()Landroid/graphics/SurfaceTexture;
move-result-object v0
invoke-static {v0}, Lcom/yysdk/mobile/sharedcontext/ContextManager;->a(Ljava/lang/Object;)J
move-result-wide v5
iput-wide v5, p0, Lcom/yysdk/mobile/sharedcontext/h;->a:J
goto :goto_2e
.line 185
:cond_1b
new-instance v0, Landroid/view/Surface;
iget-object v5, p0, Lcom/yysdk/mobile/sharedcontext/h;->d:Lcom/yysdk/mobile/sharedcontext/d;
invoke-interface {v5}, Lcom/yysdk/mobile/sharedcontext/d;->d()Landroid/graphics/SurfaceTexture;
move-result-object v5
invoke-direct {v0, v5}, Landroid/view/Surface;-><init>(Landroid/graphics/SurfaceTexture;)V
iput-object v0, p0, Lcom/yysdk/mobile/sharedcontext/h;->f:Landroid/view/Surface;
.line 186
invoke-static {v0}, Lcom/yysdk/mobile/sharedcontext/ContextManager;->a(Ljava/lang/Object;)J
move-result-wide v5
iput-wide v5, p0, Lcom/yysdk/mobile/sharedcontext/h;->a:J
.line 190
:goto_2e
new-instance v0, Ljava/lang/StringBuilder;
const-string v5, "[onEnterGLThread] createSharedWindowContext "
invoke-direct {v0, v5}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
iget-wide v5, p0, Lcom/yysdk/mobile/sharedcontext/h;->a:J
.line 191
invoke-static {v5, v6}, Ljava/lang/Long;->toHexString(J)Ljava/lang/String;
move-result-object v5
invoke-virtual {v0, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
const-string v5, "ShareContextEglOpImpl"
.line 190
invoke-static {v5, v0}, Lsg/bigo/log/TraceLog;->i(Ljava/lang/String;Ljava/lang/String;)I
.line 193
iget-wide v6, p0, Lcom/yysdk/mobile/sharedcontext/h;->a:J
cmp-long v0, v6, v3
if-eqz v0, :cond_7c
.line 195
invoke-static {v6, v7}, Lcom/yysdk/mobile/sharedcontext/ContextManager;->b(J)I
move-result v0
const/16 v6, 0x3000
if-ne v0, v6, :cond_57
const/4 v0, 0x1
goto :goto_58
:cond_57
const/4 v0, 0x0
:goto_58
if-nez v0, :cond_7c
const-string v0, "[initGL] createSharedWindowContext make fail"
.line 198
invoke-static {v5, v0}, Lsg/bigo/log/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
.line 200
iget-wide v5, p0, Lcom/yysdk/mobile/sharedcontext/h;->a:J
invoke-static {v5, v6}, Lcom/yysdk/mobile/sharedcontext/ContextManager;->a(J)Z
.line 201
iput-wide v3, p0, Lcom/yysdk/mobile/sharedcontext/h;->a:J
goto :goto_7c
.line 210
:cond_67
iget-wide v5, p0, Lcom/yysdk/mobile/sharedcontext/h;->a:J
cmp-long v0, v5, v3
if-nez v0, :cond_73
.line 211
invoke-static {}, Lcom/yysdk/mobile/sharedcontext/ContextManager;->a()J
move-result-wide v5
iput-wide v5, p0, Lcom/yysdk/mobile/sharedcontext/h;->a:J
.line 213
:cond_73
iget-wide v5, p0, Lcom/yysdk/mobile/sharedcontext/h;->a:J
cmp-long v0, v5, v3
if-eqz v0, :cond_7c
.line 215
invoke-static {v5, v6}, Lcom/yysdk/mobile/sharedcontext/ContextManager;->b(J)I
.line 223
:cond_7c
:goto_7c
iget-wide v5, p0, Lcom/yysdk/mobile/sharedcontext/h;->a:J
cmp-long v0, v5, v3
if-nez v0, :cond_83
return v1
:cond_83
return v2
.end method
.method public final b()V
.registers 4
.line 231
new-instance v0, Ljava/lang/StringBuilder;
const-string v1, "[onExitGLThread] "
invoke-direct {v0, v1}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
iget-wide v1, p0, Lcom/yysdk/mobile/sharedcontext/h;->a:J
.line 232
invoke-static {v1, v2}, Ljava/lang/Long;->toHexString(J)Ljava/lang/String;
move-result-object v1
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
const-string v1, "ShareContextEglOpImpl"
.line 231
invoke-static {v1, v0}, Lsg/bigo/log/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
.line 234
iget-object v0, p0, Lcom/yysdk/mobile/sharedcontext/h;->f:Landroid/view/Surface;
if-eqz v0, :cond_23
.line 235
invoke-virtual {v0}, Landroid/view/Surface;->release()V
const/4 v0, 0x0
.line 236
iput-object v0, p0, Lcom/yysdk/mobile/sharedcontext/h;->f:Landroid/view/Surface;
.line 240
:cond_23
iget-wide v0, p0, Lcom/yysdk/mobile/sharedcontext/h;->a:J
invoke-static {v0, v1}, Lcom/yysdk/mobile/sharedcontext/ContextManager;->a(J)Z
const-wide/16 v0, 0x0
.line 241
iput-wide v0, p0, Lcom/yysdk/mobile/sharedcontext/h;->a:J
return-void
.end method
.method public final c()I
.registers 8
.line 247
iget-boolean v0, p0, Lcom/yysdk/mobile/sharedcontext/h;->c:Z
if-eqz v0, :cond_b
.line 248
iget-wide v0, p0, Lcom/yysdk/mobile/sharedcontext/h;->a:J
invoke-static {v0, v1}, Lcom/yysdk/mobile/sharedcontext/ContextManager;->swapBuffer(J)I
move-result v0
return v0
.line 250
:cond_b
iget-boolean v0, p0, Lcom/yysdk/mobile/sharedcontext/h;->e:Z
const/16 v1, 0x3000
const-string v2, "ShareContextEglOpImpl"
if-nez v0, :cond_19
const-string v0, "[onSwapGLThread] surface lost on ui thread"
.line 251
invoke-static {v2, v0}, Lsg/bigo/log/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
return v1
.line 255
:cond_19
iget-boolean v0, p0, Lcom/yysdk/mobile/sharedcontext/h;->b:Z
if-eqz v0, :cond_24
.line 256
iget-wide v0, p0, Lcom/yysdk/mobile/sharedcontext/h;->a:J
invoke-static {v0, v1}, Lcom/yysdk/mobile/sharedcontext/ContextManager;->swapBuffer(J)I
move-result v0
return v0
.line 261
:cond_24
sget-object v0, Ljava/util/Locale;->ENGLISH:Ljava/util/Locale;
const/4 v3, 0x2
new-array v3, v3, [Ljava/lang/Object;
const/4 v4, 0x0
iget-wide v5, p0, Lcom/yysdk/mobile/sharedcontext/h;->a:J
.line 263
invoke-static {v5, v6}, Ljava/lang/Long;->valueOf(J)Ljava/lang/Long;
move-result-object v5
aput-object v5, v3, v4
const/4 v4, 0x1
iget-boolean v5, p0, Lcom/yysdk/mobile/sharedcontext/h;->b:Z
invoke-static {v5}, Ljava/lang/Boolean;->valueOf(Z)Ljava/lang/Boolean;
move-result-object v5
aput-object v5, v3, v4
const-string v4, "[onSwapGLThread] swap no context %d or no surface %b"
.line 261
invoke-static {v0, v4, v3}, Ljava/lang/String;->format(Ljava/util/Locale;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
move-result-object v0
invoke-static {v2, v0}, Lsg/bigo/log/TraceLog;->i(Ljava/lang/String;Ljava/lang/String;)I
return v1
.end method
.method public final d()V
.registers 8
.line 49
iget-boolean v0, p0, Lcom/yysdk/mobile/sharedcontext/h;->c:Z
if-eqz v0, :cond_5
return-void
:cond_5
const-string v0, "ShareContextEglOpImpl"
const-string v1, "[detachSurfaceFromContext] begin"
.line 52
invoke-static {v0, v1}, Lsg/bigo/log/TraceLog;->i(Ljava/lang/String;Ljava/lang/String;)I
const/4 v1, 0x0
.line 53
iput-boolean v1, p0, Lcom/yysdk/mobile/sharedcontext/h;->e:Z
.line 55
new-instance v2, Ljava/util/concurrent/CountDownLatch;
const/4 v3, 0x1
invoke-direct {v2, v3}, Ljava/util/concurrent/CountDownLatch;-><init>(I)V
.line 56
iget-object v3, p0, Lcom/yysdk/mobile/sharedcontext/h;->d:Lcom/yysdk/mobile/sharedcontext/d;
new-instance v4, Lcom/yysdk/mobile/sharedcontext/h$1;
invoke-direct {v4, p0, v2}, Lcom/yysdk/mobile/sharedcontext/h$1;-><init>(Lcom/yysdk/mobile/sharedcontext/h;Ljava/util/concurrent/CountDownLatch;)V
invoke-interface {v3, v4}, Lcom/yysdk/mobile/sharedcontext/d;->a(Ljava/lang/Runnable;)V
const-wide/16 v3, 0x5
.line 72
:try_start_21
sget-object v5, Ljava/util/concurrent/TimeUnit;->SECONDS:Ljava/util/concurrent/TimeUnit;
invoke-virtual {v2, v3, v4, v5}, Ljava/util/concurrent/CountDownLatch;->await(JLjava/util/concurrent/TimeUnit;)Z
:try_end_26
.catch Ljava/lang/InterruptedException; {:try_start_21 .. :try_end_26} :catch_27
goto :goto_2e
.line 75
:catch_27
invoke-static {}, Ljava/lang/Thread;->currentThread()Ljava/lang/Thread;
move-result-object v3
invoke-virtual {v3}, Ljava/lang/Thread;->interrupt()V
.line 77
:goto_2e
invoke-virtual {v2}, Ljava/util/concurrent/CountDownLatch;->getCount()J
move-result-wide v2
const-wide/16 v4, 0x0
cmp-long v6, v2, v4
if-nez v6, :cond_3e
const-string v2, "[detachSurfaceFromContext] wait ok"
.line 78
invoke-static {v0, v2}, Lsg/bigo/log/TraceLog;->i(Ljava/lang/String;Ljava/lang/String;)I
goto :goto_43
:cond_3e
const-string v2, "[detachSurfaceFromContext] wait error/timeout"
.line 80
invoke-static {v0, v2}, Lsg/bigo/log/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
.line 82
:goto_43
iput-boolean v1, p0, Lcom/yysdk/mobile/sharedcontext/h;->e:Z
const-string v1, "[detachSurfaceFromContext] end "
.line 83
invoke-static {v0, v1}, Lsg/bigo/log/TraceLog;->i(Ljava/lang/String;Ljava/lang/String;)I
return-void
.end method
.method public final e()Z
.registers 2
.line 126
iget-boolean v0, p0, Lcom/yysdk/mobile/sharedcontext/h;->c:Z
if-eqz v0, :cond_6
const/4 v0, 0x1
return v0
:cond_6
iget-boolean v0, p0, Lcom/yysdk/mobile/sharedcontext/h;->b:Z
return v0
.end method