diff --git a/android/src/com/mapswithme/maps/MwmActivity.java b/android/src/com/mapswithme/maps/MwmActivity.java index 39441bbaec..51de490da2 100644 --- a/android/src/com/mapswithme/maps/MwmActivity.java +++ b/android/src/com/mapswithme/maps/MwmActivity.java @@ -1069,8 +1069,7 @@ public class MwmActivity extends BaseMwmFragmentActivity handleDiscoveryResult(data); break; case FilterActivity.REQ_CODE_FILTER: - String query = mSearchController != null ? mSearchController.getQuery() : ""; - handleFilterResult(data, query.equals(getString(R.string.hotel))); + handleFilterResult(data); break; } } @@ -1107,20 +1106,20 @@ public class MwmActivity extends BaseMwmFragmentActivity if (mSearchController != null) mSearchController.setQuery(query); - handleFilterResult(data, query.equals(getString(R.string.hotel))); + handleFilterResult(data); break; } } - private void handleFilterResult(@Nullable Intent data, boolean isHotel) + private void handleFilterResult(@Nullable Intent data) { if (data == null || mFilterController == null) return; - mFilterController.setFilter(data.getParcelableExtra(FilterActivity.EXTRA_FILTER)); BookingFilterParams params = data.getParcelableExtra(FilterActivity.EXTRA_FILTER_PARAMS); - mFilterController.setBookingFilterParams(params); - mFilterController.updateFilterButtonVisibility(isHotel); + mFilterController.setFilterAndParams(data.getParcelableExtra(FilterActivity.EXTRA_FILTER), + params); + mFilterController.updateFilterButtonVisibility(params != null); runSearch(); } @@ -1194,9 +1193,8 @@ public class MwmActivity extends BaseMwmFragmentActivity BookingFilterParams params = intent.getParcelableExtra(FilterActivity.EXTRA_FILTER_PARAMS); if (mFilterController != null) { - mFilterController.show(filter != null || !TextUtils.isEmpty(SearchEngine.getQuery()), true); - mFilterController.setFilter(filter); - mFilterController.setBookingFilterParams(params); + mFilterController.show(filter != null || params != null || !TextUtils.isEmpty(SearchEngine.getQuery()), true); + mFilterController.setFilterAndParams(filter, params); return filter != null || params != null; } diff --git a/android/src/com/mapswithme/maps/search/SearchActivity.java b/android/src/com/mapswithme/maps/search/SearchActivity.java index 2a756df41f..c524909f87 100644 --- a/android/src/com/mapswithme/maps/search/SearchActivity.java +++ b/android/src/com/mapswithme/maps/search/SearchActivity.java @@ -83,7 +83,7 @@ public class SearchActivity extends BaseMwmFragmentActivity implements CustomNav HotelsFilterHolder holder = (HotelsFilterHolder) fragment; HotelsFilter filter = holder.getHotelsFilter(); BookingFilterParams params = holder.getFilterParams(); - if (filter != null) + if (filter != null || params != null) { Intent intent = NavUtils.getParentActivityIntent(this); intent.putExtra(FilterActivity.EXTRA_FILTER, filter); diff --git a/android/src/com/mapswithme/maps/search/SearchFilterController.java b/android/src/com/mapswithme/maps/search/SearchFilterController.java index 141034301a..0f3089247e 100644 --- a/android/src/com/mapswithme/maps/search/SearchFilterController.java +++ b/android/src/com/mapswithme/maps/search/SearchFilterController.java @@ -43,7 +43,7 @@ public class SearchFilterController @Override public void onClick(View v) { - setFilter(null); + setFilterAndParams(null, null); if (mFilterListener != null) mFilterListener.onFilterClear(); } @@ -121,10 +121,11 @@ public class SearchFilterController return mFilter; } - public void setFilter(@Nullable HotelsFilter filter) + public void setFilterAndParams(@Nullable HotelsFilter filter, @Nullable BookingFilterParams params) { mFilter = filter; - if (mFilter != null) + mBookingFilterParams = params; + if (mFilter != null || mBookingFilterParams != null) { mFilterIcon.setOnClickListener(mClearListener); mFilterIcon.setImageResource(R.drawable.ic_cancel); @@ -148,7 +149,7 @@ public class SearchFilterController void resetFilter() { - setFilter(null); + setFilterAndParams(null, null); updateFilterButtonVisibility(false); } @@ -158,11 +159,6 @@ public class SearchFilterController return mBookingFilterParams; } - public void setBookingFilterParams(@Nullable BookingFilterParams params) - { - mBookingFilterParams = params; - } - public void onSaveState(@NonNull Bundle outState) { outState.putParcelable(STATE_HOTEL_FILTER, mFilter); @@ -173,8 +169,7 @@ public class SearchFilterController public void onRestoreState(@NonNull Bundle state) { - setFilter(state.getParcelable(STATE_HOTEL_FILTER)); - setBookingFilterParams(state.getParcelable(STATE_FILTER_PARAMS)); + setFilterAndParams(state.getParcelable(STATE_HOTEL_FILTER), state.getParcelable(STATE_FILTER_PARAMS)); updateFilterButtonVisibility(state.getBoolean(STATE_HOTEL_FILTER_VISIBILITY, false)); } diff --git a/android/src/com/mapswithme/maps/search/SearchFragment.java b/android/src/com/mapswithme/maps/search/SearchFragment.java index cf2b1cd76a..7867f3a132 100644 --- a/android/src/com/mapswithme/maps/search/SearchFragment.java +++ b/android/src/com/mapswithme/maps/search/SearchFragment.java @@ -402,10 +402,9 @@ public class SearchFragment extends BaseMwmFragment }); if (savedInstanceState != null) mFilterController.onRestoreState(savedInstanceState); - if (mInitialHotelsFilter != null) - mFilterController.setFilter(mInitialHotelsFilter); - mFilterController.setBookingFilterParams(mInitialFilterParams); - mFilterController.updateFilterButtonVisibility(false); + if (mInitialHotelsFilter != null || mInitialFilterParams != null) + mFilterController.setFilterAndParams(mInitialHotelsFilter, mInitialFilterParams); + mFilterController.updateFilterButtonVisibility(mInitialFilterParams != null); if (mSearchAdapter == null) { @@ -745,7 +744,7 @@ public class SearchFragment extends BaseMwmFragment { mFilterController.updateFilterButtonVisibility(isHotel); if (!isHotel) - mFilterController.setFilter(null); + mFilterController.setFilterAndParams(null, null); } } @@ -767,9 +766,8 @@ public class SearchFragment extends BaseMwmFragment if (mFilterController == null) return; - mFilterController.setFilter(data.getParcelableExtra(FilterActivity.EXTRA_FILTER)); - BookingFilterParams params = data.getParcelableExtra(FilterActivity.EXTRA_FILTER_PARAMS); - mFilterController.setBookingFilterParams(params); + mFilterController.setFilterAndParams(data.getParcelableExtra(FilterActivity.EXTRA_FILTER), + data.getParcelableExtra(FilterActivity.EXTRA_FILTER_PARAMS)); runSearch(); break; }