jimu-decompiled/sources/com/google/android/material/textfield/IndicatorViewController.java
2025-05-13 19:24:51 +02:00

408 lines
11 KiB
Java

package com.google.android.material.textfield;
import android.animation.Animator;
import android.animation.AnimatorListenerAdapter;
import android.animation.AnimatorSet;
import android.animation.ObjectAnimator;
import android.content.Context;
import android.content.res.ColorStateList;
import android.graphics.Typeface;
import android.text.TextUtils;
import android.util.Property;
import android.view.View;
import android.view.ViewGroup;
import android.widget.FrameLayout;
import android.widget.LinearLayout;
import android.widget.TextView;
import androidx.appcompat.widget.AppCompatTextView;
import androidx.core.view.ViewCompat;
import androidx.core.widget.TextViewCompat;
import androidx.legacy.widget.Space;
import com.google.android.material.R$dimen;
import com.google.android.material.R$id;
import com.google.android.material.animation.AnimationUtils;
import com.google.android.material.animation.AnimatorSetCompat;
import java.util.ArrayList;
import java.util.List;
/* loaded from: classes.dex */
final class IndicatorViewController {
private final Context a;
private final TextInputLayout b;
private LinearLayout c;
private int d;
private FrameLayout e;
private int f;
private Animator g;
private final float h;
private int i;
private int j;
private CharSequence k;
private boolean l;
private TextView m;
private int n;
private CharSequence o;
private boolean p;
private TextView q;
private int r;
private Typeface s;
public IndicatorViewController(TextInputLayout textInputLayout) {
this.a = textInputLayout.getContext();
this.b = textInputLayout;
this.h = this.a.getResources().getDimensionPixelSize(R$dimen.design_textinput_caption_translate_y);
}
private TextView d(int i) {
if (i == 1) {
return this.m;
}
if (i != 2) {
return null;
}
return this.q;
}
private boolean e(int i) {
return (i != 1 || this.m == null || TextUtils.isEmpty(this.k)) ? false : true;
}
private boolean m() {
return (this.c == null || this.b.getEditText() == null) ? false : true;
}
boolean a(int i) {
return i == 0 || i == 1;
}
void b(CharSequence charSequence) {
b();
this.o = charSequence;
this.q.setText(charSequence);
if (this.i != 2) {
this.j = 2;
}
a(this.i, this.j, a(this.q, charSequence));
}
boolean c() {
return e(this.j);
}
ColorStateList f() {
TextView textView = this.m;
if (textView != null) {
return textView.getTextColors();
}
return null;
}
CharSequence g() {
return this.o;
}
int h() {
TextView textView = this.q;
if (textView != null) {
return textView.getCurrentTextColor();
}
return -1;
}
void i() {
this.k = null;
b();
if (this.i == 1) {
if (!this.p || TextUtils.isEmpty(this.o)) {
this.j = 0;
} else {
this.j = 2;
}
}
a(this.i, this.j, a(this.m, (CharSequence) null));
}
void j() {
b();
if (this.i == 2) {
this.j = 0;
}
a(this.i, this.j, a(this.q, (CharSequence) null));
}
boolean k() {
return this.l;
}
boolean l() {
return this.p;
}
void c(int i) {
this.r = i;
TextView textView = this.q;
if (textView != null) {
TextViewCompat.d(textView, i);
}
}
CharSequence d() {
return this.k;
}
int e() {
TextView textView = this.m;
if (textView != null) {
return textView.getCurrentTextColor();
}
return -1;
}
void a(CharSequence charSequence) {
b();
this.k = charSequence;
this.m.setText(charSequence);
if (this.i != 1) {
this.j = 1;
}
a(this.i, this.j, a(this.m, charSequence));
}
void b() {
Animator animator = this.g;
if (animator != null) {
animator.cancel();
}
}
void b(TextView textView, int i) {
FrameLayout frameLayout;
if (this.c == null) {
return;
}
if (a(i) && (frameLayout = this.e) != null) {
this.f--;
a(frameLayout, this.f);
this.e.removeView(textView);
} else {
this.c.removeView(textView);
}
this.d--;
a(this.c, this.d);
}
private boolean a(TextView textView, CharSequence charSequence) {
return ViewCompat.x(this.b) && this.b.isEnabled() && !(this.j == this.i && textView != null && TextUtils.equals(textView.getText(), charSequence));
}
private void a(final int i, final int i2, boolean z) {
if (z) {
AnimatorSet animatorSet = new AnimatorSet();
this.g = animatorSet;
ArrayList arrayList = new ArrayList();
a(arrayList, this.p, this.q, 2, i, i2);
a(arrayList, this.l, this.m, 1, i, i2);
AnimatorSetCompat.a(animatorSet, arrayList);
final TextView d = d(i);
final TextView d2 = d(i2);
animatorSet.addListener(new AnimatorListenerAdapter() { // from class: com.google.android.material.textfield.IndicatorViewController.1
@Override // android.animation.AnimatorListenerAdapter, android.animation.Animator.AnimatorListener
public void onAnimationEnd(Animator animator) {
IndicatorViewController.this.i = i2;
IndicatorViewController.this.g = null;
TextView textView = d;
if (textView != null) {
textView.setVisibility(4);
if (i != 1 || IndicatorViewController.this.m == null) {
return;
}
IndicatorViewController.this.m.setText((CharSequence) null);
}
}
@Override // android.animation.AnimatorListenerAdapter, android.animation.Animator.AnimatorListener
public void onAnimationStart(Animator animator) {
TextView textView = d2;
if (textView != null) {
textView.setVisibility(0);
}
}
});
animatorSet.start();
} else {
a(i, i2);
}
this.b.c();
this.b.b(z);
this.b.d();
}
void b(boolean z) {
if (this.p == z) {
return;
}
b();
if (z) {
this.q = new AppCompatTextView(this.a);
this.q.setId(R$id.textinput_helper_text);
Typeface typeface = this.s;
if (typeface != null) {
this.q.setTypeface(typeface);
}
this.q.setVisibility(4);
ViewCompat.e((View) this.q, 1);
c(this.r);
a(this.q, 1);
} else {
j();
b(this.q, 1);
this.q = null;
this.b.c();
this.b.d();
}
this.p = z;
}
private void a(int i, int i2) {
TextView d;
TextView d2;
if (i == i2) {
return;
}
if (i2 != 0 && (d2 = d(i2)) != null) {
d2.setVisibility(0);
d2.setAlpha(1.0f);
}
if (i != 0 && (d = d(i)) != null) {
d.setVisibility(4);
if (i == 1) {
d.setText((CharSequence) null);
}
}
this.i = i2;
}
void b(int i) {
this.n = i;
TextView textView = this.m;
if (textView != null) {
this.b.a(textView, i);
}
}
private void a(List<Animator> list, boolean z, TextView textView, int i, int i2, int i3) {
if (textView == null || !z) {
return;
}
if (i == i3 || i == i2) {
list.add(a(textView, i3 == i));
if (i3 == i) {
list.add(a(textView));
}
}
}
void b(ColorStateList colorStateList) {
TextView textView = this.q;
if (textView != null) {
textView.setTextColor(colorStateList);
}
}
private ObjectAnimator a(TextView textView, boolean z) {
ObjectAnimator ofFloat = ObjectAnimator.ofFloat(textView, (Property<TextView, Float>) View.ALPHA, z ? 1.0f : 0.0f);
ofFloat.setDuration(167L);
ofFloat.setInterpolator(AnimationUtils.a);
return ofFloat;
}
private ObjectAnimator a(TextView textView) {
ObjectAnimator ofFloat = ObjectAnimator.ofFloat(textView, (Property<TextView, Float>) View.TRANSLATION_Y, -this.h, 0.0f);
ofFloat.setDuration(217L);
ofFloat.setInterpolator(AnimationUtils.d);
return ofFloat;
}
void a() {
if (m()) {
ViewCompat.a(this.c, ViewCompat.o(this.b.getEditText()), 0, ViewCompat.n(this.b.getEditText()), 0);
}
}
void a(TextView textView, int i) {
if (this.c == null && this.e == null) {
this.c = new LinearLayout(this.a);
this.c.setOrientation(0);
this.b.addView(this.c, -1, -2);
this.e = new FrameLayout(this.a);
this.c.addView(this.e, -1, new FrameLayout.LayoutParams(-2, -2));
this.c.addView(new Space(this.a), new LinearLayout.LayoutParams(0, 0, 1.0f));
if (this.b.getEditText() != null) {
a();
}
}
if (a(i)) {
this.e.setVisibility(0);
this.e.addView(textView);
this.f++;
} else {
this.c.addView(textView, i);
}
this.c.setVisibility(0);
this.d++;
}
private void a(ViewGroup viewGroup, int i) {
if (i == 0) {
viewGroup.setVisibility(8);
}
}
void a(boolean z) {
if (this.l == z) {
return;
}
b();
if (z) {
this.m = new AppCompatTextView(this.a);
this.m.setId(R$id.textinput_error);
Typeface typeface = this.s;
if (typeface != null) {
this.m.setTypeface(typeface);
}
b(this.n);
this.m.setVisibility(4);
ViewCompat.e((View) this.m, 1);
a(this.m, 0);
} else {
i();
b(this.m, 0);
this.m = null;
this.b.c();
this.b.d();
}
this.l = z;
}
void a(Typeface typeface) {
if (typeface != this.s) {
this.s = typeface;
a(this.m, typeface);
a(this.q, typeface);
}
}
private void a(TextView textView, Typeface typeface) {
if (textView != null) {
textView.setTypeface(typeface);
}
}
void a(ColorStateList colorStateList) {
TextView textView = this.m;
if (textView != null) {
textView.setTextColor(colorStateList);
}
}
}