Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit beb5e596 authored by calderwoodra's avatar calderwoodra Committed by Copybara-Service
Browse files

Added old call log to NUI.

Bug: 72618828
Test: existing
PiperOrigin-RevId: 183902491
Change-Id: I079aca188b52c29c12b3cae7e57bf71a4e883898
parent 37d05a20
Loading
Loading
Loading
Loading
+23 −8
Original line number Diff line number Diff line
@@ -53,10 +53,10 @@ import com.android.dialer.app.calllog.calllogcache.CallLogCache;
import com.android.dialer.app.contactinfo.ContactInfoCache;
import com.android.dialer.app.contactinfo.ContactInfoCache.OnContactInfoChangedListener;
import com.android.dialer.app.contactinfo.ExpirableCacheHeadlessFragment;
import com.android.dialer.app.list.ListsFragment;
import com.android.dialer.app.voicemail.VoicemailPlaybackPresenter;
import com.android.dialer.blocking.FilteredNumberAsyncQueryHandler;
import com.android.dialer.common.Assert;
import com.android.dialer.common.FragmentUtils;
import com.android.dialer.common.LogUtil;
import com.android.dialer.database.CallLogQueryHandler;
import com.android.dialer.database.CallLogQueryHandler.Listener;
@@ -344,9 +344,10 @@ public class CallLogFragment extends Fragment
                recyclerView,
                this,
                this,
                activityType == CallLogAdapter.ACTIVITY_TYPE_DIALTACTS
                    ? (CallLogAdapter.OnActionModeStateChangedListener) getActivity()
                    : null,
                // We aren't calling getParentUnsafe because CallLogActivity doesn't need to
                // implement this listener
                FragmentUtils.getParent(
                    this, CallLogAdapter.OnActionModeStateChangedListener.class),
                new CallLogCache(getActivity()),
                contactInfoCache,
                getVoicemailPlaybackPresenter(),
@@ -479,7 +480,7 @@ public class CallLogFragment extends Fragment
  public void fetchCalls() {
    callLogQueryHandler.fetchCalls(callTypeFilter, dateLimit);
    if (!isCallLogActivity) {
      ((ListsFragment) getParentFragment()).updateTabUnreadCounts();
      FragmentUtils.getParentUnsafe(this, CallLogFragmentListener.class).updateTabUnreadCounts();
    }
  }

@@ -616,7 +617,8 @@ public class CallLogFragment extends Fragment
  public void onVisible() {
    LogUtil.enterBlock("CallLogFragment.onPageSelected");
    if (getActivity() != null && getActivity() instanceof HostInterface) {
      ((HostInterface) getActivity()).enableFloatingButton(!isModalAlertVisible());
      FragmentUtils.getParentUnsafe(this, HostInterface.class)
          .enableFloatingButton(!isModalAlertVisible());
    }
  }

@@ -638,7 +640,7 @@ public class CallLogFragment extends Fragment
        this,
        getUserVisibleHint());
    getAdapter().notifyDataSetChanged();
    HostInterface hostInterface = (HostInterface) getActivity();
    HostInterface hostInterface = FragmentUtils.getParent(this, HostInterface.class);
    if (show) {
      recyclerView.setVisibility(View.GONE);
      modalAlertView.setVisibility(View.VISIBLE);
@@ -659,7 +661,8 @@ public class CallLogFragment extends Fragment
    multiSelectUnSelectAllViewContent.setVisibility(show ? View.VISIBLE : View.GONE);
    multiSelectUnSelectAllViewContent.setAlpha(show ? 0 : 1);
    multiSelectUnSelectAllViewContent.animate().alpha(show ? 1 : 0).start();
    ((ListsFragment) getParentFragment()).showMultiSelectRemoveView(show);
    FragmentUtils.getParentUnsafe(this, CallLogFragmentListener.class)
        .showMultiSelectRemoveView(show);
  }

  @Override
