-
Notifications
You must be signed in to change notification settings - Fork 0
release: 1.3.1 버전 업데이트 (to develop) #753
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from all commits
a91b298
085fa08
5f75227
b714562
a4578e1
8b32e74
fb17d29
ee8b967
9b08d74
f20fd66
1764c3a
9f0da1f
f66c06d
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change | ||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|
@@ -20,11 +20,47 @@ | |||||||||||||||
| # hide the original source file name. | ||||||||||||||||
| #-renamesourcefileattribute SourceFile | ||||||||||||||||
|
|
||||||||||||||||
| # kakao login | ||||||||||||||||
| -keep class com.kakao.sdk.**.model.* { <fields>; } | ||||||||||||||||
| -keep class * extends com.google.gson.TypeAdapter | ||||||||||||||||
|
|
||||||||||||||||
| # https://github.com/square/okhttp/pull/6792 | ||||||||||||||||
| -dontwarn org.bouncycastle.jsse.** | ||||||||||||||||
| -dontwarn org.conscrypt.* | ||||||||||||||||
| -dontwarn org.openjsse.** | ||||||||||||||||
|
|
||||||||||||||||
| # 카카오 SDK 관련 난독화 방지 | ||||||||||||||||
| -keep class com.kakao.** { *; } | ||||||||||||||||
| -keep interface com.kakao.** { *; } | ||||||||||||||||
| -dontwarn com.kakao.** | ||||||||||||||||
|
|
||||||||||||||||
| # 카카오 로그인 SDK | ||||||||||||||||
| -keep class com.kakao.sdk.** { *; } | ||||||||||||||||
| -keep interface com.kakao.sdk.** { *; } | ||||||||||||||||
| -dontwarn com.kakao.sdk.** | ||||||||||||||||
|
|
||||||||||||||||
| # 카카오 인증 관련 | ||||||||||||||||
| -keep class com.kakao.sdk.auth.** { *; } | ||||||||||||||||
| -keep class com.kakao.sdk.user.** { *; } | ||||||||||||||||
| -keep class com.kakao.sdk.common.** { *; } | ||||||||||||||||
|
|
||||||||||||||||
| # 네트워크 통신 관련 | ||||||||||||||||
| -keepclassmembers class * { | ||||||||||||||||
| @com.kakao.sdk.** *; | ||||||||||||||||
| } | ||||||||||||||||
|
|
||||||||||||||||
| # Retrofit/OkHttp | ||||||||||||||||
| -keep class retrofit2.** { *; } | ||||||||||||||||
| -keep class okhttp3.** { *; } | ||||||||||||||||
| -dontwarn retrofit2.** | ||||||||||||||||
| -dontwarn okhttp3.** | ||||||||||||||||
|
|
||||||||||||||||
|
Comment on lines
+48
to
+53
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 🛠️ Refactor suggestion Retrofit/OkHttp 전역 keep 제거 R8가 네트워크 스택을 문제없이 축소합니다. 전역 keep는 바이너리 비대화만 초래합니다. 경고 억제가 필요하면 구체 원인에 한정해 주세요. -# Retrofit/OkHttp
--keep class retrofit2.** { *; }
--keep class okhttp3.** { *; }
-dontwarn retrofit2.**
-dontwarn okhttp3.**📝 Committable suggestion
Suggested change
🤖 Prompt for AI Agents |
||||||||||||||||
| # JSON 직렬화 관련 | ||||||||||||||||
| -keep class com.google.gson.** { *; } | ||||||||||||||||
| -keep class * implements com.google.gson.TypeAdapterFactory | ||||||||||||||||
| -keep class * implements com.google.gson.JsonSerializer | ||||||||||||||||
| -keep class * implements com.google.gson.JsonDeserializer | ||||||||||||||||
|
|
||||||||||||||||
| # Intent 관련 유지 | ||||||||||||||||
| -keep class * extends android.app.Activity | ||||||||||||||||
| -keepclassmembers class * extends android.app.Activity { | ||||||||||||||||
| public void *(android.view.View); | ||||||||||||||||
| } | ||||||||||||||||
|
|
||||||||||||||||
| -keep class *.BuildConfig { *; } | ||||||||||||||||
| Original file line number | Diff line number | Diff line change | ||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|
@@ -6,6 +6,7 @@ import android.os.Bundle | |||||||||||||||||||||||||||||
| import androidx.activity.ComponentActivity | ||||||||||||||||||||||||||||||
| import androidx.activity.addCallback | ||||||||||||||||||||||||||||||
| import androidx.activity.compose.setContent | ||||||||||||||||||||||||||||||
| import androidx.activity.enableEdgeToEdge | ||||||||||||||||||||||||||||||
| import androidx.activity.viewModels | ||||||||||||||||||||||||||||||
| import com.into.websoso.core.common.util.setupWhiteStatusBar | ||||||||||||||||||||||||||||||
| import com.into.websoso.core.designsystem.theme.WebsosoTheme | ||||||||||||||||||||||||||||||
|
|
@@ -17,6 +18,7 @@ class NotificationDetailActivity : ComponentActivity() { | |||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||
| override fun onCreate(savedInstanceState: Bundle?) { | ||||||||||||||||||||||||||||||
| super.onCreate(savedInstanceState) | ||||||||||||||||||||||||||||||
| enableEdgeToEdge() | ||||||||||||||||||||||||||||||
| this.setupWhiteStatusBar() | ||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||
|
Comment on lines
+21
to
23
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 💡 Verification agent 🧩 Analysis chainenableEdgeToEdge와 기존 흰색 상태바 설정 충돌 가능 — SystemBarStyle로 일원화 권장 edge-to-edge 활성화 후 불투명 흰색 상태바를 강제하면 콘텐츠 겹침/아이콘 대비가 어긋날 수 있습니다. - enableEdgeToEdge()
- this.setupWhiteStatusBar()
+ enableEdgeToEdge(
+ statusBarStyle = androidx.activity.SystemBarStyle.auto(
+ android.graphics.Color.TRANSPARENT,
+ android.graphics.Color.TRANSPARENT
+ ),
+ navigationBarStyle = androidx.activity.SystemBarStyle.auto(
+ android.graphics.Color.TRANSPARENT,
+ android.graphics.Color.TRANSPARENT
+ ),
+ )추가로, 상단/하단 시스템바 영역을 피하도록 Compose 루트에 enableEdgeToEdge 함수와 setupWhiteStatusBar 함수의 정의 및 호출 방식을 확인하기 위해 아래 스크립트를 실행합니다. 🏁 Script executed: #!/bin/bash
# enableEdgeToEdge 함수 정의 확인
rg -nP 'fun enableEdgeToEdge' -C3
# enableEdgeToEdge 호출 위치 확인
rg -n 'enableEdgeToEdge\(' -C2
# setupWhiteStatusBar 함수 정의 확인
rg -nP 'fun setupWhiteStatusBar' -C3
# NotificationDetailActivity imports 및 상단 코드 확인
sed -n '1,50p' app/src/main/java/com/into/websoso/ui/notificationDetail/NotificationDetailActivity.ktLength of output: 4613 설정된 🏁 Script executed: #!/bin/bash
# setupWhiteStatusBar 함수 정의 및 구현 확인
rg -n "setupWhiteStatusBar" -C5 -g '*.kt'Length of output: 8749 🌐 Web query: 💡 Result: Kotlin extension signature (from androidx.activity EdgeToEdge.kt): fun ComponentActivity.enableEdgeToEdge( Source: AndroidX source and docs. [1][2] References
setupWhiteStatusBar 제거하고 enableEdgeToEdge 호출로 상태/내비게이션 바 스타일 일원화
📝 Committable suggestion
Suggested change
🤖 Prompt for AI Agents |
||||||||||||||||||||||||||||||
| handleBackPressed() | ||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||
| Original file line number | Diff line number | Diff line change | ||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| @@ -0,0 +1,37 @@ | ||||||||||||||||||||||||
| # Add project specific ProGuard rules here. | ||||||||||||||||||||||||
| # You can control the set of applied configuration files using the | ||||||||||||||||||||||||
| # proguardFiles setting in build.gradle. | ||||||||||||||||||||||||
| # | ||||||||||||||||||||||||
| # For more details, see | ||||||||||||||||||||||||
| # http://developer.android.com/guide/developing/tools/proguard.html | ||||||||||||||||||||||||
|
|
||||||||||||||||||||||||
| # If your project uses WebView with JS, uncomment the following | ||||||||||||||||||||||||
| # and specify the fully qualified class name to the JavaScript interface | ||||||||||||||||||||||||
| # class: | ||||||||||||||||||||||||
| #-keepclassmembers class fqcn.of.javascript.interface.for.webview { | ||||||||||||||||||||||||
| # public *; | ||||||||||||||||||||||||
| #} | ||||||||||||||||||||||||
|
|
||||||||||||||||||||||||
| # Uncomment this to preserve the line number information for | ||||||||||||||||||||||||
| # debugging stack traces. | ||||||||||||||||||||||||
| #-keepattributes SourceFile,LineNumberTable | ||||||||||||||||||||||||
|
|
||||||||||||||||||||||||
| # If you keep the line number information, uncomment this to | ||||||||||||||||||||||||
| # hide the original source file name. | ||||||||||||||||||||||||
| #-renamesourcefileattribute SourceFile | ||||||||||||||||||||||||
|
|
||||||||||||||||||||||||
| # consumer-rules.pro | ||||||||||||||||||||||||
| -keep class com.kakao.sdk.** { *; } | ||||||||||||||||||||||||
| -keep interface com.kakao.sdk.** { *; } | ||||||||||||||||||||||||
| -dontwarn com.kakao.sdk.** | ||||||||||||||||||||||||
|
|
||||||||||||||||||||||||
| # 카카오 로그인 관련 클래스 보호 | ||||||||||||||||||||||||
| -keep class com.kakao.sdk.auth.** { *; } | ||||||||||||||||||||||||
| -keep class com.kakao.sdk.user.** { *; } | ||||||||||||||||||||||||
| -keep class com.kakao.sdk.common.** { *; } | ||||||||||||||||||||||||
|
Comment on lines
+24
to
+31
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 🛠️ Refactor suggestion 중복 keep 규칙 정리
- -keep class com.kakao.sdk.** { *; }
- -keep interface com.kakao.sdk.** { *; }
- -dontwarn com.kakao.sdk.**
-
- # 카카오 로그인 관련 클래스 보호
- -keep class com.kakao.sdk.auth.** { *; }
- -keep class com.kakao.sdk.user.** { *; }
- -keep class com.kakao.sdk.common.** { *; }
+ -keep class com.kakao.sdk.** { *; }
+ -keep interface com.kakao.sdk.** { *; }
+ -dontwarn com.kakao.sdk.**📝 Committable suggestion
Suggested change
🤖 Prompt for AI Agents |
||||||||||||||||||||||||
|
|
||||||||||||||||||||||||
| # 네트워크 관련 (카카오 SDK 의존성) | ||||||||||||||||||||||||
| -keep class retrofit2.** { *; } | ||||||||||||||||||||||||
| -keep class okhttp3.** { *; } | ||||||||||||||||||||||||
| -dontwarn retrofit2.** | ||||||||||||||||||||||||
| -dontwarn okhttp3.** | ||||||||||||||||||||||||
This file was deleted.
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -34,24 +34,36 @@ class KakaoAuthClient | |
|
|
||
| private fun loginWithKakaotalk(loginContinuation: CancellableContinuation<AuthToken>) { | ||
| client.loginWithKakaoTalk(context) { token, error -> | ||
| if (error != null) { | ||
| if (error is ClientError && error.reason == ClientErrorCause.Cancelled) { | ||
| loginContinuation.resumeWithException(error) | ||
| when { | ||
| error != null -> { | ||
| when { | ||
| error is ClientError && error.reason == ClientErrorCause.Cancelled -> { | ||
| loginWithKakaoAccount(loginContinuation) | ||
| } | ||
|
|
||
| else -> loginWithKakaoAccount(loginContinuation) | ||
| } | ||
| } | ||
|
Comment on lines
+37
to
46
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 💡 Verification agent 🧩 Analysis chain사용자 취소(Cancelled) 시 자동 계정 로그인으로 강제 폴백 — UX 역행 가능 톡 로그인 화면에서 사용자가 취소한 경우 계정 로그인으로 자동 전환되면 예기치 않은 화면 전환이 발생합니다. 취소는 상위로 전달(취소/실패 처리)하고, 비-취소 오류만 계정 로그인으로 폴백하는 구분을 권장합니다. - when {
- error != null -> {
- when {
- error is ClientError && error.reason == ClientErrorCause.Cancelled -> {
- loginWithKakaoAccount(loginContinuation)
- }
-
- else -> loginWithKakaoAccount(loginContinuation)
- }
- }
+ when {
+ error != null -> {
+ if (error is ClientError && error.reason == ClientErrorCause.Cancelled) {
+ // 사용자 취소는 상위로 전달
+ if (loginContinuation.isActive) {
+ loginContinuation.resumeWithException(error)
+ }
+ } else {
+ // 비-취소 오류만 계정 로그인으로 폴백
+ loginWithKakaoAccount(loginContinuation)
+ }
+ }loginContinuation의 정의와 🏁 Script executed: #!/bin/bash
# KakaoAuthClient.kt에서 loginContinuation의 선언 위치 및 타입 확인
rg -n "loginContinuation" -C3 core/auth-kakao/src/main/java/com/into/websoso/core/auth_kakao/KakaoAuthClient.kt
# Continuation 인터페이스에서 resumeWithException 메서드 존재 여부 확인
rg -n "resumeWithException" -C3 --type=ktLength of output: 2098 취소 시 상위로 전달하고, 비-취소 오류에만 폴백 적용 🤖 Prompt for AI Agents |
||
|
|
||
| loginWithKakaoAccount(loginContinuation) | ||
| } else if (token != null) { | ||
| loginContinuation.resume(token.accessToken.toAuthToken()) | ||
| token != null -> loginContinuation.resume(token.accessToken.toAuthToken()) | ||
|
|
||
| else -> loginWithKakaoAccount(loginContinuation) | ||
| } | ||
|
Comment on lines
+48
to
51
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 🛠️ Refactor suggestion 이중 resume 가드 추가 콜백 도중 코루틴이 취소될 수 있으니 - token != null -> loginContinuation.resume(token.accessToken.toAuthToken())
+ token != null -> if (loginContinuation.isActive) {
+ loginContinuation.resume(token.accessToken.toAuthToken())
+ }
@@
- error != null -> loginContinuation.resumeWithException(error)
+ error != null -> if (loginContinuation.isActive) {
+ loginContinuation.resumeWithException(error)
+ }
@@
- else -> {
- loginContinuation.resumeWithException(
- IllegalStateException("Both token and error are null"),
- )
- }
+ else -> if (loginContinuation.isActive) {
+ loginContinuation.resumeWithException(
+ IllegalStateException("Both token and error are null"),
+ )
+ }Also applies to: 56-67 🤖 Prompt for AI Agents |
||
| } | ||
| } | ||
|
|
||
| private fun loginWithKakaoAccount(loginContinuation: CancellableContinuation<AuthToken>) { | ||
| client.loginWithKakaoAccount(context) { token, error -> | ||
| if (error != null) { | ||
| loginContinuation.resumeWithException(error) | ||
| } else if (token != null) { | ||
| loginContinuation.resume(token.accessToken.toAuthToken()) | ||
| when { | ||
| error != null -> loginContinuation.resumeWithException(error) | ||
|
|
||
| token != null -> loginContinuation.resume(token.accessToken.toAuthToken()) | ||
|
|
||
| else -> { | ||
| loginContinuation.resumeWithException( | ||
| IllegalStateException("Both token and error are null"), | ||
| ) | ||
| } | ||
| } | ||
| } | ||
| } | ||
|
|
||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -6,6 +6,14 @@ plugins { | |
|
|
||
| android { | ||
| setNamespace("feature.signin") | ||
|
|
||
| buildTypes { | ||
| release { | ||
| isMinifyEnabled = false | ||
|
|
||
| consumerProguardFiles("consumer-rules.pro") | ||
| } | ||
| } | ||
|
Comment on lines
+10
to
+16
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 🛠️ Refactor suggestion consumerProguardFiles 선언 위치 부적절 — buildType별 선언 대신 defaultConfig로 노출하세요 consumer rules는 AAR에 포함되어 소비자(App)에 전달되어야 하므로 variant(빌드타입)별이 아닌 기본 설정에 선언하는 것이 안전합니다. 적용 diff(해당 범위 내 수정): release {
isMinifyEnabled = false
-
- consumerProguardFiles("consumer-rules.pro")
}추가로 android 블록에 다음을 배치: android {
defaultConfig {
consumerProguardFiles("consumer-rules.pro")
}
}🤖 Prompt for AI Agents |
||
| } | ||
|
|
||
| dependencies { | ||
|
|
||
| Original file line number | Diff line number | Diff line change | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| @@ -0,0 +1,37 @@ | ||||||||||||
| # Add project specific ProGuard rules here. | ||||||||||||
| # You can control the set of applied configuration files using the | ||||||||||||
| # proguardFiles setting in build.gradle. | ||||||||||||
| # | ||||||||||||
| # For more details, see | ||||||||||||
| # http://developer.android.com/guide/developing/tools/proguard.html | ||||||||||||
|
|
||||||||||||
| # If your project uses WebView with JS, uncomment the following | ||||||||||||
| # and specify the fully qualified class name to the JavaScript interface | ||||||||||||
| # class: | ||||||||||||
| #-keepclassmembers class fqcn.of.javascript.interface.for.webview { | ||||||||||||
| # public *; | ||||||||||||
| #} | ||||||||||||
|
|
||||||||||||
| # Uncomment this to preserve the line number information for | ||||||||||||
| # debugging stack traces. | ||||||||||||
| #-keepattributes SourceFile,LineNumberTable | ||||||||||||
|
|
||||||||||||
| # If you keep the line number information, uncomment this to | ||||||||||||
| # hide the original source file name. | ||||||||||||
| #-renamesourcefileattribute SourceFile | ||||||||||||
|
|
||||||||||||
| # consumer-rules.pro (feature.signin 모듈) | ||||||||||||
| -keep class com.kakao.sdk.** { *; } | ||||||||||||
| -keep interface com.kakao.sdk.** { *; } | ||||||||||||
| -dontwarn com.kakao.sdk.** | ||||||||||||
|
|
||||||||||||
| # 카카오 로그인 관련 클래스 보호 | ||||||||||||
| -keep class com.kakao.sdk.auth.** { *; } | ||||||||||||
| -keep class com.kakao.sdk.user.** { *; } | ||||||||||||
| -keep class com.kakao.sdk.common.** { *; } | ||||||||||||
|
Comment on lines
+24
to
+31
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 🛠️ Refactor suggestion Kakao SDK keep 규칙이 과도/중복입니다 — 축소/난독화 이점 저하
권장 diff: - -keep class com.kakao.sdk.** { *; }
- -keep interface com.kakao.sdk.** { *; }
- -dontwarn com.kakao.sdk.**
-
- # 카카오 로그인 관련 클래스 보호
- -keep class com.kakao.sdk.auth.** { *; }
- -keep class com.kakao.sdk.user.** { *; }
- -keep class com.kakao.sdk.common.** { *; }
+ -keep class com.kakao.sdk.** { *; }
+ -dontwarn com.kakao.sdk.**가능하면 코어 모듈(core/auth-kakao)의 consumer-rules에만 집중적으로 배치하고, feature 모듈에서는 중복을 피하는 것이 좋습니다. 🤖 Prompt for AI Agents |
||||||||||||
|
|
||||||||||||
| # 네트워크 관련 (카카오 SDK 의존성) | ||||||||||||
| -keep class retrofit2.** { *; } | ||||||||||||
| -keep class okhttp3.** { *; } | ||||||||||||
| -dontwarn retrofit2.** | ||||||||||||
| -dontwarn okhttp3.** | ||||||||||||
|
Comment on lines
+33
to
+37
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 🛠️ Refactor suggestion Retrofit/OkHttp 전체 keep/dontwarn은 불필요하며 바이너리 팽창을 유발합니다 대부분의 네트워크 라이브러리는 자체 consumer-rules를 제공합니다. 전역 keep/dontwarn은 제거하세요. 권장 diff: -# 네트워크 관련 (카카오 SDK 의존성)
--keep class retrofit2.** { *; }
--keep class okhttp3.** { *; }
--dontwarn retrofit2.**
--dontwarn okhttp3.**📝 Committable suggestion
Suggested change
🤖 Prompt for AI Agents |
||||||||||||
This file was deleted.
| Original file line number | Diff line number | Diff line change | ||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|
@@ -53,9 +53,7 @@ fun SignInScreen( | |||||||||||||||||||||||||||||
| ) | ||||||||||||||||||||||||||||||
| } | ||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||
| ShowToast -> { | ||||||||||||||||||||||||||||||
| // TODO: 실패 시 커스텀 스낵 바 구현 | ||||||||||||||||||||||||||||||
| } | ||||||||||||||||||||||||||||||
| ShowToast -> {} | ||||||||||||||||||||||||||||||
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 💡 Verification agent 🧩 Analysis chainShowToast 이펙트가 no-op입니다 — 사용자 피드백이 사라졌습니다. 효과를 드롭하면 실패/안내 토스트가 더 이상 표시되지 않습니다. 최소한의 토스트를 복구하세요. 적용 diff: - ShowToast -> {}
+ ShowToast -> Toast.makeText(
+ context,
+ "문제가 발생했습니다. 잠시 후 다시 시도해 주세요.",
+ Toast.LENGTH_SHORT
+ ).show()파일 상단 import 추가: import android.widget.Toast만약 메시지를 동적으로 표시해야 한다면 ShowToast 이펙트가 실제로 no-op인지 확인하기 위해 해당 파일에서 호출 위치를 검색합니다. 🏁 Script executed: #!/bin/bash
rg -n "ShowToast" -n feature/signin/src/main/java/com/into/websoso/feature/signin/SignInScreen.ktLength of output: 189 전체 컨텍스트 확인을 위해 SignInScreen.kt 파일 상단부터 effect 처리 부분까지 출력합니다. 🏁 Script executed: #!/bin/bash
sed -n '1,120p' feature/signin/src/main/java/com/into/websoso/feature/signin/SignInScreen.ktLength of output: 4292 ShowToast 이펙트 no-op — 토스트 호출 복구 필요 파일: - ShowToast -> {}
+ ShowToast -> Toast.makeText(
+ context,
+ "문제가 발생했습니다. 잠시 후 다시 시도해 주세요.",
+ Toast.LENGTH_SHORT
+ ).show()파일 상단에 📝 Committable suggestion
Suggested change
🤖 Prompt for AI Agents |
||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||
| NavigateToHome -> websosoNavigator.navigateToMainActivity(context::startActivity) | ||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🛠️ Refactor suggestion
카카오 영역 keep 범위 축소
com.kakao.**까지 전역 keep/dontwarn는 과도합니다. SDK 영역(com.kakao.sdk.**)만 유지하고 나머지는 제거해 크기/최적화 이점을 보존하세요.🤖 Prompt for AI Agents