Show promo after reloading data when stopping from search.
BUG 30706521
Change-Id: I36697d54ec2171a3568178b25fb86b39e18bcf1d
diff --git a/src/com/android/contacts/activities/PeopleActivity.java b/src/com/android/contacts/activities/PeopleActivity.java
index 2e32e11..8a0ae1b 100644
--- a/src/com/android/contacts/activities/PeopleActivity.java
+++ b/src/com/android/contacts/activities/PeopleActivity.java
@@ -82,6 +82,7 @@
import com.android.contacts.list.ContactsRequest;
import com.android.contacts.list.ContactsUnavailableFragment;
import com.android.contacts.list.DefaultContactBrowseListFragment;
+import com.android.contacts.list.DefaultContactBrowseListFragment.FeatureHighlightCallback;
import com.android.contacts.list.MultiSelectContactsListFragment.OnCheckBoxListActionListener;
import com.android.contacts.list.OnContactBrowserActionListener;
import com.android.contacts.list.OnContactsUnavailableActionListener;
@@ -104,7 +105,8 @@
DialogManager.DialogShowingViewActivity,
ContactListFilterController.ContactListFilterListener,
ProviderStatusListener,
- MultiContactDeleteListener {
+ MultiContactDeleteListener,
+ DefaultContactBrowseListFragment.FeatureHighlightCallback {
private static final String TAG = "PeopleActivity";
@@ -356,6 +358,7 @@
transaction.add(R.id.tab_pager, mAllFragment, ALL_TAG);
}
+ mAllFragment.setFeatureHighlightCallback(this);
mAllFragment.setOnContactListActionListener(new ContactBrowserActionListener());
mAllFragment.setCheckBoxListListener(new CheckBoxListListener());
mAllFragment.setListType(mContactListFilterController.getFilterListType());
@@ -578,9 +581,14 @@
showFabWithAnimation(shouldShowFabForAccount());
break;
case ActionBarAdapter.Listener.Action.STOP_SEARCH_AND_SELECTION_MODE:
+ // If queryString is empty, fragment data will not be reloaded,
+ // so hamburger promo should be checked now.
+ // If not empty, promo should be checked and displayed after reloading. (b/30706521)
+ if (TextUtils.isEmpty(mAllFragment.getQueryString())) {
+ maybeShowHamburgerFeatureHighlight();
+ }
setQueryTextToFragment("");
updateFragmentsVisibility();
- maybeShowHamburgerFeatureHighlight();
invalidateOptionsMenu();
showFabWithAnimation(shouldShowFabForAccount());
break;
@@ -1493,4 +1501,9 @@
protected ContactListFilter getContactListFilter() {
return mContactListFilterController.getFilter();
}
+
+ @Override
+ public void onLoadFinishedCallback() {
+ maybeShowHamburgerFeatureHighlight();
+ }
}
diff --git a/src/com/android/contacts/list/DefaultContactBrowseListFragment.java b/src/com/android/contacts/list/DefaultContactBrowseListFragment.java
index 1bd09f8..75168cd 100644
--- a/src/com/android/contacts/list/DefaultContactBrowseListFragment.java
+++ b/src/com/android/contacts/list/DefaultContactBrowseListFragment.java
@@ -52,6 +52,11 @@
private View mEmptyHomeView;
private View mAccountFilterContainer;
private TextView mSearchProgressText;
+ private FeatureHighlightCallback mCallback;
+
+ public interface FeatureHighlightCallback {
+ void onLoadFinishedCallback();
+ }
public DefaultContactBrowseListFragment() {
setPhotoLoaderEnabled(true);
@@ -63,6 +68,10 @@
setDisplayDirectoryHeader(false);
}
+ public void setFeatureHighlightCallback(FeatureHighlightCallback callback) {
+ mCallback = callback;
+ }
+
@Override
public CursorLoader createCursorLoader(Context context) {
return new FavoritesAndContactsLoader(context);
@@ -72,6 +81,9 @@
public void onLoadFinished(Loader<Cursor> loader, Cursor data) {
bindListHeader(data.getCount());
super.onLoadFinished(loader, data);
+ if (!isSearchMode() && mCallback != null) {
+ mCallback.onLoadFinishedCallback();
+ }
}
private void bindListHeader(int numberOfContacts) {