@@ -717,4 +720,16 @@ public class CallLogFragment extends Fragment
      refreshDataRequired = true;
    }
  }

  /** Useful callback for ListsFragment children to use to call into ListsFragment. */
  public interface CallLogFragmentListener {

    /**
     * External method to update unread count because the unread count changes when the user expands
     * a voicemail in the call log or when the user expands an unread call in the call history tab.
     */
    void updateTabUnreadCounts();

    void showMultiSelectRemoveView(boolean show);
  }
}
+5 −5
Original line number Diff line number Diff line
@@ -34,6 +34,7 @@ import android.view.ViewGroup;
import com.android.contacts.common.list.ViewPagerTabs;
import com.android.dialer.app.R;
import com.android.dialer.app.calllog.CallLogFragment;
import com.android.dialer.app.calllog.CallLogFragment.CallLogFragmentListener;
import com.android.dialer.app.calllog.CallLogNotificationsService;
import com.android.dialer.app.calllog.VisualVoicemailCallLogFragment;
import com.android.dialer.common.LogUtil;
@@ -59,7 +60,8 @@ import java.util.ArrayList;
 * Contacts list. This will also eventually contain the logic that allows sliding the ViewPager
 * containing the lists up above the search bar and pin it against the top of the screen.
 */
public class ListsFragment extends Fragment implements OnPageChangeListener, Listener {
public class ListsFragment extends Fragment
    implements OnPageChangeListener, Listener, CallLogFragmentListener {

  private static final String TAG = "ListsFragment";

@@ -423,10 +425,7 @@ public class ListsFragment extends Fragment implements OnPageChangeListener, Lis
    return true;
  }

  /**
   * External method to update unread count because the unread count changes when the user expands a
   * voicemail in the call log or when the user expands an unread call in the call history tab.
   */
  @Override
  public void updateTabUnreadCounts() {
    if (callLogQueryHandler != null) {
      callLogQueryHandler.fetchMissedCallsUnreadCount();
@@ -450,6 +449,7 @@ public class ListsFragment extends Fragment implements OnPageChangeListener, Lis
    removeView.animate().alpha(show ? 1 : 0).start();
  }

  @Override
  public void showMultiSelectRemoveView(boolean show) {
    viewPagerTabs.setVisibility(show ? View.GONE : View.VISIBLE);
    viewPager.setEnableSwipingPages(!show);
+99 −8
Original line number Diff line number Diff line
@@ -30,6 +30,9 @@ import android.support.v4.app.FragmentTransaction;
import android.view.View;
import android.widget.ImageView;
import com.android.contacts.common.list.OnPhoneNumberPickerActionListener;
import com.android.dialer.app.calllog.CallLogAdapter;
import com.android.dialer.app.calllog.CallLogFragment;
import com.android.dialer.app.calllog.CallLogFragment.CallLogFragmentListener;
import com.android.dialer.app.list.DragDropController;
import com.android.dialer.app.list.OldSpeedDialFragment;
import com.android.dialer.app.list.OnDragDropListener;
@@ -90,6 +93,10 @@ public final class MainActivity extends TransactionSafeActivity
  private MainOnDialpadQueryChangedListener onDialpadQueryChangedListener;
  private MainDialpadListener dialpadListener;
  private MainSearchFragmentListener searchFragmentListener;
  private MainCallLogAdapterOnActionModeStateChangedListener
      callLogAdapterOnActionModeStateChangedListener;
  private MainCallLogHost callLogHostInterface;
  private MainCallLogFragmentListener callLogFragmentListener;
  private MainOnListFragmentScrolledListener onListFragmentScrolledListener;
  private MainOnPhoneNumberPickerActionListener onPhoneNumberPickerActionListener;
  private MainOldSpeedDialFragmentHostInterface oldSpeedDialFragmentHostInterface;
@@ -148,6 +155,10 @@ public final class MainActivity extends TransactionSafeActivity
    onDialpadQueryChangedListener = new MainOnDialpadQueryChangedListener(searchController);
    dialpadListener = new MainDialpadListener(this, searchController, getLastOutgoingCallListener);
    searchFragmentListener = new MainSearchFragmentListener(searchController);
    callLogAdapterOnActionModeStateChangedListener =
        new MainCallLogAdapterOnActionModeStateChangedListener();
    callLogHostInterface = new MainCallLogHost(searchController, fab);
    callLogFragmentListener = new MainCallLogFragmentListener();
    onListFragmentScrolledListener = new MainOnListFragmentScrolledListener(snackbarContainer);
    onPhoneNumberPickerActionListener = new MainOnPhoneNumberPickerActionListener(this);
    oldSpeedDialFragmentHostInterface =
@@ -228,6 +239,12 @@ public final class MainActivity extends TransactionSafeActivity
      return (T) dialpadFragmentHostInterface;
    } else if (callbackInterface.isInstance(searchFragmentListener)) {
      return (T) searchFragmentListener;
    } else if (callbackInterface.isInstance(callLogAdapterOnActionModeStateChangedListener)) {
      return (T) callLogAdapterOnActionModeStateChangedListener;
    } else if (callbackInterface.isInstance(callLogHostInterface)) {
      return (T) callLogHostInterface;
    } else if (callbackInterface.isInstance(callLogFragmentListener)) {
      return (T) callLogFragmentListener;
    } else if (callbackInterface.isInstance(onListFragmentScrolledListener)) {
      return (T) onListFragmentScrolledListener;
    } else if (callbackInterface.isInstance(onPhoneNumberPickerActionListener)) {
@@ -360,6 +377,60 @@ public final class MainActivity extends TransactionSafeActivity
    }
  }

