-
Notifications
You must be signed in to change notification settings - Fork 0
Feature/govukapp 763 edit topics #119
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
TimGJD
reviewed
Oct 14, 2024
Production/govuk_ios/Extensions/Container/Container+Repositories.swift
Outdated
Show resolved
Hide resolved
Tests/govuk_ios/govuk_ios_unit_tests/Specs/Repositories/TopicsRepositoryTests.swift
Outdated
Show resolved
Hide resolved
batesyuk
requested changes
Oct 15, 2024
batesyuk
previously approved these changes
Oct 15, 2024
…initialisation parameters
…orites and rename original Topic to TopicResponseItem
… EditTopicsView functionality
…eton to prevent multiple stores from being loaded.
…s for edit button.
d4bca00
to
f0d4f69
Compare
batesyuk
approved these changes
Oct 15, 2024
|
batesyuk
added a commit
that referenced
this pull request
Mar 19, 2025
* Add logic to toggle onboarding on/off using app config feature switch * GOVUKAPP-567 Search slice 2 (#79) * Add search results table view and cell * Fetch search-api results + render in app * Move SearchItem / SearchResults to seperate files * Add search modal test for fetching search results * Move linkImage to top right of card Move to be inline with top row of title vs centered if there are multiple lines. * fixup! Add search modal test for fetching search results * Trim whitespace from title / description * Allow full links (external) to be followed Search API produces entire links if the search result points to an external website. * Switch to arrow.up.right Same image, more predictable + removes placeholder text. * WIP error states * Update SearchViewModel tests * Update search unavailable link to homepage * Adds tracking of search items on press * Correctly set background colour of tableView * Refactor decoding and displaying results * Added SearchService and Snapshots * Updated tests * Added SearchServiceClientTests * Added SearchServiceTests * Added JSONDecoder+ExtensionsTests * Added UITableView+Extensions * Moved error strings to catalogues * Added GovRequest+Search * Renamed NetworkingClients -> Networking * Updated mac runners * Updated gems * Updated scan params * Added search results snapshot * Added more SearchViewControllerSnapshotTests --------- Co-authored-by: Peter Hartshorn <[email protected]> Co-authored-by: Tom Bates <[email protected]@gov.uk> * GOVUKAPP-567: Update tracking for search item (#85) * GOVUKAPP-567: Update tracking for search item * Swap XCTest to Swift Testing for updated tests * Updated device * Renamed extraParams -> additionalParams * Swap XCTest to Swift Testing for updated tests --------- Co-authored-by: Tom Bates <[email protected]@gov.uk> * GOVUKAPP-629 Recently visited Items (#74) * added logic for recently visited views and data helpers * moved fetch request to viewmodel * unit tests for viewModel and localizable files * Changes to object fetching model * fixed tests, added analytics tracking to recent activities * re- indenting * formatted tests * added viewmodel and coordinator t tests and fixed snapshot tests * update snapshot tests, add string localization * indenting and updated snapshot tests * reformatting * Updated ActivityItem.fetchRequest() * Added accessibility label * Changed the test data URL to Gov.uk * fixed snapshot tests * formating * fix edge cases in test * made test private * formatting * formatting * change tests names * formatting * fixed indenting and typos * indenting * indenting and renaming files * refactor * removed unused method * formatting and added back string * make whole widget clickable * adjusted padding on error view * Recently visited items suggestions (#83) * Moved ActivityItemDate * Updated DateHelperTests * Added Date+Extensions * Fixed MonthGroupKey sorting * Updated test dates * Removed edit button * Pass in formatter to GroupKey --------- Co-authored-by: Tom Bates <[email protected]@gov.uk> * updated viewcontrollers and snapshot tests * Updated future date extensions * removed localizable files, fixed indenting, formatted errorView , updatedSnapshot tests * provided stacks ids and added indenting to grouped list stacks * moved protocol declaration, import Foundation, changed gesture to lazy var * changed stackview to a ui control * Add acessibility * Fixed widget appearance * Removed test save * Updated gems and dropped runner images * Updated device name * Added recentActivity test for coordinator builder * Renamed RecentActivityContainerViewSnapshotTests * Added HostingViewController and fixed navigation bar * Fixed settings tests * Added HostingViewControllerSnapshotTests * Added view controller test * Converted RecentActivitiesViewModelTests to swift testing * Added tests for RecentActivitiesViewModel * Fixed unit tests * Updated HostingViewController nav bar * Updated snapshots * Updated gems --------- Co-authored-by: Tom Bates <[email protected]@gov.uk> Co-authored-by: Tom Bates <[email protected]> Co-authored-by: Tom Bates <[email protected]> * Add 30 minute timeout to unit tests * [GOVUKAPP-567] Update search v2 (#89) * Updates search error views - scales error text based on dynamic type - center aligns button link for api unavailable error. * Raise network unavailable error is not connected * Adds openWebLinkHint For search result cell and api unavailable link. Accessibility label manually configured for the card, including child element labels. Applying the hint to the card itself resulted in VO ignoring the child labels. * Use GOVUKButton for error link * Add snapshot tests for search failure paths * Use default status bar style (#91) * Use default status bar style Causing status bar on home screen to be transparent. * Remove accompanying test * Save activities when selected (#92) * Save activity * Updated snapshots * Added save activity test * Added unit tests * re-added xcode-version * Updated file structure * Updated unit tests * Updated CoreDataRepositoryTests --------- Co-authored-by: Tom Bates <[email protected]@gov.uk> * BaseCoordinatorTests -> Swift Testing (#93) Moved BaseCoordinatorTests to Swift Testing Co-authored-by: Tom Bates <[email protected]@gov.uk> * Add app unavailable screen and logic to show it * Align variable access modifier with protocol * Revert automatic Xcode changes * Add app unavailable screen and logic to show it * Revert automatic Xcode changes * Removed unused coordinators (#94) Co-authored-by: Tom Bates <[email protected]@gov.uk> * Updated RecentActivityContainerViewSnapshotTest * Updated ActivityRepository * Removed govuk_ios_ui_tests from test plan * [GOVUKAPP-777] Remove existing results for search on clear (#96) Remove existing results for search on clear * Open Recent activity items when saved from search (#95) * Added custom decoder for SearchItem * Updated gems * Removed custom main and TestAppDelegate * Moved all unit tests to Swift Testing * Updated SettingsViewModelTest names --------- Co-authored-by: Tom Bates <[email protected]@gov.uk> * Feature/govukapp 759 show all topics on homepage (#90) * Add flag to WidgetView as to whether to decorate with border, etc. * Add Topic widget and cards * TopicsServiceClient and tests * Add TopicsService and tests * Add TopicsWidget to Home View, inject topics service. * Update tests * Add Topics tests * Update snapshot tests * Add TopicsCoordinator, TopicDetailView, and navigation logic * Update tests * Add tests for TopicCoordinator, TopicWidgetsViewModel * Add analytics and tests * Update snapshots * Make topic card an accessible button * fix whitespace * Remove unused variable * Create corresponding XCTests for all SwiftTests, and disable Swift Tests in test plan. * Insure topics results are dispatched to UI on main thread. Make test that tends to timeout fail sooner rather than later. * Comment out test that mysteriously times out so we can move forward. * Remove XCTests * Fix tests after rebase * remove stray xctest * GOVUKAPP-774 Updates accessibility focus on search (#98) User can now focus on title and description seperately, with the open in web browser hint on title. Co-authored-by: Tom Bates <[email protected]@gov.uk> * [GOVUKAPP-623] Redact PII from search term (#97) * Add func to redact PII * Use redactPII on tracked search term * Removed TestViewControllerSnapshot references (#99) Co-authored-by: Tom Bates <[email protected]@gov.uk> * Deploy TestFlight builds (#100) * Updated Fastfile to use pilot and removed unused workflow * Removed deliver_username * Added defaults to alpha config --------- Co-authored-by: Tom Bates <[email protected]@gov.uk> * feature flag for topics (#102) * Add topics to feature flags and add mechanism to prevent local flags from being overwritten if not present in remote config. * Fixes for comments from previous PR * Update tests * Update layout when changing orientation (missing functionality from prior ticket) * Add app forced update screen and logic to show it * View recently visited items - Text Correction (#101) Corrected error screen text * Fix broken code after develop merge * Fix search error link bug (#105) Prevously, if the user met an error screen with no link, e.g no results and then straight after returned a generic error with a link, the link would still be hidden. We now set the hidden flag to false when there is a link. * Ignore bottom safe area so view elements are positioned inline with designs * Ignore bottom safe area so view elements are positioned inline with designs * Add snapshot test images * Add ignore horizontal safe area to forced update screen * Add ignore horizontal safe area to app unavailable screen. * Update dependancies (#107) * Updated Swift packages * Updated gems * Committed Package.resolved * Removed xcworkspace * Added opt_out_usage --------- Co-authored-by: Tom Bates <[email protected]@gov.uk> * Fix PR comments * Fix snapshots (#109) * Remove none LFS snapshots * Added AnalyticsConsentViewControllerSnapshotTests --------- Co-authored-by: Tom Bates <[email protected]@gov.uk> * Removed lint --fix from build phase (#108) Co-authored-by: Tom Bates <[email protected]@gov.uk> * Migrate git LFS files (#110) * Tests/govuk_ios/govuk_ios_snapshot_tests/ReferenceImages_64/govuk_ios_snapshot_tests.HostingViewControllerSnapshotTests/test_loadInNavigationController_hiddenNavbar_light_rendersCorrectly@3x.png: convert to Git LFS * Tests/govuk_ios/govuk_ios_snapshot_tests/ReferenceImages_64/govuk_ios_snapshot_tests.HostingViewControllerSnapshotTests/test_loadInNavigationController_showNavbar_light_rendersCorrectly@3x.png: convert to Git LFS * Tests/govuk_ios/govuk_ios_snapshot_tests/ReferenceImages_64/govuk_ios_snapshot_tests.LaunchViewControllerSnapshotTests/[email protected]: convert to Git LFS * Tests/govuk_ios/govuk_ios_snapshot_tests/ReferenceImages_64/govuk_ios_snapshot_tests.RecentActivityContainerViewSnapshotTests/test_loadInNavigationController_dark_errorView_rendersCorrectly@3x.png: convert to Git LFS * Tests/govuk_ios/govuk_ios_snapshot_tests/ReferenceImages_64/govuk_ios_snapshot_tests.RecentActivityContainerViewSnapshotTests/[email protected]: convert to Git LFS * Tests/govuk_ios/govuk_ios_snapshot_tests/ReferenceImages_64/govuk_ios_snapshot_tests.RecentActivityContainerViewSnapshotTests/test_loadInNavigationController_light_errorView_rendersCorrectly@3x.png: convert to Git LFS * Tests/govuk_ios/govuk_ios_snapshot_tests/ReferenceImages_64/govuk_ios_snapshot_tests.SearchViewControllerSnapshotTests/[email protected]: convert to Git LFS * Tests/govuk_ios/govuk_ios_snapshot_tests/ReferenceImages_64/govuk_ios_snapshot_tests.SearchViewControllerSnapshotTests/[email protected]: convert to Git LFS * Tests/govuk_ios/govuk_ios_snapshot_tests/ReferenceImages_64/govuk_ios_snapshot_tests.SearchViewControllerSnapshotTests/[email protected]: convert to Git LFS * Tests/govuk_ios/govuk_ios_snapshot_tests/ReferenceImages_64/govuk_ios_snapshot_tests.SearchViewControllerSnapshotTests/[email protected]: convert to Git LFS * Tests/govuk_ios/govuk_ios_snapshot_tests/ReferenceImages_64/govuk_ios_snapshot_tests.SettingsViewControllerSnapshotTests/[email protected]: convert to Git LFS * Tests/govuk_ios/govuk_ios_snapshot_tests/ReferenceImages_64/govuk_ios_snapshot_tests.SettingsViewControllerSnapshotTests/[email protected]: convert to Git LFS * Tests/govuk_ios/govuk_ios_snapshot_tests/ReferenceImages_64/govuk_ios_snapshot_tests.SettingsViewControllerSnapshotTests/[email protected]: convert to Git LFS --------- Co-authored-by: Tom Bates <[email protected]@gov.uk> * Add new recommend app update screen and logic to show it * Improve unit test naming * Align button padding with designs * Update snapshot images * Update accessibility label as requested on GOVUKAPP-589 * Fix Post Amigos feedback for font size and spacing * Remove unused variable * Set app unavailable when app config signature is invalid * Resolve PR comments - remove public access modifiers * Align bottom padding with onboarding screens (no bottom padding) * PR comment fix - set app unavailable for all failures to fetch remote config not just invalid signature * Rename unit tests to cover all current failures * Artifact IPA (#114) * Artifact ipa * Added upload for alpha --------- Co-authored-by: Tom Bates <[email protected]@gov.uk> * Remove support for MacOS and Apple Vision on app (#116) * Wait for the launch splash screen animation and fetching the remote app config to both complete before progressing the app past the launch splash screen * Fix PR comments * Rename private function to match PR comment request * Replace onboarding images * Align image filename with original image filename * Edit Recent Activity (#121) * Added GroupedList for UIKit * Added snapshot tests * Localise home page title * Fixed recent activity widget accessibility * Localised button titles * Added analytics --------- Co-authored-by: Tom Bates <[email protected]@gov.uk> * Remove 'placeholder' from onboarding image names * Feature/govukapp 763 edit topics (#119) * Add Model, View, Coordinator for Edit Topics * Add new VC and coordinator to builders * Add edit button to TopicWidgetsView and refactor to reduce number of initialisation parameters * Layout fix for small screens * Update localizations * Add TopicRepository, and Topic managed object for persisting user favorites and rename original Topic to TopicResponseItem * Update TopicService to include persistence capabilities and implement EditTopicsView functionality * Add TopicsRepository to Container and make CoreDataRepository a singleton to prevent multiple stores from being loaded. * Refactor TopicsService to make use of persistence * Update TopicsWidgetView/TWVM to make use of persistence. Add analytics for edit button. * Add MockTopicsRepository * Refactor tests to get them building again * Add tests for EditTopicsViewModel and TopicsRepository * Add screen tracking analytics for Edit Topics view * Update tests * Add localization and toggle event * Update snapshot tests for Home view * Add EditTopicsView snapshot tests. Code tweaks * Fix typos * Fix sonar smell * Increase test coverage * Address PR comments * Fixes from rebase * Fix VO nav order, and scrolling of subtitle (#123) * Update edit topics colours and save (#124) * Updated edit button colour * Updated done button title in edit topics * Save topic updates when switches are pressed * Updated unit tests --------- Co-authored-by: Tom Bates <[email protected]@gov.uk> * Add feature flag and logic for Pages You've Visited * Refactor analytics (#126) * Refactor analytics events * Refactored and split out analytics files --------- Co-authored-by: Tom Bates <[email protected]@gov.uk> * GOVAPP-788 Homepage widget nav stat (#127) * Added widget navigation event * Moved to navigation * Update feature flag name * Use default (opaque) appearance for tab bar (#128) * GOVUKAPP-813 - Help and feedback link (#129) * added help and feedback link to settings menu * Added expectation to cover app bundle information * added unit test to cover helpAndFeedback action * delete white space * Only show the edit button when there is recent activity to edit * Update widget events (#131) * Changed topic events to widget * Updated widget events and added search widget event * Refactored widgets viewmodels and event placement --------- Co-authored-by: Tom Bates <[email protected]@gov.uk> * Force users to update if invalid signature (#135) * Force users to update if invalid signature * Added more tests * Removed error from AppConfigError cases * Fixed indenting --------- Co-authored-by: Tom Bates <[email protected]@gov.uk> * Added accessibility hint for recent activity (#136) Co-authored-by: Tom Bates <[email protected]@gov.uk> * [GOVUKAPP-767] Add all topics screen (#137) * Add all topics button and scaffolding * Add all topics screen * Fetch and pass topics into AllTopicsViewController Follows pattern for edit topics screen and saves having to make the async request from within the controller. * Remove debug print * Hide all topics button if all topics present * Remove unused topicsService * Update UI Components version for compact button * Update tracking text * Use GOVUKButton .compact for see all topics Also tidies view. * Remove unused topicService * Adds AllTopicsViewModel tests * moves topic viewmodel tests to viewmodels dir vs models. * moves AllTopicsViewModel to topics dir * Adds tests for all topics * Add snapshot for all topics Also updates home snapshot tests to include see all topics button. * Update "See all topics" tracking to widget nav * Fix snapshot tests * New file for TopicTableViewCell + minor fixes * Add tests and update snapshot ref * Remove unused init * Remove whitespace * Make topicCard private * Update topics to private(set) * New line for UITableViewDataSource * Remove derived data cache (#139) Caching dd corrupts the coverage report for sonar. * Replace onboarding images with ones with less padding * GOVUKAPP-805 Topics page (#134) * Add client request and tests for fetching topic details * Add TopicDetailVM, rename TopicsCoordinator and inject TopicService into it * Hook up TopicDetailViewModel * Add topic details download to service, update localization * handle step-by-step navigation * Introduce DisplyableTopic protocol so we can handle Topic, TopicDetailResponses and Subtopics the same way. * Adjust wrapped text alignment * Save visited topics to recent activity * Fix test build * Update tests * Add logic for conditional display of section headers and navigation title style, tweak view appearance * Fix tests * Added unit tests * Updated viewModels * Removed unused code * Added Topic+Arrangers * Added Save unit test * Added TopicDetailResponseTests * Added StepByStepsViewModelTests * Added snapshot tests * Removed derived data cache * Refactored Topic arranging * Added new Subtopic header * Removed MockTopicService.testTopicsResult * Removed MockTopicService.testTopicsFailure * Removed MockTopicsService.createTopicDetails * Added description to topics * Updated snapshots * Updated analytics * Fixed comments * Added analytics for see all steps * Fixed comments * Removed empty json file * Removed copy of file --------- Co-authored-by: Tom Bates <[email protected]@gov.uk> * Topics accessibility (#142) * Added heading to GroupedListSectionView * Update voiceover focus for topic page * Updated accessibility for widgets and search results * Updated topic description indent * Refactored tableview hidden --------- Co-authored-by: Tom Bates <[email protected]@gov.uk> * GOVUKAPP-739 Settings cropping (#145) * Fixed about app cropping * Updated unit tests * Fixed title * Removed unused function --------- Co-authored-by: Tom Bates <[email protected]@gov.uk> * Update onboarding images with new * [GOVUKAPP-841 & GOVUKAPP-842] Update setting links (#140) * Update setting links Adds terms and conditions + accessibility links. Also removes duplicate expectation from SettingViewModel tests. * Update settings snapshot tests * Updated names --------- Co-authored-by: Tom Bates <[email protected]@gov.uk> * Added PDF images to fix light mode (#146) Co-authored-by: Tom Bates <[email protected]@gov.uk> * GOVUKAPP-829 Deselect all button in Pages You've Visited edit mode (#143) * Add 'Deselect all' button and functionality to Pages You Visited screen * Change to use selected items properties from viewmodel * Add new unit tests * Refactor to update when edit starts * Added UIBarButtonItem+ConvenienceTests and UITableView+ExtensionsTests * Added more calls in RecentActivityListViewControllerSnapshotTests --------- Co-authored-by: Tom Bates <[email protected]@gov.uk> * Updated config url (#147) Co-authored-by: Tom Bates <[email protected]@gov.uk> * Updated gems (#149) Co-authored-by: Tom Bates <[email protected]@gov.uk> * Added svg again to keep formats consistent across onboarding images (#150) Added svg Co-authored-by: Tom Bates <[email protected]@gov.uk> * GOVUKAPP-851 - Button weights (#151) * Added UIButton+Convenience and update nav button weights * Updated home screen snapshots * Updated EditTopicsViewControllerSnapshotTests --------- Co-authored-by: Tom Bates <[email protected]@gov.uk> * GOVUKAPP-773 Topic Onboarding (#144) * Added topic onboarding snd test coverage * updated snapshot tests and tab bar * updated tests * formatting and updating tests * updated snapshot tests * Stopped title layout issue * remove scroll view delegate * fixed sonar issues * disabled button when no items selected, moved getTopics method to topicwidget ViewModel, updates tests * refactored topic widget models and topic onboarding cards * removed placeholder * updated topic onboarding primary buttons * updated colours to use ui components * updated snapshot tests , change factory to use exact version * Updated snapshot tests * fixed show all topics button bug * fixed unit tessts * added unit tests for topic service and topic wiget viewmodel * Updated TopicsWidgetViewModelTests * Fixed TopicsOnboardingCoordinator name * Added test for dismiss topic onboarding * Removed colorScheme from TopicsButtonView * Fixed TopicsButtonView indents * Fixed topics string keys * Updated local var names * Fixed topic strings keys context * Removed UserDefaults from TopicsOnboardingWidgetViewModel * Made topicAction none optional in TopicsOnboardingWidgetViewModel * Fixed accessors and indents in TopicOnboardingViewModel * Fixed accessors and trailing closure in TopicOnboardingWidgetView * Fixed naming and remove WidgetView from TopicOnboardingViewModel * Renamed TopicsOnboardingWidgetView -> TopicsOnboardingListView * Removed unused downloadError from TopicsOnboardingListViewModel * Removed TopicsOnboardingListViewModel * Added more TopicOnboardingViewModelTests * Updated TopicService save function * Removed dictionary and serialise TopicsServiceTests * Added ViewControllerBuilder test * Fixed TopicOnboardingCard colours * Removed extra function * Fixed TopicsOnboardingListView name * Fixed broken dynamic type * Added comment for empty closure * Updated border stroke colour and remove secondary border colorset * Added layout margins to TopicOnboardingCard * Added import Foundation * Tests/govuk_ios/govuk_ios_snapshot_tests/ReferenceImages_64/govuk_ios_snapshot_tests.HomeViewControllerSnapshotTests/[email protected]: convert to Git LFS * Tests/govuk_ios/govuk_ios_snapshot_tests/ReferenceImages_64/govuk_ios_snapshot_tests.HomeViewControllerSnapshotTests/[email protected]: convert to Git LFS * Fix MockCoordinatorBuilder * Renamed TopicsOnboarding -> TopicOnboarding * Moved UserDefault references to MockUserDefaults * Added large titles to TopicOnboardingViewControllerSnapshotTests * Fixed voiceover * Added coordinator test for TopicOnboarding --------- Co-authored-by: Tom Bates <[email protected]@gov.uk> * Refactor signatures to use value in response header (#154) * Add parameter to requests as requiring signature, and if so, use signature in header to verify data. * Remove now unneeded Signable and SignableDecoder * Pass name of keyfile in request if request needs signing * Update tests * Refactor Topic Service and Repository (#152) * Updated TopicRepository and TopicService method names * Added update func to Topic * Updated fetchRemoteList name * Added unit test for topic updates * Delete Topics when not returned * Added Package.resolved back --------- Co-authored-by: Tom Bates <[email protected]@gov.uk> * Keep tab bar on pages you've visited, and replace with toolbar when editing (#155) * Don't hide tab bar on navigation. When editing, replace tab bar with toolbar Create UIBarButtonItem subclass that uses a custom view to display it's contents so they can be positioned correctly in the toolbar. * Rename some variables/methods for clarity * update failing snapshots * update snapshots, take 2 (Xcode 16, 15 pro simulator 17.5) * Code review: cll super * Have toolbar respond to dynamic type changes. Cancel editing when user navigates * Move tests to folders (#153) Removed test groups Co-authored-by: Tom Bates <[email protected]@gov.uk> * Correct typo in topic onboarding (#158) corrected onboarding text * [GOVUKAPP-863] Update 'All Topics' to 'All topics' (#160) Update 'All Topics' to 'All topics' * [GOVUKAPP-667] Use search api v2 (#138) * Swap to search v2 * Handle blank descriptions * Wip * Moved search url to factory * Start unit testing * Fixed Container_APIClientTests * Fixed unit tests for APIClients * Added comment for analytics * Fix method name * Update test name to expected request --------- Co-authored-by: Tom Bates <[email protected]@gov.uk> * GOVUKAPP-896: Title wrapping in edit mode (#162) Reload snapshot when toggling editing. * GOVUKAPP-873: Remove accessibility hint when editing (#161) When editing, remove hint and trait. Add back in when editing ends. * GOVUKAPP-896: title wrap when editing, part 2 (#163) call invalidateIntrinsicContentSize() instead of reloading snapshot * Feature/govukapp 868 ga stat for custimization of topics (#164) * Add ability to include additional parameters to screen tracking events * expose number of topics and number of favorites in view model, and add add item_number and item_shown to screen tracking event * Update tests * GOVUKAPP-881 - Topic Personalisation (#165) * Select all topics when personalised * Updated naming for topic personalisation and onboarding flags * Updated topic screenshots after removing header * Added rollback call to EditTopicsViewModel.deinit --------- Co-authored-by: Tom Bates <[email protected]@gov.uk> * Updated analytics (#166) Fixed warnings and update cases for Button and Toggle Co-authored-by: Tom Bates <[email protected]@gov.uk> * Long nav titles spike (#157) * Add preference key for tracking scrolling * Don't set navigation titles on topics, and instead display multiline text view. Display a divider view if scrolling detected * Add custom title view and divider to PYV. Don't show title in nav bar. Refactor to silence some swiftlint warnings * Update snapshots * Fix unit tests * Updated RecentActivityListViewController information view pinning --------- Co-authored-by: Tom Bates <[email protected]@gov.uk> * PreferredStatusBarStyle (#168) Add override for preferredStatusBarStyle in HostingViewController Co-authored-by: Tom Bates <[email protected]@gov.uk> * [GOVUKAPP-897] - Topic Onboarding button resizing (#170) * creates sticky footer view and fixes the button resizing bug in the topic onboarding viewcontroller * Fixed comments --------- Co-authored-by: Tom Bates <[email protected]@gov.uk> * [GOVUKAPP] Pages You've Visited Widget Icon Change (#172) * Change the icon used on the Pages You’ve Visited widget * Fix padding between the icon circle and the left edge of the Pages You’ve Visited widget * Adjust homeviewcontroller snapshot tests for new icon * Fixed margin issues with topics cards * GitHub Actions Xcode and MacOS update (#173) * Update to use macos-15 and updated set-ruby action * Updated snapshots * Updated test device * Updated xcode version -> 16.1 --------- Co-authored-by: Tom Bates <[email protected]@gov.uk> * Added git_branch to Matchfile (#174) Co-authored-by: Tom Bates <[email protected]@gov.uk> * Updated ruby version -> 3.3.5 (#175) Co-authored-by: Tom Bates <[email protected]@gov.uk> * GOVUKAPP-934 Onboarding topics (#176) * Updated topic card layout * Broke out TopicSelectedView * Removed ObservableObject from TopicOnboardingCardModel * Removed dual selection logic * Added call to retain selection when rotating * Refactor row creation * Updated snapshots --------- Co-authored-by: Tom Bates <[email protected]@gov.uk> * Remove signature from AppConfig (#177) Remove signature parameter from AppConfig, as it is no longer sent by back end * [GOVUKAPP - 898] Change to 'favourite' (#178) Change to 'favourite' * Updated selected icon for topic selection (#181) Co-authored-by: Tom Bates <[email protected]@gov.uk> * GOVUKAPP-933 Fetch topics on app launch (#179) * Remove local config * Refactor launch fetching for topics and configs * Added AppLaunchServiceTests * Update launch order * Fixed sonar issues --------- Co-authored-by: Tom Bates <[email protected]@gov.uk> * Remove old homepage topics and update MockUserDefaults (#182) * WIP * Added UserDefaultsInterface --------- Co-authored-by: Tom Bates <[email protected]@gov.uk> * Ensure 'Your topics' is displayed for customisation (#183) * Ensure 'Your topics' is displayed when topics change * Adjust title to 'Your topics' only after topics are personalised * Adjust snapshot for 'Your topics' * GOVUKAPP-942 - Topic personalisation event (#180) * Added UserProperty struct * Added more CrashlyticsClientTests * Removed unused vars * Renamed personalised -> customised * Added MainActors for unit tests to prevent crash running in commandline * Added snapshot test for none customised home screen * Split out UserProperty+Convenience --------- Co-authored-by: Tom Bates <[email protected]@gov.uk> * iOS15 Fixes (#184) * Added navigation bar hidden to swiftUI views * Updated setup-ruby action * Updated onboarding --------- Co-authored-by: Tom Bates <[email protected]@gov.uk> * Homepage insets fix (#185) Added navigationItem.largeTitleDisplayMode to HomeViewController Co-authored-by: Tom Bates <[email protected]@gov.uk> * GOVUKAPP-905 Add build number to settings page (#186) * Added (<build_number>) to settings version * Added unit tests --------- Co-authored-by: Tom Bates <[email protected]@gov.uk> * GOVUKAPP-970 Fixed settings URLs (#188) Fixed opening incorrect urls in settings and added unit tests Co-authored-by: Tom Bates <[email protected]@gov.uk> * [GOVUKAPP-796] Updates URL to new feedback form (#187) Depends on https://github.com/alphagov/feedback/pull/2006. * Use SVG images for icons in the app (#189) * Replace SF symbols with SVG icon images * Adjust snapshot tests for SVG icon images * Fix tint colours for icons and general clean up * Adjust snapshot tests for correct tint colours * GOVUKAPP-974: edit topics button accessibility size change (#192) Make sure edit button label adjusts size on accessibility change. Adjust titleLabel compression on largest font size so Edit button remains visible * govukapp-912: Add configurations for alpha/beta builds (#171) * Add xcconfig files for Debug(Alpha) and Release(Beta) to specify baseURL Add AppEnvironment service to provide config info. Add new build scheme for release * Swap GovUK scheme to be beta (testflight) so as not to break builds (got it backwards) New scheme for firebase is GovUKAlpha * Update gems with firebase fastlane plugin * Update build.yml and configuration to support firebase distribution * Add firebase deployment lane and support to Fastfile * Add Fastlane plugin file * rename alpha.yml to beta.yml (which will invoke fastlane beta now), and add firebase token to alpha.yml * update to macos-15. Have beta trigger on push of release branch * Conditionally install firebase plugin on mac only * Move platform check to plug-in file * restore original plugin file * Add firebase gem directly to gemfile * fix rubocop warnings * fix rubocop warnings * Add this branch to push: for testing * Fix fastfile syntax * Update signing settings * Set build configuration correctly * Set display name and change debug signing settings back to development * Refactor schemes and configs so we have a separate scheme/config for building with development certs. * Fix build configuration * Add test group to firebase distro * Remove deploy on push of development branch, as all seems to be working now. * fix firebase run phase script to account for new Alpha.xcconfig * Address code review comments * Update ruby on beta workflow (#193) * Updated settings to silence warnings (#195) Co-authored-by: Tom Bates <[email protected]@gov.uk> * Update README.md (#191) * Update README.md Add more information to README about getting the project running, unit testing, and manually linting the code. * Updated scheme and fixed spelling * Fixed typo --------- Co-authored-by: Tom Bates <[email protected]@gov.uk> * GOVUKAPP-838 Prevent CoreData backup (#196) * Exclude sqlite from backups * Moved coreDataModel to singleton in Container --------- Co-authored-by: Tom Bates <[email protected]@gov.uk> * Adjust Topic icon images for padding issues (#197) * Adjust svg images to 30x40 to fix padding * Adjust snapshot tests for new images * Govukapp-865 ios home button behavior (#194) * Detect when a tab is reselected, and propagate the event to TabItemCoordinators * Scroll home view controller to top when home tab reselected * Update tests * Don't scroll to top if not on home screen Increase test coverage * Fixed EditTopicsCoordinator not calling finish --------- Co-authored-by: Tom Bates <[email protected]@gov.uk> * govukapp-979: topic header and edit button alignment (#198) * Change stackview alignment to baseline, update tests * baseline alignment has effect of moving label up, rather than button down, so decrease vertical spacing to accomodate * Refactor large accessibility type fix. (Thank's tom) * Bug/govukapp 979 topic header edit button alignment (#199) * Change stackview alignment to baseline, update tests * baseline alignment has effect of moving label up, rather than button down, so decrease vertical spacing to accomodate * Refactor large accessibility type fix. (Thank's tom) * Fix snapshot tests so data is alway in the past, avoiding breakage when header turns to "This month" based on current date * Fix unit test date to be farther in future * Govukapp-922/924 reusable offline and error messages (#190) * Refactor TopicServiceClient to check for network availability * Re-arrange xcstrings to move error strings to Common * New AppErrorView/ViewModel * Refactor Search to use new shared AppErrorView * Update topic details to handle errors, display AppErrorView * Add/Update snapshot tests * Add error tests for TopicDetailsViewModel * Remove ListInformationReview and replace with AppErrorView * GOVUKAPP-935 Edit activity flicker (#201) * Prevent setting highlighted in GroupedListTableViewCell to prevent checkmark flicker * Added call to super with highlighted false --------- Co-authored-by: Tom Bates <[email protected]@gov.uk> * GOVUKAPP-988 Edit RecentActivity Icon (#200) * Remove icon when edit recent activity * Updated snapshot tests * Removed reference images from target --------- Co-authored-by: Tom Bates <[email protected]@gov.uk> * GOVUKAPP-949 Add encryption flag to CoreData (#203) Added NSPersistentStoreFileProtectionKey to core data Co-authored-by: Tom Bates <[email protected]@gov.uk> * govukapp-995 settings button behavior (#205) * Add scrollToTop toggle to SettingsViewModel, and listen for it in SettingsView to scroll * Implement didReselectTab in SettingsCoordinator. Refactor SettingsViewModel to be an ivar. * Update tests * Increase code coverage * Long navigation titles for topic detail views (#202) * title scrolls with content * moved title inside v stack * updates snapshot tests * removed previous extra padding * Deleted empty helpers file * adjusted padding * adjusted padding * adjusted padding * [GOVUKAPP-982] Update topic grouped list section headers (#204) * Add topic grouped list SVG icons * Updates topic list group to use new icon view * DRY subtopicsHeading block * Fixes dynamic size issues * Updates snapshot tests * Adds trailing padding to grouped section icon header (#208) Adds trailing padding to grouped section header The text can squash up against the trailing border for a given text size when adjusting dynamic type. * Bug/reusable messages topic heading fix (#207) * Remove scroll view from AppErrorView so that the topic titles can be made part of the scroll. Consumers of AppErrorView must now create the scrollView for the contennt * Update snapshot tests * Refactor to only have titleView read out by VO once when page loads * GOVUKAPP-949 Add Data Protection capability (#209) * Added DataProtection capability * Moved entitlements * Updated target membership --------- Co-authored-by: Tom Bates <[email protected]@gov.uk> * [GOVUKAPP-991] Add device info to feedback URL (#211) * [GOVUKAPP-991] Add device info to feedback URL Adds phone model (phone device code), iOS version, and app version to help and feedback URL. Passing this info allows us to autopopulate the web form [1]. Renames DeviceModel -> DeviceInformation as there is now a system version + model property. [1]: https://github.com/alphagov/feedback/pull/2027 * Remove unused properties from SettingsCoordinator * Voice over fix (#212) * Fix typo in string key * Fix test :facepalm: * Recent activity strings update (#213) * Updated RecentActivity string keys * Reorder resource files --------- Co-authored-by: Tom Bates <[email protected]@gov.uk> * URL constants (#214) * Updated static urls * Use base components to build gov.uk urls --------- Co-authored-by: Tom Bates <[email protected]@gov.uk> * GOVUKAPP-1016: increase minimum version to 16.0 (#215) increase minimum version to 16.0 and remove uneccessary availability checks * [GOVUKAPP-1017] Update privacy policy to notice (#216) * [GOVUKAPP-1017] Update privacy policy to notice * GOVUKAPP-1016: Update miminum version part 2 (#217) Update package.resolved * [GOVUKAPP-1026] Add missing header traits (#220) * [GOVUKAPP-1020] Create Redactor (#218) * Add redactor class and unit tests * no message * changed variable names * updated test names * Removed Redactable+Extensions * WIP * WIP subclasses * Added unit tests * Added reduce * Removed String extension for pii redacting * Added RedactorTests --------- Co-authored-by: Tom Bates <[email protected]@gov.uk> * [GOVUKAPP-1021] String validator (#219) * Add String Validator class and tests * fixed sonar issue, added more test cases * added max length validator * separate minimum and maximum length validator * removed not needed init for char validator * add char validator * revert changes recently made and updated tests * changed variable names * re organised file structure * updated char validator * updated validate function * StringValidator conforms to validator provider * updated char validator method and test file structure * Fixed tests and StringValidator logic * Updated test length arguments to be easier to read --------- Co-authored-by: Tom Bates <[email protected]@gov.uk> * Bumps onboarding revision (#221) Includes: https://github.com/alphagov/govuk-mobile-ios-onboarding/pull/30 * [GOVUKAPP-1028] Add search results header (#222) * Add search results heading The heading is a table view header, which is focused on when the search results are returned. * Pull out UITableViewDelegate into extension No longer need to skip swiftlint type_body_length. * Update snapshot test * [GOVUKAPP-1055] Update UI buttons to use config init (#225) * updates buttons to use configuration * removed test view controller, viewmodel and tests * [GOVAPPUK-1055]-Remove adaptive stack (#226) replace adaptive stack * [GOVUKAPP-1024] Update edit actions voice over text (#223) * Updates VO accessibility text for edit actions Following accessibility audit. * Disable file_length RecentActivityListViewController Also moves RecentActivitySection to own file. * GOVUKAPP-975 Recent Activities modularisation (#224) * Create GOVKit package and populate with shared or likely to be shared objects * Create RecentActivity package and populate with appropriate objects * Add GOVKit and RecentActivity imports as necessary, clean up repeated code * Move GroupedList to GOVKit * Remove 2 files now in GOVKit * Add/reorganize GOVKit tests * remove unneeded package dependencies * Move some more shared classes to GOVKit, add scheme * Add GOVKit as app dependency, add GOVKit imports where necessary * Add govkit tests to test plan * Fix tests to inject analytics service explicitly where needed. Move ContstantsTests/BaseViewControllerTests to GOVKit * Create GOVKitTestUtilities target for sharing mocks, etc. * Add GOVKit test plan. Clean up after some renaming. * Set up RecentActivity tests * Refactor tests to use new module structure * Further test refactoring and cleanup. * Remove commented code. Fix unit test * Fix code alignment issues * Reorganize Date extensions and arrangers * Remove unneeded extension * Code review improvement * Fix test * Make test mocks internal and import with @testable. Fix variable declaration * Delete file that was resurrected accidentally during merge * Fix missing labels for recent activity (#228) * Adds missing accessibility labels These were missed from the modularization move for recent activity. * Removes old RecentActivity.xcstrings New file lives in the created package. * [GOVUKAPP-1055] Remove UI Button body extension (#229) removed body ui button and replaced it with secondary button from ui component * GOVUKAPP-1030 previous searches (#230) * Add model versioning and migration * Add SearchHistoryItem, SearchHistoryRepository, and tests * Add SearchHistoryRepository to SearchService. * Add SearchHistoryViewController/Model * Integrate search history into SearchViewController/Model * Add clear search history to SearchHistoryRepository and update tests * Implement clear search history feature * Implement ability to delete individual search history items * Show search history/clear search results if user backspaces to clear search field * Make FRC optional to simplify test setup * Fixes from rebase * Add tests * Fix styling * Fix build after merge, add snapshot tests * Increase test coverage, clean up code * Fix some voice over accessibility issues * Revert away from GOVUK button as it was causing resizing issues. Fix some alignment issues * GOVUKAPP-1044 user feedback prompt (#233) * Add UserFeebackView/ViewModel * Add user feedback widget to home page. * Add accessibility info and refactor WidgetView to optionally use accessibility info of content * update tests * Add stat tracking, and add "section = Homepage" to all widget navigation events * Updated gems (#234) Co-authored-by: Tom Bates <[email protected]@gov.uk> * Fixed SearchHistoryItem filename (#235) Co-authored-by: Tom Bates <[email protected]@gov.uk> * [GOVUKAPP-1002] Add search autocomplete (#231) * Add new API client for autocomplete The autocomplete endpoint lives on the main gov.uk domain. * Add GOVRequest for searchSuggestions * Adds suggestions to search service Autocomplete / search both originate from the same product and so keeping specific error handling in SearchServiceClient seems reasonable for future logging etc, even though we're not using error states past the client for suggestions. * Adds SearchSuggestionsViewModel Fetches suggestions using search service. SearchSuggestion created with a unique ID to force tableview to update everytime it reloads (important for autocomplete suggestions feature). * Adds suggestion highlighter Requirements are to bolden words in the suggestion string that do not match the passed in text. The highlighter should work for multiple passed in words and match substrings individual words in the suggestion string. * Expose suggestion highlighter in view model * Add suggestions view controller + cell * Update suggestions tableview and cell Aligns with search history for consistency. Uses UIListContentConfiguration for cell config as much cleaner than manually configuring. * Update suggestions flow considering saved searches Suggestions will appear on the third character inputted and dissapear if under 3 chars (opposite for previous searches). Suggestions will not appear if there aren't any to show. Suggestions will hide if text is cleared. * Limit suggestions to the first five * Fix header not being focusable * Remove Package changes * Moves monitoring textfield editing to delegate The delegate method is fired on return and thus have added a catch as we don't want the suggestions block running on enter. Also correctly returns in suggestions function in view model. * Adds snapshot testing Also fixes a couple issues: - moves translatesAutoresizingMaskIntoConstraints flag to parent context (thanks Tom Bates) - reloads snapshot on load * [GOVUKAPP-1074] Add analytics for history + suggestions (#237) * Add type to search invocation Also renames searchButtonPressed to didInvokeSearch which is a bit more reflective of its responsibilities (history + autocomplete). Uses delegate method for handling the search return vs adding a target which is cleaner as don't need to conform to @objc (e.g for the type enum). * Update snapshot tests Confirms with the new delegate return approach. * govukapp-1040 full screen offline message (#238) * Add networkUnavailable error to AppConfgErrors, and refactor to handle appropriately * Refactor AppUnavailableContainer to handle multiple error types Inject the AppLaunchService instead of AppConfigService, so it can be invoked by Try again action * Update tests to handle new scenarios * Update snapshot tests * Put content in ScrollView to allow for large type * Update snapshots to handle minor ui tweak (and on proper test simulator) * New Push notifications and OneSignal (#236) * Add Notification Service * Added OneSignal * Ordered folders * Added entitlements * Added profiles to fastlane * Added AppEnvironmentServiceTest * Added OneSignal code to NotificationService * Dont fallback to settings * Unit test attempt * Exclude govuk_ios_notification_service from coverage * Updated entitlements * Fixed launch style * Renamed NotificationServiceExtension --------- Co-authored-by: Tom Bates <[email protected]@gov.uk> * govukapp-1038 topics cant be displayed (#240) * Add AppErrorView to TopicsWidgetView and update error handling * Add snapshots for topic error * [GOVUKAPP-1035] Add no topics description for topics widget (#239) * [GOVUKAPP-1035] Add desc for no topics widget * Handle noTopicsLabel with fetch topics error Following: https://github.com/alphagov/govuk-mobile-ios-app/pull/240 * Add snapshot tests for deselecting all topics * Remove reference image targets * Unit test coverage updates (#241) * Set scheme for unit testing * Added GovKit to coverage * Added RecentActivity to coverage --------- Co-authored-by: Tom Bates <[email protected]@gov.uk> * Add notification service identifier to array for signing (#243) Co-authored-by: Tom Bates <[email protected]@gov.uk> * [GOVUKAPP-1002] Update suggestions header text to recent copy (#244) * Fixed snapshot tests being added to target (#246) Co-authored-by: Tom Bates <[email protected]@gov.uk> * GOVUKAPP-1106 send device details with user feedback (#247) Extract help and feedback URL creation to convenience method and send device details with feedback widget * post amigos fixes 28 jan (#248) * Update feedback stat text to match button title * Hide "Show all topics" button if there is a fetch error * Fix code smell * [GOVUKAPP-1103] Update home logo + header (#250) * Add new logo matching new brand * Bumps UI components version for new branch colour https://github.com/alphagov/govuk-mobile-ios-ui-components/pull/26 * Adds header + status bar background Sets the view's background colour to the new header colour and sets the scrollviews background to the previous surface colour. This seemed to be the cleanest solution to change the status bar's colour, vs custom views with margin considerations. Also makes the constraints consistent. * Update snapshots * Removed ui target (#252) Co-authored-by: Tom Bates <[email protected]@gov.uk> * GOVUKAPP-1082 Update recent activity 'done' text to 'cancel' (#251) * GOVUKAPP-1082 Update recent activity 'done' text to 'cancel' * Update snapshot tests * Added schedule job (#253) * Added schedule job * Updated xcode and simulator --------- Co-authored-by: Tom Bates <[email protected]@gov.uk> * govukapp-1104 design updates (#254) * Update to new design scheme. Update package dependencies * update snapshots * Redo snapshots * Rename schedule.yaml to schedule.yml (#255) * [GOVUKAPP-1043] Fix deprecation warnings (#249) * Solved depreciation warnings * renamed window variable * fixed snapshots * refactoring * Add schedule steps (#257) * Added steps to schedule workflow * Debug sonar * Updated schemes * Fixed syntax * Removed sonar debug * Added 6.2.1 lock to sonar * Removed version of brew sonar-scanner * Added JDK setup --------- Co-authored-by: Tom Bates <[email protected]@gov.uk> * [GOVUKAPP-1093] Remove extra padding for empty desc (#258) * [GOVUKAPP-1093] Remove extra padding for empty desc When search results have a blank description there is extra padding applied even though the description label isn't visible. Attempted to mark the bodyLabel as hidden (`isHidden`) but the extra 8pts padding [1] still persists and thus I've just defined the constraint again, minus the constant. [1]: https://github.com/alphagov/govuk-mobile-ios-app/blob/be436a44072a249c7fbcdeb69364c3b822f1d51b/Production/govuk_ios/Views/Search/SearchResultCell.swift#L121-L123 * Removed JDK from sonar action (#259) * Removed JDK from sonar action * Added workflow_call to beta.yml --------- Co-authored-by: Tom Bates <[email protected]@gov.uk> * Concurrency groups (#260) Updated concurrency groups Co-authored-by: Tom Bates <[email protected]@gov.uk> * [GOVUKAPP-1130] Topics widget card breaking (#261) * Break topic cards if title would hyphenate Make topic cards larger depending on the dynamic type set. The main driver of this is to prevent multiple line hyphenation of words in the topic titles. Topic cards will now break if a word is larger than the available card width space. Per card there is 42 points of space not used by the title label, the value has been set to 50 as words hyphenate before reaching the absolute max available space. The implementation could've broken the cards by screen size / content size but breaking by word length avoids having to know device dimensions. * Prevent chevron from being squashed by title When dynamic type increases the chevron can either get squashed or hidden. Giving it a minimum width prevents this from occuring. * Don't calculate columns until view has laid out and we know the bounds --------- Co-authored-by: Joshua Dubey <[email protected]> * [GOVUKAPP-1152] Add topic selector break points (#264) * Reduce column count on topic onboarding Reduces column count on topic onboarding for a given content size and renders compact card which reduces the vertical footprint. This applies for portrait and landscape when the content size is a given size. It is a little crude sizing by solely content size but it seems to work fine for smaller / larger iphones (se & iphone 16 pro). * Apply fonts as per designs * Update snapshot tests * Fix Sonar's Java runtime error https://community.sonarsource.com/t/unable-to-read-truststore-error-since-macos-sonar-scanner-cli-since-7-0-0-4796/133776/13 * Adds fix for Java runtime error for branch worflow (#265) For sonar-scanner versions 7.xx we're getting a Java runtime error. Brew seems to either install either 6.2 or 7.0 everytime we run `brew install sonar-scanner`. 6.2 builds pass fine. There doesn't seem to be an easy way to install specific versions of packages through brew. The below error is returned for version 7.0 and is a known bug. There is a workaround [1] implemented in this PR. Tested on versions 6.2 and 7.0 and run successfully. An alternative workaround is to ensure we're using Java 17 which doesn't have the issue (implemented [2] and then revoked). The problem should be fixed in future versions of sonar-scanner and thus we can then remove the env vars. ``` ... Caused by: java.io.IOException: password supplied for keystore that does not require one ``` Also moves setting env vars to relevant job in sonar_scan_pr. [1]: https://community.sonarsource.com/t/unable-to-read-truststore-error-since-macos-sonar-scanner-cli-since-7-0-0-4796/133776/13 [2]: https://github.com/alphagov/govuk-mobile-ios-app/pull/257/commits/d9ec212ab702de55c756a9ab5844b12d5a127afe * govukapp-1187 grouped list rebranding (#267) * Update topics section header images * Adjust section header layout, apply new list styles * update snapshots * [GOVUKAPP-1180] Update cards branding (#268) * Bump UI components version * Rename surfaceCard to surfaceCardDefault * Update TopicOnboardingCard to new brand * Update topic icons to larger default size * Fix size to new dimensions for topic onboarding * Various home screen updates for new branding Extra bits to call out: 1) removes custom chevron image and replaces by native sf symbols chevron as used by TopicCard. Chevrons should be the same image. 2) makes all chevrons the same size as reflected in designs * Add more spacing for feedback widget * Update snapshot tests * Update all topics screen * [GOVUKAPP- 1111] Modal transition animation spike (#263) * Added modal transition * turned on animation * exclude fade animation from coverage * got commit add animations and tests * renaming variables * added file extension * update test names * update test name * updated tests * add test wrapper * got rid of white space * fixed test * refactoring * govukapp-1207 crown on homepage (#269) * Add crown logo to home page * update snapshots * Revert "[GOVUKAPP- 1111] Modal transition animation spike (#263)" This reverts commit 527597b363e0b8c1c8a7f3c3c544c02db33c97de. * govukapp-1205 wrap up branding (#272) * Update package version to latest UIComponents. New color for "Remove" button * update snapshots * Feature/branding fixes (#273) * Change list heading view background color and reduce padding. Change tint color of checkmark in PYV editing * Update snapshot tests * Fix snapshots after rebase * govuk-1220: Remove feedback banner (#274) Remove feedback banner * GOVUKAPP-1094 Notifications onboarding screen (#270) * Prevent bounce for notifications * Integrate SlideProvider * Updated publisher * Added personalisation animation * Added didappear * Added dynamic primary button title * Added dynamic secondary button titles * Updated Onboarding * Added CoordinatorBuilderTests * Cleaned NotificationOnboardingCoordinatorTests * Moved MockNotificationService * Added Notification string tests * Updated notifications tracking name * Added NotificationServiceTests * Added UNUserNotificationCenter+Interface * Localised the onboarding slide text * Added duplicate exclusions for Onboarding slide creation --------- Co-authored-by: Tom Bates <[email protected]@gov.uk> * GOVUKAPP-1203 Feature switch notifications (#279) * Added hard-coded feature switch --------- Co-authored-by: Tom Bates <[email protected]@gov.uk> * govukapp-1142 topics e commerce tracking (#277) * Add Ecommerce events * Create and send e-commerce events * Refactored commerce event firing to be done in a more SwiftUI-like manner. Update tests. * Add unit tests for Ecommerce event creation * Move ECommmerceItem to it's own file in GOVUK. Fix alignment issues * Fix alignment issues * [GOVUKAPP-1201] Update headers for brand (#276) * Bump ui components version * Updates all topics header to new brand Updates .govUK nav bar appearance to new brand to allow reuse as only SearchViewController used previous version. Moves this config to search controller for the time being as it is getting redesigned and thus will probably change. Neither UINavigationBarAppearance or UIBarButtonItemAppearance supports changing the back chevron colour and thus tintColor has been applied to the nav bar instead. Also moved the appearance extensions to GOVKit which makes them accessible when importing the package. * Allow customisable nav bar appearance Allows swapping between blue / standard nav bar for SwiftUI views. * Apply new brand header to settings * Apply new branding header to recent activity * Update header of taxons and children * Update snapshot tests * Remove individual setting of nav bar appearance The home nav bar is used for the screens that require the new nav styling and thus setting per controller isn't needed currently. * Fixes background showing on scroll bounce When scrolling to the top space emerges between the nav bar and title due to the bounce. If you change the background colour to the nav blue, the same thing happens at the bottom of the screen (blue shows). Applying background gradient (first 1/3 blue) gives a resonable area to allow the bounce without showing the background colour. * Don't apply gradient to topic errors The background is visible through the error views. --------- Co-authored-by: Tom Bates <[email protected]@gov.uk> * Updated Acknowledgements plist (#280) Co-authored-by: Tom Bates <[email protected]@gov.uk> * [GOVUKAPP-1138] Re-add static image to slide 1 (#281) * Re-add static image to slide 1 We want to swap in animations when we have them for each onboarding slide. * Remove unused animation Will re-add at a later date * govukapp-1148 home ecommerce tracking (#282) * Reorganize ecommerce items model to handle homepage vs. topics * Add ecommerce events to home page topics. * Refactor topics details ecommerce events to use new model * Update tests * Increase code coverage. Clean up unused code * Increase coverage * Fixes for e-commerce event firing (#283) * Introduce flag to track loaded state of topic details, so that e-commerce can be fired on back navigation. * Introduce flags to track initial load of topics and whether editing, so e-commerce can be tracked with screen view. * Fix sonar warning * GOVUKAPP-1243 Notifications onboarding copy (#284) * Updated notification onboarding copy * Updated Onboarding and added local strings --------- Co-authored-by: Tom Bates <[email protected]@gov.uk> * Update gems and packages (#285) * Updated gems * Updated packages * Removed unused variables --------- Co-authored-by: Tom Bates <[email protected]@gov.uk> * GOVRequest convenience (#286) * Added GOVRequest+Topics * Added GOVRequest+App * Aded GOVRequest+SearchTests --------- Co-authored-by: Tom Bates <[email protected]@gov.uk> * [GOVUKAPP-1248 & GOVUKAPP-1246] Add search bar to home header (#290) * Remove resizable home logo animation * Add search to home header Uses UISearchBar and creates a new view controller for the home content which enables us to swap out search / home content dependant on whether search is being utilized. * Update styling * Handle cancel state cleanly Removes previous view controller Clears search results on cancel Set search bar text to empty on cancel * Remove search widget code No longer used. * show/hide logo when searching in landscape mode * Add scrollToTop functionality * Remove unused page title * Update snapshot tests * Removes searchBar border appearing with large dynamic type Also makes view controller vars specific to the view controller. * Use contentInset vs constraint Allows tableView's to scroll up the search header * Handles focus state corretly after searching Keeps cancel button active after searchBar resigns first responder. Ensure tableViewHeader gains focus. * Update snapshot tests * Colours search bar button universally When colouring search bar cancel button, avoids referencing internal key names. * Move trackEcommerce() for topics to HomeContentViewController. Make sure ecommerce event only fires via topics save notification on first load. * Use extension for adding / removing controllers * Handle tab selection corretly Results will be cleared if cancelled or home tab tapped when search is displayed. Clicking settings tab won't clear results. --------- Co-authored-by: Joshua Dubey <[email protected]> * Remove onboarding accessibility hints (#289) Removed accessibility hints for primary and secondary buttons Co-authored-by: Tom Bates <[email protected]@gov.uk> * Updates ContentScrollable to ResetsToDefault (#291) As ContentScrollable / scrollToTop doesn't really capture the full responsibilities of the function in HomeViewController, this has been renamed to ResetsToDefault / resetState. We need the protocol for the HomeCoordinatorTests. * Fix search related accessibility issues (#294) * Allow word wrapping for suggested search title * Stop magnifying glass from shrinking with large text * Run weekly job at 15:00 (#295) Co-authored-by: Tom Bates <[email protected]@gov.uk> * [GOVUKAPP-1265] Colour search result card colour (#297) * [GOVUKAPP-1265] Update search card colour * Update snapshot tests * [GOVUKAPP-1251] Readd search feature flag (#296) * Hide search if search feature disabled * Cover search interactions in snapshot tests * Inject search/activity dependencies via coordinator More consistent and allows for more consistent Mocking * Update snapshot tests Use MockSearchService to ensure clean state. * govukapp-1098 homepage notification upsell (#288) * Add notifi…
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Added EditTopics page and the ability to select favorite topics to show on Home page
Topic information is now persisted in CoreData after download. Topics have an 'isFavorite' attribute which
can be toggled on the EditTopics page
The TopicsWidgetView now depends on CoreData for showing it's list of topics. As such, it listens for managed object context changes and updates accordingly.
One change worth pointing out is that CoreDataRepository now has a scope of singleton when being used by Factory. This prevents multiple repos from being created, which I believe was the reason we were seeing errors about non-unique entities.