CrackMe.apk
Download file
package com.google.android.material.internal;
import android.animation.Animator;
import android.animation.ValueAnimator;
import android.view.ViewGroup;
import android.widget.TextView;
import androidx.transition.Transition;
import androidx.transition.TransitionValues;
import java.util.Map;
public class TextScale extends Transition {
private static final String PROPNAME_SCALE = "android:textscale:scale";
public void captureStartValues(TransitionValues transitionValues) {
captureValues(transitionValues);
}
public void captureEndValues(TransitionValues transitionValues) {
captureValues(transitionValues);
}
private void captureValues(TransitionValues transitionValues) {
if (transitionValues.view instanceof TextView) {
transitionValues.values.put(PROPNAME_SCALE, Float.valueOf(((TextView) transitionValues.view).getScaleX()));
}
}
public Animator createAnimator(ViewGroup viewGroup, TransitionValues transitionValues, TransitionValues transitionValues2) {
if (transitionValues == null || transitionValues2 == null || !(transitionValues.view instanceof TextView) || !(transitionValues2.view instanceof TextView)) {
return null;
}
final TextView textView = (TextView) transitionValues2.view;
Map<String, Object> map = transitionValues.values;
Map<String, Object> map2 = transitionValues2.values;
float f = 1.0f;
float floatValue = map.get(PROPNAME_SCALE) != null ? ((Float) map.get(PROPNAME_SCALE)).floatValue() : 1.0f;
if (map2.get(PROPNAME_SCALE) != null) {
f = ((Float) map2.get(PROPNAME_SCALE)).floatValue();
}
if (floatValue == f) {
return null;
}
ValueAnimator ofFloat = ValueAnimator.ofFloat(new float[]{floatValue, f});
ofFloat.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
public void onAnimationUpdate(ValueAnimator valueAnimator) {
float floatValue = ((Float) valueAnimator.getAnimatedValue()).floatValue();
textView.setScaleX(floatValue);
textView.setScaleY(floatValue);
}
});
return ofFloat;
}
}
Download file