ADD week 5

This commit is contained in:
2025-03-31 16:33:42 +02:00
parent 86f265f22d
commit bf645048e6
4927 changed files with 544053 additions and 0 deletions

View File

@ -0,0 +1,97 @@
package com.google.android.material.sidesheet;
import android.view.View;
import android.view.ViewGroup;
import androidx.coordinatorlayout.widget.CoordinatorLayout;
/* loaded from: classes.dex */
final class LeftSheetDelegate extends SheetDelegate {
final SideSheetBehavior<? extends View> sheetBehavior;
@Override // com.google.android.material.sidesheet.SheetDelegate
int getSheetEdge() {
return 1;
}
@Override // com.google.android.material.sidesheet.SheetDelegate
boolean isExpandingOutwards(float f) {
return f > 0.0f;
}
LeftSheetDelegate(SideSheetBehavior<? extends View> sideSheetBehavior) {
this.sheetBehavior = sideSheetBehavior;
}
@Override // com.google.android.material.sidesheet.SheetDelegate
int getHiddenOffset() {
return (-this.sheetBehavior.getChildWidth()) - this.sheetBehavior.getInnerMargin();
}
@Override // com.google.android.material.sidesheet.SheetDelegate
int getExpandedOffset() {
return Math.max(0, this.sheetBehavior.getParentInnerEdge() + this.sheetBehavior.getInnerMargin());
}
@Override // com.google.android.material.sidesheet.SheetDelegate
boolean isReleasedCloseToInnerEdge(View view) {
return view.getRight() < (getExpandedOffset() - getHiddenOffset()) / 2;
}
@Override // com.google.android.material.sidesheet.SheetDelegate
boolean isSwipeSignificant(float f, float f2) {
return SheetUtils.isSwipeMostlyHorizontal(f, f2) && Math.abs(f) > ((float) this.sheetBehavior.getSignificantVelocityThreshold());
}
@Override // com.google.android.material.sidesheet.SheetDelegate
boolean shouldHide(View view, float f) {
return Math.abs(((float) view.getLeft()) + (f * this.sheetBehavior.getHideFriction())) > this.sheetBehavior.getHideThreshold();
}
@Override // com.google.android.material.sidesheet.SheetDelegate
<V extends View> int getOuterEdge(V v) {
return v.getRight() + this.sheetBehavior.getInnerMargin();
}
@Override // com.google.android.material.sidesheet.SheetDelegate
float calculateSlideOffset(int i) {
float hiddenOffset = getHiddenOffset();
return (i - hiddenOffset) / (getExpandedOffset() - hiddenOffset);
}
@Override // com.google.android.material.sidesheet.SheetDelegate
void updateCoplanarSiblingLayoutParams(ViewGroup.MarginLayoutParams marginLayoutParams, int i, int i2) {
if (i <= this.sheetBehavior.getParentWidth()) {
marginLayoutParams.leftMargin = i2;
}
}
@Override // com.google.android.material.sidesheet.SheetDelegate
void updateCoplanarSiblingAdjacentMargin(ViewGroup.MarginLayoutParams marginLayoutParams, int i) {
marginLayoutParams.leftMargin = i;
}
@Override // com.google.android.material.sidesheet.SheetDelegate
int getCoplanarSiblingAdjacentMargin(ViewGroup.MarginLayoutParams marginLayoutParams) {
return marginLayoutParams.leftMargin;
}
@Override // com.google.android.material.sidesheet.SheetDelegate
public int getParentInnerEdge(CoordinatorLayout coordinatorLayout) {
return coordinatorLayout.getLeft();
}
@Override // com.google.android.material.sidesheet.SheetDelegate
int calculateInnerMargin(ViewGroup.MarginLayoutParams marginLayoutParams) {
return marginLayoutParams.leftMargin;
}
@Override // com.google.android.material.sidesheet.SheetDelegate
int getMinViewPositionHorizontal() {
return -this.sheetBehavior.getChildWidth();
}
@Override // com.google.android.material.sidesheet.SheetDelegate
int getMaxViewPositionHorizontal() {
return this.sheetBehavior.getInnerMargin();
}
}

View File

@ -0,0 +1,98 @@
package com.google.android.material.sidesheet;
import android.view.View;
import android.view.ViewGroup;
import androidx.coordinatorlayout.widget.CoordinatorLayout;
/* loaded from: classes.dex */
final class RightSheetDelegate extends SheetDelegate {
final SideSheetBehavior<? extends View> sheetBehavior;
@Override // com.google.android.material.sidesheet.SheetDelegate
int getSheetEdge() {
return 0;
}
@Override // com.google.android.material.sidesheet.SheetDelegate
boolean isExpandingOutwards(float f) {
return f < 0.0f;
}
RightSheetDelegate(SideSheetBehavior<? extends View> sideSheetBehavior) {
this.sheetBehavior = sideSheetBehavior;
}
@Override // com.google.android.material.sidesheet.SheetDelegate
int getHiddenOffset() {
return this.sheetBehavior.getParentWidth();
}
@Override // com.google.android.material.sidesheet.SheetDelegate
int getExpandedOffset() {
return Math.max(0, (getHiddenOffset() - this.sheetBehavior.getChildWidth()) - this.sheetBehavior.getInnerMargin());
}
@Override // com.google.android.material.sidesheet.SheetDelegate
boolean isReleasedCloseToInnerEdge(View view) {
return view.getLeft() > (getHiddenOffset() + getExpandedOffset()) / 2;
}
@Override // com.google.android.material.sidesheet.SheetDelegate
boolean isSwipeSignificant(float f, float f2) {
return SheetUtils.isSwipeMostlyHorizontal(f, f2) && Math.abs(f) > ((float) this.sheetBehavior.getSignificantVelocityThreshold());
}
@Override // com.google.android.material.sidesheet.SheetDelegate
boolean shouldHide(View view, float f) {
return Math.abs(((float) view.getRight()) + (f * this.sheetBehavior.getHideFriction())) > this.sheetBehavior.getHideThreshold();
}
@Override // com.google.android.material.sidesheet.SheetDelegate
<V extends View> int getOuterEdge(V v) {
return v.getLeft() - this.sheetBehavior.getInnerMargin();
}
@Override // com.google.android.material.sidesheet.SheetDelegate
float calculateSlideOffset(int i) {
float hiddenOffset = getHiddenOffset();
return (hiddenOffset - i) / (hiddenOffset - getExpandedOffset());
}
@Override // com.google.android.material.sidesheet.SheetDelegate
void updateCoplanarSiblingLayoutParams(ViewGroup.MarginLayoutParams marginLayoutParams, int i, int i2) {
int parentWidth = this.sheetBehavior.getParentWidth();
if (i <= parentWidth) {
marginLayoutParams.rightMargin = parentWidth - i;
}
}
@Override // com.google.android.material.sidesheet.SheetDelegate
void updateCoplanarSiblingAdjacentMargin(ViewGroup.MarginLayoutParams marginLayoutParams, int i) {
marginLayoutParams.rightMargin = i;
}
@Override // com.google.android.material.sidesheet.SheetDelegate
int getCoplanarSiblingAdjacentMargin(ViewGroup.MarginLayoutParams marginLayoutParams) {
return marginLayoutParams.rightMargin;
}
@Override // com.google.android.material.sidesheet.SheetDelegate
public int getParentInnerEdge(CoordinatorLayout coordinatorLayout) {
return coordinatorLayout.getRight();
}
@Override // com.google.android.material.sidesheet.SheetDelegate
int calculateInnerMargin(ViewGroup.MarginLayoutParams marginLayoutParams) {
return marginLayoutParams.rightMargin;
}
@Override // com.google.android.material.sidesheet.SheetDelegate
int getMinViewPositionHorizontal() {
return getExpandedOffset();
}
@Override // com.google.android.material.sidesheet.SheetDelegate
int getMaxViewPositionHorizontal() {
return this.sheetBehavior.getParentWidth();
}
}

View File

@ -0,0 +1,36 @@
package com.google.android.material.sidesheet;
import com.google.android.material.motion.MaterialBackHandler;
import com.google.android.material.sidesheet.SheetCallback;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
/* loaded from: classes.dex */
interface Sheet<C extends SheetCallback> extends MaterialBackHandler {
public static final int EDGE_LEFT = 1;
public static final int EDGE_RIGHT = 0;
public static final int STATE_DRAGGING = 1;
public static final int STATE_EXPANDED = 3;
public static final int STATE_HIDDEN = 5;
public static final int STATE_SETTLING = 2;
@Retention(RetentionPolicy.SOURCE)
public @interface SheetEdge {
}
@Retention(RetentionPolicy.SOURCE)
public @interface SheetState {
}
@Retention(RetentionPolicy.SOURCE)
public @interface StableSheetState {
}
void addCallback(C c);
int getState();
void removeCallback(C c);
void setState(int i);
}

