Native Android • Experience & delivery plan • 16 October 2026
BULLY
DESIGN PROPOSAL • NOT A RELEASE
One clear place to ask for help. Trusted people, understandable status, and a calm companion — built into the existing BULLY app.
Prepared for Heath from the supplied artwork and the canonical Kotlin/Compose source. The visual is a proposed direction; capability statements below distinguish source evidence from future connections.
01 / The visual direction
Concept artwork, not a running-app capture. The central home, status view and companion reuse existing surfaces. Generated text and layout are guidance; native measurements and behavior below govern implementation.
Obsidian surfaceHelp / redAttention / amberInformation / blueReadable warm white
Keep the shield, pulse and MUSE orb. Use restrained edge lighting around actions, solid readable text, and subtle glass panels. Green check-in styling describes the action; it must never certify that the person is safe. Map these proposals to existing theme tokens before implementation.
02 / One app, five routes, one companion
01 • CHATS
Your trusted conversations
chats → MessengerScreen
Guardians and verified school staff, with clear recipient identity and message state. Keep the current locked notice until adult authority and access rules are proven.
TARGET CONNECTION • CURRENTLY LOCKED
02 • FEED
Useful, calm support
feed → CuratedFeedScreen today
Curated support resources and saved items. Public posts, comments and social counts stay gated behind the existing social lock pending a reviewed design.
CURATED ROUTE PRESENT IN SOURCE
03 • BULLY
Help without hunting
sos → SosScreen
Large hold control, trusted people, actual location availability, practice mode and per-recipient SMS results. Keep a check-in distinct from cancelling an active alert.
LOCAL ALARM / SMS CODE PRESENT
04 • REPORTS
Explain what happened
reports → IncidentReportScreen
Draft, review and submit, with separate “saved on this device” and “submitted” states. An alert alone does not prove a report reached staff.
EXISTING SCREEN • DELIVERY NEEDS PROOF
05 • MAPS
Location with context
maps → GeofencingScreen
Real fix and its age, permission/offline states, and approved pins. Never invent a school, safe place, distance or moving location. A map is not proof that a place is safe.
EXISTING SCREEN • LIVE MAPS UNVERIFIED
COMPANION • NO SIXTH TAB
MUSE / NOVA
MuseChatScreen → existing full-screen dialog
Talk it through, find support, or draft a message. Explain when support is on-device. Keep typing available when speech is denied or unavailable; let the person review a draft before sending.
LOCAL SUPPORT • CLOUD LOCK IS OFF
The five bottom items remain Chats → Feed → BULLY → Reports → Maps. Settings stays behind the gear. A future staff response view is a role-protected state within the existing app, subject to verified server authority.
03 / The help flow
1. HoldNormal help uses the existing 10-second hold. Release early to stop. Practice must be unmistakable and send nothing.
2. AttemptUse saved guardians and a real location fix if available. Show missing contact, permission and network conditions honestly.
3. Show statusEach recipient has its own sending, sent-from-phone, failed or not-attempted result. A pending retry is not delivery.
4. Human responseProposed connected service: a verified recipient explicitly acknowledges or chooses to respond. SMS send callbacks do not establish this.
5. Check inPrepare/send a check-in with its own result. Cancellation says the alarm was cancelled; it does not announce that the person is safe.
“Sent from this phone” → evidence of the send result.
“Someone is responding” → evidence of a real person’s response.
| Condition | Proposed user wording | Evidence required |
| No guardian | Add a trusted person before texting an alert. | Saved guardian list is empty. |
| Permission unavailable | Text not attempted — SMS permission is unavailable. | Actual permission/service check. |
| Sending | Sending from this phone… | Gateway operation is pending. |
| Sent from phone | Handed to the network. Delivery not confirmed. | Android sent callbacks for all message parts. |
| Failed / retrying | Couldn’t send. Retrying… | Failure plus an actual scheduled retry; expose a final failure when exhausted. |
| Location unavailable | Location unavailable. | No real fix. A stale fix must include its age. |
| Human acknowledged | Seen by your trusted person. | Future authenticated acknowledgement. Not inferred from SMS. |
| Responding | Your trusted person has said they are responding. | Future explicit authenticated action, with identity/time. |
04 / The machinery beneath it
Device path • present in source
Compose screens → BullyViewModel / AlarmCore → EmergencySOSManager → GuardianAlertDispatcher → AndroidSmsGateway + FusedGeoProvider.
Room holds local state. SafetyTimer and the existing watch service support timer/retry behavior. Preserve current owner checks, duplicate-send protection and practice isolation while improving the layout.
MUSE checks local guardrails and fixed help answers before its optional cloud path. Local rules are bounded; no claim of universal crisis detection.
Connected path • proposed / unverified
Firebase Auth identity → server-owned guardian/school membership → restrictive access rules → authorized alert/message sender → recipient action → receipt displayed in BULLY.
Reuse existing services and collection names after inspection. Keep staged configuration staged until access, privacy and test isolation pass. Do not infer a school role from a local selector.
Cloud AI remains locked until its separate privacy and provider review. No personal, health or crisis text goes to an unapproved provider.
05 / What is present, and what still needs evidence
| Area | Observed in this review | Limit / next proof |
| Workspace | Workspace guard passed for E:/Bully-Android-Standalone and com.bullyyouth.app. | Does not measure cloud health. |
| Navigation | Five route declarations and callers inspected; MUSE opens as a full-screen dialog. | No device navigation/layout test performed in this design task. |
| Guardian SMS | Actual Android sent-result callbacks, per-recipient states and dispatcher/retry code inspected. | Two physical phones must prove send/arrival behavior, failures and cancellation. |
| Messenger | MessengerLock.ENABLED = false. | Verified adult accounts and server access checks before activation. |
| Feed | SocialFeedLock.ENABLED = false; route selects curated content. | Open social posting needs separate redesign/review. |
| MUSE / NOVA | Local checks/answers and cloud gate inspected; NovaCloudLock.ENABLED = false. | Device speech and sensitive-text lifecycle need their own tests. |
| Google services | Setup record documents registration and staged config. | No live console, sign-in, Maps or recipient acknowledgement verification here. |
| Saved test results | Existing local XML contains 135 tests, zero failures/errors across 23 suites. | These were not rerun here and are not certification of the current modified tree or live delivery. |
| Android Studio screenshot | Build panel says BUILD SUCCESSFUL; agent panel is waiting for a feature choice. | A screenshot cannot establish current device or backend readiness. |
| Design artifact checks | 1536 × 1024 concept image inspected; local image/handoff links resolve; git diff --check passed. | Browser preview was blocked by the browser tool’s local-file URL policy. Responsive and print styling are supplied but not browser-verified. |
06 / Build order and acceptance
FIRST • SAFETY CLARITY
Home + alert status
Implement the proposed visual hierarchy in the existing SosScreen and status components. Preserve the alarm engine and every safety guard. Distinguish practice, sending, failure, cancellation and check-in.
Accept when: early release cancels; practice sends nothing; one hold creates one dispatch; per-recipient wording follows actual results.
SECOND • REAL HELP PROOF
Device evidence
Review saved guardians and privacy. Exercise approved test contacts on two physical phones, including denied permissions, no signal, retry, stale/no location and screen-off conditions.
Accept when: the observed recipient experience matches every claim. SMS send status and receipt remain distinct.
THIRD • COMMUNICATION
Trusted connections
Prove sign-in, adult authority, school isolation and revocation before Messenger/response activation. Then review Maps pins, companion voice and the curated Feed.
Accept when: signed-out, wrong-school, revoked and unauthorized clients cannot access protected data.
07 / Scope, handoff and rollback
Deliverables: this blueprint, the concept PNG, the saved generation prompt, and the Android Studio handoff. No app source was edited for this design task; no routes were added. No Firebase setting, rules, records, billing, hosting, commit, push or release action was performed.
Eight pre-existing modified Kotlin files were observed and copied outside the repository before adding these files. Other sessions may continue to edit; this does not claim they have been stopped. To roll back this design work, remove only this task’s new design/asset files; preserve app source and prior artwork.
Next Android Studio selection: Emergency SOS & Guardian SMS/GPS Pipeline. Use the accompanying handoff text to constrain its first slice to the existing screens and honest states. This is a recommendation for Heath to send, not a message sent to that agent.
Seven-point contract: solves unclear direction; supplies a visual and screen plan; maps existing device machinery; distinguishes source from proposed connections; reports bounded evidence; supplies Heath’s review checklist; enables one coherent native app without duplicating it.
Source evidence inspected
MainActivity.kt · ui/components/BottomBullyNavBar.kt · ui/screens/SosScreen.kt · ui/screens/MessengerScreen.kt · data/emergency/AlarmCore.kt · data/emergency/EmergencySOSManager.kt · data/guardian/GuardianAlertDispatcher.kt · data/guardian/SmsAndLocation.kt · data/ai/MuseAiService.kt · data/ai/MuseGuardrails.kt · data/ai/NovaCloudLock.kt · data/firestore/MessengerLock.kt · data/curated/CuratedCatalog.kt.
Standing orders and Northstar; docs/WORKING_SESSION.md; docs/GOOGLE_SETUP.md; docs/ANDROID_LAYOUT_SAFETY.md; docs/BULLY_ARCHITECTURE_DESIGN.md; supplied poster, pasted history and Android Studio screenshot.