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

Commit ddc453a3 authored by Oren Blasberg's avatar Oren Blasberg
Browse files

Add a new submenu arrow for popup menu items.

This arrow is shown when the item corresponds to a submenu.

Bug: 20127825
Change-Id: Ida70d7707e00e1cda84ed6135333f09a511cd6c5
parent 008d6d03
Loading
Loading
Loading
Loading
+4 −2
Original line number Diff line number Diff line
@@ -241,10 +241,10 @@ package android {
    field public static final int activatedBackgroundIndicator = 16843517; // 0x10102fd
    field public static final int activityCloseEnterAnimation = 16842938; // 0x10100ba
    field public static final int activityCloseExitAnimation = 16842939; // 0x10100bb
    field public static final int activityHeight = 16844019; // 0x10104f3
    field public static final int activityHeight = 16844021; // 0x10104f5
    field public static final int activityOpenEnterAnimation = 16842936; // 0x10100b8
    field public static final int activityOpenExitAnimation = 16842937; // 0x10100b9
    field public static final int activityWidth = 16844018; // 0x10104f2
    field public static final int activityWidth = 16844020; // 0x10104f4
    field public static final int addPrintersActivity = 16843750; // 0x10103e6
    field public static final int addStatesFromChildren = 16842992; // 0x10100f0
    field public static final int adjustViewBounds = 16843038; // 0x101011e
@@ -786,6 +786,7 @@ package android {
    field public static final int listChoiceIndicatorSingle = 16843289; // 0x1010219
    field public static final int listDivider = 16843284; // 0x1010214
    field public static final int listDividerAlertDialog = 16843525; // 0x1010305
    field public static final int listMenuViewStyle = 16844018; // 0x10104f2
    field public static final int listPopupWindowStyle = 16843519; // 0x10102ff
    field public static final int listPreferredItemHeight = 16842829; // 0x101004d
    field public static final int listPreferredItemHeightLarge = 16843654; // 0x1010386
@@ -1148,6 +1149,7 @@ package android {
    field public static final int strokeLineJoin = 16843788; // 0x101040c
    field public static final int strokeMiterLimit = 16843789; // 0x101040d
    field public static final int strokeWidth = 16843783; // 0x1010407
    field public static final int subMenuArrow = 16844019; // 0x10104f3
    field public static final int submitBackground = 16843912; // 0x1010488
    field public static final int subtitle = 16843473; // 0x10102d1
    field public static final int subtitleTextAppearance = 16843823; // 0x101042f
+4 −2
Original line number Diff line number Diff line
@@ -333,10 +333,10 @@ package android {
    field public static final int activatedBackgroundIndicator = 16843517; // 0x10102fd
    field public static final int activityCloseEnterAnimation = 16842938; // 0x10100ba
    field public static final int activityCloseExitAnimation = 16842939; // 0x10100bb
    field public static final int activityHeight = 16844019; // 0x10104f3
    field public static final int activityHeight = 16844021; // 0x10104f5
    field public static final int activityOpenEnterAnimation = 16842936; // 0x10100b8
    field public static final int activityOpenExitAnimation = 16842937; // 0x10100b9
    field public static final int activityWidth = 16844018; // 0x10104f2
    field public static final int activityWidth = 16844020; // 0x10104f4
    field public static final int addPrintersActivity = 16843750; // 0x10103e6
    field public static final int addStatesFromChildren = 16842992; // 0x10100f0
    field public static final int adjustViewBounds = 16843038; // 0x101011e
@@ -878,6 +878,7 @@ package android {
    field public static final int listChoiceIndicatorSingle = 16843289; // 0x1010219
    field public static final int listDivider = 16843284; // 0x1010214
    field public static final int listDividerAlertDialog = 16843525; // 0x1010305
    field public static final int listMenuViewStyle = 16844018; // 0x10104f2
    field public static final int listPopupWindowStyle = 16843519; // 0x10102ff
    field public static final int listPreferredItemHeight = 16842829; // 0x101004d
    field public static final int listPreferredItemHeightLarge = 16843654; // 0x1010386
@@ -1244,6 +1245,7 @@ package android {
    field public static final int strokeLineJoin = 16843788; // 0x101040c
    field public static final int strokeMiterLimit = 16843789; // 0x101040d
    field public static final int strokeWidth = 16843783; // 0x1010407
    field public static final int subMenuArrow = 16844019; // 0x10104f3
    field public static final int submitBackground = 16843912; // 0x1010488
    field public static final int subtitle = 16843473; // 0x10102d1
    field public static final int subtitleTextAppearance = 16843823; // 0x101042f
+15 −1
Original line number Diff line number Diff line
@@ -43,11 +43,13 @@ public class ListMenuItemView extends LinearLayout implements MenuView.ItemView
    private TextView mTitleView;
    private CheckBox mCheckBox;
    private TextView mShortcutView;
    private ImageView mSubMenuArrowView;
    
    private Drawable mBackground;
    private int mTextAppearance;
    private Context mTextAppearanceContext;
    private boolean mPreserveIconSpacing;
    private Drawable mSubMenuArrow;
    
    private int mMenuType;
    
@@ -68,6 +70,7 @@ public class ListMenuItemView extends LinearLayout implements MenuView.ItemView
        mPreserveIconSpacing = a.getBoolean(
                com.android.internal.R.styleable.MenuView_preserveIconSpacing, false);
        mTextAppearanceContext = context;
        mSubMenuArrow = a.getDrawable(com.android.internal.R.styleable.MenuView_subMenuArrow);
        
        a.recycle();
    }
@@ -77,7 +80,7 @@ public class ListMenuItemView extends LinearLayout implements MenuView.ItemView
    }

    public ListMenuItemView(Context context, AttributeSet attrs) {
        this(context, attrs, 0);
        this(context, attrs, com.android.internal.R.attr.listMenuViewStyle);
    }

    @Override
@@ -93,6 +96,10 @@ public class ListMenuItemView extends LinearLayout implements MenuView.ItemView
        }
        
        mShortcutView = (TextView) findViewById(com.android.internal.R.id.shortcut);
        mSubMenuArrowView = (ImageView) findViewById(com.android.internal.R.id.submenuarrow);
        if (mSubMenuArrowView != null) {
            mSubMenuArrowView.setImageDrawable(mSubMenuArrow);
        }
    }

    public void initialize(MenuItemImpl itemData, int menuType) {
@@ -106,6 +113,7 @@ public class ListMenuItemView extends LinearLayout implements MenuView.ItemView
        setShortcut(itemData.shouldShowShortcut(), itemData.getShortcut());
        setIcon(itemData.getIcon());
        setEnabled(itemData.isEnabled());
        setSubMenuArrowVisible(itemData.hasSubMenu());
    }

    public void setForceShowIcon(boolean forceShow) {
@@ -186,6 +194,12 @@ public class ListMenuItemView extends LinearLayout implements MenuView.ItemView
        compoundButton.setChecked(checked);
    }

    private void setSubMenuArrowVisible(boolean hasSubmenu) {
        if (mSubMenuArrowView != null) {
            mSubMenuArrowView.setVisibility(hasSubmenu ? View.VISIBLE : View.GONE);
        }
    }

    public void setShortcut(boolean showShortcut, char shortcutKey) {
        final int newVisibility = (showShortcut && mItemData.shouldShowShortcut())
                ? VISIBLE : GONE;
+34 −0
Original line number Diff line number Diff line
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (C) 2015 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.
-->

<vector xmlns:android="http://schemas.android.com/apk/res/android"
    android:height="25.0dp"
    android:viewportHeight="25.0"
    android:viewportWidth="24.0"
    android:width="25.0dp"
    android:tint="?attr/colorControlNormal"
    android:autoMirrored="true">

    <group
        android:name="arrow"
        android:rotation="90.0"
        android:pivotX="12.0"
        android:pivotY="13.0"
        android:translateY="1.0">
        <path android:fillColor="#000000" android:pathData="M7,14 L12,9 L17,14 L7,14 Z" />
        <path android:pathData="M0,0 L24,0 L24,24 L0,24 L0,0 Z" />
    </group>
</vector>
 No newline at end of file
+9 −0
Original line number Diff line number Diff line
@@ -57,6 +57,15 @@

    </RelativeLayout>

    <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. -->
    
</com.android.internal.view.menu.ListMenuItemView>
Loading