101 lines
		
	
	
		
			3.3 KiB
		
	
	
	
		
			Java
		
	
	
	
	
	
			
		
		
	
	
			101 lines
		
	
	
		
			3.3 KiB
		
	
	
	
		
			Java
		
	
	
	
	
	
| package androidx.appcompat.view.menu;
 | |
| 
 | |
| import android.view.LayoutInflater;
 | |
| import android.view.View;
 | |
| import android.view.ViewGroup;
 | |
| import android.widget.BaseAdapter;
 | |
| import androidx.appcompat.view.menu.MenuView;
 | |
| import java.util.ArrayList;
 | |
| 
 | |
| /* loaded from: classes.dex */
 | |
| public class MenuAdapter extends BaseAdapter {
 | |
|     MenuBuilder mAdapterMenu;
 | |
|     private int mExpandedIndex = -1;
 | |
|     private boolean mForceShowIcon;
 | |
|     private final LayoutInflater mInflater;
 | |
|     private final int mItemLayoutRes;
 | |
|     private final boolean mOverflowOnly;
 | |
| 
 | |
|     public MenuBuilder getAdapterMenu() {
 | |
|         return this.mAdapterMenu;
 | |
|     }
 | |
| 
 | |
|     public boolean getForceShowIcon() {
 | |
|         return this.mForceShowIcon;
 | |
|     }
 | |
| 
 | |
|     @Override // android.widget.Adapter
 | |
|     public long getItemId(int i) {
 | |
|         return i;
 | |
|     }
 | |
| 
 | |
|     public void setForceShowIcon(boolean z) {
 | |
|         this.mForceShowIcon = z;
 | |
|     }
 | |
| 
 | |
|     public MenuAdapter(MenuBuilder menuBuilder, LayoutInflater layoutInflater, boolean z, int i) {
 | |
|         this.mOverflowOnly = z;
 | |
|         this.mInflater = layoutInflater;
 | |
|         this.mAdapterMenu = menuBuilder;
 | |
|         this.mItemLayoutRes = i;
 | |
|         findExpandedIndex();
 | |
|     }
 | |
| 
 | |
|     @Override // android.widget.Adapter
 | |
|     public int getCount() {
 | |
|         ArrayList<MenuItemImpl> nonActionItems = this.mOverflowOnly ? this.mAdapterMenu.getNonActionItems() : this.mAdapterMenu.getVisibleItems();
 | |
|         if (this.mExpandedIndex < 0) {
 | |
|             return nonActionItems.size();
 | |
|         }
 | |
|         return nonActionItems.size() - 1;
 | |
|     }
 | |
| 
 | |
|     @Override // android.widget.Adapter
 | |
|     public MenuItemImpl getItem(int i) {
 | |
|         ArrayList<MenuItemImpl> nonActionItems = this.mOverflowOnly ? this.mAdapterMenu.getNonActionItems() : this.mAdapterMenu.getVisibleItems();
 | |
|         int i2 = this.mExpandedIndex;
 | |
|         if (i2 >= 0 && i >= i2) {
 | |
|             i++;
 | |
|         }
 | |
|         return nonActionItems.get(i);
 | |
|     }
 | |
| 
 | |
|     @Override // android.widget.Adapter
 | |
|     public View getView(int i, View view, ViewGroup viewGroup) {
 | |
|         if (view == null) {
 | |
|             view = this.mInflater.inflate(this.mItemLayoutRes, viewGroup, false);
 | |
|         }
 | |
|         int groupId = getItem(i).getGroupId();
 | |
|         int i2 = i - 1;
 | |
|         ListMenuItemView listMenuItemView = (ListMenuItemView) view;
 | |
|         listMenuItemView.setGroupDividerEnabled(this.mAdapterMenu.isGroupDividerEnabled() && groupId != (i2 >= 0 ? getItem(i2).getGroupId() : groupId));
 | |
|         MenuView.ItemView itemView = (MenuView.ItemView) view;
 | |
|         if (this.mForceShowIcon) {
 | |
|             listMenuItemView.setForceShowIcon(true);
 | |
|         }
 | |
|         itemView.initialize(getItem(i), 0);
 | |
|         return view;
 | |
|     }
 | |
| 
 | |
|     void findExpandedIndex() {
 | |
|         MenuItemImpl expandedItem = this.mAdapterMenu.getExpandedItem();
 | |
|         if (expandedItem != null) {
 | |
|             ArrayList<MenuItemImpl> nonActionItems = this.mAdapterMenu.getNonActionItems();
 | |
|             int size = nonActionItems.size();
 | |
|             for (int i = 0; i < size; i++) {
 | |
|                 if (nonActionItems.get(i) == expandedItem) {
 | |
|                     this.mExpandedIndex = i;
 | |
|                     return;
 | |
|                 }
 | |
|             }
 | |
|         }
 | |
|         this.mExpandedIndex = -1;
 | |
|     }
 | |
| 
 | |
|     @Override // android.widget.BaseAdapter
 | |
|     public void notifyDataSetChanged() {
 | |
|         findExpandedIndex();
 | |
|         super.notifyDataSetChanged();
 | |
|     }
 | |
| }
 |