Modern UI redesign, on-device fallback parser, and real mute/block - #12
Merged
Conversation
UI - Full Material 3 tonal surface system with a warm light theme and a deep violet-black dark theme; refreshed brand violet primary and type scale. - Bold gradient-glyph headers on every screen; proper Material icons for nav tabs and settings rows (replacing emoji/mismatched icons). - Chat: real ChatMessage model, gradient user bubbles, assistant avatar, pill input with inline mic + gradient send button, auto-scroll, and a redesigned rule-proposal card with colored attribute chips. - Rules/History: action-colored cards, attribute chips, day-grouped history with filter tabs, shared empty states, and animated item placement. - Onboarding: springy hero, animated step pills, feature highlights. - Bump Compose BOM to 2025.05.00. Functionality - Add FallbackCommandParser so the app is fully usable without Gemini Nano (deterministic parsing of common commands) + "Basic mode" indicator. - MUTE now snoozes notifications out of the shade (previously a no-op); listener skips its own and ongoing/foreground notifications. - Wire up the onboarding battery-exemption warning dialog. - History filter tabs (All/Blocked/Muted/Delivered) rendered in the UI. - Settings refreshes permission status on entry. Build/tests - Upgrade Espresso to 3.7.0 / test-ext 1.3.0 (3.5.1 crashes on API 35+); add dependency constraints for the transitive bump. - Raise Gradle daemon heap/metaspace to prevent OOM builds. - Add FallbackCommandParser unit tests; update tests for the new UI/copy. All 70 unit tests and 62 instrumentation tests pass. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
# Conflicts: # app/src/main/java/com/hush/app/ui/screens/history/HistoryScreen.kt # app/src/main/java/com/hush/app/ui/screens/rules/RulesScreen.kt
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.
Redesigns Hush end to end, adds functionality it was missing, and gets the full test suite green on a real device (Pixel 9 Pro Fold, Android 17, Gemini Nano active).
UI
ChatMessagemodel, gradient user bubbles, assistant avatar, pill input with inline mic + gradient send button, auto-scroll, and a redesigned rule-proposal card with colored attribute chips (action / app / pattern / time / exception).Functionality
FallbackCommandParser— the app was unusable without Gemini Nano (input disabled); now a deterministic parser handles common commands ("Mute Instagram", "Block Slack after 6pm", "Mute WhatsApp except from Bob") with a "Basic mode" indicator.Build / tests
FallbackCommandParserunit tests; updated tests for the new UI/copy.Verified on device
Fresh install → onboarding → typed "Block notifications containing spam" → Gemini Nano parsed it → confirmed → posted a matching notification → blocked, removed from the shade, and logged in History.
🤖 Generated with Claude Code