ADD week 5
This commit is contained in:
		| @@ -0,0 +1,680 @@ | ||||
| package androidx.appcompat.widget; | ||||
|  | ||||
| import android.content.Context; | ||||
| import android.content.res.Configuration; | ||||
| import android.graphics.drawable.Drawable; | ||||
| import android.util.AttributeSet; | ||||
| import android.view.ContextThemeWrapper; | ||||
| import android.view.KeyEvent; | ||||
| import android.view.Menu; | ||||
| import android.view.MenuItem; | ||||
| import android.view.View; | ||||
| import android.view.ViewDebug; | ||||
| import android.view.ViewGroup; | ||||
| import android.view.accessibility.AccessibilityEvent; | ||||
| import androidx.appcompat.view.menu.ActionMenuItemView; | ||||
| import androidx.appcompat.view.menu.MenuBuilder; | ||||
| import androidx.appcompat.view.menu.MenuItemImpl; | ||||
| import androidx.appcompat.view.menu.MenuPresenter; | ||||
| import androidx.appcompat.view.menu.MenuView; | ||||
| import androidx.appcompat.widget.LinearLayoutCompat; | ||||
| import androidx.constraintlayout.core.widgets.analyzer.BasicMeasure; | ||||
|  | ||||
| /* loaded from: classes.dex */ | ||||
| public class ActionMenuView extends LinearLayoutCompat implements MenuBuilder.ItemInvoker, MenuView { | ||||
|     static final int GENERATED_ITEM_PADDING = 4; | ||||
|     static final int MIN_CELL_SIZE = 56; | ||||
|     private static final String TAG = "ActionMenuView"; | ||||
|     private MenuPresenter.Callback mActionMenuPresenterCallback; | ||||
|     private boolean mFormatItems; | ||||
|     private int mFormatItemsWidth; | ||||
|     private int mGeneratedItemPadding; | ||||
|     private MenuBuilder mMenu; | ||||
|     MenuBuilder.Callback mMenuBuilderCallback; | ||||
|     private int mMinCellSize; | ||||
|     OnMenuItemClickListener mOnMenuItemClickListener; | ||||
|     private Context mPopupContext; | ||||
|     private int mPopupTheme; | ||||
|     private ActionMenuPresenter mPresenter; | ||||
|     private boolean mReserveOverflow; | ||||
|  | ||||
|     public interface ActionMenuChildView { | ||||
|         boolean needsDividerAfter(); | ||||
|  | ||||
|         boolean needsDividerBefore(); | ||||
|     } | ||||
|  | ||||
|     public interface OnMenuItemClickListener { | ||||
|         boolean onMenuItemClick(MenuItem menuItem); | ||||
|     } | ||||
|  | ||||
|     @Override // android.view.View | ||||
|     public boolean dispatchPopulateAccessibilityEvent(AccessibilityEvent accessibilityEvent) { | ||||
|         return false; | ||||
|     } | ||||
|  | ||||
|     public int getPopupTheme() { | ||||
|         return this.mPopupTheme; | ||||
|     } | ||||
|  | ||||
|     @Override // androidx.appcompat.view.menu.MenuView | ||||
|     public int getWindowAnimations() { | ||||
|         return 0; | ||||
|     } | ||||
|  | ||||
|     @Override // androidx.appcompat.view.menu.MenuView | ||||
|     public void initialize(MenuBuilder menuBuilder) { | ||||
|         this.mMenu = menuBuilder; | ||||
|     } | ||||
|  | ||||
|     public boolean isOverflowReserved() { | ||||
|         return this.mReserveOverflow; | ||||
|     } | ||||
|  | ||||
|     public MenuBuilder peekMenu() { | ||||
|         return this.mMenu; | ||||
|     } | ||||
|  | ||||
|     public void setMenuCallbacks(MenuPresenter.Callback callback, MenuBuilder.Callback callback2) { | ||||
|         this.mActionMenuPresenterCallback = callback; | ||||
|         this.mMenuBuilderCallback = callback2; | ||||
|     } | ||||
|  | ||||
|     public void setOnMenuItemClickListener(OnMenuItemClickListener onMenuItemClickListener) { | ||||
|         this.mOnMenuItemClickListener = onMenuItemClickListener; | ||||
|     } | ||||
|  | ||||
|     public void setOverflowReserved(boolean z) { | ||||
|         this.mReserveOverflow = z; | ||||
|     } | ||||
|  | ||||
|     public ActionMenuView(Context context) { | ||||
|         this(context, null); | ||||
|     } | ||||
|  | ||||
|     public ActionMenuView(Context context, AttributeSet attributeSet) { | ||||
|         super(context, attributeSet); | ||||
|         setBaselineAligned(false); | ||||
|         float f = context.getResources().getDisplayMetrics().density; | ||||
|         this.mMinCellSize = (int) (56.0f * f); | ||||
|         this.mGeneratedItemPadding = (int) (f * 4.0f); | ||||
|         this.mPopupContext = context; | ||||
|         this.mPopupTheme = 0; | ||||
|     } | ||||
|  | ||||
|     public void setPopupTheme(int i) { | ||||
|         if (this.mPopupTheme != i) { | ||||
|             this.mPopupTheme = i; | ||||
|             if (i == 0) { | ||||
|                 this.mPopupContext = getContext(); | ||||
|             } else { | ||||
|                 this.mPopupContext = new ContextThemeWrapper(getContext(), i); | ||||
|             } | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     public void setPresenter(ActionMenuPresenter actionMenuPresenter) { | ||||
|         this.mPresenter = actionMenuPresenter; | ||||
|         actionMenuPresenter.setMenuView(this); | ||||
|     } | ||||
|  | ||||
|     @Override // android.view.View | ||||
|     public void onConfigurationChanged(Configuration configuration) { | ||||
|         super.onConfigurationChanged(configuration); | ||||
|         ActionMenuPresenter actionMenuPresenter = this.mPresenter; | ||||
|         if (actionMenuPresenter != null) { | ||||
|             actionMenuPresenter.updateMenuView(false); | ||||
|             if (this.mPresenter.isOverflowMenuShowing()) { | ||||
|                 this.mPresenter.hideOverflowMenu(); | ||||
|                 this.mPresenter.showOverflowMenu(); | ||||
|             } | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     @Override // androidx.appcompat.widget.LinearLayoutCompat, android.view.View | ||||
|     protected void onMeasure(int i, int i2) { | ||||
|         MenuBuilder menuBuilder; | ||||
|         boolean z = this.mFormatItems; | ||||
|         boolean z2 = View.MeasureSpec.getMode(i) == 1073741824; | ||||
|         this.mFormatItems = z2; | ||||
|         if (z != z2) { | ||||
|             this.mFormatItemsWidth = 0; | ||||
|         } | ||||
|         int size = View.MeasureSpec.getSize(i); | ||||
|         if (this.mFormatItems && (menuBuilder = this.mMenu) != null && size != this.mFormatItemsWidth) { | ||||
|             this.mFormatItemsWidth = size; | ||||
|             menuBuilder.onItemsChanged(true); | ||||
|         } | ||||
|         int childCount = getChildCount(); | ||||
|         if (this.mFormatItems && childCount > 0) { | ||||
|             onMeasureExactFormat(i, i2); | ||||
|             return; | ||||
|         } | ||||
|         for (int i3 = 0; i3 < childCount; i3++) { | ||||
|             LayoutParams layoutParams = (LayoutParams) getChildAt(i3).getLayoutParams(); | ||||
|             layoutParams.rightMargin = 0; | ||||
|             layoutParams.leftMargin = 0; | ||||
|         } | ||||
|         super.onMeasure(i, i2); | ||||
|     } | ||||
|  | ||||
|     /* JADX WARN: Type inference failed for: r14v12 */ | ||||
|     /* JADX WARN: Type inference failed for: r14v8 */ | ||||
|     /* JADX WARN: Type inference failed for: r14v9, types: [boolean, int] */ | ||||
|     private void onMeasureExactFormat(int i, int i2) { | ||||
|         int i3; | ||||
|         int i4; | ||||
|         boolean z; | ||||
|         int i5; | ||||
|         boolean z2; | ||||
|         boolean z3; | ||||
|         int i6; | ||||
|         ?? r14; | ||||
|         int mode = View.MeasureSpec.getMode(i2); | ||||
|         int size = View.MeasureSpec.getSize(i); | ||||
|         int size2 = View.MeasureSpec.getSize(i2); | ||||
|         int paddingLeft = getPaddingLeft() + getPaddingRight(); | ||||
|         int paddingTop = getPaddingTop() + getPaddingBottom(); | ||||
|         int childMeasureSpec = getChildMeasureSpec(i2, paddingTop, -2); | ||||
|         int i7 = size - paddingLeft; | ||||
|         int i8 = this.mMinCellSize; | ||||
|         int i9 = i7 / i8; | ||||
|         int i10 = i7 % i8; | ||||
|         if (i9 == 0) { | ||||
|             setMeasuredDimension(i7, 0); | ||||
|             return; | ||||
|         } | ||||
|         int i11 = i8 + (i10 / i9); | ||||
|         int childCount = getChildCount(); | ||||
|         int i12 = 0; | ||||
|         int i13 = 0; | ||||
|         boolean z4 = false; | ||||
|         int i14 = 0; | ||||
|         int i15 = 0; | ||||
|         int i16 = 0; | ||||
|         long j = 0; | ||||
|         while (i13 < childCount) { | ||||
|             View childAt = getChildAt(i13); | ||||
|             int i17 = size2; | ||||
|             if (childAt.getVisibility() != 8) { | ||||
|                 boolean z5 = childAt instanceof ActionMenuItemView; | ||||
|                 int i18 = i14 + 1; | ||||
|                 if (z5) { | ||||
|                     int i19 = this.mGeneratedItemPadding; | ||||
|                     i6 = i18; | ||||
|                     r14 = 0; | ||||
|                     childAt.setPadding(i19, 0, i19, 0); | ||||
|                 } else { | ||||
|                     i6 = i18; | ||||
|                     r14 = 0; | ||||
|                 } | ||||
|                 LayoutParams layoutParams = (LayoutParams) childAt.getLayoutParams(); | ||||
|                 layoutParams.expanded = r14; | ||||
|                 layoutParams.extraPixels = r14; | ||||
|                 layoutParams.cellsUsed = r14; | ||||
|                 layoutParams.expandable = r14; | ||||
|                 layoutParams.leftMargin = r14; | ||||
|                 layoutParams.rightMargin = r14; | ||||
|                 layoutParams.preventEdgeOffset = z5 && ((ActionMenuItemView) childAt).hasText(); | ||||
|                 int measureChildForCells = measureChildForCells(childAt, i11, layoutParams.isOverflowButton ? 1 : i9, childMeasureSpec, paddingTop); | ||||
|                 i15 = Math.max(i15, measureChildForCells); | ||||
|                 if (layoutParams.expandable) { | ||||
|                     i16++; | ||||
|                 } | ||||
|                 if (layoutParams.isOverflowButton) { | ||||
|                     z4 = true; | ||||
|                 } | ||||
|                 i9 -= measureChildForCells; | ||||
|                 i12 = Math.max(i12, childAt.getMeasuredHeight()); | ||||
|                 if (measureChildForCells == 1) { | ||||
|                     j |= 1 << i13; | ||||
|                     i12 = i12; | ||||
|                 } | ||||
|                 i14 = i6; | ||||
|             } | ||||
|             i13++; | ||||
|             size2 = i17; | ||||
|         } | ||||
|         int i20 = size2; | ||||
|         boolean z6 = z4 && i14 == 2; | ||||
|         boolean z7 = false; | ||||
|         while (i16 > 0 && i9 > 0) { | ||||
|             int i21 = 0; | ||||
|             int i22 = 0; | ||||
|             int i23 = Integer.MAX_VALUE; | ||||
|             long j2 = 0; | ||||
|             while (i22 < childCount) { | ||||
|                 boolean z8 = z7; | ||||
|                 LayoutParams layoutParams2 = (LayoutParams) getChildAt(i22).getLayoutParams(); | ||||
|                 int i24 = i12; | ||||
|                 if (layoutParams2.expandable) { | ||||
|                     if (layoutParams2.cellsUsed < i23) { | ||||
|                         i23 = layoutParams2.cellsUsed; | ||||
|                         j2 = 1 << i22; | ||||
|                         i21 = 1; | ||||
|                     } else if (layoutParams2.cellsUsed == i23) { | ||||
|                         i21++; | ||||
|                         j2 |= 1 << i22; | ||||
|                     } | ||||
|                 } | ||||
|                 i22++; | ||||
|                 i12 = i24; | ||||
|                 z7 = z8; | ||||
|             } | ||||
|             z = z7; | ||||
|             i5 = i12; | ||||
|             j |= j2; | ||||
|             if (i21 > i9) { | ||||
|                 i3 = mode; | ||||
|                 i4 = i7; | ||||
|                 break; | ||||
|             } | ||||
|             int i25 = i23 + 1; | ||||
|             int i26 = 0; | ||||
|             while (i26 < childCount) { | ||||
|                 View childAt2 = getChildAt(i26); | ||||
|                 LayoutParams layoutParams3 = (LayoutParams) childAt2.getLayoutParams(); | ||||
|                 int i27 = i7; | ||||
|                 int i28 = mode; | ||||
|                 long j3 = 1 << i26; | ||||
|                 if ((j2 & j3) == 0) { | ||||
|                     if (layoutParams3.cellsUsed == i25) { | ||||
|                         j |= j3; | ||||
|                     } | ||||
|                     z3 = z6; | ||||
|                 } else { | ||||
|                     if (z6 && layoutParams3.preventEdgeOffset && i9 == 1) { | ||||
|                         int i29 = this.mGeneratedItemPadding; | ||||
|                         z3 = z6; | ||||
|                         childAt2.setPadding(i29 + i11, 0, i29, 0); | ||||
|                     } else { | ||||
|                         z3 = z6; | ||||
|                     } | ||||
|                     layoutParams3.cellsUsed++; | ||||
|                     layoutParams3.expanded = true; | ||||
|                     i9--; | ||||
|                 } | ||||
|                 i26++; | ||||
|                 mode = i28; | ||||
|                 i7 = i27; | ||||
|                 z6 = z3; | ||||
|             } | ||||
|             i12 = i5; | ||||
|             z7 = true; | ||||
|         } | ||||
|         i3 = mode; | ||||
|         i4 = i7; | ||||
|         z = z7; | ||||
|         i5 = i12; | ||||
|         boolean z9 = !z4 && i14 == 1; | ||||
|         if (i9 <= 0 || j == 0 || (i9 >= i14 - 1 && !z9 && i15 <= 1)) { | ||||
|             z2 = z; | ||||
|         } else { | ||||
|             float bitCount = Long.bitCount(j); | ||||
|             if (!z9) { | ||||
|                 if ((j & 1) != 0 && !((LayoutParams) getChildAt(0).getLayoutParams()).preventEdgeOffset) { | ||||
|                     bitCount -= 0.5f; | ||||
|                 } | ||||
|                 int i30 = childCount - 1; | ||||
|                 if ((j & (1 << i30)) != 0 && !((LayoutParams) getChildAt(i30).getLayoutParams()).preventEdgeOffset) { | ||||
|                     bitCount -= 0.5f; | ||||
|                 } | ||||
|             } | ||||
|             int i31 = bitCount > 0.0f ? (int) ((i9 * i11) / bitCount) : 0; | ||||
|             z2 = z; | ||||
|             for (int i32 = 0; i32 < childCount; i32++) { | ||||
|                 if ((j & (1 << i32)) != 0) { | ||||
|                     View childAt3 = getChildAt(i32); | ||||
|                     LayoutParams layoutParams4 = (LayoutParams) childAt3.getLayoutParams(); | ||||
|                     if (childAt3 instanceof ActionMenuItemView) { | ||||
|                         layoutParams4.extraPixels = i31; | ||||
|                         layoutParams4.expanded = true; | ||||
|                         if (i32 == 0 && !layoutParams4.preventEdgeOffset) { | ||||
|                             layoutParams4.leftMargin = (-i31) / 2; | ||||
|                         } | ||||
|                     } else if (layoutParams4.isOverflowButton) { | ||||
|                         layoutParams4.extraPixels = i31; | ||||
|                         layoutParams4.expanded = true; | ||||
|                         layoutParams4.rightMargin = (-i31) / 2; | ||||
|                     } else { | ||||
|                         if (i32 != 0) { | ||||
|                             layoutParams4.leftMargin = i31 / 2; | ||||
|                         } | ||||
|                         if (i32 != childCount - 1) { | ||||
|                             layoutParams4.rightMargin = i31 / 2; | ||||
|                         } | ||||
|                     } | ||||
|                     z2 = true; | ||||
|                 } | ||||
|             } | ||||
|         } | ||||
|         if (z2) { | ||||
|             for (int i33 = 0; i33 < childCount; i33++) { | ||||
|                 View childAt4 = getChildAt(i33); | ||||
|                 LayoutParams layoutParams5 = (LayoutParams) childAt4.getLayoutParams(); | ||||
|                 if (layoutParams5.expanded) { | ||||
|                     childAt4.measure(View.MeasureSpec.makeMeasureSpec((layoutParams5.cellsUsed * i11) + layoutParams5.extraPixels, BasicMeasure.EXACTLY), childMeasureSpec); | ||||
|                 } | ||||
|             } | ||||
|         } | ||||
|         setMeasuredDimension(i4, i3 != 1073741824 ? i5 : i20); | ||||
|     } | ||||
|  | ||||
|     static int measureChildForCells(View view, int i, int i2, int i3, int i4) { | ||||
|         int i5; | ||||
|         LayoutParams layoutParams = (LayoutParams) view.getLayoutParams(); | ||||
|         int makeMeasureSpec = View.MeasureSpec.makeMeasureSpec(View.MeasureSpec.getSize(i3) - i4, View.MeasureSpec.getMode(i3)); | ||||
|         ActionMenuItemView actionMenuItemView = view instanceof ActionMenuItemView ? (ActionMenuItemView) view : null; | ||||
|         boolean z = actionMenuItemView != null && actionMenuItemView.hasText(); | ||||
|         if (i2 > 0) { | ||||
|             i5 = 2; | ||||
|             if (!z || i2 >= 2) { | ||||
|                 view.measure(View.MeasureSpec.makeMeasureSpec(i2 * i, Integer.MIN_VALUE), makeMeasureSpec); | ||||
|                 int measuredWidth = view.getMeasuredWidth(); | ||||
|                 int i6 = measuredWidth / i; | ||||
|                 if (measuredWidth % i != 0) { | ||||
|                     i6++; | ||||
|                 } | ||||
|                 if (!z || i6 >= 2) { | ||||
|                     i5 = i6; | ||||
|                 } | ||||
|                 layoutParams.expandable = layoutParams.isOverflowButton && z; | ||||
|                 layoutParams.cellsUsed = i5; | ||||
|                 view.measure(View.MeasureSpec.makeMeasureSpec(i * i5, BasicMeasure.EXACTLY), makeMeasureSpec); | ||||
|                 return i5; | ||||
|             } | ||||
|         } | ||||
|         i5 = 0; | ||||
|         layoutParams.expandable = layoutParams.isOverflowButton && z; | ||||
|         layoutParams.cellsUsed = i5; | ||||
|         view.measure(View.MeasureSpec.makeMeasureSpec(i * i5, BasicMeasure.EXACTLY), makeMeasureSpec); | ||||
|         return i5; | ||||
|     } | ||||
|  | ||||
|     @Override // androidx.appcompat.widget.LinearLayoutCompat, android.view.ViewGroup, android.view.View | ||||
|     protected void onLayout(boolean z, int i, int i2, int i3, int i4) { | ||||
|         int width; | ||||
|         int i5; | ||||
|         if (!this.mFormatItems) { | ||||
|             super.onLayout(z, i, i2, i3, i4); | ||||
|             return; | ||||
|         } | ||||
|         int childCount = getChildCount(); | ||||
|         int i6 = (i4 - i2) / 2; | ||||
|         int dividerWidth = getDividerWidth(); | ||||
|         int i7 = i3 - i; | ||||
|         int paddingRight = (i7 - getPaddingRight()) - getPaddingLeft(); | ||||
|         boolean isLayoutRtl = ViewUtils.isLayoutRtl(this); | ||||
|         int i8 = 0; | ||||
|         int i9 = 0; | ||||
|         for (int i10 = 0; i10 < childCount; i10++) { | ||||
|             View childAt = getChildAt(i10); | ||||
|             if (childAt.getVisibility() != 8) { | ||||
|                 LayoutParams layoutParams = (LayoutParams) childAt.getLayoutParams(); | ||||
|                 if (layoutParams.isOverflowButton) { | ||||
|                     int measuredWidth = childAt.getMeasuredWidth(); | ||||
|                     if (hasSupportDividerBeforeChildAt(i10)) { | ||||
|                         measuredWidth += dividerWidth; | ||||
|                     } | ||||
|                     int measuredHeight = childAt.getMeasuredHeight(); | ||||
|                     if (isLayoutRtl) { | ||||
|                         i5 = getPaddingLeft() + layoutParams.leftMargin; | ||||
|                         width = i5 + measuredWidth; | ||||
|                     } else { | ||||
|                         width = (getWidth() - getPaddingRight()) - layoutParams.rightMargin; | ||||
|                         i5 = width - measuredWidth; | ||||
|                     } | ||||
|                     int i11 = i6 - (measuredHeight / 2); | ||||
|                     childAt.layout(i5, i11, width, measuredHeight + i11); | ||||
|                     paddingRight -= measuredWidth; | ||||
|                     i8 = 1; | ||||
|                 } else { | ||||
|                     paddingRight -= (childAt.getMeasuredWidth() + layoutParams.leftMargin) + layoutParams.rightMargin; | ||||
|                     hasSupportDividerBeforeChildAt(i10); | ||||
|                     i9++; | ||||
|                 } | ||||
|             } | ||||
|         } | ||||
|         if (childCount == 1 && i8 == 0) { | ||||
|             View childAt2 = getChildAt(0); | ||||
|             int measuredWidth2 = childAt2.getMeasuredWidth(); | ||||
|             int measuredHeight2 = childAt2.getMeasuredHeight(); | ||||
|             int i12 = (i7 / 2) - (measuredWidth2 / 2); | ||||
|             int i13 = i6 - (measuredHeight2 / 2); | ||||
|             childAt2.layout(i12, i13, measuredWidth2 + i12, measuredHeight2 + i13); | ||||
|             return; | ||||
|         } | ||||
|         int i14 = i9 - (i8 ^ 1); | ||||
|         int max = Math.max(0, i14 > 0 ? paddingRight / i14 : 0); | ||||
|         if (isLayoutRtl) { | ||||
|             int width2 = getWidth() - getPaddingRight(); | ||||
|             for (int i15 = 0; i15 < childCount; i15++) { | ||||
|                 View childAt3 = getChildAt(i15); | ||||
|                 LayoutParams layoutParams2 = (LayoutParams) childAt3.getLayoutParams(); | ||||
|                 if (childAt3.getVisibility() != 8 && !layoutParams2.isOverflowButton) { | ||||
|                     int i16 = width2 - layoutParams2.rightMargin; | ||||
|                     int measuredWidth3 = childAt3.getMeasuredWidth(); | ||||
|                     int measuredHeight3 = childAt3.getMeasuredHeight(); | ||||
|                     int i17 = i6 - (measuredHeight3 / 2); | ||||
|                     childAt3.layout(i16 - measuredWidth3, i17, i16, measuredHeight3 + i17); | ||||
|                     width2 = i16 - ((measuredWidth3 + layoutParams2.leftMargin) + max); | ||||
|                 } | ||||
|             } | ||||
|             return; | ||||
|         } | ||||
|         int paddingLeft = getPaddingLeft(); | ||||
|         for (int i18 = 0; i18 < childCount; i18++) { | ||||
|             View childAt4 = getChildAt(i18); | ||||
|             LayoutParams layoutParams3 = (LayoutParams) childAt4.getLayoutParams(); | ||||
|             if (childAt4.getVisibility() != 8 && !layoutParams3.isOverflowButton) { | ||||
|                 int i19 = paddingLeft + layoutParams3.leftMargin; | ||||
|                 int measuredWidth4 = childAt4.getMeasuredWidth(); | ||||
|                 int measuredHeight4 = childAt4.getMeasuredHeight(); | ||||
|                 int i20 = i6 - (measuredHeight4 / 2); | ||||
|                 childAt4.layout(i19, i20, i19 + measuredWidth4, measuredHeight4 + i20); | ||||
|                 paddingLeft = i19 + measuredWidth4 + layoutParams3.rightMargin + max; | ||||
|             } | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     @Override // android.view.ViewGroup, android.view.View | ||||
|     public void onDetachedFromWindow() { | ||||
|         super.onDetachedFromWindow(); | ||||
|         dismissPopupMenus(); | ||||
|     } | ||||
|  | ||||
|     public void setOverflowIcon(Drawable drawable) { | ||||
|         getMenu(); | ||||
|         this.mPresenter.setOverflowIcon(drawable); | ||||
|     } | ||||
|  | ||||
|     public Drawable getOverflowIcon() { | ||||
|         getMenu(); | ||||
|         return this.mPresenter.getOverflowIcon(); | ||||
|     } | ||||
|  | ||||
|     /* JADX INFO: Access modifiers changed from: protected */ | ||||
|     @Override // androidx.appcompat.widget.LinearLayoutCompat, android.view.ViewGroup | ||||
|     public LayoutParams generateDefaultLayoutParams() { | ||||
|         LayoutParams layoutParams = new LayoutParams(-2, -2); | ||||
|         layoutParams.gravity = 16; | ||||
|         return layoutParams; | ||||
|     } | ||||
|  | ||||
|     @Override // androidx.appcompat.widget.LinearLayoutCompat, android.view.ViewGroup | ||||
|     public LayoutParams generateLayoutParams(AttributeSet attributeSet) { | ||||
|         return new LayoutParams(getContext(), attributeSet); | ||||
|     } | ||||
|  | ||||
|     /* JADX INFO: Access modifiers changed from: protected */ | ||||
|     @Override // androidx.appcompat.widget.LinearLayoutCompat, android.view.ViewGroup | ||||
|     public LayoutParams generateLayoutParams(ViewGroup.LayoutParams layoutParams) { | ||||
|         LayoutParams layoutParams2; | ||||
|         if (layoutParams != null) { | ||||
|             if (layoutParams instanceof LayoutParams) { | ||||
|                 layoutParams2 = new LayoutParams((LayoutParams) layoutParams); | ||||
|             } else { | ||||
|                 layoutParams2 = new LayoutParams(layoutParams); | ||||
|             } | ||||
|             if (layoutParams2.gravity <= 0) { | ||||
|                 layoutParams2.gravity = 16; | ||||
|             } | ||||
|             return layoutParams2; | ||||
|         } | ||||
|         return generateDefaultLayoutParams(); | ||||
|     } | ||||
|  | ||||
|     @Override // androidx.appcompat.widget.LinearLayoutCompat, android.view.ViewGroup | ||||
|     protected boolean checkLayoutParams(ViewGroup.LayoutParams layoutParams) { | ||||
|         return layoutParams instanceof LayoutParams; | ||||
|     } | ||||
|  | ||||
|     public LayoutParams generateOverflowButtonLayoutParams() { | ||||
|         LayoutParams generateDefaultLayoutParams = generateDefaultLayoutParams(); | ||||
|         generateDefaultLayoutParams.isOverflowButton = true; | ||||
|         return generateDefaultLayoutParams; | ||||
|     } | ||||
|  | ||||
|     @Override // androidx.appcompat.view.menu.MenuBuilder.ItemInvoker | ||||
|     public boolean invokeItem(MenuItemImpl menuItemImpl) { | ||||
|         return this.mMenu.performItemAction(menuItemImpl, 0); | ||||
|     } | ||||
|  | ||||
|     public Menu getMenu() { | ||||
|         if (this.mMenu == null) { | ||||
|             Context context = getContext(); | ||||
|             MenuBuilder menuBuilder = new MenuBuilder(context); | ||||
|             this.mMenu = menuBuilder; | ||||
|             menuBuilder.setCallback(new MenuBuilderCallback()); | ||||
|             ActionMenuPresenter actionMenuPresenter = new ActionMenuPresenter(context); | ||||
|             this.mPresenter = actionMenuPresenter; | ||||
|             actionMenuPresenter.setReserveOverflow(true); | ||||
|             ActionMenuPresenter actionMenuPresenter2 = this.mPresenter; | ||||
|             MenuPresenter.Callback callback = this.mActionMenuPresenterCallback; | ||||
|             if (callback == null) { | ||||
|                 callback = new ActionMenuPresenterCallback(); | ||||
|             } | ||||
|             actionMenuPresenter2.setCallback(callback); | ||||
|             this.mMenu.addMenuPresenter(this.mPresenter, this.mPopupContext); | ||||
|             this.mPresenter.setMenuView(this); | ||||
|         } | ||||
|         return this.mMenu; | ||||
|     } | ||||
|  | ||||
|     public boolean showOverflowMenu() { | ||||
|         ActionMenuPresenter actionMenuPresenter = this.mPresenter; | ||||
|         return actionMenuPresenter != null && actionMenuPresenter.showOverflowMenu(); | ||||
|     } | ||||
|  | ||||
|     public boolean hideOverflowMenu() { | ||||
|         ActionMenuPresenter actionMenuPresenter = this.mPresenter; | ||||
|         return actionMenuPresenter != null && actionMenuPresenter.hideOverflowMenu(); | ||||
|     } | ||||
|  | ||||
|     public boolean isOverflowMenuShowing() { | ||||
|         ActionMenuPresenter actionMenuPresenter = this.mPresenter; | ||||
|         return actionMenuPresenter != null && actionMenuPresenter.isOverflowMenuShowing(); | ||||
|     } | ||||
|  | ||||
|     public boolean isOverflowMenuShowPending() { | ||||
|         ActionMenuPresenter actionMenuPresenter = this.mPresenter; | ||||
|         return actionMenuPresenter != null && actionMenuPresenter.isOverflowMenuShowPending(); | ||||
|     } | ||||
|  | ||||
|     public void dismissPopupMenus() { | ||||
|         ActionMenuPresenter actionMenuPresenter = this.mPresenter; | ||||
|         if (actionMenuPresenter != null) { | ||||
|             actionMenuPresenter.dismissPopupMenus(); | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     protected boolean hasSupportDividerBeforeChildAt(int i) { | ||||
|         boolean z = false; | ||||
|         if (i == 0) { | ||||
|             return false; | ||||
|         } | ||||
|         KeyEvent.Callback childAt = getChildAt(i - 1); | ||||
|         KeyEvent.Callback childAt2 = getChildAt(i); | ||||
|         if (i < getChildCount() && (childAt instanceof ActionMenuChildView)) { | ||||
|             z = ((ActionMenuChildView) childAt).needsDividerAfter(); | ||||
|         } | ||||
|         return (i <= 0 || !(childAt2 instanceof ActionMenuChildView)) ? z : z | ((ActionMenuChildView) childAt2).needsDividerBefore(); | ||||
|     } | ||||
|  | ||||
|     public void setExpandedActionViewsExclusive(boolean z) { | ||||
|         this.mPresenter.setExpandedActionViewsExclusive(z); | ||||
|     } | ||||
|  | ||||
|     private class MenuBuilderCallback implements MenuBuilder.Callback { | ||||
|         MenuBuilderCallback() { | ||||
|         } | ||||
|  | ||||
|         @Override // androidx.appcompat.view.menu.MenuBuilder.Callback | ||||
|         public boolean onMenuItemSelected(MenuBuilder menuBuilder, MenuItem menuItem) { | ||||
|             return ActionMenuView.this.mOnMenuItemClickListener != null && ActionMenuView.this.mOnMenuItemClickListener.onMenuItemClick(menuItem); | ||||
|         } | ||||
|  | ||||
|         @Override // androidx.appcompat.view.menu.MenuBuilder.Callback | ||||
|         public void onMenuModeChange(MenuBuilder menuBuilder) { | ||||
|             if (ActionMenuView.this.mMenuBuilderCallback != null) { | ||||
|                 ActionMenuView.this.mMenuBuilderCallback.onMenuModeChange(menuBuilder); | ||||
|             } | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     private static class ActionMenuPresenterCallback implements MenuPresenter.Callback { | ||||
|         @Override // androidx.appcompat.view.menu.MenuPresenter.Callback | ||||
|         public void onCloseMenu(MenuBuilder menuBuilder, boolean z) { | ||||
|         } | ||||
|  | ||||
|         @Override // androidx.appcompat.view.menu.MenuPresenter.Callback | ||||
|         public boolean onOpenSubMenu(MenuBuilder menuBuilder) { | ||||
|             return false; | ||||
|         } | ||||
|  | ||||
|         ActionMenuPresenterCallback() { | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     public static class LayoutParams extends LinearLayoutCompat.LayoutParams { | ||||
|  | ||||
|         @ViewDebug.ExportedProperty | ||||
|         public int cellsUsed; | ||||
|  | ||||
|         @ViewDebug.ExportedProperty | ||||
|         public boolean expandable; | ||||
|         boolean expanded; | ||||
|  | ||||
|         @ViewDebug.ExportedProperty | ||||
|         public int extraPixels; | ||||
|  | ||||
|         @ViewDebug.ExportedProperty | ||||
|         public boolean isOverflowButton; | ||||
|  | ||||
|         @ViewDebug.ExportedProperty | ||||
|         public boolean preventEdgeOffset; | ||||
|  | ||||
|         public LayoutParams(Context context, AttributeSet attributeSet) { | ||||
|             super(context, attributeSet); | ||||
|         } | ||||
|  | ||||
|         public LayoutParams(ViewGroup.LayoutParams layoutParams) { | ||||
|             super(layoutParams); | ||||
|         } | ||||
|  | ||||
|         public LayoutParams(LayoutParams layoutParams) { | ||||
|             super((ViewGroup.LayoutParams) layoutParams); | ||||
|             this.isOverflowButton = layoutParams.isOverflowButton; | ||||
|         } | ||||
|  | ||||
|         public LayoutParams(int i, int i2) { | ||||
|             super(i, i2); | ||||
|             this.isOverflowButton = false; | ||||
|         } | ||||
|  | ||||
|         LayoutParams(int i, int i2, boolean z) { | ||||
|             super(i, i2); | ||||
|             this.isOverflowButton = z; | ||||
|         } | ||||
|     } | ||||
| } | ||||
		Reference in New Issue
	
	Block a user