Scale extends Visibility { @Override @Nullable public Animator onAppear( @NonNull final ViewGroup sceneRoot, @NonNull final View view, @Nullable final TransitionValues startValues, @Nullable final TransitionValues endValues ) { calculateTransitionProperties(view); view.setPivotX(info.pivotX); view.setPivotY(info.pivotY); final float[] startScales = obtainStartScales(startValues, START_SCALE_ON_APPEAR, START_SCALE_ON_APPEAR); return createAnimator( view, startScales[0] == MAX ? MIN : startScales[0], startScales[1] == MAX ? MIN : startScales[1], MAX, MAX ); } Scale();  Scale(@ScaleMode final int mode);  Scale(@NonNull final Context context, @Nullable final AttributeSet attrs); @Nullable static Animator createAnimator(
			@NonNull final View view,
			@FloatRange(from = MIN, to = MAX) final float startScale,
			@FloatRange(from = MIN, to = MAX) final float endScale
	); @Nullable static Animator createAnimator(
			@NonNull final View view,
			@FloatRange(from = MIN, to = MAX) final float startScaleX,
			@FloatRange(from = MIN, to = MAX) final float startScaleY,
			@FloatRange(from = MIN, to = MAX) final float endScaleX,
			@FloatRange(from = MIN, to = MAX) final float endScaleY
	); void setPivotX(@Nullable final Float pivotX); @Nullable Float getPivotX(); void setPivotY(@Nullable final Float pivotY); @Nullable Float getPivotY(); void setPivotXFraction(@FloatRange(from = 0, to = 1) final float fractionX); @FloatRange(from = 0, to = 1) float getPivotXFraction(); void setPivotYFraction(@FloatRange(from = 0, to = 1) final float fractionY); @FloatRange(from = 0, to = 1) float getPivotYFraction(); @Override void captureStartValues(@NonNull final TransitionValues transitionValues); @Override @Nullable Animator onAppear(
			@NonNull final ViewGroup sceneRoot,
			@NonNull final View view,
			@Nullable final TransitionValues startValues,
			@Nullable final TransitionValues endValues
	); @Override @Nullable Animator onDisappear(
			@NonNull final ViewGroup sceneRoot,
			@NonNull final View view,
			@Nullable final TransitionValues startValues,
			@Nullable final TransitionValues endValues
	); static final float MIN; static final float MAX; static final String PROPERTY_SCALE_X; static final String PROPERTY_SCALE_Y; static final TimeInterpolator INTERPOLATOR; }
@Test public void testOnAppearWithViewNotAttachedToWindow() { final View view = createViewNotAttachedToWindow(); final Scale scale = new Scale(); assertThat(scale.onAppear(new FrameLayout(context), view, null, null), is(nullValue())); }