diff options
Diffstat (limited to 'java/com/android/dialer/contactsfragment/ContactsFragment.java')
-rw-r--r-- | java/com/android/dialer/contactsfragment/ContactsFragment.java | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/java/com/android/dialer/contactsfragment/ContactsFragment.java b/java/com/android/dialer/contactsfragment/ContactsFragment.java index ae2bd746a..794a5b91c 100644 --- a/java/com/android/dialer/contactsfragment/ContactsFragment.java +++ b/java/com/android/dialer/contactsfragment/ContactsFragment.java @@ -158,6 +158,11 @@ public class ContactsFragment extends Fragment contactsPrefs.registerChangeListener(this); header = getArguments().getInt(EXTRA_HEADER); hasPhoneNumbers = getArguments().getBoolean(EXTRA_HAS_PHONE_NUMBERS); + if (savedInstanceState == null) { + // The onHiddenChanged callback does not get called the first time the fragment is + // attached, so call it ourselves here. + onHiddenChanged(false); + } } @Override @@ -354,6 +359,16 @@ public class ContactsFragment extends Fragment } } + @Override + public void onHiddenChanged(boolean hidden) { + super.onHiddenChanged(hidden); + OnContactsFragmentHiddenChangedListener listener = + FragmentUtils.getParent(this, OnContactsFragmentHiddenChangedListener.class); + if (listener != null) { + listener.onContactsFragmentHiddenChanged(hidden); + } + } + private void loadContacts() { getLoaderManager().initLoader(0, null, this); recyclerView.setVisibility(View.VISIBLE); @@ -371,4 +386,9 @@ public class ContactsFragment extends Fragment /** Called when a contact is selected in {@link ContactsFragment}. */ void onContactSelected(ImageView photo, Uri contactUri, long contactId); } + + /** Listener for contacts fragment hidden state */ + public interface OnContactsFragmentHiddenChangedListener { + void onContactsFragmentHiddenChanged(boolean hidden); + } } |