Privacy-Period-Tracker/app/src/main/res/values/strings.xml

21 lines
896 B
XML
Raw Normal View History

chore: adopt the project template and add the Kotlin/Compose skeleton Period was a bare directory holding one 2,527-line specification, with no git repository, no tracker and no documentation convention. This is the adoption from Projects/Template/START-HERE-New-Project.md, plus a project that compiles so the hooks and future guards have something real to run against. Documents. scaffold.sh created 19 paths, 0 skipped. The specification moved to docs/planning/PRODUCT_PLAN.md unchanged in substance, with a status header; the capitalised Docs/ is gone. Every scaffolded document was filled in for Period. docs/OPERATIONS.md deleted — an offline app is not a deployed service. DOC_TRUST_MAP.md written last, describing what is actually here, including what this project deliberately does not have. Code. Four Gradle modules. domain/cycle and domain/prediction are kotlin("jvm") and cannot see the Android SDK, so the engine is testable without an emulator — 17 tests pass, 12 of them the acceptance cases from PRODUCT_PLAN.md §51. BaselinePredictionEngine is a robust-median prototype and explicitly not the product; it exists so Batch 02's replacement can be shown to be better rather than merely different. Versions verified against their official sources today rather than inherited from the specification's own numbers, which that document asks for: Kotlin 2.4.10, AGP 9.3.1, Gradle 9.7.0, Compose BOM 2026.08.00, Room 2.8.4, Hilt 2.60.1. AGP 9 ships Kotlin built in, so org.jetbrains.kotlin.android is no longer applied. compileSdk is 37 because current AndroidX requires it; targetSdk stays 36, Play's floor from 2026-08-31, and the difference is deliberate. Six scripts taken into scripts/; the rest declined and named in docs/TOOLS.md. Three hooks in .githooks/, with pre-commit adapted to Gradle. closes #1 closes #2
2026-08-18 02:16:47 -05:00
<?xml version="1.0" encoding="utf-8"?>
<resources>
feat: the real brand — Privacy:Period Tracker The project owner supplied artwork and a full visual brand guide mid-session, which answers #8: the three marks an agent must not fake now exist because a person made them. docs/data/img now holds icon.webp (512x512, 11 KB), logo.webp (1024 long edge, 28 KB) and banner.webp (2176x725, 20 KB) — all webp by magic bytes, all far under the 512 KB ceiling. Produced from the supplied art rather than invented. Two things had to be handled rather than converted blindly. The sources render their rounded corners against black, so a naive crop carried black wedges into the banner; the corners are flood-filled to the artwork's own ground first. And the lockup is square, so a 3:1 crop would have cut the wordmark in half — the banner is the whole lockup on a matching ground, which has no seam to see because the artwork's edges ARE that ground. The source PNGs and the guide moved to docs/design/: docs/data/img is for the three marks the Command Center renders, and its README is explicit that reference art and exported sources do not belong there. THE PALETTE, AND ONE DELIBERATE CONFLICT core/designsystem now carries the guide's colours — deep plum, rich purple, period rose, lavender mist, and an eggplant dark theme that is never flat black. §39 of the specification asks for a muted teal or sage fertile window, to hold it apart from the period colour. The guide is plum and rose throughout and gives fertility its own pink. The guide wins: it is newer, it is the owner's, and a teal accent inside this identity would look borrowed from another app. What §39 was protecting is kept by other means, and this is why the conflict is safe to resolve that way: the calendar's states differ in SHAPE. A solid disc, a dotted ring, a continuous ring and a star stay tellable apart in greyscale and to a colourblind user, which is what §43 actually requires. The departure is written down in docs/design/README.md rather than left to be discovered. The launcher icon keeps its vector for now, in brand colours. The supplied emblem has content close to its edges and an adaptive icon masks about a quarter of the canvas away, so dropping it in unmodified would crop the shield. Fitting it to the safe zone is Batch 08's final-artwork work. closes #8
2026-08-18 15:31:52 -05:00
<!--
The launcher label. The brand is "Privacy:Period Tracker" (BRAND_GUIDE.md
§10); the launcher gets the short form, because a long label is truncated
on most home screens anyway.
Worth a decision rather than a default: §32 wants an optional INCOGNITO
launcher name and icon for people who share a phone, and that is the
feature that handles discretion. The default label is the brand.
-->
chore: rename the project to Privacy: Period Tracker "Period" was always a working name — PRODUCT_PLAN.md §55 said so. The real identity arrived with the brand guide and artwork, and this makes the project call itself by it. The repository is renamed in place on Forgejo (null/Period -> null/Privacy-Period-Tracker), which keeps all 30 commits, all 27 issues, all 8 milestones and the four severity labels — verified by counting them on both sides rather than assuming a rename is lossless. The git remote follows in the same breath, so this commit's automatic push is what proves the new URL works. WHAT DELIBERATELY DID NOT MOVE "Period" is the product name AND the central domain word, and a mass rename would have turned the data model into nonsense. PeriodRecord, PeriodWriteResult, confirmPeriodStart, the period_records table and the button that says "Started period" all describe a menstrual period rather than a product, and all 239 references to them are untouched. So are the Kotlin package and applicationId. dev.privacyllc.period already reads correctly under the new name — privacyllc is the company, period is the app — and changing it would rewrite 68 files, rename the Room schema directory and break the hardcoded path in schema-guard.sh for no gain. period.db stays for a sharper reason: renaming a database file orphans the data on every device that already has it. Sixteen files changed, and the diff is small on purpose. THE NAME HAS A SPACE AND THE ARTWORK DOES NOT Canonical is "Privacy: Period Tracker". The supplied wordmark sets it without one, so logo.webp and banner.webp now disagree with every document and with the app itself. BRAND_GUIDE.md §10 is updated to the space form and says plainly that the drawn mark has not caught up. Filed separately rather than papered over, because closing that gap needs an artist and not a rename.
2026-08-18 15:54:34 -05:00
<string name="app_name">Privacy: Period</string>
<string name="app_full_name">Privacy: Period Tracker</string>
feat: the real brand — Privacy:Period Tracker The project owner supplied artwork and a full visual brand guide mid-session, which answers #8: the three marks an agent must not fake now exist because a person made them. docs/data/img now holds icon.webp (512x512, 11 KB), logo.webp (1024 long edge, 28 KB) and banner.webp (2176x725, 20 KB) — all webp by magic bytes, all far under the 512 KB ceiling. Produced from the supplied art rather than invented. Two things had to be handled rather than converted blindly. The sources render their rounded corners against black, so a naive crop carried black wedges into the banner; the corners are flood-filled to the artwork's own ground first. And the lockup is square, so a 3:1 crop would have cut the wordmark in half — the banner is the whole lockup on a matching ground, which has no seam to see because the artwork's edges ARE that ground. The source PNGs and the guide moved to docs/design/: docs/data/img is for the three marks the Command Center renders, and its README is explicit that reference art and exported sources do not belong there. THE PALETTE, AND ONE DELIBERATE CONFLICT core/designsystem now carries the guide's colours — deep plum, rich purple, period rose, lavender mist, and an eggplant dark theme that is never flat black. §39 of the specification asks for a muted teal or sage fertile window, to hold it apart from the period colour. The guide is plum and rose throughout and gives fertility its own pink. The guide wins: it is newer, it is the owner's, and a teal accent inside this identity would look borrowed from another app. What §39 was protecting is kept by other means, and this is why the conflict is safe to resolve that way: the calendar's states differ in SHAPE. A solid disc, a dotted ring, a continuous ring and a star stay tellable apart in greyscale and to a colourblind user, which is what §43 actually requires. The departure is written down in docs/design/README.md rather than left to be discovered. The launcher icon keeps its vector for now, in brand colours. The supplied emblem has content close to its edges and an adaptive icon masks about a quarter of the canvas away, so dropping it in unmodified would crop the shield. Fitting it to the safe zone is Batch 08's final-artwork work. closes #8
2026-08-18 15:31:52 -05:00
<string name="app_tagline">Know your cycle. Protect your privacy.</string>
chore: adopt the project template and add the Kotlin/Compose skeleton Period was a bare directory holding one 2,527-line specification, with no git repository, no tracker and no documentation convention. This is the adoption from Projects/Template/START-HERE-New-Project.md, plus a project that compiles so the hooks and future guards have something real to run against. Documents. scaffold.sh created 19 paths, 0 skipped. The specification moved to docs/planning/PRODUCT_PLAN.md unchanged in substance, with a status header; the capitalised Docs/ is gone. Every scaffolded document was filled in for Period. docs/OPERATIONS.md deleted — an offline app is not a deployed service. DOC_TRUST_MAP.md written last, describing what is actually here, including what this project deliberately does not have. Code. Four Gradle modules. domain/cycle and domain/prediction are kotlin("jvm") and cannot see the Android SDK, so the engine is testable without an emulator — 17 tests pass, 12 of them the acceptance cases from PRODUCT_PLAN.md §51. BaselinePredictionEngine is a robust-median prototype and explicitly not the product; it exists so Batch 02's replacement can be shown to be better rather than merely different. Versions verified against their official sources today rather than inherited from the specification's own numbers, which that document asks for: Kotlin 2.4.10, AGP 9.3.1, Gradle 9.7.0, Compose BOM 2026.08.00, Room 2.8.4, Hilt 2.60.1. AGP 9 ships Kotlin built in, so org.jetbrains.kotlin.android is no longer applied. compileSdk is 37 because current AndroidX requires it; targetSdk stays 36, Play's floor from 2026-08-31, and the difference is deliberate. Six scripts taken into scripts/; the rest declined and named in docs/TOOLS.md. Three hooks in .githooks/, with pre-commit adapted to Gradle. closes #1 closes #2
2026-08-18 02:16:47 -05:00
<string name="tab_today">Today</string>
<string name="tab_calendar">Calendar</string>
<string name="tab_insights">Insights</string>
<string name="tab_settings">Settings</string>
</resources>