remove some trash
This commit is contained in:
@@ -1,13 +1,3 @@
|
||||
/*
|
||||
* Decompiled with CFR 0.152.
|
||||
*
|
||||
* Could not load the following classes:
|
||||
* android.content.ComponentName
|
||||
* android.content.Context
|
||||
* android.content.Intent
|
||||
* android.content.ServiceConnection
|
||||
* android.os.IBinder
|
||||
*/
|
||||
package com.bda.controller;
|
||||
|
||||
import android.content.ComponentName;
|
||||
@@ -15,6 +5,7 @@ import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.content.ServiceConnection;
|
||||
import android.os.IBinder;
|
||||
import android.util.Log;
|
||||
|
||||
abstract class BaseServiceConnection<TService> implements ServiceConnection {
|
||||
final Context mContext;
|
||||
@@ -36,13 +27,11 @@ abstract class BaseServiceConnection<TService> implements ServiceConnection {
|
||||
abstract TService getServiceInterface(IBinder var1);
|
||||
|
||||
public boolean init() {
|
||||
if (this.mIsBound) return this.mIsBound;
|
||||
Intent intent = new Intent(this.getServiceIntentName());
|
||||
//TODO работает только при родной версии target sdk
|
||||
//this.mContext.startService(intent);
|
||||
//this.mIsBound = this.mContext.bindService(intent, (ServiceConnection)this, 1);
|
||||
//return this.mIsBound;
|
||||
return true;
|
||||
if (this.mIsBound) return true;
|
||||
Intent intent = new Intent(mContext, IControllerService.class);
|
||||
this.mContext.startService(intent);
|
||||
this.mIsBound = this.mContext.bindService(intent, (ServiceConnection)this, 1);
|
||||
return this.mIsBound;
|
||||
}
|
||||
|
||||
public void onServiceConnected(ComponentName componentName, IBinder iBinder) {
|
||||
|
||||
@@ -6,8 +6,7 @@ import android.os.IInterface;
|
||||
import android.os.Parcel;
|
||||
import android.os.RemoteException;
|
||||
|
||||
interface IControllerService
|
||||
extends IInterface {
|
||||
interface IControllerService extends IInterface {
|
||||
float getAxisValue(int var1, int var2) throws RemoteException;
|
||||
|
||||
int getInfo(int var1) throws RemoteException;
|
||||
|
||||
@@ -23,10 +23,12 @@ import androidx.lifecycle.LifecycleRegistry
|
||||
|
||||
class ComposeFrameLayout @JvmOverloads constructor(
|
||||
context: Context, attrs: AttributeSet? = null,
|
||||
defStyleAttr: Int = 0
|
||||
defStyleAttr: Int = 0,
|
||||
gameGLSurfaceView: GameGLSurfaceView
|
||||
) : FrameLayout(context, attrs, defStyleAttr) {
|
||||
|
||||
init {
|
||||
addView(gameGLSurfaceView)
|
||||
addView(
|
||||
ComposeView(context).apply {
|
||||
setContent {
|
||||
|
||||
@@ -4,26 +4,26 @@ import android.app.AlertDialog
|
||||
import android.content.DialogInterface
|
||||
import android.content.Intent
|
||||
import android.content.pm.ActivityInfo
|
||||
import android.graphics.BitmapFactory
|
||||
import android.hardware.SensorManager
|
||||
import android.media.AudioManager
|
||||
import android.opengl.GLES20
|
||||
import android.opengl.GLUtils
|
||||
import android.os.Build
|
||||
import android.os.Bundle
|
||||
import android.os.Handler
|
||||
import android.os.PowerManager
|
||||
import android.os.PowerManager.WakeLock
|
||||
import android.os.Process
|
||||
import android.util.DisplayMetrics
|
||||
import android.util.Log
|
||||
import android.view.KeyEvent
|
||||
import android.view.ViewParent
|
||||
import android.view.inputmethod.InputMethodManager
|
||||
import android.widget.FrameLayout
|
||||
import androidx.activity.ComponentActivity
|
||||
import androidx.lifecycle.Lifecycle
|
||||
import com.ea.EAIO.EAIO
|
||||
import com.ea.EAMIO.StorageDirectory
|
||||
import com.ea.easp.EASPHandler
|
||||
import com.ea.games.nfs13_na.BuildConfig
|
||||
import com.ea.games.nfs13_na.R
|
||||
import com.ea.nimble.ApplicationLifecycle
|
||||
import java.io.BufferedReader
|
||||
import java.io.File
|
||||
@@ -36,6 +36,7 @@ import kotlin.math.min
|
||||
import kotlin.math.sqrt
|
||||
import kotlin.system.exitProcess
|
||||
|
||||
|
||||
//TODO при заходе в магазин - вылет
|
||||
class GameActivity : ComponentActivity(), DrawFrameListener {
|
||||
|
||||
@@ -44,20 +45,17 @@ class GameActivity : ComponentActivity(), DrawFrameListener {
|
||||
System.loadLibrary("app")
|
||||
}
|
||||
|
||||
private var laststate = 0
|
||||
private var lifecycleOldSystem = 0
|
||||
private var easpHandler: EASPHandler? = null
|
||||
private var splash: SplashScreen? = null
|
||||
private var gameRenderer: GameRenderer? = null
|
||||
var runLoop: RunLoop? = null
|
||||
var gameGLSurfaceView: GameGLSurfaceView? = null
|
||||
var accelerometer: Accelerometer? = null
|
||||
private var handler: Handler? = null
|
||||
private var mFrameLayout: FrameLayout? = null
|
||||
private var mWakeLock: WakeLock? = null
|
||||
private var splashDelay: Long = 0
|
||||
private var splashTimer: Long = 0
|
||||
|
||||
private lateinit var easpHandler: EASPHandler
|
||||
private lateinit var gameRenderer: GameRenderer
|
||||
lateinit var runLoop: RunLoop
|
||||
private lateinit var gameGLSurfaceView: GameGLSurfaceView
|
||||
private lateinit var accelerometer: Accelerometer
|
||||
private lateinit var mWakeLock: WakeLock
|
||||
private lateinit var mAudioManager: AudioManager
|
||||
|
||||
companion object {
|
||||
|
||||
const val STATE_RESTORE_CONTEXT = 7
|
||||
@@ -67,8 +65,6 @@ class GameActivity : ComponentActivity(), DrawFrameListener {
|
||||
@JvmField
|
||||
var state = 0
|
||||
|
||||
private var mAudioManager: AudioManager? = null
|
||||
|
||||
//В нативном коде эти методы помечны как статические
|
||||
@JvmStatic
|
||||
fun GetDeviceName() = Build.MODEL
|
||||
@@ -83,17 +79,20 @@ class GameActivity : ComponentActivity(), DrawFrameListener {
|
||||
val osVersion = Build.VERSION.RELEASE
|
||||
}
|
||||
|
||||
//Метод вызвывется из нативного кода поэтому нужно его существование
|
||||
//Метод вызвывется из нативного кода поэтому нужно их существование
|
||||
fun installWallpaper() {}
|
||||
fun needInstallWallpaper() = false
|
||||
fun openURL(str: String?) = Log.d("OpenURL", str)
|
||||
fun openURLinBrowser(str: String?) = Log.d("OpenURLinBrowser", str)
|
||||
fun openURL(str: String) = Log.d("OpenURL", str)
|
||||
fun openURLinBrowser(str: String) = Log.d("OpenURLinBrowser", str)
|
||||
fun getDisplayMetrics() = resources.displayMetrics
|
||||
fun GetViewRoot() = window.decorView.getRootView().parent
|
||||
fun CallGC() {
|
||||
Log.d(this.localClassName, "Call garbage collector")
|
||||
System.gc()
|
||||
}
|
||||
fun getGameGLSurfaceView() = gameGLSurfaceView
|
||||
fun getAccelerometer() = accelerometer
|
||||
|
||||
|
||||
private fun ForceHideVirtualKeyboard() {
|
||||
val currentFocus = currentFocus
|
||||
@@ -109,13 +108,10 @@ class GameActivity : ComponentActivity(), DrawFrameListener {
|
||||
|
||||
private fun wakeLockAcquire() {
|
||||
val powerManager = getSystemService(POWER_SERVICE) as PowerManager
|
||||
if (mWakeLock == null) {
|
||||
mWakeLock = powerManager.newWakeLock(PowerManager.SCREEN_BRIGHT_WAKE_LOCK, this.localClassName)
|
||||
}
|
||||
|
||||
if (!mWakeLock!!.isHeld) {
|
||||
mWakeLock = powerManager.newWakeLock(10, localClassName)
|
||||
if (!mWakeLock.isHeld) {
|
||||
try {
|
||||
mWakeLock!!.acquire(10*60*1000L /*10 minutes*/)
|
||||
mWakeLock.acquire(10*60*1000L /*10 minutes*/)
|
||||
} catch (e: SecurityException) {
|
||||
Log.w(this.localClassName, "Missing WAKE_LOCK permission.")
|
||||
}
|
||||
@@ -145,7 +141,7 @@ class GameActivity : ComponentActivity(), DrawFrameListener {
|
||||
finish()
|
||||
}
|
||||
}
|
||||
handler!!.postDelayed({ dialog.show() }, 20)
|
||||
dialog.show()
|
||||
}
|
||||
|
||||
fun calcPerformanceScore(
|
||||
@@ -294,70 +290,64 @@ class GameActivity : ComponentActivity(), DrawFrameListener {
|
||||
}
|
||||
|
||||
public override fun onCreate(bundle: Bundle?) {
|
||||
Log.i("Debug", "onCreate")
|
||||
Log.setEnable(true)
|
||||
Log.i(this.localClassName, "onCreate")
|
||||
Log.i(this.localClassName, "GameActivity.state = $state")
|
||||
super.onCreate(bundle)
|
||||
//instance = this
|
||||
if (lifecycle.currentState == Lifecycle.State.DESTROYED) {
|
||||
Log.w(this.localClassName, "onCreate called on destroyed app, finishing")
|
||||
|
||||
val className = this.localClassName
|
||||
val currentState = lifecycle.currentState
|
||||
|
||||
Log.i(className, "onCreate")
|
||||
Log.i(className, "GameActivity.state = $state")
|
||||
|
||||
if (currentState == Lifecycle.State.DESTROYED) {
|
||||
Log.w(className, "onCreate called on destroyed app, finishing")
|
||||
finish()
|
||||
} else if (lifecycle.currentState >= Lifecycle.State.CREATED) {
|
||||
Log.w(
|
||||
this.localClassName,
|
||||
"onCreate ignored, lifecycle is already ${lifecycle.currentState}"
|
||||
)
|
||||
} else {
|
||||
handler = Handler()
|
||||
val window = window
|
||||
//window.setFlags(1024, 1024)
|
||||
requestedOrientation = ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE
|
||||
requestWindowFeature(1)
|
||||
Log.d("Model", Build.MODEL)
|
||||
mAudioManager = getSystemService(AUDIO_SERVICE) as AudioManager
|
||||
val sensorManager = getSystemService(SENSOR_SERVICE) as SensorManager
|
||||
val defaultSensor = sensorManager.getDefaultSensor(1)
|
||||
val rotation = getWindow().windowManager.defaultDisplay.rotation
|
||||
if (defaultSensor != null) {
|
||||
accelerometer = Accelerometer(sensorManager, defaultSensor, rotation)
|
||||
}
|
||||
gameGLSurfaceView = GameGLSurfaceView(this)
|
||||
gameRenderer = GameRenderer(this)
|
||||
gameRenderer!!.setDrawFrameListener(this)
|
||||
gameGLSurfaceView!!.setRenderer(gameRenderer)
|
||||
runLoop = RunLoop(gameGLSurfaceView!!)
|
||||
mFrameLayout = FrameLayout(this)
|
||||
mFrameLayout!!.addView(gameGLSurfaceView)
|
||||
val view = ComposeFrameLayout(this)
|
||||
mFrameLayout!!.addView(view)
|
||||
setContentView(mFrameLayout!!)
|
||||
Log.d(this.localClassName, "Init EAIO/EAMIO")
|
||||
EAIO.Startup(this)
|
||||
StorageDirectory.Startup()
|
||||
if (easpHandler == null) {
|
||||
Log.d(this.localClassName, "Init EASPHandler")
|
||||
easpHandler = EASPHandler(this, mFrameLayout!!, gameGLSurfaceView!!)
|
||||
easpHandler!!.onCreate()
|
||||
}
|
||||
ApplicationLifecycle.onActivityCreate(bundle, this)
|
||||
Log.d(this.localClassName, "nativeOnCreate")
|
||||
nativeOnCreate()
|
||||
return
|
||||
}
|
||||
|
||||
if (currentState >= Lifecycle.State.CREATED) {
|
||||
Log.w(className, "onCreate ignored, lifecycle is already $currentState")
|
||||
return
|
||||
}
|
||||
|
||||
requestedOrientation = ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE
|
||||
requestWindowFeature(1)
|
||||
Log.d("Model", Build.MODEL)
|
||||
mAudioManager = getSystemService(AUDIO_SERVICE) as AudioManager
|
||||
|
||||
val sensorManager = getSystemService(SENSOR_SERVICE) as SensorManager
|
||||
val defaultSensor = sensorManager.getDefaultSensor(1)
|
||||
val rotation = window.windowManager.defaultDisplay.rotation
|
||||
|
||||
accelerometer = Accelerometer(sensorManager, defaultSensor, rotation)
|
||||
|
||||
gameGLSurfaceView = GameGLSurfaceView(this)
|
||||
gameRenderer = GameRenderer(this)
|
||||
gameRenderer.setDrawFrameListener(this)
|
||||
gameGLSurfaceView.setRenderer(gameRenderer)
|
||||
runLoop = RunLoop(gameGLSurfaceView)
|
||||
|
||||
val frameLayout = ComposeFrameLayout(this, gameGLSurfaceView = gameGLSurfaceView)
|
||||
setContentView(frameLayout)
|
||||
|
||||
Log.d(className, "Init EAIO/EAMIO")
|
||||
EAIO.Startup(this)
|
||||
StorageDirectory.Startup()
|
||||
|
||||
Log.d(className, "Init EASPHandler")
|
||||
easpHandler = EASPHandler(this, frameLayout, gameGLSurfaceView)
|
||||
easpHandler.onCreate()
|
||||
|
||||
ApplicationLifecycle.onActivityCreate(bundle, this)
|
||||
Log.d(className, "nativeOnCreate")
|
||||
nativeOnCreate()
|
||||
}
|
||||
|
||||
|
||||
public override fun onDestroy() {
|
||||
Log.i("Debug", "onDestroy")
|
||||
Log.i(this.localClassName, "onDestroy")
|
||||
super.onDestroy()
|
||||
if (lifecycleOldSystem >= 5) {
|
||||
Log.w(
|
||||
this.localClassName,
|
||||
"onDestroy ignored, lifecycle is already ${lifecycle.currentState}"
|
||||
)
|
||||
return
|
||||
}
|
||||
easpHandler!!.onDestroy()
|
||||
easpHandler.onDestroy()
|
||||
if (state == 8) {
|
||||
ApplicationLifecycle.onActivityDestroy(this)
|
||||
nativeOnDestroy()
|
||||
@@ -368,17 +358,13 @@ class GameActivity : ComponentActivity(), DrawFrameListener {
|
||||
}
|
||||
|
||||
override fun onDrawFrame(gl10: GL10) {
|
||||
Log.i("state_in", "state = $state")
|
||||
if (state != laststate) {
|
||||
Log.d(this.localClassName, "onDrawFrame state=$state")
|
||||
laststate = state
|
||||
}
|
||||
Log.d(this.localClassName, "onDrawFrame state=$state")
|
||||
var isStarted = false
|
||||
when (state) {
|
||||
STATE_RESTORE_CONTEXT -> {
|
||||
run {
|
||||
Log.i("state_in splash is null", (this.splash == null).toString() + "")
|
||||
if (this.splash == null) {
|
||||
//Log.i("state_in splash is null", (this.splash == null).toString() + "")
|
||||
/*if (this.splash == null) {
|
||||
this.splash = SplashScreen(this)
|
||||
this.splash!!.init(
|
||||
gl10,
|
||||
@@ -386,7 +372,7 @@ class GameActivity : ComponentActivity(), DrawFrameListener {
|
||||
this.gameRenderer!!.height
|
||||
)
|
||||
this.splashDelay = System.currentTimeMillis() + 2000
|
||||
}
|
||||
}*/
|
||||
if (this.splashDelay < System.currentTimeMillis() /*&& hasWindowFocus()*/) {
|
||||
if (oldState != 8) {
|
||||
state = oldState
|
||||
@@ -410,20 +396,21 @@ class GameActivity : ComponentActivity(), DrawFrameListener {
|
||||
if (splashTimer < System.currentTimeMillis() && nativeRestoreContext()) {
|
||||
nativeOnStart()
|
||||
nativeOnResume()
|
||||
gameRenderer!!.setDrawFrameListener(null)
|
||||
gameRenderer.setDrawFrameListener(null)
|
||||
isStarted = true
|
||||
}
|
||||
}
|
||||
}
|
||||
GLES20.glClearColor(1.0f, 1.0f, 1.0f, 1.0f)
|
||||
//GLES20.glClearColor(1.0f, 1.0f, 1.0f, 1.0f)
|
||||
GLES20.glClear(GLES20.GL_COLOR_BUFFER_BIT or GLES20.GL_DEPTH_BUFFER_BIT)
|
||||
GLES20.glClear(16640)
|
||||
if (splash != null) {
|
||||
/* if (splash != null) {
|
||||
splash!!.draw(gl10, gameRenderer!!.width, gameRenderer!!.height)
|
||||
}
|
||||
if (isStarted && splash != null) {
|
||||
splash!!.destroy(gl10)
|
||||
splash = null
|
||||
}
|
||||
}*/
|
||||
}
|
||||
|
||||
override fun onKeyDown(i: Int, keyEvent: KeyEvent): Boolean {
|
||||
@@ -435,7 +422,7 @@ class GameActivity : ComponentActivity(), DrawFrameListener {
|
||||
return true
|
||||
}
|
||||
val scanCode = keyEvent.scanCode
|
||||
gameGLSurfaceView!!.queueEvent { nativeOnPhysicalKeyDown(i, scanCode) }
|
||||
gameGLSurfaceView.queueEvent { nativeOnPhysicalKeyDown(i, scanCode) }
|
||||
return IsSystemKey(i)
|
||||
}
|
||||
|
||||
@@ -445,7 +432,7 @@ class GameActivity : ComponentActivity(), DrawFrameListener {
|
||||
return true
|
||||
}
|
||||
val scanCode = keyEvent.scanCode
|
||||
gameGLSurfaceView!!.queueEvent { nativeOnPhysicalKeyUp(i, scanCode) }
|
||||
gameGLSurfaceView.queueEvent { nativeOnPhysicalKeyUp(i, scanCode) }
|
||||
return IsSystemKey(i)
|
||||
}
|
||||
|
||||
@@ -454,18 +441,10 @@ class GameActivity : ComponentActivity(), DrawFrameListener {
|
||||
Log.i("Debug", "onPause")
|
||||
Log.i(this.localClassName, "onPause state=$state")
|
||||
mAudioManager!!.setStreamMute(3, true)
|
||||
if (lifecycleOldSystem != 3) {
|
||||
Log.w(
|
||||
this.localClassName,
|
||||
"onPause ignored, lifecycle is currently ${lifecycle.currentState}"
|
||||
)
|
||||
return
|
||||
}
|
||||
gameGLSurfaceView!!.onPause()
|
||||
|
||||
gameGLSurfaceView.onPause()
|
||||
onWindowFocusChanged(false)
|
||||
ApplicationLifecycle.onActivityPause(this)
|
||||
nativeOnPause()
|
||||
splash = null
|
||||
}
|
||||
|
||||
public override fun onRestart() {
|
||||
@@ -485,16 +464,9 @@ class GameActivity : ComponentActivity(), DrawFrameListener {
|
||||
if (state != 7) {
|
||||
oldState = state
|
||||
state = 8
|
||||
gameRenderer!!.setDrawFrameListener(this)
|
||||
gameRenderer.setDrawFrameListener(this)
|
||||
}
|
||||
if (lifecycleOldSystem == 3) {
|
||||
Log.w(
|
||||
this.localClassName,
|
||||
"onResume ignored, lifecycle is currently ${lifecycle.currentState}"
|
||||
)
|
||||
return
|
||||
}
|
||||
gameGLSurfaceView!!.onResume()
|
||||
gameGLSurfaceView.onResume()
|
||||
ApplicationLifecycle.onActivityResume(this)
|
||||
nativeOnResume()
|
||||
}
|
||||
@@ -512,7 +484,7 @@ class GameActivity : ComponentActivity(), DrawFrameListener {
|
||||
Log.i(this.localClassName, "onStart 1")
|
||||
wakeLockAcquire()
|
||||
Log.i(this.localClassName, "onStart 2")
|
||||
if (lifecycleOldSystem < 2 || lifecycleOldSystem >= 4) {
|
||||
if (lifecycle.currentState < Lifecycle.State.STARTED || lifecycle.currentState == Lifecycle.State.DESTROYED) {
|
||||
Log.i(this.localClassName, "onStart 3")
|
||||
Log.i(this.localClassName, "nativeOnStart")
|
||||
nativeOnStart()
|
||||
@@ -560,7 +532,7 @@ class GameActivity : ComponentActivity(), DrawFrameListener {
|
||||
mAudioManager!!.setStreamMute(3, true)
|
||||
oldState = state
|
||||
state = 7
|
||||
gameRenderer!!.setDrawFrameListener(this)
|
||||
gameRenderer.setDrawFrameListener(this)
|
||||
}
|
||||
}
|
||||
ApplicationLifecycle.onActivityWindowFocusChanged(hasFocus, this)
|
||||
|
||||
@@ -2,6 +2,7 @@ package com.ea.ironmonkey;
|
||||
|
||||
import android.opengl.GLSurfaceView;
|
||||
import android.os.Build;
|
||||
import android.util.Log;
|
||||
import android.view.MotionEvent;
|
||||
|
||||
import javax.microedition.khronos.egl.EGL10;
|
||||
|
||||
@@ -15,7 +15,7 @@ class GameRenderer(private val activity: GameActivity) : GLSurfaceView.Renderer
|
||||
if (drawFrameListener != null) {
|
||||
drawFrameListener!!.onDrawFrame(gl10)
|
||||
} else {
|
||||
activity.runLoop!!.onRunLoopTick()
|
||||
activity.runLoop.onRunLoopTick()
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -1,45 +0,0 @@
|
||||
package com.ea.ironmonkey;
|
||||
|
||||
public class Log {
|
||||
private static boolean enable = false;
|
||||
|
||||
public static void d(String str, String str2) {
|
||||
if (enable) {
|
||||
android.util.Log.d(str, str2);
|
||||
}
|
||||
}
|
||||
|
||||
public static void e(String str, String str2) {
|
||||
if (enable) {
|
||||
android.util.Log.e(str, str2);
|
||||
}
|
||||
}
|
||||
|
||||
public static void e(String str, String str2, Exception exc) {
|
||||
if (enable) {
|
||||
android.util.Log.e(str, str2, exc);
|
||||
}
|
||||
}
|
||||
|
||||
public static void i(String str, String str2) {
|
||||
if (enable) {
|
||||
android.util.Log.i(str, str2);
|
||||
}
|
||||
}
|
||||
|
||||
public static void setEnable(boolean z) {
|
||||
enable = z;
|
||||
}
|
||||
|
||||
public static void v(String str, String str2) {
|
||||
if (enable) {
|
||||
android.util.Log.v(str, str2);
|
||||
}
|
||||
}
|
||||
|
||||
public static void w(String str, String str2) {
|
||||
if (enable) {
|
||||
android.util.Log.w(str, str2);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,32 +1,22 @@
|
||||
package com.ea.ironmonkey;
|
||||
package com.ea.ironmonkey
|
||||
|
||||
import com.bda.controller.ControllerListener;
|
||||
import com.bda.controller.KeyEvent;
|
||||
import com.bda.controller.MotionEvent;
|
||||
import com.bda.controller.StateEvent;
|
||||
|
||||
public class MogaController implements ControllerListener {
|
||||
/* access modifiers changed from: package-private */
|
||||
public native void nativeOnKeyEvent(KeyEvent keyEvent);
|
||||
|
||||
/* access modifiers changed from: package-private */
|
||||
public native void nativeOnMotionEvent(MotionEvent motionEvent);
|
||||
|
||||
/* access modifiers changed from: package-private */
|
||||
public native void nativeOnStateEvent(StateEvent stateEvent);
|
||||
|
||||
@Override // com.bda.controller.ControllerListener
|
||||
public void onKeyEvent(KeyEvent keyEvent) {
|
||||
nativeOnKeyEvent(keyEvent);
|
||||
import com.bda.controller.ControllerListener
|
||||
import com.bda.controller.KeyEvent
|
||||
import com.bda.controller.MotionEvent
|
||||
import com.bda.controller.StateEvent
|
||||
object MogaController : ControllerListener {
|
||||
external fun nativeOnKeyEvent(keyEvent: KeyEvent?)
|
||||
external fun nativeOnMotionEvent(motionEvent: MotionEvent?)
|
||||
external fun nativeOnStateEvent(stateEvent: StateEvent?)
|
||||
override fun onKeyEvent(keyEvent: KeyEvent) {
|
||||
nativeOnKeyEvent(keyEvent)
|
||||
}
|
||||
|
||||
@Override // com.bda.controller.ControllerListener
|
||||
public void onMotionEvent(MotionEvent motionEvent) {
|
||||
nativeOnMotionEvent(motionEvent);
|
||||
override fun onMotionEvent(motionEvent: MotionEvent) {
|
||||
nativeOnMotionEvent(motionEvent)
|
||||
}
|
||||
|
||||
@Override // com.bda.controller.ControllerListener
|
||||
public void onStateEvent(StateEvent stateEvent) {
|
||||
nativeOnStateEvent(stateEvent);
|
||||
override fun onStateEvent(stateEvent: StateEvent) {
|
||||
nativeOnStateEvent(stateEvent)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
package com.ea.ironmonkey
|
||||
|
||||
import android.opengl.GLSurfaceView
|
||||
import android.util.Log
|
||||
|
||||
class RunLoop(private val glSurfaceView: GLSurfaceView) {
|
||||
private var state = 0
|
||||
|
||||
@@ -1,177 +0,0 @@
|
||||
package com.ea.ironmonkey;
|
||||
|
||||
import android.app.Activity;
|
||||
import android.graphics.Bitmap;
|
||||
import android.graphics.BitmapFactory;
|
||||
import android.opengl.GLES20;
|
||||
import android.opengl.GLUtils;
|
||||
import java.nio.Buffer;
|
||||
import java.nio.ByteBuffer;
|
||||
import java.nio.ByteOrder;
|
||||
import java.nio.FloatBuffer;
|
||||
import javax.microedition.khronos.opengles.GL10;
|
||||
|
||||
public class SplashScreen {
|
||||
private static final String TAG = "SplashScreen";
|
||||
private static final int floatSize = 4;
|
||||
private Activity _activity;
|
||||
private int _attPosition;
|
||||
private int _attSampler;
|
||||
private int _attTexCoord;
|
||||
private int _fragmentShader;
|
||||
private int _program;
|
||||
private int[] _textureId;
|
||||
private int _vertexShader;
|
||||
|
||||
private final String fShaderStr =
|
||||
"precision highp float; " +
|
||||
"varying vec2 v_texCoord;" +
|
||||
"uniform sampler2D s_texture;"+
|
||||
"void main(){" +
|
||||
" gl_FragColor = texture2D( s_texture, v_texCoord );" +
|
||||
"}";
|
||||
|
||||
private FloatBuffer vBuffer;
|
||||
private final String vShaderStr = "attribute vec4 a_position; \nattribute vec4 a_texCoord; \nvarying vec2 v_texCoord; \nvoid main() \n{ \n gl_Position = a_position; \n v_texCoord = a_texCoord.xy; \n} \n";
|
||||
|
||||
public SplashScreen(Activity activity) {
|
||||
this._activity = activity;
|
||||
this._textureId = new int[1];
|
||||
}
|
||||
|
||||
private int LoadShader(int i, String str) {
|
||||
int glCreateShader = GLES20.glCreateShader(i);
|
||||
if (glCreateShader == 0) {
|
||||
Log.e(TAG, "LoadShader(" + i + ", " + str + " - create shader fail\n");
|
||||
return 0;
|
||||
}
|
||||
GLES20.glShaderSource(glCreateShader, str);
|
||||
GLES20.glCompileShader(glCreateShader);
|
||||
int[] iArr = new int[1];
|
||||
GLES20.glGetShaderiv(glCreateShader, 35713, iArr, 0);
|
||||
if (iArr[0] != 0) {
|
||||
return glCreateShader;
|
||||
}
|
||||
Log.e(TAG, "LoadShader(" + i + ", " + str + ") - compile shader fail\n");
|
||||
GLES20.glDeleteShader(glCreateShader);
|
||||
Log.e(TAG, GLES20.glGetShaderInfoLog(glCreateShader));
|
||||
return 0;
|
||||
}
|
||||
|
||||
private boolean initRenderer() {
|
||||
this._vertexShader = LoadShader(35633, "attribute vec4 a_position; \nattribute vec4 a_texCoord; \nvarying vec2 v_texCoord; \nvoid main() \n{ \n gl_Position = a_position; \n v_texCoord = a_texCoord.xy; \n} \n");
|
||||
this._fragmentShader = LoadShader(35632, "precision highp float; \nvarying vec2 v_texCoord; \nuniform sampler2D s_texture; \nvoid main() \n{ \n gl_FragColor = texture2D( s_texture, v_texCoord );\n} \n");
|
||||
this._program = GLES20.glCreateProgram();
|
||||
if (this._program == 0 || this._vertexShader == 0 || this._fragmentShader == 0) {
|
||||
Log.e(TAG, "InitRender() - fail\n");
|
||||
return false;
|
||||
}
|
||||
GLES20.glAttachShader(this._program, this._vertexShader);
|
||||
GLES20.glAttachShader(this._program, this._fragmentShader);
|
||||
GLES20.glLinkProgram(this._program);
|
||||
int[] iArr = new int[1];
|
||||
GLES20.glGetProgramiv(this._program, 35714, iArr, 0);
|
||||
if (iArr[0] == 0) {
|
||||
Log.e(TAG, "InitRender() - fail link program");
|
||||
Log.e(TAG, GLES20.glGetProgramInfoLog(this._program));
|
||||
GLES20.glDeleteProgram(this._program);
|
||||
this._program = 0;
|
||||
return false;
|
||||
}
|
||||
this._attPosition = GLES20.glGetAttribLocation(this._program, "a_position");
|
||||
this._attTexCoord = GLES20.glGetAttribLocation(this._program, "a_texCoord");
|
||||
this._attSampler = GLES20.glGetAttribLocation(this._program, "s_texture");
|
||||
return true;
|
||||
}
|
||||
|
||||
public void destroy(GL10 gl10) {
|
||||
if (this._textureId[0] != 0) {
|
||||
GLES20.glDeleteTextures(1, this._textureId, 0);
|
||||
this._textureId[0] = 0;
|
||||
}
|
||||
if (this._program != 0) {
|
||||
GLES20.glDeleteProgram(this._program);
|
||||
this._program = 0;
|
||||
}
|
||||
if (this._vertexShader != 0) {
|
||||
GLES20.glDeleteShader(this._vertexShader);
|
||||
this._vertexShader = 0;
|
||||
}
|
||||
if (this._fragmentShader != 0) {
|
||||
GLES20.glDeleteShader(this._fragmentShader);
|
||||
this._fragmentShader = 0;
|
||||
}
|
||||
if (this.vBuffer != null) {
|
||||
this.vBuffer.clear();
|
||||
this.vBuffer = null;
|
||||
}
|
||||
}
|
||||
|
||||
public boolean draw(GL10 gl10, int i, int i2) {
|
||||
float f;
|
||||
if (this._textureId[0] == 0) {
|
||||
return false;
|
||||
}
|
||||
float f2 = 0.8f;
|
||||
if (i > i2) {
|
||||
f = (((float) i2) / ((float) i)) * 0.8f;
|
||||
} else {
|
||||
f2 = 0.8f * (((float) i) / ((float) i2));
|
||||
f = 0.8f;
|
||||
}
|
||||
float[][] fArr = {new float[]{-f, -f2, 0.0f, 1.0f, f, -f2, 1.0f, 1.0f, -f, f2, 0.0f, 0.0f, f, f2, 1.0f, 0.0f}, new float[]{-f, -f2, 1.0f, 1.0f, f, -f2, 1.0f, 0.0f, -f, f2, 0.0f, 1.0f, f, f2, 0.0f, 0.0f}};
|
||||
this.vBuffer = ByteBuffer.allocateDirect(fArr[0].length * 4).order(ByteOrder.nativeOrder()).asFloatBuffer();
|
||||
if (i < i2) {
|
||||
this.vBuffer.put(fArr[1]);
|
||||
} else {
|
||||
this.vBuffer.put(fArr[0]);
|
||||
}
|
||||
GLES20.glViewport(0, 0, i, i2);
|
||||
GLES20.glUseProgram(this._program);
|
||||
GLES20.glEnable(GLES20.GL_TEXTURE_2D);
|
||||
GLES20.glActiveTexture(33984);
|
||||
GLES20.glBindTexture(GLES20.GL_TEXTURE_2D, this._textureId[0]);
|
||||
GLES20.glUniform1i(this._attSampler, 0);
|
||||
this.vBuffer.position(0);
|
||||
GLES20.glVertexAttribPointer(this._attPosition, 2, 5126, false, 16, (Buffer) this.vBuffer);
|
||||
GLES20.glEnableVertexAttribArray(this._attPosition);
|
||||
this.vBuffer.position(2);
|
||||
GLES20.glVertexAttribPointer(this._attTexCoord, 2, 5126, false, 16, (Buffer) this.vBuffer);
|
||||
GLES20.glEnableVertexAttribArray(this._attTexCoord);
|
||||
GLES20.glDrawArrays(5, 0, 4);
|
||||
GLES20.glDisableVertexAttribArray(this._attPosition);
|
||||
GLES20.glDisableVertexAttribArray(this._attTexCoord);
|
||||
GLES20.glUseProgram(0);
|
||||
return true;
|
||||
}
|
||||
|
||||
public void init(GL10 gl10, int i, int i2) {
|
||||
if (!initRenderer()) {
|
||||
destroy(gl10);
|
||||
return;
|
||||
}
|
||||
GLES20.glGetError();
|
||||
GLES20.glGenTextures(1, this._textureId, 0);
|
||||
GLES20.glBindTexture(GLES20.GL_TEXTURE_2D, this._textureId[0]);
|
||||
|
||||
BitmapFactory.Options options = new BitmapFactory.Options();
|
||||
options.inPreferredConfig = Bitmap.Config.ARGB_4444;
|
||||
Bitmap bitmap = null;
|
||||
try {
|
||||
bitmap = BitmapFactory.decodeStream(this._activity.getAssets().open("splash.png"), null, options);
|
||||
} catch (Exception e) {
|
||||
Log.e(TAG, "loadBitmap ", e);
|
||||
}
|
||||
GLUtils.texImage2D(GLES20.GL_TEXTURE_2D, 0, bitmap, 0);
|
||||
GLES20.glTexParameterf(GLES20.GL_TEXTURE_2D, GLES20.GL_TEXTURE_MIN_FILTER, GLES20.GL_LINEAR);
|
||||
GLES20.glTexParameterf(GLES20.GL_TEXTURE_2D, GLES20.GL_TEXTURE_MAG_FILTER, GLES20.GL_LINEAR);
|
||||
GLES20.glTexParameterf(GLES20.GL_TEXTURE_2D, GLES20.GL_TEXTURE_WRAP_S, GLES20.GL_CLAMP_TO_EDGE);
|
||||
GLES20.glTexParameterf(GLES20.GL_TEXTURE_2D, GLES20.GL_TEXTURE_WRAP_T, GLES20.GL_CLAMP_TO_EDGE);
|
||||
bitmap.recycle();
|
||||
int glGetError = GLES20.glGetError();
|
||||
if (glGetError != 0) {
|
||||
Log.e(TAG, "Texture Load GLError: " + glGetError);
|
||||
destroy(gl10);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,9 +1,5 @@
|
||||
/*
|
||||
* Decompiled with CFR 0.152.
|
||||
*/
|
||||
package com.ea.nimble.tracking;
|
||||
|
||||
import com.ea.ironmonkey.devmenu.util.Observer;
|
||||
import com.ea.nimble.ApplicationEnvironment;
|
||||
import com.ea.nimble.Base;
|
||||
import com.ea.nimble.Component;
|
||||
@@ -90,9 +86,6 @@ public class TrackingWrangler extends Component implements LogSource, ITracking
|
||||
@Override
|
||||
public void logEvent(String string2, Map<String, String> map) {
|
||||
Log.Helper.LOGD(this, "Logging event, " + string2);
|
||||
if(m_trackingComponents != null)
|
||||
for(ITracking tracking : m_trackingComponents)
|
||||
tracking.logEvent(string2, map);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
Reference in New Issue
Block a user