Skip to content

๐Ÿ”€ :: (#958) ํ‘ธ์‹œ ์•Œ๋ฆผ ๋น„ํ™œ์„ฑํ™” ์‹œ ๊ณต์ง€ ํƒญ์ด ๋น„์–ด ๋ณด์ž„ ๋ฌธ์ œ ํ•ด๊ฒฐ#959

Merged
ashxom merged 4 commits into
developfrom
bug/958-ํ‘ธ์‹œ-์•Œ๋ฆผ-๋น„ํ™œ์„ฑํ™”-์‹œ-๊ณต์ง€-ํƒญ์ด-๋น„์–ด-๋ณด์ž„
Jul 22, 2026

Hidden character warning

The head ref may contain hidden characters: "bug/958-\ud478\uc2dc-\uc54c\ub9bc-\ube44\ud65c\uc131\ud654-\uc2dc-\uacf5\uc9c0-\ud0ed\uc774-\ube44\uc5b4-\ubcf4\uc784"
Merged

๐Ÿ”€ :: (#958) ํ‘ธ์‹œ ์•Œ๋ฆผ ๋น„ํ™œ์„ฑํ™” ์‹œ ๊ณต์ง€ ํƒญ์ด ๋น„์–ด ๋ณด์ž„ ๋ฌธ์ œ ํ•ด๊ฒฐ#959
ashxom merged 4 commits into
developfrom
bug/958-ํ‘ธ์‹œ-์•Œ๋ฆผ-๋น„ํ™œ์„ฑํ™”-์‹œ-๊ณต์ง€-ํƒญ์ด-๋น„์–ด-๋ณด์ž„

Conversation

@ashxom

@ashxom ashxom commented Jul 22, 2026

Copy link
Copy Markdown
Member

๊ฐœ์š”

GET/notifications์— ์˜์กดํ•˜๋˜ ๊ณต์ง€ ํƒญ์„ GET/notices ๊ธฐ๋ฐ˜์œผ๋กœ ๋ถ„๋ฆฌํ•ด์„œ ํ‘ธ์‹œ ์•Œ๋ฆผ ๋น„ํ™œ์„ฑํ™” ์—ฌ๋ถ€์™€ ๊ด€๊ณ„์—†์ด ๊ณต์ง€ ๋ชฉ๋ก์ด ์ •์ƒ ๋…ธ์ถœ๋˜๋„๋ก ์ˆ˜์ •ํ–ˆ์Šต๋‹ˆ๋‹ค.

์ž‘์—…์‚ฌํ•ญ

์ถ”๊ฐ€ ๋กœ ํ•  ๋ง

Summary by CodeRabbit

  • New Features

    • Added separate loading and display of notices and notifications.
    • Introduced a streamlined notice layout showing notice titles and elapsed time.
    • Notification and notice items now navigate using a single identifier.
  • Bug Fixes

    • Improved list rendering stability by preserving item identity during updates.
    • Added distinct error handling when notices or notifications fail to load.

@coderabbitai

coderabbitai Bot commented Jul 22, 2026

Copy link
Copy Markdown

Review Change Stack

Warning

Review limit reached

@ashxom, you've reached your PR review limit, so we couldn't start this review.

Next review available in: 51 minutes

Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available.
You're only billed for reviews past your plan's rate limits ($0.25/file).

How can I continue?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews.

How do review limits work?

CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability.

For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window.

Please refer docs for additional details.

Review details
โš™๏ธ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 720c8ac7-788c-4896-ab83-e8f58f63e2ef

๐Ÿ“ฅ Commits

Reviewing files that changed from the base of the PR and between 03f59df and 5244051.

๐Ÿ“’ Files selected for processing (1)
  • feature/src/main/kotlin/team/aliens/dms/android/feature/notification/viewmodel/NotificationViewModel.kt
๐Ÿ“ Walkthrough

Walkthrough

Notification and notice data are now fetched separately, represented by distinct UI models, and rendered through keyed lists. Notice detail callbacks accept a single ID, while notification navigation is forwarded directly to the screen callback.

Changes

Notification and notice flow

Layer / File(s) Summary
Separate notice fetching and UI models
feature/.../notification/viewmodel/NotificationViewModel.kt
NotificationViewModel injects NoticeRepository, fetches notifications and notices separately, maps them to NotificationUi and NoticeUi, and adds notice-fetch failure handling.
Render separate lists and simplify callbacks
feature/.../notification/ui/NotificationScreen.kt, feature/.../notification/ui/component/NoticeItem.kt
Notification and notice lists use ID keys; notices render NoticeUi titles, and detail callbacks now accept one UUID.
Wire notification detail navigation
feature/.../notification/ui/NotificationScreen.kt
Notification detail navigation is passed directly, and notification row interaction continues to navigate using the notification topic and ID.

Estimated code review effort: 3 (Moderate) | ~20 minutes

Sequence Diagram(s)

sequenceDiagram
  participant User
  participant NotificationScreen
  participant NotificationViewModel
  participant NotificationRepository
  participant NoticeRepository
  User->>NotificationScreen: Open notifications
  NotificationScreen->>NotificationViewModel: Observe notification state
  NotificationViewModel->>NotificationRepository: Fetch notifications
  NotificationRepository-->>NotificationViewModel: Notification data
  NotificationViewModel->>NoticeRepository: Fetch notices
  NoticeRepository-->>NotificationViewModel: Notice data
  NotificationViewModel-->>NotificationScreen: NotificationUi and NoticeUi lists
  User->>NotificationScreen: Select notification or notice
  NotificationScreen-->>User: Invoke detail callback with item ID
Loading

Possibly related issues

  • Issue 958: Separates notice data from filtered notification results by fetching it through NoticeRepository.
๐Ÿšฅ Pre-merge checks | โœ… 5
โœ… Passed checks (5 passed)
Check name Status Explanation
Docstring Coverage โœ… Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check โœ… Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check โœ… Passed Check skipped because no linked issues were found for this pull request.
Description Check โœ… Passed Check skipped - CodeRabbitโ€™s high-level summary is enabled.
Title check โœ… Passed The title clearly describes the main user-facing fix: the notice tab appearing empty when push notifications are disabled.
โœจ Finishing Touches
๐Ÿงช Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch bug/958-ํ‘ธ์‹œ-์•Œ๋ฆผ-๋น„ํ™œ์„ฑํ™”-์‹œ-๊ณต์ง€-ํƒญ์ด-๋น„์–ด-๋ณด์ž„

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.

@ashxom ashxom changed the title ํ‘ธ์‹œ ์•Œ๋ฆผ ๋น„ํ™œ์„ฑํ™” ์‹œ ๊ณต์ง€ ํƒญ์ด ๋น„์–ด ๋ณด์ž„ ๋ฌธ์ œ ํ•ด๊ฒฐ ๐Ÿ”€ :: (#958) ํ‘ธ์‹œ ์•Œ๋ฆผ ๋น„ํ™œ์„ฑํ™” ์‹œ ๊ณต์ง€ ํƒญ์ด ๋น„์–ด ๋ณด์ž„ ๋ฌธ์ œ ํ•ด๊ฒฐ Jul 22, 2026
@ashxom ashxom added the ๐Ÿ‘พbug ๋ฒ„๊ทธ๊ฐ€ ๋ฐœ์ƒํ•œ ๊ฒฝ์šฐ label Jul 22, 2026

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Actionable comments posted: 1

๐Ÿงน Nitpick comments (4)
feature/src/main/kotlin/team/aliens/dms/android/feature/notification/ui/NotificationScreen.kt (3)

183-200: ๐Ÿ“ Maintainability & Code Quality | ๐Ÿ”ต Trivial | โšก Quick win

Same naming concern as the onNotificationDetailClick callback above.

This parameter here is purely notice-detail navigation; see consolidated comment.

๐Ÿค– Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In
`@feature/src/main/kotlin/team/aliens/dms/android/feature/notification/ui/NotificationScreen.kt`
around lines 183 - 200, Rename the NoticeItems callback parameter
onNotificationDetailClick to reflect that it performs notice-detail navigation,
matching the naming convention requested for the corresponding callback above,
and update the argument passed to NoticeItem accordingly.

1-1: ๐Ÿ“ Maintainability & Code Quality | ๐Ÿ”ต Trivial | โšก Quick win

Rename onNotificationDetailClick/onNavigateNotificationDetailClick to reflect notice-only usage.

Across this call chain (Notification โ†’ NotificationScreen โ†’ NoticeItems โ†’ NoticeItem), the callback is exclusively driven by notice clicks (notice.id) and is never used for point-notification navigation, which goes through the separate onNotificationClick/onNavigatePointHistory path. Keeping the "Notification" name invites confusion about which flow it belongs to, especially now that the PR explicitly splits notification vs. notice data.

  • feature/src/main/kotlin/team/aliens/dms/android/feature/notification/ui/NotificationScreen.kt#L98-115: rename the Notification composable's onNavigateNotificationDetailClick parameter (and its forwarding at Line 109) to onNavigateNoticeDetailClick.
  • feature/src/main/kotlin/team/aliens/dms/android/feature/notification/ui/NotificationScreen.kt#L183-200: rename NoticeItems's onNotificationDetailClick parameter to onNoticeDetailClick.
  • feature/src/main/kotlin/team/aliens/dms/android/feature/notification/ui/component/NoticeItem.kt#L18-33: rename NoticeItem's onNotificationDetailClick parameter to onNoticeDetailClick.
โ™ป๏ธ Proposed rename (illustrative, apply consistently across all three sites)
-    onNotificationDetailClick: (UUID) -> Unit,
+    onNoticeDetailClick: (UUID) -> Unit,
๐Ÿค– Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In
`@feature/src/main/kotlin/team/aliens/dms/android/feature/notification/ui/NotificationScreen.kt`
at line 1, Rename the notice-detail callback consistently across the
Notification composable, NoticeItems, and NoticeItem: use
onNavigateNoticeDetailClick for Notification and onNoticeDetailClick for
NoticeItems and NoticeItem, including parameter declarations, forwarding calls,
and invocation sites. Keep the separate
onNotificationClick/onNavigatePointHistory flow unchanged.

98-115: ๐Ÿ“ Maintainability & Code Quality | ๐Ÿ”ต Trivial | โšก Quick win

Callback name no longer matches its purpose.

onNotificationDetailClick/onNavigateNotificationDetailClick is only ever wired to notice-item clicks (see NoticeItems at Line 155-158 and NoticeItem.kt), never to point-notification clicks. Naming it after "notification" is misleading now that the two flows are split. See consolidated comment for full scope.

๐Ÿค– Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In
`@feature/src/main/kotlin/team/aliens/dms/android/feature/notification/ui/NotificationScreen.kt`
around lines 98 - 115, The notification detail callback naming is misleading
because it handles notice-item clicks rather than point-notification clicks.
Rename the callback parameter and corresponding
`onNavigateNotificationDetailClick` references in `NotificationScreen` and its
`NoticeItems`/`NoticeItem` wiring to use notice-item terminology consistently,
without changing callback behavior.
feature/src/main/kotlin/team/aliens/dms/android/feature/notification/ui/component/NoticeItem.kt (1)

18-33: ๐Ÿ“ Maintainability & Code Quality | ๐Ÿ”ต Trivial | โšก Quick win

Parameter name doesn't reflect that this is notice-only.

onNotificationDetailClick here always receives a notice ID (notice.id); see consolidated comment covering the full call chain.

๐Ÿค– Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In
`@feature/src/main/kotlin/team/aliens/dms/android/feature/notification/ui/component/NoticeItem.kt`
around lines 18 - 33, Rename the NoticeItem callback parameter
onNotificationDetailClick to a notice-specific name, and update its invocation
and all callers through the notification UI call chain to use the new name while
preserving the existing notice.id argument and behavior.
๐Ÿค– Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In
`@feature/src/main/kotlin/team/aliens/dms/android/feature/notification/viewmodel/NotificationViewModel.kt`:
- Around line 31-54: Remove the NotificationTopic.POINT filter from
fetchNotifications so notifications of every supported topic, including
study-room, outing, and daybreak-study types, are mapped into notificationsUi
and displayed in the Notification tab. Keep the existing mapping and
success/failure handling unchanged.

---

Nitpick comments:
In
`@feature/src/main/kotlin/team/aliens/dms/android/feature/notification/ui/component/NoticeItem.kt`:
- Around line 18-33: Rename the NoticeItem callback parameter
onNotificationDetailClick to a notice-specific name, and update its invocation
and all callers through the notification UI call chain to use the new name while
preserving the existing notice.id argument and behavior.

In
`@feature/src/main/kotlin/team/aliens/dms/android/feature/notification/ui/NotificationScreen.kt`:
- Around line 183-200: Rename the NoticeItems callback parameter
onNotificationDetailClick to reflect that it performs notice-detail navigation,
matching the naming convention requested for the corresponding callback above,
and update the argument passed to NoticeItem accordingly.
- Line 1: Rename the notice-detail callback consistently across the Notification
composable, NoticeItems, and NoticeItem: use onNavigateNoticeDetailClick for
Notification and onNoticeDetailClick for NoticeItems and NoticeItem, including
parameter declarations, forwarding calls, and invocation sites. Keep the
separate onNotificationClick/onNavigatePointHistory flow unchanged.
- Around line 98-115: The notification detail callback naming is misleading
because it handles notice-item clicks rather than point-notification clicks.
Rename the callback parameter and corresponding
`onNavigateNotificationDetailClick` references in `NotificationScreen` and its
`NoticeItems`/`NoticeItem` wiring to use notice-item terminology consistently,
without changing callback behavior.
๐Ÿช„ Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

โ„น๏ธ Review info
โš™๏ธ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: a90ee955-ec2d-4d32-bc21-7fbd55de3cfb

๐Ÿ“ฅ Commits

Reviewing files that changed from the base of the PR and between bf2f89c and 03f59df.

๐Ÿ“’ Files selected for processing (3)
  • feature/src/main/kotlin/team/aliens/dms/android/feature/notification/ui/NotificationScreen.kt
  • feature/src/main/kotlin/team/aliens/dms/android/feature/notification/ui/component/NoticeItem.kt
  • feature/src/main/kotlin/team/aliens/dms/android/feature/notification/viewmodel/NotificationViewModel.kt

@ashxom
ashxom merged commit 75b1072 into develop Jul 22, 2026
6 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

๐Ÿ‘พbug ๋ฒ„๊ทธ๊ฐ€ ๋ฐœ์ƒํ•œ ๊ฒฝ์šฐ

Projects

None yet

Development

Successfully merging this pull request may close these issues.

ํ‘ธ์‹œ ์•Œ๋ฆผ ๋น„ํ™œ์„ฑํ™” ์‹œ ๊ณต์ง€ ํƒญ์ด ๋น„์–ด ๋ณด์ž„

1 participant