Add Controller capability
This commit is contained in:
@@ -1,11 +1,13 @@
|
||||
package com.ea.ironmonkey
|
||||
|
||||
import android.annotation.SuppressLint
|
||||
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.hardware.input.InputManager
|
||||
import android.media.AudioManager
|
||||
import android.opengl.GLES20
|
||||
import android.opengl.GLUtils
|
||||
@@ -15,17 +17,26 @@ import android.os.PowerManager
|
||||
import android.os.PowerManager.WakeLock
|
||||
import android.util.DisplayMetrics
|
||||
import android.util.Log
|
||||
import android.view.InputDevice
|
||||
import android.view.KeyEvent
|
||||
import android.view.MotionEvent
|
||||
import android.view.inputmethod.InputMethodManager
|
||||
import androidx.activity.ComponentActivity
|
||||
import androidx.activity.compose.setContent
|
||||
import androidx.lifecycle.Lifecycle
|
||||
import com.bda.controller.StateEvent
|
||||
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 com.megboyzz.devmenu.util.SaveFileObserver
|
||||
import com.megboyzz.actionForAllControllers
|
||||
import com.megboyzz.androidKeyEventToBda
|
||||
import com.megboyzz.androidMotionEventToBda
|
||||
import com.megboyzz.createConnectEvent
|
||||
import com.megboyzz.createDisconnectEvent
|
||||
import com.megboyzz.registerControllerHandlers
|
||||
import java.io.BufferedReader
|
||||
import java.io.File
|
||||
import java.io.FileReader
|
||||
@@ -60,8 +71,6 @@ class GameActivity : ComponentActivity(), DrawFrameListener {
|
||||
private val saveFile = "/data/data/${BuildConfig.APPLICATION_ID}/files/var/nfstr_save.sb"
|
||||
private val dest = "/sdcard/Android/data/${BuildConfig.APPLICATION_ID}/files/saveTracking"
|
||||
|
||||
private val saveFileObserver = com.megboyzz.devmenu.util.SaveFileObserver(saveFile, dest)
|
||||
|
||||
companion object {
|
||||
|
||||
const val STATE_RESTORE_CONTEXT = 7
|
||||
@@ -120,6 +129,7 @@ class GameActivity : ComponentActivity(), DrawFrameListener {
|
||||
Log.w(this.localClassName, "Missing WAKE_LOCK permission.")
|
||||
}
|
||||
}
|
||||
this.assets
|
||||
}
|
||||
|
||||
private fun wakeLockRelease() {
|
||||
@@ -295,10 +305,24 @@ class GameActivity : ComponentActivity(), DrawFrameListener {
|
||||
|
||||
public override fun onCreate(bundle: Bundle?) {
|
||||
|
||||
saveFileObserver.startWatching()
|
||||
|
||||
super.onCreate(bundle)
|
||||
|
||||
registerControllerHandlers(
|
||||
onInputDeviceAdded = {
|
||||
Log.i("Controller", "controller is connected!")
|
||||
val event = createConnectEvent(it)
|
||||
MogaController.nativeOnStateEvent(event)
|
||||
},
|
||||
onInputDeviceRemoved = {
|
||||
Log.i("Controller", "controller is disconnected!")
|
||||
val event = createDisconnectEvent(it)
|
||||
MogaController.nativeOnStateEvent(event)
|
||||
},
|
||||
onInputDeviceChanged = {
|
||||
Log.i("Controller", "controller is changed!")
|
||||
}
|
||||
)
|
||||
|
||||
val className = this.localClassName
|
||||
val currentState = lifecycle.currentState
|
||||
|
||||
@@ -347,13 +371,12 @@ class GameActivity : ComponentActivity(), DrawFrameListener {
|
||||
ApplicationLifecycle.onActivityCreate(bundle, this)
|
||||
Log.d(className, "nativeOnCreate")
|
||||
nativeOnCreate()
|
||||
|
||||
}
|
||||
|
||||
|
||||
public override fun onDestroy() {
|
||||
|
||||
saveFileObserver.stopWatching()
|
||||
|
||||
Log.i("Debug", "onDestroy")
|
||||
Log.i(this.localClassName, "onDestroy")
|
||||
super.onDestroy()
|
||||
@@ -367,7 +390,27 @@ class GameActivity : ComponentActivity(), DrawFrameListener {
|
||||
exitProcess(0)
|
||||
}
|
||||
|
||||
override fun dispatchGenericMotionEvent(ev: MotionEvent?): Boolean {
|
||||
Log.i("GameActivity", ev.toString())
|
||||
|
||||
MogaController.onMotionEvent(androidMotionEventToBda(ev!!))
|
||||
|
||||
return super.dispatchGenericMotionEvent(ev)
|
||||
}
|
||||
|
||||
@SuppressLint("RestrictedApi")
|
||||
override fun dispatchKeyEvent(event: KeyEvent?): Boolean {
|
||||
|
||||
MogaController.onKeyEvent(androidKeyEventToBda(event!!))
|
||||
|
||||
return super.dispatchKeyEvent(event)
|
||||
}
|
||||
|
||||
|
||||
|
||||
override fun onDrawFrame(gl10: GL10) {
|
||||
//InputDevice.getDeviceIds()
|
||||
//InputDevice.getDevice(0).sources
|
||||
Log.d(this.localClassName, "onDrawFrame state=$state")
|
||||
var isStarted = false
|
||||
when (state) {
|
||||
@@ -479,6 +522,10 @@ class GameActivity : ComponentActivity(), DrawFrameListener {
|
||||
gameGLSurfaceView.onResume()
|
||||
ApplicationLifecycle.onActivityResume(this)
|
||||
nativeOnResume()
|
||||
actionForAllControllers {
|
||||
val event = createConnectEvent(it)
|
||||
MogaController.nativeOnStateEvent(event)
|
||||
}
|
||||
}
|
||||
|
||||
public override fun onSaveInstanceState(bundle: Bundle) {
|
||||
|
||||
Reference in New Issue
Block a user