Loading src/com/android/contacts/activities/PeopleActivity.java +28 −5 Original line number Original line Diff line number Diff line Loading @@ -75,6 +75,8 @@ import com.android.contacts.common.list.ViewPagerTabs; import com.android.contacts.common.logging.ListEvent; import com.android.contacts.common.logging.ListEvent; import com.android.contacts.common.logging.Logger; import com.android.contacts.common.logging.Logger; import com.android.contacts.common.logging.ScreenEvent.ScreenType; import com.android.contacts.common.logging.ScreenEvent.ScreenType; import com.android.contacts.common.model.AccountTypeManager; import com.android.contacts.common.model.account.AccountWithDataSet; import com.android.contacts.common.preference.ContactsPreferenceActivity; import com.android.contacts.common.preference.ContactsPreferenceActivity; import com.android.contacts.common.util.AccountFilterUtil; import com.android.contacts.common.util.AccountFilterUtil; import com.android.contacts.common.util.Constants; import com.android.contacts.common.util.Constants; Loading Loading @@ -138,6 +140,7 @@ public class PeopleActivity extends AppCompatContactsActivity implements private ContactsRequest mRequest; private ContactsRequest mRequest; private ActionBarAdapter mActionBarAdapter; private ActionBarAdapter mActionBarAdapter; private List<AccountWithDataSet> mWritableAccounts; private FloatingActionButtonController mFloatingActionButtonController; private FloatingActionButtonController mFloatingActionButtonController; private View mFloatingActionButtonContainer; private View mFloatingActionButtonContainer; private boolean wasLastFabAnimationScaleIn = false; private boolean wasLastFabAnimationScaleIn = false; Loading Loading @@ -563,12 +566,25 @@ public class PeopleActivity extends AppCompatContactsActivity implements private void initializeFabVisibility() { private void initializeFabVisibility() { final boolean hideFab = mActionBarAdapter.isSearchMode() final boolean hideFab = mActionBarAdapter.isSearchMode() || mActionBarAdapter.isSelectionMode(); || mActionBarAdapter.isSelectionMode() || !shouldShowFabForAccount(); mFloatingActionButtonContainer.setVisibility(hideFab ? View.GONE : View.VISIBLE); mFloatingActionButtonContainer.setVisibility(hideFab ? View.GONE : View.VISIBLE); mFloatingActionButtonController.resetIn(); mFloatingActionButtonController.resetIn(); wasLastFabAnimationScaleIn = !hideFab; wasLastFabAnimationScaleIn = !hideFab; } } private boolean shouldShowFabForAccount() { return isCurrentAccountFilterWritable() || isAllContactsFilter(mContactListFilterController.getFilter()); } private boolean isCurrentAccountFilterWritable() { final ContactListFilter currentFilter = mContactListFilterController.getFilter(); final AccountWithDataSet accountOfCurrentFilter = new AccountWithDataSet( currentFilter.accountName, currentFilter.accountType, currentFilter.dataSet); return mWritableAccounts != null && mWritableAccounts.contains(accountOfCurrentFilter); } private void showFabWithAnimation(boolean showFab) { private void showFabWithAnimation(boolean showFab) { if (mFloatingActionButtonContainer == null) { if (mFloatingActionButtonContainer == null) { return; return; Loading Loading @@ -596,6 +612,7 @@ public class PeopleActivity extends AppCompatContactsActivity implements } } setFilterAndUpdateTitle(mContactListFilterController.getFilter()); setFilterAndUpdateTitle(mContactListFilterController.getFilter()); showFabWithAnimation(shouldShowFabForAccount()); invalidateOptionsMenuIfNeeded(); invalidateOptionsMenuIfNeeded(); } } Loading Loading @@ -981,6 +998,9 @@ public class PeopleActivity extends AppCompatContactsActivity implements // Get rid of the default memu item overlay and show original account icons. // Get rid of the default memu item overlay and show original account icons. menuItem.getIcon().setColorFilter(Color.TRANSPARENT, PorterDuff.Mode.SRC_ATOP); menuItem.getIcon().setColorFilter(Color.TRANSPARENT, PorterDuff.Mode.SRC_ATOP); } } mWritableAccounts = AccountTypeManager.getInstance(this).getAccounts(true); initializeFabVisibility(); } } @Override @Override Loading Loading @@ -1057,8 +1077,7 @@ public class PeopleActivity extends AppCompatContactsActivity implements if (mAllFragment.isSearchMode()) { if (mAllFragment.isSearchMode()) { previousScreen = ScreenType.SEARCH; previousScreen = ScreenType.SEARCH; } else { } else { if (mAllFragment.getFilter().filterType == if (isAllContactsFilter(mContactListFilterController.getFilter())) { ContactListFilter.FILTER_TYPE_ALL_ACCOUNTS) { if (position < mAllFragment.getAdapter().getNumberOfFavorites()) { if (position < mAllFragment.getAdapter().getNumberOfFavorites()) { previousScreen = ScreenType.FAVORITES; previousScreen = ScreenType.FAVORITES; } else { } else { Loading Loading @@ -1558,7 +1577,11 @@ public class PeopleActivity extends AppCompatContactsActivity implements // Persist filter only when it's of the type FILTER_TYPE_ALL_ACCOUNTS. // Persist filter only when it's of the type FILTER_TYPE_ALL_ACCOUNTS. private void persistFilterIfNeeded(ContactListFilter filter) { private void persistFilterIfNeeded(ContactListFilter filter) { mContactListFilterController.setContactListFilter(filter, /* persistent */ mContactListFilterController.setContactListFilter(filter, filter.filterType == ContactListFilter.FILTER_TYPE_ALL_ACCOUNTS); /* persistent */ isAllContactsFilter(filter)); } private boolean isAllContactsFilter(ContactListFilter filter) { return filter.filterType == ContactListFilter.FILTER_TYPE_ALL_ACCOUNTS; } } } } Loading
src/com/android/contacts/activities/PeopleActivity.java +28 −5 Original line number Original line Diff line number Diff line Loading @@ -75,6 +75,8 @@ import com.android.contacts.common.list.ViewPagerTabs; import com.android.contacts.common.logging.ListEvent; import com.android.contacts.common.logging.ListEvent; import com.android.contacts.common.logging.Logger; import com.android.contacts.common.logging.Logger; import com.android.contacts.common.logging.ScreenEvent.ScreenType; import com.android.contacts.common.logging.ScreenEvent.ScreenType; import com.android.contacts.common.model.AccountTypeManager; import com.android.contacts.common.model.account.AccountWithDataSet; import com.android.contacts.common.preference.ContactsPreferenceActivity; import com.android.contacts.common.preference.ContactsPreferenceActivity; import com.android.contacts.common.util.AccountFilterUtil; import com.android.contacts.common.util.AccountFilterUtil; import com.android.contacts.common.util.Constants; import com.android.contacts.common.util.Constants; Loading Loading @@ -138,6 +140,7 @@ public class PeopleActivity extends AppCompatContactsActivity implements private ContactsRequest mRequest; private ContactsRequest mRequest; private ActionBarAdapter mActionBarAdapter; private ActionBarAdapter mActionBarAdapter; private List<AccountWithDataSet> mWritableAccounts; private FloatingActionButtonController mFloatingActionButtonController; private FloatingActionButtonController mFloatingActionButtonController; private View mFloatingActionButtonContainer; private View mFloatingActionButtonContainer; private boolean wasLastFabAnimationScaleIn = false; private boolean wasLastFabAnimationScaleIn = false; Loading Loading @@ -563,12 +566,25 @@ public class PeopleActivity extends AppCompatContactsActivity implements private void initializeFabVisibility() { private void initializeFabVisibility() { final boolean hideFab = mActionBarAdapter.isSearchMode() final boolean hideFab = mActionBarAdapter.isSearchMode() || mActionBarAdapter.isSelectionMode(); || mActionBarAdapter.isSelectionMode() || !shouldShowFabForAccount(); mFloatingActionButtonContainer.setVisibility(hideFab ? View.GONE : View.VISIBLE); mFloatingActionButtonContainer.setVisibility(hideFab ? View.GONE : View.VISIBLE); mFloatingActionButtonController.resetIn(); mFloatingActionButtonController.resetIn(); wasLastFabAnimationScaleIn = !hideFab; wasLastFabAnimationScaleIn = !hideFab; } } private boolean shouldShowFabForAccount() { return isCurrentAccountFilterWritable() || isAllContactsFilter(mContactListFilterController.getFilter()); } private boolean isCurrentAccountFilterWritable() { final ContactListFilter currentFilter = mContactListFilterController.getFilter(); final AccountWithDataSet accountOfCurrentFilter = new AccountWithDataSet( currentFilter.accountName, currentFilter.accountType, currentFilter.dataSet); return mWritableAccounts != null && mWritableAccounts.contains(accountOfCurrentFilter); } private void showFabWithAnimation(boolean showFab) { private void showFabWithAnimation(boolean showFab) { if (mFloatingActionButtonContainer == null) { if (mFloatingActionButtonContainer == null) { return; return; Loading Loading @@ -596,6 +612,7 @@ public class PeopleActivity extends AppCompatContactsActivity implements } } setFilterAndUpdateTitle(mContactListFilterController.getFilter()); setFilterAndUpdateTitle(mContactListFilterController.getFilter()); showFabWithAnimation(shouldShowFabForAccount()); invalidateOptionsMenuIfNeeded(); invalidateOptionsMenuIfNeeded(); } } Loading Loading @@ -981,6 +998,9 @@ public class PeopleActivity extends AppCompatContactsActivity implements // Get rid of the default memu item overlay and show original account icons. // Get rid of the default memu item overlay and show original account icons. menuItem.getIcon().setColorFilter(Color.TRANSPARENT, PorterDuff.Mode.SRC_ATOP); menuItem.getIcon().setColorFilter(Color.TRANSPARENT, PorterDuff.Mode.SRC_ATOP); } } mWritableAccounts = AccountTypeManager.getInstance(this).getAccounts(true); initializeFabVisibility(); } } @Override @Override Loading Loading @@ -1057,8 +1077,7 @@ public class PeopleActivity extends AppCompatContactsActivity implements if (mAllFragment.isSearchMode()) { if (mAllFragment.isSearchMode()) { previousScreen = ScreenType.SEARCH; previousScreen = ScreenType.SEARCH; } else { } else { if (mAllFragment.getFilter().filterType == if (isAllContactsFilter(mContactListFilterController.getFilter())) { ContactListFilter.FILTER_TYPE_ALL_ACCOUNTS) { if (position < mAllFragment.getAdapter().getNumberOfFavorites()) { if (position < mAllFragment.getAdapter().getNumberOfFavorites()) { previousScreen = ScreenType.FAVORITES; previousScreen = ScreenType.FAVORITES; } else { } else { Loading Loading @@ -1558,7 +1577,11 @@ public class PeopleActivity extends AppCompatContactsActivity implements // Persist filter only when it's of the type FILTER_TYPE_ALL_ACCOUNTS. // Persist filter only when it's of the type FILTER_TYPE_ALL_ACCOUNTS. private void persistFilterIfNeeded(ContactListFilter filter) { private void persistFilterIfNeeded(ContactListFilter filter) { mContactListFilterController.setContactListFilter(filter, /* persistent */ mContactListFilterController.setContactListFilter(filter, filter.filterType == ContactListFilter.FILTER_TYPE_ALL_ACCOUNTS); /* persistent */ isAllContactsFilter(filter)); } private boolean isAllContactsFilter(ContactListFilter filter) { return filter.filterType == ContactListFilter.FILTER_TYPE_ALL_ACCOUNTS; } } } }