Merge "Import translations. DO NOT MERGE" into klp-dev
diff --git a/src/com/android/dialer/DialtactsActivity.java b/src/com/android/dialer/DialtactsActivity.java
index 05c9e2c..3e65916 100644
--- a/src/com/android/dialer/DialtactsActivity.java
+++ b/src/com/android/dialer/DialtactsActivity.java
@@ -141,6 +141,7 @@
private View mMenuButton;
private View mCallHistoryButton;
private View mDialpadButton;
+ private PopupMenu mOverflowMenu;
// Padding view used to shift the fragments up when the dialpad is shown.
private View mBottomPaddingView;
@@ -182,6 +183,20 @@
}
};
+ private class OverflowPopupMenu extends PopupMenu {
+ public OverflowPopupMenu(Context context, View anchor) {
+ super(context, anchor);
+ }
+
+ @Override
+ public void show() {
+ final Menu menu = getMenu();
+ final MenuItem clearFrequents = menu.findItem(R.id.menu_clear_frequents);
+ clearFrequents.setVisible(mPhoneFavoriteFragment.hasFrequents());
+ super.show();
+ }
+ }
+
/**
* Listener used when one of phone numbers in search UI is selected. This will initiate a
* phone call using the phone number.
@@ -409,13 +424,7 @@
public void onClick(View view) {
switch (view.getId()) {
case R.id.overflow_menu: {
- final PopupMenu popupMenu = new PopupMenu(DialtactsActivity.this, view);
- final Menu menu = popupMenu.getMenu();
- popupMenu.inflate(R.menu.dialtacts_options);
- final MenuItem clearFrequents = menu.findItem(R.id.menu_clear_frequents);
- clearFrequents.setVisible(mPhoneFavoriteFragment.hasFrequents());
- popupMenu.setOnMenuItemClickListener(this);
- popupMenu.show();
+ mOverflowMenu.show();
break;
}
case R.id.dialpad_button:
@@ -482,7 +491,7 @@
ft.commit();
}
- private void hideDialpadFragment(boolean animate, boolean clearDialpad) {
+ public void hideDialpadFragment(boolean animate, boolean clearDialpad) {
if (mDialpadFragment == null) return;
if (clearDialpad) {
mDialpadFragment.clearDialpad();
@@ -591,6 +600,12 @@
mMenuButton = findViewById(R.id.overflow_menu);
if (mMenuButton != null) {
mMenuButton.setOnClickListener(this);
+
+ mOverflowMenu = new OverflowPopupMenu(DialtactsActivity.this, mMenuButton);
+ final Menu menu = mOverflowMenu.getMenu();
+ mOverflowMenu.inflate(R.menu.dialtacts_options);
+ mOverflowMenu.setOnMenuItemClickListener(this);
+ mMenuButton.setOnTouchListener(mOverflowMenu.getDragToOpenListener());
}
mCallHistoryButton = findViewById(R.id.call_history_button);
diff --git a/src/com/android/dialer/dialpad/DialpadFragment.java b/src/com/android/dialer/dialpad/DialpadFragment.java
index 4066122..e46a8d3 100644
--- a/src/com/android/dialer/dialpad/DialpadFragment.java
+++ b/src/com/android/dialer/dialpad/DialpadFragment.java
@@ -1082,8 +1082,11 @@
public void callVoicemail() {
startActivity(getVoicemailIntent());
- mClearDigitsOnStop = true;
- getActivity().finish();
+ hideAndClearDialpad();
+ }
+
+ private void hideAndClearDialpad() {
+ ((DialtactsActivity) getActivity()).hideDialpadFragment(false, true);
}
public static class ErrorDialogFragment extends DialogFragment {
@@ -1179,8 +1182,7 @@
(getActivity() instanceof DialtactsActivity ?
((DialtactsActivity) getActivity()).getCallOrigin() : null));
startActivity(intent);
- mClearDigitsOnStop = true;
- getActivity().finish();
+ hideAndClearDialpad();
}
}
}