CrackMe.apk
Download file
package com.google.android.material.textfield;
import android.animation.Animator;
import android.animation.AnimatorListenerAdapter;
import android.animation.AnimatorSet;
import android.animation.ValueAnimator;
import android.text.Editable;
import android.text.TextWatcher;
import android.view.View;
import android.widget.EditText;
import androidx.appcompat.content.res.AppCompatResources;
import com.google.android.material.R;
import com.google.android.material.animation.AnimationUtils;
import com.google.android.material.textfield.TextInputLayout;
class ClearTextEndIconDelegate extends EndIconDelegate {
private static final int ANIMATION_FADE_DURATION = 100;
private static final int ANIMATION_SCALE_DURATION = 150;
private static final float ANIMATION_SCALE_FROM_VALUE = 0.8f;
/* access modifiers changed from: private */
public final TextWatcher clearTextEndIconTextWatcher = new TextWatcher() {
public void beforeTextChanged(CharSequence charSequence, int i, int i2, int i3) {
}
public void onTextChanged(CharSequence charSequence, int i, int i2, int i3) {
}
public void afterTextChanged(Editable editable) {
if (!ClearTextEndIconDelegate.hasText(editable)) {
ClearTextEndIconDelegate.this.iconInAnim.cancel();
ClearTextEndIconDelegate.this.iconOutAnim.start();
} else if (!ClearTextEndIconDelegate.this.textInputLayout.isEndIconVisible()) {
ClearTextEndIconDelegate.this.iconOutAnim.cancel();
ClearTextEndIconDelegate.this.iconInAnim.start();
}
}
};
private final TextInputLayout.OnEditTextAttachedListener clearTextOnEditTextAttachedListener = new TextInputLayout.OnEditTextAttachedListener() {
public void onEditTextAttached(TextInputLayout textInputLayout) {
EditText editText = textInputLayout.getEditText();
textInputLayout.setEndIconVisible(ClearTextEndIconDelegate.hasText(editText.getText()));
textInputLayout.setEndIconCheckable(false);
editText.removeTextChangedListener(ClearTextEndIconDelegate.this.clearTextEndIconTextWatcher);
editText.addTextChangedListener(ClearTextEndIconDelegate.this.clearTextEndIconTextWatcher);
}
};
/* access modifiers changed from: private */
public AnimatorSet iconInAnim;
/* access modifiers changed from: private */
public ValueAnimator iconOutAnim;
ClearTextEndIconDelegate(TextInputLayout textInputLayout) {
super(textInputLayout);
}
/* access modifiers changed from: package-private */
public void initialize() {
this.textInputLayout.setEndIconDrawable(AppCompatResources.getDrawable(this.context, R.drawable.mtrl_ic_cancel));
this.textInputLayout.setEndIconContentDescription(this.textInputLayout.getResources().getText(R.string.clear_text_end_icon_content_description));
this.textInputLayout.setEndIconOnClickListener(new View.OnClickListener() {
public void onClick(View view) {
ClearTextEndIconDelegate.this.textInputLayout.getEditText().setText((CharSequence) null);
}
});
this.textInputLayout.addOnEditTextAttachedListener(this.clearTextOnEditTextAttachedListener);
initAnimators();
}
private void initAnimators() {
ValueAnimator scaleAnimator = getScaleAnimator();
ValueAnimator alphaAnimator = getAlphaAnimator(0.0f, 1.0f);
AnimatorSet animatorSet = new AnimatorSet();
this.iconInAnim = animatorSet;
animatorSet.playTogether(new Animator[]{scaleAnimator, alphaAnimator});
this.iconInAnim.addListener(new AnimatorListenerAdapter() {
public void onAnimationStart(Animator animator) {
ClearTextEndIconDelegate.this.textInputLayout.setEndIconVisible(true);
}
});
ValueAnimator alphaAnimator2 = getAlphaAnimator(1.0f, 0.0f);
this.iconOutAnim = alphaAnimator2;
alphaAnimator2.addListener(new AnimatorListenerAdapter() {
public void onAnimationEnd(Animator animator) {
ClearTextEndIconDelegate.this.textInputLayout.setEndIconVisible(false);
}
});
}
private ValueAnimator getAlphaAnimator(float... fArr) {
ValueAnimator ofFloat = ValueAnimator.ofFloat(fArr);
ofFloat.setInterpolator(AnimationUtils.LINEAR_INTERPOLATOR);
ofFloat.setDuration(100);
ofFloat.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
public void onAnimationUpdate(ValueAnimator valueAnimator) {
ClearTextEndIconDelegate.this.endIconView.setAlpha(((Float) valueAnimator.getAnimatedValue()).floatValue());
}
});
return ofFloat;
}
private ValueAnimator getScaleAnimator() {
ValueAnimator ofFloat = ValueAnimator.ofFloat(new float[]{ANIMATION_SCALE_FROM_VALUE, 1.0f});
ofFloat.setInterpolator(AnimationUtils.LINEAR_OUT_SLOW_IN_INTERPOLATOR);
ofFloat.setDuration(150);
ofFloat.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
public void onAnimationUpdate(ValueAnimator valueAnimator) {
float floatValue = ((Float) valueAnimator.getAnimatedValue()).floatValue();
ClearTextEndIconDelegate.this.endIconView.setScaleX(floatValue);
ClearTextEndIconDelegate.this.endIconView.setScaleY(floatValue);
}
});
return ofFloat;
}
/* access modifiers changed from: private */
public static boolean hasText(Editable editable) {
return editable.length() > 0;
}
}
Download file