blob: 2e0031697b0ecdcc0ff37354cf1bdab96bd4ca73 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
|
#import "MWMSearchCategoriesManager.h"
#import <MyTrackerSDK/MRMyTracker.h>
#import "AppInfo.h"
#import "MWMSearchCategoryCell.h"
#import "Statistics.h"
#import "SwiftBridge.h"
#include "Framework.h"
#include "base/macros.hpp"
extern NSString * const kCianCategory = @"cian";
@implementation MWMSearchCategoriesManager
{
vector<string> m_categories;
}
- (instancetype)init
{
self = [super init];
if (self)
m_categories = GetFramework().GetDisplayedCategories().GetKeys();
return self;
}
- (void)attachCell:(MWMSearchTabbedCollectionViewCell *)cell
{
[cell removeNoResultsView];
UITableView * tableView = cell.tableView;
tableView.estimatedRowHeight = 44.;
tableView.rowHeight = UITableViewAutomaticDimension;
tableView.alpha = 1.0;
tableView.hidden = NO;
tableView.delegate = self;
tableView.dataSource = self;
[tableView registerWithCellClass:[MWMSearchCategoryCell class]];
[tableView reloadData];
}
#pragma mark - UITableViewDataSource
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
return m_categories.size();
}
- (UITableViewCell *)tableView:(UITableView *)tableView
cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
auto tCell = static_cast<MWMSearchCategoryCell *>([tableView
dequeueReusableCellWithCellClass:[MWMSearchCategoryCell class]
indexPath:indexPath]);
[tCell setCategory:@(m_categories[indexPath.row].c_str())];
return tCell;
}
#pragma mark - UITableViewDelegate
- (void)tableView:(UITableView *)tableView
willDisplayCell:(UITableViewCell *)cell
forRowAtIndexPath:(NSIndexPath *)indexPath
{
NSString * string = @(m_categories[indexPath.row].c_str());
if ([string isEqualToString:kCianCategory])
{
[MRMyTracker trackEventWithName:@"Search_SponsoredCategory_shown_Cian"];
[Statistics logEvent:kStatSearchSponsoredShow withParameters:@{kStatProvider : kStatCian}];
}
}
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
NSString * string = @(m_categories[indexPath.row].c_str());
[Statistics logEvent:kStatEventName(kStatSearch, kStatSelectResult)
withParameters:@{kStatValue : string, kStatScreen : kStatCategories}];
id<MWMSearchTabbedViewProtocol> delegate = self.delegate;
[delegate searchText:[L(string) stringByAppendingString:@" "]
forInputLocale:[[AppInfo sharedInfo] languageId]];
[delegate dismissKeyboard];
if ([string isEqualToString:kCianCategory])
{
delegate.state = MWMSearchManagerStateMapSearch;
[MRMyTracker trackEventWithName:@"Search_SponsoredCategory_selected_Cian"];
[Statistics logEvent:kStatSearchSponsoredSelect withParameters:@{kStatProvider : kStatCian}];
}
}
@end
|