ADD week 5
This commit is contained in:
143
02-Easy5/E5/sources/androidx/appcompat/widget/PopupMenu.java
Normal file
143
02-Easy5/E5/sources/androidx/appcompat/widget/PopupMenu.java
Normal file
@ -0,0 +1,143 @@
|
||||
package androidx.appcompat.widget;
|
||||
|
||||
import android.content.Context;
|
||||
import android.view.Menu;
|
||||
import android.view.MenuInflater;
|
||||
import android.view.MenuItem;
|
||||
import android.view.View;
|
||||
import android.widget.ListView;
|
||||
import android.widget.PopupWindow;
|
||||
import androidx.appcompat.R;
|
||||
import androidx.appcompat.view.SupportMenuInflater;
|
||||
import androidx.appcompat.view.menu.MenuBuilder;
|
||||
import androidx.appcompat.view.menu.MenuPopupHelper;
|
||||
import androidx.appcompat.view.menu.ShowableListMenu;
|
||||
|
||||
/* loaded from: classes.dex */
|
||||
public class PopupMenu {
|
||||
private final View mAnchor;
|
||||
private final Context mContext;
|
||||
private View.OnTouchListener mDragListener;
|
||||
private final MenuBuilder mMenu;
|
||||
OnMenuItemClickListener mMenuItemClickListener;
|
||||
OnDismissListener mOnDismissListener;
|
||||
final MenuPopupHelper mPopup;
|
||||
|
||||
public interface OnDismissListener {
|
||||
void onDismiss(PopupMenu popupMenu);
|
||||
}
|
||||
|
||||
public interface OnMenuItemClickListener {
|
||||
boolean onMenuItemClick(MenuItem menuItem);
|
||||
}
|
||||
|
||||
public Menu getMenu() {
|
||||
return this.mMenu;
|
||||
}
|
||||
|
||||
public void setOnDismissListener(OnDismissListener onDismissListener) {
|
||||
this.mOnDismissListener = onDismissListener;
|
||||
}
|
||||
|
||||
public void setOnMenuItemClickListener(OnMenuItemClickListener onMenuItemClickListener) {
|
||||
this.mMenuItemClickListener = onMenuItemClickListener;
|
||||
}
|
||||
|
||||
public PopupMenu(Context context, View view) {
|
||||
this(context, view, 0);
|
||||
}
|
||||
|
||||
public PopupMenu(Context context, View view, int i) {
|
||||
this(context, view, i, R.attr.popupMenuStyle, 0);
|
||||
}
|
||||
|
||||
public PopupMenu(Context context, View view, int i, int i2, int i3) {
|
||||
this.mContext = context;
|
||||
this.mAnchor = view;
|
||||
MenuBuilder menuBuilder = new MenuBuilder(context);
|
||||
this.mMenu = menuBuilder;
|
||||
menuBuilder.setCallback(new MenuBuilder.Callback() { // from class: androidx.appcompat.widget.PopupMenu.1
|
||||
@Override // androidx.appcompat.view.menu.MenuBuilder.Callback
|
||||
public void onMenuModeChange(MenuBuilder menuBuilder2) {
|
||||
}
|
||||
|
||||
@Override // androidx.appcompat.view.menu.MenuBuilder.Callback
|
||||
public boolean onMenuItemSelected(MenuBuilder menuBuilder2, MenuItem menuItem) {
|
||||
if (PopupMenu.this.mMenuItemClickListener != null) {
|
||||
return PopupMenu.this.mMenuItemClickListener.onMenuItemClick(menuItem);
|
||||
}
|
||||
return false;
|
||||
}
|
||||
});
|
||||
MenuPopupHelper menuPopupHelper = new MenuPopupHelper(context, menuBuilder, view, false, i2, i3);
|
||||
this.mPopup = menuPopupHelper;
|
||||
menuPopupHelper.setGravity(i);
|
||||
menuPopupHelper.setOnDismissListener(new PopupWindow.OnDismissListener() { // from class: androidx.appcompat.widget.PopupMenu.2
|
||||
@Override // android.widget.PopupWindow.OnDismissListener
|
||||
public void onDismiss() {
|
||||
if (PopupMenu.this.mOnDismissListener != null) {
|
||||
PopupMenu.this.mOnDismissListener.onDismiss(PopupMenu.this);
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
public void setGravity(int i) {
|
||||
this.mPopup.setGravity(i);
|
||||
}
|
||||
|
||||
public int getGravity() {
|
||||
return this.mPopup.getGravity();
|
||||
}
|
||||
|
||||
public View.OnTouchListener getDragToOpenListener() {
|
||||
if (this.mDragListener == null) {
|
||||
this.mDragListener = new ForwardingListener(this.mAnchor) { // from class: androidx.appcompat.widget.PopupMenu.3
|
||||
@Override // androidx.appcompat.widget.ForwardingListener
|
||||
protected boolean onForwardingStarted() {
|
||||
PopupMenu.this.show();
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override // androidx.appcompat.widget.ForwardingListener
|
||||
protected boolean onForwardingStopped() {
|
||||
PopupMenu.this.dismiss();
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override // androidx.appcompat.widget.ForwardingListener
|
||||
public ShowableListMenu getPopup() {
|
||||
return PopupMenu.this.mPopup.getPopup();
|
||||
}
|
||||
};
|
||||
}
|
||||
return this.mDragListener;
|
||||
}
|
||||
|
||||
public MenuInflater getMenuInflater() {
|
||||
return new SupportMenuInflater(this.mContext);
|
||||
}
|
||||
|
||||
public void inflate(int i) {
|
||||
getMenuInflater().inflate(i, this.mMenu);
|
||||
}
|
||||
|
||||
public void show() {
|
||||
this.mPopup.show();
|
||||
}
|
||||
|
||||
public void dismiss() {
|
||||
this.mPopup.dismiss();
|
||||
}
|
||||
|
||||
public void setForceShowIcon(boolean z) {
|
||||
this.mPopup.setForceShowIcon(z);
|
||||
}
|
||||
|
||||
ListView getMenuListView() {
|
||||
if (this.mPopup.isShowing()) {
|
||||
return this.mPopup.getListView();
|
||||
}
|
||||
return null;
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user