diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index ee562124..d73d05a7 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -112,6 +112,9 @@
+
diff --git a/app/src/main/java/kr/co/vividnext/sodalive/di/AppDI.kt b/app/src/main/java/kr/co/vividnext/sodalive/di/AppDI.kt
index 5e25f1f4..a01b4e27 100644
--- a/app/src/main/java/kr/co/vividnext/sodalive/di/AppDI.kt
+++ b/app/src/main/java/kr/co/vividnext/sodalive/di/AppDI.kt
@@ -71,8 +71,8 @@ import kr.co.vividnext.sodalive.common.ApiBuilder
import kr.co.vividnext.sodalive.explorer.ExplorerApi
import kr.co.vividnext.sodalive.explorer.ExplorerRepository
import kr.co.vividnext.sodalive.explorer.ExplorerViewModel
-import kr.co.vividnext.sodalive.explorer.profile.channel_donation.UserProfileChannelDonationAllViewModel
import kr.co.vividnext.sodalive.explorer.profile.UserProfileViewModel
+import kr.co.vividnext.sodalive.explorer.profile.channel_donation.UserProfileChannelDonationAllViewModel
import kr.co.vividnext.sodalive.explorer.profile.creator_community.CreatorCommunityApi
import kr.co.vividnext.sodalive.explorer.profile.creator_community.CreatorCommunityRepository
import kr.co.vividnext.sodalive.explorer.profile.creator_community.all.CreatorCommunityAllViewModel
@@ -145,8 +145,8 @@ import kr.co.vividnext.sodalive.mypage.recent.recentContentModule
import kr.co.vividnext.sodalive.mypage.service_center.FaqApi
import kr.co.vividnext.sodalive.mypage.service_center.FaqRepository
import kr.co.vividnext.sodalive.mypage.service_center.ServiceCenterViewModel
-import kr.co.vividnext.sodalive.network.TokenAuthenticator
import kr.co.vividnext.sodalive.network.AcceptLanguageInterceptor
+import kr.co.vividnext.sodalive.network.TokenAuthenticator
import kr.co.vividnext.sodalive.report.ReportApi
import kr.co.vividnext.sodalive.report.ReportRepository
import kr.co.vividnext.sodalive.search.SearchApi
@@ -180,6 +180,11 @@ import kr.co.vividnext.sodalive.v2.main.MainV2ViewModel
import kr.co.vividnext.sodalive.v2.main.chat.ChatMainViewModel
import kr.co.vividnext.sodalive.v2.main.chat.data.ChatRoomApi
import kr.co.vividnext.sodalive.v2.main.chat.data.ChatRoomRepository
+import kr.co.vividnext.sodalive.v2.main.chat.dm.DmChatRoomViewModel
+import kr.co.vividnext.sodalive.v2.main.chat.dm.data.DmChatApi
+import kr.co.vividnext.sodalive.v2.main.chat.dm.data.DmChatEventClient
+import kr.co.vividnext.sodalive.v2.main.chat.dm.data.DmChatRealtimeClient
+import kr.co.vividnext.sodalive.v2.main.chat.dm.data.DmChatRepository
import kr.co.vividnext.sodalive.v2.main.home.HomeCreatorRankingViewModel
import kr.co.vividnext.sodalive.v2.main.home.HomeRecommendationViewModel
import kr.co.vividnext.sodalive.v2.main.home.data.HomeCreatorRankingApi
@@ -295,6 +300,7 @@ class AppDI(private val context: Context, isDebugMode: Boolean) {
single { ApiBuilder().build(get(), PointStatusApi::class.java) }
single { ApiBuilder().build(get(), HomeApi::class.java) }
single { ApiBuilder().build(get(), ChatRoomApi::class.java) }
+ single { ApiBuilder().build(get(), DmChatApi::class.java) }
single { ApiBuilder().build(get(), HomeCreatorRankingApi::class.java) }
single { ApiBuilder().build(get(), HomeRecommendationApi::class.java) }
single { ApiBuilder().build(get(), CharacterApi::class.java) }
@@ -302,6 +308,7 @@ class AppDI(private val context: Context, isDebugMode: Boolean) {
single { ApiBuilder().build(get(), CharacterCommentApi::class.java) }
single { ApiBuilder().build(get(), OriginalWorkApi::class.java) }
single { ApiBuilder().build(get(named("agoraRetrofit")), V2vApi::class.java) }
+ single { DmChatEventClient(okHttpClient = get(), gson = get(), baseUrl = baseUrl) }
}
private val viewModelModule = module {
@@ -394,6 +401,7 @@ class AppDI(private val context: Context, isDebugMode: Boolean) {
viewModel { PointStatusViewModel(get()) }
viewModel { HomeViewModel(get(), get()) }
viewModel { ChatMainViewModel(get()) }
+ viewModel { DmChatRoomViewModel(get()) }
viewModel { HomeCreatorRankingViewModel(get()) }
viewModel { HomeRecommendationViewModel(get()) }
viewModel { PushNotificationListViewModel(get()) }
@@ -447,6 +455,7 @@ class AppDI(private val context: Context, isDebugMode: Boolean) {
factory { PointStatusRepository(get()) }
factory { HomeRepository(get()) }
factory { ChatRoomRepository(get()) }
+ factory { DmChatRepository(api = get(), realtimeClient = get()) }
factory { HomeCreatorRankingRepository(get()) }
factory { HomeRecommendationRepository(get()) }
factory { CharacterTabRepository(get()) }