View File

@ -0,0 +1,10 @@
package com.google.android.material.sidesheet;
import android.view.View;
/* loaded from: classes.dex */
interface SheetCallback {
void onSlide(View view, float f);
void onStateChanged(View view, int i);
}

View File

@ -0,0 +1,43 @@
package com.google.android.material.sidesheet;
import android.view.View;
import android.view.ViewGroup;
import androidx.coordinatorlayout.widget.CoordinatorLayout;
/* loaded from: classes.dex */
abstract class SheetDelegate {
abstract int calculateInnerMargin(ViewGroup.MarginLayoutParams marginLayoutParams);
abstract float calculateSlideOffset(int i);
abstract int getCoplanarSiblingAdjacentMargin(ViewGroup.MarginLayoutParams marginLayoutParams);
abstract int getExpandedOffset();
abstract int getHiddenOffset();
abstract int getMaxViewPositionHorizontal();
abstract int getMinViewPositionHorizontal();
abstract <V extends View> int getOuterEdge(V v);
abstract int getParentInnerEdge(CoordinatorLayout coordinatorLayout);
abstract int getSheetEdge();
abstract boolean isExpandingOutwards(float f);
abstract boolean isReleasedCloseToInnerEdge(View view);
abstract boolean isSwipeSignificant(float f, float f2);
abstract boolean shouldHide(View view, float f);
abstract void updateCoplanarSiblingAdjacentMargin(ViewGroup.MarginLayoutParams marginLayoutParams, int i);
abstract void updateCoplanarSiblingLayoutParams(ViewGroup.MarginLayoutParams marginLayoutParams, int i, int i2);
SheetDelegate() {
}
}

View File

@ -0,0 +1,289 @@
package com.google.android.material.sidesheet;
import android.content.Context;
import android.content.res.TypedArray;
import android.os.Build;
import android.os.Bundle;
import android.util.TypedValue;
import android.view.View;
import android.view.ViewGroup;
import android.view.Window;
import android.widget.FrameLayout;
import androidx.appcompat.app.AppCompatDialog;
import androidx.coordinatorlayout.widget.CoordinatorLayout;
import androidx.core.view.AccessibilityDelegateCompat;
import androidx.core.view.GravityCompat;
import androidx.core.view.ViewCompat;
import androidx.core.view.accessibility.AccessibilityNodeInfoCompat;
import com.google.android.material.R;
import com.google.android.material.motion.MaterialBackOrchestrator;
import com.google.android.material.sidesheet.SheetCallback;
/* loaded from: classes.dex */
abstract class SheetDialog<C extends SheetCallback> extends AppCompatDialog {
private static final int COORDINATOR_LAYOUT_ID = R.id.coordinator;
private static final int TOUCH_OUTSIDE_ID = R.id.touch_outside;
private MaterialBackOrchestrator backOrchestrator;
private Sheet<C> behavior;
boolean cancelable;
private boolean canceledOnTouchOutside;
private boolean canceledOnTouchOutsideSet;
private FrameLayout container;
boolean dismissWithAnimation;
private FrameLayout sheet;
abstract void addSheetCancelOnHideCallback(Sheet<C> sheet);
abstract Sheet<C> getBehaviorFromSheet(FrameLayout frameLayout);
abstract int getDialogId();
abstract int getLayoutResId();
abstract int getStateOnStart();
public boolean isDismissWithSheetAnimationEnabled() {
return this.dismissWithAnimation;
}
public void setDismissWithSheetAnimationEnabled(boolean z) {
this.dismissWithAnimation = z;
}
SheetDialog(Context context, int i, int i2, int i3) {
super(context, getThemeResId(context, i, i2, i3));
this.cancelable = true;
this.canceledOnTouchOutside = true;
supportRequestWindowFeature(1);
}
@Override // androidx.appcompat.app.AppCompatDialog, androidx.activity.ComponentDialog, android.app.Dialog
public void setContentView(int i) {
super.setContentView(wrapInSheet(i, null, null));
}
@Override // androidx.appcompat.app.AppCompatDialog, androidx.activity.ComponentDialog, android.app.Dialog
public void setContentView(View view) {
super.setContentView(wrapInSheet(0, view, null));
}
@Override // androidx.appcompat.app.AppCompatDialog, androidx.activity.ComponentDialog, android.app.Dialog
public void setContentView(View view, ViewGroup.LayoutParams layoutParams) {
super.setContentView(wrapInSheet(0, view, layoutParams));
}
@Override // androidx.appcompat.app.AppCompatDialog, androidx.activity.ComponentDialog, android.app.Dialog
protected void onCreate(Bundle bundle) {
super.onCreate(bundle);
Window window = getWindow();
if (window != null) {
window.setStatusBarColor(0);
window.addFlags(Integer.MIN_VALUE);
if (Build.VERSION.SDK_INT < 23) {
window.addFlags(67108864);
}
window.setLayout(-1, -1);
}
}
@Override // android.app.Dialog
public void setCancelable(boolean z) {
super.setCancelable(z);
if (this.cancelable != z) {
this.cancelable = z;
}
if (getWindow() != null) {
updateListeningForBackCallbacks();
}
}
private void updateListeningForBackCallbacks() {
MaterialBackOrchestrator materialBackOrchestrator = this.backOrchestrator;
if (materialBackOrchestrator == null) {
return;
}
if (this.cancelable) {
materialBackOrchestrator.startListeningForBackCallbacks();
} else {
materialBackOrchestrator.stopListeningForBackCallbacks();
}
}
@Override // androidx.activity.ComponentDialog, android.app.Dialog
protected void onStart() {
super.onStart();
Sheet<C> sheet = this.behavior;
if (sheet == null || sheet.getState() != 5) {
return;
}
this.behavior.setState(getStateOnStart());
}
@Override // android.app.Dialog, android.view.Window.Callback
public void onAttachedToWindow() {
super.onAttachedToWindow();
maybeUpdateWindowAnimationsBasedOnLayoutDirection();
updateListeningForBackCallbacks();
}
@Override // android.app.Dialog, android.view.Window.Callback
public void onDetachedFromWindow() {
super.onDetachedFromWindow();
MaterialBackOrchestrator materialBackOrchestrator = this.backOrchestrator;
if (materialBackOrchestrator != null) {
materialBackOrchestrator.stopListeningForBackCallbacks();
}
}
@Override // android.app.Dialog, android.content.DialogInterface
public void cancel() {
Sheet<C> behavior = getBehavior();
if (!this.dismissWithAnimation || behavior.getState() == 5) {
super.cancel();
} else {
behavior.setState(5);
}
}
@Override // android.app.Dialog
public void setCanceledOnTouchOutside(boolean z) {
super.setCanceledOnTouchOutside(z);
if (z && !this.cancelable) {
this.cancelable = true;
}
this.canceledOnTouchOutside = z;
this.canceledOnTouchOutsideSet = true;
}
private void ensureContainerAndBehavior() {
if (this.container == null) {
FrameLayout frameLayout = (FrameLayout) View.inflate(getContext(), getLayoutResId(), null);
this.container = frameLayout;
FrameLayout frameLayout2 = (FrameLayout) frameLayout.findViewById(getDialogId());
this.sheet = frameLayout2;
Sheet<C> behaviorFromSheet = getBehaviorFromSheet(frameLayout2);
this.behavior = behaviorFromSheet;
addSheetCancelOnHideCallback(behaviorFromSheet);
this.backOrchestrator = new MaterialBackOrchestrator(this.behavior, this.sheet);
}
}
private FrameLayout getContainer() {
if (this.container == null) {
ensureContainerAndBehavior();
}
return this.container;
}
private FrameLayout getSheet() {
if (this.sheet == null) {
ensureContainerAndBehavior();
}
return this.sheet;
}
Sheet<C> getBehavior() {
if (this.behavior == null) {
ensureContainerAndBehavior();
}
return this.behavior;
}
private View wrapInSheet(int i, View view, ViewGroup.LayoutParams layoutParams) {
ensureContainerAndBehavior();
CoordinatorLayout coordinatorLayout = (CoordinatorLayout) getContainer().findViewById(COORDINATOR_LAYOUT_ID);
if (i != 0 && view == null) {
view = getLayoutInflater().inflate(i, (ViewGroup) coordinatorLayout, false);
}
FrameLayout sheet = getSheet();
sheet.removeAllViews();
if (layoutParams == null) {
sheet.addView(view);
} else {
sheet.addView(view, layoutParams);
}
coordinatorLayout.findViewById(TOUCH_OUTSIDE_ID).setOnClickListener(new View.OnClickListener() { // from class: com.google.android.material.sidesheet.SheetDialog$$ExternalSyntheticLambda0
@Override // android.view.View.OnClickListener
public final void onClick(View view2) {
SheetDialog.this.m260x401f75dd(view2);
}
});
ViewCompat.setAccessibilityDelegate(getSheet(), new AccessibilityDelegateCompat() { // from class: com.google.android.material.sidesheet.SheetDialog.1
@Override // androidx.core.view.AccessibilityDelegateCompat
public void onInitializeAccessibilityNodeInfo(View view2, AccessibilityNodeInfoCompat accessibilityNodeInfoCompat) {
super.onInitializeAccessibilityNodeInfo(view2, accessibilityNodeInfoCompat);
if (SheetDialog.this.cancelable) {
accessibilityNodeInfoCompat.addAction(1048576);
accessibilityNodeInfoCompat.setDismissable(true);
} else {
accessibilityNodeInfoCompat.setDismissable(false);
}
}
@Override // androidx.core.view.AccessibilityDelegateCompat
public boolean performAccessibilityAction(View view2, int i2, Bundle bundle) {
if (i2 == 1048576 && SheetDialog.this.cancelable) {
SheetDialog.this.cancel();
return true;
}
return super.performAccessibilityAction(view2, i2, bundle);
}
});
return this.container;
}
/* renamed from: lambda$wrapInSheet$0$com-google-android-material-sidesheet-SheetDialog, reason: not valid java name */
/* synthetic */ void m260x401f75dd(View view) {
if (this.cancelable && isShowing() && shouldWindowCloseOnTouchOutside()) {
cancel();
}
}
public void setSheetEdge(int i) {
FrameLayout frameLayout = this.sheet;
if (frameLayout == null) {
throw new IllegalStateException("Sheet view reference is null; sheet edge cannot be changed if the sheet view is null.");
}
if (ViewCompat.isLaidOut(frameLayout)) {
throw new IllegalStateException("Sheet view has been laid out; sheet edge cannot be changed once the sheet has been laid out.");
}
ViewGroup.LayoutParams layoutParams = this.sheet.getLayoutParams();
if (layoutParams instanceof CoordinatorLayout.LayoutParams) {
((CoordinatorLayout.LayoutParams) layoutParams).gravity = i;
maybeUpdateWindowAnimationsBasedOnLayoutDirection();
}
}
private void maybeUpdateWindowAnimationsBasedOnLayoutDirection() {
FrameLayout frameLayout;
int i;
Window window = getWindow();
if (window == null || (frameLayout = this.sheet) == null || !(frameLayout.getLayoutParams() instanceof CoordinatorLayout.LayoutParams)) {
return;
}
if (GravityCompat.getAbsoluteGravity(((CoordinatorLayout.LayoutParams) this.sheet.getLayoutParams()).gravity, ViewCompat.getLayoutDirection(this.sheet)) == 3) {
i = R.style.Animation_Material3_SideSheetDialog_Left;
} else {
i = R.style.Animation_Material3_SideSheetDialog_Right;
}
window.setWindowAnimations(i);
}
private boolean shouldWindowCloseOnTouchOutside() {
if (!this.canceledOnTouchOutsideSet) {
TypedArray obtainStyledAttributes = getContext().obtainStyledAttributes(new int[]{android.R.attr.windowCloseOnTouchOutside});
this.canceledOnTouchOutside = obtainStyledAttributes.getBoolean(0, true);
obtainStyledAttributes.recycle();
this.canceledOnTouchOutsideSet = true;
}
return this.canceledOnTouchOutside;
}
private static int getThemeResId(Context context, int i, int i2, int i3) {
if (i != 0) {
return i;
}
TypedValue typedValue = new TypedValue();
return context.getTheme().resolveAttribute(i2, typedValue, true) ? typedValue.resourceId : i3;
}
}

