Merged
Conversation
- feat(hooks): add FolderContextHolder and loader hookers - feat(prefs): add ContentProvider and settings UI for per-folder toggle - feat(data): add FolderSortPreferenceStore with LRU and migration - feat(hooks): update SortCursorHooker to use folder context - feat(module): register loader hooks with graceful fallbacks - fix(hooks): detect folder changes and skip duplicate persists - refactor(hooks): optimize loaders with early return and cached reflection - refactor(hooks): simplify to inline global-first routing - refactor(hooks): isolate per-folder state with WeakHashMap - refactor: apply idiomatic Kotlin patterns and fix persist bug - refactor: replace ContentProvider with libxposed RemotePreferences - refactor: extract shared loader fields and bump to 2.0.0-beta - feat(ui): rewrite settings with Jetpack Compose and Material 3
- Long-press (~400ms) on sort option saves for current folder only - Normal tap saves globally and clears any folder override - Toast feedback: "Sort saved for [folder]", "Global sort saved", "Folder override cleared" - Removed settings UI (MainActivity, PrefsManager, RememberMySortApp) - Added TouchTimeTracker for dialog touch event interception - Added SortByUserHooker to detect long-press timing - String resources for toast messages
- Remove dead migration code from FolderSortPreferenceStore - Combine double toast into single message with context - Add displayName() to FolderContext for readable folder names - Replace sentinel -1 with nullable Int for clearer error handling - Add longPressConsumed flag to prevent double-triggering on finger lift - Capture dialogFolderKey on dialog open for stable folder context - Hook onStop via SortDialogDismissHooker to clear dialog state - Rename methods for clarity: triggerAutoRelease → performLongPressClick - Remove debugViewHierarchy and reduce per-touch logging
Hook RecentsLoader to clear lastLoadedContext, preventing wrong per-folder saves when user opens sort dialog in Recent view.
- Add Usage section with tap/long-press behavior - Add per-folder sorting quirks in NOTE callout - Consolidate Requirements and Compatibility sections - Streamline Installation and Build sections
- SortCursor hook now throws on failure (module is broken without it) - Consistent log format: $className.method - Add explicit type for LOADERS list
let/?: pattern fails for void methods - invoke() returns null, causing ?: branch to also execute. Use explicit if/else instead.
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.
Closes #3
Summary