The main user-visible change is that adding to system contacts UI will now always be presented modally instead of views being pushed onto current navigation stack.
I have refactored repeated permissions check + view presentation code from individual call sites into a new "flow" class that is now also responsible for presenting contact editing UI.
These changes also fix two issues:
• "Add to Existing Contact" option was missing from group participant's info sheet.
• "Contact Details" was opened in editing mode from individual chat settings screen.