public void hideDialpadFragment(boolean animate, boolean clearDialpad) { if (mDialpadFragment == null) return; if (clearDialpad) { mDialpadFragment.clearDialpad(); } if (!mDialpadFragment.isVisible()) return; mDialpadFragment.setAdjustTranslationForAnimation(animate); final FragmentTransaction ft = getFragmentManager().beginTransaction(); if (animate) { ft.setCustomAnimations(0, R.anim.slide_out); } ft.hide(mDialpadFragment); ft.commit(); }
@Override public void onBackPressed() { if (mDialpadFragment != null && mDialpadFragment.isVisible()) { hideDialpadFragment(true, false); } else if (getInSearchUi()) { mSearchView.setText(null); mDialpadFragment.clearDialpad(); } else if (isTaskRoot()) { // Instead of stopping, simply push this to the back of the stack. // This is only done when running at the top of the stack; // otherwise, we have been launched by someone else so need to // allow the user to go back to the caller. moveTaskToBack(false); } else { super.onBackPressed(); } }
@Override public void onClick(View view) { switch (view.getId()) { case R.id.overflow_menu: { mOverflowMenu.show(); break; } case R.id.dialpad_button: // Reset the boolean flag that tracks whether the dialpad was up because // we were in call. Regardless of whether it was true before, we want to // show the dialpad because the user has explicitly clicked the dialpad // button. mInCallDialpadUp = false; showDialpadFragment(true); break; case R.id.call_history_on_dialpad_button: case R.id.call_history_button: // Use explicit CallLogActivity intent instead of ACTION_VIEW + // CONTENT_TYPE, so that we always open our call log from our dialer final Intent intent = new Intent(this, CallLogActivity.class); startActivity(intent); break; case R.id.search_close_button: // Clear the search field if (!TextUtils.isEmpty(mSearchView.getText())) { mDialpadFragment.clearDialpad(); mSearchView.setText(""); } break; case R.id.voice_search_button: final Intent voiceIntent = new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH); startActivityForResult(voiceIntent, ACTIVITY_REQUEST_CODE_VOICE_SEARCH); break; default: { Log.wtf(TAG, "Unexpected onClick event from " + view); break; } } }