Skip to content

[!HOTFIX] Fatal Issue Mitigation#103

Merged
doyoonkim3312 merged 3 commits into
releasefrom
HOTFIX/1.7.2/fatal-issue-mitigation
May 3, 2026
Merged

[!HOTFIX] Fatal Issue Mitigation#103
doyoonkim3312 merged 3 commits into
releasefrom
HOTFIX/1.7.2/fatal-issue-mitigation

Conversation

@doyoonkim3312

@doyoonkim3312 doyoonkim3312 commented May 3, 2026

Copy link
Copy Markdown
Member

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

  • Fatal issues reported from 1.7.1 release artifact have been resolved.

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

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

πŸ›  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 (핡심 λ³€κ²½ 사항)

  • Resolve unexpected RuntimeException/ResourceNotFoundException occurred in LifecycleAwareWebView composable. (Due to both app-level and OS-level issue.)
    • Jetpack Compose can yield ContextWrapper instead of Activity due to its design pattern. If ContextWrapper is provided, WebView becomes unavailable and throws RuntimeException.
    • WebView itself and Chrome could be unavailable due to OS-level reason. In this case, ResourceNotFoundException can be thrown.
  • Implement exception handling logic in TokenHandler to gracefully handle a potential IOException cause by Firebase Service (Firebase Service is unavailable on User's device)

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

Fallback Screen Sample

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

  • Device: Android Emulator (Google Pixel 9 Pro; SDK 36)
  • Scenario: Manually inject ApplicationContext to LifecycleAwareWebView composable -> Check Fallback Screen is visible.
  • Scenario: Manually disable WebView com.google.android.webview and Chrome com.android.chrome. -> Check Fallback Screen is visible.

βœ… 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 (μ΄ν•΄ν•˜κΈ° μ–΄λ €μš΄ 뢀뢄에 주석을 μž‘μ„±ν–ˆμŠ΅λ‹ˆλ‹€).

  * Fatal issues reported from 1.7.1 artifact are resolved.

    - LifecycleAwareAndroidView
      * Include Fallback logic and Fallback screen for situations where Context is not resolved or WebView/Chromium engine is not available.
      * Add Context resolving logic to find Context instance in ContextWrapper is provided via LocalComposition.
    - TokenHandler (Firebase)
      * Add exception handling logic to mitigate the situation where Firebase Service is unavailable on User's device.
      * Add appropriate validation logic to let PeriodicWork can retry the task later when FirebaseService becomes available.
  * Fatal issues reported from 1.7.1 artifact are resolved.

    - Necessary String Resource for new fallback placeholder screen.
    - Update Build Configuration
      * Version Code: 41
      * Version Name: 1.7.2
@doyoonkim3312 doyoonkim3312 requested a review from jeongHunE May 3, 2026 04:39
@doyoonkim3312 doyoonkim3312 self-assigned this May 3, 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 increments the application version and introduces robust error handling for Firebase token retrieval and WebView initialization. Key changes include the addition of a getToken helper in TokenHandler.kt to handle IPC failures and the implementation of a fallback PlaceholderScreen in LifecycleAwareWebView for scenarios where the WebView engine is missing or the activity context is unavailable. The review feedback focuses on best practices for coroutine exception handling, optimizing context lookups using remember, and improving logging by including full stack traces.

  - Apply recommended changes provided by Gemini CodeReview

    * Rethrow CancellationException to ensure structured concurrency
    * Let Compose remember the retrieved context value for efficiency.
@doyoonkim3312 doyoonkim3312 merged commit fc28d6e into release May 3, 2026
1 check passed
@doyoonkim3312 doyoonkim3312 deleted the HOTFIX/1.7.2/fatal-issue-mitigation branch May 3, 2026 22:29
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants