[booking] return sorted vector of features

This commit is contained in:
Arsentiy Milchakov 2017-11-28 14:50:02 +03:00 committed by Ilya Grechuhin
parent 077cafe7b1
commit d7abb80100
2 changed files with 18 additions and 12 deletions

View file

@ -4,6 +4,10 @@
#include "platform/safe_callback.hpp"
#include "indexer/feature_decl.hpp"
#include <vector>
namespace search
{
class Results;
@ -15,7 +19,8 @@ namespace filter
{
namespace availability
{
using Results = platform::SafeCallback<void(search::Results const &results)>;
using Results = platform::SafeCallback<void(AvailabilityParams const & params,
std::vector<FeatureID> const & featuresSorted)>;
struct Params
{

View file

@ -3347,32 +3347,33 @@ void Framework::FilterSearchResultsOnBooking(booking::filter::availability::Para
{
using namespace booking::filter;
auto const & p = params.m_params;
auto const & cb = params.m_callback;
availability::internal::Params paramsInternal
{
params.m_params,
[this, cb, inViewport](search::Results const & results)
p,
[this, p, cb, inViewport](search::Results const & results)
{
if (results.GetCount() == 0)
return;
std::vector<FeatureID> features;
for (auto const & r : results)
{
features.push_back(r.GetFeatureID());
}
std::sort(features.begin(), features.end());
if (inViewport)
{
std::vector<FeatureID> features;
for (auto const & r : results)
{
features.push_back(r.GetFeatureID());
}
std::sort(features.begin(), features.end());
GetPlatform().RunTask(Platform::Thread::Gui, [this, features]()
{
m_searchMarks.SetPreparingState(features, false /* isPreparing */);
});
}
cb(results);
cb(p, features);
}
};