/**
   * Kicks off a scene transition that animates visibility changes of individual contact list items
   * via explode animation.
   *
   * @param show whether the contact lists are to be shown or hidden.
   */
  private void startExplodeTransitionForContactLists(final boolean show) {
    if (!OsUtil.isAtLeastL()) {
      // Explode animation is not supported pre-L.
      return;
    }
    final Explode transition = new Explode();
    final Rect epicenter =
        mPendingExplodeView == null ? null : UiUtils.getMeasuredBoundsOnScreen(mPendingExplodeView);
    transition.setDuration(UiUtils.COMPOSE_TRANSITION_DURATION);
    transition.setInterpolator(UiUtils.EASE_IN_INTERPOLATOR);
    transition.setEpicenterCallback(
        new EpicenterCallback() {
          @Override
          public Rect onGetEpicenter(final Transition transition) {
            return epicenter;
          }
        });

    // Kick off the delayed scene explode transition. Anything happens after this line in this
    // method before the next frame will be tracked by the transition manager for visibility
    // changes and animated accordingly.
    TransitionManager.beginDelayedTransition(mCustomHeaderViewPager, transition);

    toggleContactListItemsVisibilityForPendingTransition(show);
  }
 /**
  * Toggle the visibility of contact list items in the contact lists for them to be tracked by the
  * transition manager for pending explode transition.
  */
 private void toggleContactListItemsVisibilityForPendingTransition(final boolean show) {
   if (!OsUtil.isAtLeastL()) {
     // Explode animation is not supported pre-L.
     return;
   }
   mAllContactsListViewHolder.toggleVisibilityForPendingTransition(show, mPendingExplodeView);
   mFrequentContactsListViewHolder.toggleVisibilityForPendingTransition(show, mPendingExplodeView);
 }
 /** {@inheritDoc} */
 @Override
 public void dump(final FileDescriptor fd, final PrintWriter writer, final String[] args) {
   // First dump out the default SMS app package name
   String defaultSmsApp = PhoneUtils.getDefault().getDefaultSmsApp();
   if (TextUtils.isEmpty(defaultSmsApp)) {
     if (OsUtil.isAtLeastKLP()) {
       defaultSmsApp = "None";
     } else {
       defaultSmsApp = "None (pre-Kitkat)";
     }
   }
   writer.println("Default SMS app: " + defaultSmsApp);
   // Now dump logs
   LogUtil.dump(writer);
 }