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

Commit a26f82e9 authored by Vladislav Kaznacheev's avatar Vladislav Kaznacheev Committed by android-build-merger
Browse files

Merge "Display shortcut inline with item title in cascading menu" into pi-dev

am: ae957a78

Change-Id: I484cb6f01191ac5ce044fd94f7e32970aec2dfb1
parents 20064071 ae957a78
Loading
Loading
Loading
Loading
+2 −1
Original line number Original line Diff line number Diff line
@@ -47,6 +47,7 @@ import com.android.internal.util.Preconditions;
 */
 */
final class CascadingMenuPopup extends MenuPopup implements MenuPresenter, OnKeyListener,
final class CascadingMenuPopup extends MenuPopup implements MenuPresenter, OnKeyListener,
        PopupWindow.OnDismissListener {
        PopupWindow.OnDismissListener {
    private static final int ITEM_LAYOUT = com.android.internal.R.layout.cascading_menu_item_layout;


    @Retention(RetentionPolicy.SOURCE)
    @Retention(RetentionPolicy.SOURCE)
    @IntDef({HORIZ_POSITION_LEFT, HORIZ_POSITION_RIGHT})
    @IntDef({HORIZ_POSITION_LEFT, HORIZ_POSITION_RIGHT})
@@ -348,7 +349,7 @@ final class CascadingMenuPopup extends MenuPopup implements MenuPresenter, OnKey
     */
     */
    private void showMenu(@NonNull MenuBuilder menu) {
    private void showMenu(@NonNull MenuBuilder menu) {
        final LayoutInflater inflater = LayoutInflater.from(mContext);
        final LayoutInflater inflater = LayoutInflater.from(mContext);
        final MenuAdapter adapter = new MenuAdapter(menu, inflater, mOverflowOnly);
        final MenuAdapter adapter = new MenuAdapter(menu, inflater, mOverflowOnly, ITEM_LAYOUT);


        // Apply "force show icon" setting. There are 3 cases:
        // Apply "force show icon" setting. There are 3 cases:
        // (1) This is the top level menu and icon spacing is forced. Add spacing.
        // (1) This is the top level menu and icon spacing is forced. Add spacing.
+5 −4
Original line number Original line Diff line number Diff line
@@ -23,8 +23,6 @@ import android.widget.BaseAdapter;
import java.util.ArrayList;
import java.util.ArrayList;


public class MenuAdapter extends BaseAdapter {
public class MenuAdapter extends BaseAdapter {
    static final int ITEM_LAYOUT = com.android.internal.R.layout.popup_menu_item_layout;

    MenuBuilder mAdapterMenu;
    MenuBuilder mAdapterMenu;


    private int mExpandedIndex = -1;
    private int mExpandedIndex = -1;
@@ -32,11 +30,14 @@ public class MenuAdapter extends BaseAdapter {
    private boolean mForceShowIcon;
    private boolean mForceShowIcon;
    private final boolean mOverflowOnly;
    private final boolean mOverflowOnly;
    private final LayoutInflater mInflater;
    private final LayoutInflater mInflater;
    private final int mItemLayoutRes;


    public MenuAdapter(MenuBuilder menu, LayoutInflater inflater, boolean overflowOnly) {
    public MenuAdapter(MenuBuilder menu, LayoutInflater inflater, boolean overflowOnly,
            int itemLayoutRes) {
        mOverflowOnly = overflowOnly;
        mOverflowOnly = overflowOnly;
        mInflater = inflater;
        mInflater = inflater;
        mAdapterMenu = menu;
        mAdapterMenu = menu;
        mItemLayoutRes = itemLayoutRes;
        findExpandedIndex();
        findExpandedIndex();
    }
    }


@@ -78,7 +79,7 @@ public class MenuAdapter extends BaseAdapter {


    public View getView(int position, View convertView, ViewGroup parent) {
    public View getView(int position, View convertView, ViewGroup parent) {
        if (convertView == null) {
        if (convertView == null) {
            convertView = mInflater.inflate(ITEM_LAYOUT, parent, false);
            convertView = mInflater.inflate(mItemLayoutRes, parent, false);
        }
        }


        final int currGroupId = getItem(position).getGroupId();
        final int currGroupId = getItem(position).getGroupId();
+2 −1
Original line number Original line Diff line number Diff line
@@ -43,6 +43,7 @@ import com.android.internal.util.Preconditions;
 */
 */
final class StandardMenuPopup extends MenuPopup implements OnDismissListener, OnItemClickListener,
final class StandardMenuPopup extends MenuPopup implements OnDismissListener, OnItemClickListener,
        MenuPresenter, OnKeyListener {
        MenuPresenter, OnKeyListener {
    private static final int ITEM_LAYOUT = com.android.internal.R.layout.popup_menu_item_layout;


    private final Context mContext;
    private final Context mContext;


@@ -116,7 +117,7 @@ final class StandardMenuPopup extends MenuPopup implements OnDismissListener, On
        mMenu = menu;
        mMenu = menu;
        mOverflowOnly = overflowOnly;
        mOverflowOnly = overflowOnly;
        final LayoutInflater inflater = LayoutInflater.from(context);
        final LayoutInflater inflater = LayoutInflater.from(context);
        mAdapter = new MenuAdapter(menu, inflater, mOverflowOnly);
        mAdapter = new MenuAdapter(menu, inflater, mOverflowOnly, ITEM_LAYOUT);
        mPopupStyleAttr = popupStyleAttr;
        mPopupStyleAttr = popupStyleAttr;
        mPopupStyleRes = popupStyleRes;
        mPopupStyleRes = popupStyleRes;


+82 −0
Original line number Original line Diff line number Diff line
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (C) 2018 The Android Open Source Project

     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
     You may obtain a copy of the License at

          http://www.apache.org/licenses/LICENSE-2.0

     Unless required by applicable law or agreed to in writing, software
     distributed under the License is distributed on an "AS IS" BASIS,
     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     See the License for the specific language governing permissions and
     limitations under the License.
-->

<!-- Keep in sync with popup_menu_item_layout.xml (which only differs in the title and shortcut
    position). -->
<com.android.internal.view.menu.ListMenuItemView xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:minWidth="196dip"
    android:orientation="vertical" >

    <ImageView
        android:id="@+id/group_divider"
        android:layout_width="match_parent"
        android:layout_height="1dip"
        android:layout_marginTop="4dip"
        android:layout_marginBottom="4dip"
        android:background="@drawable/list_divider_material" />

    <LinearLayout
        android:id="@+id/content"
        android:layout_width="match_parent"
        android:layout_height="?attr/dropdownListPreferredItemHeight"
        android:paddingEnd="16dip"
        android:duplicateParentState="true" >

        <!-- Icon will be inserted here. -->

        <TextView
            android:id="@+id/title"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center_vertical"
            android:layout_marginStart="16dip"
            android:textAppearance="?attr/textAppearanceLargePopupMenu"
            android:singleLine="true"
            android:duplicateParentState="true"
            android:textAlignment="viewStart" />

        <Space
            android:layout_width="0dip"
            android:layout_height="1dip"
            android:layout_weight="1"/>

        <TextView
            android:id="@+id/shortcut"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center_vertical"
            android:layout_marginStart="16dip"
            android:textAppearance="?attr/textAppearanceSmallPopupMenu"
            android:singleLine="true"
            android:duplicateParentState="true"
            android:textAlignment="viewEnd" />

        <ImageView
            android:id="@+id/submenuarrow"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:layout_marginStart="8dp"
            android:scaleType="center"
            android:visibility="gone" />

        <!-- Checkbox, and/or radio button will be inserted here. -->

    </LinearLayout>

</com.android.internal.view.menu.ListMenuItemView>
+1 −0
Original line number Original line Diff line number Diff line
@@ -1421,6 +1421,7 @@
  <java-symbol type="layout" name="action_menu_layout" />
  <java-symbol type="layout" name="action_menu_layout" />
  <java-symbol type="layout" name="action_mode_close_item" />
  <java-symbol type="layout" name="action_mode_close_item" />
  <java-symbol type="layout" name="alert_dialog" />
  <java-symbol type="layout" name="alert_dialog" />
  <java-symbol type="layout" name="cascading_menu_item_layout" />
  <java-symbol type="layout" name="choose_account" />
  <java-symbol type="layout" name="choose_account" />
  <java-symbol type="layout" name="choose_account_row" />
  <java-symbol type="layout" name="choose_account_row" />
  <java-symbol type="layout" name="choose_account_type" />
  <java-symbol type="layout" name="choose_account_type" />