Add Call Settings menu in dialpad fragment.
Also fix some issues around the other menus, which are
shown even when a user doesn't enter digits.
Bug: 4971637
Change-Id: I6bfc26cc19d0cc397f7a8e585e87330336ae4407
diff --git a/res/values/strings.xml b/res/values/strings.xml
index c9b2787..8e21762 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -967,6 +967,9 @@
<!-- Title for the call disambiguation dialog -->
<string name="call_disambig_title">Call using</string>
+ <!-- Menu item label for call settings [CHAR LIMIT=30] -->
+ <string name="call_settings">Call settings</string>
+
<!-- Title for the sms disambiguation dialog -->
<string name="sms_disambig_title">Text using</string>
diff --git a/src/com/android/contacts/dialpad/DialpadFragment.java b/src/com/android/contacts/dialpad/DialpadFragment.java
index 778fe42..7be16f5 100644
--- a/src/com/android/contacts/dialpad/DialpadFragment.java
+++ b/src/com/android/contacts/dialpad/DialpadFragment.java
@@ -20,7 +20,6 @@
import com.android.contacts.R;
import com.android.contacts.SpecialCharSequenceMgr;
import com.android.contacts.activities.DialtactsActivity;
-import com.android.contacts.list.StrequentContactListFragment.Listener;
import com.android.internal.telephony.ITelephony;
import com.android.phone.CallLogAsync;
import com.android.phone.HapticFeedback;
@@ -111,9 +110,11 @@
//Member variables for dialpad options
private MenuItem m2SecPauseMenuItem;
private MenuItem mWaitMenuItem;
+ private MenuItem mCallSettingsItem;
private static final int MENU_ADD_CONTACTS = 1;
private static final int MENU_2S_PAUSE = 2;
private static final int MENU_WAIT = 3;
+ private static final int MENU_CALL_SETTINGS = 4;
private boolean mHasVoicemail = false;
@@ -529,18 +530,27 @@
.setIcon(R.drawable.ic_menu_2sec_pause);
mWaitMenuItem = menu.add(0, MENU_WAIT, 0, R.string.add_wait)
.setIcon(R.drawable.ic_menu_wait);
+ // TODO: icon
+ mCallSettingsItem = menu.add(0, MENU_CALL_SETTINGS, 0, R.string.call_settings);
}
@Override
public void onPrepareOptionsMenu(Menu menu) {
- // If we have not been inflated yet, there is no menu
- if (mDialpadChooser == null) return;
+ if (mDialpadChooser == null || mDigits == null) {
+ // The layout itself isn't ready yet. Let's ignore this call.
+ return;
+ }
+ // We show "Call Settings" menu every time
+ mCallSettingsItem.setVisible(true);
+ Intent settingsIntent = new Intent(Intent.ACTION_MAIN);
+ settingsIntent.setClassName("com.android.phone", "com.android.phone.CallFeaturesSetting");
+ mCallSettingsItem.setIntent(settingsIntent);
+
+ // We show "add to contacts", "2sec pause", and "add wait" menus only when the user is
+ // seeing usual dialpads and has typed at least one digit.
// We never show a menu if the "choose dialpad" UI is up.
- // Otherwise the menu is allowed (see onPrepareOptionsMenu() below.)
- if (!dialpadChooserVisible()) return;
-
- if (isDigitsEmpty()) {
+ if (dialpadChooserVisible() || isDigitsEmpty()) {
mAddToContactMenuItem.setVisible(false);
m2SecPauseMenuItem.setVisible(false);
mWaitMenuItem.setVisible(false);