CrackMe.apk
Download file
package androidx.appcompat.view.menu;
import android.content.Context;
import android.os.Bundle;
import android.os.IBinder;
import android.os.Parcelable;
import android.util.SparseArray;
import android.view.ContextThemeWrapper;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.BaseAdapter;
import android.widget.ListAdapter;
import androidx.appcompat.R;
import androidx.appcompat.view.menu.MenuPresenter;
import androidx.appcompat.view.menu.MenuView;
import java.util.ArrayList;
public class ListMenuPresenter implements MenuPresenter, AdapterView.OnItemClickListener {
private static final String TAG = "ListMenuPresenter";
public static final String VIEWS_TAG = "android:menu:list";
MenuAdapter mAdapter;
private MenuPresenter.Callback mCallback;
Context mContext;
private int mId;
LayoutInflater mInflater;
int mItemIndexOffset;
int mItemLayoutRes;
MenuBuilder mMenu;
ExpandedMenuView mMenuView;
int mThemeRes;
public boolean collapseItemActionView(MenuBuilder menuBuilder, MenuItemImpl menuItemImpl) {
return false;
}
public boolean expandItemActionView(MenuBuilder menuBuilder, MenuItemImpl menuItemImpl) {
return false;
}
public boolean flagActionItems() {
return false;
}
public ListMenuPresenter(Context context, int i) {
this(i, 0);
this.mContext = context;
this.mInflater = LayoutInflater.from(context);
}
public ListMenuPresenter(int i, int i2) {
this.mItemLayoutRes = i;
this.mThemeRes = i2;
}
public void initForMenu(Context context, MenuBuilder menuBuilder) {
if (this.mThemeRes != 0) {
ContextThemeWrapper contextThemeWrapper = new ContextThemeWrapper(context, this.mThemeRes);
this.mContext = contextThemeWrapper;
this.mInflater = LayoutInflater.from(contextThemeWrapper);
} else if (this.mContext != null) {
this.mContext = context;
if (this.mInflater == null) {
this.mInflater = LayoutInflater.from(context);
}
}
this.mMenu = menuBuilder;
MenuAdapter menuAdapter = this.mAdapter;
if (menuAdapter != null) {
menuAdapter.notifyDataSetChanged();
}
}
public MenuView getMenuView(ViewGroup viewGroup) {
if (this.mMenuView == null) {
this.mMenuView = (ExpandedMenuView) this.mInflater.inflate(R.layout.abc_expanded_menu_layout, viewGroup, false);
if (this.mAdapter == null) {
this.mAdapter = new MenuAdapter();
}
this.mMenuView.setAdapter(this.mAdapter);
this.mMenuView.setOnItemClickListener(this);
}
return this.mMenuView;
}
public ListAdapter getAdapter() {
if (this.mAdapter == null) {
this.mAdapter = new MenuAdapter();
}
return this.mAdapter;
}
public void updateMenuView(boolean z) {
MenuAdapter menuAdapter = this.mAdapter;
if (menuAdapter != null) {
menuAdapter.notifyDataSetChanged();
}
}
public void setCallback(MenuPresenter.Callback callback) {
this.mCallback = callback;
}
public boolean onSubMenuSelected(SubMenuBuilder subMenuBuilder) {
if (!subMenuBuilder.hasVisibleItems()) {
return false;
}
new MenuDialogHelper(subMenuBuilder).show((IBinder) null);
MenuPresenter.Callback callback = this.mCallback;
if (callback == null) {
return true;
}
callback.onOpenSubMenu(subMenuBuilder);
return true;
}
public void onCloseMenu(MenuBuilder menuBuilder, boolean z) {
MenuPresenter.Callback callback = this.mCallback;
if (callback != null) {
callback.onCloseMenu(menuBuilder, z);
}
}
/* access modifiers changed from: package-private */
public int getItemIndexOffset() {
return this.mItemIndexOffset;
}
public void setItemIndexOffset(int i) {
this.mItemIndexOffset = i;
if (this.mMenuView != null) {
updateMenuView(false);
}
}
public void onItemClick(AdapterView<?> adapterView, View view, int i, long j) {
this.mMenu.performItemAction(this.mAdapter.getItem(i), this, 0);
}
public void saveHierarchyState(Bundle bundle) {
SparseArray sparseArray = new SparseArray();
ExpandedMenuView expandedMenuView = this.mMenuView;
if (expandedMenuView != null) {
expandedMenuView.saveHierarchyState(sparseArray);
}
bundle.putSparseParcelableArray(VIEWS_TAG, sparseArray);
}
public void restoreHierarchyState(Bundle bundle) {
SparseArray sparseParcelableArray = bundle.getSparseParcelableArray(VIEWS_TAG);
if (sparseParcelableArray != null) {
this.mMenuView.restoreHierarchyState(sparseParcelableArray);
}
}
public void setId(int i) {
this.mId = i;
}
public int getId() {
return this.mId;
}
public Parcelable onSaveInstanceState() {
if (this.mMenuView == null) {
return null;
}
Bundle bundle = new Bundle();
saveHierarchyState(bundle);
return bundle;
}
public void onRestoreInstanceState(Parcelable parcelable) {
restoreHierarchyState((Bundle) parcelable);
}
private class MenuAdapter extends BaseAdapter {
private int mExpandedIndex = -1;
public long getItemId(int i) {
return (long) i;
}
public MenuAdapter() {
findExpandedIndex();
}
public int getCount() {
int size = ListMenuPresenter.this.mMenu.getNonActionItems().size() - ListMenuPresenter.this.mItemIndexOffset;
return this.mExpandedIndex < 0 ? size : size - 1;
}
public MenuItemImpl getItem(int i) {
ArrayList<MenuItemImpl> nonActionItems = ListMenuPresenter.this.mMenu.getNonActionItems();
int i2 = i + ListMenuPresenter.this.mItemIndexOffset;
int i3 = this.mExpandedIndex;
if (i3 >= 0 && i2 >= i3) {
i2++;
}
return nonActionItems.get(i2);
}
public View getView(int i, View view, ViewGroup viewGroup) {
if (view == null) {
view = ListMenuPresenter.this.mInflater.inflate(ListMenuPresenter.this.mItemLayoutRes, viewGroup, false);
}
((MenuView.ItemView) view).initialize(getItem(i), 0);
return view;
}
/* access modifiers changed from: package-private */
public void findExpandedIndex() {
MenuItemImpl expandedItem = ListMenuPresenter.this.mMenu.getExpandedItem();
if (expandedItem != null) {
ArrayList<MenuItemImpl> nonActionItems = ListMenuPresenter.this.mMenu.getNonActionItems();
int size = nonActionItems.size();
for (int i = 0; i < size; i++) {
if (nonActionItems.get(i) == expandedItem) {
this.mExpandedIndex = i;
return;
}
}
}
this.mExpandedIndex = -1;
}
public void notifyDataSetChanged() {
findExpandedIndex();
super.notifyDataSetChanged();
}
}
}
Download file