Skip to content

Commit

Permalink
Taby: skaner, wyszukiwarka i wiadomości (#310)
Browse files Browse the repository at this point in the history
  • Loading branch information
WezSieTato committed Dec 19, 2022
1 parent 4dddcde commit 4686d85
Show file tree
Hide file tree
Showing 59 changed files with 229 additions and 69 deletions.
22 changes: 18 additions & 4 deletions BuyPolish/Pola.xcodeproj/project.pbxproj
Original file line number Diff line number Diff line change
Expand Up @@ -120,7 +120,6 @@
84AB4C3A259CB1260008A6B2 /* OwnBrandContentViewControllerSnapshotTesting.swift in Sources */ = {isa = PBXBuildFile; fileRef = 84AB4C39259CB1260008A6B2 /* OwnBrandContentViewControllerSnapshotTesting.swift */; };
84B87FCA2344084E007A6BFF /* ScanCodeView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 84B87FC92344084E007A6BFF /* ScanCodeView.swift */; };
84BDC4A823EB774F00F462A0 /* MediaUploadRequestFactory.swift in Sources */ = {isa = PBXBuildFile; fileRef = 84BDC4A723EB774F00F462A0 /* MediaUploadRequestFactory.swift */; };
84CE3E6023BA895100FE8D66 /* AboutWebViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 84CE3E5F23BA895100FE8D66 /* AboutWebViewController.swift */; };
84CE3E6423BA982900FE8D66 /* Bundle+Additions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 84CE3E6323BA982900FE8D66 /* Bundle+Additions.swift */; };
84D887A1233669D800681C64 /* CompanyContentViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 84D887A0233669D800681C64 /* CompanyContentViewController.swift */; };
84D887A52337A4B300681C64 /* ResultContentViewControllerFactory.swift in Sources */ = {isa = PBXBuildFile; fileRef = 84D887A42337A4B300681C64 /* ResultContentViewControllerFactory.swift */; };
Expand Down Expand Up @@ -200,6 +199,9 @@
BDA76B5C21DE64AB003E9FD6 /* AnalyticsEventName.swift in Sources */ = {isa = PBXBuildFile; fileRef = BDA76B5B21DE64AB003E9FD6 /* AnalyticsEventName.swift */; };
BDA76B5E21DE64FD003E9FD6 /* AnalyticsParameters.swift in Sources */ = {isa = PBXBuildFile; fileRef = BDA76B5D21DE64FD003E9FD6 /* AnalyticsParameters.swift */; };
C0D829791F3D11A600902F79 /* capture_video_instruction.mov in Resources */ = {isa = PBXBuildFile; fileRef = C0D829781F3D11A600902F79 /* capture_video_instruction.mov */; };
D313237829154C5E00DEFB23 /* AnalyticsMainTab.swift in Sources */ = {isa = PBXBuildFile; fileRef = D313237729154C5E00DEFB23 /* AnalyticsMainTab.swift */; };
D317D189291B98F800FDFDB4 /* WebViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D317D188291B98F800FDFDB4 /* WebViewController.swift */; };
D317D18B291B99E200FDFDB4 /* WebView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D317D18A291B99E200FDFDB4 /* WebView.swift */; };
D3201C3E2675111C00E683EC /* CrashlitycsLogger.swift in Sources */ = {isa = PBXBuildFile; fileRef = D3201C3D2675111C00E683EC /* CrashlitycsLogger.swift */; };
D3201C462675136900E683EC /* LoggerRegistrant.swift in Sources */ = {isa = PBXBuildFile; fileRef = D3201C452675136900E683EC /* LoggerRegistrant.swift */; };
D3201C482675319C00E683EC /* AnalyticsRegistrant.swift in Sources */ = {isa = PBXBuildFile; fileRef = D3201C472675319C00E683EC /* AnalyticsRegistrant.swift */; };
Expand Down Expand Up @@ -227,6 +229,7 @@
D346F9C32607D76B00F11ABD /* lidl.json in Resources */ = {isa = PBXBuildFile; fileRef = D346F9C22607D76B00F11ABD /* lidl.json */; };
D346F9C42607D76B00F11ABD /* lidl.json in Resources */ = {isa = PBXBuildFile; fileRef = D346F9C22607D76B00F11ABD /* lidl.json */; };
D365D83826D03FF500DB946F /* GoogleService-Info.plist in Resources */ = {isa = PBXBuildFile; fileRef = D365D83726D03FF500DB946F /* GoogleService-Info.plist */; };
D3AF33D12913B72800201014 /* UITabBarItem+ImageSystemName.swift in Sources */ = {isa = PBXBuildFile; fileRef = D3AF33D02913B72800201014 /* UITabBarItem+ImageSystemName.swift */; };
EE6DCD82B12208A085E935F9 /* Pods_Pola_PolaTests.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 53F3B599F258259843E2755D /* Pods_Pola_PolaTests.framework */; };
/* End PBXBuildFile section */

