From ce73f68bc8b7f635a2a8e80511d8cd1bf080f3d8 Mon Sep 17 00:00:00 2001 From: AskaEth Date: Tue, 26 May 2026 12:45:48 +0800 Subject: [PATCH] fix: add ProGuard keep rules for UI screens and components Navigation compose lambdas in NavGraph may not be traced by R8's call graph, causing screen composables to be stripped in release builds. Co-Authored-By: Claude Opus 4.7 --- app/proguard-rules.pro | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/app/proguard-rules.pro b/app/proguard-rules.pro index 25eda37..474d946 100644 --- a/app/proguard-rules.pro +++ b/app/proguard-rules.pro @@ -92,6 +92,13 @@ # --- Keep WebSocketService (injected into ChatRepositoryImpl) --- -keep class top.yeij.cyrene.service.WebSocketService { *; } +# --- UI screens & components (called via Navigation compose lambda — R8 may not trace) --- +-keep class top.yeij.cyrene.ui.screens.** { *; } +-keep class top.yeij.cyrene.ui.components.** { *; } +-keep class top.yeij.cyrene.ui.overlay.** { *; } +-keep class top.yeij.cyrene.ui.navigation.** { *; } +-keep class top.yeij.cyrene.ui.theme.** { *; } + # --- General AndroidX --- -keep class androidx.lifecycle.** { *; } -dontwarn androidx.lifecycle.**