CrackMe.apk
Download file
package androidx.viewpager.widget;
import android.content.Context;
import android.content.res.TypedArray;
import android.database.DataSetObserver;
import android.graphics.Canvas;
import android.graphics.Paint;
import android.graphics.Rect;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
import android.os.Parcel;
import android.os.Parcelable;
import android.os.SystemClock;
import android.util.AttributeSet;
import android.util.Log;
import android.view.KeyEvent;
import android.view.MotionEvent;
import android.view.VelocityTracker;
import android.view.View;
import android.view.ViewConfiguration;
import android.view.ViewGroup;
import android.view.ViewParent;
import android.view.accessibility.AccessibilityEvent;
import android.view.animation.Interpolator;
import android.widget.EdgeEffect;
import android.widget.Scroller;
import androidx.core.content.ContextCompat;
import androidx.core.view.AccessibilityDelegateCompat;
import androidx.core.view.OnApplyWindowInsetsListener;
import androidx.core.view.ViewCompat;
import androidx.core.view.WindowInsetsCompat;
import androidx.core.view.accessibility.AccessibilityNodeInfoCompat;
import androidx.customview.view.AbsSavedState;
import java.lang.annotation.ElementType;
import java.lang.annotation.Inherited;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
public class ViewPager extends ViewGroup {
private static final int CLOSE_ENOUGH = 2;
private static final Comparator<ItemInfo> COMPARATOR = new Comparator<ItemInfo>() {
public int compare(ItemInfo itemInfo, ItemInfo itemInfo2) {
return itemInfo.position - itemInfo2.position;
}
};
private static final boolean DEBUG = false;
private static final int DEFAULT_GUTTER_SIZE = 16;
private static final int DEFAULT_OFFSCREEN_PAGES = 1;
private static final int DRAW_ORDER_DEFAULT = 0;
private static final int DRAW_ORDER_FORWARD = 1;
private static final int DRAW_ORDER_REVERSE = 2;
private static final int INVALID_POINTER = -1;
static final int[] LAYOUT_ATTRS = {16842931};
private static final int MAX_SETTLE_DURATION = 600;
private static final int MIN_DISTANCE_FOR_FLING = 25;
private static final int MIN_FLING_VELOCITY = 400;
public static final int SCROLL_STATE_DRAGGING = 1;
public static final int SCROLL_STATE_IDLE = 0;
public static final int SCROLL_STATE_SETTLING = 2;
private static final String TAG = "ViewPager";
private static final boolean USE_CACHE = false;
private static final Interpolator sInterpolator = new Interpolator() {
public float getInterpolation(float f) {
float f2 = f - 1.0f;
return (f2 * f2 * f2 * f2 * f2) + 1.0f;
}
};
private static final ViewPositionComparator sPositionComparator = new ViewPositionComparator();
private int mActivePointerId = -1;
PagerAdapter mAdapter;
private List<OnAdapterChangeListener> mAdapterChangeListeners;
private int mBottomPageBounds;
private boolean mCalledSuper;
private int mChildHeightMeasureSpec;
private int mChildWidthMeasureSpec;
private int mCloseEnough;
int mCurItem;
private int mDecorChildCount;
private int mDefaultGutterSize;
private int mDrawingOrder;
private ArrayList<View> mDrawingOrderedChildren;
private final Runnable mEndScrollRunnable = new Runnable() {
public void run() {
ViewPager.this.setScrollState(0);
ViewPager.this.populate();
}
};
private int mExpectedAdapterCount;
private long mFakeDragBeginTime;
private boolean mFakeDragging;
private boolean mFirstLayout = true;
private float mFirstOffset = -3.4028235E38f;
private int mFlingDistance;
private int mGutterSize;
private boolean mInLayout;
private float mInitialMotionX;
private float mInitialMotionY;
private OnPageChangeListener mInternalPageChangeListener;
private boolean mIsBeingDragged;
private boolean mIsScrollStarted;
private boolean mIsUnableToDrag;
private final ArrayList<ItemInfo> mItems = new ArrayList<>();
private float mLastMotionX;
private float mLastMotionY;
private float mLastOffset = Float.MAX_VALUE;
private EdgeEffect mLeftEdge;
private Drawable mMarginDrawable;
private int mMaximumVelocity;
private int mMinimumVelocity;
private boolean mNeedCalculatePageOffsets = false;
private PagerObserver mObserver;
private int mOffscreenPageLimit = 1;
private OnPageChangeListener mOnPageChangeListener;
private List<OnPageChangeListener> mOnPageChangeListeners;
private int mPageMargin;
private PageTransformer mPageTransformer;
private int mPageTransformerLayerType;
private boolean mPopulatePending;
private Parcelable mRestoredAdapterState = null;
private ClassLoader mRestoredClassLoader = null;
private int mRestoredCurItem = -1;
private EdgeEffect mRightEdge;
private int mScrollState = 0;
private Scroller mScroller;
private boolean mScrollingCacheEnabled;
private final ItemInfo mTempItem = new ItemInfo();
private final Rect mTempRect = new Rect();
private int mTopPageBounds;
private int mTouchSlop;
private VelocityTracker mVelocityTracker;
@Inherited
@Target({ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
public @interface DecorView {
}
public interface OnAdapterChangeListener {
void onAdapterChanged(ViewPager viewPager, PagerAdapter pagerAdapter, PagerAdapter pagerAdapter2);
}
public interface OnPageChangeListener {
void onPageScrollStateChanged(int i);
void onPageScrolled(int i, float f, int i2);
void onPageSelected(int i);
}
public interface PageTransformer {
void transformPage(View view, float f);
}
public static class SimpleOnPageChangeListener implements OnPageChangeListener {
public void onPageScrollStateChanged(int i) {
}
public void onPageScrolled(int i, float f, int i2) {
}
public void onPageSelected(int i) {
}
}
static class ItemInfo {
Object object;
float offset;
int position;
boolean scrolling;
float widthFactor;
ItemInfo() {
}
}
public ViewPager(Context context) {
super(context);
initViewPager();
}
public ViewPager(Context context, AttributeSet attributeSet) {
super(context, attributeSet);
initViewPager();
}
/* access modifiers changed from: package-private */
public void initViewPager() {
setWillNotDraw(false);
setDescendantFocusability(262144);
setFocusable(true);
Context context = getContext();
this.mScroller = new Scroller(context, sInterpolator);
ViewConfiguration viewConfiguration = ViewConfiguration.get(context);
float f = context.getResources().getDisplayMetrics().density;
this.mTouchSlop = viewConfiguration.getScaledPagingTouchSlop();
this.mMinimumVelocity = (int) (400.0f * f);
this.mMaximumVelocity = viewConfiguration.getScaledMaximumFlingVelocity();
this.mLeftEdge = new EdgeEffect(context);
this.mRightEdge = new EdgeEffect(context);
this.mFlingDistance = (int) (25.0f * f);
this.mCloseEnough = (int) (2.0f * f);
this.mDefaultGutterSize = (int) (f * 16.0f);
ViewCompat.setAccessibilityDelegate(this, new MyAccessibilityDelegate());
if (ViewCompat.getImportantForAccessibility(this) == 0) {
ViewCompat.setImportantForAccessibility(this, 1);
}
ViewCompat.setOnApplyWindowInsetsListener(this, new OnApplyWindowInsetsListener() {
private final Rect mTempRect = new Rect();
public WindowInsetsCompat onApplyWindowInsets(View view, WindowInsetsCompat windowInsetsCompat) {
WindowInsetsCompat onApplyWindowInsets = ViewCompat.onApplyWindowInsets(view, windowInsetsCompat);
if (onApplyWindowInsets.isConsumed()) {
return onApplyWindowInsets;
}
Rect rect = this.mTempRect;
rect.left = onApplyWindowInsets.getSystemWindowInsetLeft();
rect.top = onApplyWindowInsets.getSystemWindowInsetTop();
rect.right = onApplyWindowInsets.getSystemWindowInsetRight();
rect.bottom = onApplyWindowInsets.getSystemWindowInsetBottom();
int childCount = ViewPager.this.getChildCount();
for (int i = 0; i < childCount; i++) {
WindowInsetsCompat dispatchApplyWindowInsets = ViewCompat.dispatchApplyWindowInsets(ViewPager.this.getChildAt(i), onApplyWindowInsets);
rect.left = Math.min(dispatchApplyWindowInsets.getSystemWindowInsetLeft(), rect.left);
rect.top = Math.min(dispatchApplyWindowInsets.getSystemWindowInsetTop(), rect.top);
rect.right = Math.min(dispatchApplyWindowInsets.getSystemWindowInsetRight(), rect.right);
rect.bottom = Math.min(dispatchApplyWindowInsets.getSystemWindowInsetBottom(), rect.bottom);
}
return onApplyWindowInsets.replaceSystemWindowInsets(rect.left, rect.top, rect.right, rect.bottom);
}
});
}
/* access modifiers changed from: protected */
public void onDetachedFromWindow() {
removeCallbacks(this.mEndScrollRunnable);
Scroller scroller = this.mScroller;
if (scroller != null && !scroller.isFinished()) {
this.mScroller.abortAnimation();
}
super.onDetachedFromWindow();
}
/* access modifiers changed from: package-private */
public void setScrollState(int i) {
if (this.mScrollState != i) {
this.mScrollState = i;
if (this.mPageTransformer != null) {
enableLayers(i != 0);
}
dispatchOnScrollStateChanged(i);
}
}
public void setAdapter(PagerAdapter pagerAdapter) {
PagerAdapter pagerAdapter2 = this.mAdapter;
if (pagerAdapter2 != null) {
pagerAdapter2.setViewPagerObserver((DataSetObserver) null);
this.mAdapter.startUpdate((ViewGroup) this);
for (int i = 0; i < this.mItems.size(); i++) {
ItemInfo itemInfo = this.mItems.get(i);
this.mAdapter.destroyItem((ViewGroup) this, itemInfo.position, itemInfo.object);
}
this.mAdapter.finishUpdate((ViewGroup) this);
this.mItems.clear();
removeNonDecorViews();
this.mCurItem = 0;
scrollTo(0, 0);
}
PagerAdapter pagerAdapter3 = this.mAdapter;
this.mAdapter = pagerAdapter;
this.mExpectedAdapterCount = 0;
if (pagerAdapter != null) {
if (this.mObserver == null) {
this.mObserver = new PagerObserver();
}
this.mAdapter.setViewPagerObserver(this.mObserver);
this.mPopulatePending = false;
boolean z = this.mFirstLayout;
this.mFirstLayout = true;
this.mExpectedAdapterCount = this.mAdapter.getCount();
if (this.mRestoredCurItem >= 0) {
this.mAdapter.restoreState(this.mRestoredAdapterState, this.mRestoredClassLoader);
setCurrentItemInternal(this.mRestoredCurItem, false, true);
this.mRestoredCurItem = -1;
this.mRestoredAdapterState = null;
this.mRestoredClassLoader = null;
} else if (!z) {
populate();
} else {
requestLayout();
}
}
List<OnAdapterChangeListener> list = this.mAdapterChangeListeners;
if (list != null && !list.isEmpty()) {
int size = this.mAdapterChangeListeners.size();
for (int i2 = 0; i2 < size; i2++) {
this.mAdapterChangeListeners.get(i2).onAdapterChanged(this, pagerAdapter3, pagerAdapter);
}
}
}
private void removeNonDecorViews() {
int i = 0;
while (i < getChildCount()) {
if (!((LayoutParams) getChildAt(i).getLayoutParams()).isDecor) {
removeViewAt(i);
i--;
}
i++;
}
}
public PagerAdapter getAdapter() {
return this.mAdapter;
}
public void addOnAdapterChangeListener(OnAdapterChangeListener onAdapterChangeListener) {
if (this.mAdapterChangeListeners == null) {
this.mAdapterChangeListeners = new ArrayList();
}
this.mAdapterChangeListeners.add(onAdapterChangeListener);
}
public void removeOnAdapterChangeListener(OnAdapterChangeListener onAdapterChangeListener) {
List<OnAdapterChangeListener> list = this.mAdapterChangeListeners;
if (list != null) {
list.remove(onAdapterChangeListener);
}
}
private int getClientWidth() {
return (getMeasuredWidth() - getPaddingLeft()) - getPaddingRight();
}
public void setCurrentItem(int i) {
this.mPopulatePending = false;
setCurrentItemInternal(i, !this.mFirstLayout, false);
}
public void setCurrentItem(int i, boolean z) {
this.mPopulatePending = false;
setCurrentItemInternal(i, z, false);
}
public int getCurrentItem() {
return this.mCurItem;
}
/* access modifiers changed from: package-private */
public void setCurrentItemInternal(int i, boolean z, boolean z2) {
setCurrentItemInternal(i, z, z2, 0);
}
/* access modifiers changed from: package-private */
public void setCurrentItemInternal(int i, boolean z, boolean z2, int i2) {
PagerAdapter pagerAdapter = this.mAdapter;
boolean z3 = false;
if (pagerAdapter == null || pagerAdapter.getCount() <= 0) {
setScrollingCacheEnabled(false);
} else if (z2 || this.mCurItem != i || this.mItems.size() == 0) {
if (i < 0) {
i = 0;
} else if (i >= this.mAdapter.getCount()) {
i = this.mAdapter.getCount() - 1;
}
int i3 = this.mOffscreenPageLimit;
int i4 = this.mCurItem;
if (i > i4 + i3 || i < i4 - i3) {
for (int i5 = 0; i5 < this.mItems.size(); i5++) {
this.mItems.get(i5).scrolling = true;
}
}
if (this.mCurItem != i) {
z3 = true;
}
if (this.mFirstLayout) {
this.mCurItem = i;
if (z3) {
dispatchOnPageSelected(i);
}
requestLayout();
return;
}
populate(i);
scrollToItem(i, z, i2, z3);
} else {
setScrollingCacheEnabled(false);
}
}
private void scrollToItem(int i, boolean z, int i2, boolean z2) {
ItemInfo infoForPosition = infoForPosition(i);
int clientWidth = infoForPosition != null ? (int) (((float) getClientWidth()) * Math.max(this.mFirstOffset, Math.min(infoForPosition.offset, this.mLastOffset))) : 0;
if (z) {
smoothScrollTo(clientWidth, 0, i2);
if (z2) {
dispatchOnPageSelected(i);
return;
}
return;
}
if (z2) {
dispatchOnPageSelected(i);
}
completeScroll(false);
scrollTo(clientWidth, 0);
pageScrolled(clientWidth);
}
@Deprecated
public void setOnPageChangeListener(OnPageChangeListener onPageChangeListener) {
this.mOnPageChangeListener = onPageChangeListener;
}
public void addOnPageChangeListener(OnPageChangeListener onPageChangeListener) {
if (this.mOnPageChangeListeners == null) {
this.mOnPageChangeListeners = new ArrayList();
}
this.mOnPageChangeListeners.add(onPageChangeListener);
}
public void removeOnPageChangeListener(OnPageChangeListener onPageChangeListener) {
List<OnPageChangeListener> list = this.mOnPageChangeListeners;
if (list != null) {
list.remove(onPageChangeListener);
}
}
public void clearOnPageChangeListeners() {
List<OnPageChangeListener> list = this.mOnPageChangeListeners;
if (list != null) {
list.clear();
}
}
public void setPageTransformer(boolean z, PageTransformer pageTransformer) {
setPageTransformer(z, pageTransformer, 2);
}
public void setPageTransformer(boolean z, PageTransformer pageTransformer, int i) {
int i2 = 1;
boolean z2 = pageTransformer != null;
boolean z3 = z2 != (this.mPageTransformer != null);
this.mPageTransformer = pageTransformer;
setChildrenDrawingOrderEnabled(z2);
if (z2) {
if (z) {
i2 = 2;
}
this.mDrawingOrder = i2;
this.mPageTransformerLayerType = i;
} else {
this.mDrawingOrder = 0;
}
if (z3) {
populate();
}
}
/* access modifiers changed from: protected */
public int getChildDrawingOrder(int i, int i2) {
if (this.mDrawingOrder == 2) {
i2 = (i - 1) - i2;
}
return ((LayoutParams) this.mDrawingOrderedChildren.get(i2).getLayoutParams()).childIndex;
}
/* access modifiers changed from: package-private */
public OnPageChangeListener setInternalPageChangeListener(OnPageChangeListener onPageChangeListener) {
OnPageChangeListener onPageChangeListener2 = this.mInternalPageChangeListener;
this.mInternalPageChangeListener = onPageChangeListener;
return onPageChangeListener2;
}
public int getOffscreenPageLimit() {
return this.mOffscreenPageLimit;
}
public void setOffscreenPageLimit(int i) {
if (i < 1) {
Log.w(TAG, "Requested offscreen page limit " + i + " too small; defaulting to " + 1);
i = 1;
}
if (i != this.mOffscreenPageLimit) {
this.mOffscreenPageLimit = i;
populate();
}
}
public void setPageMargin(int i) {
int i2 = this.mPageMargin;
this.mPageMargin = i;
int width = getWidth();
recomputeScrollPosition(width, width, i, i2);
requestLayout();
}
public int getPageMargin() {
return this.mPageMargin;
}
public void setPageMarginDrawable(Drawable drawable) {
this.mMarginDrawable = drawable;
if (drawable != null) {
refreshDrawableState();
}
setWillNotDraw(drawable == null);
invalidate();
}
public void setPageMarginDrawable(int i) {
setPageMarginDrawable(ContextCompat.getDrawable(getContext(), i));
}
/* access modifiers changed from: protected */
public boolean verifyDrawable(Drawable drawable) {
return super.verifyDrawable(drawable) || drawable == this.mMarginDrawable;
}
/* access modifiers changed from: protected */
public void drawableStateChanged() {
super.drawableStateChanged();
Drawable drawable = this.mMarginDrawable;
if (drawable != null && drawable.isStateful()) {
drawable.setState(getDrawableState());
}
}
/* access modifiers changed from: package-private */
public float distanceInfluenceForSnapDuration(float f) {
return (float) Math.sin((double) ((f - 0.5f) * 0.47123894f));
}
/* access modifiers changed from: package-private */
public void smoothScrollTo(int i, int i2) {
smoothScrollTo(i, i2, 0);
}
/* access modifiers changed from: package-private */
public void smoothScrollTo(int i, int i2, int i3) {
int i4;
int i5;
if (getChildCount() == 0) {
setScrollingCacheEnabled(false);
return;
}
Scroller scroller = this.mScroller;
if (scroller != null && !scroller.isFinished()) {
i4 = this.mIsScrollStarted ? this.mScroller.getCurrX() : this.mScroller.getStartX();
this.mScroller.abortAnimation();
setScrollingCacheEnabled(false);
} else {
i4 = getScrollX();
}
int i6 = i4;
int scrollY = getScrollY();
int i7 = i - i6;
int i8 = i2 - scrollY;
if (i7 == 0 && i8 == 0) {
completeScroll(false);
populate();
setScrollState(0);
return;
}
setScrollingCacheEnabled(true);
setScrollState(2);
int clientWidth = getClientWidth();
int i9 = clientWidth / 2;
float f = (float) clientWidth;
float f2 = (float) i9;
float distanceInfluenceForSnapDuration = f2 + (distanceInfluenceForSnapDuration(Math.min(1.0f, (((float) Math.abs(i7)) * 1.0f) / f)) * f2);
int abs = Math.abs(i3);
if (abs > 0) {
i5 = Math.round(Math.abs(distanceInfluenceForSnapDuration / ((float) abs)) * 1000.0f) * 4;
} else {
i5 = (int) (((((float) Math.abs(i7)) / ((f * this.mAdapter.getPageWidth(this.mCurItem)) + ((float) this.mPageMargin))) + 1.0f) * 100.0f);
}
int min = Math.min(i5, MAX_SETTLE_DURATION);
this.mIsScrollStarted = false;
this.mScroller.startScroll(i6, scrollY, i7, i8, min);
ViewCompat.postInvalidateOnAnimation(this);
}
/* access modifiers changed from: package-private */
public ItemInfo addNewItem(int i, int i2) {
ItemInfo itemInfo = new ItemInfo();
itemInfo.position = i;
itemInfo.object = this.mAdapter.instantiateItem((ViewGroup) this, i);
itemInfo.widthFactor = this.mAdapter.getPageWidth(i);
if (i2 < 0 || i2 >= this.mItems.size()) {
this.mItems.add(itemInfo);
} else {
this.mItems.add(i2, itemInfo);
}
return itemInfo;
}
/* access modifiers changed from: package-private */
public void dataSetChanged() {
int count = this.mAdapter.getCount();
this.mExpectedAdapterCount = count;
boolean z = this.mItems.size() < (this.mOffscreenPageLimit * 2) + 1 && this.mItems.size() < count;
int i = this.mCurItem;
int i2 = 0;
boolean z2 = false;
while (i2 < this.mItems.size()) {
ItemInfo itemInfo = this.mItems.get(i2);
int itemPosition = this.mAdapter.getItemPosition(itemInfo.object);
if (itemPosition != -1) {
if (itemPosition == -2) {
this.mItems.remove(i2);
i2--;
if (!z2) {
this.mAdapter.startUpdate((ViewGroup) this);
z2 = true;
}
this.mAdapter.destroyItem((ViewGroup) this, itemInfo.position, itemInfo.object);
if (this.mCurItem == itemInfo.position) {
i = Math.max(0, Math.min(this.mCurItem, count - 1));
}
} else if (itemInfo.position != itemPosition) {
if (itemInfo.position == this.mCurItem) {
i = itemPosition;
}
itemInfo.position = itemPosition;
}
z = true;
}
i2++;
}
if (z2) {
this.mAdapter.finishUpdate((ViewGroup) this);
}
Collections.sort(this.mItems, COMPARATOR);
if (z) {
int childCount = getChildCount();
for (int i3 = 0; i3 < childCount; i3++) {
LayoutParams layoutParams = (LayoutParams) getChildAt(i3).getLayoutParams();
if (!layoutParams.isDecor) {
layoutParams.widthFactor = 0.0f;
}
}
setCurrentItemInternal(i, false, true);
requestLayout();
}
}
/* access modifiers changed from: package-private */
public void populate() {
populate(this.mCurItem);
}
/* access modifiers changed from: package-private */
/* JADX WARNING: Code restructure failed: missing block: B:23:0x0064, code lost:
if (r8.position == r0.mCurItem) goto L_0x006b;
*/
/* JADX WARNING: Code restructure failed: missing block: B:25:0x006a, code lost:
r8 = null;
*/
/* Code decompiled incorrectly, please refer to instructions dump. */
public void populate(int r18) {
/*
r17 = this;
r0 = r17
r1 = r18
int r2 = r0.mCurItem
if (r2 == r1) goto L_0x000f
androidx.viewpager.widget.ViewPager$ItemInfo r2 = r0.infoForPosition(r2)
r0.mCurItem = r1
goto L_0x0010
L_0x000f:
r2 = 0
L_0x0010:
androidx.viewpager.widget.PagerAdapter r1 = r0.mAdapter
if (r1 != 0) goto L_0x0018
r17.sortChildDrawingOrder()
return
L_0x0018:
boolean r1 = r0.mPopulatePending
if (r1 == 0) goto L_0x0020
r17.sortChildDrawingOrder()
return
L_0x0020:
android.os.IBinder r1 = r17.getWindowToken()
if (r1 != 0) goto L_0x0027
return
L_0x0027:
androidx.viewpager.widget.PagerAdapter r1 = r0.mAdapter
r1.startUpdate((android.view.ViewGroup) r0)
int r1 = r0.mOffscreenPageLimit
int r4 = r0.mCurItem
int r4 = r4 - r1
r5 = 0
int r4 = java.lang.Math.max(r5, r4)
androidx.viewpager.widget.PagerAdapter r6 = r0.mAdapter
int r6 = r6.getCount()
int r7 = r6 + -1
int r8 = r0.mCurItem
int r8 = r8 + r1
int r1 = java.lang.Math.min(r7, r8)
int r7 = r0.mExpectedAdapterCount
if (r6 != r7) goto L_0x0212
r7 = 0
L_0x004a:
java.util.ArrayList<androidx.viewpager.widget.ViewPager$ItemInfo> r8 = r0.mItems
int r8 = r8.size()
if (r7 >= r8) goto L_0x006a
java.util.ArrayList<androidx.viewpager.widget.ViewPager$ItemInfo> r8 = r0.mItems
java.lang.Object r8 = r8.get(r7)
androidx.viewpager.widget.ViewPager$ItemInfo r8 = (androidx.viewpager.widget.ViewPager.ItemInfo) r8
int r9 = r8.position
int r10 = r0.mCurItem
if (r9 < r10) goto L_0x0067
int r9 = r8.position
int r10 = r0.mCurItem
if (r9 != r10) goto L_0x006a
goto L_0x006b
L_0x0067:
int r7 = r7 + 1
goto L_0x004a
L_0x006a:
r8 = 0
L_0x006b:
if (r8 != 0) goto L_0x0075
if (r6 <= 0) goto L_0x0075
int r8 = r0.mCurItem
androidx.viewpager.widget.ViewPager$ItemInfo r8 = r0.addNewItem(r8, r7)
L_0x0075:
r9 = 0
if (r8 == 0) goto L_0x019f
int r10 = r7 + -1
if (r10 < 0) goto L_0x0085
java.util.ArrayList<androidx.viewpager.widget.ViewPager$ItemInfo> r11 = r0.mItems
java.lang.Object r11 = r11.get(r10)
androidx.viewpager.widget.ViewPager$ItemInfo r11 = (androidx.viewpager.widget.ViewPager.ItemInfo) r11
goto L_0x0086
L_0x0085:
r11 = 0
L_0x0086:
int r12 = r17.getClientWidth()
r13 = 1073741824(0x40000000, float:2.0)
if (r12 > 0) goto L_0x0090
r14 = 0
goto L_0x009c
L_0x0090:
float r14 = r8.widthFactor
float r14 = r13 - r14
int r15 = r17.getPaddingLeft()
float r15 = (float) r15
float r3 = (float) r12
float r15 = r15 / r3
float r14 = r14 + r15
L_0x009c:
int r3 = r0.mCurItem
int r3 = r3 + -1
r15 = 0
L_0x00a1:
if (r3 < 0) goto L_0x0101
int r16 = (r15 > r14 ? 1 : (r15 == r14 ? 0 : -1))
if (r16 < 0) goto L_0x00cf
if (r3 >= r4) goto L_0x00cf
if (r11 != 0) goto L_0x00ac
goto L_0x0101
L_0x00ac:
int r5 = r11.position
if (r3 != r5) goto L_0x00fd
boolean r5 = r11.scrolling
if (r5 != 0) goto L_0x00fd
java.util.ArrayList<androidx.viewpager.widget.ViewPager$ItemInfo> r5 = r0.mItems
r5.remove(r10)
androidx.viewpager.widget.PagerAdapter r5 = r0.mAdapter
java.lang.Object r11 = r11.object
r5.destroyItem((android.view.ViewGroup) r0, (int) r3, (java.lang.Object) r11)
int r10 = r10 + -1
int r7 = r7 + -1
if (r10 < 0) goto L_0x00fb
java.util.ArrayList<androidx.viewpager.widget.ViewPager$ItemInfo> r5 = r0.mItems
java.lang.Object r5 = r5.get(r10)
androidx.viewpager.widget.ViewPager$ItemInfo r5 = (androidx.viewpager.widget.ViewPager.ItemInfo) r5
goto L_0x00fc
L_0x00cf:
if (r11 == 0) goto L_0x00e5
int r5 = r11.position
if (r3 != r5) goto L_0x00e5
float r5 = r11.widthFactor
float r15 = r15 + r5
int r10 = r10 + -1
if (r10 < 0) goto L_0x00fb
java.util.ArrayList<androidx.viewpager.widget.ViewPager$ItemInfo> r5 = r0.mItems
java.lang.Object r5 = r5.get(r10)
androidx.viewpager.widget.ViewPager$ItemInfo r5 = (androidx.viewpager.widget.ViewPager.ItemInfo) r5
goto L_0x00fc
L_0x00e5:
int r5 = r10 + 1
androidx.viewpager.widget.ViewPager$ItemInfo r5 = r0.addNewItem(r3, r5)
float r5 = r5.widthFactor
float r15 = r15 + r5
int r7 = r7 + 1
if (r10 < 0) goto L_0x00fb
java.util.ArrayList<androidx.viewpager.widget.ViewPager$ItemInfo> r5 = r0.mItems
java.lang.Object r5 = r5.get(r10)
androidx.viewpager.widget.ViewPager$ItemInfo r5 = (androidx.viewpager.widget.ViewPager.ItemInfo) r5
goto L_0x00fc
L_0x00fb:
r5 = 0
L_0x00fc:
r11 = r5
L_0x00fd:
int r3 = r3 + -1
r5 = 0
goto L_0x00a1
L_0x0101:
float r3 = r8.widthFactor
int r4 = r7 + 1
int r5 = (r3 > r13 ? 1 : (r3 == r13 ? 0 : -1))
if (r5 >= 0) goto L_0x0193
java.util.ArrayList<androidx.viewpager.widget.ViewPager$ItemInfo> r5 = r0.mItems
int r5 = r5.size()
if (r4 >= r5) goto L_0x011a
java.util.ArrayList<androidx.viewpager.widget.ViewPager$ItemInfo> r5 = r0.mItems
java.lang.Object r5 = r5.get(r4)
androidx.viewpager.widget.ViewPager$ItemInfo r5 = (androidx.viewpager.widget.ViewPager.ItemInfo) r5
goto L_0x011b
L_0x011a:
r5 = 0
L_0x011b:
if (r12 > 0) goto L_0x011f
r10 = 0
goto L_0x0127
L_0x011f:
int r10 = r17.getPaddingRight()
float r10 = (float) r10
float r11 = (float) r12
float r10 = r10 / r11
float r10 = r10 + r13
L_0x0127:
int r11 = r0.mCurItem
L_0x0129:
int r11 = r11 + 1
if (r11 >= r6) goto L_0x0193
int r12 = (r3 > r10 ? 1 : (r3 == r10 ? 0 : -1))
if (r12 < 0) goto L_0x015d
if (r11 <= r1) goto L_0x015d
if (r5 != 0) goto L_0x0136
goto L_0x0193
L_0x0136:
int r12 = r5.position
if (r11 != r12) goto L_0x0192
boolean r12 = r5.scrolling
if (r12 != 0) goto L_0x0192
java.util.ArrayList<androidx.viewpager.widget.ViewPager$ItemInfo> r12 = r0.mItems
r12.remove(r4)
androidx.viewpager.widget.PagerAdapter r12 = r0.mAdapter
java.lang.Object r5 = r5.object
r12.destroyItem((android.view.ViewGroup) r0, (int) r11, (java.lang.Object) r5)
java.util.ArrayList<androidx.viewpager.widget.ViewPager$ItemInfo> r5 = r0.mItems
int r5 = r5.size()
if (r4 >= r5) goto L_0x015b
java.util.ArrayList<androidx.viewpager.widget.ViewPager$ItemInfo> r5 = r0.mItems
java.lang.Object r5 = r5.get(r4)
androidx.viewpager.widget.ViewPager$ItemInfo r5 = (androidx.viewpager.widget.ViewPager.ItemInfo) r5
goto L_0x0192
L_0x015b:
r5 = 0
goto L_0x0192
L_0x015d:
if (r5 == 0) goto L_0x0179
int r12 = r5.position
if (r11 != r12) goto L_0x0179
float r5 = r5.widthFactor
float r3 = r3 + r5
int r4 = r4 + 1
java.util.ArrayList<androidx.viewpager.widget.ViewPager$ItemInfo> r5 = r0.mItems
int r5 = r5.size()
if (r4 >= r5) goto L_0x015b
java.util.ArrayList<androidx.viewpager.widget.ViewPager$ItemInfo> r5 = r0.mItems
java.lang.Object r5 = r5.get(r4)
androidx.viewpager.widget.ViewPager$ItemInfo r5 = (androidx.viewpager.widget.ViewPager.ItemInfo) r5
goto L_0x0192
L_0x0179:
androidx.viewpager.widget.ViewPager$ItemInfo r5 = r0.addNewItem(r11, r4)
int r4 = r4 + 1
float r5 = r5.widthFactor
float r3 = r3 + r5
java.util.ArrayList<androidx.viewpager.widget.ViewPager$ItemInfo> r5 = r0.mItems
int r5 = r5.size()
if (r4 >= r5) goto L_0x015b
java.util.ArrayList<androidx.viewpager.widget.ViewPager$ItemInfo> r5 = r0.mItems
java.lang.Object r5 = r5.get(r4)
androidx.viewpager.widget.ViewPager$ItemInfo r5 = (androidx.viewpager.widget.ViewPager.ItemInfo) r5
L_0x0192:
goto L_0x0129
L_0x0193:
r0.calculatePageOffsets(r8, r7, r2)
androidx.viewpager.widget.PagerAdapter r1 = r0.mAdapter
int r2 = r0.mCurItem
java.lang.Object r3 = r8.object
r1.setPrimaryItem((android.view.ViewGroup) r0, (int) r2, (java.lang.Object) r3)
L_0x019f:
androidx.viewpager.widget.PagerAdapter r1 = r0.mAdapter
r1.finishUpdate((android.view.ViewGroup) r0)
int r1 = r17.getChildCount()
r2 = 0
L_0x01a9:
if (r2 >= r1) goto L_0x01d2
android.view.View r3 = r0.getChildAt(r2)
android.view.ViewGroup$LayoutParams r4 = r3.getLayoutParams()
androidx.viewpager.widget.ViewPager$LayoutParams r4 = (androidx.viewpager.widget.ViewPager.LayoutParams) r4
r4.childIndex = r2
boolean r5 = r4.isDecor
if (r5 != 0) goto L_0x01cf
float r5 = r4.widthFactor
int r5 = (r5 > r9 ? 1 : (r5 == r9 ? 0 : -1))
if (r5 != 0) goto L_0x01cf
androidx.viewpager.widget.ViewPager$ItemInfo r3 = r0.infoForChild(r3)
if (r3 == 0) goto L_0x01cf
float r5 = r3.widthFactor
r4.widthFactor = r5
int r3 = r3.position
r4.position = r3
L_0x01cf:
int r2 = r2 + 1
goto L_0x01a9
L_0x01d2:
r17.sortChildDrawingOrder()
boolean r1 = r17.hasFocus()
if (r1 == 0) goto L_0x0211
android.view.View r1 = r17.findFocus()
if (r1 == 0) goto L_0x01e6
androidx.viewpager.widget.ViewPager$ItemInfo r3 = r0.infoForAnyChild(r1)
goto L_0x01e7
L_0x01e6:
r3 = 0
L_0x01e7:
if (r3 == 0) goto L_0x01ef
int r1 = r3.position
int r2 = r0.mCurItem
if (r1 == r2) goto L_0x0211
L_0x01ef:
r5 = 0
L_0x01f0:
int r1 = r17.getChildCount()
if (r5 >= r1) goto L_0x0211
android.view.View r1 = r0.getChildAt(r5)
androidx.viewpager.widget.ViewPager$ItemInfo r2 = r0.infoForChild(r1)
if (r2 == 0) goto L_0x020e
int r2 = r2.position
int r3 = r0.mCurItem
if (r2 != r3) goto L_0x020e
r2 = 2
boolean r1 = r1.requestFocus(r2)
if (r1 == 0) goto L_0x020e
goto L_0x0211
L_0x020e:
int r5 = r5 + 1
goto L_0x01f0
L_0x0211:
return
L_0x0212:
android.content.res.Resources r1 = r17.getResources() // Catch:{ NotFoundException -> 0x021f }
int r2 = r17.getId() // Catch:{ NotFoundException -> 0x021f }
java.lang.String r1 = r1.getResourceName(r2) // Catch:{ NotFoundException -> 0x021f }
goto L_0x0227
L_0x021f:
int r1 = r17.getId()
java.lang.String r1 = java.lang.Integer.toHexString(r1)
L_0x0227:
java.lang.IllegalStateException r2 = new java.lang.IllegalStateException
java.lang.StringBuilder r3 = new java.lang.StringBuilder
r3.<init>()
java.lang.String r4 = "The application's PagerAdapter changed the adapter's contents without calling PagerAdapter#notifyDataSetChanged! Expected adapter item count: "
r3.append(r4)
int r4 = r0.mExpectedAdapterCount
r3.append(r4)
java.lang.String r4 = ", found: "
r3.append(r4)
r3.append(r6)
java.lang.String r4 = " Pager id: "
r3.append(r4)
r3.append(r1)
java.lang.String r1 = " Pager class: "
r3.append(r1)
java.lang.Class r1 = r17.getClass()
r3.append(r1)
java.lang.String r1 = " Problematic adapter: "
r3.append(r1)
androidx.viewpager.widget.PagerAdapter r1 = r0.mAdapter
java.lang.Class r1 = r1.getClass()
r3.append(r1)
java.lang.String r1 = r3.toString()
r2.<init>(r1)
throw r2
*/
throw new UnsupportedOperationException("Method not decompiled: androidx.viewpager.widget.ViewPager.populate(int):void");
}
private void sortChildDrawingOrder() {
if (this.mDrawingOrder != 0) {
ArrayList<View> arrayList = this.mDrawingOrderedChildren;
if (arrayList == null) {
this.mDrawingOrderedChildren = new ArrayList<>();
} else {
arrayList.clear();
}
int childCount = getChildCount();
for (int i = 0; i < childCount; i++) {
this.mDrawingOrderedChildren.add(getChildAt(i));
}
Collections.sort(this.mDrawingOrderedChildren, sPositionComparator);
}
}
private void calculatePageOffsets(ItemInfo itemInfo, int i, ItemInfo itemInfo2) {
ItemInfo itemInfo3;
ItemInfo itemInfo4;
int count = this.mAdapter.getCount();
int clientWidth = getClientWidth();
float f = clientWidth > 0 ? ((float) this.mPageMargin) / ((float) clientWidth) : 0.0f;
if (itemInfo2 != null) {
int i2 = itemInfo2.position;
if (i2 < itemInfo.position) {
float f2 = itemInfo2.offset + itemInfo2.widthFactor + f;
int i3 = i2 + 1;
int i4 = 0;
while (i3 <= itemInfo.position && i4 < this.mItems.size()) {
Object obj = this.mItems.get(i4);
while (true) {
itemInfo4 = (ItemInfo) obj;
if (i3 > itemInfo4.position && i4 < this.mItems.size() - 1) {
i4++;
obj = this.mItems.get(i4);
}
}
while (i3 < itemInfo4.position) {
f2 += this.mAdapter.getPageWidth(i3) + f;
i3++;
}
itemInfo4.offset = f2;
f2 += itemInfo4.widthFactor + f;
i3++;
}
} else if (i2 > itemInfo.position) {
int size = this.mItems.size() - 1;
float f3 = itemInfo2.offset;
while (true) {
i2--;
if (i2 < itemInfo.position || size < 0) {
break;
}
Object obj2 = this.mItems.get(size);
while (true) {
itemInfo3 = (ItemInfo) obj2;
if (i2 < itemInfo3.position && size > 0) {
size--;
obj2 = this.mItems.get(size);
}
}
while (i2 > itemInfo3.position) {
f3 -= this.mAdapter.getPageWidth(i2) + f;
i2--;
}
f3 -= itemInfo3.widthFactor + f;
itemInfo3.offset = f3;
}
}
}
int size2 = this.mItems.size();
float f4 = itemInfo.offset;
int i5 = itemInfo.position - 1;
this.mFirstOffset = itemInfo.position == 0 ? itemInfo.offset : -3.4028235E38f;
int i6 = count - 1;
this.mLastOffset = itemInfo.position == i6 ? (itemInfo.offset + itemInfo.widthFactor) - 1.0f : Float.MAX_VALUE;
int i7 = i - 1;
while (i7 >= 0) {
ItemInfo itemInfo5 = this.mItems.get(i7);
while (i5 > itemInfo5.position) {
f4 -= this.mAdapter.getPageWidth(i5) + f;
i5--;
}
f4 -= itemInfo5.widthFactor + f;
itemInfo5.offset = f4;
if (itemInfo5.position == 0) {
this.mFirstOffset = f4;
}
i7--;
i5--;
}
float f5 = itemInfo.offset + itemInfo.widthFactor + f;
int i8 = itemInfo.position + 1;
int i9 = i + 1;
while (i9 < size2) {
ItemInfo itemInfo6 = this.mItems.get(i9);
while (i8 < itemInfo6.position) {
f5 += this.mAdapter.getPageWidth(i8) + f;
i8++;
}
if (itemInfo6.position == i6) {
this.mLastOffset = (itemInfo6.widthFactor + f5) - 1.0f;
}
itemInfo6.offset = f5;
f5 += itemInfo6.widthFactor + f;
i9++;
i8++;
}
this.mNeedCalculatePageOffsets = false;
}
public static class SavedState extends AbsSavedState {
public static final Parcelable.Creator<SavedState> CREATOR = new Parcelable.ClassLoaderCreator<SavedState>() {
public SavedState createFromParcel(Parcel parcel, ClassLoader classLoader) {
return new SavedState(parcel, classLoader);
}
public SavedState createFromParcel(Parcel parcel) {
return new SavedState(parcel, (ClassLoader) null);
}
public SavedState[] newArray(int i) {
return new SavedState[i];
}
};
Parcelable adapterState;
ClassLoader loader;
int position;
public SavedState(Parcelable parcelable) {
super(parcelable);
}
public void writeToParcel(Parcel parcel, int i) {
super.writeToParcel(parcel, i);
parcel.writeInt(this.position);
parcel.writeParcelable(this.adapterState, i);
}
public String toString() {
return "FragmentPager.SavedState{" + Integer.toHexString(System.identityHashCode(this)) + " position=" + this.position + "}";
}
SavedState(Parcel parcel, ClassLoader classLoader) {
super(parcel, classLoader);
classLoader = classLoader == null ? getClass().getClassLoader() : classLoader;
this.position = parcel.readInt();
this.adapterState = parcel.readParcelable(classLoader);
this.loader = classLoader;
}
}
public Parcelable onSaveInstanceState() {
SavedState savedState = new SavedState(super.onSaveInstanceState());
savedState.position = this.mCurItem;
PagerAdapter pagerAdapter = this.mAdapter;
if (pagerAdapter != null) {
savedState.adapterState = pagerAdapter.saveState();
}
return savedState;
}
public void onRestoreInstanceState(Parcelable parcelable) {
if (!(parcelable instanceof SavedState)) {
super.onRestoreInstanceState(parcelable);
return;
}
SavedState savedState = (SavedState) parcelable;
super.onRestoreInstanceState(savedState.getSuperState());
PagerAdapter pagerAdapter = this.mAdapter;
if (pagerAdapter != null) {
pagerAdapter.restoreState(savedState.adapterState, savedState.loader);
setCurrentItemInternal(savedState.position, false, true);
return;
}
this.mRestoredCurItem = savedState.position;
this.mRestoredAdapterState = savedState.adapterState;
this.mRestoredClassLoader = savedState.loader;
}
public void addView(View view, int i, ViewGroup.LayoutParams layoutParams) {
if (!checkLayoutParams(layoutParams)) {
layoutParams = generateLayoutParams(layoutParams);
}
LayoutParams layoutParams2 = (LayoutParams) layoutParams;
layoutParams2.isDecor |= isDecorView(view);
if (!this.mInLayout) {
super.addView(view, i, layoutParams);
} else if (layoutParams2 == null || !layoutParams2.isDecor) {
layoutParams2.needsMeasure = true;
addViewInLayout(view, i, layoutParams);
} else {
throw new IllegalStateException("Cannot add pager decor view during layout");
}
}
private static boolean isDecorView(View view) {
return view.getClass().getAnnotation(DecorView.class) != null;
}
public void removeView(View view) {
if (this.mInLayout) {
removeViewInLayout(view);
} else {
super.removeView(view);
}
}
/* access modifiers changed from: package-private */
public ItemInfo infoForChild(View view) {
for (int i = 0; i < this.mItems.size(); i++) {
ItemInfo itemInfo = this.mItems.get(i);
if (this.mAdapter.isViewFromObject(view, itemInfo.object)) {
return itemInfo;
}
}
return null;
}
/* access modifiers changed from: package-private */
public ItemInfo infoForAnyChild(View view) {
while (true) {
ViewParent parent = view.getParent();
if (parent == this) {
return infoForChild(view);
}
if (parent == null || !(parent instanceof View)) {
return null;
}
view = (View) parent;
}
}
/* access modifiers changed from: package-private */
public ItemInfo infoForPosition(int i) {
for (int i2 = 0; i2 < this.mItems.size(); i2++) {
ItemInfo itemInfo = this.mItems.get(i2);
if (itemInfo.position == i) {
return itemInfo;
}
}
return null;
}
/* access modifiers changed from: protected */
public void onAttachedToWindow() {
super.onAttachedToWindow();
this.mFirstLayout = true;
}
/* access modifiers changed from: protected */
/* JADX WARNING: Removed duplicated region for block: B:28:0x008a */
/* JADX WARNING: Removed duplicated region for block: B:33:0x0095 */
/* JADX WARNING: Removed duplicated region for block: B:36:0x009b */
/* JADX WARNING: Removed duplicated region for block: B:40:0x00a4 */
/* JADX WARNING: Removed duplicated region for block: B:43:0x00b3 */
/* JADX WARNING: Removed duplicated region for block: B:44:0x00b9 */
/* Code decompiled incorrectly, please refer to instructions dump. */
public void onMeasure(int r17, int r18) {
/*
r16 = this;
r0 = r16
r1 = 0
r2 = r17
int r2 = getDefaultSize(r1, r2)
r3 = r18
int r3 = getDefaultSize(r1, r3)
r0.setMeasuredDimension(r2, r3)
int r2 = r16.getMeasuredWidth()
int r3 = r2 / 10
int r4 = r0.mDefaultGutterSize
int r3 = java.lang.Math.min(r3, r4)
r0.mGutterSize = r3
int r3 = r16.getPaddingLeft()
int r2 = r2 - r3
int r3 = r16.getPaddingRight()
int r2 = r2 - r3
int r3 = r16.getMeasuredHeight()
int r4 = r16.getPaddingTop()
int r3 = r3 - r4
int r4 = r16.getPaddingBottom()
int r3 = r3 - r4
int r4 = r16.getChildCount()
r5 = 0
L_0x003d:
r6 = 8
r7 = 1
r8 = 1073741824(0x40000000, float:2.0)
if (r5 >= r4) goto L_0x00c5
android.view.View r9 = r0.getChildAt(r5)
int r10 = r9.getVisibility()
if (r10 == r6) goto L_0x00c0
android.view.ViewGroup$LayoutParams r6 = r9.getLayoutParams()
androidx.viewpager.widget.ViewPager$LayoutParams r6 = (androidx.viewpager.widget.ViewPager.LayoutParams) r6
if (r6 == 0) goto L_0x00c0
boolean r10 = r6.isDecor
if (r10 == 0) goto L_0x00c0
int r10 = r6.gravity
r10 = r10 & 7
int r11 = r6.gravity
r11 = r11 & 112(0x70, float:1.57E-43)
r12 = 48
if (r11 == r12) goto L_0x006d
r12 = 80
if (r11 != r12) goto L_0x006b
goto L_0x006d
L_0x006b:
r11 = 0
goto L_0x006e
L_0x006d:
r11 = 1
L_0x006e:
r12 = 3
if (r10 == r12) goto L_0x0076
r12 = 5
if (r10 != r12) goto L_0x0075
goto L_0x0076
L_0x0075:
r7 = 0
L_0x0076:
r10 = -2147483648(0xffffffff80000000, float:-0.0)
if (r11 == 0) goto L_0x007d
r10 = 1073741824(0x40000000, float:2.0)
goto L_0x0082
L_0x007d:
if (r7 == 0) goto L_0x0082
r12 = 1073741824(0x40000000, float:2.0)
goto L_0x0084
L_0x0082:
r12 = -2147483648(0xffffffff80000000, float:-0.0)
L_0x0084:
int r13 = r6.width
r14 = -1
r15 = -2
if (r13 == r15) goto L_0x0095
int r10 = r6.width
if (r10 == r14) goto L_0x0091
int r10 = r6.width
goto L_0x0092
L_0x0091:
r10 = r2
L_0x0092:
r13 = 1073741824(0x40000000, float:2.0)
goto L_0x0097
L_0x0095:
r13 = r10
r10 = r2
L_0x0097:
int r1 = r6.height
if (r1 == r15) goto L_0x00a4
int r1 = r6.height
if (r1 == r14) goto L_0x00a2
int r1 = r6.height
goto L_0x00a6
L_0x00a2:
r1 = r3
goto L_0x00a6
L_0x00a4:
r1 = r3
r8 = r12
L_0x00a6:
int r6 = android.view.View.MeasureSpec.makeMeasureSpec(r10, r13)
int r1 = android.view.View.MeasureSpec.makeMeasureSpec(r1, r8)
r9.measure(r6, r1)
if (r11 == 0) goto L_0x00b9
int r1 = r9.getMeasuredHeight()
int r3 = r3 - r1
goto L_0x00c0
L_0x00b9:
if (r7 == 0) goto L_0x00c0
int r1 = r9.getMeasuredWidth()
int r2 = r2 - r1
L_0x00c0:
int r5 = r5 + 1
r1 = 0
goto L_0x003d
L_0x00c5:
int r1 = android.view.View.MeasureSpec.makeMeasureSpec(r2, r8)
r0.mChildWidthMeasureSpec = r1
int r1 = android.view.View.MeasureSpec.makeMeasureSpec(r3, r8)
r0.mChildHeightMeasureSpec = r1
r0.mInLayout = r7
r16.populate()
r1 = 0
r0.mInLayout = r1
int r3 = r16.getChildCount()
L_0x00dd:
if (r1 >= r3) goto L_0x0107
android.view.View r4 = r0.getChildAt(r1)
int r5 = r4.getVisibility()
if (r5 == r6) goto L_0x0104
android.view.ViewGroup$LayoutParams r5 = r4.getLayoutParams()
androidx.viewpager.widget.ViewPager$LayoutParams r5 = (androidx.viewpager.widget.ViewPager.LayoutParams) r5
if (r5 == 0) goto L_0x00f5
boolean r7 = r5.isDecor
if (r7 != 0) goto L_0x0104
L_0x00f5:
float r7 = (float) r2
float r5 = r5.widthFactor
float r7 = r7 * r5
int r5 = (int) r7
int r5 = android.view.View.MeasureSpec.makeMeasureSpec(r5, r8)
int r7 = r0.mChildHeightMeasureSpec
r4.measure(r5, r7)
L_0x0104:
int r1 = r1 + 1
goto L_0x00dd
L_0x0107:
return
*/
throw new UnsupportedOperationException("Method not decompiled: androidx.viewpager.widget.ViewPager.onMeasure(int, int):void");
}
/* access modifiers changed from: protected */
public void onSizeChanged(int i, int i2, int i3, int i4) {
super.onSizeChanged(i, i2, i3, i4);
if (i != i3) {
int i5 = this.mPageMargin;
recomputeScrollPosition(i, i3, i5, i5);
}
}
private void recomputeScrollPosition(int i, int i2, int i3, int i4) {
if (i2 <= 0 || this.mItems.isEmpty()) {
ItemInfo infoForPosition = infoForPosition(this.mCurItem);
int min = (int) ((infoForPosition != null ? Math.min(infoForPosition.offset, this.mLastOffset) : 0.0f) * ((float) ((i - getPaddingLeft()) - getPaddingRight())));
if (min != getScrollX()) {
completeScroll(false);
scrollTo(min, getScrollY());
}
} else if (!this.mScroller.isFinished()) {
this.mScroller.setFinalX(getCurrentItem() * getClientWidth());
} else {
scrollTo((int) ((((float) getScrollX()) / ((float) (((i2 - getPaddingLeft()) - getPaddingRight()) + i4))) * ((float) (((i - getPaddingLeft()) - getPaddingRight()) + i3))), getScrollY());
}
}
/* access modifiers changed from: protected */
/* JADX WARNING: Removed duplicated region for block: B:20:0x0073 */
/* JADX WARNING: Removed duplicated region for block: B:27:0x0090 */
/* Code decompiled incorrectly, please refer to instructions dump. */
public void onLayout(boolean r19, int r20, int r21, int r22, int r23) {
/*
r18 = this;
r0 = r18
int r1 = r18.getChildCount()
int r2 = r22 - r20
int r3 = r23 - r21
int r4 = r18.getPaddingLeft()
int r5 = r18.getPaddingTop()
int r6 = r18.getPaddingRight()
int r7 = r18.getPaddingBottom()
int r8 = r18.getScrollX()
r10 = 0
r11 = 0
L_0x0020:
r12 = 8
if (r10 >= r1) goto L_0x00b8
android.view.View r13 = r0.getChildAt(r10)
int r14 = r13.getVisibility()
if (r14 == r12) goto L_0x00b4
android.view.ViewGroup$LayoutParams r12 = r13.getLayoutParams()
androidx.viewpager.widget.ViewPager$LayoutParams r12 = (androidx.viewpager.widget.ViewPager.LayoutParams) r12
boolean r14 = r12.isDecor
if (r14 == 0) goto L_0x00b4
int r14 = r12.gravity
r14 = r14 & 7
int r12 = r12.gravity
r12 = r12 & 112(0x70, float:1.57E-43)
r15 = 1
if (r14 == r15) goto L_0x005e
r15 = 3
if (r14 == r15) goto L_0x0058
r15 = 5
if (r14 == r15) goto L_0x004b
r14 = r4
goto L_0x006f
L_0x004b:
int r14 = r2 - r6
int r15 = r13.getMeasuredWidth()
int r14 = r14 - r15
int r15 = r13.getMeasuredWidth()
int r6 = r6 + r15
goto L_0x006a
L_0x0058:
int r14 = r13.getMeasuredWidth()
int r14 = r14 + r4
goto L_0x006f
L_0x005e:
int r14 = r13.getMeasuredWidth()
int r14 = r2 - r14
int r14 = r14 / 2
int r14 = java.lang.Math.max(r14, r4)
L_0x006a:
r17 = r14
r14 = r4
r4 = r17
L_0x006f:
r15 = 16
if (r12 == r15) goto L_0x0090
r15 = 48
if (r12 == r15) goto L_0x008a
r15 = 80
if (r12 == r15) goto L_0x007d
r12 = r5
goto L_0x00a1
L_0x007d:
int r12 = r3 - r7
int r15 = r13.getMeasuredHeight()
int r12 = r12 - r15
int r15 = r13.getMeasuredHeight()
int r7 = r7 + r15
goto L_0x009c
L_0x008a:
int r12 = r13.getMeasuredHeight()
int r12 = r12 + r5
goto L_0x00a1
L_0x0090:
int r12 = r13.getMeasuredHeight()
int r12 = r3 - r12
int r12 = r12 / 2
int r12 = java.lang.Math.max(r12, r5)
L_0x009c:
r17 = r12
r12 = r5
r5 = r17
L_0x00a1:
int r4 = r4 + r8
int r15 = r13.getMeasuredWidth()
int r15 = r15 + r4
int r16 = r13.getMeasuredHeight()
int r9 = r5 + r16
r13.layout(r4, r5, r15, r9)
int r11 = r11 + 1
r5 = r12
r4 = r14
L_0x00b4:
int r10 = r10 + 1
goto L_0x0020
L_0x00b8:
int r2 = r2 - r4
int r2 = r2 - r6
r6 = 0
L_0x00bb:
if (r6 >= r1) goto L_0x010a
android.view.View r8 = r0.getChildAt(r6)
int r9 = r8.getVisibility()
if (r9 == r12) goto L_0x0107
android.view.ViewGroup$LayoutParams r9 = r8.getLayoutParams()
androidx.viewpager.widget.ViewPager$LayoutParams r9 = (androidx.viewpager.widget.ViewPager.LayoutParams) r9
boolean r10 = r9.isDecor
if (r10 != 0) goto L_0x0107
androidx.viewpager.widget.ViewPager$ItemInfo r10 = r0.infoForChild(r8)
if (r10 == 0) goto L_0x0107
float r13 = (float) r2
float r10 = r10.offset
float r10 = r10 * r13
int r10 = (int) r10
int r10 = r10 + r4
boolean r14 = r9.needsMeasure
if (r14 == 0) goto L_0x00fa
r14 = 0
r9.needsMeasure = r14
float r9 = r9.widthFactor
float r13 = r13 * r9
int r9 = (int) r13
r13 = 1073741824(0x40000000, float:2.0)
int r9 = android.view.View.MeasureSpec.makeMeasureSpec(r9, r13)
int r14 = r3 - r5
int r14 = r14 - r7
int r13 = android.view.View.MeasureSpec.makeMeasureSpec(r14, r13)
r8.measure(r9, r13)
L_0x00fa:
int r9 = r8.getMeasuredWidth()
int r9 = r9 + r10
int r13 = r8.getMeasuredHeight()
int r13 = r13 + r5
r8.layout(r10, r5, r9, r13)
L_0x0107:
int r6 = r6 + 1
goto L_0x00bb
L_0x010a:
r0.mTopPageBounds = r5
int r3 = r3 - r7
r0.mBottomPageBounds = r3
r0.mDecorChildCount = r11
boolean r1 = r0.mFirstLayout
if (r1 == 0) goto L_0x011c
int r1 = r0.mCurItem
r2 = 0
r0.scrollToItem(r1, r2, r2, r2)
goto L_0x011d
L_0x011c:
r2 = 0
L_0x011d:
r0.mFirstLayout = r2
return
*/
throw new UnsupportedOperationException("Method not decompiled: androidx.viewpager.widget.ViewPager.onLayout(boolean, int, int, int, int):void");
}
public void computeScroll() {
this.mIsScrollStarted = true;
if (this.mScroller.isFinished() || !this.mScroller.computeScrollOffset()) {
completeScroll(true);
return;
}
int scrollX = getScrollX();
int scrollY = getScrollY();
int currX = this.mScroller.getCurrX();
int currY = this.mScroller.getCurrY();
if (!(scrollX == currX && scrollY == currY)) {
scrollTo(currX, currY);
if (!pageScrolled(currX)) {
this.mScroller.abortAnimation();
scrollTo(0, currY);
}
}
ViewCompat.postInvalidateOnAnimation(this);
}
private boolean pageScrolled(int i) {
if (this.mItems.size() != 0) {
ItemInfo infoForCurrentScrollPosition = infoForCurrentScrollPosition();
int clientWidth = getClientWidth();
int i2 = this.mPageMargin;
int i3 = clientWidth + i2;
float f = (float) clientWidth;
int i4 = infoForCurrentScrollPosition.position;
float f2 = ((((float) i) / f) - infoForCurrentScrollPosition.offset) / (infoForCurrentScrollPosition.widthFactor + (((float) i2) / f));
this.mCalledSuper = false;
onPageScrolled(i4, f2, (int) (((float) i3) * f2));
if (this.mCalledSuper) {
return true;
}
throw new IllegalStateException("onPageScrolled did not call superclass implementation");
} else if (this.mFirstLayout) {
return false;
} else {
this.mCalledSuper = false;
onPageScrolled(0, 0.0f, 0);
if (this.mCalledSuper) {
return false;
}
throw new IllegalStateException("onPageScrolled did not call superclass implementation");
}
}
/* access modifiers changed from: protected */
/* JADX WARNING: Removed duplicated region for block: B:19:0x0064 */
/* Code decompiled incorrectly, please refer to instructions dump. */
public void onPageScrolled(int r13, float r14, int r15) {
/*
r12 = this;
int r0 = r12.mDecorChildCount
r1 = 0
r2 = 1
if (r0 <= 0) goto L_0x006b
int r0 = r12.getScrollX()
int r3 = r12.getPaddingLeft()
int r4 = r12.getPaddingRight()
int r5 = r12.getWidth()
int r6 = r12.getChildCount()
r7 = 0
L_0x001b:
if (r7 >= r6) goto L_0x006b
android.view.View r8 = r12.getChildAt(r7)
android.view.ViewGroup$LayoutParams r9 = r8.getLayoutParams()
androidx.viewpager.widget.ViewPager$LayoutParams r9 = (androidx.viewpager.widget.ViewPager.LayoutParams) r9
boolean r10 = r9.isDecor
if (r10 != 0) goto L_0x002c
goto L_0x0068
L_0x002c:
int r9 = r9.gravity
r9 = r9 & 7
if (r9 == r2) goto L_0x004d
r10 = 3
if (r9 == r10) goto L_0x0047
r10 = 5
if (r9 == r10) goto L_0x003a
r9 = r3
goto L_0x005c
L_0x003a:
int r9 = r5 - r4
int r10 = r8.getMeasuredWidth()
int r9 = r9 - r10
int r10 = r8.getMeasuredWidth()
int r4 = r4 + r10
goto L_0x0059
L_0x0047:
int r9 = r8.getWidth()
int r9 = r9 + r3
goto L_0x005c
L_0x004d:
int r9 = r8.getMeasuredWidth()
int r9 = r5 - r9
int r9 = r9 / 2
int r9 = java.lang.Math.max(r9, r3)
L_0x0059:
r11 = r9
r9 = r3
r3 = r11
L_0x005c:
int r3 = r3 + r0
int r10 = r8.getLeft()
int r3 = r3 - r10
if (r3 == 0) goto L_0x0067
r8.offsetLeftAndRight(r3)
L_0x0067:
r3 = r9
L_0x0068:
int r7 = r7 + 1
goto L_0x001b
L_0x006b:
r12.dispatchOnPageScrolled(r13, r14, r15)
androidx.viewpager.widget.ViewPager$PageTransformer r13 = r12.mPageTransformer
if (r13 == 0) goto L_0x009f
int r13 = r12.getScrollX()
int r14 = r12.getChildCount()
L_0x007a:
if (r1 >= r14) goto L_0x009f
android.view.View r15 = r12.getChildAt(r1)
android.view.ViewGroup$LayoutParams r0 = r15.getLayoutParams()
androidx.viewpager.widget.ViewPager$LayoutParams r0 = (androidx.viewpager.widget.ViewPager.LayoutParams) r0
boolean r0 = r0.isDecor
if (r0 == 0) goto L_0x008b
goto L_0x009c
L_0x008b:
int r0 = r15.getLeft()
int r0 = r0 - r13
float r0 = (float) r0
int r3 = r12.getClientWidth()
float r3 = (float) r3
float r0 = r0 / r3
androidx.viewpager.widget.ViewPager$PageTransformer r3 = r12.mPageTransformer
r3.transformPage(r15, r0)
L_0x009c:
int r1 = r1 + 1
goto L_0x007a
L_0x009f:
r12.mCalledSuper = r2
return
*/
throw new UnsupportedOperationException("Method not decompiled: androidx.viewpager.widget.ViewPager.onPageScrolled(int, float, int):void");
}
private void dispatchOnPageScrolled(int i, float f, int i2) {
OnPageChangeListener onPageChangeListener = this.mOnPageChangeListener;
if (onPageChangeListener != null) {
onPageChangeListener.onPageScrolled(i, f, i2);
}
List<OnPageChangeListener> list = this.mOnPageChangeListeners;
if (list != null) {
int size = list.size();
for (int i3 = 0; i3 < size; i3++) {
OnPageChangeListener onPageChangeListener2 = this.mOnPageChangeListeners.get(i3);
if (onPageChangeListener2 != null) {
onPageChangeListener2.onPageScrolled(i, f, i2);
}
}
}
OnPageChangeListener onPageChangeListener3 = this.mInternalPageChangeListener;
if (onPageChangeListener3 != null) {
onPageChangeListener3.onPageScrolled(i, f, i2);
}
}
private void dispatchOnPageSelected(int i) {
OnPageChangeListener onPageChangeListener = this.mOnPageChangeListener;
if (onPageChangeListener != null) {
onPageChangeListener.onPageSelected(i);
}
List<OnPageChangeListener> list = this.mOnPageChangeListeners;
if (list != null) {
int size = list.size();
for (int i2 = 0; i2 < size; i2++) {
OnPageChangeListener onPageChangeListener2 = this.mOnPageChangeListeners.get(i2);
if (onPageChangeListener2 != null) {
onPageChangeListener2.onPageSelected(i);
}
}
}
OnPageChangeListener onPageChangeListener3 = this.mInternalPageChangeListener;
if (onPageChangeListener3 != null) {
onPageChangeListener3.onPageSelected(i);
}
}
private void dispatchOnScrollStateChanged(int i) {
OnPageChangeListener onPageChangeListener = this.mOnPageChangeListener;
if (onPageChangeListener != null) {
onPageChangeListener.onPageScrollStateChanged(i);
}
List<OnPageChangeListener> list = this.mOnPageChangeListeners;
if (list != null) {
int size = list.size();
for (int i2 = 0; i2 < size; i2++) {
OnPageChangeListener onPageChangeListener2 = this.mOnPageChangeListeners.get(i2);
if (onPageChangeListener2 != null) {
onPageChangeListener2.onPageScrollStateChanged(i);
}
}
}
OnPageChangeListener onPageChangeListener3 = this.mInternalPageChangeListener;
if (onPageChangeListener3 != null) {
onPageChangeListener3.onPageScrollStateChanged(i);
}
}
private void completeScroll(boolean z) {
boolean z2 = this.mScrollState == 2;
if (z2) {
setScrollingCacheEnabled(false);
if (!this.mScroller.isFinished()) {
this.mScroller.abortAnimation();
int scrollX = getScrollX();
int scrollY = getScrollY();
int currX = this.mScroller.getCurrX();
int currY = this.mScroller.getCurrY();
if (!(scrollX == currX && scrollY == currY)) {
scrollTo(currX, currY);
if (currX != scrollX) {
pageScrolled(currX);
}
}
}
}
this.mPopulatePending = false;
for (int i = 0; i < this.mItems.size(); i++) {
ItemInfo itemInfo = this.mItems.get(i);
if (itemInfo.scrolling) {
itemInfo.scrolling = false;
z2 = true;
}
}
if (!z2) {
return;
}
if (z) {
ViewCompat.postOnAnimation(this, this.mEndScrollRunnable);
} else {
this.mEndScrollRunnable.run();
}
}
private boolean isGutterDrag(float f, float f2) {
return (f < ((float) this.mGutterSize) && f2 > 0.0f) || (f > ((float) (getWidth() - this.mGutterSize)) && f2 < 0.0f);
}
private void enableLayers(boolean z) {
int childCount = getChildCount();
for (int i = 0; i < childCount; i++) {
getChildAt(i).setLayerType(z ? this.mPageTransformerLayerType : 0, (Paint) null);
}
}
public boolean onInterceptTouchEvent(MotionEvent motionEvent) {
MotionEvent motionEvent2 = motionEvent;
int action = motionEvent.getAction() & 255;
if (action == 3 || action == 1) {
resetTouch();
return false;
}
if (action != 0) {
if (this.mIsBeingDragged) {
return true;
}
if (this.mIsUnableToDrag) {
return false;
}
}
if (action == 0) {
float x = motionEvent.getX();
this.mInitialMotionX = x;
this.mLastMotionX = x;
float y = motionEvent.getY();
this.mInitialMotionY = y;
this.mLastMotionY = y;
this.mActivePointerId = motionEvent2.getPointerId(0);
this.mIsUnableToDrag = false;
this.mIsScrollStarted = true;
this.mScroller.computeScrollOffset();
if (this.mScrollState != 2 || Math.abs(this.mScroller.getFinalX() - this.mScroller.getCurrX()) <= this.mCloseEnough) {
completeScroll(false);
this.mIsBeingDragged = false;
} else {
this.mScroller.abortAnimation();
this.mPopulatePending = false;
populate();
this.mIsBeingDragged = true;
requestParentDisallowInterceptTouchEvent(true);
setScrollState(1);
}
} else if (action == 2) {
int i = this.mActivePointerId;
if (i != -1) {
int findPointerIndex = motionEvent2.findPointerIndex(i);
float x2 = motionEvent2.getX(findPointerIndex);
float f = x2 - this.mLastMotionX;
float abs = Math.abs(f);
float y2 = motionEvent2.getY(findPointerIndex);
float abs2 = Math.abs(y2 - this.mInitialMotionY);
int i2 = (f > 0.0f ? 1 : (f == 0.0f ? 0 : -1));
if (i2 != 0 && !isGutterDrag(this.mLastMotionX, f)) {
if (canScroll(this, false, (int) f, (int) x2, (int) y2)) {
this.mLastMotionX = x2;
this.mLastMotionY = y2;
this.mIsUnableToDrag = true;
return false;
}
}
int i3 = this.mTouchSlop;
if (abs > ((float) i3) && abs * 0.5f > abs2) {
this.mIsBeingDragged = true;
requestParentDisallowInterceptTouchEvent(true);
setScrollState(1);
float f2 = this.mInitialMotionX;
float f3 = (float) this.mTouchSlop;
this.mLastMotionX = i2 > 0 ? f2 + f3 : f2 - f3;
this.mLastMotionY = y2;
setScrollingCacheEnabled(true);
} else if (abs2 > ((float) i3)) {
this.mIsUnableToDrag = true;
}
if (this.mIsBeingDragged && performDrag(x2)) {
ViewCompat.postInvalidateOnAnimation(this);
}
}
} else if (action == 6) {
onSecondaryPointerUp(motionEvent);
}
if (this.mVelocityTracker == null) {
this.mVelocityTracker = VelocityTracker.obtain();
}
this.mVelocityTracker.addMovement(motionEvent2);
return this.mIsBeingDragged;
}
public boolean onTouchEvent(MotionEvent motionEvent) {
PagerAdapter pagerAdapter;
if (this.mFakeDragging) {
return true;
}
boolean z = false;
if ((motionEvent.getAction() == 0 && motionEvent.getEdgeFlags() != 0) || (pagerAdapter = this.mAdapter) == null || pagerAdapter.getCount() == 0) {
return false;
}
if (this.mVelocityTracker == null) {
this.mVelocityTracker = VelocityTracker.obtain();
}
this.mVelocityTracker.addMovement(motionEvent);
int action = motionEvent.getAction() & 255;
if (action == 0) {
this.mScroller.abortAnimation();
this.mPopulatePending = false;
populate();
float x = motionEvent.getX();
this.mInitialMotionX = x;
this.mLastMotionX = x;
float y = motionEvent.getY();
this.mInitialMotionY = y;
this.mLastMotionY = y;
this.mActivePointerId = motionEvent.getPointerId(0);
} else if (action != 1) {
if (action == 2) {
if (!this.mIsBeingDragged) {
int findPointerIndex = motionEvent.findPointerIndex(this.mActivePointerId);
if (findPointerIndex == -1) {
z = resetTouch();
} else {
float x2 = motionEvent.getX(findPointerIndex);
float abs = Math.abs(x2 - this.mLastMotionX);
float y2 = motionEvent.getY(findPointerIndex);
float abs2 = Math.abs(y2 - this.mLastMotionY);
if (abs > ((float) this.mTouchSlop) && abs > abs2) {
this.mIsBeingDragged = true;
requestParentDisallowInterceptTouchEvent(true);
float f = this.mInitialMotionX;
this.mLastMotionX = x2 - f > 0.0f ? f + ((float) this.mTouchSlop) : f - ((float) this.mTouchSlop);
this.mLastMotionY = y2;
setScrollState(1);
setScrollingCacheEnabled(true);
ViewParent parent = getParent();
if (parent != null) {
parent.requestDisallowInterceptTouchEvent(true);
}
}
}
}
if (this.mIsBeingDragged) {
z = false | performDrag(motionEvent.getX(motionEvent.findPointerIndex(this.mActivePointerId)));
}
} else if (action != 3) {
if (action == 5) {
int actionIndex = motionEvent.getActionIndex();
this.mLastMotionX = motionEvent.getX(actionIndex);
this.mActivePointerId = motionEvent.getPointerId(actionIndex);
} else if (action == 6) {
onSecondaryPointerUp(motionEvent);
this.mLastMotionX = motionEvent.getX(motionEvent.findPointerIndex(this.mActivePointerId));
}
} else if (this.mIsBeingDragged) {
scrollToItem(this.mCurItem, true, 0, false);
z = resetTouch();
}
} else if (this.mIsBeingDragged) {
VelocityTracker velocityTracker = this.mVelocityTracker;
velocityTracker.computeCurrentVelocity(1000, (float) this.mMaximumVelocity);
int xVelocity = (int) velocityTracker.getXVelocity(this.mActivePointerId);
this.mPopulatePending = true;
int clientWidth = getClientWidth();
int scrollX = getScrollX();
ItemInfo infoForCurrentScrollPosition = infoForCurrentScrollPosition();
float f2 = (float) clientWidth;
setCurrentItemInternal(determineTargetPage(infoForCurrentScrollPosition.position, ((((float) scrollX) / f2) - infoForCurrentScrollPosition.offset) / (infoForCurrentScrollPosition.widthFactor + (((float) this.mPageMargin) / f2)), xVelocity, (int) (motionEvent.getX(motionEvent.findPointerIndex(this.mActivePointerId)) - this.mInitialMotionX)), true, true, xVelocity);
z = resetTouch();
}
if (z) {
ViewCompat.postInvalidateOnAnimation(this);
}
return true;
}
private boolean resetTouch() {
this.mActivePointerId = -1;
endDrag();
this.mLeftEdge.onRelease();
this.mRightEdge.onRelease();
return this.mLeftEdge.isFinished() || this.mRightEdge.isFinished();
}
private void requestParentDisallowInterceptTouchEvent(boolean z) {
ViewParent parent = getParent();
if (parent != null) {
parent.requestDisallowInterceptTouchEvent(z);
}
}
private boolean performDrag(float f) {
boolean z;
boolean z2;
float f2 = this.mLastMotionX - f;
this.mLastMotionX = f;
float scrollX = ((float) getScrollX()) + f2;
float clientWidth = (float) getClientWidth();
float f3 = this.mFirstOffset * clientWidth;
float f4 = this.mLastOffset * clientWidth;
boolean z3 = false;
ItemInfo itemInfo = this.mItems.get(0);
ArrayList<ItemInfo> arrayList = this.mItems;
ItemInfo itemInfo2 = arrayList.get(arrayList.size() - 1);
if (itemInfo.position != 0) {
f3 = itemInfo.offset * clientWidth;
z = false;
} else {
z = true;
}
if (itemInfo2.position != this.mAdapter.getCount() - 1) {
f4 = itemInfo2.offset * clientWidth;
z2 = false;
} else {
z2 = true;
}
if (scrollX < f3) {
if (z) {
this.mLeftEdge.onPull(Math.abs(f3 - scrollX) / clientWidth);
z3 = true;
}
scrollX = f3;
} else if (scrollX > f4) {
if (z2) {
this.mRightEdge.onPull(Math.abs(scrollX - f4) / clientWidth);
z3 = true;
}
scrollX = f4;
}
int i = (int) scrollX;
this.mLastMotionX += scrollX - ((float) i);
scrollTo(i, getScrollY());
pageScrolled(i);
return z3;
}
private ItemInfo infoForCurrentScrollPosition() {
int i;
int clientWidth = getClientWidth();
float f = 0.0f;
float scrollX = clientWidth > 0 ? ((float) getScrollX()) / ((float) clientWidth) : 0.0f;
float f2 = clientWidth > 0 ? ((float) this.mPageMargin) / ((float) clientWidth) : 0.0f;
ItemInfo itemInfo = null;
float f3 = 0.0f;
int i2 = -1;
int i3 = 0;
boolean z = true;
while (i3 < this.mItems.size()) {
ItemInfo itemInfo2 = this.mItems.get(i3);
if (!z && itemInfo2.position != (i = i2 + 1)) {
itemInfo2 = this.mTempItem;
itemInfo2.offset = f + f3 + f2;
itemInfo2.position = i;
itemInfo2.widthFactor = this.mAdapter.getPageWidth(itemInfo2.position);
i3--;
}
f = itemInfo2.offset;
float f4 = itemInfo2.widthFactor + f + f2;
if (!z && scrollX < f) {
return itemInfo;
}
if (scrollX < f4 || i3 == this.mItems.size() - 1) {
return itemInfo2;
}
i2 = itemInfo2.position;
f3 = itemInfo2.widthFactor;
i3++;
itemInfo = itemInfo2;
z = false;
}
return itemInfo;
}
private int determineTargetPage(int i, float f, int i2, int i3) {
if (Math.abs(i3) <= this.mFlingDistance || Math.abs(i2) <= this.mMinimumVelocity) {
i += (int) (f + (i >= this.mCurItem ? 0.4f : 0.6f));
} else if (i2 <= 0) {
i++;
}
if (this.mItems.size() <= 0) {
return i;
}
ArrayList<ItemInfo> arrayList = this.mItems;
return Math.max(this.mItems.get(0).position, Math.min(i, arrayList.get(arrayList.size() - 1).position));
}
public void draw(Canvas canvas) {
PagerAdapter pagerAdapter;
super.draw(canvas);
int overScrollMode = getOverScrollMode();
boolean z = false;
if (overScrollMode == 0 || (overScrollMode == 1 && (pagerAdapter = this.mAdapter) != null && pagerAdapter.getCount() > 1)) {
if (!this.mLeftEdge.isFinished()) {
int save = canvas.save();
int height = (getHeight() - getPaddingTop()) - getPaddingBottom();
int width = getWidth();
canvas.rotate(270.0f);
canvas.translate((float) ((-height) + getPaddingTop()), this.mFirstOffset * ((float) width));
this.mLeftEdge.setSize(height, width);
z = false | this.mLeftEdge.draw(canvas);
canvas.restoreToCount(save);
}
if (!this.mRightEdge.isFinished()) {
int save2 = canvas.save();
int width2 = getWidth();
int height2 = (getHeight() - getPaddingTop()) - getPaddingBottom();
canvas.rotate(90.0f);
canvas.translate((float) (-getPaddingTop()), (-(this.mLastOffset + 1.0f)) * ((float) width2));
this.mRightEdge.setSize(height2, width2);
z |= this.mRightEdge.draw(canvas);
canvas.restoreToCount(save2);
}
} else {
this.mLeftEdge.finish();
this.mRightEdge.finish();
}
if (z) {
ViewCompat.postInvalidateOnAnimation(this);
}
}
/* access modifiers changed from: protected */
public void onDraw(Canvas canvas) {
float f;
float f2;
float f3;
super.onDraw(canvas);
if (this.mPageMargin > 0 && this.mMarginDrawable != null && this.mItems.size() > 0 && this.mAdapter != null) {
int scrollX = getScrollX();
int width = getWidth();
float f4 = (float) width;
float f5 = ((float) this.mPageMargin) / f4;
int i = 0;
ItemInfo itemInfo = this.mItems.get(0);
float f6 = itemInfo.offset;
int size = this.mItems.size();
int i2 = itemInfo.position;
int i3 = this.mItems.get(size - 1).position;
while (i2 < i3) {
while (i2 > itemInfo.position && i < size) {
i++;
itemInfo = this.mItems.get(i);
}
if (i2 == itemInfo.position) {
f2 = (itemInfo.offset + itemInfo.widthFactor) * f4;
f = itemInfo.offset + itemInfo.widthFactor + f5;
} else {
float pageWidth = this.mAdapter.getPageWidth(i2);
f = f6 + pageWidth + f5;
f2 = (f6 + pageWidth) * f4;
}
if (((float) this.mPageMargin) + f2 > ((float) scrollX)) {
f3 = f5;
this.mMarginDrawable.setBounds(Math.round(f2), this.mTopPageBounds, Math.round(((float) this.mPageMargin) + f2), this.mBottomPageBounds);
this.mMarginDrawable.draw(canvas);
} else {
Canvas canvas2 = canvas;
f3 = f5;
}
if (f2 <= ((float) (scrollX + width))) {
i2++;
f6 = f;
f5 = f3;
} else {
return;
}
}
}
}
public boolean beginFakeDrag() {
if (this.mIsBeingDragged) {
return false;
}
this.mFakeDragging = true;
setScrollState(1);
this.mLastMotionX = 0.0f;
this.mInitialMotionX = 0.0f;
VelocityTracker velocityTracker = this.mVelocityTracker;
if (velocityTracker == null) {
this.mVelocityTracker = VelocityTracker.obtain();
} else {
velocityTracker.clear();
}
long uptimeMillis = SystemClock.uptimeMillis();
MotionEvent obtain = MotionEvent.obtain(uptimeMillis, uptimeMillis, 0, 0.0f, 0.0f, 0);
this.mVelocityTracker.addMovement(obtain);
obtain.recycle();
this.mFakeDragBeginTime = uptimeMillis;
return true;
}
public void endFakeDrag() {
if (this.mFakeDragging) {
if (this.mAdapter != null) {
VelocityTracker velocityTracker = this.mVelocityTracker;
velocityTracker.computeCurrentVelocity(1000, (float) this.mMaximumVelocity);
int xVelocity = (int) velocityTracker.getXVelocity(this.mActivePointerId);
this.mPopulatePending = true;
int clientWidth = getClientWidth();
int scrollX = getScrollX();
ItemInfo infoForCurrentScrollPosition = infoForCurrentScrollPosition();
setCurrentItemInternal(determineTargetPage(infoForCurrentScrollPosition.position, ((((float) scrollX) / ((float) clientWidth)) - infoForCurrentScrollPosition.offset) / infoForCurrentScrollPosition.widthFactor, xVelocity, (int) (this.mLastMotionX - this.mInitialMotionX)), true, true, xVelocity);
}
endDrag();
this.mFakeDragging = false;
return;
}
throw new IllegalStateException("No fake drag in progress. Call beginFakeDrag first.");
}
public void fakeDragBy(float f) {
if (!this.mFakeDragging) {
throw new IllegalStateException("No fake drag in progress. Call beginFakeDrag first.");
} else if (this.mAdapter != null) {
this.mLastMotionX += f;
float scrollX = ((float) getScrollX()) - f;
float clientWidth = (float) getClientWidth();
float f2 = this.mFirstOffset * clientWidth;
float f3 = this.mLastOffset * clientWidth;
ItemInfo itemInfo = this.mItems.get(0);
ArrayList<ItemInfo> arrayList = this.mItems;
ItemInfo itemInfo2 = arrayList.get(arrayList.size() - 1);
if (itemInfo.position != 0) {
f2 = itemInfo.offset * clientWidth;
}
if (itemInfo2.position != this.mAdapter.getCount() - 1) {
f3 = itemInfo2.offset * clientWidth;
}
if (scrollX < f2) {
scrollX = f2;
} else if (scrollX > f3) {
scrollX = f3;
}
int i = (int) scrollX;
this.mLastMotionX += scrollX - ((float) i);
scrollTo(i, getScrollY());
pageScrolled(i);
MotionEvent obtain = MotionEvent.obtain(this.mFakeDragBeginTime, SystemClock.uptimeMillis(), 2, this.mLastMotionX, 0.0f, 0);
this.mVelocityTracker.addMovement(obtain);
obtain.recycle();
}
}
public boolean isFakeDragging() {
return this.mFakeDragging;
}
private void onSecondaryPointerUp(MotionEvent motionEvent) {
int actionIndex = motionEvent.getActionIndex();
if (motionEvent.getPointerId(actionIndex) == this.mActivePointerId) {
int i = actionIndex == 0 ? 1 : 0;
this.mLastMotionX = motionEvent.getX(i);
this.mActivePointerId = motionEvent.getPointerId(i);
VelocityTracker velocityTracker = this.mVelocityTracker;
if (velocityTracker != null) {
velocityTracker.clear();
}
}
}
private void endDrag() {
this.mIsBeingDragged = false;
this.mIsUnableToDrag = false;
VelocityTracker velocityTracker = this.mVelocityTracker;
if (velocityTracker != null) {
velocityTracker.recycle();
this.mVelocityTracker = null;
}
}
private void setScrollingCacheEnabled(boolean z) {
if (this.mScrollingCacheEnabled != z) {
this.mScrollingCacheEnabled = z;
}
}
public boolean canScrollHorizontally(int i) {
if (this.mAdapter == null) {
return false;
}
int clientWidth = getClientWidth();
int scrollX = getScrollX();
if (i < 0) {
if (scrollX > ((int) (((float) clientWidth) * this.mFirstOffset))) {
return true;
}
return false;
} else if (i <= 0 || scrollX >= ((int) (((float) clientWidth) * this.mLastOffset))) {
return false;
} else {
return true;
}
}
/* access modifiers changed from: protected */
public boolean canScroll(View view, boolean z, int i, int i2, int i3) {
int i4;
View view2 = view;
if (view2 instanceof ViewGroup) {
ViewGroup viewGroup = (ViewGroup) view2;
int scrollX = view.getScrollX();
int scrollY = view.getScrollY();
for (int childCount = viewGroup.getChildCount() - 1; childCount >= 0; childCount--) {
View childAt = viewGroup.getChildAt(childCount);
int i5 = i2 + scrollX;
if (i5 >= childAt.getLeft() && i5 < childAt.getRight() && (i4 = i3 + scrollY) >= childAt.getTop() && i4 < childAt.getBottom()) {
if (canScroll(childAt, true, i, i5 - childAt.getLeft(), i4 - childAt.getTop())) {
return true;
}
}
}
}
if (!z || !view.canScrollHorizontally(-i)) {
return false;
}
return true;
}
public boolean dispatchKeyEvent(KeyEvent keyEvent) {
return super.dispatchKeyEvent(keyEvent) || executeKeyEvent(keyEvent);
}
public boolean executeKeyEvent(KeyEvent keyEvent) {
if (keyEvent.getAction() == 0) {
int keyCode = keyEvent.getKeyCode();
if (keyCode != 21) {
if (keyCode != 22) {
if (keyCode == 61) {
if (keyEvent.hasNoModifiers()) {
return arrowScroll(2);
}
if (keyEvent.hasModifiers(1)) {
return arrowScroll(1);
}
}
} else if (keyEvent.hasModifiers(2)) {
return pageRight();
} else {
return arrowScroll(66);
}
} else if (keyEvent.hasModifiers(2)) {
return pageLeft();
} else {
return arrowScroll(17);
}
}
return false;
}
/* JADX WARNING: Removed duplicated region for block: B:41:0x00cf */
/* Code decompiled incorrectly, please refer to instructions dump. */
public boolean arrowScroll(int r7) {
/*
r6 = this;
android.view.View r0 = r6.findFocus()
r1 = 1
r2 = 0
r3 = 0
if (r0 != r6) goto L_0x000b
L_0x0009:
r0 = r3
goto L_0x0069
L_0x000b:
if (r0 == 0) goto L_0x0069
android.view.ViewParent r4 = r0.getParent()
L_0x0011:
boolean r5 = r4 instanceof android.view.ViewGroup
if (r5 == 0) goto L_0x001e
if (r4 != r6) goto L_0x0019
r4 = 1
goto L_0x001f
L_0x0019:
android.view.ViewParent r4 = r4.getParent()
goto L_0x0011
L_0x001e:
r4 = 0
L_0x001f:
if (r4 != 0) goto L_0x0069
java.lang.StringBuilder r4 = new java.lang.StringBuilder
r4.<init>()
java.lang.Class r5 = r0.getClass()
java.lang.String r5 = r5.getSimpleName()
r4.append(r5)
android.view.ViewParent r0 = r0.getParent()
L_0x0035:
boolean r5 = r0 instanceof android.view.ViewGroup
if (r5 == 0) goto L_0x004e
java.lang.String r5 = " => "
r4.append(r5)
java.lang.Class r5 = r0.getClass()
java.lang.String r5 = r5.getSimpleName()
r4.append(r5)
android.view.ViewParent r0 = r0.getParent()
goto L_0x0035
L_0x004e:
java.lang.StringBuilder r0 = new java.lang.StringBuilder
r0.<init>()
java.lang.String r5 = "arrowScroll tried to find focus based on non-child current focused view "
r0.append(r5)
java.lang.String r4 = r4.toString()
r0.append(r4)
java.lang.String r0 = r0.toString()
java.lang.String r4 = "ViewPager"
android.util.Log.e(r4, r0)
goto L_0x0009
L_0x0069:
android.view.FocusFinder r3 = android.view.FocusFinder.getInstance()
android.view.View r3 = r3.findNextFocus(r6, r0, r7)
r4 = 66
r5 = 17
if (r3 == 0) goto L_0x00ba
if (r3 == r0) goto L_0x00ba
if (r7 != r5) goto L_0x009a
android.graphics.Rect r1 = r6.mTempRect
android.graphics.Rect r1 = r6.getChildRectInPagerCoordinates(r1, r3)
int r1 = r1.left
android.graphics.Rect r2 = r6.mTempRect
android.graphics.Rect r2 = r6.getChildRectInPagerCoordinates(r2, r0)
int r2 = r2.left
if (r0 == 0) goto L_0x0094
if (r1 < r2) goto L_0x0094
boolean r0 = r6.pageLeft()
goto L_0x0098
L_0x0094:
boolean r0 = r3.requestFocus()
L_0x0098:
r2 = r0
goto L_0x00cd
L_0x009a:
if (r7 != r4) goto L_0x00cd
android.graphics.Rect r1 = r6.mTempRect
android.graphics.Rect r1 = r6.getChildRectInPagerCoordinates(r1, r3)
int r1 = r1.left
android.graphics.Rect r2 = r6.mTempRect
android.graphics.Rect r2 = r6.getChildRectInPagerCoordinates(r2, r0)
int r2 = r2.left
if (r0 == 0) goto L_0x00b5
if (r1 > r2) goto L_0x00b5
boolean r0 = r6.pageRight()
goto L_0x0098
L_0x00b5:
boolean r0 = r3.requestFocus()
goto L_0x0098
L_0x00ba:
if (r7 == r5) goto L_0x00c9
if (r7 != r1) goto L_0x00bf
goto L_0x00c9
L_0x00bf:
if (r7 == r4) goto L_0x00c4
r0 = 2
if (r7 != r0) goto L_0x00cd
L_0x00c4:
boolean r2 = r6.pageRight()
goto L_0x00cd
L_0x00c9:
boolean r2 = r6.pageLeft()
L_0x00cd:
if (r2 == 0) goto L_0x00d6
int r7 = android.view.SoundEffectConstants.getContantForFocusDirection(r7)
r6.playSoundEffect(r7)
L_0x00d6:
return r2
*/
throw new UnsupportedOperationException("Method not decompiled: androidx.viewpager.widget.ViewPager.arrowScroll(int):boolean");
}
private Rect getChildRectInPagerCoordinates(Rect rect, View view) {
if (rect == null) {
rect = new Rect();
}
if (view == null) {
rect.set(0, 0, 0, 0);
return rect;
}
rect.left = view.getLeft();
rect.right = view.getRight();
rect.top = view.getTop();
rect.bottom = view.getBottom();
ViewParent parent = view.getParent();
while ((parent instanceof ViewGroup) && parent != this) {
ViewGroup viewGroup = (ViewGroup) parent;
rect.left += viewGroup.getLeft();
rect.right += viewGroup.getRight();
rect.top += viewGroup.getTop();
rect.bottom += viewGroup.getBottom();
parent = viewGroup.getParent();
}
return rect;
}
/* access modifiers changed from: package-private */
public boolean pageLeft() {
int i = this.mCurItem;
if (i <= 0) {
return false;
}
setCurrentItem(i - 1, true);
return true;
}
/* access modifiers changed from: package-private */
public boolean pageRight() {
PagerAdapter pagerAdapter = this.mAdapter;
if (pagerAdapter == null || this.mCurItem >= pagerAdapter.getCount() - 1) {
return false;
}
setCurrentItem(this.mCurItem + 1, true);
return true;
}
public void addFocusables(ArrayList<View> arrayList, int i, int i2) {
ItemInfo infoForChild;
int size = arrayList.size();
int descendantFocusability = getDescendantFocusability();
if (descendantFocusability != 393216) {
for (int i3 = 0; i3 < getChildCount(); i3++) {
View childAt = getChildAt(i3);
if (childAt.getVisibility() == 0 && (infoForChild = infoForChild(childAt)) != null && infoForChild.position == this.mCurItem) {
childAt.addFocusables(arrayList, i, i2);
}
}
}
if ((descendantFocusability == 262144 && size != arrayList.size()) || !isFocusable()) {
return;
}
if (((i2 & 1) != 1 || !isInTouchMode() || isFocusableInTouchMode()) && arrayList != null) {
arrayList.add(this);
}
}
public void addTouchables(ArrayList<View> arrayList) {
ItemInfo infoForChild;
for (int i = 0; i < getChildCount(); i++) {
View childAt = getChildAt(i);
if (childAt.getVisibility() == 0 && (infoForChild = infoForChild(childAt)) != null && infoForChild.position == this.mCurItem) {
childAt.addTouchables(arrayList);
}
}
}
/* access modifiers changed from: protected */
public boolean onRequestFocusInDescendants(int i, Rect rect) {
int i2;
int i3;
ItemInfo infoForChild;
int childCount = getChildCount();
int i4 = -1;
if ((i & 2) != 0) {
i4 = childCount;
i3 = 0;
i2 = 1;
} else {
i3 = childCount - 1;
i2 = -1;
}
while (i3 != i4) {
View childAt = getChildAt(i3);
if (childAt.getVisibility() == 0 && (infoForChild = infoForChild(childAt)) != null && infoForChild.position == this.mCurItem && childAt.requestFocus(i, rect)) {
return true;
}
i3 += i2;
}
return false;
}
public boolean dispatchPopulateAccessibilityEvent(AccessibilityEvent accessibilityEvent) {
ItemInfo infoForChild;
if (accessibilityEvent.getEventType() == 4096) {
return super.dispatchPopulateAccessibilityEvent(accessibilityEvent);
}
int childCount = getChildCount();
for (int i = 0; i < childCount; i++) {
View childAt = getChildAt(i);
if (childAt.getVisibility() == 0 && (infoForChild = infoForChild(childAt)) != null && infoForChild.position == this.mCurItem && childAt.dispatchPopulateAccessibilityEvent(accessibilityEvent)) {
return true;
}
}
return false;
}
/* access modifiers changed from: protected */
public ViewGroup.LayoutParams generateDefaultLayoutParams() {
return new LayoutParams();
}
/* access modifiers changed from: protected */
public ViewGroup.LayoutParams generateLayoutParams(ViewGroup.LayoutParams layoutParams) {
return generateDefaultLayoutParams();
}
/* access modifiers changed from: protected */
public boolean checkLayoutParams(ViewGroup.LayoutParams layoutParams) {
return (layoutParams instanceof LayoutParams) && super.checkLayoutParams(layoutParams);
}
public ViewGroup.LayoutParams generateLayoutParams(AttributeSet attributeSet) {
return new LayoutParams(getContext(), attributeSet);
}
class MyAccessibilityDelegate extends AccessibilityDelegateCompat {
MyAccessibilityDelegate() {
}
public void onInitializeAccessibilityEvent(View view, AccessibilityEvent accessibilityEvent) {
super.onInitializeAccessibilityEvent(view, accessibilityEvent);
accessibilityEvent.setClassName(ViewPager.class.getName());
accessibilityEvent.setScrollable(canScroll());
if (accessibilityEvent.getEventType() == 4096 && ViewPager.this.mAdapter != null) {
accessibilityEvent.setItemCount(ViewPager.this.mAdapter.getCount());
accessibilityEvent.setFromIndex(ViewPager.this.mCurItem);
accessibilityEvent.setToIndex(ViewPager.this.mCurItem);
}
}
public void onInitializeAccessibilityNodeInfo(View view, AccessibilityNodeInfoCompat accessibilityNodeInfoCompat) {
super.onInitializeAccessibilityNodeInfo(view, accessibilityNodeInfoCompat);
accessibilityNodeInfoCompat.setClassName(ViewPager.class.getName());
accessibilityNodeInfoCompat.setScrollable(canScroll());
if (ViewPager.this.canScrollHorizontally(1)) {
accessibilityNodeInfoCompat.addAction(4096);
}
if (ViewPager.this.canScrollHorizontally(-1)) {
accessibilityNodeInfoCompat.addAction(8192);
}
}
public boolean performAccessibilityAction(View view, int i, Bundle bundle) {
if (super.performAccessibilityAction(view, i, bundle)) {
return true;
}
if (i != 4096) {
if (i != 8192 || !ViewPager.this.canScrollHorizontally(-1)) {
return false;
}
ViewPager viewPager = ViewPager.this;
viewPager.setCurrentItem(viewPager.mCurItem - 1);
return true;
} else if (!ViewPager.this.canScrollHorizontally(1)) {
return false;
} else {
ViewPager viewPager2 = ViewPager.this;
viewPager2.setCurrentItem(viewPager2.mCurItem + 1);
return true;
}
}
private boolean canScroll() {
return ViewPager.this.mAdapter != null && ViewPager.this.mAdapter.getCount() > 1;
}
}
private class PagerObserver extends DataSetObserver {
PagerObserver() {
}
public void onChanged() {
ViewPager.this.dataSetChanged();
}
public void onInvalidated() {
ViewPager.this.dataSetChanged();
}
}
public static class LayoutParams extends ViewGroup.LayoutParams {
int childIndex;
public int gravity;
public boolean isDecor;
boolean needsMeasure;
int position;
float widthFactor = 0.0f;
public LayoutParams() {
super(-1, -1);
}
public LayoutParams(Context context, AttributeSet attributeSet) {
super(context, attributeSet);
TypedArray obtainStyledAttributes = context.obtainStyledAttributes(attributeSet, ViewPager.LAYOUT_ATTRS);
this.gravity = obtainStyledAttributes.getInteger(0, 48);
obtainStyledAttributes.recycle();
}
}
static class ViewPositionComparator implements Comparator<View> {
ViewPositionComparator() {
}
public int compare(View view, View view2) {
LayoutParams layoutParams = (LayoutParams) view.getLayoutParams();
LayoutParams layoutParams2 = (LayoutParams) view2.getLayoutParams();
if (layoutParams.isDecor != layoutParams2.isDecor) {
return layoutParams.isDecor ? 1 : -1;
}
return layoutParams.position - layoutParams2.position;
}
}
}
Download file