diff --git a/Core/Pixel.swift b/Core/Pixel.swift index 95b4c7b3b4..63c86b2783 100644 --- a/Core/Pixel.swift +++ b/Core/Pixel.swift @@ -83,7 +83,40 @@ public enum PixelName: String { case tabBarForwardPressed = "mt_fw" case tabBarBookmarksPressed = "mt_bm" case tabBarTabSwitcherPressed = "mt_tb" - + + case feedbackPositive = "mfbs_positive_submit" + case feedbackNegativePrefix = "mfbs_negative_" + + case feedbackNegativeBrokenSites = "mfbs_negative_brokenSites_submit" + case feedbackNegativeOther = "mfbs_negative_other_submit" + + case feedbackNegativeBrowserFeaturesNav = "mfbs_negative_browserFeatures_navigation" + case feedbackNegativeBrowserFeaturesTabs = "mfbs_negative_browserFeatures_tabs" + case feedbackNegativeBrowserFeaturesAds = "mfbs_negative_browserFeatures_ads" + case feedbackNegativeBrowserFeaturesVideos = "mfbs_negative_browserFeatures_videos" + case feedbackNegativeBrowserFeaturesImages = "mfbs_negative_browserFeatures_images" + case feedbackNegativeBrowserFeaturesBookmarks = "mfbs_negative_browserFeatures_bookmarks" + case feedbackNegativeBrowserFeaturesOther = "mfbs_negative_browserFeatures_other" + + case feedbackNegativeBadResultsTechnical = "mfbs_negative_badResults_technical" + case feedbackNegativeBadResultsLayout = "mfbs_negative_badResults_layout" + case feedbackNegativeBadResultsSpeed = "mfbs_negative_badResults_speed" + case feedbackNegativeBadResultsLangOrRegion = "mfbs_negative_badResults_langRegion" + case feedbackNegativeBadResultsAutocomplete = "mfbs_negative_badResults_autocomplete" + case feedbackNegativeBadResultsOther = "mfbs_negative_badResults_other" + + case feedbackNegativeCustomizationHome = "mfbs_negative_customization_home" + case feedbackNegativeCustomizationTabs = "mfbs_negative_customization_tabs" + case feedbackNegativeCustomizationUI = "mfbs_negative_customization_ui" + case feedbackNegativeCustomizationWhatCleared = "mfbs_negative_customization_whichDataCleared" + case feedbackNegativeCustomizationWhenCleared = "mfbs_negative_customization_whenDataCleared" + case feedbackNegativeCustomizationBookmarks = "mfbs_negative_customization_bookmarks" + case feedbackNegativeCustomizationOther = "mfbs_negative_customization_other" + + case feedbackNegativePerformanceSlow = "mfbs_negative_performance_slow" + case feedbackNegativePerformanceCrash = "mfbs_negative_performance_crash" + case feedbackNegativePerformanceVideo = "mfbs_negative_performance_video" + case feedbackNegativePerformanceOther = "mfbs_negative_performance_other" } public class Pixel { @@ -113,7 +146,6 @@ public class Pixel { withAdditionalParameters params: [String: String?] = [:], withHeaders headers: HTTPHeaders = APIHeaders().defaultHeaders, onComplete: @escaping (Error?) -> Void = {_ in }) { - let formFactor = deviceType == .pad ? Constants.tablet : Constants.phone let url = appUrls .pixelUrl(forPixelNamed: pixel.rawValue, formFactor: formFactor) diff --git a/DuckDuckGo.xcodeproj/project.pbxproj b/DuckDuckGo.xcodeproj/project.pbxproj index a06ec59092..9b4ec856a7 100644 --- a/DuckDuckGo.xcodeproj/project.pbxproj +++ b/DuckDuckGo.xcodeproj/project.pbxproj @@ -17,7 +17,7 @@ 830C37631F6C482E00E317A7 /* TermsOfServiceListParser.swift in Sources */ = {isa = PBXBuildFile; fileRef = 830C37621F6C482E00E317A7 /* TermsOfServiceListParser.swift */; }; 830C37671F6C4A6200E317A7 /* TermsOfServiceParserTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 830C37651F6C4A1D00E317A7 /* TermsOfServiceParserTests.swift */; }; 83134D7D20E2D725006CE65D /* FeedbackSender.swift in Sources */ = {isa = PBXBuildFile; fileRef = 83134D7C20E2D725006CE65D /* FeedbackSender.swift */; }; - 83134D8420E2E090006CE65D /* FeedbackModelTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 83134D8020E2E034006CE65D /* FeedbackModelTests.swift */; }; + 83134D8420E2E090006CE65D /* SiteFeedbackModelTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 83134D8020E2E034006CE65D /* SiteFeedbackModelTests.swift */; }; 8328AAAF212A3AE900293140 /* DataChecksumExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8328AAAE212A3AE900293140 /* DataChecksumExtension.swift */; }; 8328AAB4212A3D7C00293140 /* BloomFilter.hpp in Headers */ = {isa = PBXBuildFile; fileRef = 8328AAB2212A3D7C00293140 /* BloomFilter.hpp */; }; 8328AAB5212A3D7C00293140 /* BloomFilter.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8328AAB3212A3D7C00293140 /* BloomFilter.cpp */; }; @@ -59,14 +59,14 @@ 8390446F20BDCE10006461CD /* ShareViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8390446E20BDCE10006461CD /* ShareViewController.swift */; }; 8390447220BDCE10006461CD /* MainInterface.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 8390447020BDCE10006461CD /* MainInterface.storyboard */; }; 8390447620BDCE10006461CD /* ShareExtension.appex in Embed App Extensions */ = {isa = PBXBuildFile; fileRef = 8390446C20BDCE10006461CD /* ShareExtension.appex */; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; }; - 839F46B620DD9D31003B8A66 /* FeedbackViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 839F46B520DD9D31003B8A66 /* FeedbackViewController.swift */; }; + 839F46B620DD9D31003B8A66 /* SiteFeedbackViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 839F46B520DD9D31003B8A66 /* SiteFeedbackViewController.swift */; }; 83A23D6320DC330000051F39 /* Feedback.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 83A23D6220DC330000051F39 /* Feedback.storyboard */; }; 83B8BDAF20AB14A70076D6A1 /* APIHeadersTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 83B8BDAD20AB0DA90076D6A1 /* APIHeadersTests.swift */; }; 83BE9BC3215D69C1009844D9 /* AppConfigurationFetch.swift in Sources */ = {isa = PBXBuildFile; fileRef = 83BE9BC2215D69C1009844D9 /* AppConfigurationFetch.swift */; }; 83C05D06212C77D80068712A /* BloomFilterWrapperTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 83C05D04212C74600068712A /* BloomFilterWrapperTest.swift */; }; 83C389CC212D818500C11612 /* CommonCrypto.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8328AABA212ADAD100293140 /* CommonCrypto.framework */; }; 83D306A41F6D500B00ED7CE2 /* tosdr.json in Resources */ = {isa = PBXBuildFile; fileRef = 83D306A31F6D500B00ED7CE2 /* tosdr.json */; }; - 83D4A73720E1272F003A7A6D /* FeedbackModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 83D4A73620E1272F003A7A6D /* FeedbackModel.swift */; }; + 83D4A73720E1272F003A7A6D /* SiteFeedbackModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 83D4A73620E1272F003A7A6D /* SiteFeedbackModel.swift */; }; 83DBCA7B1F7BBB5000DFD170 /* TopSitesReport.swift in Sources */ = {isa = PBXBuildFile; fileRef = 83DBCA7A1F7BBB5000DFD170 /* TopSitesReport.swift */; }; 83DBCA841F7BBB7E00DFD170 /* top_sites.json in Resources */ = {isa = PBXBuildFile; fileRef = 83DBCA821F7BBB7E00DFD170 /* top_sites.json */; }; 83EDCC411F86B89C005CDFCD /* StatisticsLoaderTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 83EDCC3F1F86B895005CDFCD /* StatisticsLoaderTests.swift */; }; @@ -101,7 +101,6 @@ 851B1286221FE756004781BC /* VariantTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 851B1284221FE716004781BC /* VariantTests.swift */; }; 851B128822200575004781BC /* Onboarding.swift in Sources */ = {isa = PBXBuildFile; fileRef = 851B128722200575004781BC /* Onboarding.swift */; }; 851B128A22204800004781BC /* OnboardingSummary.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 851B128922204800004781BC /* OnboardingSummary.storyboard */; }; - 851B128C2220483A004781BC /* OnboardingSummaryViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 851B128B2220483A004781BC /* OnboardingSummaryViewController.swift */; }; 851B129622242D94004781BC /* HomeScreenTips.swift in Sources */ = {isa = PBXBuildFile; fileRef = 851B129522242D94004781BC /* HomeScreenTips.swift */; }; 851B129822242E2D004781BC /* HomeViewController+HomeScreenDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 851B129722242E2D004781BC /* HomeViewController+HomeScreenDelegate.swift */; }; 851B129A22242E89004781BC /* ContextualTipsStorage.swift in Sources */ = {isa = PBXBuildFile; fileRef = 851B129922242E89004781BC /* ContextualTipsStorage.swift */; }; @@ -272,16 +271,28 @@ 85FAAE66214EFE59006AD5DA /* EmbeddedPrevalenceStoreTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 85FAAE65214EFE59006AD5DA /* EmbeddedPrevalenceStoreTests.swift */; }; 8C4724502217A14B004C9B2D /* TabViewControllerLongPressBookmarkExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8C47244F2217A14B004C9B2D /* TabViewControllerLongPressBookmarkExtension.swift */; }; 8C4838B5221C8F7F008A6739 /* GestureToolbarButton.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8C4838B4221C8F7F008A6739 /* GestureToolbarButton.swift */; }; + 980891A222369ADB00313A70 /* FeedbackUserText.swift in Sources */ = {isa = PBXBuildFile; fileRef = 980891A122369ADB00313A70 /* FeedbackUserText.swift */; }; + 980891A32237146B00313A70 /* Feedback.swift in Sources */ = {isa = PBXBuildFile; fileRef = 982E562D222C39F8008D861B /* Feedback.swift */; }; + 980891A52237D4F500313A70 /* FeedbackNavigator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 980891A42237D4F500313A70 /* FeedbackNavigator.swift */; }; + 980891A72237D5D800313A70 /* FeedbackPresenter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 980891A62237D5D800313A70 /* FeedbackPresenter.swift */; }; + 980891A92238504B00313A70 /* UILabelExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 980891A82238504B00313A70 /* UILabelExtension.swift */; }; 9817C9C321EF594700884F65 /* AutoClear.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9817C9C221EF594700884F65 /* AutoClear.swift */; }; 981FED692201FE69008488D7 /* AutoClearSettingsScreenTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 981FED682201FE69008488D7 /* AutoClearSettingsScreenTests.swift */; }; 981FED6E22025151008488D7 /* BlankSnapshotViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 981FED6C22025151008488D7 /* BlankSnapshotViewController.swift */; }; 981FED712202519C008488D7 /* BlankSnapshot.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 981FED702202519C008488D7 /* BlankSnapshot.storyboard */; }; 981FED7422046017008488D7 /* AutoClearTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 981FED7322046017008488D7 /* AutoClearTests.swift */; }; 981FED76220464EF008488D7 /* AutoClearSettingsModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 981FED75220464EF008488D7 /* AutoClearSettingsModel.swift */; }; + 9820FF502244FECC008D4782 /* UIScrollViewExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9820FF4F2244FECC008D4782 /* UIScrollViewExtension.swift */; }; + 982E5630222C3D5B008D861B /* FeedbackPickerViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 982E562F222C3D5B008D861B /* FeedbackPickerViewController.swift */; }; + 9838059F2228208E00385F1A /* PositiveFeedbackViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9838059E2228208E00385F1A /* PositiveFeedbackViewController.swift */; }; + 984D60B2222A1284003B9E3B /* FeedbackFormViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 984D60B1222A1284003B9E3B /* FeedbackFormViewController.swift */; }; 9874F9EE2187AFCE00CAF33D /* Themable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9874F9ED2187AFCE00CAF33D /* Themable.swift */; }; + 9888F77B2224980500C46159 /* FeedbackViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9888F77A2224980500C46159 /* FeedbackViewController.swift */; }; 98B31290218CCB2200E54DE1 /* MockDependencyProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = 98B3128F218CCB2200E54DE1 /* MockDependencyProvider.swift */; }; 98B31292218CCB8C00E54DE1 /* AppDependencyProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = 98B31291218CCB8C00E54DE1 /* AppDependencyProvider.swift */; }; + 98DA6B3322243CC3006EA9EB /* Feedback.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 98DA6B3222243CC3006EA9EB /* Feedback.xcassets */; }; 98DA6ECA2181E41F00E65433 /* ThemeManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 98DA6EC92181E41F00E65433 /* ThemeManager.swift */; }; + 98E888F2223FCC4A00B608A4 /* OnboardingSummaryViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 851B128B2220483A004781BC /* OnboardingSummaryViewController.swift */; }; 98EA2C3C218B9AAD0023E1DC /* ThemeManagerTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 98EA2C3B218B9AAD0023E1DC /* ThemeManagerTests.swift */; }; 98EA2C41218BB5400023E1DC /* SettingsViewControllerTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 98EA2C40218BB5400023E1DC /* SettingsViewControllerTests.swift */; }; 98EF177D21837E35006750C1 /* new_tab_dark.json in Resources */ = {isa = PBXBuildFile; fileRef = 98EF177C21837E35006750C1 /* new_tab_dark.json */; }; @@ -548,7 +559,7 @@ 830C37621F6C482E00E317A7 /* TermsOfServiceListParser.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TermsOfServiceListParser.swift; sourceTree = ""; }; 830C37651F6C4A1D00E317A7 /* TermsOfServiceParserTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TermsOfServiceParserTests.swift; sourceTree = ""; }; 83134D7C20E2D725006CE65D /* FeedbackSender.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FeedbackSender.swift; sourceTree = ""; }; - 83134D8020E2E034006CE65D /* FeedbackModelTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FeedbackModelTests.swift; sourceTree = ""; }; + 83134D8020E2E034006CE65D /* SiteFeedbackModelTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SiteFeedbackModelTests.swift; sourceTree = ""; }; 8325A1201F68AFD900FF31B5 /* README.md */ = {isa = PBXFileReference; lastKnownFileType = net.daringfireball.markdown; path = README.md; sourceTree = ""; }; 8328AAAE212A3AE900293140 /* DataChecksumExtension.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DataChecksumExtension.swift; sourceTree = ""; }; 8328AAB2212A3D7C00293140 /* BloomFilter.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = BloomFilter.hpp; path = submodules/bloom_cpp/src/BloomFilter.hpp; sourceTree = SOURCE_ROOT; }; @@ -596,13 +607,13 @@ 8390446E20BDCE10006461CD /* ShareViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ShareViewController.swift; sourceTree = ""; }; 8390447120BDCE10006461CD /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/MainInterface.storyboard; sourceTree = ""; }; 8390447320BDCE10006461CD /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - 839F46B520DD9D31003B8A66 /* FeedbackViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FeedbackViewController.swift; sourceTree = ""; }; + 839F46B520DD9D31003B8A66 /* SiteFeedbackViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SiteFeedbackViewController.swift; sourceTree = ""; }; 83A23D6220DC330000051F39 /* Feedback.storyboard */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; path = Feedback.storyboard; sourceTree = ""; }; 83B8BDAD20AB0DA90076D6A1 /* APIHeadersTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = APIHeadersTests.swift; sourceTree = ""; }; 83BE9BC2215D69C1009844D9 /* AppConfigurationFetch.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppConfigurationFetch.swift; sourceTree = ""; }; 83C05D04212C74600068712A /* BloomFilterWrapperTest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BloomFilterWrapperTest.swift; sourceTree = ""; }; 83D306A31F6D500B00ED7CE2 /* tosdr.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = tosdr.json; sourceTree = ""; }; - 83D4A73620E1272F003A7A6D /* FeedbackModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FeedbackModel.swift; sourceTree = ""; }; + 83D4A73620E1272F003A7A6D /* SiteFeedbackModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SiteFeedbackModel.swift; sourceTree = ""; }; 83DBCA781F7BBB5000DFD170 /* TopSitesReport.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = TopSitesReport.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; 83DBCA7A1F7BBB5000DFD170 /* TopSitesReport.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TopSitesReport.swift; sourceTree = ""; }; 83DBCA7C1F7BBB5000DFD170 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; @@ -812,15 +823,26 @@ 85FAAE65214EFE59006AD5DA /* EmbeddedPrevalenceStoreTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EmbeddedPrevalenceStoreTests.swift; sourceTree = ""; }; 8C47244F2217A14B004C9B2D /* TabViewControllerLongPressBookmarkExtension.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TabViewControllerLongPressBookmarkExtension.swift; sourceTree = ""; }; 8C4838B4221C8F7F008A6739 /* GestureToolbarButton.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GestureToolbarButton.swift; sourceTree = ""; }; + 980891A122369ADB00313A70 /* FeedbackUserText.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FeedbackUserText.swift; sourceTree = ""; }; + 980891A42237D4F500313A70 /* FeedbackNavigator.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FeedbackNavigator.swift; sourceTree = ""; }; + 980891A62237D5D800313A70 /* FeedbackPresenter.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FeedbackPresenter.swift; sourceTree = ""; }; + 980891A82238504B00313A70 /* UILabelExtension.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UILabelExtension.swift; sourceTree = ""; }; 9817C9C221EF594700884F65 /* AutoClear.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AutoClear.swift; sourceTree = ""; }; 981FED682201FE69008488D7 /* AutoClearSettingsScreenTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AutoClearSettingsScreenTests.swift; sourceTree = ""; }; 981FED6C22025151008488D7 /* BlankSnapshotViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BlankSnapshotViewController.swift; sourceTree = ""; }; 981FED702202519C008488D7 /* BlankSnapshot.storyboard */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; path = BlankSnapshot.storyboard; sourceTree = ""; }; 981FED7322046017008488D7 /* AutoClearTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AutoClearTests.swift; sourceTree = ""; }; 981FED75220464EF008488D7 /* AutoClearSettingsModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AutoClearSettingsModel.swift; sourceTree = ""; }; + 9820FF4F2244FECC008D4782 /* UIScrollViewExtension.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UIScrollViewExtension.swift; sourceTree = ""; }; + 982E562D222C39F8008D861B /* Feedback.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Feedback.swift; sourceTree = ""; }; + 982E562F222C3D5B008D861B /* FeedbackPickerViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FeedbackPickerViewController.swift; sourceTree = ""; }; + 9838059E2228208E00385F1A /* PositiveFeedbackViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PositiveFeedbackViewController.swift; sourceTree = ""; }; + 984D60B1222A1284003B9E3B /* FeedbackFormViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FeedbackFormViewController.swift; sourceTree = ""; }; 9874F9ED2187AFCE00CAF33D /* Themable.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Themable.swift; sourceTree = ""; }; + 9888F77A2224980500C46159 /* FeedbackViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FeedbackViewController.swift; sourceTree = ""; }; 98B3128F218CCB2200E54DE1 /* MockDependencyProvider.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MockDependencyProvider.swift; sourceTree = ""; }; 98B31291218CCB8C00E54DE1 /* AppDependencyProvider.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDependencyProvider.swift; sourceTree = ""; }; + 98DA6B3222243CC3006EA9EB /* Feedback.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Feedback.xcassets; sourceTree = ""; }; 98DA6EC92181E41F00E65433 /* ThemeManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ThemeManager.swift; sourceTree = ""; }; 98EA2C3B218B9AAD0023E1DC /* ThemeManagerTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ThemeManagerTests.swift; sourceTree = ""; }; 98EA2C40218BB5400023E1DC /* SettingsViewControllerTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SettingsViewControllerTests.swift; sourceTree = ""; }; @@ -1128,7 +1150,7 @@ 83134D7F20E2E013006CE65D /* Feedback */ = { isa = PBXGroup; children = ( - 83134D8020E2E034006CE65D /* FeedbackModelTests.swift */, + 83134D8020E2E034006CE65D /* SiteFeedbackModelTests.swift */, 8528AE7D212EF5FF00D0BD74 /* AppRatingPromptTests.swift */, 8528AE82212FF91A00D0BD74 /* AppRatingPromptStorageTests.swift */, ); @@ -1266,6 +1288,7 @@ children = ( 8528AE7A212EF49200D0BD74 /* AppStore */, 83D4A73920E2455B003A7A6D /* API */, + 982E562C222C39E2008D861B /* Model */, 83D4A73820E2454D003A7A6D /* UI */, ); name = Feedback; @@ -1274,9 +1297,16 @@ 83D4A73820E2454D003A7A6D /* UI */ = { isa = PBXGroup; children = ( + 98DA6B3222243CC3006EA9EB /* Feedback.xcassets */, 83A23D6220DC330000051F39 /* Feedback.storyboard */, - 839F46B520DD9D31003B8A66 /* FeedbackViewController.swift */, - 83D4A73620E1272F003A7A6D /* FeedbackModel.swift */, + 839F46B520DD9D31003B8A66 /* SiteFeedbackViewController.swift */, + 83D4A73620E1272F003A7A6D /* SiteFeedbackModel.swift */, + 9888F77A2224980500C46159 /* FeedbackViewController.swift */, + 9838059E2228208E00385F1A /* PositiveFeedbackViewController.swift */, + 984D60B1222A1284003B9E3B /* FeedbackFormViewController.swift */, + 982E562F222C3D5B008D861B /* FeedbackPickerViewController.swift */, + 980891A42237D4F500313A70 /* FeedbackNavigator.swift */, + 980891A62237D5D800313A70 /* FeedbackPresenter.swift */, ); name = UI; sourceTree = ""; @@ -1695,6 +1725,14 @@ name = AutoClear; sourceTree = ""; }; + 982E562C222C39E2008D861B /* Model */ = { + isa = PBXGroup; + children = ( + 982E562D222C39F8008D861B /* Feedback.swift */, + ); + name = Model; + sourceTree = ""; + }; 98EA2C3A218B9A880023E1DC /* Themes */ = { isa = PBXGroup; children = ( @@ -2393,10 +2431,13 @@ 83004E832193E14C00DA013C /* UIAlertControllerExtension.swift */, F1B745211E549D550072547E /* UIColorExtension.swift */, F194FAEC1F14E2B3009B4DF8 /* UIFontExtension.swift */, + 980891A82238504B00313A70 /* UILabelExtension.swift */, F143C32C1E4A9A4800CFDE3A /* UIViewControllerExtension.swift */, F1DE78591E5CD2A70058895A /* UIViewExtension.swift */, + 9820FF4F2244FECC008D4782 /* UIScrollViewExtension.swift */, F1134EE11F4233A200B73467 /* UIViewToastExtension.swift */, F1F5337B1F26A9EF00D80D4F /* UserText.swift */, + 980891A122369ADB00313A70 /* FeedbackUserText.swift */, 98F78B8D22419093007CACF4 /* ThemableNavigationController.swift */, ); name = UserInterface; @@ -2880,6 +2921,7 @@ 8563A0381F8E54F100F04442 /* Tab.storyboard in Resources */, 85371D242121B9D500920548 /* new_tab.json in Resources */, F1A169F31F3B2A8A00BE3E3B /* FlamesAnimation.xcassets in Resources */, + 98DA6B3322243CC3006EA9EB /* Feedback.xcassets in Resources */, F1E4A4471EE894CD006F2EAE /* Autocomplete.storyboard in Resources */, F14513531F45FAAE00710C46 /* SiteRatingView.xib in Resources */, 85AE66942098BAC10014CF04 /* home-row-instructions.mp4 in Resources */, @@ -3125,6 +3167,7 @@ files = ( 8528AE81212F15D600D0BD74 /* AppRatingPrompt.xcdatamodeld in Sources */, 853C5F5B21BFF0AE001F7A05 /* HomeCollectionView.swift in Sources */, + 9820FF502244FECC008D4782 /* UIScrollViewExtension.swift in Sources */, F1668BCE1E798081008CBA04 /* BookmarksViewController.swift in Sources */, F1CA3C371F045878005FADB3 /* PrivacyStore.swift in Sources */, 9874F9EE2187AFCE00CAF33D /* Themable.swift in Sources */, @@ -3141,7 +3184,6 @@ 85374D3521AC26E300FF5A1E /* BookmarksAndFavoritesDataSource.swift in Sources */, 853C5F6121C277C7001F7A05 /* global.swift in Sources */, F13B4BD31F1822C700814661 /* Tab.swift in Sources */, - 851B128C2220483A004781BC /* OnboardingSummaryViewController.swift in Sources */, F1BE54581E69DE1000FCF649 /* TutorialSettings.swift in Sources */, F1126E251EA749A30016A6C7 /* BlurAnimatedTransitioning.swift in Sources */, 98F3A1D8217B37010011A0D4 /* Theme.swift in Sources */, @@ -3162,10 +3204,12 @@ F103076D1E800F5C0059FEC7 /* EditBookmarkAlert.swift in Sources */, F1BE545E1E69FB9900FCF649 /* OnboardingTutorialPageViewController.swift in Sources */, F1134EC11F40DD9300B73467 /* AppVersionExtension.swift in Sources */, + 982E5630222C3D5B008D861B /* FeedbackPickerViewController.swift in Sources */, 85200F9D1FBC5A1C001AF290 /* NetworkLeaderboard.swift in Sources */, F13B4BD51F183B3600814661 /* TabsModelPersistenceExtension.swift in Sources */, F1134EE21F4233A200B73467 /* UIViewToastExtension.swift in Sources */, - 83D4A73720E1272F003A7A6D /* FeedbackModel.swift in Sources */, + 980891A52237D4F500313A70 /* FeedbackNavigator.swift in Sources */, + 83D4A73720E1272F003A7A6D /* SiteFeedbackModel.swift in Sources */, 85058366219AE9EA00ED4EDB /* HomePageConfiguration.swift in Sources */, 851B12A822246B84004781BC /* EasyTipViewExtension.swift in Sources */, 85C37D861FA8BE7100CDE257 /* PrivacyProtectionOverviewController.swift in Sources */, @@ -3191,15 +3235,18 @@ 853C5F5D21C117A6001F7A05 /* PaddingSpaceHomeViewSectionRenderer.swift in Sources */, 85C11E4C2090888C00BFFEB4 /* HomeRowReminder.swift in Sources */, 85374D3C21AC41E700FF5A1E /* FavoritesHomeViewSectionRenderer.swift in Sources */, - 839F46B620DD9D31003B8A66 /* FeedbackViewController.swift in Sources */, + 839F46B620DD9D31003B8A66 /* SiteFeedbackViewController.swift in Sources */, + 9888F77B2224980500C46159 /* FeedbackViewController.swift in Sources */, F14513551F45FBFD00710C46 /* SiteRatingView.swift in Sources */, 8C4724502217A14B004C9B2D /* TabViewControllerLongPressBookmarkExtension.swift in Sources */, + 980891A72237D5D800313A70 /* FeedbackPresenter.swift in Sources */, 85F1E9AC1FB49C0F00A75AC1 /* DisplayableCertificateBuilder.swift in Sources */, 85B9CB8521AEBD92009001F1 /* NavigationSearchHomeCell.swift in Sources */, 85200F971FBB31E8001AF290 /* SiteRatingPrivacyProtectionExtension.swift in Sources */, F13B4BC01F180D8A00814661 /* TabsModel.swift in Sources */, 851B129622242D94004781BC /* HomeScreenTips.swift in Sources */, 85AE6690209724120014CF04 /* NotificationView.swift in Sources */, + 980891A92238504B00313A70 /* UILabelExtension.swift in Sources */, 85B9CB8721AEBDB7009001F1 /* CenteredSearchHomeCell.swift in Sources */, 8577B0AE2225CA4F009CCC71 /* OnboardingSummaryPadViewController.swift in Sources */, F194FAED1F14E2B3009B4DF8 /* UIFontExtension.swift in Sources */, @@ -3223,10 +3270,12 @@ F1A5683A1E70F98E0081082E /* AutocompleteRequest.swift in Sources */, 8565A34B1FC8D96B00239327 /* LaunchTabNotification.swift in Sources */, 85A9C37720DD2DC200073340 /* AddToHomeRowCTAViewController.swift in Sources */, + 980891A222369ADB00313A70 /* FeedbackUserText.swift in Sources */, 9817C9C321EF594700884F65 /* AutoClear.swift in Sources */, 85200FA81FBDE472001AF290 /* UIColorPrivacyProtectionExtension.swift in Sources */, F1CA3C391F045885005FADB3 /* PrivacyUserDefaults.swift in Sources */, 8563A03C1F9288D600F04442 /* BrowserChromeManager.swift in Sources */, + 980891A32237146B00313A70 /* Feedback.swift in Sources */, F1D796F01E7B07610019D451 /* BookmarkCell.swift in Sources */, 85058369219F424500ED4EDB /* UIColorExtension.swift in Sources */, 85058368219C49E000ED4EDB /* HomeViewSectionRenderers.swift in Sources */, @@ -3251,6 +3300,7 @@ F1D796EE1E7AF2EB0019D451 /* UIViewControllerExtension.swift in Sources */, F15D43201E706CC500BF2CDC /* AutocompleteViewController.swift in Sources */, 83004E862193E5ED00DA013C /* TabViewControllerBrowsingMenuExtension.swift in Sources */, + 9838059F2228208E00385F1A /* PositiveFeedbackViewController.swift in Sources */, F1AB2B421E3F7D5C00868554 /* SettingsViewController.swift in Sources */, 85200F911FBA38E2001AF290 /* PrivacyProtectionScoreCardController.swift in Sources */, F16390821E648B7A005B4550 /* HomeViewController.swift in Sources */, @@ -3262,7 +3312,9 @@ F1D796F41E7C2A410019D451 /* BookmarksDelegate.swift in Sources */, 8565A3471FC87EC800239327 /* PrivacyProtectionPracticesController.swift in Sources */, F17669D71E43401C003D3222 /* MainViewController.swift in Sources */, + 984D60B2222A1284003B9E3B /* FeedbackFormViewController.swift in Sources */, 85374D3821AC419800FF5A1E /* NavigationSearchHomeViewSectionRenderer.swift in Sources */, + 98E888F2223FCC4A00B608A4 /* OnboardingSummaryViewController.swift in Sources */, 85200FA41FBC607E001AF290 /* NetworkLeaderboard.xcdatamodeld in Sources */, 85BA58551F34F49E00C6E8CA /* AppUserDefaults.swift in Sources */, 8505836C219F424500ED4EDB /* TextFieldWithInsets.swift in Sources */, @@ -3353,7 +3405,7 @@ F17D72391E8B35C6003E8B0E /* AppUrlsTests.swift in Sources */, F1134ED61F40F29F00B73467 /* StatisticsUserDefaultsTests.swift in Sources */, 98EA2C3C218B9AAD0023E1DC /* ThemeManagerTests.swift in Sources */, - 83134D8420E2E090006CE65D /* FeedbackModelTests.swift in Sources */, + 83134D8420E2E090006CE65D /* SiteFeedbackModelTests.swift in Sources */, 83B8BDAF20AB14A70076D6A1 /* APIHeadersTests.swift in Sources */, 8536A1CA209AF6490050739E /* HomeRowReminderTests.swift in Sources */, 851DFD8A212C5EE800D95F20 /* TabSwitcherButtonTests.swift in Sources */, diff --git a/DuckDuckGo/Assets.xcassets/Remove.imageset/Contents.json b/DuckDuckGo/Assets.xcassets/Remove.imageset/Contents.json index 4d3d558aad..b843593445 100644 --- a/DuckDuckGo/Assets.xcassets/Remove.imageset/Contents.json +++ b/DuckDuckGo/Assets.xcassets/Remove.imageset/Contents.json @@ -8,5 +8,8 @@ "info" : { "version" : 1, "author" : "xcode" + }, + "properties" : { + "template-rendering-intent" : "template" } } \ No newline at end of file diff --git a/DuckDuckGo/Assets.xcassets/ReportIcon.imageset/Contents.json b/DuckDuckGo/Assets.xcassets/ReportIcon.imageset/Contents.json new file mode 100644 index 0000000000..3208110506 --- /dev/null +++ b/DuckDuckGo/Assets.xcassets/ReportIcon.imageset/Contents.json @@ -0,0 +1,12 @@ +{ + "images" : [ + { + "idiom" : "universal", + "filename" : "iconReport.pdf" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/DuckDuckGo/Assets.xcassets/ReportIcon.imageset/iconReport.pdf b/DuckDuckGo/Assets.xcassets/ReportIcon.imageset/iconReport.pdf new file mode 100644 index 0000000000..00b6eb6e9a Binary files /dev/null and b/DuckDuckGo/Assets.xcassets/ReportIcon.imageset/iconReport.pdf differ diff --git a/DuckDuckGo/AutoClearSettingsViewController.swift b/DuckDuckGo/AutoClearSettingsViewController.swift index 7536a9c42c..550feedf84 100644 --- a/DuckDuckGo/AutoClearSettingsViewController.swift +++ b/DuckDuckGo/AutoClearSettingsViewController.swift @@ -142,7 +142,7 @@ class AutoClearSettingsViewController: UITableViewController { cell.backgroundColor = theme.tableCellBackgroundColor // Checkmark color - cell.tintColor = theme.toggleSwitchColor + cell.tintColor = theme.buttonTintColor if let settings = clearDataSettings, indexPathOf(action: settings.action) == indexPath || indexPathOf(timing: settings.timing) == indexPath { @@ -185,7 +185,7 @@ extension AutoClearSettingsViewController: Themable { label.textColor = theme.tableCellTintColor } - clearDataToggle.onTintColor = theme.toggleSwitchColor + clearDataToggle.onTintColor = theme.buttonTintColor tableView.backgroundColor = theme.backgroundColor tableView.separatorColor = theme.tableCellSeparatorColor diff --git a/DuckDuckGo/Base.lproj/Settings.storyboard b/DuckDuckGo/Base.lproj/Settings.storyboard index 5d14960882..f7a6f2743a 100644 --- a/DuckDuckGo/Base.lproj/Settings.storyboard +++ b/DuckDuckGo/Base.lproj/Settings.storyboard @@ -216,107 +216,86 @@ - + - - - - - - + - - - - - - + - - - - - - + - - - - - - - - - - - + + - - + + - - - - - + - + + + + + - - + + - + + + - + @@ -336,14 +318,14 @@