forked from organicmaps/organicmaps
[android] Fixed passing the chosen dates across map and search screen (#13535)
* [android] Fixed passing the chosen dates across map and search screen. Refactored setting and resetting the filter and filter params, i.e. splitted the logic in different methods(set and reset). * [android] Made filterParams paramater nullable in setFilterParams method
This commit is contained in:
parent
d04625668e
commit
b629b2b38d
4 changed files with 49 additions and 35 deletions
|
@ -434,9 +434,10 @@ public class MwmActivity extends BaseMwmFragmentActivity
|
|||
if (mFilterController == null || data == null)
|
||||
return;
|
||||
|
||||
BookingFilterParams params = data.getParcelableExtra(FilterActivity.EXTRA_FILTER_PARAMS);
|
||||
HotelsFilter filter = data.getParcelableExtra(FilterActivity.EXTRA_FILTER);
|
||||
mFilterController.setFilterAndParams(filter, params);
|
||||
mFilterController.setFilter(filter);
|
||||
BookingFilterParams params = data.getParcelableExtra(FilterActivity.EXTRA_FILTER_PARAMS);
|
||||
mFilterController.setFilterParams(params);
|
||||
|
||||
showSearch(query);
|
||||
}
|
||||
|
@ -465,7 +466,7 @@ public class MwmActivity extends BaseMwmFragmentActivity
|
|||
SearchActivity.start(this, query, filter, params);
|
||||
}
|
||||
if (mFilterController != null)
|
||||
mFilterController.resetFilter();
|
||||
mFilterController.resetFilterAndParams();
|
||||
}
|
||||
|
||||
public void showEditor()
|
||||
|
@ -1159,9 +1160,9 @@ public class MwmActivity extends BaseMwmFragmentActivity
|
|||
|
||||
setupSearchQuery(data);
|
||||
|
||||
mFilterController.setFilter(data.getParcelableExtra(FilterActivity.EXTRA_FILTER));
|
||||
BookingFilterParams params = data.getParcelableExtra(FilterActivity.EXTRA_FILTER_PARAMS);
|
||||
mFilterController.setFilterAndParams(data.getParcelableExtra(FilterActivity.EXTRA_FILTER),
|
||||
params);
|
||||
mFilterController.setFilterParams(params);
|
||||
mFilterController.updateFilterButtonsVisibility(mFilterController.isSatisfiedForSearch());
|
||||
runSearch();
|
||||
}
|
||||
|
@ -1371,7 +1372,8 @@ public class MwmActivity extends BaseMwmFragmentActivity
|
|||
{
|
||||
mFilterController.updateFilterButtonsVisibility(true);
|
||||
mFilterController.show(!TextUtils.isEmpty(SearchEngine.INSTANCE.getQuery()), true);
|
||||
mFilterController.setFilterAndParams(filter, params);
|
||||
mFilterController.setFilter(filter);
|
||||
mFilterController.setFilterParams(params);
|
||||
return true;
|
||||
}
|
||||
|
||||
|
@ -1591,7 +1593,7 @@ public class MwmActivity extends BaseMwmFragmentActivity
|
|||
{
|
||||
SearchEngine.INSTANCE.cancelInteractiveSearch();
|
||||
if (mFilterController != null)
|
||||
mFilterController.resetFilter();
|
||||
mFilterController.resetFilterAndParams();
|
||||
mSearchController.clear();
|
||||
return;
|
||||
}
|
||||
|
@ -2605,7 +2607,7 @@ public class MwmActivity extends BaseMwmFragmentActivity
|
|||
public void onSearchClearClick()
|
||||
{
|
||||
if (mFilterController != null)
|
||||
mFilterController.resetFilter();
|
||||
mFilterController.resetFilterAndParams();
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -46,8 +46,7 @@ public class SearchFilterController implements SearchToolbarController.FilterPar
|
|||
@Override
|
||||
public void onClick(View v)
|
||||
{
|
||||
setFilterAndParams(null, null);
|
||||
mToolbarController.setFilterParams(null);
|
||||
resetFilterAndParams();
|
||||
if (mFilterListener != null)
|
||||
mFilterListener.onFilterClear();
|
||||
}
|
||||
|
@ -144,11 +143,18 @@ public class SearchFilterController implements SearchToolbarController.FilterPar
|
|||
return mFilter;
|
||||
}
|
||||
|
||||
public void setFilterAndParams(@Nullable HotelsFilter filter, @Nullable BookingFilterParams params)
|
||||
public void setFilterParams(@Nullable BookingFilterParams params)
|
||||
{
|
||||
if (params == null)
|
||||
return;
|
||||
|
||||
mToolbarController.setFilterParams(params);
|
||||
mBookingFilterParams = params;
|
||||
}
|
||||
|
||||
public void setFilter(@Nullable HotelsFilter filter)
|
||||
{
|
||||
mFilter = filter;
|
||||
if (params != null)
|
||||
mToolbarController.setFilterParams(params);
|
||||
if (mFilter != null)
|
||||
{
|
||||
mFilterIcon.setOnClickListener(mClearListener);
|
||||
|
@ -171,13 +177,19 @@ public class SearchFilterController implements SearchToolbarController.FilterPar
|
|||
}
|
||||
}
|
||||
|
||||
public void resetFilter()
|
||||
public void resetFilterAndParams()
|
||||
{
|
||||
setFilterAndParams(null, null);
|
||||
mToolbarController.setFilterParams(null);
|
||||
setFilter(null);
|
||||
resetFilterParams();
|
||||
updateFilterButtonsVisibility(false);
|
||||
}
|
||||
|
||||
private void resetFilterParams()
|
||||
{
|
||||
mToolbarController.resetFilterParams();
|
||||
mBookingFilterParams = null;
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public BookingFilterParams getBookingFilterParams()
|
||||
{
|
||||
|
@ -194,7 +206,8 @@ public class SearchFilterController implements SearchToolbarController.FilterPar
|
|||
|
||||
public void onRestoreState(@NonNull Bundle state)
|
||||
{
|
||||
setFilterAndParams(state.getParcelable(STATE_HOTEL_FILTER), state.getParcelable(STATE_FILTER_PARAMS));
|
||||
setFilter(state.getParcelable(STATE_HOTEL_FILTER));
|
||||
setFilterParams(state.getParcelable(STATE_FILTER_PARAMS));
|
||||
updateFilterButtonsVisibility(state.getBoolean(STATE_HOTEL_FILTER_VISIBILITY, false));
|
||||
}
|
||||
|
||||
|
|
|
@ -146,7 +146,7 @@ public class SearchFragment extends BaseMwmFragment
|
|||
{
|
||||
super.clear();
|
||||
if (mFilterController != null)
|
||||
mFilterController.resetFilter();
|
||||
mFilterController.resetFilterAndParams();
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -363,8 +363,8 @@ public class SearchFragment extends BaseMwmFragment
|
|||
}, mToolbarController);
|
||||
if (savedInstanceState != null)
|
||||
mFilterController.onRestoreState(savedInstanceState);
|
||||
if (mInitialHotelsFilter != null || mInitialFilterParams != null)
|
||||
mFilterController.setFilterAndParams(mInitialHotelsFilter, mInitialFilterParams);
|
||||
mFilterController.setFilter(mInitialHotelsFilter);
|
||||
mFilterController.setFilterParams(mInitialFilterParams);
|
||||
mFilterController.updateFilterButtonsVisibility(mFilterController.isSatisfiedForSearch());
|
||||
|
||||
mSearchAdapter.registerAdapterDataObserver(new RecyclerView.AdapterDataObserver()
|
||||
|
@ -502,7 +502,7 @@ public class SearchFragment extends BaseMwmFragment
|
|||
}
|
||||
|
||||
if (mFilterController != null)
|
||||
mFilterController.resetFilter();
|
||||
mFilterController.resetFilterAndParams();
|
||||
|
||||
mToolbarController.deactivate();
|
||||
|
||||
|
@ -672,10 +672,7 @@ public class SearchFragment extends BaseMwmFragment
|
|||
{
|
||||
mFilterController.updateFilterButtonsVisibility(isHotel);
|
||||
if (!isHotel)
|
||||
{
|
||||
mFilterController.setFilterAndParams(null, null);
|
||||
mToolbarController.setFilterParams(null);
|
||||
}
|
||||
mFilterController.resetFilterAndParams();
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -697,8 +694,8 @@ public class SearchFragment extends BaseMwmFragment
|
|||
if (mFilterController == null)
|
||||
return;
|
||||
|
||||
mFilterController.setFilterAndParams(data.getParcelableExtra(FilterActivity.EXTRA_FILTER),
|
||||
data.getParcelableExtra(FilterActivity.EXTRA_FILTER_PARAMS));
|
||||
mFilterController.setFilter(data.getParcelableExtra(FilterActivity.EXTRA_FILTER));
|
||||
mFilterController.setFilterParams(data.getParcelableExtra(FilterActivity.EXTRA_FILTER_PARAMS));
|
||||
runSearch();
|
||||
break;
|
||||
}
|
||||
|
|
|
@ -132,18 +132,11 @@ public class SearchToolbarController extends ToolbarController
|
|||
updateButtons(true);
|
||||
}
|
||||
|
||||
public void setFilterParams(@Nullable BookingFilterParams params)
|
||||
public void setFilterParams(@NonNull BookingFilterParams params)
|
||||
{
|
||||
if (mChooseDatesChip == null)
|
||||
return;
|
||||
|
||||
if (params == null)
|
||||
{
|
||||
mChooseDatesChip.setText(R.string.date_picker_сhoose_dates_cta);
|
||||
mChosenDates = null;
|
||||
return;
|
||||
}
|
||||
|
||||
mChosenDates = new Pair<>(params.getCheckinMillisec(), params.getCheckoutMillisec());
|
||||
SimpleDateFormat dateFormater = new SimpleDateFormat(DAY_OF_MONTH_PATTERN,
|
||||
Locale.getDefault());
|
||||
|
@ -155,6 +148,15 @@ public class SearchToolbarController extends ToolbarController
|
|||
start, end));
|
||||
}
|
||||
|
||||
public void resetFilterParams()
|
||||
{
|
||||
if (mChooseDatesChip == null)
|
||||
return;
|
||||
|
||||
mChooseDatesChip.setText(R.string.date_picker_сhoose_dates_cta);
|
||||
mChosenDates = null;
|
||||
}
|
||||
|
||||
private void updateButtons(boolean queryEmpty)
|
||||
{
|
||||
UiUtils.showIf(supportsVoiceSearch() && queryEmpty && mVoiceInputSupported, mVoiceInput);
|
||||
|
|
Loading…
Add table
Reference in a new issue