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

Commit d01fafb7 authored by Alan Viverette's avatar Alan Viverette Committed by Android (Google) Code Review
Browse files

Merge "Avoid NPE when ActionMenuPresenter is intialized with null MenuBuilder"

parents 2f300111 28a84689
Loading
Loading
Loading
Loading
+20 −6
Original line number Diff line number Diff line
@@ -20,6 +20,8 @@ import android.animation.Animator;
import android.animation.AnimatorListenerAdapter;
import android.animation.ObjectAnimator;
import android.animation.PropertyValuesHolder;
import android.annotation.NonNull;
import android.annotation.Nullable;
import android.content.Context;
import android.content.res.Configuration;
import android.content.res.Resources;
@@ -134,7 +136,7 @@ public class ActionMenuPresenter extends BaseMenuPresenter
    }

    @Override
    public void initForMenu(Context context, MenuBuilder menu) {
    public void initForMenu(@NonNull Context context, @Nullable MenuBuilder menu) {
        super.initForMenu(context, menu);

        final Resources res = context.getResources();
@@ -629,8 +631,16 @@ public class ActionMenuPresenter extends BaseMenuPresenter
    }

    public boolean flagActionItems() {
        final ArrayList<MenuItemImpl> visibleItems = mMenu.getVisibleItems();
        final int itemsSize = visibleItems.size();
        final ArrayList<MenuItemImpl> visibleItems;
        final int itemsSize;
        if (mMenu != null) {
            visibleItems = mMenu.getVisibleItems();
            itemsSize = visibleItems.size();
        } else {
            visibleItems = null;
            itemsSize = 0;
        }

        int maxActions = mMaxItems;
        int widthLimit = mActionItemWidthLimit;
        final int querySpec = MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED);
@@ -786,7 +796,7 @@ public class ActionMenuPresenter extends BaseMenuPresenter
        if (isVisible) {
            // Not a submenu, but treat it like one.
            super.onSubMenuSelected(null);
        } else {
        } else if (mMenu != null) {
            mMenu.close(false /* closeAllMenus */);
        }
    }
@@ -938,7 +948,9 @@ public class ActionMenuPresenter extends BaseMenuPresenter

        @Override
        protected void onDismiss() {
            if (mMenu != null) {
                mMenu.close();
            }
            mOverflowPopup = null;

            super.onDismiss();
@@ -999,7 +1011,9 @@ public class ActionMenuPresenter extends BaseMenuPresenter
        }

        public void run() {
            if (mMenu != null) {
                mMenu.changeMenuMode();
            }
            final View menuView = (View) mMenuView;
            if (menuView != null && menuView.getWindowToken() != null && mPopup.tryShow()) {
                mOverflowPopup = mPopup;
+1 −1
Original line number Diff line number Diff line
@@ -622,7 +622,7 @@ public class ActionMenuView extends LinearLayout implements MenuBuilder.ItemInvo
    }

    /** @hide */
    public void initialize(MenuBuilder menu) {
    public void initialize(@Nullable MenuBuilder menu) {
        mMenu = menu;
    }

+1 −1
Original line number Diff line number Diff line
@@ -2070,7 +2070,7 @@ public class Toolbar extends ViewGroup {
        MenuItemImpl mCurrentExpandedItem;

        @Override
        public void initForMenu(Context context, MenuBuilder menu) {
        public void initForMenu(@NonNull Context context, @Nullable MenuBuilder menu) {
            // Clear the expanded action view when menus change.
            if (mMenu != null && mCurrentExpandedItem != null) {
                mMenu.collapseItemActionView(mCurrentExpandedItem);
+3 −1
Original line number Diff line number Diff line
@@ -16,6 +16,8 @@

package com.android.internal.view.menu;

import android.annotation.NonNull;
import android.annotation.Nullable;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
@@ -58,7 +60,7 @@ public abstract class BaseMenuPresenter implements MenuPresenter {
    }

    @Override
    public void initForMenu(Context context, MenuBuilder menu) {
    public void initForMenu(@NonNull Context context, @Nullable MenuBuilder menu) {
        mContext = context;
        mInflater = LayoutInflater.from(mContext);
        mMenu = menu;
+3 −1
Original line number Diff line number Diff line
@@ -17,6 +17,8 @@ package com.android.internal.view.menu;

import com.android.internal.view.menu.MenuView.ItemView;

import android.annotation.NonNull;
import android.annotation.Nullable;
import android.content.Context;
import android.os.Bundle;
import android.os.Parcelable;
@@ -49,7 +51,7 @@ public class IconMenuPresenter extends BaseMenuPresenter {
    }

    @Override
    public void initForMenu(Context context, MenuBuilder menu) {
    public void initForMenu(@NonNull Context context, @Nullable MenuBuilder menu) {
        super.initForMenu(context, menu);
        mMaxItems = -1;
    }
Loading