Skip to content
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

Menu Manager Refactor and Updating Implementation #1901

Merged
merged 120 commits into from Sep 24, 2021

Conversation

joeljfischer
Copy link
Contributor

@joeljfischer joeljfischer commented Jan 25, 2021

Fixes #1957, #2027, #2028

Partially Fixes #1898

Risk

This PR makes no API changes.

Testing Plan

  • I have verified that I have not introduced new warnings in this PR (or explain why below)
  • I have run the unit tests with this PR
  • I have tested this PR against Core and verified behavior (if applicable, if not applicable, explain why below).

Unit Tests

Unit tests added and refactored

Core Tests

  • Tested sending identical cells with new handlers, both main menu and sub menu
  • Tested sending menu with many subcells, then reversing the menu and its subcells
  • Tested sending menu then updating cells at the beginning, middle, and end of the list
  • Tested forcing window capability to not check certain fields to test menu uniqueness when stripping fields should work properly.
  • Tested sending cells with identical main text on Sync and Manticore produces different results

Core version / branch / commit hash / module tested against: Manticore (v7.1.1), Sync v3.4
HMI name / version / branch / commit hash / module tested against: Manticore (v0.10.0), Sync v3.4

Summary

This PR refactors the main menu manager to use operation queues and fixes many bugs.

Changelog

Bug Fixes

Tasks Remaining:

n/a

CLA

@joeljfischer joeljfischer added proposal Accepted SDL Evolution Proposal manager-screen Relating to the manager layer - screen managers labels Jan 25, 2021
@joeljfischer joeljfischer self-assigned this Jan 25, 2021
@joeljfischer joeljfischer added this to In progress in v7.1.0 via automation Jan 25, 2021
* Configuration update early returns need to finish the operation
* Move enum to update algorithm file in order to make it more easily available to operations
* Fix menu manager hmi level / menu context suspension of queue
* Move updating menu cells to delete / send to dynamic operation
* Fix setting ids to be in menu manager and out of dynamic operation
* Refactor checking artworks to use whichever ones actually uploaded and skipping showing any that failed
* Add menu replace operation cancelled errors
* In progress changes to track and pass back current menu state
# Conflicts:
#	SmartDeviceLink-iOS.xcodeproj/project.pbxproj
* Move transfer cell id method to menu replace utilities
* Rename `updateIdsOnMenuCells` to `addIdsToMenuCells` on SDLMenuReplaceUtilities
* Update menu replace operation:
  * Re-add transferring Ids on keeps
  * Update names of delete / add menu cell methods
  * Add menu cell method now doesn't send submenus
* Many method name clarification updates
* Hopefully fix mis-using global updatedMenu when submenus are in view
* Re-enable sending submenus for add cells that are not submenus of keeps
@joeljfischer joeljfischer marked this pull request as ready for review August 25, 2021 17:31
SmartDeviceLink/private/SDLMenuManager.m Show resolved Hide resolved
SmartDeviceLink/public/SDLMenuCell.m Outdated Show resolved Hide resolved
SmartDeviceLink/private/SDLMenuManager.m Show resolved Hide resolved
SmartDeviceLink/private/SDLMenuReplaceOperation.m Outdated Show resolved Hide resolved
SmartDeviceLink/private/SDLMenuReplaceOperation.m Outdated Show resolved Hide resolved
SmartDeviceLink/private/SDLMenuReplaceOperation.m Outdated Show resolved Hide resolved
SmartDeviceLink/private/SDLMenuReplaceOperation.m Outdated Show resolved Hide resolved
SmartDeviceLink/private/SDLMenuReplaceOperation.m Outdated Show resolved Hide resolved
FrankElias77
FrankElias77 previously approved these changes Sep 14, 2021
# Conflicts:
#	SmartDeviceLink-iOS.xcodeproj/project.pbxproj
#	SmartDeviceLink-iOS.xcodeproj/xcshareddata/xcschemes/SmartDeviceLink-Example-Swift.xcscheme
@joeljfischer joeljfischer merged commit 095d0a2 into develop Sep 24, 2021
@joeljfischer joeljfischer deleted the feature/issue-1898-menu-manager-refactor branch September 24, 2021 12:55
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
manager-screen Relating to the manager layer - screen managers proposal Accepted SDL Evolution Proposal
Projects
None yet
3 participants