ContextFactory.smali

.class public Lcom/sandboxol/blockmango/ContextFactory;
.super Ljava/lang/Object;
.source "ContextFactory.java"

# interfaces
.implements Landroid/opengl/GLSurfaceView$EGLContextFactory;
.implements Ljava/lang/Thread$UncaughtExceptionHandler;


# annotations
.annotation system Ldalvik/annotation/MemberClasses;
    value = {
        Lcom/sandboxol/blockmango/ContextFactory$ContextFactoryListener;
    }
.end annotation


# static fields
.field private static EGL_CONTEXT_CLIENT_VERSION:I = 0x3098

.field private static glVersion_2:I = 0x2

.field private static glVersion_3:I = 0x3


# instance fields
.field private listener:Lcom/sandboxol/blockmango/ContextFactory$ContextFactoryListener;


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

    return-void
.end method

.method public constructor <init>(Lcom/sandboxol/blockmango/ContextFactory$ContextFactoryListener;)V
    .registers 2

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

    .line 2
    iput-object p1, p0, Lcom/sandboxol/blockmango/ContextFactory;->listener:Lcom/sandboxol/blockmango/ContextFactory$ContextFactoryListener;

    return-void
.end method

.method public static isTodayClick(Landroid/content/Context;Ljava/lang/String;)Z
    .registers 5

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

    move-result-wide v0

    const-string v2, "yyyy.MM.dd"

    invoke-static {v0, v1, v2}, Lcom/sandboxol/common/utils/DateUtils;->timeStamp2Date(JLjava/lang/String;)Ljava/lang/String;

    move-result-object v0

    invoke-static {p0, p1}, Lcom/sandboxol/common/utils/SharedUtils;->getString(Landroid/content/Context;Ljava/lang/String;)Ljava/lang/String;

    move-result-object p0

    invoke-virtual {v0, p0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z

    move-result p0

    xor-int/lit8 p0, p0, 0x1

    return p0
.end method


# virtual methods
.method public createContext(Ljavax/microedition/khronos/egl/EGL10;Ljavax/microedition/khronos/egl/EGLDisplay;Ljavax/microedition/khronos/egl/EGLConfig;)Ljavax/microedition/khronos/egl/EGLContext;
    .registers 20

    move-object/from16 v0, p1

    move-object/from16 v1, p2

    move-object/from16 v2, p3

    .line 1
    invoke-static {}, Ljava/lang/Thread;->currentThread()Ljava/lang/Thread;

    move-result-object v3

    move-object/from16 v4, p0

    invoke-virtual {v3, v4}, Ljava/lang/Thread;->setUncaughtExceptionHandler(Ljava/lang/Thread$UncaughtExceptionHandler;)V

    const-string v3, "ContextFactory"

    .line 2
    invoke-static {v3}, Lcom/apkfuns/logutils/c;->a(Ljava/lang/String;)Lcom/apkfuns/logutils/e;

    move-result-object v3

    new-instance v5, Ljava/lang/StringBuilder;

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

    const-string v6, "creating OpenGL ES "

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

    sget v6, Lcom/sandboxol/blockmango/ContextFactory;->glVersion_3:I

    invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;

    const-string v6, " context"

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

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

    move-result-object v5

    invoke-interface {v3, v5}, Lcom/apkfuns/logutils/e;->d(Ljava/lang/Object;)V

    const/4 v3, 0x3

    .line 3
    new-array v5, v3, [I

    sget v6, Lcom/sandboxol/blockmango/ContextFactory;->EGL_CONTEXT_CLIENT_VERSION:I

    const/4 v7, 0x0

    aput v6, v5, v7

    sget v6, Lcom/sandboxol/blockmango/ContextFactory;->glVersion_3:I

    const/4 v8, 0x1

    aput v6, v5, v8

    const/16 v6, 0x3038

    const/4 v9, 0x2

    aput v6, v5, v9

    .line 4
    sget-object v10, Ljavax/microedition/khronos/egl/EGL10;->EGL_NO_CONTEXT:Ljavax/microedition/khronos/egl/EGLContext;

    invoke-interface {v0, v1, v2, v10, v5}, Ljavax/microedition/khronos/egl/EGL10;->eglCreateContext(Ljavax/microedition/khronos/egl/EGLDisplay;Ljavax/microedition/khronos/egl/EGLConfig;Ljavax/microedition/khronos/egl/EGLContext;[I)Ljavax/microedition/khronos/egl/EGLContext;

    move-result-object v5

    .line 5
    invoke-static {}, Lcom/sandboxol/common/base/app/BaseApplication;->getContext()Landroid/content/Context;

    move-result-object v10

    const-string v11, "open_gl_3_0_version_daily"

    invoke-static {v10, v11}, Lcom/sandboxol/blockmango/ContextFactory;->isTodayClick(Landroid/content/Context;Ljava/lang/String;)Z

    move-result v10

    if-eqz v10, :cond_8c

    .line 6
    invoke-static {}, Lcom/sandboxol/common/base/app/BaseApplication;->getContext()Landroid/content/Context;

    move-result-object v10

    const-string v12, "true"

    const-string v13, "false"

    if-eqz v5, :cond_65

    sget-object v14, Ljavax/microedition/khronos/egl/EGL10;->EGL_NO_CONTEXT:Ljavax/microedition/khronos/egl/EGLContext;

    if-ne v5, v14, :cond_63

    goto :goto_65

    :cond_63
    move-object v14, v12

    goto :goto_66

    :cond_65
    :goto_65
    move-object v14, v13

    :goto_66
    const-string v15, "open_gl_is_3.0"

    invoke-static {v10, v15, v14}, Lcom/sandboxol/common/interfaces/ReportDataAdapter;->onEvent(Landroid/content/Context;Ljava/lang/String;Ljava/lang/String;)V

    .line 7
    invoke-static {}, Lcom/sandboxol/common/base/app/BaseApplication;->getContext()Landroid/content/Context;

    move-result-object v10

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

    move-result-wide v14

    const-string v6, "yyyy.MM.dd"

    invoke-static {v14, v15, v6}, Lcom/sandboxol/common/utils/DateUtils;->timeStamp2Date(JLjava/lang/String;)Ljava/lang/String;

    move-result-object v6

    invoke-static {v10, v11, v6}, Lcom/sandboxol/common/utils/SharedUtils;->putString(Landroid/content/Context;Ljava/lang/String;Ljava/lang/String;)V

    const-string v6, "OpenGLVersion"

    .line 8
    invoke-static {v6}, Lcom/apkfuns/logutils/c;->a(Ljava/lang/String;)Lcom/apkfuns/logutils/e;

    move-result-object v6

    if-eqz v5, :cond_88

    sget-object v10, Ljavax/microedition/khronos/egl/EGL10;->EGL_NO_CONTEXT:Ljavax/microedition/khronos/egl/EGLContext;

    if-ne v5, v10, :cond_89

    :cond_88
    move-object v12, v13

    :cond_89
    invoke-interface {v6, v12}, Lcom/apkfuns/logutils/e;->d(Ljava/lang/Object;)V

    :cond_8c
    if-eqz v5, :cond_92

    .line 9
    sget-object v6, Ljavax/microedition/khronos/egl/EGL10;->EGL_NO_CONTEXT:Ljavax/microedition/khronos/egl/EGLContext;

    if-ne v5, v6, :cond_a6

    .line 10
    :cond_92
    new-array v3, v3, [I

    sget v5, Lcom/sandboxol/blockmango/ContextFactory;->EGL_CONTEXT_CLIENT_VERSION:I

    aput v5, v3, v7

    sget v5, Lcom/sandboxol/blockmango/ContextFactory;->glVersion_2:I

    aput v5, v3, v8

    const/16 v5, 0x3038

    aput v5, v3, v9

    .line 11
    sget-object v5, Ljavax/microedition/khronos/egl/EGL10;->EGL_NO_CONTEXT:Ljavax/microedition/khronos/egl/EGLContext;

    invoke-interface {v0, v1, v2, v5, v3}, Ljavax/microedition/khronos/egl/EGL10;->eglCreateContext(Ljavax/microedition/khronos/egl/EGLDisplay;Ljavax/microedition/khronos/egl/EGLConfig;Ljavax/microedition/khronos/egl/EGLContext;[I)Ljavax/microedition/khronos/egl/EGLContext;

    move-result-object v5

    :cond_a6
    return-object v5
.end method

.method public destroyContext(Ljavax/microedition/khronos/egl/EGL10;Ljavax/microedition/khronos/egl/EGLDisplay;Ljavax/microedition/khronos/egl/EGLContext;)V
    .registers 4

    return-void
.end method

.method public uncaughtException(Ljava/lang/Thread;Ljava/lang/Throwable;)V
    .registers 5

    .line 1
    iget-object p1, p0, Lcom/sandboxol/blockmango/ContextFactory;->listener:Lcom/sandboxol/blockmango/ContextFactory$ContextFactoryListener;

    if-eqz p1, :cond_7

    .line 2
    invoke-interface {p1}, Lcom/sandboxol/blockmango/ContextFactory$ContextFactoryListener;->onError()V

    :cond_7
    const-string p1, "ContextFactory"

    .line 3
    invoke-static {p1}, Lcom/apkfuns/logutils/c;->a(Ljava/lang/String;)Lcom/apkfuns/logutils/e;

    move-result-object p1

    new-instance v0, Ljava/lang/StringBuilder;

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

    const-string v1, "creating OpenGL ES error: "

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

    invoke-virtual {p2}, Ljava/lang/Throwable;->getMessage()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

    invoke-interface {p1, v0}, Lcom/apkfuns/logutils/e;->d(Ljava/lang/Object;)V

    .line 4
    invoke-virtual {p2}, Ljava/lang/Throwable;->printStackTrace()V

    return-void
.end method