Add folder customization page for per-account folder management#855
Merged
Conversation
Introduce a dedicated settings page that lets users reorder, hide, and pin/unpin folders per account. Folders are organized into Pinned, Categories (Gmail only), and More sections with drag-to-reorder via ListView. New Order column on MailItemFolder persists the custom layout; the default sort falls back to alphabetic when no custom order is set. A reset action wipes all customization in a single transaction and restores system-folder stickiness.
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
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.
To address #853, this PR brings a new page where users are given more power to re-order their folder layout as they wanted. Default is always alphabetic with respecting the system folder/pinned order.
Summary
Adds a new Folder Customization page that allows users to reorder, pin/unpin, and hide folders on a per-account basis. This feature provides granular control over folder visibility and organization in the navigation menu.
Key Changes
New ViewModel:
FolderCustomizationPageViewModelmanages folder organization with three sections:New UI Page:
FolderCustomizationPagewith drag-and-drop reordering support viaListView.CanReorderItems, expandable sections for each folder group, and toggle buttons for pin/hide actionsNew Data Model:
FolderCustomizationItemViewModelwrapsMailItemFolderentities and exposes observableIsHiddenproperty for UI bindingDatabase Schema: Added
Ordercolumn toMailItemFoldertable to persist user-defined folder ordering (0 = no custom order)Service Layer Enhancements (
IFolderService):ChangeFolderHiddenStatusAsync()- Toggle folder visibilityUpdateFolderOrdersAsync()- Persist custom folder orderingResetFolderCustomizationAsync()- Restore default layout and visibilityFolder Sorting Logic: Implemented
ApplyFolderSort()method that orders folders by:Navigation Integration:
FolderCustomizationPagetoWinoPageenumAccountDetailsPagewith "Customize folder list" settings cardLocalization: Added 17 new translation keys for UI strings (title, descriptions, section headers, button tooltips, reset confirmation)
Notable Implementation Details
PersistLayoutAsync()to save changeshttps://claude.ai/code/session_01B1uTYYpQkWu137bqZo521n