diff options
author | George Hilliard <gh403@msstate.edu> | 2015-01-21 11:15:36 -0600 |
---|---|---|
committer | Steve Kondik <shade@chemlab.org> | 2015-01-25 09:08:10 +0000 |
commit | bbcc7c5fc05f5bd1ae8459483853c976d865d6fe (patch) | |
tree | c9baf34ec3b6b3f6f2d1f6410ffc9f598463beae | |
parent | eef12a6f8ef0d9ff3e2ef40035a0393987339a5b (diff) | |
download | android_packages_apps_Dialer-bbcc7c5fc05f5bd1ae8459483853c976d865d6fe.tar.gz android_packages_apps_Dialer-bbcc7c5fc05f5bd1ae8459483853c976d865d6fe.tar.bz2 android_packages_apps_Dialer-bbcc7c5fc05f5bd1ae8459483853c976d865d6fe.zip |
Fix animation glitch
The dialpad button no longer changes to a call button while it is visible.
Change-Id: I871d1987187c0e721846a32bf3c887037cb46b48
-rw-r--r-- | src/com/android/dialer/DialtactsActivity.java | 29 |
1 files changed, 22 insertions, 7 deletions
diff --git a/src/com/android/dialer/DialtactsActivity.java b/src/com/android/dialer/DialtactsActivity.java index 4b56c6a7a..78361f555 100644 --- a/src/com/android/dialer/DialtactsActivity.java +++ b/src/com/android/dialer/DialtactsActivity.java @@ -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; @@ -575,7 +577,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); @@ -590,7 +591,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; @@ -730,9 +730,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); @@ -742,16 +748,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); |