public boolean onKeyDown(int keyCode, KeyEvent event) { if (keyCode == KeyEvent.KEYCODE_BACK) { if (currentFragment == FragmentsAvailable.DIALER || currentFragment == FragmentsAvailable.CONTACTS || currentFragment == FragmentsAvailable.HISTORY || currentFragment == FragmentsAvailable.CHATLIST || currentFragment == FragmentsAvailable.ABOUT_INSTEAD_OF_CHAT || currentFragment == FragmentsAvailable.ABOUT_INSTEAD_OF_SETTINGS) { boolean isBackgroundModeActive = LinphonePreferences.instance().isBackgroundModeEnabled(); if (!isBackgroundModeActive) { stopService(new Intent(Intent.ACTION_MAIN).setClass(this, LinphoneService.class)); finish(); } else if (LinphoneUtils.onKeyBackGoHome(this, keyCode, event)) { return true; } } else { if (isTablet()) { if (currentFragment == FragmentsAvailable.SETTINGS) { updateAnimationsState(); } } } } else if (keyCode == KeyEvent.KEYCODE_MENU && statusFragment != null) { if (event.getRepeatCount() < 1) { statusFragment.openOrCloseStatusBar(true); } } return super.onKeyDown(keyCode, event); }