Skip to content

🎨 Palette: Extract and humanize foreground service notification strings#125

Open
manupawickramasinghe wants to merge 1 commit into
mainfrom
palette-notification-strings-7910329059146216943
Open

🎨 Palette: Extract and humanize foreground service notification strings#125
manupawickramasinghe wants to merge 1 commit into
mainfrom
palette-notification-strings-7910329059146216943

Conversation

@manupawickramasinghe
Copy link
Copy Markdown
Member

💡 What:
Extracted hardcoded strings used in the foreground service NotificationChannel and NotificationCompat.Builder into 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:

  • Notification title: "RemoteCam (active)" (hardcoded)
  • Notification text: "Click to open" (hardcoded)
  • Action: "Kill" (hardcoded)
  • Channel name: "REMOTE_CAM" (hardcoded)
  • Channel description: "RemoteCam run" (hardcoded)

After:

  • Notification title: @string/notification_title ("RemoteCam (active)")
  • Notification text: @string/notification_text ("Tap to open")
  • Action: @string/notification_action_stop ("Stop")
  • Channel name: @string/notification_channel_name ("Camera Service")
  • Channel description: @string/notification_channel_desc ("Background service to keep the remote camera running")

♿ Accessibility:
Extracting these text elements into strings.xml is 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

- 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>
@google-labs-jules
Copy link
Copy Markdown

👋 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 @jules. You can find this option in the Pull Request section of your global Jules UI settings. You can always switch back!

New to Jules? Learn more at jules.google/docs.


For security, I will only act on instructions from the user who triggered this task.

Copilot AI review requested due to automatic review settings June 1, 2026 20:32
Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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 NotificationChannel name/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.

Comment on lines 50 to 58
<!-- 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>
Comment thread .Jules/palette.md
## 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
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.

2 participants