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

Commit 0f46dd0d authored by Yigit Boyar's avatar Yigit Boyar Committed by Android Git Automerger
Browse files

am 646e0428: Merge "Find activity from context in menu inflator for click events" into lmp-dev

* commit '646e0428a489d786c29a9ad48c1f21f3d644af42':
  Find activity from context in menu inflator for click events
parents e8e3125e 1a74dc45
Loading
Loading
Loading
Loading
+19 −2
Original line number Original line Diff line number Diff line
@@ -23,6 +23,7 @@ import org.xmlpull.v1.XmlPullParserException;


import android.app.Activity;
import android.app.Activity;
import android.content.Context;
import android.content.Context;
import android.content.ContextWrapper;
import android.content.res.TypedArray;
import android.content.res.TypedArray;
import android.content.res.XmlResourceParser;
import android.content.res.XmlResourceParser;
import android.util.AttributeSet;
import android.util.AttributeSet;
@@ -74,7 +75,6 @@ public class MenuInflater {
     */
     */
    public MenuInflater(Context context) {
    public MenuInflater(Context context) {
        mContext = context;
        mContext = context;
        mRealOwner = context;
        mActionViewConstructorArguments = new Object[] {context};
        mActionViewConstructorArguments = new Object[] {context};
        mActionProviderConstructorArguments = mActionViewConstructorArguments;
        mActionProviderConstructorArguments = mActionViewConstructorArguments;
    }
    }
@@ -260,6 +260,23 @@ public class MenuInflater {
        }
        }
    }
    }


    private Object getRealOwner() {
        if (mRealOwner == null) {
            mRealOwner = findRealOwner(mContext);
        }
        return mRealOwner;
    }

    private Object findRealOwner(Object owner) {
        if (owner instanceof Activity) {
            return owner;
        }
        if (owner instanceof ContextWrapper) {
            return findRealOwner(((ContextWrapper) owner).getBaseContext());
        }
        return owner;
    }
    
    /**
    /**
     * State for the current menu.
     * State for the current menu.
     * <p>
     * <p>
@@ -439,7 +456,7 @@ public class MenuInflater {
                            + "be used within a restricted context");
                            + "be used within a restricted context");
                }
                }
                item.setOnMenuItemClickListener(
                item.setOnMenuItemClickListener(
                        new InflatedOnMenuItemClickListener(mRealOwner, itemListenerMethodName));
                        new InflatedOnMenuItemClickListener(getRealOwner(), itemListenerMethodName));
            }
            }


            if (item instanceof MenuItemImpl) {
            if (item instanceof MenuItemImpl) {