Fix/activity filter#300
Open
swedishfrenchpress wants to merge 6 commits intomainfrom
Open
Conversation
Removes the expandable filter bar (#298) and folds its actions into the existing three-dots overflow on the activity screen. Pending toggle is now binary (Show/Hide pending); the obscure pending-only mode is dropped. Date filter opens a bottom sheet with presets (All time, Last 7/30 days, This month, Custom range). Active filter state surfaces as a subtitle under the toolbar title (e.g. "Mar 15 - Apr 20 · Pending shown") instead of duplicating state in inline buttons. Migrates legacy SharedPreferences key `filter_state` (Int) to `hide_pending` (Boolean) once on first launch. Bottom sheet uses setFragmentResult so selections survive rotation. Co-Authored-By: Claude Opus 4.7 (1M context) <[email protected]>
- Apply ThemeOverlay.Numo.MaterialCalendar to MaterialDatePicker so it uses the brand accent on a light surface in dialog mode, instead of the default fullscreen with the dark calendar grid. - Move the active-filter caption out of the toolbar (which forced the title to shift vertically when it appeared) into the balance section under the sat amount. Title no longer moves; the list reflows below the indicator instead, which reads as content rather than chrome jitter. - Tap the indicator to clear all filters (pending hidden, dates reset). Co-Authored-By: Claude Opus 4.7 (1M context) <[email protected]>
Replaces the bare caption with a Material Chip (outlined, brand-divider stroke). The close icon makes the dismiss affordance explicit instead of relying on a hidden ripple. Tapping the chip body or the close icon both clear all filters. Co-Authored-By: Claude Opus 4.7 (1M context) <[email protected]>
Targeted copy pass on strings touched in the recent filter refactor: - history_subtitle_pending_shown: "Pending shown" → "Including pending" (active voice; reads as an active filter, not a debug status). - history_filter_date_range_format: en dash for date ranges. - history_filter_date_all: "All Time" → "All time" (sentence case for consistency with the rest of the bottom sheet). - history_filter_date_picker_title: "Select Date Range" → "Choose dates" (sentence case + tighter). - history_menu_export_activity: "Export Activity" → "Export to CSV" (matches the existing success toast and is more specific about the outcome). Scope intentionally limited to strings we introduced or actively use in the filter refactor. Pre-existing copy elsewhere on the screen (toolbar title, balance label, empty state, dialogs, row titles) left untouched. Translations in es/ja/ko/pt are now slightly out of sync semantically (notably for export and date picker title); a follow-up translator pass will reconcile. Co-Authored-By: Claude Opus 4.7 (1M context) <[email protected]>
Android XML strips leading/trailing whitespace from string resources unless the value is wrapped in double quotes. The previous separator " · " was being compiled down to "·", producing chip text like "Apr 25·Including pending" with no breathing room between segments. Wrapping the value in quotes preserves the spaces verbatim. Co-Authored-By: Claude Opus 4.7 (1M context) <[email protected]>
The "pending only" filter mode was removed in this PR. The test that asserted the legacy filter_state=2 still produced a pending-only list now fails as designed. Repurposed it to assert the migration path we shipped: legacy filter_state=2 maps to hide_pending=false (show all transactions), the legacy key is removed from prefs, and the new key is written. This gives regression coverage on the one-time migration code in migrateLegacyFilterStateIfNeeded() rather than just deleting the test. Co-Authored-By: Claude Opus 4.7 (1M context) <[email protected]>
Codecov Report❌ Patch coverage is Additional details and impacted files@@ Coverage Diff @@
## main #300 +/- ##
============================================
- Coverage 22.31% 22.20% -0.11%
+ Complexity 854 848 -6
============================================
Files 150 151 +1
Lines 19491 19547 +56
Branches 2490 2475 -15
============================================
- Hits 4349 4340 -9
- Misses 14580 14658 +78
+ Partials 562 549 -13 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
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.
Summary
Replaces the expandable filter bar (#298) with overflow-menu actions and a date-filter bottom sheet. Drops the "Pending only" mode in favor of a binary Show/Hide pending toggle.
Example
04251004.mp4
Changes
MaterialDatePicker).Mar 15 – Apr 20 · Including pending). Tap or X clears all filters.MaterialDatePickerthemed light with brand accent, dialog mode (was generic dark fullscreen).filter_state: Int→hide_pending: Booleanon first launch.Testing + QA