cleanup edittext access

This commit is contained in:
qimiko committed 2022-05-27 12:33:43 -07:00
1 parent c3e49929b6
commit 7760e69649
3 files changed
+26 -23

No files matched your search

@@ -100,9 +100,8 @@ class GeometryDashActivity : ComponentActivity(), Cocos2dxHelper.Cocos2dxHelperL
glSurfaceView.initView() glSurfaceView.initView()
glSurfaceView.setCocos2dxRenderer(Cocos2dxRenderer()) glSurfaceView.setCocos2dxRenderer(Cocos2dxRenderer())
editText.inputType = 145 editText.inputType = 145
glSurfaceView.setCocos2dxEditText(editText) glSurfaceView.cocos2dxEditText = editText
frameLayout frameLayout
} }
@@ -38,7 +38,15 @@ class Cocos2dxGLSurfaceView(context: Context) : GLSurfaceView(context) {
} }
private lateinit var mCocos2dxRenderer: Cocos2dxRenderer private lateinit var mCocos2dxRenderer: Cocos2dxRenderer
var mCocos2dxEditText: Cocos2dxEditText? = null
var cocos2dxEditText: Cocos2dxEditText? = null
set(value) {
field = value
field?.setOnEditorActionListener(sCocos2dxTextInputWrapper)
field?.cocos2dxGLSurfaceView = this
requestFocus()
}
fun initView() { fun initView() {
setEGLContextClientVersion(2) setEGLContextClientVersion(2)
@@ -53,8 +61,8 @@ class Cocos2dxGLSurfaceView(context: Context) : GLSurfaceView(context) {
override fun handleMessage(msg: Message) { override fun handleMessage(msg: Message) {
when (msg.what) { when (msg.what) {
HANDLER_OPEN_IME_KEYBOARD -> { HANDLER_OPEN_IME_KEYBOARD -> {
if (mCocos2dxEditText?.requestFocus() == true) { if (cocos2dxEditText?.requestFocus() == true) {
mCocos2dxEditText?.apply { cocos2dxEditText?.apply {
removeTextChangedListener( removeTextChangedListener(
sCocos2dxTextInputWrapper sCocos2dxTextInputWrapper
) )
@@ -67,7 +75,7 @@ class Cocos2dxGLSurfaceView(context: Context) : GLSurfaceView(context) {
) )
} }
(context.getSystemService(Context.INPUT_METHOD_SERVICE) as InputMethodManager).showSoftInput( (context.getSystemService(Context.INPUT_METHOD_SERVICE) as InputMethodManager).showSoftInput(
mCocos2dxEditText, cocos2dxEditText,
0 0
) )
Log.d("GLSurfaceView", "showSoftInput") Log.d("GLSurfaceView", "showSoftInput")
@@ -76,7 +84,7 @@ class Cocos2dxGLSurfaceView(context: Context) : GLSurfaceView(context) {
return return
} }
HANDLER_CLOSE_IME_KEYBOARD -> { HANDLER_CLOSE_IME_KEYBOARD -> {
mCocos2dxEditText?.apply { cocos2dxEditText?.apply {
removeTextChangedListener( removeTextChangedListener(
sCocos2dxTextInputWrapper sCocos2dxTextInputWrapper
) )
@@ -97,6 +105,16 @@ class Cocos2dxGLSurfaceView(context: Context) : GLSurfaceView(context) {
} }
} }
override fun onPause() {
queueEvent { mCocos2dxRenderer.handleOnPause() }
super.onPause()
}
override fun onResume() {
super.onResume()
queueEvent { mCocos2dxRenderer.handleOnResume() }
}
override fun onTouchEvent(pMotionEvent: MotionEvent): Boolean { override fun onTouchEvent(pMotionEvent: MotionEvent): Boolean {
val pointerNumber = pMotionEvent.pointerCount val pointerNumber = pMotionEvent.pointerCount
val ids = IntArray(pointerNumber) val ids = IntArray(pointerNumber)
@@ -213,20 +231,6 @@ class Cocos2dxGLSurfaceView(context: Context) : GLSurfaceView(context) {
return mCocos2dxRenderer.getContentText() return mCocos2dxRenderer.getContentText()
} }
fun getCocos2dxEditText(): Cocos2dxEditText? {
return mCocos2dxEditText
}
fun setCocos2dxEditText(pCocos2dxEditText: Cocos2dxEditText) {
mCocos2dxEditText = pCocos2dxEditText
if (sCocos2dxTextInputWrapper != null) {
mCocos2dxEditText?.setOnEditorActionListener(sCocos2dxTextInputWrapper)
mCocos2dxEditText?.cocos2dxGLSurfaceView = this
requestFocus()
}
}
fun insertText(pText: String) { fun insertText(pText: String) {
queueEvent { mCocos2dxRenderer.handleInsertText(pText) } queueEvent { mCocos2dxRenderer.handleInsertText(pText) }
} }
@@ -13,7 +13,7 @@ class Cocos2dxTextInputWrapper(private val mCocos2dxGLSurfaceView: Cocos2dxGLSur
private var mText: String? = null private var mText: String? = null
private val isFullScreenEdit: Boolean private val isFullScreenEdit: Boolean
get() = (mCocos2dxGLSurfaceView.mCocos2dxEditText?.context?.getSystemService(Context.INPUT_METHOD_SERVICE) as InputMethodManager).isFullscreenMode get() = (mCocos2dxGLSurfaceView.cocos2dxEditText?.context?.getSystemService(Context.INPUT_METHOD_SERVICE) as InputMethodManager).isFullscreenMode
fun setOriginText(pOriginText: String?) { fun setOriginText(pOriginText: String?) {
mOriginText = pOriginText mOriginText = pOriginText
@@ -47,7 +47,7 @@ class Cocos2dxTextInputWrapper(private val mCocos2dxGLSurfaceView: Cocos2dxGLSur
override fun onTextChanged(pCharSequence: CharSequence, start: Int, before: Int, count: Int) {} override fun onTextChanged(pCharSequence: CharSequence, start: Int, before: Int, count: Int) {}
override fun onEditorAction(pTextView: TextView, pActionID: Int, pKeyEvent: KeyEvent?): Boolean { override fun onEditorAction(pTextView: TextView, pActionID: Int, pKeyEvent: KeyEvent?): Boolean {
if (mCocos2dxGLSurfaceView.getCocos2dxEditText() == pTextView && isFullScreenEdit) { if (mCocos2dxGLSurfaceView.cocos2dxEditText == pTextView && isFullScreenEdit) {
for (i in mOriginText!!.length downTo 1) { for (i in mOriginText!!.length downTo 1) {
mCocos2dxGLSurfaceView.deleteBackward() mCocos2dxGLSurfaceView.deleteBackward()
} }