View File

@ -0,0 +1,11 @@
package com.google.android.material.sidesheet;
/* loaded from: classes.dex */
final class SheetUtils {
private SheetUtils() {
}
static boolean isSwipeMostlyHorizontal(float f, float f2) {
return Math.abs(f) > Math.abs(f2);
}
}

View File

@ -0,0 +1,972 @@
package com.google.android.material.sidesheet;
import android.animation.Animator;
import android.animation.AnimatorListenerAdapter;
import android.animation.ValueAnimator;
import android.content.Context;
import android.content.res.ColorStateList;
import android.content.res.TypedArray;
import android.os.Build;
import android.os.Parcel;
import android.os.Parcelable;
import android.util.AttributeSet;
import android.util.TypedValue;
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 androidx.activity.BackEventCompat;
import androidx.constraintlayout.core.widgets.analyzer.BasicMeasure;
import androidx.coordinatorlayout.widget.CoordinatorLayout;
import androidx.core.math.MathUtils;
import androidx.core.view.GravityCompat;
import androidx.core.view.ViewCompat;
import androidx.core.view.accessibility.AccessibilityNodeInfoCompat;
import androidx.core.view.accessibility.AccessibilityViewCommand;
import androidx.customview.view.AbsSavedState;
import androidx.customview.widget.ViewDragHelper;
import com.google.android.material.R;
import com.google.android.material.animation.AnimationUtils;
import com.google.android.material.motion.MaterialSideContainerBackHelper;
import com.google.android.material.resources.MaterialResources;
import com.google.android.material.shape.MaterialShapeDrawable;
import com.google.android.material.shape.ShapeAppearanceModel;
import com.google.android.material.sidesheet.SideSheetBehavior;
import java.lang.ref.WeakReference;
import java.util.Iterator;
import java.util.LinkedHashSet;
import java.util.Set;
/* loaded from: classes.dex */
public class SideSheetBehavior<V extends View> extends CoordinatorLayout.Behavior<V> implements Sheet<SideSheetCallback> {
private static final int DEFAULT_ACCESSIBILITY_PANE_TITLE = R.string.side_sheet_accessibility_pane_title;
private static final int DEF_STYLE_RES = R.style.Widget_Material3_SideSheet;
private static final float HIDE_FRICTION = 0.1f;
private static final float HIDE_THRESHOLD = 0.5f;
private static final int NO_MAX_SIZE = -1;
static final int SIGNIFICANT_VEL_THRESHOLD = 500;
private ColorStateList backgroundTint;
private final Set<SideSheetCallback> callbacks;
private int childWidth;
private int coplanarSiblingViewId;
private WeakReference<View> coplanarSiblingViewRef;
private final ViewDragHelper.Callback dragCallback;
private boolean draggable;
private float elevation;
private float hideFriction;
private boolean ignoreEvents;
private int initialX;
private int innerMargin;
private int lastStableState;
private MaterialShapeDrawable materialShapeDrawable;
private float maximumVelocity;
private int parentInnerEdge;
private int parentWidth;
private ShapeAppearanceModel shapeAppearanceModel;
private SheetDelegate sheetDelegate;
private MaterialSideContainerBackHelper sideContainerBackHelper;
private int state;
private final SideSheetBehavior<V>.StateSettlingTracker stateSettlingTracker;
private VelocityTracker velocityTracker;
private ViewDragHelper viewDragHelper;
private WeakReference<V> viewRef;
private boolean shouldHandleDraggingWithHelper() {
return this.viewDragHelper != null && (this.draggable || this.state == 1);
}
MaterialSideContainerBackHelper getBackHelper() {
return this.sideContainerBackHelper;
}
int getChildWidth() {
return this.childWidth;
}
public float getHideFriction() {
return this.hideFriction;
}
float getHideThreshold() {
return 0.5f;
}
int getInnerMargin() {
return this.innerMargin;
}
public int getLastStableState() {
return this.lastStableState;
}
int getParentInnerEdge() {
return this.parentInnerEdge;
}
int getParentWidth() {
return this.parentWidth;
}
int getSignificantVelocityThreshold() {
return SIGNIFICANT_VEL_THRESHOLD;
}
@Override // com.google.android.material.sidesheet.Sheet
public int getState() {
return this.state;
}
ViewDragHelper getViewDragHelper() {
return this.viewDragHelper;
}
public boolean isDraggable() {
return this.draggable;
}
public void setDraggable(boolean z) {
this.draggable = z;
}
public void setHideFriction(float f) {
this.hideFriction = f;
}
public boolean shouldSkipSmoothAnimation() {
return true;
}
public SideSheetBehavior() {
this.stateSettlingTracker = new StateSettlingTracker();
this.draggable = true;
this.state = 5;
this.lastStableState = 5;
this.hideFriction = 0.1f;
this.coplanarSiblingViewId = -1;
this.callbacks = new LinkedHashSet();
this.dragCallback = new ViewDragHelper.Callback() { // from class: com.google.android.material.sidesheet.SideSheetBehavior.1
@Override // androidx.customview.widget.ViewDragHelper.Callback
public boolean tryCaptureView(View view, int i) {
return (SideSheetBehavior.this.state == 1 || SideSheetBehavior.this.viewRef == null || SideSheetBehavior.this.viewRef.get() != view) ? false : true;
}
@Override // androidx.customview.widget.ViewDragHelper.Callback
public void onViewPositionChanged(View view, int i, int i2, int i3, int i4) {
ViewGroup.MarginLayoutParams marginLayoutParams;
View coplanarSiblingView = SideSheetBehavior.this.getCoplanarSiblingView();
if (coplanarSiblingView != null && (marginLayoutParams = (ViewGroup.MarginLayoutParams) coplanarSiblingView.getLayoutParams()) != null) {
SideSheetBehavior.this.sheetDelegate.updateCoplanarSiblingLayoutParams(marginLayoutParams, view.getLeft(), view.getRight());
coplanarSiblingView.setLayoutParams(marginLayoutParams);
}
SideSheetBehavior.this.dispatchOnSlide(view, i);
}
@Override // androidx.customview.widget.ViewDragHelper.Callback
public void onViewDragStateChanged(int i) {
if (i == 1 && SideSheetBehavior.this.draggable) {
SideSheetBehavior.this.setStateInternal(1);
}
}
@Override // androidx.customview.widget.ViewDragHelper.Callback
public void onViewReleased(View view, float f, float f2) {
int calculateTargetStateOnViewReleased = SideSheetBehavior.this.calculateTargetStateOnViewReleased(view, f, f2);
SideSheetBehavior sideSheetBehavior = SideSheetBehavior.this;
sideSheetBehavior.startSettling(view, calculateTargetStateOnViewReleased, sideSheetBehavior.shouldSkipSmoothAnimation());
}
@Override // androidx.customview.widget.ViewDragHelper.Callback
public int clampViewPositionVertical(View view, int i, int i2) {
return view.getTop();
}
@Override // androidx.customview.widget.ViewDragHelper.Callback
public int clampViewPositionHorizontal(View view, int i, int i2) {
return MathUtils.clamp(i, SideSheetBehavior.this.sheetDelegate.getMinViewPositionHorizontal(), SideSheetBehavior.this.sheetDelegate.getMaxViewPositionHorizontal());
}
@Override // androidx.customview.widget.ViewDragHelper.Callback
public int getViewHorizontalDragRange(View view) {
return SideSheetBehavior.this.childWidth + SideSheetBehavior.this.getInnerMargin();
}
};
}
public SideSheetBehavior(Context context, AttributeSet attributeSet) {
super(context, attributeSet);
this.stateSettlingTracker = new StateSettlingTracker();
this.draggable = true;
this.state = 5;
this.lastStableState = 5;
this.hideFriction = 0.1f;
this.coplanarSiblingViewId = -1;
this.callbacks = new LinkedHashSet();
this.dragCallback = new ViewDragHelper.Callback() { // from class: com.google.android.material.sidesheet.SideSheetBehavior.1
@Override // androidx.customview.widget.ViewDragHelper.Callback
public boolean tryCaptureView(View view, int i) {
return (SideSheetBehavior.this.state == 1 || SideSheetBehavior.this.viewRef == null || SideSheetBehavior.this.viewRef.get() != view) ? false : true;
}
@Override // androidx.customview.widget.ViewDragHelper.Callback
public void onViewPositionChanged(View view, int i, int i2, int i3, int i4) {
ViewGroup.MarginLayoutParams marginLayoutParams;
View coplanarSiblingView = SideSheetBehavior.this.getCoplanarSiblingView();
if (coplanarSiblingView != null && (marginLayoutParams = (ViewGroup.MarginLayoutParams) coplanarSiblingView.getLayoutParams()) != null) {
SideSheetBehavior.this.sheetDelegate.updateCoplanarSiblingLayoutParams(marginLayoutParams, view.getLeft(), view.getRight());
coplanarSiblingView.setLayoutParams(marginLayoutParams);
}
SideSheetBehavior.this.dispatchOnSlide(view, i);
}
@Override // androidx.customview.widget.ViewDragHelper.Callback
public void onViewDragStateChanged(int i) {
if (i == 1 && SideSheetBehavior.this.draggable) {
SideSheetBehavior.this.setStateInternal(1);
}
}
@Override // androidx.customview.widget.ViewDragHelper.Callback
public void onViewReleased(View view, float f, float f2) {
int calculateTargetStateOnViewReleased = SideSheetBehavior.this.calculateTargetStateOnViewReleased(view, f, f2);
SideSheetBehavior sideSheetBehavior = SideSheetBehavior.this;
sideSheetBehavior.startSettling(view, calculateTargetStateOnViewReleased, sideSheetBehavior.shouldSkipSmoothAnimation());
}
@Override // androidx.customview.widget.ViewDragHelper.Callback
public int clampViewPositionVertical(View view, int i, int i2) {
return view.getTop();
}
@Override // androidx.customview.widget.ViewDragHelper.Callback
public int clampViewPositionHorizontal(View view, int i, int i2) {
return MathUtils.clamp(i, SideSheetBehavior.this.sheetDelegate.getMinViewPositionHorizontal(), SideSheetBehavior.this.sheetDelegate.getMaxViewPositionHorizontal());
}
@Override // androidx.customview.widget.ViewDragHelper.Callback
public int getViewHorizontalDragRange(View view) {
return SideSheetBehavior.this.childWidth + SideSheetBehavior.this.getInnerMargin();
}
};
TypedArray obtainStyledAttributes = context.obtainStyledAttributes(attributeSet, R.styleable.SideSheetBehavior_Layout);
if (obtainStyledAttributes.hasValue(R.styleable.SideSheetBehavior_Layout_backgroundTint)) {
this.backgroundTint = MaterialResources.getColorStateList(context, obtainStyledAttributes, R.styleable.SideSheetBehavior_Layout_backgroundTint);
}
if (obtainStyledAttributes.hasValue(R.styleable.SideSheetBehavior_Layout_shapeAppearance)) {
this.shapeAppearanceModel = ShapeAppearanceModel.builder(context, attributeSet, 0, DEF_STYLE_RES).build();
}
if (obtainStyledAttributes.hasValue(R.styleable.SideSheetBehavior_Layout_coplanarSiblingViewId)) {
setCoplanarSiblingViewId(obtainStyledAttributes.getResourceId(R.styleable.SideSheetBehavior_Layout_coplanarSiblingViewId, -1));
}
createMaterialShapeDrawableIfNeeded(context);
this.elevation = obtainStyledAttributes.getDimension(R.styleable.SideSheetBehavior_Layout_android_elevation, -1.0f);
setDraggable(obtainStyledAttributes.getBoolean(R.styleable.SideSheetBehavior_Layout_behavior_draggable, true));
obtainStyledAttributes.recycle();
this.maximumVelocity = ViewConfiguration.get(context).getScaledMaximumFlingVelocity();
}
private void setSheetEdge(V v, int i) {
setSheetEdge(GravityCompat.getAbsoluteGravity(((CoordinatorLayout.LayoutParams) v.getLayoutParams()).gravity, i) == 3 ? 1 : 0);
}
private void setSheetEdge(int i) {
SheetDelegate sheetDelegate = this.sheetDelegate;
if (sheetDelegate == null || sheetDelegate.getSheetEdge() != i) {
if (i == 0) {
this.sheetDelegate = new RightSheetDelegate(this);
if (this.shapeAppearanceModel == null || hasRightMargin()) {
return;
}
ShapeAppearanceModel.Builder builder = this.shapeAppearanceModel.toBuilder();
builder.setTopRightCornerSize(0.0f).setBottomRightCornerSize(0.0f);
updateMaterialShapeDrawable(builder.build());
return;
}
if (i == 1) {
this.sheetDelegate = new LeftSheetDelegate(this);
if (this.shapeAppearanceModel == null || hasLeftMargin()) {
return;
}
ShapeAppearanceModel.Builder builder2 = this.shapeAppearanceModel.toBuilder();
builder2.setTopLeftCornerSize(0.0f).setBottomLeftCornerSize(0.0f);
updateMaterialShapeDrawable(builder2.build());
return;
}
throw new IllegalArgumentException("Invalid sheet edge position value: " + i + ". Must be 0 or 1.");
}
}
private int getGravityFromSheetEdge() {
SheetDelegate sheetDelegate = this.sheetDelegate;
return (sheetDelegate == null || sheetDelegate.getSheetEdge() == 0) ? 5 : 3;
}
private boolean hasRightMargin() {
CoordinatorLayout.LayoutParams viewLayoutParams = getViewLayoutParams();
return viewLayoutParams != null && viewLayoutParams.rightMargin > 0;
}
private boolean hasLeftMargin() {
CoordinatorLayout.LayoutParams viewLayoutParams = getViewLayoutParams();
return viewLayoutParams != null && viewLayoutParams.leftMargin > 0;
}
private CoordinatorLayout.LayoutParams getViewLayoutParams() {
V v;
WeakReference<V> weakReference = this.viewRef;
if (weakReference == null || (v = weakReference.get()) == null || !(v.getLayoutParams() instanceof CoordinatorLayout.LayoutParams)) {
return null;
}
return (CoordinatorLayout.LayoutParams) v.getLayoutParams();
}
private void updateMaterialShapeDrawable(ShapeAppearanceModel shapeAppearanceModel) {
MaterialShapeDrawable materialShapeDrawable = this.materialShapeDrawable;
if (materialShapeDrawable != null) {
materialShapeDrawable.setShapeAppearanceModel(shapeAppearanceModel);
}
}
public void expand() {
setState(3);
}
public void hide() {
setState(5);
}
@Override // androidx.coordinatorlayout.widget.CoordinatorLayout.Behavior
public Parcelable onSaveInstanceState(CoordinatorLayout coordinatorLayout, V v) {
return new SavedState(super.onSaveInstanceState(coordinatorLayout, v), (SideSheetBehavior<?>) this);
}
@Override // androidx.coordinatorlayout.widget.CoordinatorLayout.Behavior
public void onRestoreInstanceState(CoordinatorLayout coordinatorLayout, V v, Parcelable parcelable) {
SavedState savedState = (SavedState) parcelable;
if (savedState.getSuperState() != null) {
super.onRestoreInstanceState(coordinatorLayout, v, savedState.getSuperState());
}
int i = (savedState.state == 1 || savedState.state == 2) ? 5 : savedState.state;
this.state = i;
this.lastStableState = i;
}
@Override // androidx.coordinatorlayout.widget.CoordinatorLayout.Behavior
public void onAttachedToLayoutParams(CoordinatorLayout.LayoutParams layoutParams) {
super.onAttachedToLayoutParams(layoutParams);
this.viewRef = null;
this.viewDragHelper = null;
this.sideContainerBackHelper = null;
}
@Override // androidx.coordinatorlayout.widget.CoordinatorLayout.Behavior
public void onDetachedFromLayoutParams() {
super.onDetachedFromLayoutParams();
this.viewRef = null;
this.viewDragHelper = null;
this.sideContainerBackHelper = null;
}
@Override // androidx.coordinatorlayout.widget.CoordinatorLayout.Behavior
public boolean onMeasureChild(CoordinatorLayout coordinatorLayout, V v, int i, int i2, int i3, int i4) {
ViewGroup.MarginLayoutParams marginLayoutParams = (ViewGroup.MarginLayoutParams) v.getLayoutParams();
v.measure(getChildMeasureSpec(i, coordinatorLayout.getPaddingLeft() + coordinatorLayout.getPaddingRight() + marginLayoutParams.leftMargin + marginLayoutParams.rightMargin + i2, -1, marginLayoutParams.width), getChildMeasureSpec(i3, coordinatorLayout.getPaddingTop() + coordinatorLayout.getPaddingBottom() + marginLayoutParams.topMargin + marginLayoutParams.bottomMargin + i4, -1, marginLayoutParams.height));
return true;
}
private int getChildMeasureSpec(int i, int i2, int i3, int i4) {
int childMeasureSpec = ViewGroup.getChildMeasureSpec(i, i2, i4);
if (i3 == -1) {
return childMeasureSpec;
}
int mode = View.MeasureSpec.getMode(childMeasureSpec);
int size = View.MeasureSpec.getSize(childMeasureSpec);
if (mode == 1073741824) {
return View.MeasureSpec.makeMeasureSpec(Math.min(size, i3), BasicMeasure.EXACTLY);
}
if (size != 0) {
i3 = Math.min(size, i3);
}
return View.MeasureSpec.makeMeasureSpec(i3, Integer.MIN_VALUE);
}
@Override // androidx.coordinatorlayout.widget.CoordinatorLayout.Behavior
public boolean onLayoutChild(CoordinatorLayout coordinatorLayout, V v, int i) {
if (ViewCompat.getFitsSystemWindows(coordinatorLayout) && !ViewCompat.getFitsSystemWindows(v)) {
v.setFitsSystemWindows(true);
}
if (this.viewRef == null) {
this.viewRef = new WeakReference<>(v);
this.sideContainerBackHelper = new MaterialSideContainerBackHelper(v);
MaterialShapeDrawable materialShapeDrawable = this.materialShapeDrawable;
if (materialShapeDrawable != null) {
ViewCompat.setBackground(v, materialShapeDrawable);
MaterialShapeDrawable materialShapeDrawable2 = this.materialShapeDrawable;
float f = this.elevation;
if (f == -1.0f) {
f = ViewCompat.getElevation(v);
}
materialShapeDrawable2.setElevation(f);
} else {
ColorStateList colorStateList = this.backgroundTint;
if (colorStateList != null) {
ViewCompat.setBackgroundTintList(v, colorStateList);
}
}
updateSheetVisibility(v);
updateAccessibilityActions();
if (ViewCompat.getImportantForAccessibility(v) == 0) {
ViewCompat.setImportantForAccessibility(v, 1);
}
ensureAccessibilityPaneTitleIsSet(v);
}
setSheetEdge(v, i);
if (this.viewDragHelper == null) {
this.viewDragHelper = ViewDragHelper.create(coordinatorLayout, this.dragCallback);
}
int outerEdge = this.sheetDelegate.getOuterEdge(v);
coordinatorLayout.onLayoutChild(v, i);
this.parentWidth = coordinatorLayout.getWidth();
this.parentInnerEdge = this.sheetDelegate.getParentInnerEdge(coordinatorLayout);
this.childWidth = v.getWidth();
ViewGroup.MarginLayoutParams marginLayoutParams = (ViewGroup.MarginLayoutParams) v.getLayoutParams();
this.innerMargin = marginLayoutParams != null ? this.sheetDelegate.calculateInnerMargin(marginLayoutParams) : 0;
ViewCompat.offsetLeftAndRight(v, calculateCurrentOffset(outerEdge, v));
maybeAssignCoplanarSiblingViewBasedId(coordinatorLayout);
for (SideSheetCallback sideSheetCallback : this.callbacks) {
if (sideSheetCallback instanceof SideSheetCallback) {
sideSheetCallback.onLayout(v);
}
}
return true;
}
private void updateSheetVisibility(View view) {
int i = this.state == 5 ? 4 : 0;
if (view.getVisibility() != i) {
view.setVisibility(i);
}
}
private void ensureAccessibilityPaneTitleIsSet(View view) {
if (ViewCompat.getAccessibilityPaneTitle(view) == null) {
ViewCompat.setAccessibilityPaneTitle(view, view.getResources().getString(DEFAULT_ACCESSIBILITY_PANE_TITLE));
}
}
private void maybeAssignCoplanarSiblingViewBasedId(CoordinatorLayout coordinatorLayout) {
int i;
View findViewById;
if (this.coplanarSiblingViewRef != null || (i = this.coplanarSiblingViewId) == -1 || (findViewById = coordinatorLayout.findViewById(i)) == null) {
return;
}
this.coplanarSiblingViewRef = new WeakReference<>(findViewById);
}
private int calculateCurrentOffset(int i, V v) {
int i2 = this.state;
if (i2 == 1 || i2 == 2) {
return i - this.sheetDelegate.getOuterEdge(v);
}
if (i2 == 3) {
return 0;
}
if (i2 == 5) {
return this.sheetDelegate.getHiddenOffset();
}
throw new IllegalStateException("Unexpected value: " + this.state);
}
@Override // androidx.coordinatorlayout.widget.CoordinatorLayout.Behavior
public boolean onInterceptTouchEvent(CoordinatorLayout coordinatorLayout, V v, MotionEvent motionEvent) {
ViewDragHelper viewDragHelper;
if (!shouldInterceptTouchEvent(v)) {
this.ignoreEvents = true;
return false;
}
int actionMasked = motionEvent.getActionMasked();
if (actionMasked == 0) {
resetVelocity();
}
if (this.velocityTracker == null) {
this.velocityTracker = VelocityTracker.obtain();
}
this.velocityTracker.addMovement(motionEvent);
if (actionMasked == 0) {
this.initialX = (int) motionEvent.getX();
} else if ((actionMasked == 1 || actionMasked == 3) && this.ignoreEvents) {
this.ignoreEvents = false;
return false;
}
return (this.ignoreEvents || (viewDragHelper = this.viewDragHelper) == null || !viewDragHelper.shouldInterceptTouchEvent(motionEvent)) ? false : true;
}
private boolean shouldInterceptTouchEvent(V v) {
return (v.isShown() || ViewCompat.getAccessibilityPaneTitle(v) != null) && this.draggable;
}
@Override // androidx.coordinatorlayout.widget.CoordinatorLayout.Behavior
public boolean onTouchEvent(CoordinatorLayout coordinatorLayout, V v, MotionEvent motionEvent) {
if (!v.isShown()) {
return false;
}
int actionMasked = motionEvent.getActionMasked();
if (this.state == 1 && actionMasked == 0) {
return true;
}
if (shouldHandleDraggingWithHelper()) {
this.viewDragHelper.processTouchEvent(motionEvent);
}
if (actionMasked == 0) {
resetVelocity();
}
if (this.velocityTracker == null) {
this.velocityTracker = VelocityTracker.obtain();
}
this.velocityTracker.addMovement(motionEvent);
if (shouldHandleDraggingWithHelper() && actionMasked == 2 && !this.ignoreEvents && isDraggedFarEnough(motionEvent)) {
this.viewDragHelper.captureChildView(v, motionEvent.getPointerId(motionEvent.getActionIndex()));
}
return !this.ignoreEvents;
}
private boolean isDraggedFarEnough(MotionEvent motionEvent) {
return shouldHandleDraggingWithHelper() && calculateDragDistance((float) this.initialX, motionEvent.getX()) > ((float) this.viewDragHelper.getTouchSlop());
}
private float calculateDragDistance(float f, float f2) {
return Math.abs(f - f2);
}
public int getExpandedOffset() {
return this.sheetDelegate.getExpandedOffset();
}
@Override // com.google.android.material.sidesheet.Sheet
public void addCallback(SideSheetCallback sideSheetCallback) {
this.callbacks.add(sideSheetCallback);
}
@Override // com.google.android.material.sidesheet.Sheet
public void removeCallback(SideSheetCallback sideSheetCallback) {
this.callbacks.remove(sideSheetCallback);
}
@Override // com.google.android.material.sidesheet.Sheet
public void setState(final int i) {
if (i == 1 || i == 2) {
StringBuilder sb = new StringBuilder("STATE_");
sb.append(i == 1 ? "DRAGGING" : "SETTLING");
sb.append(" should not be set externally.");
throw new IllegalArgumentException(sb.toString());
}
WeakReference<V> weakReference = this.viewRef;
if (weakReference == null || weakReference.get() == null) {
setStateInternal(i);
} else {
runAfterLayout(this.viewRef.get(), new Runnable() { // from class: com.google.android.material.sidesheet.SideSheetBehavior$$ExternalSyntheticLambda1
@Override // java.lang.Runnable
public final void run() {
SideSheetBehavior.this.m263xc0f1d0a9(i);
}
});
}
}
/* renamed from: lambda$setState$0$com-google-android-material-sidesheet-SideSheetBehavior, reason: not valid java name */
/* synthetic */ void m263xc0f1d0a9(int i) {
V v = this.viewRef.get();
if (v != null) {
startSettling(v, i, false);
}
}
private void runAfterLayout(V v, Runnable runnable) {
if (isLayingOut(v)) {
v.post(runnable);
} else {
runnable.run();
}
}
private boolean isLayingOut(V v) {
ViewParent parent = v.getParent();
return parent != null && parent.isLayoutRequested() && ViewCompat.isAttachedToWindow(v);
}
void setStateInternal(int i) {
V v;
if (this.state == i) {
return;
}
this.state = i;
if (i == 3 || i == 5) {
this.lastStableState = i;
}
WeakReference<V> weakReference = this.viewRef;
if (weakReference == null || (v = weakReference.get()) == null) {
return;
}
updateSheetVisibility(v);
Iterator<SideSheetCallback> it = this.callbacks.iterator();
while (it.hasNext()) {
it.next().onStateChanged(v, i);
}
updateAccessibilityActions();
}
private void resetVelocity() {
VelocityTracker velocityTracker = this.velocityTracker;
if (velocityTracker != null) {
velocityTracker.recycle();
this.velocityTracker = null;
}
}
boolean shouldHide(View view, float f) {
return this.sheetDelegate.shouldHide(view, f);
}
private void createMaterialShapeDrawableIfNeeded(Context context) {
if (this.shapeAppearanceModel == null) {
return;
}
MaterialShapeDrawable materialShapeDrawable = new MaterialShapeDrawable(this.shapeAppearanceModel);
this.materialShapeDrawable = materialShapeDrawable;
materialShapeDrawable.initializeElevationOverlay(context);
ColorStateList colorStateList = this.backgroundTint;
if (colorStateList != null) {
this.materialShapeDrawable.setFillColor(colorStateList);
return;
}
TypedValue typedValue = new TypedValue();
context.getTheme().resolveAttribute(android.R.attr.colorBackground, typedValue, true);
this.materialShapeDrawable.setTint(typedValue.data);
}
float getXVelocity() {
VelocityTracker velocityTracker = this.velocityTracker;
if (velocityTracker == null) {
return 0.0f;
}
velocityTracker.computeCurrentVelocity(1000, this.maximumVelocity);
return this.velocityTracker.getXVelocity();
}
/* JADX INFO: Access modifiers changed from: private */
public void startSettling(View view, int i, boolean z) {
if (isSettling(view, i, z)) {
setStateInternal(2);
this.stateSettlingTracker.continueSettlingToState(i);
} else {
setStateInternal(i);
}
}
private boolean isSettling(View view, int i, boolean z) {
int outerEdgeOffsetForState = getOuterEdgeOffsetForState(i);
ViewDragHelper viewDragHelper = getViewDragHelper();
return viewDragHelper != null && (!z ? !viewDragHelper.smoothSlideViewTo(view, outerEdgeOffsetForState, view.getTop()) : !viewDragHelper.settleCapturedViewAt(outerEdgeOffsetForState, view.getTop()));
}
int getOuterEdgeOffsetForState(int i) {
if (i == 3) {
return getExpandedOffset();
}
if (i == 5) {
return this.sheetDelegate.getHiddenOffset();
}
throw new IllegalArgumentException("Invalid state to get outer edge offset: " + i);
}
/* JADX INFO: Access modifiers changed from: private */
public int calculateTargetStateOnViewReleased(View view, float f, float f2) {
if (isExpandingOutwards(f)) {
return 3;
}
if (shouldHide(view, f)) {
if (!this.sheetDelegate.isSwipeSignificant(f, f2) && !this.sheetDelegate.isReleasedCloseToInnerEdge(view)) {
return 3;
}
} else if (f == 0.0f || !SheetUtils.isSwipeMostlyHorizontal(f, f2)) {
int left = view.getLeft();
if (Math.abs(left - getExpandedOffset()) < Math.abs(left - this.sheetDelegate.getHiddenOffset())) {
return 3;
}
}
return 5;
}
private boolean isExpandingOutwards(float f) {
return this.sheetDelegate.isExpandingOutwards(f);
}
/* JADX INFO: Access modifiers changed from: private */
public void dispatchOnSlide(View view, int i) {
if (this.callbacks.isEmpty()) {
return;
}
float calculateSlideOffset = this.sheetDelegate.calculateSlideOffset(i);
Iterator<SideSheetCallback> it = this.callbacks.iterator();
while (it.hasNext()) {
it.next().onSlide(view, calculateSlideOffset);
}
}
public void setCoplanarSiblingViewId(int i) {
this.coplanarSiblingViewId = i;
clearCoplanarSiblingView();
WeakReference<V> weakReference = this.viewRef;
if (weakReference != null) {
V v = weakReference.get();
if (i == -1 || !ViewCompat.isLaidOut(v)) {
return;
}
v.requestLayout();
}
}
public void setCoplanarSiblingView(View view) {
this.coplanarSiblingViewId = -1;
if (view == null) {
clearCoplanarSiblingView();
return;
}
this.coplanarSiblingViewRef = new WeakReference<>(view);
WeakReference<V> weakReference = this.viewRef;
if (weakReference != null) {
V v = weakReference.get();
if (ViewCompat.isLaidOut(v)) {
v.requestLayout();
}
}
}
public View getCoplanarSiblingView() {
WeakReference<View> weakReference = this.coplanarSiblingViewRef;
if (weakReference != null) {
return weakReference.get();
}
return null;
}
private void clearCoplanarSiblingView() {
WeakReference<View> weakReference = this.coplanarSiblingViewRef;
if (weakReference != null) {
weakReference.clear();
}
this.coplanarSiblingViewRef = null;
}
@Override // com.google.android.material.motion.MaterialBackHandler
public void startBackProgress(BackEventCompat backEventCompat) {
MaterialSideContainerBackHelper materialSideContainerBackHelper = this.sideContainerBackHelper;
if (materialSideContainerBackHelper == null) {
return;
}
materialSideContainerBackHelper.startBackProgress(backEventCompat);
}
@Override // com.google.android.material.motion.MaterialBackHandler
public void updateBackProgress(BackEventCompat backEventCompat) {
MaterialSideContainerBackHelper materialSideContainerBackHelper = this.sideContainerBackHelper;
if (materialSideContainerBackHelper == null) {
return;
}
materialSideContainerBackHelper.updateBackProgress(backEventCompat, getGravityFromSheetEdge());
updateCoplanarSiblingBackProgress();
}
private void updateCoplanarSiblingBackProgress() {
ViewGroup.MarginLayoutParams marginLayoutParams;
WeakReference<V> weakReference = this.viewRef;
if (weakReference == null || weakReference.get() == null) {
return;
}
V v = this.viewRef.get();
View coplanarSiblingView = getCoplanarSiblingView();
if (coplanarSiblingView == null || (marginLayoutParams = (ViewGroup.MarginLayoutParams) coplanarSiblingView.getLayoutParams()) == null) {
return;
}
this.sheetDelegate.updateCoplanarSiblingAdjacentMargin(marginLayoutParams, (int) ((this.childWidth * v.getScaleX()) + this.innerMargin));
coplanarSiblingView.requestLayout();
}
@Override // com.google.android.material.motion.MaterialBackHandler
public void handleBackInvoked() {
MaterialSideContainerBackHelper materialSideContainerBackHelper = this.sideContainerBackHelper;
if (materialSideContainerBackHelper == null) {
return;
}
BackEventCompat onHandleBackInvoked = materialSideContainerBackHelper.onHandleBackInvoked();
if (onHandleBackInvoked == null || Build.VERSION.SDK_INT < 34) {
setState(5);
} else {
this.sideContainerBackHelper.finishBackProgress(onHandleBackInvoked, getGravityFromSheetEdge(), new AnimatorListenerAdapter() { // from class: com.google.android.material.sidesheet.SideSheetBehavior.2
@Override // android.animation.AnimatorListenerAdapter, android.animation.Animator.AnimatorListener
public void onAnimationEnd(Animator animator) {
SideSheetBehavior.this.setStateInternal(5);
if (SideSheetBehavior.this.viewRef == null || SideSheetBehavior.this.viewRef.get() == null) {
return;
}
((View) SideSheetBehavior.this.viewRef.get()).requestLayout();
}
}, getCoplanarFinishAnimatorUpdateListener());
}
}
private ValueAnimator.AnimatorUpdateListener getCoplanarFinishAnimatorUpdateListener() {
final ViewGroup.MarginLayoutParams marginLayoutParams;
final View coplanarSiblingView = getCoplanarSiblingView();
if (coplanarSiblingView == null || (marginLayoutParams = (ViewGroup.MarginLayoutParams) coplanarSiblingView.getLayoutParams()) == null) {
return null;
}
final int coplanarSiblingAdjacentMargin = this.sheetDelegate.getCoplanarSiblingAdjacentMargin(marginLayoutParams);
return new ValueAnimator.AnimatorUpdateListener() { // from class: com.google.android.material.sidesheet.SideSheetBehavior$$ExternalSyntheticLambda0
@Override // android.animation.ValueAnimator.AnimatorUpdateListener
public final void onAnimationUpdate(ValueAnimator valueAnimator) {
SideSheetBehavior.this.m262xc3af8fb4(marginLayoutParams, coplanarSiblingAdjacentMargin, coplanarSiblingView, valueAnimator);
}
};
}
/* renamed from: lambda$getCoplanarFinishAnimatorUpdateListener$1$com-google-android-material-sidesheet-SideSheetBehavior, reason: not valid java name */
/* synthetic */ void m262xc3af8fb4(ViewGroup.MarginLayoutParams marginLayoutParams, int i, View view, ValueAnimator valueAnimator) {
this.sheetDelegate.updateCoplanarSiblingAdjacentMargin(marginLayoutParams, AnimationUtils.lerp(i, 0, valueAnimator.getAnimatedFraction()));
view.requestLayout();
}
@Override // com.google.android.material.motion.MaterialBackHandler
public void cancelBackProgress() {
MaterialSideContainerBackHelper materialSideContainerBackHelper = this.sideContainerBackHelper;
if (materialSideContainerBackHelper == null) {
return;
}
materialSideContainerBackHelper.cancelBackProgress();
}
class StateSettlingTracker {
private final Runnable continueSettlingRunnable = new Runnable() { // from class: com.google.android.material.sidesheet.SideSheetBehavior$StateSettlingTracker$$ExternalSyntheticLambda0
@Override // java.lang.Runnable
public final void run() {
SideSheetBehavior.StateSettlingTracker.this.m264xe5f914a3();
}
};
private boolean isContinueSettlingRunnablePosted;
private int targetState;
StateSettlingTracker() {
}
/* renamed from: lambda$new$0$com-google-android-material-sidesheet-SideSheetBehavior$StateSettlingTracker, reason: not valid java name */
/* synthetic */ void m264xe5f914a3() {
this.isContinueSettlingRunnablePosted = false;
if (SideSheetBehavior.this.viewDragHelper != null && SideSheetBehavior.this.viewDragHelper.continueSettling(true)) {
continueSettlingToState(this.targetState);
} else if (SideSheetBehavior.this.state == 2) {
SideSheetBehavior.this.setStateInternal(this.targetState);
}
}
void continueSettlingToState(int i) {
if (SideSheetBehavior.this.viewRef == null || SideSheetBehavior.this.viewRef.get() == null) {
return;
}
this.targetState = i;
if (this.isContinueSettlingRunnablePosted) {
return;
}
ViewCompat.postOnAnimation((View) SideSheetBehavior.this.viewRef.get(), this.continueSettlingRunnable);
this.isContinueSettlingRunnablePosted = true;
}
}
protected static class SavedState extends AbsSavedState {
public static final Parcelable.Creator<SavedState> CREATOR = new Parcelable.ClassLoaderCreator<SavedState>() { // from class: com.google.android.material.sidesheet.SideSheetBehavior.SavedState.1
/* JADX WARN: Can't rename method to resolve collision */
@Override // android.os.Parcelable.ClassLoaderCreator
public SavedState createFromParcel(Parcel parcel, ClassLoader classLoader) {
return new SavedState(parcel, classLoader);
}
@Override // android.os.Parcelable.Creator
public SavedState createFromParcel(Parcel parcel) {
return new SavedState(parcel, (ClassLoader) null);
}
@Override // android.os.Parcelable.Creator
public SavedState[] newArray(int i) {
return new SavedState[i];
}
};
final int state;
public SavedState(Parcel parcel) {
this(parcel, (ClassLoader) null);
}
public SavedState(Parcel parcel, ClassLoader classLoader) {
super(parcel, classLoader);
this.state = parcel.readInt();
}
public SavedState(Parcelable parcelable, SideSheetBehavior<?> sideSheetBehavior) {
super(parcelable);
this.state = ((SideSheetBehavior) sideSheetBehavior).state;
}
@Override // androidx.customview.view.AbsSavedState, android.os.Parcelable
public void writeToParcel(Parcel parcel, int i) {
super.writeToParcel(parcel, i);
parcel.writeInt(this.state);
}
}
public static <V extends View> SideSheetBehavior<V> from(V v) {
ViewGroup.LayoutParams layoutParams = v.getLayoutParams();
if (!(layoutParams instanceof CoordinatorLayout.LayoutParams)) {
throw new IllegalArgumentException("The view is not a child of CoordinatorLayout");
}
CoordinatorLayout.Behavior behavior = ((CoordinatorLayout.LayoutParams) layoutParams).getBehavior();
if (!(behavior instanceof SideSheetBehavior)) {
throw new IllegalArgumentException("The view is not associated with SideSheetBehavior");
}
return (SideSheetBehavior) behavior;
}
private void updateAccessibilityActions() {
V v;
WeakReference<V> weakReference = this.viewRef;
if (weakReference == null || (v = weakReference.get()) == null) {
return;
}
ViewCompat.removeAccessibilityAction(v, 262144);
ViewCompat.removeAccessibilityAction(v, 1048576);
if (this.state != 5) {
replaceAccessibilityActionForState(v, AccessibilityNodeInfoCompat.AccessibilityActionCompat.ACTION_DISMISS, 5);
}
if (this.state != 3) {
replaceAccessibilityActionForState(v, AccessibilityNodeInfoCompat.AccessibilityActionCompat.ACTION_EXPAND, 3);
}
}
private void replaceAccessibilityActionForState(V v, AccessibilityNodeInfoCompat.AccessibilityActionCompat accessibilityActionCompat, int i) {
ViewCompat.replaceAccessibilityAction(v, accessibilityActionCompat, null, createAccessibilityViewCommandForState(i));
}
private AccessibilityViewCommand createAccessibilityViewCommandForState(final int i) {
return new AccessibilityViewCommand() { // from class: com.google.android.material.sidesheet.SideSheetBehavior$$ExternalSyntheticLambda2
@Override // androidx.core.view.accessibility.AccessibilityViewCommand
public final boolean perform(View view, AccessibilityViewCommand.CommandArguments commandArguments) {
return SideSheetBehavior.this.m261x564aa398(i, view, commandArguments);
}
};
}
/* renamed from: lambda$createAccessibilityViewCommandForState$2$com-google-android-material-sidesheet-SideSheetBehavior, reason: not valid java name */
/* synthetic */ boolean m261x564aa398(int i, View view, AccessibilityViewCommand.CommandArguments commandArguments) {
setState(i);
return true;
}
}

