SRE/02-Easy5/E5/sources/com/google/android/material/bottomsheet/BottomSheetDragHandleView.java
2025-03-31 16:33:42 +02:00

195 lines
8.9 KiB
Java

package com.google.android.material.bottomsheet;
import android.content.Context;
import android.util.AttributeSet;
import android.view.View;
import android.view.ViewGroup;
import android.view.accessibility.AccessibilityEvent;
import android.view.accessibility.AccessibilityManager;
import androidx.appcompat.widget.AppCompatImageView;
import androidx.coordinatorlayout.widget.CoordinatorLayout;
import androidx.core.view.AccessibilityDelegateCompat;
import androidx.core.view.ViewCompat;
import androidx.core.view.accessibility.AccessibilityNodeInfoCompat;
import androidx.core.view.accessibility.AccessibilityViewCommand;
import com.google.android.material.R;
import com.google.android.material.bottomsheet.BottomSheetBehavior;
import com.google.android.material.theme.overlay.MaterialThemeOverlay;
/* loaded from: classes.dex */
public class BottomSheetDragHandleView extends AppCompatImageView implements AccessibilityManager.AccessibilityStateChangeListener {
private static final int DEF_STYLE_RES = R.style.Widget_Material3_BottomSheet_DragHandle;
private final AccessibilityManager accessibilityManager;
private boolean accessibilityServiceEnabled;
private BottomSheetBehavior<?> bottomSheetBehavior;
private final BottomSheetBehavior.BottomSheetCallback bottomSheetCallback;
private final String clickFeedback;
private final String clickToCollapseActionLabel;
private boolean clickToExpand;
private final String clickToExpandActionLabel;
private boolean interactable;
public BottomSheetDragHandleView(Context context) {
this(context, null);
}
public BottomSheetDragHandleView(Context context, AttributeSet attributeSet) {
this(context, attributeSet, R.attr.bottomSheetDragHandleStyle);
}
public BottomSheetDragHandleView(Context context, AttributeSet attributeSet, int i) {
super(MaterialThemeOverlay.wrap(context, attributeSet, i, DEF_STYLE_RES), attributeSet, i);
this.clickToExpandActionLabel = getResources().getString(R.string.bottomsheet_action_expand);
this.clickToCollapseActionLabel = getResources().getString(R.string.bottomsheet_action_collapse);
this.clickFeedback = getResources().getString(R.string.bottomsheet_drag_handle_clicked);
this.bottomSheetCallback = new BottomSheetBehavior.BottomSheetCallback() { // from class: com.google.android.material.bottomsheet.BottomSheetDragHandleView.1
@Override // com.google.android.material.bottomsheet.BottomSheetBehavior.BottomSheetCallback
public void onSlide(View view, float f) {
}
@Override // com.google.android.material.bottomsheet.BottomSheetBehavior.BottomSheetCallback
public void onStateChanged(View view, int i2) {
BottomSheetDragHandleView.this.onBottomSheetStateChanged(i2);
}
};
this.accessibilityManager = (AccessibilityManager) getContext().getSystemService("accessibility");
updateInteractableState();
ViewCompat.setAccessibilityDelegate(this, new AccessibilityDelegateCompat() { // from class: com.google.android.material.bottomsheet.BottomSheetDragHandleView.2
@Override // androidx.core.view.AccessibilityDelegateCompat
public void onPopulateAccessibilityEvent(View view, AccessibilityEvent accessibilityEvent) {
super.onPopulateAccessibilityEvent(view, accessibilityEvent);
if (accessibilityEvent.getEventType() == 1) {
BottomSheetDragHandleView.this.expandOrCollapseBottomSheetIfPossible();
}
}
});
}
@Override // android.widget.ImageView, android.view.View
protected void onAttachedToWindow() {
super.onAttachedToWindow();
setBottomSheetBehavior(findParentBottomSheetBehavior());
AccessibilityManager accessibilityManager = this.accessibilityManager;
if (accessibilityManager != null) {
accessibilityManager.addAccessibilityStateChangeListener(this);
onAccessibilityStateChanged(this.accessibilityManager.isEnabled());
}
}
@Override // android.widget.ImageView, android.view.View
protected void onDetachedFromWindow() {
AccessibilityManager accessibilityManager = this.accessibilityManager;
if (accessibilityManager != null) {
accessibilityManager.removeAccessibilityStateChangeListener(this);
}
setBottomSheetBehavior(null);
super.onDetachedFromWindow();
}
@Override // android.view.accessibility.AccessibilityManager.AccessibilityStateChangeListener
public void onAccessibilityStateChanged(boolean z) {
this.accessibilityServiceEnabled = z;
updateInteractableState();
}
private void setBottomSheetBehavior(BottomSheetBehavior<?> bottomSheetBehavior) {
BottomSheetBehavior<?> bottomSheetBehavior2 = this.bottomSheetBehavior;
if (bottomSheetBehavior2 != null) {
bottomSheetBehavior2.removeBottomSheetCallback(this.bottomSheetCallback);
this.bottomSheetBehavior.setAccessibilityDelegateView(null);
}
this.bottomSheetBehavior = bottomSheetBehavior;
if (bottomSheetBehavior != null) {
bottomSheetBehavior.setAccessibilityDelegateView(this);
onBottomSheetStateChanged(this.bottomSheetBehavior.getState());
this.bottomSheetBehavior.addBottomSheetCallback(this.bottomSheetCallback);
}
updateInteractableState();
}
/* JADX INFO: Access modifiers changed from: private */
public void onBottomSheetStateChanged(int i) {
if (i == 4) {
this.clickToExpand = true;
} else if (i == 3) {
this.clickToExpand = false;
}
ViewCompat.replaceAccessibilityAction(this, AccessibilityNodeInfoCompat.AccessibilityActionCompat.ACTION_CLICK, this.clickToExpand ? this.clickToExpandActionLabel : this.clickToCollapseActionLabel, new AccessibilityViewCommand() { // from class: com.google.android.material.bottomsheet.BottomSheetDragHandleView$$ExternalSyntheticLambda0
@Override // androidx.core.view.accessibility.AccessibilityViewCommand
public final boolean perform(View view, AccessibilityViewCommand.CommandArguments commandArguments) {
return BottomSheetDragHandleView.this.m192xa7b4c95f(view, commandArguments);
}
});
}
/* renamed from: lambda$onBottomSheetStateChanged$0$com-google-android-material-bottomsheet-BottomSheetDragHandleView, reason: not valid java name */
/* synthetic */ boolean m192xa7b4c95f(View view, AccessibilityViewCommand.CommandArguments commandArguments) {
return expandOrCollapseBottomSheetIfPossible();
}
private void updateInteractableState() {
this.interactable = this.accessibilityServiceEnabled && this.bottomSheetBehavior != null;
ViewCompat.setImportantForAccessibility(this, this.bottomSheetBehavior == null ? 2 : 1);
setClickable(this.interactable);
}
/* JADX INFO: Access modifiers changed from: private */
public boolean expandOrCollapseBottomSheetIfPossible() {
boolean z = false;
if (!this.interactable) {
return false;
}
announceAccessibilityEvent(this.clickFeedback);
if (!this.bottomSheetBehavior.isFitToContents() && !this.bottomSheetBehavior.shouldSkipHalfExpandedStateWhenDragging()) {
z = true;
}
int state = this.bottomSheetBehavior.getState();
int i = 6;
if (state == 4) {
if (!z) {
i = 3;
}
} else if (state != 3) {
i = this.clickToExpand ? 3 : 4;
} else if (!z) {
i = 4;
}
this.bottomSheetBehavior.setState(i);
return true;
}
private void announceAccessibilityEvent(String str) {
if (this.accessibilityManager == null) {
return;
}
AccessibilityEvent obtain = AccessibilityEvent.obtain(16384);
obtain.getText().add(str);
this.accessibilityManager.sendAccessibilityEvent(obtain);
}
private BottomSheetBehavior<?> findParentBottomSheetBehavior() {
View view = this;
while (true) {
view = getParentView(view);
if (view == null) {
return null;
}
ViewGroup.LayoutParams layoutParams = view.getLayoutParams();
if (layoutParams instanceof CoordinatorLayout.LayoutParams) {
CoordinatorLayout.Behavior behavior = ((CoordinatorLayout.LayoutParams) layoutParams).getBehavior();
if (behavior instanceof BottomSheetBehavior) {
return (BottomSheetBehavior) behavior;
}
}
}
}
private static View getParentView(View view) {
Object parent = view.getParent();
if (parent instanceof View) {
return (View) parent;
}
return null;
}
}