Can't get to work onGenericMotionEvent in InputMethodService

93 Views Asked by At

I've launched InputMethodService and activating it in settings, onCreate works - it return my string, but onGenericMotionEvent do nothing - it should send string to companion object when app resumed. Have no idea why it not working. Hope somebody can help me.

package com.pg.inputservice

import android.content.Intent
import android.os.Bundle
import android.widget.TextView
import androidx.appcompat.app.AppCompatActivity
import android.provider.Settings

class MainActivity : AppCompatActivity() {

    private lateinit var myTextView: TextView

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)

        //set permission
        var intent = Intent(Settings.ACTION_INPUT_METHOD_SETTINGS)
        startActivity(intent)

        //launch service
        val service = Intent(this, IMService::class.java)
        startService(service)

        myTextView = findViewById(R.id.textMy)

        myTextView.text = "onCreateMain"

    }

    override fun onResume() {
        myTextView.text = IMService.test + " onResume"

        super.onResume()
    }

}

package com.pg.inputservice

import android.inputmethodservice.InputMethodService
import android.view.MotionEvent

class IMService: InputMethodService() {
    companion object {
        var test: String = "initialisation"
    }

    override fun onCreate(){
        test = "onCreate"
    }

    override fun onGenericMotionEvent(event: MotionEvent): Boolean {
        test = "onGenericMotionEvent"

        return true
    }
}
0

There are 0 best solutions below