Skip to content

Commit

Permalink
Add survey to Passwords screen (#3327)
Browse files Browse the repository at this point in the history
Task/Issue URL:
https://app.asana.com/0/1201462886803403/1207935899042226/f
Tech Design URL:
CC:

**Description**:
Adds support for presenting a survey in the Passwords screen, controlled
via privacy config remote feature flag
  • Loading branch information
amddg44 authored Sep 10, 2024
1 parent d68271f commit 93a1189
Show file tree
Hide file tree
Showing 15 changed files with 901 additions and 36 deletions.
10 changes: 7 additions & 3 deletions Core/PixelEvent.swift
Original file line number Diff line number Diff line change
Expand Up @@ -298,6 +298,8 @@ extension Pixel {
case autofillLoginsReportConfirmationPromptConfirmed
case autofillLoginsReportConfirmationPromptDismissed

case autofillManagementScreenVisitSurveyAvailable

case getDesktopCopy
case getDesktopShare

Expand Down Expand Up @@ -1105,9 +1107,11 @@ extension Pixel.Event {

case .autofillLoginsReportFailure: return "autofill_logins_report_failure"
case .autofillLoginsReportAvailable: return "autofill_logins_report_available"
case .autofillLoginsReportConfirmationPromptDisplayed: return "autofill_logins_report_confirmation_prompt_displayed"
case .autofillLoginsReportConfirmationPromptConfirmed: return "autofill_logins_report_confirmation_prompt_confirmed"
case .autofillLoginsReportConfirmationPromptDismissed: return "autofill_logins_report_confirmation_prompt_dismissed"
case .autofillLoginsReportConfirmationPromptDisplayed: return "autofill_logins_report_confirmation_displayed"
case .autofillLoginsReportConfirmationPromptConfirmed: return "autofill_logins_report_confirmation_confirmed"
case .autofillLoginsReportConfirmationPromptDismissed: return "autofill_logins_report_confirmation_dismissed"

case .autofillManagementScreenVisitSurveyAvailable: return "m_autofill_management_screen_visit_survey_available"

case .getDesktopCopy: return "m_get_desktop_copy"
case .getDesktopShare: return "m_get_desktop_share"
Expand Down
1 change: 1 addition & 0 deletions Core/UserDefaultsPropertyWrapper.swift
Original file line number Diff line number Diff line change
Expand Up @@ -92,6 +92,7 @@ public struct UserDefaultsWrapper<T> {
case autofillSearchDauDate = "com.duckduckgo.app.autofill.SearchDauDate"
case autofillFillDate = "com.duckduckgo.app.autofill.FillDate"
case autofillOnboardedUser = "com.duckduckgo.app.autofill.OnboardedUser"
case autofillSurveysCompleted = "com.duckduckgo.app.autofill.SurveysCompleted"

case syncPromoBookmarksDismissed = "com.duckduckgo.app.sync.PromoBookmarksDismissed"
case syncPromoPasswordsDismissed = "com.duckduckgo.app.sync.PromoPasswordsDismissed"
Expand Down
62 changes: 61 additions & 1 deletion DuckDuckGo.xcodeproj/project.pbxproj
Original file line number Diff line number Diff line change
Expand Up @@ -850,6 +850,11 @@
C185ED672BD43DA100BAE9DC /* ImportPasswordsStatusHandlerTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = C185ED632BD438AF00BAE9DC /* ImportPasswordsStatusHandlerTests.swift */; };
C18ED43A2AB6F77600BF3805 /* AutofillSettingsEnableFooterView.swift in Sources */ = {isa = PBXBuildFile; fileRef = C18ED4392AB6F77600BF3805 /* AutofillSettingsEnableFooterView.swift */; };
C18ED43C2AB8364400BF3805 /* FileTextPreviewDebugViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = C18ED43B2AB8364400BF3805 /* FileTextPreviewDebugViewController.swift */; };
C1935A0E2C88D11D001AD72D /* AutofillSurveyView.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1935A0D2C88D11D001AD72D /* AutofillSurveyView.swift */; };
C1935A102C88D131001AD72D /* AutofillSurveyManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1935A0F2C88D131001AD72D /* AutofillSurveyManager.swift */; };
C1935A122C88D1D8001AD72D /* AutofillHeaderViewFactory.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1935A112C88D1D8001AD72D /* AutofillHeaderViewFactory.swift */; };
C1935A222C89CA9F001AD72D /* AutofillSurveyManagerTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1935A212C89CA9F001AD72D /* AutofillSurveyManagerTests.swift */; };
C1935A242C89CC6D001AD72D /* AutofillHeaderViewFactoryTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1935A232C89CC6D001AD72D /* AutofillHeaderViewFactoryTests.swift */; };
C1963863283794A000298D4D /* BookmarksCachingSearch.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1963862283794A000298D4D /* BookmarksCachingSearch.swift */; };
C1B7B51C28941E980098FD6A /* HomeMessageViewModelBuilder.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1B7B51B28941E980098FD6A /* HomeMessageViewModelBuilder.swift */; };
C1B7B52528941F2A0098FD6A /* RemoteMessagingClient.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1B7B52128941F2A0098FD6A /* RemoteMessagingClient.swift */; };
Expand Down Expand Up @@ -2619,6 +2624,11 @@
C185ED652BD43A5500BAE9DC /* MockDDGSyncing.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MockDDGSyncing.swift; sourceTree = "<group>"; };
C18ED4392AB6F77600BF3805 /* AutofillSettingsEnableFooterView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AutofillSettingsEnableFooterView.swift; sourceTree = "<group>"; };
C18ED43B2AB8364400BF3805 /* FileTextPreviewDebugViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = FileTextPreviewDebugViewController.swift; sourceTree = "<group>"; };
C1935A0D2C88D11D001AD72D /* AutofillSurveyView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AutofillSurveyView.swift; sourceTree = "<group>"; };
C1935A0F2C88D131001AD72D /* AutofillSurveyManager.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AutofillSurveyManager.swift; sourceTree = "<group>"; };
C1935A112C88D1D8001AD72D /* AutofillHeaderViewFactory.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AutofillHeaderViewFactory.swift; sourceTree = "<group>"; };
C1935A212C89CA9F001AD72D /* AutofillSurveyManagerTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AutofillSurveyManagerTests.swift; sourceTree = "<group>"; };
C1935A232C89CC6D001AD72D /* AutofillHeaderViewFactoryTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AutofillHeaderViewFactoryTests.swift; sourceTree = "<group>"; };
C1963862283794A000298D4D /* BookmarksCachingSearch.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BookmarksCachingSearch.swift; sourceTree = "<group>"; };
C1B0F6412AB08BE9001EAF05 /* MockPrivacyConfiguration.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MockPrivacyConfiguration.swift; sourceTree = "<group>"; };
C1B7B51B28941E980098FD6A /* HomeMessageViewModelBuilder.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = HomeMessageViewModelBuilder.swift; sourceTree = "<group>"; };
Expand Down Expand Up @@ -3509,6 +3519,7 @@
319A37132829A5450079FBCE /* Table */ = {
isa = PBXGroup;
children = (
C1935A0C2C88D101001AD72D /* Survey */,
31CC224828369B38001654A4 /* AutofillLoginSettingsListViewController.swift */,
319A37142829A55F0079FBCE /* AutofillListItemTableViewCell.swift */,
310ECFDC282A8BB0005029B3 /* EnableAutofillSettingsTableViewCell.swift */,
Expand All @@ -3520,6 +3531,7 @@
C1B924B62ACD6E6800EE7B06 /* AutofillNeverSavedTableViewCell.swift */,
C1836CE02C359EC90016D057 /* AutofillBreakageReportCellContentView.swift */,
C1836CE42C35A0EA0016D057 /* AutofillBreakageReportTableViewCell.swift */,
C1935A112C88D1D8001AD72D /* AutofillHeaderViewFactory.swift */,
);
name = Table;
sourceTree = "<group>";
Expand Down Expand Up @@ -4978,6 +4990,49 @@
name = Import;
sourceTree = "<group>";
};
C1935A0C2C88D101001AD72D /* Survey */ = {
isa = PBXGroup;
children = (
C1935A0F2C88D131001AD72D /* AutofillSurveyManager.swift */,
C1935A0D2C88D11D001AD72D /* AutofillSurveyView.swift */,
);
name = Survey;
sourceTree = "<group>";
};
C1935A1D2C89CA4B001AD72D /* Management */ = {
isa = PBXGroup;
children = (
C1935A1E2C89CA53001AD72D /* List */,
F40F843528C938370081AE75 /* AutofillLoginListViewModelTests.swift */,
);
name = Management;
sourceTree = "<group>";
};
C1935A1E2C89CA53001AD72D /* List */ = {
isa = PBXGroup;
children = (
C1935A1F2C89CA5A001AD72D /* Table */,
);
name = List;
sourceTree = "<group>";
};
C1935A1F2C89CA5A001AD72D /* Table */ = {
isa = PBXGroup;
children = (
C1935A202C89CA5F001AD72D /* Survey */,
C1935A232C89CC6D001AD72D /* AutofillHeaderViewFactoryTests.swift */,
);
name = Table;
sourceTree = "<group>";
};
C1935A202C89CA5F001AD72D /* Survey */ = {
isa = PBXGroup;
children = (
C1935A212C89CA9F001AD72D /* AutofillSurveyManagerTests.swift */,
);
name = Survey;
sourceTree = "<group>";
};
C1AFFC4B2B8773060060448E /* AuthConfirmation */ = {
isa = PBXGroup;
children = (
Expand Down Expand Up @@ -6162,9 +6217,9 @@
F40F843228C92B1C0081AE75 /* Autofill */ = {
isa = PBXGroup;
children = (
C1935A1D2C89CA4B001AD72D /* Management */,
C185ED622BD4388F00BAE9DC /* Import */,
C1BF0BA629B63E0400482B73 /* AutofillLoginUI */,
F40F843528C938370081AE75 /* AutofillLoginListViewModelTests.swift */,
C1D21E2E293A599C006E5A05 /* AutofillLoginSessionTests.swift */,
C1CDA31D2AFBF811006D1476 /* AutofillNeverPromptWebsitesManagerTests.swift */,
);
Expand Down Expand Up @@ -7295,6 +7350,7 @@
1E8AD1C927BFAD1500ABA377 /* DirectoryMonitor.swift in Sources */,
377D80222AB48554002AF251 /* FavoritesDisplayModeSyncHandler.swift in Sources */,
1E8AD1D127C000AB00ABA377 /* OngoingDownloadRow.swift in Sources */,
C1935A0E2C88D11D001AD72D /* AutofillSurveyView.swift in Sources */,
1DEAADF02BA46E0700E25A97 /* PrivateSearchView.swift in Sources */,
85058366219AE9EA00ED4EDB /* HomePageConfiguration.swift in Sources */,
1E9529A12C4E748B006E80D4 /* UINavigationControllerExtension.swift in Sources */,
Expand All @@ -7315,6 +7371,7 @@
C1641EAF2BC2F5140012607A /* ImportPasswordsViewController.swift in Sources */,
D63FF8982C1B6A45006DE24D /* DuckPlayer.swift in Sources */,
85B9CB8921AEBDD5009001F1 /* FavoriteHomeCell.swift in Sources */,
C1935A102C88D131001AD72D /* AutofillSurveyManager.swift in Sources */,
98999D5922FDA41500CBBE1B /* BasicAuthenticationAlert.swift in Sources */,
C13B32D22A0E750700A59236 /* AutofillSettingStatus.swift in Sources */,
1DDF40202BA049FA006850D9 /* SettingsRootView.swift in Sources */,
Expand Down Expand Up @@ -7370,6 +7427,7 @@
F1617C151E57336D00DEDCAF /* TabManager.swift in Sources */,
85449EF523FDA02800512AAF /* KeyboardSettingsViewController.swift in Sources */,
85C11E4C2090888C00BFFEB4 /* HomeRowReminder.swift in Sources */,
C1935A122C88D1D8001AD72D /* AutofillHeaderViewFactory.swift in Sources */,
31B2F11F287846320040427A /* NoMicPermissionAlert.swift in Sources */,
310C4B45281B5A9A00BA79A9 /* AutofillLoginDetailsView.swift in Sources */,
6F9FFE2D2C57AE8F00A238BE /* NewTabPageShortcutsSettingsModel.swift in Sources */,
Expand Down Expand Up @@ -7749,6 +7807,7 @@
8598F67B2405EB8D00FBC70C /* KeyboardSettingsTests.swift in Sources */,
98AAF8E4292EB46000DBDF06 /* BookmarksMigrationTests.swift in Sources */,
85D2187224BF24F2004373D2 /* NotFoundCachingDownloaderTests.swift in Sources */,
C1935A242C89CC6D001AD72D /* AutofillHeaderViewFactoryTests.swift in Sources */,
C111B26927F579EF006558B1 /* BookmarkOrFolderTests.swift in Sources */,
6F7FB8E72C66197E00867DA7 /* NewTabPageSectionsSettingsModelTests.swift in Sources */,
851CD674244D7E6000331B98 /* UserDefaultsExtension.swift in Sources */,
Expand Down Expand Up @@ -7829,6 +7888,7 @@
CBCCF96828885DEE006F4A71 /* AppPrivacyConfigurationTests.swift in Sources */,
6F40D15E2C34436500BF22F0 /* HomePageDisplayDailyPixelBucketTests.swift in Sources */,
310742AB2848E6FD0012660B /* BackForwardMenuHistoryItemURLSanitizerTests.swift in Sources */,
C1935A222C89CA9F001AD72D /* AutofillSurveyManagerTests.swift in Sources */,
22CB1ED8203DDD2C00D2C724 /* AppDeepLinksTests.swift in Sources */,
9847C00527A41A0A00DB07AA /* WebViewTestHelper.swift in Sources */,
3170048227A9504F00C03F35 /* DownloadMocks.swift in Sources */,
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
{
"images" : [
{
"filename" : "Passwords-DDG-96x96.svg",
"idiom" : "universal"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading

0 comments on commit 93a1189

Please sign in to comment.