forked from organicmaps/organicmaps
[android] Fixed passing booking filter params across screens
This commit is contained in:
parent
caf0a45f0c
commit
406e8cef86
4 changed files with 21 additions and 30 deletions
|
@ -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;
|
||||
}
|
||||
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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));
|
||||
}
|
||||
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue