package com.google.android.material.shape; import android.view.View; import android.view.ViewTreeObserver; import android.widget.ScrollView; /* loaded from: classes2.dex */ public class InterpolateOnScrollPositionChangeHelper { private ScrollView containingScrollView; private MaterialShapeDrawable materialShapeDrawable; private View shapedView; private final int[] scrollLocation = new int[2]; private final int[] containerLocation = new int[2]; private final ViewTreeObserver.OnScrollChangedListener scrollChangedListener = new ViewTreeObserver.OnScrollChangedListener() { // from class: com.google.android.material.shape.InterpolateOnScrollPositionChangeHelper.1 @Override // android.view.ViewTreeObserver.OnScrollChangedListener public void onScrollChanged() { InterpolateOnScrollPositionChangeHelper.this.updateInterpolationForScreenPosition(); } }; public void setContainingScrollView(ScrollView scrollView) { this.containingScrollView = scrollView; } public void setMaterialShapeDrawable(MaterialShapeDrawable materialShapeDrawable) { this.materialShapeDrawable = materialShapeDrawable; } public InterpolateOnScrollPositionChangeHelper(View view, MaterialShapeDrawable materialShapeDrawable, ScrollView scrollView) { this.shapedView = view; this.materialShapeDrawable = materialShapeDrawable; this.containingScrollView = scrollView; } public void startListeningForScrollChanges(ViewTreeObserver viewTreeObserver) { viewTreeObserver.addOnScrollChangedListener(this.scrollChangedListener); } public void stopListeningForScrollChanges(ViewTreeObserver viewTreeObserver) { viewTreeObserver.removeOnScrollChangedListener(this.scrollChangedListener); } public void updateInterpolationForScreenPosition() { ScrollView scrollView = this.containingScrollView; if (scrollView == null) { return; } if (scrollView.getChildCount() == 0) { throw new IllegalStateException("Scroll bar must contain a child to calculate interpolation."); } this.containingScrollView.getLocationInWindow(this.scrollLocation); this.containingScrollView.getChildAt(0).getLocationInWindow(this.containerLocation); int top = (this.shapedView.getTop() - this.scrollLocation[1]) + this.containerLocation[1]; int height = this.shapedView.getHeight(); int height2 = this.containingScrollView.getHeight(); if (top < 0) { this.materialShapeDrawable.setInterpolation(Math.max(0.0f, Math.min(1.0f, (top / height) + 1.0f))); this.shapedView.invalidate(); return; } if (top + height > height2) { this.materialShapeDrawable.setInterpolation(Math.max(0.0f, Math.min(1.0f, 1.0f - ((r0 - height2) / height)))); this.shapedView.invalidate(); } else if (this.materialShapeDrawable.getInterpolation() != 1.0f) { this.materialShapeDrawable.setInterpolation(1.0f); this.shapedView.invalidate(); } } }