Skip to content

Add AppCategory model (#323) - #324

Merged
BarMal merged 1 commit into
masterfrom
feature/app-category-model
Jun 13, 2026
Merged

BarMal merged 1 commit into
masterfrom
feature/app-category-model

Conversation

@BarMal

@BarMal BarMal commented Jun 13, 2026

Copy link
Copy Markdown
Owner

$(cat <<'EOF'

Summary

  • Adds AppCategory data class with stable encode/decode for persistence in LauncherSettings
  • 8 default seeds: communications, finance, shopping, media, productivity, system, customisation, games
  • custom() factory normalises free-text titles into slug IDs (& → and, non-alphanumeric → -)
  • Escape-aware |-delimited serialisation handles titles containing the separator
  • decodeList / encodeList deduplicate by ID and fall back to defaults on blank/corrupt input
  • Full unit test coverage in AppCategoryTest

Closes #323 (model foundation — UI and assignment work to follow in subsequent slices)

Test plan

  • ./gradlew :app:testDebugUnitTest passes
  • Default category seeds present (communications, finance, shopping, system, customisation)
  • Round-trip encode/decode preserves all fields including escaped separators
  • Blank/null stored value falls back to defaults
  • Malformed lines are silently skipped

https://claude.ai/code/session_014SVjLmSTdqY3hSCrK59YFV
EOF
)


Generated by Claude Code

Stable user-facing category definition with encode/decode for
persistence in LauncherSettings, default seeds, custom category
creation, and id normalisation.

https://claude.ai/code/session_014SVjLmSTdqY3hSCrK59YFV
@BarMal
BarMal merged commit 96ebbd4 into master Jun 13, 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.

Add categories

2 participants