Expand Down Expand Up @@ -364,7 +367,6 @@
84B1B366225F975A009FA909 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
84B87FC92344084E007A6BFF /* ScanCodeView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ScanCodeView.swift; sourceTree = "<group>"; };
84BDC4A723EB774F00F462A0 /* MediaUploadRequestFactory.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MediaUploadRequestFactory.swift; sourceTree = "<group>"; };
84CE3E5F23BA895100FE8D66 /* AboutWebViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AboutWebViewController.swift; sourceTree = "<group>"; };
84CE3E6323BA982900FE8D66 /* Bundle+Additions.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Bundle+Additions.swift"; sourceTree = "<group>"; };
84D8879E2336601700681C64 /* AltResultContentViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AltResultContentViewController.swift; sourceTree = "<group>"; };
84D887A0233669D800681C64 /* CompanyContentViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CompanyContentViewController.swift; sourceTree = "<group>"; };
Expand Down Expand Up @@ -438,6 +440,9 @@
BDA76B5D21DE64FD003E9FD6 /* AnalyticsParameters.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AnalyticsParameters.swift; sourceTree = "<group>"; };
C0D829781F3D11A600902F79 /* capture_video_instruction.mov */ = {isa = PBXFileReference; lastKnownFileType = video.quicktime; path = capture_video_instruction.mov; sourceTree = "<group>"; };
C62ECF2EDD7295D219A497A1 /* Pods-Pola-PolaUITests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Pola-PolaUITests.release.xcconfig"; path = "Pods/Target Support Files/Pods-Pola-PolaUITests/Pods-Pola-PolaUITests.release.xcconfig"; sourceTree = "<group>"; };
D313237729154C5E00DEFB23 /* AnalyticsMainTab.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AnalyticsMainTab.swift; sourceTree = "<group>"; };
D317D188291B98F800FDFDB4 /* WebViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = WebViewController.swift; sourceTree = "<group>"; };
D317D18A291B99E200FDFDB4 /* WebView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WebView.swift; sourceTree = "<group>"; };
D3201C3D2675111C00E683EC /* CrashlitycsLogger.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CrashlitycsLogger.swift; sourceTree = "<group>"; };
D3201C452675136900E683EC /* LoggerRegistrant.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LoggerRegistrant.swift; sourceTree = "<group>"; };
D3201C472675319C00E683EC /* AnalyticsRegistrant.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AnalyticsRegistrant.swift; sourceTree = "<group>"; };
Expand All @@ -463,6 +468,7 @@
D343F9A92792FAFD00065054 /* AutoMockable.generated.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AutoMockable.generated.swift; sourceTree = "<group>"; };
D346F9C22607D76B00F11ABD /* lidl.json */ = {isa = PBXFileReference; lastKnownFileType = text.json; path = lidl.json; sourceTree = "<group>"; };
D365D83726D03FF500DB946F /* GoogleService-Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = "GoogleService-Info.plist"; sourceTree = "<group>"; };
D3AF33D02913B72800201014 /* UITabBarItem+ImageSystemName.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "UITabBarItem+ImageSystemName.swift"; sourceTree = "<group>"; };
D3E3CA0C264085A4002979E1 /* Unit.xctestplan */ = {isa = PBXFileReference; lastKnownFileType = text; path = Unit.xctestplan; sourceTree = "<group>"; };
D3E3CA0E264085CB002979E1 /* UI.xctestplan */ = {isa = PBXFileReference; lastKnownFileType = text; path = UI.xctestplan; sourceTree = "<group>"; };
D3E3CA0F264085D8002979E1 /* Full.xctestplan */ = {isa = PBXFileReference; lastKnownFileType = text; path = Full.xctestplan; sourceTree = "<group>"; };
Expand Down Expand Up @@ -630,7 +636,6 @@
9EC3BC5623CDFA2500242B1E /* AboutFooterView.swift */,
9EC3BC5923CDFA2500242B1E /* AboutSingleCell.swift */,
84735A6923BB92C80053D1E5 /* AboutViewController.swift */,
84CE3E5F23BA895100FE8D66 /* AboutWebViewController.swift */,
);
path = About;
sourceTree = "<group>";
Expand Down Expand Up @@ -664,6 +669,8 @@
children = (
37B646DCA0870AD66E5EB92B /* Categories */,
9E7BE9442401503F0070BF8D /* ExtendedButton.swift */,
D317D18A291B99E200FDFDB4 /* WebView.swift */,
D317D188291B98F800FDFDB4 /* WebViewController.swift */,
);
path = Utilities;
sourceTree = "<group>";
Expand Down Expand Up @@ -698,6 +705,7 @@
8406E630233D6A6C00B7313C /* UIImage+Additions.swift */,
84AAEDDF230B49DD006CA7EB /* UILabel+Additions.swift */,
D34381A628E33DD6004E018B /* UINavigationViewController+WebView.swift */,
D3AF33D02913B72800201014 /* UITabBarItem+ImageSystemName.swift */,
841F7D9D235675A2007BE3F6 /* UIView+Additions.swift */,
9E35D7A924C627C000C63C11 /* UIViewController+Additions.swift */,
);
Expand Down Expand Up @@ -1000,6 +1008,7 @@
9E43AF79242BE5FF0093627B /* AnalyticsBarcodeSource.swift */,
BDA76B5B21DE64AB003E9FD6 /* AnalyticsEventName.swift */,
BDA76B5921DE6248003E9FD6 /* AnalyticsHelper.swift */,
D313237729154C5E00DEFB23 /* AnalyticsMainTab.swift */,
BDA76B5D21DE64FD003E9FD6 /* AnalyticsParameters.swift */,
8492DF80257E7CED00094624 /* AnalyticsProvider.swift */,
D3201C472675319C00E683EC /* AnalyticsRegistrant.swift */,
Expand Down Expand Up @@ -1675,18 +1684,21 @@
84AB4BAF2599E9BE0008A6B2 /* OwnBrandContentViewController.swift in Sources */,
D3201C512675380100E683EC /* ProductManagerRegistrant.swift in Sources */,
84AB4BB52599E9E50008A6B2 /* OwnBrandContentView.swift in Sources */,
D317D189291B98F800FDFDB4 /* WebViewController.swift in Sources */,
8477CFC923CE137D00C72542 /* AboutRow.swift in Sources */,
849E40CD24143DE5006E1B76 /* CapturedImageManager.swift in Sources */,
BDA76B5C21DE64AB003E9FD6 /* AnalyticsEventName.swift in Sources */,
84D887A1233669D800681C64 /* CompanyContentViewController.swift in Sources */,
D3AF33D12913B72800201014 /* UITabBarItem+ImageSystemName.swift in Sources */,
84A6A93425EDAAAE004199B9 /* AskForReport.swift in Sources */,
D3201C4B2675359900E683EC /* DependencyRegistrant.swift in Sources */,
84CE3E6023BA895100FE8D66 /* AboutWebViewController.swift in Sources */,
D313237829154C5E00DEFB23 /* AnalyticsMainTab.swift in Sources */,
6285A0082737F53100D19C88 /* NotificationManager.swift in Sources */,
849E50DB24A623A80064F269 /* AskForDonate.swift in Sources */,
84A6A93F25EDAE40004199B9 /* UIButton+ReportType.swift in Sources */,
9E43AF74242798780093627B /* ResultsView.swift in Sources */,
9EC3BC5B23CDFA2500242B1E /* AboutBaseCell.swift in Sources */,
D317D18B291B99E200FDFDB4 /* WebView.swift in Sources */,
9EC3BC4723CDF4FD00242B1E /* CardStackViewLayoutLayoutCollapsed.swift in Sources */,
84735A6423BB63B00053D1E5 /* AnalyticsAboutRow.swift in Sources */,
9E35D7AA24C627C000C63C11 /* UIViewController+Additions.swift in Sources */,
Expand Down Expand Up @@ -1961,6 +1973,7 @@
CODE_SIGN_IDENTITY = "iPhone Distribution";
CODE_SIGN_STYLE = Manual;
DEVELOPMENT_TEAM = 9NBWKG2G3X;
"DEVELOPMENT_TEAM[sdk=iphoneos*]" = 9NBWKG2G3X;
ENABLE_BITCODE = NO;
FRAMEWORK_SEARCH_PATHS = (
"$(inherited)",
Expand All @@ -1976,6 +1989,7 @@
PRODUCT_BUNDLE_IDENTIFIER = "com.kj.$(PRODUCT_NAME:rfc1034identifier)";
PRODUCT_NAME = "$(TARGET_NAME)";
PROVISIONING_PROFILE_SPECIFIER = "match AppStore com.kj.Pola";
"PROVISIONING_PROFILE_SPECIFIER[sdk=iphoneos*]" = "match AppStore com.kj.Pola";
SWIFT_TREAT_WARNINGS_AS_ERRORS = YES;
SWIFT_VERSION = 5.0;
TARGETED_DEVICE_FAMILY = 1;
Expand Down
5 changes: 3 additions & 2 deletions BuyPolish/Pola/AppDelegate.swift
Original file line number Diff line number Diff line change
Expand Up @@ -8,11 +8,12 @@ class AppDelegate: UIResponder, UIApplicationDelegate {
private var notificationProvider: NotificationProvider?

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]? = nil) -> Bool {
DI.container.resolve(AnalyticsProvider.self)!.configure()
let analyticsProvider = DI.container.resolve(AnalyticsProvider.self)!
analyticsProvider.configure()
applyAppearance()

window = UIWindow(frame: UIScreen.main.bounds)
window?.rootViewController = RootViewController()
window?.rootViewController = RootViewController(analyticsProvider: analyticsProvider)
window?.backgroundColor = R.color.backgroundWindowColor()
window?.makeKeyAndVisible()

Expand Down
1 change: 0 additions & 1 deletion BuyPolish/Pola/Manager/Analytics/AnalyticsAboutRow.swift
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@ import Foundation
enum AnalyticsAboutRow: String {
case menu = "About Menu"
case aboutPola = "O aplikacji Pola"
case textSearch = "Wyszukiwarka tekstowa"
case instructionSet = "Metodologia"
case aboutKJ = "O Klubie Jagiellońskim"
case team = "Zespół"
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import Foundation

enum AnalyticsBarcodeSource: String {
enum AnalyticsBarcodeSource: String, Encodable {
case camera = "Camera"
case keyboard = "Keyboard"
case photos = "Photos"
Expand Down
1 change: 1 addition & 0 deletions BuyPolish/Pola/Manager/Analytics/AnalyticsEventName.swift
Original file line number Diff line number Diff line change
Expand Up @@ -12,4 +12,5 @@ enum AnalyticsEventName: String {
case polasFriends = "polas_friends"
case openGallery = "open_gallery"
case barcodeNotFoundOnPhoto = "barcode_not_found_on_photo"
case mainTabChanged = "main_tab_changed"
}
6 changes: 5 additions & 1 deletion BuyPolish/Pola/Manager/Analytics/AnalyticsHelper.swift
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ final class AnalyticsHelper {
logEvent(name: .scanCode,
parameters:
AnalyticsScanCodeParameters(code: barcode,
source: type.rawValue))
source: type))
}

func received(productResult: ScanResult) {
Expand Down Expand Up @@ -67,6 +67,10 @@ final class AnalyticsHelper {
logEvent(name: .aboutPola)
}

func tabChanged(_ newTab: AnalyticsMainTab) {
logEvent(name: .mainTabChanged, parameters: AnalyticsMainTabParameters(tab: newTab))
}

private func reportParameters(barcode: String?) -> AnalyticsReportParameters {
return AnalyticsReportParameters(code: barcode ?? "No Code")
}
Expand Down
7 changes: 7 additions & 0 deletions BuyPolish/Pola/Manager/Analytics/AnalyticsMainTab.swift
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
import Foundation

enum AnalyticsMainTab: String, Encodable {
case scanner = "Scanner"
case search = "Search"
case news = "News_feed"
}
6 changes: 5 additions & 1 deletion BuyPolish/Pola/Manager/Analytics/AnalyticsParameters.swift
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ protocol AnalyticsParameters: Encodable {}

struct AnalyticsScanCodeParameters: AnalyticsParameters {
let code: String
let source: String
let source: AnalyticsBarcodeSource
}

struct AnalyticsProductResultParameters: AnalyticsParameters {
Expand All @@ -20,3 +20,7 @@ struct AnalyticsReportParameters: AnalyticsParameters {
struct AnalyticsAboutParameters: AnalyticsParameters {
let item: String
}

struct AnalyticsMainTabParameters: AnalyticsParameters {
let tab: AnalyticsMainTab
}
4 changes: 2 additions & 2 deletions BuyPolish/Pola/SupportingFiles/Pola-Info.plist
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@
<key>CFBundlePackageType</key>
<string>APPL</string>
<key>CFBundleShortVersionString</key>
<string>1.10.1</string>
<string>2.0.0</string>
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleURLTypes</key>
Expand All @@ -32,7 +32,7 @@
</dict>
</array>
<key>CFBundleVersion</key>
<string>71</string>
<string>73</string>
<key>GOOGLE_ANALYTICS_REGISTRATION_WITH_AD_NETWORK_ENABLED</key>
<false/>
<key>ITSAppUsesNonExemptEncryption</key>
Expand Down
5 changes: 4 additions & 1 deletion BuyPolish/Pola/SupportingFiles/pl.lproj/Localizable.strings
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,6 @@
"Progress Points" = "%i pkt.";
"About Pola application" = "O APLIKACJI POLA";
"InstructionSet" = "INSTRUKCJA OBSŁUGI";
"Text Search" = "WYSZUKIWARKA TEKSTOWA";
"About KJ" = "O KLUBIE JAGIELLOŃSKIM";
"Team" = "ZESPÓŁ";
"Partners" = "PARTNERZY";
Expand Down Expand Up @@ -81,3 +80,7 @@
"CaptureVideo.Thanks" = "Dziękujemy";
"CaptureVideo.Failed" = "Wystąpił błąd";
"Accessibility.Gallery" = "Galeria";

"MainTab.Scanner" = "Skaner kodów";
"MainTab.Search" = "Wyszukiwarka";
"MainTab.News" = "Wiadomości";
Original file line number Diff line number Diff line change
Expand Up @@ -143,7 +143,7 @@ final class AboutViewController: UITableViewController {

private func performLinkAction(title: String, url: String, openInternal: Bool) {
if openInternal {
let vc = AboutWebViewController(url: url, title: title)
let vc = WebViewController(url: url, title: title)
navigationController?.pushViewController(vc, animated: true)
} else {
if let url = URL(string: url) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,9 +9,6 @@ final class AboutRowsFactory {
AboutRow(title: strings.aboutPolaApplication(),
analyticsName: .aboutPola,
action: .link("https://www.pola-app.pl/m/about", true)),
AboutRow(title: strings.textSearch(),
analyticsName: .textSearch,
action: .link("https://www.pola-app.pl/", false)),
AboutRow(title: strings.instructionSet(),
analyticsName: .instructionSet,
action: .link("https://www.pola-app.pl/m/method", true)),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -51,8 +51,8 @@ final class CompanyContentViewController: UIViewController {

@objc
private func friendTapped() {
let webViewController = AboutWebViewController(url: "https://www.pola-app.pl/m/friends",
title: R.string.localizable.polaSFriends())
let webViewController = WebViewController(url: "https://www.pola-app.pl/m/friends",
title: R.string.localizable.polaSFriends())
webViewController.addCloseButton()
let navigationController = UINavigationController.makeForWebView(rootViewController: webViewController)
present(navigationController, animated: true, completion: nil)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -122,7 +122,7 @@ final class ScanResultViewController: UIViewController {
}

func setCollapsedCard() {
if let scanResult = self.scanResult {
if let scanResult = scanResult {
castedView.titleLabel.numberOfLines = 1
castedView.heartImageView.isHidden = scanResult.isNotFriend
castedView.setNeedsLayout()
Expand All @@ -143,8 +143,8 @@ final class ScanResultViewController: UIViewController {
@objc
func polasFriendsButtonTapped() {
analytics.polasFriendsOpened()
let vc = AboutWebViewController(url: "https://www.pola-app.pl/m/friends",
title: R.string.localizable.polaSFriends())
let vc = WebViewController(url: "https://www.pola-app.pl/m/friends",
title: R.string.localizable.polaSFriends())
vc.addCloseButton()
let nvc = UINavigationController.makeForWebView(rootViewController: vc)
present(nvc, animated: true, completion: nil)
Expand Down
1 change: 1 addition & 0 deletions BuyPolish/Pola/UI/ProductSearch/ScanCode/ResultsView.swift
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ final class ResultsView: UIView {
init(frame: CGRect, stackView: CardStackView) {
self.stackView = stackView
super.init(frame: frame)
clipsToBounds = true

infoTextLabel.text = R.string.localizable.scanBarcode()
infoTextLabel.numberOfLines = 4
Expand Down
Loading

0 comments on commit 4686d85

Please sign in to comment.