Rabbit-R1/android (non root)/java/sources/com/google/android/material/textfield/DropdownMenuEndIconDelegate.java
2024-05-21 17:08:36 -04:00

356 lines
17 KiB
Java

package com.google.android.material.textfield;
import android.animation.Animator;
import android.animation.AnimatorListenerAdapter;
import android.animation.TimeInterpolator;
import android.animation.ValueAnimator;
import android.graphics.drawable.Drawable;
import android.text.Editable;
import android.view.MotionEvent;
import android.view.View;
import android.view.accessibility.AccessibilityEvent;
import android.view.accessibility.AccessibilityManager;
import android.widget.AutoCompleteTextView;
import android.widget.EditText;
import android.widget.Spinner;
import androidx.core.view.ViewCompat;
import androidx.core.view.accessibility.AccessibilityManagerCompat;
import androidx.core.view.accessibility.AccessibilityNodeInfoCompat;
import com.google.android.material.R;
import com.google.android.material.animation.AnimationUtils;
import com.google.android.material.motion.MotionUtils;
/* JADX INFO: Access modifiers changed from: package-private */
/* loaded from: classes2.dex */
public class DropdownMenuEndIconDelegate extends EndIconDelegate {
private static final int DEFAULT_ANIMATION_FADE_IN_DURATION = 67;
private static final int DEFAULT_ANIMATION_FADE_OUT_DURATION = 50;
private static final boolean IS_LOLLIPOP = true;
private AccessibilityManager accessibilityManager;
private final int animationFadeInDuration;
private final TimeInterpolator animationFadeInterpolator;
private final int animationFadeOutDuration;
private AutoCompleteTextView autoCompleteTextView;
private long dropdownPopupActivatedAt;
private boolean dropdownPopupDirty;
private boolean editTextHasFocus;
private ValueAnimator fadeInAnim;
private ValueAnimator fadeOutAnim;
private boolean isEndIconChecked;
private final View.OnFocusChangeListener onEditTextFocusChangeListener;
private final View.OnClickListener onIconClickListener;
private final AccessibilityManagerCompat.TouchExplorationStateChangeListener touchExplorationStateChangeListener;
/* JADX INFO: Access modifiers changed from: package-private */
@Override // com.google.android.material.textfield.EndIconDelegate
public View.OnFocusChangeListener getOnEditTextFocusChangeListener() {
return this.onEditTextFocusChangeListener;
}
/* JADX INFO: Access modifiers changed from: package-private */
@Override // com.google.android.material.textfield.EndIconDelegate
public View.OnClickListener getOnIconClickListener() {
return this.onIconClickListener;
}
@Override // com.google.android.material.textfield.EndIconDelegate
public AccessibilityManagerCompat.TouchExplorationStateChangeListener getTouchExplorationStateChangeListener() {
return this.touchExplorationStateChangeListener;
}
/* JADX INFO: Access modifiers changed from: package-private */
@Override // com.google.android.material.textfield.EndIconDelegate
public boolean isBoxBackgroundModeSupported(int i) {
return i != 0;
}
/* JADX INFO: Access modifiers changed from: package-private */
@Override // com.google.android.material.textfield.EndIconDelegate
public boolean isIconActivable() {
return true;
}
/* JADX INFO: Access modifiers changed from: package-private */
@Override // com.google.android.material.textfield.EndIconDelegate
public boolean isIconActivated() {
return this.editTextHasFocus;
}
/* JADX INFO: Access modifiers changed from: package-private */
@Override // com.google.android.material.textfield.EndIconDelegate
public boolean isIconCheckable() {
return true;
}
/* JADX INFO: Access modifiers changed from: package-private */
@Override // com.google.android.material.textfield.EndIconDelegate
public boolean isIconChecked() {
return this.isEndIconChecked;
}
/* JADX INFO: Access modifiers changed from: package-private */
@Override // com.google.android.material.textfield.EndIconDelegate
public boolean shouldTintIconOnError() {
return true;
}
/* JADX INFO: Access modifiers changed from: package-private */
/* renamed from: lambda$new$0$com-google-android-material-textfield-DropdownMenuEndIconDelegate, reason: not valid java name */
public /* synthetic */ void m5563xd03fedd4(View view) {
showHideDropdown();
}
/* JADX INFO: Access modifiers changed from: package-private */
/* renamed from: lambda$new$1$com-google-android-material-textfield-DropdownMenuEndIconDelegate, reason: not valid java name */
public /* synthetic */ void m5564xac016995(View view, boolean z) {
this.editTextHasFocus = z;
refreshIconState();
if (z) {
return;
}
setEndIconChecked(false);
this.dropdownPopupDirty = false;
}
/* JADX INFO: Access modifiers changed from: package-private */
/* renamed from: lambda$new$2$com-google-android-material-textfield-DropdownMenuEndIconDelegate, reason: not valid java name */
public /* synthetic */ void m5565x87c2e556(boolean z) {
AutoCompleteTextView autoCompleteTextView = this.autoCompleteTextView;
if (autoCompleteTextView == null || EditTextUtils.isEditable(autoCompleteTextView)) {
return;
}
ViewCompat.setImportantForAccessibility(this.endIconView, z ? 2 : 1);
}
/* JADX INFO: Access modifiers changed from: package-private */
public DropdownMenuEndIconDelegate(EndCompoundLayout endCompoundLayout) {
super(endCompoundLayout);
this.onIconClickListener = new View.OnClickListener() { // from class: com.google.android.material.textfield.DropdownMenuEndIconDelegate$$ExternalSyntheticLambda0
@Override // android.view.View.OnClickListener
public final void onClick(View view) {
DropdownMenuEndIconDelegate.this.m5563xd03fedd4(view);
}
};
this.onEditTextFocusChangeListener = new View.OnFocusChangeListener() { // from class: com.google.android.material.textfield.DropdownMenuEndIconDelegate$$ExternalSyntheticLambda1
@Override // android.view.View.OnFocusChangeListener
public final void onFocusChange(View view, boolean z) {
DropdownMenuEndIconDelegate.this.m5564xac016995(view, z);
}
};
this.touchExplorationStateChangeListener = new AccessibilityManagerCompat.TouchExplorationStateChangeListener() { // from class: com.google.android.material.textfield.DropdownMenuEndIconDelegate$$ExternalSyntheticLambda2
@Override // androidx.core.view.accessibility.AccessibilityManagerCompat.TouchExplorationStateChangeListener
public final void onTouchExplorationStateChanged(boolean z) {
DropdownMenuEndIconDelegate.this.m5565x87c2e556(z);
}
};
this.dropdownPopupActivatedAt = Long.MAX_VALUE;
this.animationFadeInDuration = MotionUtils.resolveThemeDuration(endCompoundLayout.getContext(), R.attr.motionDurationShort3, 67);
this.animationFadeOutDuration = MotionUtils.resolveThemeDuration(endCompoundLayout.getContext(), R.attr.motionDurationShort3, 50);
this.animationFadeInterpolator = MotionUtils.resolveThemeInterpolator(endCompoundLayout.getContext(), R.attr.motionEasingLinearInterpolator, AnimationUtils.LINEAR_INTERPOLATOR);
}
/* JADX INFO: Access modifiers changed from: package-private */
@Override // com.google.android.material.textfield.EndIconDelegate
public void setUp() {
initAnimators();
this.accessibilityManager = (AccessibilityManager) this.context.getSystemService("accessibility");
}
/* JADX INFO: Access modifiers changed from: package-private */
@Override // com.google.android.material.textfield.EndIconDelegate
public void tearDown() {
AutoCompleteTextView autoCompleteTextView = this.autoCompleteTextView;
if (autoCompleteTextView != null) {
autoCompleteTextView.setOnTouchListener(null);
if (IS_LOLLIPOP) {
this.autoCompleteTextView.setOnDismissListener(null);
}
}
}
/* JADX INFO: Access modifiers changed from: package-private */
@Override // com.google.android.material.textfield.EndIconDelegate
public int getIconDrawableResId() {
return IS_LOLLIPOP ? R.drawable.mtrl_dropdown_arrow : R.drawable.mtrl_ic_arrow_drop_down;
}
/* JADX INFO: Access modifiers changed from: package-private */
@Override // com.google.android.material.textfield.EndIconDelegate
public int getIconContentDescriptionResId() {
return R.string.exposed_dropdown_menu_content_description;
}
@Override // com.google.android.material.textfield.EndIconDelegate
public void onEditTextAttached(EditText editText) {
this.autoCompleteTextView = castAutoCompleteTextViewOrThrow(editText);
setUpDropdownShowHideBehavior();
this.textInputLayout.setErrorIconDrawable((Drawable) null);
if (!EditTextUtils.isEditable(editText) && this.accessibilityManager.isTouchExplorationEnabled()) {
ViewCompat.setImportantForAccessibility(this.endIconView, 2);
}
this.textInputLayout.setEndIconVisible(true);
}
@Override // com.google.android.material.textfield.EndIconDelegate
public void afterEditTextChanged(Editable editable) {
if (this.accessibilityManager.isTouchExplorationEnabled() && EditTextUtils.isEditable(this.autoCompleteTextView) && !this.endIconView.hasFocus()) {
this.autoCompleteTextView.dismissDropDown();
}
this.autoCompleteTextView.post(new Runnable() { // from class: com.google.android.material.textfield.DropdownMenuEndIconDelegate$$ExternalSyntheticLambda4
@Override // java.lang.Runnable
public final void run() {
DropdownMenuEndIconDelegate.this.m5561xae660ff2();
}
});
}
/* JADX INFO: Access modifiers changed from: package-private */
/* renamed from: lambda$afterEditTextChanged$3$com-google-android-material-textfield-DropdownMenuEndIconDelegate, reason: not valid java name */
public /* synthetic */ void m5561xae660ff2() {
boolean isPopupShowing = this.autoCompleteTextView.isPopupShowing();
setEndIconChecked(isPopupShowing);
this.dropdownPopupDirty = isPopupShowing;
}
@Override // com.google.android.material.textfield.EndIconDelegate
public void onInitializeAccessibilityNodeInfo(View view, AccessibilityNodeInfoCompat accessibilityNodeInfoCompat) {
if (!EditTextUtils.isEditable(this.autoCompleteTextView)) {
accessibilityNodeInfoCompat.setClassName(Spinner.class.getName());
}
if (accessibilityNodeInfoCompat.isShowingHintText()) {
accessibilityNodeInfoCompat.setHintText(null);
}
}
@Override // com.google.android.material.textfield.EndIconDelegate
public void onPopulateAccessibilityEvent(View view, AccessibilityEvent accessibilityEvent) {
if (!this.accessibilityManager.isEnabled() || EditTextUtils.isEditable(this.autoCompleteTextView)) {
return;
}
boolean z = accessibilityEvent.getEventType() == 32768 && this.isEndIconChecked && !this.autoCompleteTextView.isPopupShowing();
if (accessibilityEvent.getEventType() == 1 || z) {
showHideDropdown();
updateDropdownPopupDirty();
}
}
private void showHideDropdown() {
if (this.autoCompleteTextView == null) {
return;
}
if (isDropdownPopupActive()) {
this.dropdownPopupDirty = false;
}
if (this.dropdownPopupDirty) {
this.dropdownPopupDirty = false;
return;
}
if (IS_LOLLIPOP) {
setEndIconChecked(!this.isEndIconChecked);
} else {
this.isEndIconChecked = !this.isEndIconChecked;
refreshIconState();
}
if (this.isEndIconChecked) {
this.autoCompleteTextView.requestFocus();
this.autoCompleteTextView.showDropDown();
} else {
this.autoCompleteTextView.dismissDropDown();
}
}
private void setUpDropdownShowHideBehavior() {
this.autoCompleteTextView.setOnTouchListener(new View.OnTouchListener() { // from class: com.google.android.material.textfield.DropdownMenuEndIconDelegate$$ExternalSyntheticLambda5
@Override // android.view.View.OnTouchListener
public final boolean onTouch(View view, MotionEvent motionEvent) {
return DropdownMenuEndIconDelegate.this.m5566x5f2e2537(view, motionEvent);
}
});
if (IS_LOLLIPOP) {
this.autoCompleteTextView.setOnDismissListener(new AutoCompleteTextView.OnDismissListener() { // from class: com.google.android.material.textfield.DropdownMenuEndIconDelegate$$ExternalSyntheticLambda6
@Override // android.widget.AutoCompleteTextView.OnDismissListener
public final void onDismiss() {
DropdownMenuEndIconDelegate.this.m5567x3aefa0f8();
}
});
}
this.autoCompleteTextView.setThreshold(0);
}
/* JADX INFO: Access modifiers changed from: package-private */
/* renamed from: lambda$setUpDropdownShowHideBehavior$4$com-google-android-material-textfield-DropdownMenuEndIconDelegate, reason: not valid java name */
public /* synthetic */ boolean m5566x5f2e2537(View view, MotionEvent motionEvent) {
if (motionEvent.getAction() == 1) {
if (isDropdownPopupActive()) {
this.dropdownPopupDirty = false;
}
showHideDropdown();
updateDropdownPopupDirty();
}
return false;
}
/* JADX INFO: Access modifiers changed from: package-private */
/* renamed from: lambda$setUpDropdownShowHideBehavior$5$com-google-android-material-textfield-DropdownMenuEndIconDelegate, reason: not valid java name */
public /* synthetic */ void m5567x3aefa0f8() {
updateDropdownPopupDirty();
setEndIconChecked(false);
}
private boolean isDropdownPopupActive() {
long currentTimeMillis = System.currentTimeMillis() - this.dropdownPopupActivatedAt;
return currentTimeMillis < 0 || currentTimeMillis > 300;
}
private static AutoCompleteTextView castAutoCompleteTextViewOrThrow(EditText editText) {
if (!(editText instanceof AutoCompleteTextView)) {
throw new RuntimeException("EditText needs to be an AutoCompleteTextView if an Exposed Dropdown Menu is being used.");
}
return (AutoCompleteTextView) editText;
}
private void updateDropdownPopupDirty() {
this.dropdownPopupDirty = true;
this.dropdownPopupActivatedAt = System.currentTimeMillis();
}
private void setEndIconChecked(boolean z) {
if (this.isEndIconChecked != z) {
this.isEndIconChecked = z;
this.fadeInAnim.cancel();
this.fadeOutAnim.start();
}
}
private void initAnimators() {
this.fadeInAnim = getAlphaAnimator(this.animationFadeInDuration, 0.0f, 1.0f);
ValueAnimator alphaAnimator = getAlphaAnimator(this.animationFadeOutDuration, 1.0f, 0.0f);
this.fadeOutAnim = alphaAnimator;
alphaAnimator.addListener(new AnimatorListenerAdapter() { // from class: com.google.android.material.textfield.DropdownMenuEndIconDelegate.1
@Override // android.animation.AnimatorListenerAdapter, android.animation.Animator.AnimatorListener
public void onAnimationEnd(Animator animator) {
DropdownMenuEndIconDelegate.this.refreshIconState();
DropdownMenuEndIconDelegate.this.fadeInAnim.start();
}
});
}
private ValueAnimator getAlphaAnimator(int i, float... fArr) {
ValueAnimator ofFloat = ValueAnimator.ofFloat(fArr);
ofFloat.setInterpolator(this.animationFadeInterpolator);
ofFloat.setDuration(i);
ofFloat.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() { // from class: com.google.android.material.textfield.DropdownMenuEndIconDelegate$$ExternalSyntheticLambda3
@Override // android.animation.ValueAnimator.AnimatorUpdateListener
public final void onAnimationUpdate(ValueAnimator valueAnimator) {
DropdownMenuEndIconDelegate.this.m5562x6b943a83(valueAnimator);
}
});
return ofFloat;
}
/* JADX INFO: Access modifiers changed from: package-private */
/* renamed from: lambda$getAlphaAnimator$6$com-google-android-material-textfield-DropdownMenuEndIconDelegate, reason: not valid java name */
public /* synthetic */ void m5562x6b943a83(ValueAnimator valueAnimator) {
this.endIconView.setAlpha(((Float) valueAnimator.getAnimatedValue()).floatValue());
}
}