Loading src/com/android/contacts/activities/PeopleActivity.java +35 −15 Original line number Diff line number Diff line Loading @@ -253,6 +253,14 @@ public class PeopleActivity extends AppCompatContactsActivity implements mProviderStatusWatcher.addListener(this); mIsRecreatedInstance = (savedState != null); // Use FILTER_TYPE_ALL_ACCOUNTS filter if the activity is not a re-created one. // This is useful when user upgrades app while an account filter or a custom filter was // stored in sharedPreference in a previous version of Contacts app. final ContactListFilter filter = mIsRecreatedInstance ? mContactListFilterController.getFilter() : createAllAccountsFilter(); persistFilterIfNeeded(filter); createViewsAndFragments(savedState); if (Log.isLoggable(Constants.PERFORMANCE_TAG, Log.DEBUG)) { Loading Loading @@ -401,10 +409,7 @@ public class PeopleActivity extends AppCompatContactsActivity implements mAllFragment.setOnContactListActionListener(new ContactBrowserActionListener()); mAllFragment.setCheckBoxListListener(new CheckBoxListListener()); final int listType = mContactListFilterController.getFilter().filterType == ContactListFilter.FILTER_TYPE_ALL_ACCOUNTS ? ListEvent.ListType.ALL_CONTACTS : ListEvent.ListType.ACCOUNT; mAllFragment.setListType(listType); mAllFragment.setListType(ListEvent.ListType.ALL_CONTACTS); if (areGroupWritableAccountsAvailable() && mGroupsFragment != null) { mGroupsFragment.setListener(this); Loading Loading @@ -513,8 +518,7 @@ public class PeopleActivity extends AppCompatContactsActivity implements final int tabToOpen; switch (actionCode) { case ContactsRequest.ACTION_ALL_CONTACTS: filter = ContactListFilter.createFilterWithType( ContactListFilter.FILTER_TYPE_ALL_ACCOUNTS); filter = createAllAccountsFilter(); tabToOpen = TabState.ALL; break; case ContactsRequest.ACTION_CONTACTS_WITH_PHONES: Loading Loading @@ -964,6 +968,7 @@ public class PeopleActivity extends AppCompatContactsActivity implements public boolean onMenuItemClick(MenuItem item) { final DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout); drawer.closeDrawer(GravityCompat.START); mAllFragment.setListType(ListEvent.ListType.ACCOUNT); AccountFilterUtil.handleAccountFilterResult( mContactListFilterController, AppCompatActivity.RESULT_OK, intent); return true; Loading Loading @@ -1085,15 +1090,14 @@ public class PeopleActivity extends AppCompatContactsActivity implements ContactListFilter currentFilter = mAllFragment.getFilter(); if (currentFilter != null && currentFilter.filterType == ContactListFilter.FILTER_TYPE_SINGLE_CONTACT) { filter = ContactListFilter.createFilterWithType( ContactListFilter.FILTER_TYPE_ALL_ACCOUNTS); filter = createAllAccountsFilter(); setFilterAndUpdateTitle(filter); } else { filter = ContactListFilter.createFilterWithType( ContactListFilter.FILTER_TYPE_SINGLE_CONTACT); setFilterAndUpdateTitle(filter, /* restoreSelectedUri */ false); } mContactListFilterController.setContactListFilter(filter, true); persistFilterIfNeeded(filter); } } Loading Loading @@ -1266,12 +1270,7 @@ public class PeopleActivity extends AppCompatContactsActivity implements } else if (id == R.id.nav_help) { HelpUtils.launchHelpAndFeedbackForMainScreen(this); } else if (id == R.id.nav_all_contacts) { final Intent intent = new Intent(); final ContactListFilter filter = ContactListFilter.createFilterWithType( ContactListFilter.FILTER_TYPE_ALL_ACCOUNTS); intent.putExtra(AccountFilterUtil.EXTRA_CONTACT_LIST_FILTER, filter); AccountFilterUtil.handleAccountFilterResult( mContactListFilterController, AppCompatActivity.RESULT_OK, intent); switchToAllContacts(); } else if (id == R.id.nav_blocked_numbers) { final Intent intent = TelecomManagerUtil.createManageBlockedNumbersIntent( (TelecomManager) getSystemService(Context.TELECOM_SERVICE)); Loading Loading @@ -1459,6 +1458,9 @@ public class PeopleActivity extends AppCompatContactsActivity implements Logger.logScreenView(this, ScreenType.SEARCH_EXIT); Logger.logSearchEvent(mAllFragment.createSearchState()); } } else if (mContactListFilterController.getFilter().filterType != ContactListFilter.FILTER_TYPE_ALL_ACCOUNTS) { switchToAllContacts(); } else { super.onBackPressed(); } Loading Loading @@ -1538,4 +1540,22 @@ public class PeopleActivity extends AppCompatContactsActivity implements getSupportActionBar().setTitle(actionBarTitle); } } private void switchToAllContacts() { final Intent intent = new Intent(); final ContactListFilter filter = createAllAccountsFilter(); intent.putExtra(AccountFilterUtil.EXTRA_CONTACT_LIST_FILTER, filter); AccountFilterUtil.handleAccountFilterResult( mContactListFilterController, AppCompatActivity.RESULT_OK, intent); } private ContactListFilter createAllAccountsFilter() { return ContactListFilter.createFilterWithType(ContactListFilter.FILTER_TYPE_ALL_ACCOUNTS); } // Persist filter only when it's of the type FILTER_TYPE_ALL_ACCOUNTS. private void persistFilterIfNeeded(ContactListFilter filter) { mContactListFilterController.setContactListFilter(filter, /* persistent */ filter.filterType == ContactListFilter.FILTER_TYPE_ALL_ACCOUNTS); } } src/com/android/contacts/list/ContactBrowseListFragment.java +5 −1 Original line number Diff line number Diff line Loading @@ -216,7 +216,11 @@ public abstract class ContactBrowseListFragment extends mFilter = filter; mLastSelectedPosition = -1; if (filter.filterType == ContactListFilter.FILTER_TYPE_ALL_ACCOUNTS) { saveFilter(); } if (restoreSelectedUri) { mSelectedContactUri = null; restoreSelectedUri(true); Loading Loading
src/com/android/contacts/activities/PeopleActivity.java +35 −15 Original line number Diff line number Diff line Loading @@ -253,6 +253,14 @@ public class PeopleActivity extends AppCompatContactsActivity implements mProviderStatusWatcher.addListener(this); mIsRecreatedInstance = (savedState != null); // Use FILTER_TYPE_ALL_ACCOUNTS filter if the activity is not a re-created one. // This is useful when user upgrades app while an account filter or a custom filter was // stored in sharedPreference in a previous version of Contacts app. final ContactListFilter filter = mIsRecreatedInstance ? mContactListFilterController.getFilter() : createAllAccountsFilter(); persistFilterIfNeeded(filter); createViewsAndFragments(savedState); if (Log.isLoggable(Constants.PERFORMANCE_TAG, Log.DEBUG)) { Loading Loading @@ -401,10 +409,7 @@ public class PeopleActivity extends AppCompatContactsActivity implements mAllFragment.setOnContactListActionListener(new ContactBrowserActionListener()); mAllFragment.setCheckBoxListListener(new CheckBoxListListener()); final int listType = mContactListFilterController.getFilter().filterType == ContactListFilter.FILTER_TYPE_ALL_ACCOUNTS ? ListEvent.ListType.ALL_CONTACTS : ListEvent.ListType.ACCOUNT; mAllFragment.setListType(listType); mAllFragment.setListType(ListEvent.ListType.ALL_CONTACTS); if (areGroupWritableAccountsAvailable() && mGroupsFragment != null) { mGroupsFragment.setListener(this); Loading Loading @@ -513,8 +518,7 @@ public class PeopleActivity extends AppCompatContactsActivity implements final int tabToOpen; switch (actionCode) { case ContactsRequest.ACTION_ALL_CONTACTS: filter = ContactListFilter.createFilterWithType( ContactListFilter.FILTER_TYPE_ALL_ACCOUNTS); filter = createAllAccountsFilter(); tabToOpen = TabState.ALL; break; case ContactsRequest.ACTION_CONTACTS_WITH_PHONES: Loading Loading @@ -964,6 +968,7 @@ public class PeopleActivity extends AppCompatContactsActivity implements public boolean onMenuItemClick(MenuItem item) { final DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout); drawer.closeDrawer(GravityCompat.START); mAllFragment.setListType(ListEvent.ListType.ACCOUNT); AccountFilterUtil.handleAccountFilterResult( mContactListFilterController, AppCompatActivity.RESULT_OK, intent); return true; Loading Loading @@ -1085,15 +1090,14 @@ public class PeopleActivity extends AppCompatContactsActivity implements ContactListFilter currentFilter = mAllFragment.getFilter(); if (currentFilter != null && currentFilter.filterType == ContactListFilter.FILTER_TYPE_SINGLE_CONTACT) { filter = ContactListFilter.createFilterWithType( ContactListFilter.FILTER_TYPE_ALL_ACCOUNTS); filter = createAllAccountsFilter(); setFilterAndUpdateTitle(filter); } else { filter = ContactListFilter.createFilterWithType( ContactListFilter.FILTER_TYPE_SINGLE_CONTACT); setFilterAndUpdateTitle(filter, /* restoreSelectedUri */ false); } mContactListFilterController.setContactListFilter(filter, true); persistFilterIfNeeded(filter); } } Loading Loading @@ -1266,12 +1270,7 @@ public class PeopleActivity extends AppCompatContactsActivity implements } else if (id == R.id.nav_help) { HelpUtils.launchHelpAndFeedbackForMainScreen(this); } else if (id == R.id.nav_all_contacts) { final Intent intent = new Intent(); final ContactListFilter filter = ContactListFilter.createFilterWithType( ContactListFilter.FILTER_TYPE_ALL_ACCOUNTS); intent.putExtra(AccountFilterUtil.EXTRA_CONTACT_LIST_FILTER, filter); AccountFilterUtil.handleAccountFilterResult( mContactListFilterController, AppCompatActivity.RESULT_OK, intent); switchToAllContacts(); } else if (id == R.id.nav_blocked_numbers) { final Intent intent = TelecomManagerUtil.createManageBlockedNumbersIntent( (TelecomManager) getSystemService(Context.TELECOM_SERVICE)); Loading Loading @@ -1459,6 +1458,9 @@ public class PeopleActivity extends AppCompatContactsActivity implements Logger.logScreenView(this, ScreenType.SEARCH_EXIT); Logger.logSearchEvent(mAllFragment.createSearchState()); } } else if (mContactListFilterController.getFilter().filterType != ContactListFilter.FILTER_TYPE_ALL_ACCOUNTS) { switchToAllContacts(); } else { super.onBackPressed(); } Loading Loading @@ -1538,4 +1540,22 @@ public class PeopleActivity extends AppCompatContactsActivity implements getSupportActionBar().setTitle(actionBarTitle); } } private void switchToAllContacts() { final Intent intent = new Intent(); final ContactListFilter filter = createAllAccountsFilter(); intent.putExtra(AccountFilterUtil.EXTRA_CONTACT_LIST_FILTER, filter); AccountFilterUtil.handleAccountFilterResult( mContactListFilterController, AppCompatActivity.RESULT_OK, intent); } private ContactListFilter createAllAccountsFilter() { return ContactListFilter.createFilterWithType(ContactListFilter.FILTER_TYPE_ALL_ACCOUNTS); } // Persist filter only when it's of the type FILTER_TYPE_ALL_ACCOUNTS. private void persistFilterIfNeeded(ContactListFilter filter) { mContactListFilterController.setContactListFilter(filter, /* persistent */ filter.filterType == ContactListFilter.FILTER_TYPE_ALL_ACCOUNTS); } }
src/com/android/contacts/list/ContactBrowseListFragment.java +5 −1 Original line number Diff line number Diff line Loading @@ -216,7 +216,11 @@ public abstract class ContactBrowseListFragment extends mFilter = filter; mLastSelectedPosition = -1; if (filter.filterType == ContactListFilter.FILTER_TYPE_ALL_ACCOUNTS) { saveFilter(); } if (restoreSelectedUri) { mSelectedContactUri = null; restoreSelectedUri(true); Loading