forked from geode-sdk/android-launcher
cleanup edittext access
This commit is contained in:
3 files changed
+26
-23
No files matched your search
@@ -100,9 +100,8 @@ class GeometryDashActivity : ComponentActivity(), Cocos2dxHelper.Cocos2dxHelperL
|
||||
glSurfaceView.initView()
|
||||
glSurfaceView.setCocos2dxRenderer(Cocos2dxRenderer())
|
||||
|
||||
|
||||
editText.inputType = 145
|
||||
glSurfaceView.setCocos2dxEditText(editText)
|
||||
glSurfaceView.cocos2dxEditText = editText
|
||||
|
||||
frameLayout
|
||||
}
|
||||
|
||||
@@ -38,7 +38,15 @@ class Cocos2dxGLSurfaceView(context: Context) : GLSurfaceView(context) {
|
||||
}
|
||||
|
||||
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() {
|
||||
setEGLContextClientVersion(2)
|
||||
@@ -53,8 +61,8 @@ class Cocos2dxGLSurfaceView(context: Context) : GLSurfaceView(context) {
|
||||
override fun handleMessage(msg: Message) {
|
||||
when (msg.what) {
|
||||
HANDLER_OPEN_IME_KEYBOARD -> {
|
||||
if (mCocos2dxEditText?.requestFocus() == true) {
|
||||
mCocos2dxEditText?.apply {
|
||||
if (cocos2dxEditText?.requestFocus() == true) {
|
||||
cocos2dxEditText?.apply {
|
||||
removeTextChangedListener(
|
||||
sCocos2dxTextInputWrapper
|
||||
)
|
||||
@@ -67,7 +75,7 @@ class Cocos2dxGLSurfaceView(context: Context) : GLSurfaceView(context) {
|
||||
)
|
||||
}
|
||||
(context.getSystemService(Context.INPUT_METHOD_SERVICE) as InputMethodManager).showSoftInput(
|
||||
mCocos2dxEditText,
|
||||
cocos2dxEditText,
|
||||
0
|
||||
)
|
||||
Log.d("GLSurfaceView", "showSoftInput")
|
||||
@@ -76,7 +84,7 @@ class Cocos2dxGLSurfaceView(context: Context) : GLSurfaceView(context) {
|
||||
return
|
||||
}
|
||||
HANDLER_CLOSE_IME_KEYBOARD -> {
|
||||
mCocos2dxEditText?.apply {
|
||||
cocos2dxEditText?.apply {
|
||||
removeTextChangedListener(
|
||||
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 {
|
||||
val pointerNumber = pMotionEvent.pointerCount
|
||||
val ids = IntArray(pointerNumber)
|
||||
@@ -213,20 +231,6 @@ class Cocos2dxGLSurfaceView(context: Context) : GLSurfaceView(context) {
|
||||
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) {
|
||||
queueEvent { mCocos2dxRenderer.handleInsertText(pText) }
|
||||
}
|
||||
|
||||
@@ -13,7 +13,7 @@ class Cocos2dxTextInputWrapper(private val mCocos2dxGLSurfaceView: Cocos2dxGLSur
|
||||
private var mText: String? = null
|
||||
|
||||
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?) {
|
||||
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 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) {
|
||||
mCocos2dxGLSurfaceView.deleteBackward()
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user