a.smali

.class public final Lcom/imo/android/imoim/rooms/sharescreen/capture/a;
.super Ljava/lang/Object;
.source "SourceFile"

# interfaces
.implements Lcom/imo/android/imoim/rooms/sharescreen/capture/b;


# annotations
.annotation system Ldalvik/annotation/MemberClasses;
    value = {
        Lcom/imo/android/imoim/rooms/sharescreen/capture/a$a;,
        Lcom/imo/android/imoim/rooms/sharescreen/capture/a$b;
    }
.end annotation


# instance fields
.field final a:Ljava/lang/Object;

.field b:Landroid/media/ImageReader;

.field c:[I

.field private d:Landroid/content/Intent;

.field private e:Landroid/hardware/display/VirtualDisplay;

.field private f:Landroid/media/projection/MediaProjection;

.field private g:Landroid/os/HandlerThread;


# direct methods
.method public constructor <init>()V
    .registers 2

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

    .line 33
    new-instance v0, Ljava/lang/Object;

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

    iput-object v0, p0, Lcom/imo/android/imoim/rooms/sharescreen/capture/a;->a:Ljava/lang/Object;

    return-void
.end method

.method private final f()Z
    .registers 18

    move-object/from16 v1, p0

    .line 71
    iget-object v0, v1, Lcom/imo/android/imoim/rooms/sharescreen/capture/a;->f:Landroid/media/projection/MediaProjection;

    const/4 v2, 0x1

    if-eqz v0, :cond_f

    const-string v0, "AndroidScreenCapture"

    const-string v3, "buildScreenCapture: already build"

    .line 3071
    invoke-static {v0, v3}, Lcom/imo/android/imoim/util/bt;->d(Ljava/lang/String;Ljava/lang/String;)V

    return v2

    .line 3129
    :cond_f
    new-instance v0, Lcom/imo/android/imoim/rooms/sharescreen/capture/a$a;

    invoke-direct {v0}, Lcom/imo/android/imoim/rooms/sharescreen/capture/a$a;-><init>()V

    const/16 v3, 0x3c0

    .line 3160
    iput v3, v0, Lcom/imo/android/imoim/rooms/sharescreen/capture/a$a;->a:I

    const/16 v3, 0x2d0

    .line 3161
    iput v3, v0, Lcom/imo/android/imoim/rooms/sharescreen/capture/a$a;->b:I

    .line 3132
    new-instance v3, Landroid/util/DisplayMetrics;

    invoke-direct {v3}, Landroid/util/DisplayMetrics;-><init>()V

    .line 3133
    invoke-static {}, Lcom/imo/android/imoim/IMO;->a()Lcom/imo/android/imoim/IMO;

    move-result-object v4

    const-string v5, "window"

    invoke-virtual {v4, v5}, Lcom/imo/android/imoim/IMO;->getSystemService(Ljava/lang/String;)Ljava/lang/Object;

    move-result-object v4

    if-eqz v4, :cond_e3

    check-cast v4, Landroid/view/WindowManager;

    .line 3134
    invoke-interface {v4}, Landroid/view/WindowManager;->getDefaultDisplay()Landroid/view/Display;

    move-result-object v4

    invoke-virtual {v4, v3}, Landroid/view/Display;->getRealMetrics(Landroid/util/DisplayMetrics;)V

    .line 3135
    iget v3, v3, Landroid/util/DisplayMetrics;->densityDpi:I

    .line 3163
    iput v3, v0, Lcom/imo/android/imoim/rooms/sharescreen/capture/a$a;->d:I

    .line 4162
    iput v2, v0, Lcom/imo/android/imoim/rooms/sharescreen/capture/a$a;->c:I

    .line 77
    invoke-static {v0}, Ljava/lang/String;->valueOf(Ljava/lang/Object;)Ljava/lang/String;

    move-result-object v3

    const-string v4, "buildScreenCapture: params="

    invoke-virtual {v4, v3}, Ljava/lang/String;->concat(Ljava/lang/String;)Ljava/lang/String;

    move-result-object v3

    const-string v4, "AndroidScreenCapture"

    .line 5071
    invoke-static {v4, v3}, Lcom/imo/android/imoim/util/bt;->d(Ljava/lang/String;Ljava/lang/String;)V

    .line 79
    iget-object v3, v1, Lcom/imo/android/imoim/rooms/sharescreen/capture/a;->a:Ljava/lang/Object;

    monitor-enter v3

    .line 80
    :try_start_4e
    invoke-static {}, Lcom/imo/android/imoim/IMO;->a()Lcom/imo/android/imoim/IMO;

    move-result-object v4

    const-string v5, "media_projection"

    invoke-virtual {v4, v5}, Lcom/imo/android/imoim/IMO;->getSystemService(Ljava/lang/String;)Ljava/lang/Object;

    move-result-object v4

    if-eqz v4, :cond_d8

    check-cast v4, Landroid/media/projection/MediaProjectionManager;

    .line 81
    iget-object v5, v1, Lcom/imo/android/imoim/rooms/sharescreen/capture/a;->d:Landroid/content/Intent;

    if-eqz v5, :cond_67

    const/4 v6, -0x1

    .line 83
    invoke-virtual {v4, v6, v5}, Landroid/media/projection/MediaProjectionManager;->getMediaProjection(ILandroid/content/Intent;)Landroid/media/projection/MediaProjection;

    move-result-object v4

    iput-object v4, v1, Lcom/imo/android/imoim/rooms/sharescreen/capture/a;->f:Landroid/media/projection/MediaProjection;

    .line 85
    :cond_67
    iget-object v4, v1, Lcom/imo/android/imoim/rooms/sharescreen/capture/a;->f:Landroid/media/projection/MediaProjection;

    const/4 v5, 0x0

    if-nez v4, :cond_75

    const-string v0, "AndroidScreenCapture"

    const-string v2, "buildScreenCapture: mediaProjection is null!"

    .line 6071
    invoke-static {v0, v2}, Lcom/imo/android/imoim/util/bt;->d(Ljava/lang/String;Ljava/lang/String;)V
    :try_end_73
    .catchall {:try_start_4e .. :try_end_73} :catchall_e0

    .line 87
    monitor-exit v3

    return v5

    .line 90
    :cond_75
    :try_start_75
    iget-object v4, v1, Lcom/imo/android/imoim/rooms/sharescreen/capture/a;->g:Landroid/os/HandlerThread;

    if-nez v4, :cond_82

    const-string v0, "AndroidScreenCapture"

    const-string v2, "buildScreenCapture: thread is null"

    .line 7071
    invoke-static {v0, v2}, Lcom/imo/android/imoim/util/bt;->d(Ljava/lang/String;Ljava/lang/String;)V
    :try_end_80
    .catchall {:try_start_75 .. :try_end_80} :catchall_e0

    .line 92
    monitor-exit v3

    return v5

    .line 7160
    :cond_82
    :try_start_82
    iget v4, v0, Lcom/imo/android/imoim/rooms/sharescreen/capture/a$a;->a:I

    .line 7161
    iget v5, v0, Lcom/imo/android/imoim/rooms/sharescreen/capture/a$a;->b:I

    .line 7162
    iget v6, v0, Lcom/imo/android/imoim/rooms/sharescreen/capture/a$a;->c:I

    const/16 v7, 0xa

    .line 95
    invoke-static {v4, v5, v6, v7}, Landroid/media/ImageReader;->newInstance(IIII)Landroid/media/ImageReader;

    move-result-object v4

    iput-object v4, v1, Lcom/imo/android/imoim/rooms/sharescreen/capture/a;->b:Landroid/media/ImageReader;

    if-nez v4, :cond_95

    .line 96
    invoke-static {}, Lkotlin/f/b/o;->a()V

    :cond_95
    new-instance v5, Lcom/imo/android/imoim/rooms/sharescreen/capture/a$b;

    invoke-direct {v5, v1}, Lcom/imo/android/imoim/rooms/sharescreen/capture/a$b;-><init>(Lcom/imo/android/imoim/rooms/sharescreen/capture/a;)V

    check-cast v5, Landroid/media/ImageReader$OnImageAvailableListener;

    new-instance v6, Landroid/os/Handler;

    iget-object v7, v1, Lcom/imo/android/imoim/rooms/sharescreen/capture/a;->g:Landroid/os/HandlerThread;

    if-nez v7, :cond_a5

    invoke-static {}, Lkotlin/f/b/o;->a()V

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

    move-result-object v7

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

    invoke-virtual {v4, v5, v6}, Landroid/media/ImageReader;->setOnImageAvailableListener(Landroid/media/ImageReader$OnImageAvailableListener;Landroid/os/Handler;)V

    .line 97
    iget-object v8, v1, Lcom/imo/android/imoim/rooms/sharescreen/capture/a;->f:Landroid/media/projection/MediaProjection;

    if-nez v8, :cond_b6

    invoke-static {}, Lkotlin/f/b/o;->a()V

    :cond_b6
    const-string v9, "AndroidScreenCapture"

    .line 8160
    iget v10, v0, Lcom/imo/android/imoim/rooms/sharescreen/capture/a$a;->a:I

    .line 8161
    iget v11, v0, Lcom/imo/android/imoim/rooms/sharescreen/capture/a$a;->b:I

    .line 8163
    iget v12, v0, Lcom/imo/android/imoim/rooms/sharescreen/capture/a$a;->d:I

    const/16 v13, 0x10

    .line 98
    iget-object v0, v1, Lcom/imo/android/imoim/rooms/sharescreen/capture/a;->b:Landroid/media/ImageReader;

    if-nez v0, :cond_c7

    invoke-static {}, Lkotlin/f/b/o;->a()V

    :cond_c7
    invoke-virtual {v0}, Landroid/media/ImageReader;->getSurface()Landroid/view/Surface;

    move-result-object v14

    const/4 v15, 0x0

    const/16 v16, 0x0

    .line 97
    invoke-virtual/range {v8 .. v16}, Landroid/media/projection/MediaProjection;->createVirtualDisplay(Ljava/lang/String;IIIILandroid/view/Surface;Landroid/hardware/display/VirtualDisplay$Callback;Landroid/os/Handler;)Landroid/hardware/display/VirtualDisplay;

    move-result-object v0

    iput-object v0, v1, Lcom/imo/android/imoim/rooms/sharescreen/capture/a;->e:Landroid/hardware/display/VirtualDisplay;

    .line 99
    sget-object v0, Lkotlin/w;->a:Lkotlin/w;
    :try_end_d6
    .catchall {:try_start_82 .. :try_end_d6} :catchall_e0

    .line 79
    monitor-exit v3

    return v2

    .line 80
    :cond_d8
    :try_start_d8
    new-instance v0, Lkotlin/TypeCastException;

    const-string v2, "null cannot be cast to non-null type android.media.projection.MediaProjectionManager"

    invoke-direct {v0, v2}, Lkotlin/TypeCastException;-><init>(Ljava/lang/String;)V

    throw v0
    :try_end_e0
    .catchall {:try_start_d8 .. :try_end_e0} :catchall_e0

    :catchall_e0
    move-exception v0

    .line 79
    monitor-exit v3

    throw v0

    .line 3133
    :cond_e3
    new-instance v0, Lkotlin/TypeCastException;

    const-string v2, "null cannot be cast to non-null type android.view.WindowManager"

    invoke-direct {v0, v2}, Lkotlin/TypeCastException;-><init>(Ljava/lang/String;)V

    throw v0
.end method

.method private final g()V
    .registers 3

    .line 105
    new-instance v0, Ljava/lang/StringBuilder;

    const-string v1, "releaseScreenCapture: "

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

    iget-object v1, p0, Lcom/imo/android/imoim/rooms/sharescreen/capture/a;->e:Landroid/hardware/display/VirtualDisplay;

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

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

    move-result-object v0

    const-string v1, "AndroidScreenCapture"

    .line 9071
    invoke-static {v1, v0}, Lcom/imo/android/imoim/util/bt;->d(Ljava/lang/String;Ljava/lang/String;)V

    .line 106
    iget-object v0, p0, Lcom/imo/android/imoim/rooms/sharescreen/capture/a;->e:Landroid/hardware/display/VirtualDisplay;

    if-nez v0, :cond_21

    const-string v0, "AndroidScreenCapture"

    const-string v1, "releaseScreenCapture: already release"

    .line 10071
    invoke-static {v0, v1}, Lcom/imo/android/imoim/util/bt;->d(Ljava/lang/String;Ljava/lang/String;)V

    return-void

    .line 111
    :cond_21
    iget-object v0, p0, Lcom/imo/android/imoim/rooms/sharescreen/capture/a;->a:Ljava/lang/Object;

    monitor-enter v0

    .line 112
    :try_start_24
    iget-object v1, p0, Lcom/imo/android/imoim/rooms/sharescreen/capture/a;->e:Landroid/hardware/display/VirtualDisplay;

    if-eqz v1, :cond_32

    .line 113
    iget-object v1, p0, Lcom/imo/android/imoim/rooms/sharescreen/capture/a;->e:Landroid/hardware/display/VirtualDisplay;

    if-nez v1, :cond_2f

    invoke-static {}, Lkotlin/f/b/o;->a()V

    :cond_2f
    invoke-virtual {v1}, Landroid/hardware/display/VirtualDisplay;->release()V

    .line 115
    :cond_32
    iget-object v1, p0, Lcom/imo/android/imoim/rooms/sharescreen/capture/a;->f:Landroid/media/projection/MediaProjection;

    if-eqz v1, :cond_40

    .line 116
    iget-object v1, p0, Lcom/imo/android/imoim/rooms/sharescreen/capture/a;->f:Landroid/media/projection/MediaProjection;

    if-nez v1, :cond_3d

    invoke-static {}, Lkotlin/f/b/o;->a()V

    :cond_3d
    invoke-virtual {v1}, Landroid/media/projection/MediaProjection;->stop()V

    .line 118
    :cond_40
    iget-object v1, p0, Lcom/imo/android/imoim/rooms/sharescreen/capture/a;->b:Landroid/media/ImageReader;

    if-eqz v1, :cond_4e

    .line 119
    iget-object v1, p0, Lcom/imo/android/imoim/rooms/sharescreen/capture/a;->b:Landroid/media/ImageReader;

    if-nez v1, :cond_4b

    invoke-static {}, Lkotlin/f/b/o;->a()V

    :cond_4b
    invoke-virtual {v1}, Landroid/media/ImageReader;->close()V

    :cond_4e
    const/4 v1, 0x0

    .line 121
    iput-object v1, p0, Lcom/imo/android/imoim/rooms/sharescreen/capture/a;->e:Landroid/hardware/display/VirtualDisplay;

    .line 122
    iput-object v1, p0, Lcom/imo/android/imoim/rooms/sharescreen/capture/a;->f:Landroid/media/projection/MediaProjection;

    .line 123
    iput-object v1, p0, Lcom/imo/android/imoim/rooms/sharescreen/capture/a;->b:Landroid/media/ImageReader;

    .line 124
    iput-object v1, p0, Lcom/imo/android/imoim/rooms/sharescreen/capture/a;->c:[I

    .line 125
    sget-object v1, Lkotlin/w;->a:Lkotlin/w;
    :try_end_59
    .catchall {:try_start_24 .. :try_end_59} :catchall_5b

    .line 111
    monitor-exit v0

    return-void

    :catchall_5b
    move-exception v1

    monitor-exit v0

    throw v1
.end method


# virtual methods
.method public final a(Landroid/content/Intent;)V
    .registers 4

    const-string v0, "resultIntent"

    invoke-static {p1, v0}, Lkotlin/f/b/o;->b(Ljava/lang/Object;Ljava/lang/String;)V

    .line 141
    new-instance v0, Ljava/lang/StringBuilder;

    const-string v1, "init: unInit="

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

    iget-object v1, p0, Lcom/imo/android/imoim/rooms/sharescreen/capture/a;->g:Landroid/os/HandlerThread;

    if-nez v1, :cond_12

    const/4 v1, 0x1

    goto :goto_13

    :cond_12
    const/4 v1, 0x0

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

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

    move-result-object v0

    const-string v1, "AndroidScreenCapture"

    .line 11071
    invoke-static {v1, v0}, Lcom/imo/android/imoim/util/bt;->d(Ljava/lang/String;Ljava/lang/String;)V

    .line 142
    iget-object v0, p0, Lcom/imo/android/imoim/rooms/sharescreen/capture/a;->g:Landroid/os/HandlerThread;

    if-nez v0, :cond_34

    .line 143
    iput-object p1, p0, Lcom/imo/android/imoim/rooms/sharescreen/capture/a;->d:Landroid/content/Intent;

    .line 144
    new-instance p1, Landroid/os/HandlerThread;

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

    iput-object p1, p0, Lcom/imo/android/imoim/rooms/sharescreen/capture/a;->g:Landroid/os/HandlerThread;

    if-nez p1, :cond_31

    .line 145
    invoke-static {}, Lkotlin/f/b/o;->a()V

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

    :cond_34
    return-void
.end method

.method public final a()Z
    .registers 3

    const-string v0, "AndroidScreenCapture"

    const-string v1, "createScreenCapture: "

    .line 1071
    invoke-static {v0, v1}, Lcom/imo/android/imoim/util/bt;->d(Ljava/lang/String;Ljava/lang/String;)V

    .line 46
    invoke-direct {p0}, Lcom/imo/android/imoim/rooms/sharescreen/capture/a;->f()Z

    move-result v0

    if-eqz v0, :cond_f

    const/4 v0, 0x1

    return v0

    :cond_f
    const/4 v0, 0x0

    return v0
.end method

.method public final b()V
    .registers 3

    const-string v0, "AndroidScreenCapture"

    const-string v1, "destroyScreenCapture: "

    .line 2071
    invoke-static {v0, v1}, Lcom/imo/android/imoim/util/bt;->d(Ljava/lang/String;Ljava/lang/String;)V

    .line 55
    invoke-direct {p0}, Lcom/imo/android/imoim/rooms/sharescreen/capture/a;->g()V

    const/4 v0, 0x0

    .line 56
    iput-object v0, p0, Lcom/imo/android/imoim/rooms/sharescreen/capture/a;->d:Landroid/content/Intent;

    .line 57
    iget-object v1, p0, Lcom/imo/android/imoim/rooms/sharescreen/capture/a;->g:Landroid/os/HandlerThread;

    if-eqz v1, :cond_14

    .line 58
    invoke-virtual {v1}, Landroid/os/HandlerThread;->quitSafely()Z

    .line 60
    :cond_14
    iput-object v0, p0, Lcom/imo/android/imoim/rooms/sharescreen/capture/a;->g:Landroid/os/HandlerThread;

    return-void
.end method

.method public final c()Z
    .registers 3

    .line 65
    iget-object v0, p0, Lcom/imo/android/imoim/rooms/sharescreen/capture/a;->a:Ljava/lang/Object;

    monitor-enter v0

    .line 66
    :try_start_3
    iget-object v1, p0, Lcom/imo/android/imoim/rooms/sharescreen/capture/a;->f:Landroid/media/projection/MediaProjection;
    :try_end_5
    .catchall {:try_sta