Skip to content

Modern UI redesign, on-device fallback parser, and real mute/block - #12

Merged
vssinghh merged 2 commits into
mainfrom
feat/modern-ui-redesign
Jul 5, 2026
Merged

Modern UI redesign, on-device fallback parser, and real mute/block#12
vssinghh merged 2 commits into
mainfrom
feat/modern-ui-redesign

Conversation

@vssinghh

@vssinghh vssinghh commented Jul 5, 2026

Copy link
Copy Markdown
Owner

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

  • Full Material 3 tonal surface system — warm paper-like light theme and a deep violet-black dark theme, refreshed brand-violet primary, complete type scale. Compose BOM → 2025.05.00.
  • Bold gradient-glyph headers on every screen; proper Material icons for nav tabs and settings rows (no more emoji mic / mismatched Send-as-Chat icon).
  • 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 (action / app / pattern / time / exception).
  • Rules / History: action-colored cards, attribute chips, day-grouped history with filter tabs, shared empty states, animated item placement.
  • Onboarding: springy hero, animated step pills, feature highlights.

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.
  • MUTE now snoozes notifications out of the shade (was a no-op); the listener also skips its own and ongoing/foreground notifications.
  • Wired up the onboarding battery-exemption warning dialog (referenced by tests, never implemented).
  • History filter tabs (All/Blocked/Muted/Delivered) rendered in the UI.
  • Settings refreshes permission status on entry.

Build / tests

  • Espresso → 3.7.0 / test-ext → 1.3.0 (3.5.1 crashes on API 35+, which was masking the suite); dependency constraints added for the transitive bump.
  • Raised Gradle daemon heap/metaspace to prevent OOM builds.
  • Added FallbackCommandParser unit tests; updated tests for the new UI/copy.
  • All 70 unit tests and 62 instrumentation tests pass.

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

vssinghh and others added 2 commits July 5, 2026 11:20
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
@vssinghh
vssinghh merged commit c3aa3fd into main Jul 5, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant