hunterstich 148938ca84 [Motion] Update MaterialFadeThrough and MaterialFade to use MaterialVisibility and remove context param.
This updaes the remaining transitions to compose themselves of two animators instead of two visibility transitions. This also removes the context parameter from MaterialFadeThrough, MaterialFade and MaterialSharedAxis' constructors.

PiperOrigin-RevId: 303332658
2020-03-27 11:40:38 -04:00

59 lines
1.8 KiB
Java

/*
* Copyright 2019 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* https://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.google.android.material.transition;
import android.os.Build.VERSION_CODES;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.annotation.RequiresApi;
import com.google.android.material.animation.AnimationUtils;
/**
* A {@link android.transition.Visibility} transition that, by default, provides a fade in and scale
* out when appearing and a fade out and scale out when disappearing.
*/
@RequiresApi(VERSION_CODES.LOLLIPOP)
public class MaterialFadeThrough extends MaterialVisibility<FadeThroughProvider> {
private static final float DEFAULT_START_SCALE = 0.92f;
@NonNull
public static MaterialFadeThrough create() {
return new MaterialFadeThrough();
}
private MaterialFadeThrough() {
setInterpolator(AnimationUtils.FAST_OUT_SLOW_IN_INTERPOLATOR);
initialize();
}
@NonNull
@Override
FadeThroughProvider getDefaultPrimaryAnimatorProvider() {
return new FadeThroughProvider();
}
@Nullable
@Override
VisibilityAnimatorProvider getDefaultSecondaryAnimatorProvider() {
ScaleProvider scaleProvider = new ScaleProvider();
scaleProvider.setScaleOnDisappear(false);
scaleProvider.setIncomingStartScale(DEFAULT_START_SCALE);
return scaleProvider;
}
}