diff options
author | calderwoodra <calderwoodra@google.com> | 2017-10-09 16:59:04 -0700 |
---|---|---|
committer | Eric Erfanian <erfanian@google.com> | 2017-10-10 07:13:45 -0700 |
commit | 6007f5208514c4f69ca6fa75507abba92ef5372d (patch) | |
tree | de82c4575349ebd7c211ace9785cf51100c1723a /java/com/android/dialer/dialpadview | |
parent | 19e6dbd30ae88e68cd68f3d3873440d50d19d902 (diff) |
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
Diffstat (limited to 'java/com/android/dialer/dialpadview')
-rw-r--r-- | java/com/android/dialer/dialpadview/DialpadFragment.java | 20 |
1 files changed, 10 insertions, 10 deletions
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(); } } |