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..db5ec84d --- /dev/null +++ b/app/src/main/java/com/project200/undabang/di/FirebaseModule.kt @@ -0,0 +1,22 @@ +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.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 { + return FirebaseAnalytics.getInstance(context) + } +} 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..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 @@ -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,13 @@ 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 초기화 }