CrackMe.apk
Download file
package androidx.appcompat.widget;
import android.content.Context;
import android.content.res.TypedArray;
import android.util.AttributeSet;
import android.view.View;
import android.widget.LinearLayout;
import androidx.appcompat.R;
import androidx.core.view.GravityCompat;
import androidx.core.view.ViewCompat;
public class ButtonBarLayout extends LinearLayout {
private static final int PEEK_BUTTON_DP = 16;
private boolean mAllowStacking;
private int mLastWidthSize = -1;
private boolean mStacked;
public ButtonBarLayout(Context context, AttributeSet attributeSet) {
super(context, attributeSet);
TypedArray obtainStyledAttributes = context.obtainStyledAttributes(attributeSet, R.styleable.ButtonBarLayout);
ViewCompat.saveAttributeDataForStyleable(this, context, R.styleable.ButtonBarLayout, attributeSet, obtainStyledAttributes, 0, 0);
this.mAllowStacking = obtainStyledAttributes.getBoolean(R.styleable.ButtonBarLayout_allowStacking, true);
obtainStyledAttributes.recycle();
if (getOrientation() == 1) {
setStacked(this.mAllowStacking);
}
}
public void setAllowStacking(boolean z) {
if (this.mAllowStacking != z) {
this.mAllowStacking = z;
if (!z && isStacked()) {
setStacked(false);
}
requestLayout();
}
}
/* access modifiers changed from: protected */
public void onMeasure(int i, int i2) {
boolean z;
int i3;
int size = View.MeasureSpec.getSize(i);
int i4 = 0;
if (this.mAllowStacking) {
if (size > this.mLastWidthSize && isStacked()) {
setStacked(false);
}
this.mLastWidthSize = size;
}
if (isStacked() || View.MeasureSpec.getMode(i) != 1073741824) {
i3 = i;
z = false;
} else {
i3 = View.MeasureSpec.makeMeasureSpec(size, Integer.MIN_VALUE);
z = true;
}
super.onMeasure(i3, i2);
if (this.mAllowStacking && !isStacked()) {
if ((getMeasuredWidthAndState() & ViewCompat.MEASURED_STATE_MASK) == 16777216) {
setStacked(true);
z = true;
}
}
if (z) {
super.onMeasure(i, i2);
}
int nextVisibleChildIndex = getNextVisibleChildIndex(0);
if (nextVisibleChildIndex >= 0) {
View childAt = getChildAt(nextVisibleChildIndex);
LinearLayout.LayoutParams layoutParams = (LinearLayout.LayoutParams) childAt.getLayoutParams();
int paddingTop = getPaddingTop() + childAt.getMeasuredHeight() + layoutParams.topMargin + layoutParams.bottomMargin + 0;
if (isStacked()) {
int nextVisibleChildIndex2 = getNextVisibleChildIndex(nextVisibleChildIndex + 1);
if (nextVisibleChildIndex2 >= 0) {
paddingTop += getChildAt(nextVisibleChildIndex2).getPaddingTop() + ((int) (getResources().getDisplayMetrics().density * 16.0f));
}
i4 = paddingTop;
} else {
i4 = paddingTop + getPaddingBottom();
}
}
if (ViewCompat.getMinimumHeight(this) != i4) {
setMinimumHeight(i4);
if (i2 == 0) {
super.onMeasure(i, i2);
}
}
}
private int getNextVisibleChildIndex(int i) {
int childCount = getChildCount();
while (i < childCount) {
if (getChildAt(i).getVisibility() == 0) {
return i;
}
i++;
}
return -1;
}
private void setStacked(boolean z) {
if (this.mStacked == z) {
return;
}
if (!z || this.mAllowStacking) {
this.mStacked = z;
setOrientation(z ? 1 : 0);
setGravity(z ? GravityCompat.END : 80);
View findViewById = findViewById(R.id.spacer);
if (findViewById != null) {
findViewById.setVisibility(z ? 8 : 4);
}
for (int childCount = getChildCount() - 2; childCount >= 0; childCount--) {
bringChildToFront(getChildAt(childCount));
}
}
}
private boolean isStacked() {
return this.mStacked;
}
}
Download file