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