🎨 Palette: Extract and humanize foreground service notification strings#125
🎨 Palette: Extract and humanize foreground service notification strings#125manupawickramasinghe wants to merge 1 commit into
Conversation
- Extracted hardcoded Notification Channel IDs, titles, descriptions, and action labels into `strings.xml`.
- Replaced aggressive/technical wording ("Kill", "Click to open") with standard user-friendly UX phrasing ("Stop", "Tap to open").
- Improved accessibility and i18n support.
Co-authored-by: manupawickramasinghe <73810867+manupawickramasinghe@users.noreply.github.com>
|
👋 Jules, reporting for duty! I'm here to lend a hand with this pull request. When you start a review, I'll add a 👀 emoji to each comment to let you know I've read it. I'll focus on feedback directed at me and will do my best to stay out of conversations between you and other bots or reviewers to keep the noise down. I'll push a commit with your requested changes shortly after. Please note there might be a delay between these steps, but rest assured I'm on the job! For more direct control, you can switch me to Reactive Mode. When this mode is on, I will only act on comments where you specifically mention me with New to Jules? Learn more at jules.google/docs. For security, I will only act on instructions from the user who triggered this task. |
There was a problem hiding this comment.
Pull request overview
This PR improves the user-facing wording and localization readiness of the app’s foreground service notification by moving previously hardcoded notification/channel strings into strings.xml and updating phrasing to be more user-friendly.
Changes:
- Extracted
NotificationChannelname/description and notification title/body/action text into localized string resources. - Updated notification copy to better match mobile UX conventions (e.g., “Tap to open”, “Stop”).
- Recorded the notification-string extraction learning in the palette log.
Reviewed changes
Copilot reviewed 3 out of 3 changed files in this pull request and generated 2 comments.
| File | Description |
|---|---|
| app/src/main/res/values/strings.xml | Adds new string resources for the foreground service notification and channel UI text. |
| app/src/main/java/com/samsung/android/scan3d/serv/Cam.kt | Replaces hardcoded notification/channel strings with R.string.* lookups. |
| .Jules/palette.md | Documents the UX/i18n learning related to notification/channel text. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| <!-- Stop Confirmation Dialog --> | ||
| <!-- Notification Strings --> | ||
| <string name="notification_channel_name">Camera Service</string> | ||
| <string name="notification_channel_desc">Background service to keep the remote camera running</string> | ||
| <string name="notification_title">RemoteCam (active)</string> | ||
| <string name="notification_text">Tap to open</string> | ||
| <string name="notification_action_stop">Stop</string> | ||
|
|
||
| <string name="stop_confirmation_title">Stop Server?</string> |
| ## 2026-05-20 - Mouse Hover States for Custom Selectors | ||
| **Learning:** Custom drawable selectors (like `ic_shutter.xml`) on Android often define `state_pressed` and `state_focused` but omit `state_hovered`. This strips visual feedback for users navigating with pointer devices (mice, trackpads) on environments like Chromebooks or Samsung DeX, degrading the user experience compared to native components. | ||
| **Action:** Always include `android:state_hovered="true"` alongside focus and pressed states in custom interactive background selectors to ensure universal visual feedback across all input methods. | ||
| ## 2024-03-24 - Extract Foreground Service Notification Strings |
💡 What:
Extracted hardcoded strings used in the foreground service
NotificationChannelandNotificationCompat.Builderinto localized string resources (strings.xml). Updated the wording to be more user-friendly, changing "Click to open" to "Tap to open" and the "Kill" action to "Stop".🎯 Why:
System notifications and notification channels are highly visible to users, not just in the notification shade, but also in the Android System Settings. Using hardcoded technical identifiers (like
CHANNEL_ID) or aggressive developer phrasing (like "Kill") provides a jarring and confusing user experience. Standardizing the terminology makes the app feel much more professional and intuitive.📸 Before/After:
Before:
After:
♿ Accessibility:
Extracting these text elements into
strings.xmlis a fundamental step for internationalization (i18n). It guarantees that screen readers will correctly pronounce the text based on the user's localized system language settings in the future. "Tap" is also more accurate than "Click" for touch devices.PR created automatically by Jules for task 7910329059146216943 started by @manupawickramasinghe