diff options
Diffstat (limited to 'java/com/android/dialer/app/list/DialtactsPagerAdapter.java')
-rw-r--r-- | java/com/android/dialer/app/list/DialtactsPagerAdapter.java | 47 |
1 files changed, 38 insertions, 9 deletions
diff --git a/java/com/android/dialer/app/list/DialtactsPagerAdapter.java b/java/com/android/dialer/app/list/DialtactsPagerAdapter.java index 3b700d81b..dba3d3a93 100644 --- a/java/com/android/dialer/app/list/DialtactsPagerAdapter.java +++ b/java/com/android/dialer/app/list/DialtactsPagerAdapter.java @@ -24,9 +24,13 @@ import android.support.v13.app.FragmentPagerAdapter; import android.view.ViewGroup; import com.android.dialer.app.calllog.CallLogFragment; import com.android.dialer.app.calllog.VisualVoicemailCallLogFragment; +import com.android.dialer.calllog.CallLogComponent; +import com.android.dialer.calllog.CallLogFramework; +import com.android.dialer.calllog.ui.NewCallLogFragment; import com.android.dialer.common.Assert; import com.android.dialer.common.ConfigProviderBindings; import com.android.dialer.common.LogUtil; +import com.android.dialer.contactsfragment.ContactsFragment; import com.android.dialer.database.CallLogQueryHandler; import com.android.dialer.speeddial.SpeedDialFragment; import com.android.dialer.util.ViewUtil; @@ -54,11 +58,14 @@ public class DialtactsPagerAdapter extends FragmentPagerAdapter { private final List<Fragment> fragments = new ArrayList<>(); private final String[] tabTitles; private final boolean useNewSpeedDialTab; - + private final boolean useNewCallLogTab; + private final boolean useNewContactsTab; private OldSpeedDialFragment oldSpeedDialFragment; private SpeedDialFragment speedDialFragment; private CallLogFragment callLogFragment; - private AllContactsFragment contactsFragment; + private NewCallLogFragment newCallLogFragment; + private AllContactsFragment oldContactsFragment; + private ContactsFragment contactsFragment; private CallLogFragment voicemailFragment; public boolean hasActiveVoicemailProvider; @@ -68,6 +75,10 @@ public class DialtactsPagerAdapter extends FragmentPagerAdapter { super(fm); useNewSpeedDialTab = ConfigProviderBindings.get(context).getBoolean("enable_new_favorites_tab", false); + CallLogFramework callLogFramework = CallLogComponent.get(context).callLogFramework(); + useNewCallLogTab = callLogFramework.isNewCallLogEnabled(context); + useNewContactsTab = + ConfigProviderBindings.get(context).getBoolean("enable_new_contacts_tab", false); this.tabTitles = tabTitles; hasActiveVoicemailProvider = hasVoicemailProvider; fragments.addAll(Collections.nCopies(TAB_COUNT_WITH_VOICEMAIL, null)); @@ -95,15 +106,29 @@ public class DialtactsPagerAdapter extends FragmentPagerAdapter { return oldSpeedDialFragment; } case TAB_INDEX_HISTORY: - if (callLogFragment == null) { - callLogFragment = new CallLogFragment(CallLogQueryHandler.CALL_TYPE_ALL); + if (useNewCallLogTab) { + if (newCallLogFragment == null) { + newCallLogFragment = new NewCallLogFragment(); + } + return newCallLogFragment; + } else { + if (callLogFragment == null) { + callLogFragment = new CallLogFragment(CallLogQueryHandler.CALL_TYPE_ALL); + } + return callLogFragment; } - return callLogFragment; case TAB_INDEX_ALL_CONTACTS: - if (contactsFragment == null) { - contactsFragment = new AllContactsFragment(); + if (useNewContactsTab) { + if (contactsFragment == null) { + contactsFragment = new ContactsFragment(); + } + return contactsFragment; + } else { + if (oldContactsFragment == null) { + oldContactsFragment = new AllContactsFragment(); + } + return oldContactsFragment; } - return contactsFragment; case TAB_INDEX_VOICEMAIL: if (voicemailFragment == null) { voicemailFragment = new VisualVoicemailCallLogFragment(); @@ -131,8 +156,12 @@ public class DialtactsPagerAdapter extends FragmentPagerAdapter { speedDialFragment = (SpeedDialFragment) fragment; } else if (fragment instanceof CallLogFragment && position == TAB_INDEX_HISTORY) { callLogFragment = (CallLogFragment) fragment; + } else if (fragment instanceof NewCallLogFragment) { + newCallLogFragment = (NewCallLogFragment) fragment; + } else if (fragment instanceof ContactsFragment) { + contactsFragment = (ContactsFragment) fragment; } else if (fragment instanceof AllContactsFragment) { - contactsFragment = (AllContactsFragment) fragment; + oldContactsFragment = (AllContactsFragment) fragment; } else if (fragment instanceof CallLogFragment && position == TAB_INDEX_VOICEMAIL) { voicemailFragment = (CallLogFragment) fragment; LogUtil.v("ViewPagerAdapter.instantiateItem", voicemailFragment.toString()); |