View File

@ -0,0 +1,15 @@
package com.google.android.material.sidesheet;
import android.view.View;
/* loaded from: classes.dex */
public abstract class SideSheetCallback implements SheetCallback {
void onLayout(View view) {
}
@Override // com.google.android.material.sidesheet.SheetCallback
public abstract void onSlide(View view, float f);
@Override // com.google.android.material.sidesheet.SheetCallback
public abstract void onStateChanged(View view, int i);
}

View File

@ -0,0 +1,121 @@
package com.google.android.material.sidesheet;
import android.content.Context;
import android.view.View;
import android.view.ViewGroup;
import android.widget.FrameLayout;
import com.google.android.material.R;
/* loaded from: classes.dex */
public class SideSheetDialog extends SheetDialog<SideSheetCallback> {
private static final int SIDE_SHEET_DIALOG_THEME_ATTR = R.attr.sideSheetDialogTheme;
private static final int SIDE_SHEET_DIALOG_DEFAULT_THEME_RES = R.style.Theme_Material3_Light_SideSheetDialog;
@Override // com.google.android.material.sidesheet.SheetDialog
int getStateOnStart() {
return 3;
}
@Override // com.google.android.material.sidesheet.SheetDialog, android.app.Dialog, android.content.DialogInterface
public /* bridge */ /* synthetic */ void cancel() {
super.cancel();
}
@Override // com.google.android.material.sidesheet.SheetDialog
public /* bridge */ /* synthetic */ boolean isDismissWithSheetAnimationEnabled() {
return super.isDismissWithSheetAnimationEnabled();
}
@Override // com.google.android.material.sidesheet.SheetDialog, android.app.Dialog, android.view.Window.Callback
public /* bridge */ /* synthetic */ void onAttachedToWindow() {
super.onAttachedToWindow();
}
@Override // com.google.android.material.sidesheet.SheetDialog, android.app.Dialog, android.view.Window.Callback
public /* bridge */ /* synthetic */ void onDetachedFromWindow() {
super.onDetachedFromWindow();
}
@Override // com.google.android.material.sidesheet.SheetDialog, android.app.Dialog
public /* bridge */ /* synthetic */ void setCancelable(boolean z) {
super.setCancelable(z);
}
@Override // com.google.android.material.sidesheet.SheetDialog, android.app.Dialog
public /* bridge */ /* synthetic */ void setCanceledOnTouchOutside(boolean z) {
super.setCanceledOnTouchOutside(z);
}
@Override // com.google.android.material.sidesheet.SheetDialog, androidx.appcompat.app.AppCompatDialog, androidx.activity.ComponentDialog, android.app.Dialog
public /* bridge */ /* synthetic */ void setContentView(int i) {
super.setContentView(i);
}
@Override // com.google.android.material.sidesheet.SheetDialog, androidx.appcompat.app.AppCompatDialog, androidx.activity.ComponentDialog, android.app.Dialog
public /* bridge */ /* synthetic */ void setContentView(View view) {
super.setContentView(view);
}
@Override // com.google.android.material.sidesheet.SheetDialog, androidx.appcompat.app.AppCompatDialog, androidx.activity.ComponentDialog, android.app.Dialog
public /* bridge */ /* synthetic */ void setContentView(View view, ViewGroup.LayoutParams layoutParams) {
super.setContentView(view, layoutParams);
}
@Override // com.google.android.material.sidesheet.SheetDialog
public /* bridge */ /* synthetic */ void setDismissWithSheetAnimationEnabled(boolean z) {
super.setDismissWithSheetAnimationEnabled(z);
}
@Override // com.google.android.material.sidesheet.SheetDialog
public /* bridge */ /* synthetic */ void setSheetEdge(int i) {
super.setSheetEdge(i);
}
public SideSheetDialog(Context context) {
this(context, 0);
}
public SideSheetDialog(Context context, int i) {
super(context, i, SIDE_SHEET_DIALOG_THEME_ATTR, SIDE_SHEET_DIALOG_DEFAULT_THEME_RES);
}
@Override // com.google.android.material.sidesheet.SheetDialog
void addSheetCancelOnHideCallback(Sheet<SideSheetCallback> sheet) {
sheet.addCallback(new SideSheetCallback() { // from class: com.google.android.material.sidesheet.SideSheetDialog.1
@Override // com.google.android.material.sidesheet.SideSheetCallback, com.google.android.material.sidesheet.SheetCallback
public void onSlide(View view, float f) {
}
@Override // com.google.android.material.sidesheet.SideSheetCallback, com.google.android.material.sidesheet.SheetCallback
public void onStateChanged(View view, int i) {
if (i == 5) {
SideSheetDialog.this.cancel();
}
}
});
}
@Override // com.google.android.material.sidesheet.SheetDialog
int getLayoutResId() {
return R.layout.m3_side_sheet_dialog;
}
@Override // com.google.android.material.sidesheet.SheetDialog
int getDialogId() {
return R.id.m3_side_sheet;
}
@Override // com.google.android.material.sidesheet.SheetDialog
Sheet<SideSheetCallback> getBehaviorFromSheet(FrameLayout frameLayout) {
return SideSheetBehavior.from(frameLayout);
}
@Override // com.google.android.material.sidesheet.SheetDialog
public Sheet<SideSheetCallback> getBehavior() {
Sheet behavior = super.getBehavior();
if (!(behavior instanceof SideSheetBehavior)) {
throw new IllegalStateException("The view is not associated with SideSheetBehavior");
}
return (SideSheetBehavior) behavior;
}
}