Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit c6d0b537 authored by George Hilliard's avatar George Hilliard Committed by Steve Kondik
Browse files

Fix animation glitch

The dialpad button no longer changes to a call button while it is visible.

Change-Id: I871d1987187c0e721846a32bf3c887037cb46b48
parent 0a5b9198
Loading
Loading
Loading
Loading
+22 −7
Original line number Diff line number Diff line
@@ -99,6 +99,8 @@ import com.android.phone.common.util.SettingsUtil;
import com.android.ims.ImsManager;
import com.android.internal.telephony.TelephonyProperties;
import com.android.phone.common.animation.AnimationListenerAdapter;
import com.android.phone.common.animation.AnimUtils.AnimationCallback;


import java.util.ArrayList;
import java.util.Iterator;
@@ -601,7 +603,6 @@ public class DialtactsActivity extends TransactionSafeActivity implements View.O
                if (!mIsDialpadShown) {
                    mInCallDialpadUp = false;
                    showDialpadFragment(true);
                    mFloatingActionButton.setImageResource(R.drawable.fab_ic_call);
                    mFloatingActionButton.setVisibility(view.VISIBLE);
                    setConferenceDialButtonImage(false);
                    setConferenceDialButtonVisibility(true);
@@ -616,7 +617,6 @@ public class DialtactsActivity extends TransactionSafeActivity implements View.O
                mIsDialpadShown = false;
                mDialCallButton.setVisibility(view.VISIBLE);
                mDialpadFragment.dialConferenceButtonPressed();
                mFloatingActionButton.setImageResource(R.drawable.fab_ic_dial);
                updateFloatingActionButtonControllerAlignment(true);
                mFloatingActionButton.setVisibility(view.VISIBLE);
            break;
@@ -756,9 +756,15 @@ public class DialtactsActivity extends TransactionSafeActivity implements View.O
        ft.commit();

        if (animate) {
            mFloatingActionButtonController.scaleOut();
            mFloatingActionButtonController.scaleOut(new AnimationCallback() {
                @Override
                public void onAnimationEnd() {
                    onFloatingActionButtonHidden();
                }
            });
        } else {
            mFloatingActionButtonController.setVisible(false);
            onFloatingActionButtonHidden();
        }
        mActionBarController.onDialpadUp();
        setConferenceDialButtonVisibility(animate);
@@ -768,16 +774,25 @@ public class DialtactsActivity extends TransactionSafeActivity implements View.O
        }
    }

    /**
     * Callback from child DialpadFragment when the dialpad is shown.
     */
    public void onDialpadShown() {
    private void onFloatingActionButtonHidden() {
        // The dialpad might be hidden again (user pressed Back during animation)
        // by the time this executes.
        if (!mIsDialpadShown) {
            return;
        }

        if (mDialConferenceButtonPressed) {
            mFloatingActionButton.setImageResource(R.drawable.fab_ic_dial);
            mDialConferenceButtonPressed = false;
        } else {
            mFloatingActionButton.setImageResource(R.drawable.fab_ic_call);
        }
    }

    /**
     * Callback from child DialpadFragment when the dialpad is shown.
     */
    public void onDialpadShown() {
        updateFloatingActionButtonControllerAlignment(mDialpadFragment.getAnimate());
        if (mDialpadFragment.getAnimate()) {
            mDialpadFragment.getView().startAnimation(mSlideIn);