From 6007f5208514c4f69ca6fa75507abba92ef5372d Mon Sep 17 00:00:00 2001 From: calderwoodra Date: Mon, 9 Oct 2017 16:59:04 -0700 Subject: Improved FAB UX. One of the biggest issues with the FAB is that it doesn't scale in/out properly. It looked more like setVisibility was being called instead. This CL migrates the FAB controller to use the built in scale in/out methods #show and #hide and the animation is much nicer. Some of the other issues were: - Now scaling animation is correct and visible. - No longer flashes when going in/out of search. - No longer shows on top of the return to call controller. - No longer bugs when switching between VVM TOS and contacts. - No longer shows FAB over VVM TOS when entering/exiting search Bug: 62588192,35359563,64116334,27458212,37991480,67419607 Test: manual PiperOrigin-RevId: 171608105 Change-Id: I9b3f61df35abf3659a432adf411b1b7d20eba683 --- .../android/dialer/dialpadview/DialpadFragment.java | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) (limited to 'java/com/android/dialer/dialpadview') diff --git a/java/com/android/dialer/dialpadview/DialpadFragment.java b/java/com/android/dialer/dialpadview/DialpadFragment.java index 7dd557863..c4e6c61d8 100644 --- a/java/com/android/dialer/dialpadview/DialpadFragment.java +++ b/java/com/android/dialer/dialpadview/DialpadFragment.java @@ -69,7 +69,6 @@ import android.widget.RelativeLayout; import android.widget.TextView; import com.android.contacts.common.dialog.CallSubjectDialog; import com.android.contacts.common.util.StopWatch; -import com.android.contacts.common.widget.FloatingActionButtonController; import com.android.dialer.animation.AnimUtils; import com.android.dialer.callintent.CallInitiationType; import com.android.dialer.callintent.CallIntentBuilder; @@ -79,6 +78,7 @@ import com.android.dialer.common.LogUtil; import com.android.dialer.common.concurrent.DialerExecutor; import com.android.dialer.common.concurrent.DialerExecutor.Worker; import com.android.dialer.common.concurrent.DialerExecutors; +import com.android.dialer.common.concurrent.ThreadUtil; import com.android.dialer.location.GeoUtil; import com.android.dialer.logging.UiAction; import com.android.dialer.oem.MotorolaUtils; @@ -88,6 +88,7 @@ import com.android.dialer.telecom.TelecomUtil; import com.android.dialer.util.CallUtil; import com.android.dialer.util.DialerUtils; import com.android.dialer.util.PermissionsUtil; +import com.android.dialer.widget.FloatingActionButtonController; import java.util.HashSet; import java.util.List; @@ -1193,7 +1194,7 @@ public class DialpadFragment extends Fragment mOverflowPopupMenu.dismiss(); } - mFloatingActionButtonController.setVisible(false); + mFloatingActionButtonController.scaleOut(); mDialpadChooser.setVisibility(View.VISIBLE); // Instantiate the DialpadChooserAdapter and hook it up to the @@ -1207,6 +1208,7 @@ public class DialpadFragment extends Fragment if (mDialpadView != null) { LogUtil.i("DialpadFragment.showDialpadChooser", "mDialpadView not null"); mDialpadView.setVisibility(View.VISIBLE); + mFloatingActionButtonController.scaleIn(); } else { LogUtil.i("DialpadFragment.showDialpadChooser", "mDialpadView null"); mDigits.setVisibility(View.VISIBLE); @@ -1217,7 +1219,7 @@ public class DialpadFragment extends Fragment if (!mFloatingActionButtonController.isVisible()) { // Just call 'scaleIn()' method if the mFloatingActionButtonController was not already // previously visible. - mFloatingActionButtonController.scaleIn(0); + mFloatingActionButtonController.scaleIn(); } mDialpadChooser.setVisibility(View.GONE); } @@ -1433,17 +1435,15 @@ public class DialpadFragment extends Fragment if (mAnimate) { dialpadView.animateShow(); } - mFloatingActionButtonController.setVisible(false); - mFloatingActionButtonController.scaleIn(mAnimate ? mDialpadSlideInDuration : 0); + ThreadUtil.getUiThreadHandler() + .postDelayed( + () -> mFloatingActionButtonController.scaleIn(), + mAnimate ? mDialpadSlideInDuration : 0); FragmentUtils.getParentUnsafe(this, DialpadListener.class).onDialpadShown(); mDigits.requestFocus(); } if (hidden) { - if (mAnimate) { - mFloatingActionButtonController.scaleOut(); - } else { - mFloatingActionButtonController.setVisible(false); - } + mFloatingActionButtonController.scaleOut(); } } -- cgit v1.2.3