diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/com/android/dialer/NewDialtactsActivity.java | 3 | ||||
-rw-r--r-- | src/com/android/dialer/dialpad/NewDialpadFragment.java | 59 |
2 files changed, 26 insertions, 36 deletions
diff --git a/src/com/android/dialer/NewDialtactsActivity.java b/src/com/android/dialer/NewDialtactsActivity.java index 6d2bb3fdb..c2d58b2c1 100644 --- a/src/com/android/dialer/NewDialtactsActivity.java +++ b/src/com/android/dialer/NewDialtactsActivity.java @@ -323,7 +323,6 @@ public class NewDialtactsActivity extends TransactionSafeActivity implements Vie @Override public void onClick(View view) { switch (view.getId()) { - case R.id.overflow_menu_on_dialpad: case R.id.overflow_menu: { final PopupMenu popupMenu = new PopupMenu(NewDialtactsActivity.this, view); final Menu menu = popupMenu.getMenu(); @@ -479,8 +478,6 @@ public class NewDialtactsActivity extends TransactionSafeActivity implements Vie } public void setupFakeActionBarItemsForDialpadFragment() { - final View overflowButton = findViewById(R.id.overflow_menu_on_dialpad); - overflowButton.setOnClickListener(this); final View callhistoryButton = findViewById(R.id.call_history_on_dialpad_button); callhistoryButton.setOnClickListener(this); } diff --git a/src/com/android/dialer/dialpad/NewDialpadFragment.java b/src/com/android/dialer/dialpad/NewDialpadFragment.java index 659c608c2..7eb7c0f99 100644 --- a/src/com/android/dialer/dialpad/NewDialpadFragment.java +++ b/src/com/android/dialer/dialpad/NewDialpadFragment.java @@ -426,6 +426,9 @@ public class NewDialpadFragment extends Fragment throw new ClassCastException(activity.toString() + " must implement OnDialpadFragmentStartedListener"); } + + final View overflowButton = getView().findViewById(R.id.overflow_menu_on_dialpad); + overflowButton.setOnClickListener(this); } private boolean isLayoutReady() { @@ -605,7 +608,9 @@ public class NewDialpadFragment extends Fragment numberView = (TextView) dialpadKey.findViewById(R.id.dialpad_key_number); lettersView = (TextView) dialpadKey.findViewById(R.id.dialpad_key_letters); numberView.setText(resources.getString(numberIds[i])); - lettersView.setText(resources.getString(letterIds[i])); + if (lettersView != null) { + lettersView.setText(resources.getString(letterIds[i])); + } } // Long-pressing one button will initiate Voicemail. @@ -751,24 +756,8 @@ public class NewDialpadFragment extends Fragment } private void setupMenuItems(Menu menu) { - final MenuItem callSettingsMenuItem = menu.findItem(R.id.menu_call_settings_dialpad); final MenuItem addToContactMenuItem = menu.findItem(R.id.menu_add_contacts); - // Check if all the menu items are inflated correctly. As a shortcut, we assume all menu - // items are ready if the first item is non-null. - if (callSettingsMenuItem == null) { - return; - } - - final Activity activity = getActivity(); - if (activity != null && ViewConfiguration.get(activity).hasPermanentMenuKey()) { - // Call settings should be available via its parent Activity. - callSettingsMenuItem.setVisible(false); - } else { - callSettingsMenuItem.setVisible(true); - callSettingsMenuItem.setIntent(DialtactsActivity.getCallSettingsIntent()); - } - // We show "add to contacts" menu only when the user is // seeing usual dialpad and has typed at least one digit. // We never show a menu if the "choose dialpad" UI is up. @@ -776,7 +765,6 @@ public class NewDialpadFragment extends Fragment addToContactMenuItem.setVisible(false); } else { final CharSequence digits = mDigits.getText(); - // Put the current digits string into an intent addToContactMenuItem.setIntent(getAddToContactIntent(digits)); addToContactMenuItem.setVisible(true); @@ -942,6 +930,15 @@ public class NewDialpadFragment extends Fragment @Override public void onClick(View view) { switch (view.getId()) { + case R.id.overflow_menu_on_dialpad: { + final PopupMenu popupMenu = new PopupMenu(getActivity(), view); + final Menu menu = popupMenu.getMenu(); + popupMenu.inflate(R.menu.dialpad_options_new); + popupMenu.setOnMenuItemClickListener(this); + setupMenuItems(menu); + popupMenu.show(); + break; + } case R.id.deleteButton: { keyPressed(KeyEvent.KEYCODE_DEL); return; @@ -964,19 +961,6 @@ public class NewDialpadFragment extends Fragment } } - public PopupMenu constructPopupMenu(View anchorView) { - final Context context = getActivity(); - if (context == null) { - return null; - } - final PopupMenu popupMenu = new PopupMenu(context, anchorView); - final Menu menu = popupMenu.getMenu(); - popupMenu.inflate(R.menu.dialpad_options); - popupMenu.setOnMenuItemClickListener(this); - setupMenuItems(menu); - return popupMenu; - } - @Override public boolean onLongClick(View view) { final Editable digits = mDigits.getText(); @@ -1521,13 +1505,22 @@ public class NewDialpadFragment extends Fragment @Override public boolean onMenuItemClick(MenuItem item) { - return onOptionsItemSelected(item); + // R.id.menu_add_contacts already has an add to contact intent populated by setupMenuItems + switch (item.getItemId()) { + case R.id.menu_2s_pause: + updateDialString(PAUSE); + return true; + case R.id.menu_add_wait: + updateDialString(WAIT); + return true; + default: + return false; + } } /** * Updates the dial string (mDigits) after inserting a Pause character (,) * or Wait character (;). - * TODO krelease: add new dialpad buttons to add PAUSE and WAIT characters */ private void updateDialString(char newDigit) { if(newDigit != WAIT && newDigit != PAUSE) { |