Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 0cd6f731 authored by Daisuke Miyakawa's avatar Daisuke Miyakawa Committed by Android (Google) Code Review
Browse files

Merge "Show call settings menu correctly when no hard menu key"

parents 5a7063d7 33a3023e
Loading
Loading
Loading
Loading
+6 −0
Original line number Diff line number Diff line
@@ -30,4 +30,10 @@
        android:icon="@drawable/ic_menu_wait"
        android:title="@string/add_wait"
        android:showAsAction="withText" />

    <item
        android:id="@+id/menu_call_settings_dialpad"
        android:title="@string/call_settings"
        android:icon="@drawable/ic_menu_settings_holo_light"
        android:showAsAction="withText" />
</menu>
+13 −2
Original line number Diff line number Diff line
@@ -58,6 +58,7 @@ import android.view.MenuItem;
import android.view.MenuItem.OnMenuItemClickListener;
import android.view.View;
import android.view.View.OnAttachStateChangeListener;
import android.view.ViewConfiguration;
import android.view.inputmethod.InputMethodManager;
import android.widget.SearchView;
import android.widget.SearchView.OnCloseListener;
@@ -658,15 +659,25 @@ public class DialtactsActivity extends Activity {
                    mFilterOptionsMenuItemClickListener);
            callSettingsMenuItem.setVisible(false);
        } else {
            final boolean showCallSettingsMenu;
            if (tab != null && tab.getPosition() == TAB_INDEX_DIALER) {
                searchMenuItem.setVisible(false);
                // When permanent menu key is _not_ available, the call settings menu should be
                // available via DialpadFragment.
                showCallSettingsMenu = ViewConfiguration.get(this).hasPermanentMenuKey();
            } else {
                searchMenuItem.setVisible(true);
                searchMenuItem.setOnMenuItemClickListener(mSearchMenuItemClickListener);
                showCallSettingsMenu = true;
            }
            filterOptionMenuItem.setVisible(false);

            if (showCallSettingsMenu) {
                callSettingsMenuItem.setVisible(true);
                callSettingsMenuItem.setIntent(DialtactsActivity.getCallSettingsIntent());
            } else {
                callSettingsMenuItem.setVisible(false);
            }
        }

        return true;
+10 −0
Original line number Diff line number Diff line
@@ -571,10 +571,20 @@ public class DialpadFragment 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);
        final MenuItem twoSecPauseMenuItem = menu.findItem(R.id.menu_2s_pause);
        final MenuItem waitMenuItem = menu.findItem(R.id.menu_add_wait);

        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", "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.