I have a floating window that is connected to a service and I want to minimize it when back button is pressed.
I have searched here on stackoverflow and they say its not possible to capture button presses on a service, most notably here: Can the a backbutton press be detected from a service?
But I know the Facebook messenger floating chatheads can do this. If you maximize a conversation and press the back button, it minimizes the conversation and it doesn't pass the back button press on what app you are currently in.
I have tried putting a KeyListener on the root floating view but it doesn't seem to catch any keypresses.
floatingView.setOnKeyListener(new View.OnKeyListener() {
@Override
public boolean onKey(View v, int keyCode, KeyEvent event) {
Log.e("motionevent",event.toString());
return false;
}
});
windowManager.addView(floatingView, params);
Suggestions on how FB Messenger does it?