ADD week 5
This commit is contained in:
@@ -0,0 +1,100 @@
|
||||
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();
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user