  /** @see CallLogAdapter.OnActionModeStateChangedListener */
  // TODO(a bug): handle multiselect mode
  private static final class MainCallLogAdapterOnActionModeStateChangedListener
      implements CallLogAdapter.OnActionModeStateChangedListener {

    @Override
    public void onActionModeStateChanged(boolean isEnabled) {}

    @Override
    public boolean isActionModeStateEnabled() {
      return false;
    }
  }

  /** @see CallLogFragment.HostInterface */
  private static final class MainCallLogHost implements CallLogFragment.HostInterface {

    private final MainSearchController searchController;
    private final FloatingActionButton fab;

    MainCallLogHost(MainSearchController searchController, FloatingActionButton fab) {
      this.searchController = searchController;
      this.fab = fab;
    }

    @Override
    public void showDialpad() {
      searchController.showDialpad(true);
    }

    @Override
    public void enableFloatingButton(boolean enabled) {
      if (enabled) {
        fab.show();
      } else {
        fab.hide();
      }
    }
  }

  /** @see CallLogFragmentListener */
  private static final class MainCallLogFragmentListener implements CallLogFragmentListener {

    @Override
    public void updateTabUnreadCounts() {
      // TODO(a bug): implement unread counts
    }

    @Override
    public void showMultiSelectRemoveView(boolean show) {
      // TODO(a bug): handle multiselect mode
    }
  }

  /** @see OnListFragmentScrolledListener */
  private static final class MainOnListFragmentScrolledListener
      implements OnListFragmentScrolledListener {
@@ -521,6 +592,9 @@ public final class MainActivity extends TransactionSafeActivity
    @Override
    public void onCallLogSelected() {
      hideAllFragments();
      if (ConfigProviderComponent.get(context)
          .getConfigProvider()
          .getBoolean("enable_new_call_log", false)) {
        NewCallLogFragment fragment =
            (NewCallLogFragment) supportFragmentManager.findFragmentByTag(CALL_LOG_TAG);
        if (fragment == null) {
@@ -531,6 +605,18 @@ public final class MainActivity extends TransactionSafeActivity
        } else {
          supportFragmentManager.beginTransaction().show(fragment).commit();
        }
      } else {
        CallLogFragment fragment =
            (CallLogFragment) fragmentManager.findFragmentByTag(CALL_LOG_TAG);
        if (fragment == null) {
          fragmentManager
              .beginTransaction()
              .add(R.id.fragment_container, new CallLogFragment(), CALL_LOG_TAG)
              .commit();
        } else {
          fragmentManager.beginTransaction().show(fragment).commit();
        }
      }
    }

    @Override
@@ -569,6 +655,7 @@ public final class MainActivity extends TransactionSafeActivity
    private void hideAllFragments() {
      FragmentTransaction supportTransaction = supportFragmentManager.beginTransaction();
      if (supportFragmentManager.findFragmentByTag(CALL_LOG_TAG) != null) {
        // NewCallLogFragment
        supportTransaction.hide(supportFragmentManager.findFragmentByTag(CALL_LOG_TAG));
      }
      if (supportFragmentManager.findFragmentByTag(VOICEMAIL_TAG) != null) {
@@ -580,6 +667,10 @@ public final class MainActivity extends TransactionSafeActivity
      if (fragmentManager.findFragmentByTag(SPEED_DIAL_TAG) != null) {
        transaction.hide(fragmentManager.findFragmentByTag(SPEED_DIAL_TAG));
      }
      if (fragmentManager.findFragmentByTag(CALL_LOG_TAG) != null) {
        // Old CallLogFragment
        transaction.hide(fragmentManager.findFragmentByTag(CALL_LOG_TAG));
      }
      if (fragmentManager.findFragmentByTag(CONTACTS_TAG) != null) {
        transaction.hide(fragmentManager.findFragmentByTag(CONTACTS_TAG));
      }