FileDocCategorySizeDatePackage
PhoneStatusBarTransitions.javaAPI DocAndroid 5.1 API4292Thu Mar 12 22:22:42 GMT 2015com.android.systemui.statusbar.phone

PhoneStatusBarTransitions

public final class PhoneStatusBarTransitions extends BarTransitions

Fields Summary
private static final float
ICON_ALPHA_WHEN_NOT_OPAQUE
private static final float
ICON_ALPHA_WHEN_LIGHTS_OUT_BATTERY_CLOCK
private static final float
ICON_ALPHA_WHEN_LIGHTS_OUT_NON_BATTERY_CLOCK
private final PhoneStatusBarView
mView
private final float
mIconAlphaWhenOpaque
private android.view.View
mLeftSide
private android.view.View
mStatusIcons
private android.view.View
mSignalCluster
private android.view.View
mBattery
private android.view.View
mClock
private android.animation.Animator
mCurrentAnimation
Constructors Summary
public PhoneStatusBarTransitions(PhoneStatusBarView view)


       
        super(view, R.drawable.status_background);
        mView = view;
        final Resources res = mView.getContext().getResources();
        mIconAlphaWhenOpaque = res.getFraction(R.dimen.status_bar_icon_drawing_alpha, 1, 1);
    
Methods Summary
public android.animation.ObjectAnimatoranimateTransitionTo(android.view.View v, float toAlpha)

        return ObjectAnimator.ofFloat(v, "alpha", v.getAlpha(), toAlpha);
    
private voidapplyMode(int mode, boolean animate)

        if (mLeftSide == null) return; // pre-init
        float newAlpha = getNonBatteryClockAlphaFor(mode);
        float newAlphaBC = getBatteryClockAlpha(mode);
        if (mCurrentAnimation != null) {
            mCurrentAnimation.cancel();
        }
        if (animate) {
            AnimatorSet anims = new AnimatorSet();
            anims.playTogether(
                    animateTransitionTo(mLeftSide, newAlpha),
                    animateTransitionTo(mStatusIcons, newAlpha),
                    animateTransitionTo(mSignalCluster, newAlpha),
                    animateTransitionTo(mBattery, newAlphaBC),
                    animateTransitionTo(mClock, newAlphaBC)
                    );
            if (isLightsOut(mode)) {
                anims.setDuration(LIGHTS_OUT_DURATION);
            }
            anims.start();
            mCurrentAnimation = anims;
        } else {
            mLeftSide.setAlpha(newAlpha);
            mStatusIcons.setAlpha(newAlpha);
            mSignalCluster.setAlpha(newAlpha);
            mBattery.setAlpha(newAlphaBC);
            mClock.setAlpha(newAlphaBC);
        }
    
private floatgetBatteryClockAlpha(int mode)

        return isLightsOut(mode) ? ICON_ALPHA_WHEN_LIGHTS_OUT_BATTERY_CLOCK
                : getNonBatteryClockAlphaFor(mode);
    
private floatgetNonBatteryClockAlphaFor(int mode)

        return isLightsOut(mode) ? ICON_ALPHA_WHEN_LIGHTS_OUT_NON_BATTERY_CLOCK
                : !isOpaque(mode) ? ICON_ALPHA_WHEN_NOT_OPAQUE
                : mIconAlphaWhenOpaque;
    
public voidinit()

        mLeftSide = mView.findViewById(R.id.notification_icon_area);
        mStatusIcons = mView.findViewById(R.id.statusIcons);
        mSignalCluster = mView.findViewById(R.id.signal_cluster);
        mBattery = mView.findViewById(R.id.battery);
        mClock = mView.findViewById(R.id.clock);
        applyModeBackground(-1, getMode(), false /*animate*/);
        applyMode(getMode(), false /*animate*/);
    
private booleanisOpaque(int mode)

        return !(mode == MODE_SEMI_TRANSPARENT || mode == MODE_TRANSLUCENT
                || mode == MODE_TRANSPARENT || mode == MODE_LIGHTS_OUT_TRANSPARENT);
    
protected voidonTransition(int oldMode, int newMode, boolean animate)

        super.onTransition(oldMode, newMode, animate);
        applyMode(newMode, animate);