Skip to content

[FEAT] New Badge Indicator Feature Implementation#104

Merged
doyoonkim3312 merged 6 commits into
developmentfrom
FEATURE/1.7.3/recent-notice-badge
Jun 6, 2026
Merged

[FEAT] New Badge Indicator Feature Implementation#104
doyoonkim3312 merged 6 commits into
developmentfrom
FEATURE/1.7.3/recent-notice-badge

Conversation

@doyoonkim3312

@doyoonkim3312 doyoonkim3312 commented Jun 4, 2026

Copy link
Copy Markdown
Member

πŸ“ Summary (κ°œμš”)

  • Apply New Badge Indicator Feature to improve user experience.

πŸ”— Related Issue (κ΄€λ ¨ 이슈)

  • Resolves (if applicable) #
  • Jira Ticket: KAN-107

πŸ›  Type of Change (λ³€κ²½ 사항)

  • FEAT: New feature (μƒˆλ‘œμš΄ κΈ°λŠ₯)
  • FIX: Bug fix (버그 μˆ˜μ •)
  • REFACTOR: Code refactoring (no functional change) (μ½”λ“œ λ¦¬νŒ©ν† λ§)
  • DESIGN: UI/UX changes (λ””μžμΈ λ³€κ²½)
  • !HOTFIX: Critical fix (치λͺ…적인 버그 μˆ˜μ •)
  • CHORE: Build/Config/CI (λΉŒλ“œ/μ„€μ •/CI)

✨ Key Changes (핡심 λ³€κ²½ 사항)

  • Apply 48 hours-based isRecent value validation logic to process New Badge Indicator appearance.
  • New reusable New Badge indicator composable has been constructed.

πŸ“Έ Screenshots / Video (μŠ€ν¬λ¦°μƒ· λ˜λŠ” λ™μ˜μƒ)

HomeDashboard (TopThreeNotices)

Before (이전) After (이후)

NoticesByCategory (List of Notices in Category)

Before (이전) After (이후)

πŸ§ͺ Test Plan (ν…ŒμŠ€νŠΈ κ³„νš)

  • Device: Android Emulator (Google Pixel 9 Pro; SDK 36)
  • Scenario: Launch Application -> Check New Badge is correctly applied to notices posted within 48 hours window.
  • Scenario: Launch Application -> Enter each notice category -> Check New Badge is correctly applied to notices posted within 48 hours window.

βœ… Checklist (체크리슀트)

  • My code follows the style guidelines of this project (μ½”λ“œ μŠ€νƒ€μΌμ„ μ€€μˆ˜ν–ˆμŠ΅λ‹ˆλ‹€).
  • I have performed a self-review of my own code (슀슀둜 μ½”λ“œλ₯Ό κ²€ν† ν–ˆμŠ΅λ‹ˆλ‹€).
  • I have commented my code, particularly in hard-to-understand areas (μ΄ν•΄ν•˜κΈ° μ–΄λ €μš΄ 뢀뢄에 주석을 μž‘μ„±ν–ˆμŠ΅λ‹ˆλ‹€).

  - Add Badge Style highlight on recently uploaded notices (uploaded within 24 hours)
  - Necessary color system has been defined to support both dark and light theme.
  - Adequate business logic has been defined and tested.
  - Appropriate modification has been made on NoticeVO, and its corresponding consumers.
…ss Rule Update

  * Isolate Notice Recent Validation logic to independent UseCase to enhance its reusability.
  * Apply updated business logic
    - 24-hours based validation to 48-hours based validation.
…omeDashboard

  * Apply Recent Notice Validation followed by New Badge UI implementation has been applied to TopThreeNotices on HomeDashboard.
@doyoonkim3312 doyoonkim3312 requested a review from jeongHunE June 4, 2026 22:58
@doyoonkim3312 doyoonkim3312 self-assigned this Jun 4, 2026
@doyoonkim3312 doyoonkim3312 added the enhancement New feature or request label Jun 4, 2026

@gemini-code-assist gemini-code-assist 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.

Code Review

This pull request introduces a feature to display a "recent" badge on notices published within the last 48 hours. It adds color definitions, updates the NoticeVO model with an isRecent flag, implements a CheckRecentNotice use case, and integrates this logic into the notice fetching use cases and UI components. The review feedback highlights a logical issue in CheckRecentNotice where comparing epoch milliseconds from a date-only string with system time causes inconsistent behavior; it suggests using LocalDate comparisons and caching the formatter and zone ID. Additionally, the feedback points out redundant modifiers in NotificationPreview.kt, specifically the transparent background on Surface and the combination of fillMaxWidth() with weight(9f) in a Row.

Important

The consumer version of Gemini Code Assist on GitHub is being sunset. Starting June 18, 2026, new organization installations will be blocked, and all code review activity will officially cease on July 17, 2026.
For more details on the timeline and next steps, please review the Help Documentation.

Comment thread common/src/main/java/com/doyoonkim/common/ui/NotificationPreview.kt
Comment thread common/src/main/java/com/doyoonkim/common/ui/NotificationPreview.kt
  * Mitigate Edge-case identified regarding Epoch Milliseconds based Recent Notice Validation logic.
    - Utilize direct LocalDate comparison for accurate validation result.
    - For efficiency, declare DateTimeFormatter and ZoneId as a part of companion object to prevent multiple instantiation of frequently used instances during validations.
  - Remove unnecessary weight configuration. Let Compose engine to determine available spaces in row, and take maximum spaces (row) available.
@doyoonkim3312 doyoonkim3312 merged commit 365b845 into development Jun 6, 2026
1 check passed
@doyoonkim3312 doyoonkim3312 deleted the FEATURE/1.7.3/recent-notice-badge branch June 6, 2026 00:12
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants