Skip to content

Conversation

@comst19
Copy link
Collaborator

@comst19 comst19 commented Jan 12, 2026

1. ⭐️ 변경된 내용

  • fcm 알림 채널 변경 및 중요도 변경

2. 🖼️ 스크린샷(선택)

image

3. 💡 알게된 부분

4. 📌 이 부분은 꼭 봐주세요!

Summary by CodeRabbit

  • Improvements
    • Upgraded notification priority levels to make important alerts more visible
    • Enhanced notification channel configuration for improved message prominence
    • Updated notification display settings including badge behavior and descriptive metadata
    • Adjusted channel importance settings to ensure critical notifications are more noticeable to users

✏️ Tip: You can customize this high-level summary in your review settings.

@comst19 comst19 requested review from kkh725 and tgyuuAn January 12, 2026 17:38
@comst19 comst19 self-assigned this Jan 12, 2026
@comst19 comst19 added 기능 ⚒️ 새로운 기능 구현 ⚒️ 리뷰 원해요🔥 피어의 리뷰를 기다리는 ing.. 🔥 ㅁㅅ민수 labels Jan 12, 2026
@coderabbitai
Copy link

coderabbitai bot commented Jan 12, 2026

📝 Walkthrough

Walkthrough

The notification service is updated to use a dedicated notice channel (NOTICE_CHANNEL_ID) instead of a generic background channel, with increased importance level set to HIGH and enhanced metadata including channel description and badge display configuration.

Changes

Cohort / File(s) Summary
Notification Channel Configuration
app/src/main/java/com/puzzle/piece/notification/NotificationService.kt
Replaces BACKGROUND_CHANNEL with NOTICE_CHANNEL_ID; updates companion object constants; increases channel importance to HIGH; adds channel description and badge display; initializes NotificationManager earlier in channel creation flow

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~8 minutes

Suggested reviewers

  • tgyuuAn
  • kkh725

Poem

🐰 Hop along with notifications bright,
No more background, now notice takes flight!
With HIGH importance and badges so grand,
Users won't miss what we have planned!

🚥 Pre-merge checks | ✅ 2 | ❌ 1
❌ Failed checks (1 warning)
Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (2 passed)
Check name Status Explanation
Title check ✅ Passed The title 'PC-1644 fcm 알림 채널 변경 및 중요도 변경' clearly describes the main changes: FCM notification channel modification and importance level change, which directly matches the code modifications in NotificationService.kt.
Description check ✅ Passed The description follows the required template with all four sections present. The first section explains the changes, second includes a screenshot, while sections three and four are empty, which is acceptable per template (선택=optional).

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing touches
  • 📝 Generate docstrings

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 0

🧹 Nitpick comments (2)
app/src/main/java/com/puzzle/piece/notification/NotificationService.kt (2)

96-101: Remove unused BACKGROUND_CHANNEL constant.

The BACKGROUND_CHANNEL constant is no longer used anywhere in the code. Keeping it as a comment reference adds clutter. Consider removing it entirely.

