From fcc49f8ac1fa8440593e4913b71ac8f8f8b84cc1 Mon Sep 17 00:00:00 2001 From: edv-Shin Date: Tue, 2 Dec 2025 02:24:54 +0900 Subject: [PATCH 1/2] =?UTF-8?q?feat:=20=EC=B6=94=EC=A0=81=20=EC=9D=B4?= =?UTF-8?q?=EB=B2=A4=ED=8A=B8=20=EC=B6=94=EA=B0=80=20#403?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../project200/undabang/di/FirebaseModule.kt | 21 +++++++++++++++++++ feature/chatting/build.gradle.kts | 4 ++++ .../chattingRoom/ChattingRoomFragment.kt | 11 ++++++++++ 3 files changed, 36 insertions(+) create mode 100644 app/src/main/java/com/project200/undabang/di/FirebaseModule.kt diff --git a/app/src/main/java/com/project200/undabang/di/FirebaseModule.kt b/app/src/main/java/com/project200/undabang/di/FirebaseModule.kt new file mode 100644 index 00000000..96d18b23 --- /dev/null +++ b/app/src/main/java/com/project200/undabang/di/FirebaseModule.kt @@ -0,0 +1,21 @@ +package com.project200.undabang.di + +import android.content.Context +import com.google.firebase.analytics.FirebaseAnalytics +import dagger.Module +import dagger.Provides +import dagger.hilt.InstallIn +import dagger.hilt.components.SingletonComponent +import dagger.hilt.android.qualifiers.ApplicationContext +import javax.inject.Singleton + +@Module +@InstallIn(SingletonComponent::class) +object FirebaseModule { + + @Provides + @Singleton + fun provideFirebaseAnalytics(@ApplicationContext context: Context): FirebaseAnalytics { + return FirebaseAnalytics.getInstance(context) + } +} \ No newline at end of file diff --git a/feature/chatting/build.gradle.kts b/feature/chatting/build.gradle.kts index ef0f0ef5..28535341 100644 --- a/feature/chatting/build.gradle.kts +++ b/feature/chatting/build.gradle.kts @@ -36,6 +36,10 @@ dependencies { // CircleImageView implementation(libs.circleimageview) + // Google Analytics + implementation(platform(libs.firebase.bom)) + implementation(libs.firebase.analytics) + // Glide implementation(libs.glide) ksp(libs.glide.compiler.ksp) diff --git a/feature/chatting/src/main/java/com/project200/feature/chatting/chattingRoom/ChattingRoomFragment.kt b/feature/chatting/src/main/java/com/project200/feature/chatting/chattingRoom/ChattingRoomFragment.kt index 2d99cd76..150dcbaa 100644 --- a/feature/chatting/src/main/java/com/project200/feature/chatting/chattingRoom/ChattingRoomFragment.kt +++ b/feature/chatting/src/main/java/com/project200/feature/chatting/chattingRoom/ChattingRoomFragment.kt @@ -1,6 +1,7 @@ package com.project200.feature.chatting.chattingRoom import android.graphics.Rect +import android.os.Bundle import android.view.ContextThemeWrapper import android.view.GestureDetector import android.view.Gravity @@ -22,6 +23,7 @@ import androidx.navigation.fragment.navArgs import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.RecyclerView import com.google.android.material.snackbar.Snackbar +import com.google.firebase.analytics.FirebaseAnalytics import com.project200.common.utils.ChatRoomStateRepository import com.project200.common.utils.CommonDateTimeFormatters.YYYY_MM_DD_KR import com.project200.feature.chatting.chattingRoom.adapter.ChatRVAdapter @@ -45,6 +47,9 @@ class ChattingRoomFragment : BindingFragment(R.layo private lateinit var chatAdapter: ChatRVAdapter private val args: ChattingRoomFragmentArgs by navArgs() + @Inject + lateinit var firebaseAnalytics: FirebaseAnalytics + @Inject lateinit var chatRoomStateRepository: ChatRoomStateRepository @@ -85,6 +90,12 @@ class ChattingRoomFragment : BindingFragment(R.layo binding.sendBtn.setOnClickListener { val messageText = binding.chattingMessageEt.text.toString() if (messageText.isNotBlank()) { + // Firebase Analytics 이벤트 로깅 + val bundle = Bundle().apply { + putLong("timestamp", System.currentTimeMillis()) + } + firebaseAnalytics.logEvent("chat_send_message", bundle) + viewModel.sendMessage(messageText) binding.chattingMessageEt.text.clear() // EditText 초기화 } From 66b3c02378e5e7fcdf8e356bab1453f09707d276 Mon Sep 17 00:00:00 2001 From: edv-Shin Date: Tue, 2 Dec 2025 02:38:03 +0900 Subject: [PATCH 2/2] =?UTF-8?q?fix:=20ktlint=20=EB=AC=B8=EB=B2=95=20?= =?UTF-8?q?=EC=88=98=EC=A0=95=20#403?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/project200/undabang/di/FirebaseModule.kt | 9 +++++---- .../chatting/chattingRoom/ChattingRoomFragment.kt | 7 ++++--- 2 files changed, 9 insertions(+), 7 deletions(-) diff --git a/app/src/main/java/com/project200/undabang/di/FirebaseModule.kt b/app/src/main/java/com/project200/undabang/di/FirebaseModule.kt index 96d18b23..db5ec84d 100644 --- a/app/src/main/java/com/project200/undabang/di/FirebaseModule.kt +++ b/app/src/main/java/com/project200/undabang/di/FirebaseModule.kt @@ -5,17 +5,18 @@ import com.google.firebase.analytics.FirebaseAnalytics import dagger.Module import dagger.Provides import dagger.hilt.InstallIn -import dagger.hilt.components.SingletonComponent import dagger.hilt.android.qualifiers.ApplicationContext +import dagger.hilt.components.SingletonComponent import javax.inject.Singleton @Module @InstallIn(SingletonComponent::class) object FirebaseModule { - @Provides @Singleton - fun provideFirebaseAnalytics(@ApplicationContext context: Context): FirebaseAnalytics { + fun provideFirebaseAnalytics( + @ApplicationContext context: Context, + ): FirebaseAnalytics { return FirebaseAnalytics.getInstance(context) } -} \ No newline at end of file +} diff --git a/feature/chatting/src/main/java/com/project200/feature/chatting/chattingRoom/ChattingRoomFragment.kt b/feature/chatting/src/main/java/com/project200/feature/chatting/chattingRoom/ChattingRoomFragment.kt index 150dcbaa..b20dcc5e 100644 --- a/feature/chatting/src/main/java/com/project200/feature/chatting/chattingRoom/ChattingRoomFragment.kt +++ b/feature/chatting/src/main/java/com/project200/feature/chatting/chattingRoom/ChattingRoomFragment.kt @@ -91,9 +91,10 @@ class ChattingRoomFragment : BindingFragment(R.layo val messageText = binding.chattingMessageEt.text.toString() if (messageText.isNotBlank()) { // Firebase Analytics 이벤트 로깅 - val bundle = Bundle().apply { - putLong("timestamp", System.currentTimeMillis()) - } + val bundle = + Bundle().apply { + putLong("timestamp", System.currentTimeMillis()) + } firebaseAnalytics.logEvent("chat_send_message", bundle) viewModel.sendMessage(messageText)