From 46d21d584b5edf654dee18e7c4969b6013c7553d Mon Sep 17 00:00:00 2001
From: "google-labs-jules[bot]"
<161369871+google-labs-jules[bot]@users.noreply.github.com>
Date: Fri, 29 May 2026 20:23:00 +0000
Subject: [PATCH] =?UTF-8?q?=F0=9F=8E=A8=20Palette:=20[UX=20improvement]=20?=
=?UTF-8?q?Localize=20notification=20channel=20name=20and=20description?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Replaced technical identifiers (e.g. `CHANNEL_ID`) with descriptive, localized string resources for the application's Notification Channel. This ensures users see clear, human-readable labels in their Android System Settings.
Co-authored-by: manupawickramasinghe <73810867+manupawickramasinghe@users.noreply.github.com>
---
.Jules/palette.md | 4 ++++
app/src/main/java/com/samsung/android/scan3d/serv/Cam.kt | 4 ++--
app/src/main/res/values/strings.xml | 3 +++
3 files changed, 9 insertions(+), 2 deletions(-)
diff --git a/.Jules/palette.md b/.Jules/palette.md
index 8e61b09..0d52fa9 100644
--- a/.Jules/palette.md
+++ b/.Jules/palette.md
@@ -146,3 +146,7 @@
## 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.
+
+## 2026-05-29 - Localized Notification Channels
+**Learning:** Using raw technical identifiers like `CHANNEL_ID` for an Android `NotificationChannel` exposes non-user-friendly strings directly in the Android System Settings under App Notifications.
+**Action:** Always provide descriptive, localized string resources for Notification Channel names and descriptions, as these labels are exposed directly to users in the system settings.
diff --git a/app/src/main/java/com/samsung/android/scan3d/serv/Cam.kt b/app/src/main/java/com/samsung/android/scan3d/serv/Cam.kt
index 902764a..3a3027e 100644
--- a/app/src/main/java/com/samsung/android/scan3d/serv/Cam.kt
+++ b/app/src/main/java/com/samsung/android/scan3d/serv/Cam.kt
@@ -45,10 +45,10 @@ class Cam : Service() {
"start" -> {
val channel = NotificationChannel(
CHANNEL_ID,
- CHANNEL_ID,
+ getString(R.string.notification_channel_name),
NotificationManager.IMPORTANCE_DEFAULT
)
- channel.description = "RemoteCam run"
+ channel.description = getString(R.string.notification_channel_desc)
val notificationManager = getSystemService(NotificationManager::class.java)
notificationManager.createNotificationChannel(channel)
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index b34ffb5..bb59bcf 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -69,4 +69,7 @@
%1$d ms
%1$d kB/sec
%1$d%%
+
+ RemoteCam Service
+ Background service running RemoteCam