♻️ Suggested cleanup
     companion object {
-        // 기존 ID
-        private const val BACKGROUND_CHANNEL = "백그라운드 알림"
-
         // 중요 알림
         private const val NOTICE_CHANNEL_ID = "piece_official_notice"
         private const val NOTICE_CHANNEL_NAME = "공지 및 주요 알림"

103-117: Consider deleting the old notification channel for clean migration.

Users upgrading from previous versions will still see the old "백그라운드 알림" channel in their notification settings. Deleting it during channel creation ensures a cleaner user experience.

♻️ Suggested fix
         fun createNotificationChannel(context: Context) {
             val notificationManager =
                 context.getSystemService(Context.NOTIFICATION_SERVICE) as NotificationManager

+            // 기존 채널 삭제
+            notificationManager.deleteNotificationChannel("백그라운드 알림")
+
             val channel = NotificationChannel(
                 NOTICE_CHANNEL_ID,
                 NOTICE_CHANNEL_NAME,
                 NotificationManager.IMPORTANCE_HIGH
             ).apply {
                 description = "서비스의 중요한 공지와 알림을 전달합니다."
                 setShowBadge(true)
             }

             notificationManager.createNotificationChannel(channel)
         }
📜 Review details

Configuration used: defaults

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 59881e6 and 845eb11.

📒 Files selected for processing (1)
  • app/src/main/java/com/puzzle/piece/notification/NotificationService.kt
🧰 Additional context used
🧠 Learnings (2)
📓 Common learnings
Learnt from: comst19
Repo: Piece-Puzzly/Piece-Android PR: 203
File: feature/setting/src/main/java/com/puzzle/setting/graph/main/SettingScreen.kt:242-246
Timestamp: 2026-01-10T10:27:20.895Z
Learning: In the Piece-Android project's notification policy: When users re-enable system notification permission (after previously disabling it), the app automatically turns ON both app and server push notification settings, interpreting this as the user's intent to receive notifications again.
Learnt from: comst19
Repo: Piece-Puzzly/Piece-Android PR: 203
File: feature/setting/src/main/java/com/puzzle/setting/graph/main/SettingScreen.kt:242-246
Timestamp: 2026-01-10T10:27:20.895Z
Learning: In the Piece-Android project's SettingScreen.kt and AccessRightsPage.kt: The notification toggle represents the actual notification receivable state (combining system permission and app setting), and when system permission becomes granted, the app automatically enables push notifications through onPushNotificationCheckedChange() callback - this is intentional behavior per the app's notification policy.
📚 Learning: 2026-01-10T10:27:20.895Z
Learnt from: comst19
Repo: Piece-Puzzly/Piece-Android PR: 203
File: feature/setting/src/main/java/com/puzzle/setting/graph/main/SettingScreen.kt:242-246
Timestamp: 2026-01-10T10:27:20.895Z
Learning: In the Piece-Android project's SettingScreen.kt and AccessRightsPage.kt: The notification toggle represents the actual notification receivable state (combining system permission and app setting), and when system permission becomes granted, the app automatically enables push notifications through onPushNotificationCheckedChange() callback - this is intentional behavior per the app's notification policy.

Applied to files:

  • app/src/main/java/com/puzzle/piece/notification/NotificationService.kt
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (1)
  • GitHub Check: build
🔇 Additional comments (1)
app/src/main/java/com/puzzle/piece/notification/NotificationService.kt (1)

75-83: LGTM!

The notification builder changes are appropriate for high-priority notifications. Using PRIORITY_HIGH and DEFAULT_ALL ensures the notifications are prominent and use default sound/vibration patterns, which aligns well with the new "공지 및 주요 알림" channel purpose.

Copy link
Collaborator

@kkh725 kkh725 left a comment

Choose a reason for hiding this comment

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

고생하셨습니다.

@comst19 comst19 merged commit 2f85f23 into develop Jan 13, 2026
2 checks passed
@comst19 comst19 deleted the feature/PC-1644 branch January 13, 2026 09:05
comst19 added a commit that referenced this pull request Jan 13, 2026
…205)

* [PC-1642] MyProfile 수정, 로그아웃, 탈퇴, 토큰 만료 시 로컬 MyProfile 데이터 제거

* [PC-1642] ci 빌드 실패 수정

* [PC-1642] ci 빌드 실패 수정

* [PC-1644] fcm 알림 채널 변경 및 중요도 변경 (#206)

* [PC-1642] 불필요한 join 처리 제거

* [PC-1642] MyProfile 수정, 로그아웃, 탈퇴, 토큰 만료 시 로컬 MyProfile 데이터 제거

* [PC-1642] ci 빌드 실패 수정

* [PC-1642] ci 빌드 실패 수정

* [PC-1642] 불필요한 join 처리 제거

* [PC-1642] 토큰 만료 처리 및 세션 만료 로직 일원화
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ㅁㅅ민수 기능 ⚒️ 새로운 기능 구현 ⚒️ 리뷰 원해요🔥 피어의 리뷰를 기다리는 ing.. 🔥

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants