summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGeorge Hilliard <gh403@msstate.edu>2015-01-21 11:15:36 -0600
committerSteve Kondik <shade@chemlab.org>2015-01-25 09:08:10 +0000
commitbbcc7c5fc05f5bd1ae8459483853c976d865d6fe (patch)
treec9baf34ec3b6b3f6f2d1f6410ffc9f598463beae
parenteef12a6f8ef0d9ff3e2ef40035a0393987339a5b (diff)
downloadandroid_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.java29
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);