Sziasztok!
A Google Hangouts applikációhoz készítek chatfej alkalmazást. (Igen olyat mint annak a kék közösségi oldalnak van)
Eddig minden problémán túlküzdöttem magam, de ezzel nem jutok egyről a kettőre.
Következő a WindowManager-es LayoutParamsom (ami ugye a Chatfej megjelenítésért felel):
params = new WindowManager.LayoutParams(
WindowManager.LayoutParams.WRAP_CONTENT,
WindowManager.LayoutParams.WRAP_CONTENT,
WindowManager.LayoutParams.TYPE_SYSTEM_ALERT,
WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS | WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE,
PixelFormat.TRANSLUCENT);
Hozzáadás:
windowManager.addView(chatHead, params);
Továbbá a chatHead-et ami nem-mellesleg egy sima RelativeLayout még beállítom így:
chatHead.setFocusableInTouchMode(true);
Így ha egy OnKeyListener-t regisztrálok a chatHead-re akkor a (fizikai) vissza gombot kezelni tudom.
Namost én szeretném a Home gombtól és az Alkalmazásváltó gombtól (App switcher / Recent apps) is szeretnék visszajelzést kapni. Tudom, hogy elméletben nem lehet azt a két gombot "kezelésbe venni", de a Féjszbúk Messenger is használja, szóval gondolom nem lehetetlen.
Mint mondtam elég csak a visszajelzés, tehát nem megakadályozni akarom a felhasználót hanem csak bezárni a nyitott üzenőmet. Tehát ez igazából nem is viselkedésváltásnak fogható fel, inkább csak kiegészítésnek, mert alapból nem úgy viselkedik mint kéne.
ui.: Az FB messenger visszafejtés nem játszik mert a Proguard nagyon szép munkát végzett rajta.
A segítséget előre is köszönöm.