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