From 8b3848e034cd047087af3e19d9b5af17ed9f0878 Mon Sep 17 00:00:00 2001 From: librarywon Date: Thu, 21 Nov 2024 15:22:10 +0900 Subject: [PATCH 01/12] =?UTF-8?q?feat:=20amplitude=20=EB=B2=84=EC=A0=84=20?= =?UTF-8?q?=EC=B9=B4=EB=8B=AC=EB=A1=9C=EA=B7=B8=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- gradle/libs.versions.toml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index c3500013..fd350ee8 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -35,6 +35,7 @@ googleFirebaseCrashlytics = "3.0.2" datastore = "1.0.0" firebaseFirestoreKtx = "25.0.0" coil = "2.3.0" +amplitude = "1.+" # HTTP okhttp = "4.11.0" @@ -136,6 +137,9 @@ androidx-credentials = { module = "androidx.credentials:credentials", version.re androidx-credentials-play-services-auth = { module = "androidx.credentials:credentials-play-services-auth", version.ref = "credentials" } googleid = { module = "com.google.android.libraries.identity.googleid:googleid", version.ref = "googleid" } +# Amplitude +amplitude = { module = "com.amplitude:analytics-android", version.ref = "amplitude" } + [plugins] android-application = { id = "com.android.application", version.ref = "agp" } kotlin-android = { id = "org.jetbrains.kotlin.android", version.ref = "kotlin" } From df84b526d3b9e183a4132ff88326f293dd72d916 Mon Sep 17 00:00:00 2001 From: librarywon Date: Thu, 21 Nov 2024 15:22:43 +0900 Subject: [PATCH 02/12] =?UTF-8?q?feat:=20tracker=20=EB=AA=A8=EB=93=88=20?= =?UTF-8?q?=EC=83=9D=EC=84=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- core/tracker/.gitignore | 1 + core/tracker/build.gradle.kts | 25 +++++++++++++++++++++++ core/tracker/consumer-rules.pro | 0 core/tracker/src/main/AndroidManifest.xml | 2 ++ settings.gradle.kts | 1 + 5 files changed, 29 insertions(+) create mode 100644 core/tracker/.gitignore create mode 100644 core/tracker/build.gradle.kts create mode 100644 core/tracker/consumer-rules.pro create mode 100644 core/tracker/src/main/AndroidManifest.xml diff --git a/core/tracker/.gitignore b/core/tracker/.gitignore new file mode 100644 index 00000000..42afabfd --- /dev/null +++ b/core/tracker/.gitignore @@ -0,0 +1 @@ +/build \ No newline at end of file diff --git a/core/tracker/build.gradle.kts b/core/tracker/build.gradle.kts new file mode 100644 index 00000000..808c4bbb --- /dev/null +++ b/core/tracker/build.gradle.kts @@ -0,0 +1,25 @@ +import com.android.build.gradle.internal.cxx.configure.gradleLocalProperties + +plugins { + id("hongikyeolgong2.android.library") +} + +android { + namespace = "com.teamhy2.hongikyeolgong2.tracker" + + defaultConfig { + buildConfigField("String", "AMPLITUDE_KEY", getApiKey("AMPLITUDE_KEY")) + } + + buildFeatures { + buildConfig = true + } +} + +dependencies { + implementation(libs.amplitude) +} + +fun getApiKey(propertyKey: String): String { + return gradleLocalProperties(rootDir, providers).getProperty(propertyKey) +} diff --git a/core/tracker/consumer-rules.pro b/core/tracker/consumer-rules.pro new file mode 100644 index 00000000..e69de29b diff --git a/core/tracker/src/main/AndroidManifest.xml b/core/tracker/src/main/AndroidManifest.xml new file mode 100644 index 00000000..8072ee00 --- /dev/null +++ b/core/tracker/src/main/AndroidManifest.xml @@ -0,0 +1,2 @@ + + diff --git a/settings.gradle.kts b/settings.gradle.kts index efe233be..44a648be 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -27,6 +27,7 @@ include(":core:designsystem") include(":core:remote") include(":core:auth") include(":core:notification") +include(":core:tracker") include(":calendar-domain") include(":calendar-presentation") From 27631db04c27bddb68ee15c06ba955cfa4c33136 Mon Sep 17 00:00:00 2001 From: librarywon Date: Thu, 21 Nov 2024 15:23:43 +0900 Subject: [PATCH 03/12] =?UTF-8?q?feat:=20READ=5FPHONE=5FSTATE=20=EA=B6=8C?= =?UTF-8?q?=ED=95=9C=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/src/main/AndroidManifest.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 62dbc9c2..6d4d300f 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -6,7 +6,7 @@ - + Date: Thu, 21 Nov 2024 15:24:20 +0900 Subject: [PATCH 04/12] =?UTF-8?q?feat:=20AmplitudeTracker=20=EA=B5=AC?= =?UTF-8?q?=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/com/teamhy2/tracker/Tracker.kt | 8 +++++ .../tracker/amplitude/AmplitudeTracker.kt | 30 +++++++++++++++++++ .../com/teamhy2/tracker/di/TrackerModule.kt | 24 +++++++++++++++ 3 files changed, 62 insertions(+) create mode 100644 core/tracker/src/main/java/com/teamhy2/tracker/Tracker.kt create mode 100644 core/tracker/src/main/java/com/teamhy2/tracker/amplitude/AmplitudeTracker.kt create mode 100644 core/tracker/src/main/java/com/teamhy2/tracker/di/TrackerModule.kt diff --git a/core/tracker/src/main/java/com/teamhy2/tracker/Tracker.kt b/core/tracker/src/main/java/com/teamhy2/tracker/Tracker.kt new file mode 100644 index 00000000..77c48327 --- /dev/null +++ b/core/tracker/src/main/java/com/teamhy2/tracker/Tracker.kt @@ -0,0 +1,8 @@ +package com.teamhy2.tracker + +interface Tracker { + fun trackEvent( + eventName: String, + properties: Map = emptyMap(), + ) +} diff --git a/core/tracker/src/main/java/com/teamhy2/tracker/amplitude/AmplitudeTracker.kt b/core/tracker/src/main/java/com/teamhy2/tracker/amplitude/AmplitudeTracker.kt new file mode 100644 index 00000000..605d5aba --- /dev/null +++ b/core/tracker/src/main/java/com/teamhy2/tracker/amplitude/AmplitudeTracker.kt @@ -0,0 +1,30 @@ +package com.teamhy2.tracker.amplitude + +import android.content.Context +import com.amplitude.android.Amplitude +import com.amplitude.android.Configuration +import com.amplitude.android.autocaptureOptions +import com.teamhy2.tracker.Tracker + +class AmplitudeTracker(context: Context, apiKey: String) : Tracker { + private val amplitude = + Amplitude( + Configuration( + apiKey = apiKey, + context = context, + autocapture = + autocaptureOptions { + +sessions + +appLifecycles + +screenViews + }, + ), + ) + + override fun trackEvent( + eventName: String, + properties: Map, + ) { + amplitude.track(eventName, properties) + } +} diff --git a/core/tracker/src/main/java/com/teamhy2/tracker/di/TrackerModule.kt b/core/tracker/src/main/java/com/teamhy2/tracker/di/TrackerModule.kt new file mode 100644 index 00000000..c0b6f831 --- /dev/null +++ b/core/tracker/src/main/java/com/teamhy2/tracker/di/TrackerModule.kt @@ -0,0 +1,24 @@ +package com.teamhy2.tracker.di + +import android.content.Context +import com.teamhy2.hongikyeolgong2.tracker.BuildConfig.AMPLITUDE_KEY +import com.teamhy2.tracker.Tracker +import com.teamhy2.tracker.amplitude.AmplitudeTracker +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 TrackerModule { + @Provides + @Singleton + fun provideTracker( + @ApplicationContext context: Context, + ): Tracker { + return AmplitudeTracker(context, AMPLITUDE_KEY) + } +} From 1e661e5e4a3ca51ab6456103614c1fb4a9d773e3 Mon Sep 17 00:00:00 2001 From: librarywon Date: Thu, 21 Nov 2024 15:25:04 +0900 Subject: [PATCH 05/12] =?UTF-8?q?feat:=20LocalTrackerProvider=20=EA=B5=AC?= =?UTF-8?q?=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- core/designsystem/build.gradle.kts | 1 + .../designsystem/util/compositionlocal/LocalTracker.kt | 9 +++++++++ 2 files changed, 10 insertions(+) create mode 100644 core/designsystem/src/main/java/com/teamhy2/designsystem/util/compositionlocal/LocalTracker.kt diff --git a/core/designsystem/build.gradle.kts b/core/designsystem/build.gradle.kts index afe34c39..b14286da 100644 --- a/core/designsystem/build.gradle.kts +++ b/core/designsystem/build.gradle.kts @@ -9,4 +9,5 @@ android { dependencies { implementation(libs.androidx.appcompat) + implementation(projects.core.tracker) } diff --git a/core/designsystem/src/main/java/com/teamhy2/designsystem/util/compositionlocal/LocalTracker.kt b/core/designsystem/src/main/java/com/teamhy2/designsystem/util/compositionlocal/LocalTracker.kt new file mode 100644 index 00000000..a79efd99 --- /dev/null +++ b/core/designsystem/src/main/java/com/teamhy2/designsystem/util/compositionlocal/LocalTracker.kt @@ -0,0 +1,9 @@ +package com.teamhy2.designsystem.util.compositionlocal + +import androidx.compose.runtime.compositionLocalOf +import com.teamhy2.tracker.Tracker + +val LocalTracker = + compositionLocalOf { + error("No Tracker provided") + } From 1b2364a623f09c24a7dcc979a34fef2eea910dc4 Mon Sep 17 00:00:00 2001 From: librarywon Date: Thu, 21 Nov 2024 15:26:06 +0900 Subject: [PATCH 06/12] =?UTF-8?q?feat:=20tracker=20=EC=9D=98=EC=A1=B4?= =?UTF-8?q?=EC=84=B1=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- main-presentation/build.gradle.kts | 1 + ranking-presentation/build.gradle.kts | 1 + record-presentation/build.gradle.kts | 1 + setting-presentation/build.gradle.kts | 1 + 4 files changed, 4 insertions(+) diff --git a/main-presentation/build.gradle.kts b/main-presentation/build.gradle.kts index a122eb31..6bbe65e3 100644 --- a/main-presentation/build.gradle.kts +++ b/main-presentation/build.gradle.kts @@ -12,6 +12,7 @@ dependencies { implementation(projects.core.notification) implementation(projects.core.remote) + implementation(projects.core.tracker) implementation(projects.calendarPresentation) implementation(projects.calendarDomain) diff --git a/ranking-presentation/build.gradle.kts b/ranking-presentation/build.gradle.kts index 4adfb099..dfed87f8 100644 --- a/ranking-presentation/build.gradle.kts +++ b/ranking-presentation/build.gradle.kts @@ -10,4 +10,5 @@ dependencies { implementation(projects.core.designsystem) implementation(projects.rankingDomain) + implementation(projects.core.tracker) } diff --git a/record-presentation/build.gradle.kts b/record-presentation/build.gradle.kts index 40df3ac7..5c1f7c4b 100644 --- a/record-presentation/build.gradle.kts +++ b/record-presentation/build.gradle.kts @@ -13,4 +13,5 @@ dependencies { implementation(projects.calendarPresentation) implementation(projects.calendarDomain) + implementation(projects.core.tracker) } diff --git a/setting-presentation/build.gradle.kts b/setting-presentation/build.gradle.kts index d686afad..9788d8e7 100644 --- a/setting-presentation/build.gradle.kts +++ b/setting-presentation/build.gradle.kts @@ -11,4 +11,5 @@ dependencies { implementation(projects.settingDomain) implementation(projects.userDomain) implementation(libs.coil) + implementation(projects.core.tracker) } From 62dca5fb6d09158059a1593b671e4eb9b5e73c2c Mon Sep 17 00:00:00 2001 From: librarywon Date: Thu, 21 Nov 2024 15:31:58 +0900 Subject: [PATCH 07/12] =?UTF-8?q?feat:=20=EC=9D=B4=EB=B2=A4=ED=8A=B8=20?= =?UTF-8?q?=ED=8A=B8=EB=9E=98=ED=82=B9=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/teamhy2/feature/home/HomeScreen.kt | 6 ++++++ .../java/com/teamhy2/feature/main/MainActivity.kt | 7 +++++++ .../main/java/com/teamhy2/ranking/RankingScreen.kt | 4 ++++ .../main/java/com/teamhy2/record/RecordScreen.kt | 4 ++++ .../feature/setting/presentation/SettingScreen.kt | 13 +++++++++++-- 5 files changed, 32 insertions(+), 2 deletions(-) diff --git a/main-presentation/src/main/java/com/teamhy2/feature/home/HomeScreen.kt b/main-presentation/src/main/java/com/teamhy2/feature/home/HomeScreen.kt index 23c0651e..deaa4579 100644 --- a/main-presentation/src/main/java/com/teamhy2/feature/home/HomeScreen.kt +++ b/main-presentation/src/main/java/com/teamhy2/feature/home/HomeScreen.kt @@ -32,6 +32,7 @@ import com.teamhy2.designsystem.common.HY2Dialog import com.teamhy2.designsystem.common.HY2TimePicker import com.teamhy2.designsystem.ui.theme.HY2Theme import com.teamhy2.designsystem.util.compositionlocal.LocalShowSnackBar +import com.teamhy2.designsystem.util.compositionlocal.LocalTracker import com.teamhy2.feature.home.component.InitTimerComponent import com.teamhy2.feature.home.component.RunningTimerComponent import com.teamhy2.feature.home.component.WeeklyStudyCalendar @@ -59,6 +60,7 @@ fun HomeRoute( val timerState by timerViewModel.timerState.collectAsStateWithLifecycle() val duration by timerViewModel.durationHour.collectAsStateWithLifecycle() val localShowSnackBar = LocalShowSnackBar.current + val tracker = LocalTracker.current homeViewModel.updateTimerStateFromTimerViewModel(timerState) @@ -76,6 +78,7 @@ fun HomeRoute( } LaunchedEffect(true) { + tracker.trackEvent("Home") homeViewModel.errorFlow.collectLatest { throwable -> localShowSnackBar.showSnackBar(throwable.message) } @@ -107,6 +110,7 @@ fun HomeRoute( startTime = updatedSelectedTime, duration = timerViewModel.durationHour.value, ) + tracker.trackEvent("StudyStartButton") }, onCancelled = { homeViewModel.updateTimePickerVisibility(false) @@ -142,6 +146,7 @@ fun HomeRoute( startTime = LocalDateTime.now(), duration = timerViewModel.durationHour.value, ) + tracker.trackEvent("StudyExtendButton") }, onDismiss = { homeViewModel.updateStudyRoomExtendDialogVisibility(false) @@ -162,6 +167,7 @@ fun HomeRoute( homeViewModel.updateTimerRunning(false) homeViewModel.saveStudyDay(false) homeViewModel.stopTimerService() + tracker.trackEvent("StudyEndButton") }, onDismiss = { homeViewModel.updateStudyRoomEndDialogVisibility(false) diff --git a/main-presentation/src/main/java/com/teamhy2/feature/main/MainActivity.kt b/main-presentation/src/main/java/com/teamhy2/feature/main/MainActivity.kt index 068a0c9b..a29b2ab3 100644 --- a/main-presentation/src/main/java/com/teamhy2/feature/main/MainActivity.kt +++ b/main-presentation/src/main/java/com/teamhy2/feature/main/MainActivity.kt @@ -38,18 +38,24 @@ import com.google.accompanist.permissions.rememberPermissionState import com.teamhy2.designsystem.common.HY2LoadingScreen import com.teamhy2.designsystem.ui.theme.HY2Theme import com.teamhy2.designsystem.util.compositionlocal.LocalShowSnackBar +import com.teamhy2.designsystem.util.compositionlocal.LocalTracker import com.teamhy2.designsystem.util.compositionlocal.ShowSnackBar import com.teamhy2.feature.home.navigation.Home import com.teamhy2.feature.main.component.MainBottomBar import com.teamhy2.hongikyeolgong2.main.presentation.R +import com.teamhy2.tracker.Tracker import dagger.hilt.android.AndroidEntryPoint import kotlinx.coroutines.flow.collectLatest import kotlinx.coroutines.launch +import javax.inject.Inject private const val DEFAULT_BACKGROUND_OPACITY = 0.7f @AndroidEntryPoint class MainActivity : AppCompatActivity() { + @Inject + lateinit var tracker: Tracker + private val initialViewModel: InitialViewModel by viewModels() @OptIn(ExperimentalPermissionsApi::class) @@ -132,6 +138,7 @@ class MainActivity : AppCompatActivity() { is InitialUiState.Success -> { CompositionLocalProvider( + LocalTracker provides tracker, LocalShowSnackBar provides showSnackBar, ) { LaunchedEffect(true) { diff --git a/ranking-presentation/src/main/java/com/teamhy2/ranking/RankingScreen.kt b/ranking-presentation/src/main/java/com/teamhy2/ranking/RankingScreen.kt index 560bafd6..a795ac71 100644 --- a/ranking-presentation/src/main/java/com/teamhy2/ranking/RankingScreen.kt +++ b/ranking-presentation/src/main/java/com/teamhy2/ranking/RankingScreen.kt @@ -28,6 +28,7 @@ import com.teamhy2.designsystem.ui.theme.BackgroundBlack import com.teamhy2.designsystem.ui.theme.Gray100 import com.teamhy2.designsystem.ui.theme.HY2Typography import com.teamhy2.designsystem.util.compositionlocal.LocalShowSnackBar +import com.teamhy2.designsystem.util.compositionlocal.LocalTracker import com.teamhy2.hongikyeolgong2.ranking.presentation.R import com.teamhy2.ranking.components.RankingItem import com.teamhy2.ranking.model.DepartmentRanking @@ -42,7 +43,10 @@ fun RankingRoute( val rankingUiState by rankingViewModel.rankingUiState.collectAsStateWithLifecycle() val localShowSnackBar = LocalShowSnackBar.current + val tracker = LocalTracker.current + LaunchedEffect(true) { + tracker.trackEvent("Ranking") rankingViewModel.errorFlow.collectLatest { throwable -> localShowSnackBar.showSnackBar(throwable.message) } diff --git a/record-presentation/src/main/java/com/teamhy2/record/RecordScreen.kt b/record-presentation/src/main/java/com/teamhy2/record/RecordScreen.kt index 3d7c69ed..6052d623 100644 --- a/record-presentation/src/main/java/com/teamhy2/record/RecordScreen.kt +++ b/record-presentation/src/main/java/com/teamhy2/record/RecordScreen.kt @@ -22,6 +22,7 @@ import com.hongikyeolgong2.calendar.model.Calendar import com.hongikyeolgong2.calendar.presentation.Hy2Calendar import com.teamhy2.designsystem.common.HY2CircularLoading import com.teamhy2.designsystem.util.compositionlocal.LocalShowSnackBar +import com.teamhy2.designsystem.util.compositionlocal.LocalTracker import com.teamhy2.record.components.StudyDurationCard import com.teamhy2.record.domain.model.StudyDuration import com.teamhy2.record.model.RecordUiState @@ -35,7 +36,10 @@ fun RecordRoute( val recordUiState by recordViewModel.recordUiState.collectAsStateWithLifecycle() val localShowSnackBar = LocalShowSnackBar.current + val tracker = LocalTracker.current + LaunchedEffect(true) { + tracker.trackEvent("Record") recordViewModel.errorFlow.collectLatest { throwable -> localShowSnackBar.showSnackBar(throwable.message) } diff --git a/setting-presentation/src/main/java/com/teamhy2/feature/setting/presentation/SettingScreen.kt b/setting-presentation/src/main/java/com/teamhy2/feature/setting/presentation/SettingScreen.kt index cbfb60bd..87a1c86e 100644 --- a/setting-presentation/src/main/java/com/teamhy2/feature/setting/presentation/SettingScreen.kt +++ b/setting-presentation/src/main/java/com/teamhy2/feature/setting/presentation/SettingScreen.kt @@ -37,6 +37,7 @@ import com.teamhy2.designsystem.ui.theme.Gray300 import com.teamhy2.designsystem.ui.theme.HY2Theme import com.teamhy2.designsystem.ui.theme.HY2Typography import com.teamhy2.designsystem.util.compositionlocal.LocalShowSnackBar +import com.teamhy2.designsystem.util.compositionlocal.LocalTracker import com.teamhy2.feature.setting.presentation.components.SettingButton import com.teamhy2.feature.setting.presentation.components.SettingButtonWithSwitch import com.teamhy2.feature.setting.presentation.components.SettingUserProfile @@ -55,9 +56,11 @@ fun SettingRoute( ) { val settingUiState by viewModel.settingUiState.collectAsStateWithLifecycle() val context = LocalContext.current + val tracker = LocalTracker.current val localShowSnackBar = LocalShowSnackBar.current LaunchedEffect(true) { + tracker.trackEvent("Setting") viewModel.errorFlow.collectLatest { throwable -> localShowSnackBar.showSnackBar(throwable.message) } @@ -65,8 +68,14 @@ fun SettingRoute( SettingScreen( settingUiState = settingUiState, - onLogoutClick = viewModel::signOut, - onWithdrawClick = viewModel::withdraw, + onLogoutClick = { + viewModel.signOut() + tracker.trackEvent("LogoutButton") + }, + onWithdrawClick = { + viewModel.withdraw() + tracker.trackEvent("WithdrawButton") + }, onNotificationSwitchClick = { isChecked -> viewModel.updateNotificationSwitchState(isChecked) }, From 6b1960fc6560791527c82cb7f46d788e7f5fa2dc Mon Sep 17 00:00:00 2001 From: librarywon Date: Thu, 21 Nov 2024 15:34:09 +0900 Subject: [PATCH 08/12] =?UTF-8?q?refactor:=20ForegroundService=20=EC=95=8C?= =?UTF-8?q?=EB=A6=BC=20=EB=AC=B8=EA=B5=AC=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/teamhy2/feature/home/MainNotificationHandler.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/main-presentation/src/main/java/com/teamhy2/feature/home/MainNotificationHandler.kt b/main-presentation/src/main/java/com/teamhy2/feature/home/MainNotificationHandler.kt index 2e48943a..b09e25ee 100644 --- a/main-presentation/src/main/java/com/teamhy2/feature/home/MainNotificationHandler.kt +++ b/main-presentation/src/main/java/com/teamhy2/feature/home/MainNotificationHandler.kt @@ -59,7 +59,7 @@ class MainNotificationHandler override fun buildServiceNotification(): Notification { return NotificationCompat.Builder(context, NOTIFICATION_CHANNEL_ID) .setContentTitle("홍익열공이 열공중") - .setContentText("열람실을 이용중이에요!") + .setContentText("지금 열람실을 이용중이에요!") .setSmallIcon(R.drawable.ic_status_bar_logo) .setOngoing(true) .setContentIntent(pendingIntent) From 529e7ff76630731889f0c2c4141242206170b41a Mon Sep 17 00:00:00 2001 From: librarywon Date: Thu, 21 Nov 2024 15:34:48 +0900 Subject: [PATCH 09/12] =?UTF-8?q?refactor:=20duration=EC=9D=B4=20=EC=8B=9C?= =?UTF-8?q?=EA=B0=84=EC=9D=84=20=EA=B8=B0=EC=A4=80=EC=9C=BC=EB=A1=9C=20?= =?UTF-8?q?=EB=82=98=EC=98=A4=EB=8F=84=EB=A1=9D=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../hongikyeolgong2/timer/presentation/TimerViewModel.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/timer-presentation/src/main/java/com/teamhy2/hongikyeolgong2/timer/presentation/TimerViewModel.kt b/timer-presentation/src/main/java/com/teamhy2/hongikyeolgong2/timer/presentation/TimerViewModel.kt index 73d55a85..bcfcef12 100644 --- a/timer-presentation/src/main/java/com/teamhy2/hongikyeolgong2/timer/presentation/TimerViewModel.kt +++ b/timer-presentation/src/main/java/com/teamhy2/hongikyeolgong2/timer/presentation/TimerViewModel.kt @@ -37,7 +37,7 @@ class TimerViewModel private fun getStudyRoomDuration() { viewModelScope.launch { val hours = timerRepository.getStudyRoomHourDuration() - _durationHour.value = Duration.ofMinutes(hours) + _durationHour.value = Duration.ofHours(hours) } } From 5e41b8567392474e7c9f9eb225bce9b2227ffcdb Mon Sep 17 00:00:00 2001 From: librarywon Date: Fri, 22 Nov 2024 13:26:47 +0900 Subject: [PATCH 10/12] =?UTF-8?q?refactor:=20AMPLITUDE=5FKEY=EA=B0=80=20Bu?= =?UTF-8?q?ildConfig=EC=97=90=EC=84=9C=20=EA=B0=80=EC=A0=B8=20=EC=99=94?= =?UTF-8?q?=EB=8B=A4=EB=8A=94=20=EA=B2=83=EC=9D=84=20=EC=95=8C=20=EC=88=98?= =?UTF-8?q?=20=EC=9E=88=EB=8F=84=EB=A1=9D=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/com/teamhy2/tracker/di/TrackerModule.kt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/core/tracker/src/main/java/com/teamhy2/tracker/di/TrackerModule.kt b/core/tracker/src/main/java/com/teamhy2/tracker/di/TrackerModule.kt index c0b6f831..e300384a 100644 --- a/core/tracker/src/main/java/com/teamhy2/tracker/di/TrackerModule.kt +++ b/core/tracker/src/main/java/com/teamhy2/tracker/di/TrackerModule.kt @@ -1,7 +1,7 @@ package com.teamhy2.tracker.di import android.content.Context -import com.teamhy2.hongikyeolgong2.tracker.BuildConfig.AMPLITUDE_KEY +import com.teamhy2.hongikyeolgong2.tracker.BuildConfig import com.teamhy2.tracker.Tracker import com.teamhy2.tracker.amplitude.AmplitudeTracker import dagger.Module @@ -19,6 +19,6 @@ object TrackerModule { fun provideTracker( @ApplicationContext context: Context, ): Tracker { - return AmplitudeTracker(context, AMPLITUDE_KEY) + return AmplitudeTracker(context, BuildConfig.AMPLITUDE_KEY) } } From cb581819e26fc289e1f23b00830dcbaff920bf05 Mon Sep 17 00:00:00 2001 From: librarywon Date: Fri, 22 Nov 2024 13:42:31 +0900 Subject: [PATCH 11/12] =?UTF-8?q?refactor:=20LocalTracker=20=EA=B8=B0?= =?UTF-8?q?=EB=B3=B8=EA=B0=92=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../designsystem/util/compositionlocal/LocalTracker.kt | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/core/designsystem/src/main/java/com/teamhy2/designsystem/util/compositionlocal/LocalTracker.kt b/core/designsystem/src/main/java/com/teamhy2/designsystem/util/compositionlocal/LocalTracker.kt index a79efd99..b8385f28 100644 --- a/core/designsystem/src/main/java/com/teamhy2/designsystem/util/compositionlocal/LocalTracker.kt +++ b/core/designsystem/src/main/java/com/teamhy2/designsystem/util/compositionlocal/LocalTracker.kt @@ -5,5 +5,11 @@ import com.teamhy2.tracker.Tracker val LocalTracker = compositionLocalOf { - error("No Tracker provided") + object : Tracker { + override fun trackEvent( + eventName: String, + properties: Map, + ) { + } + } } From fb381cd62b44c0f05cb9ddc47b6344133c55e68d Mon Sep 17 00:00:00 2001 From: librarywon Date: Fri, 22 Nov 2024 13:48:31 +0900 Subject: [PATCH 12/12] =?UTF-8?q?refactor:=20READ=5FPHONE=5FSTATE=20?= =?UTF-8?q?=ED=8D=BC=EB=AF=B8=EC=85=98=20=EC=A0=9C=EA=B1=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/src/main/AndroidManifest.xml | 1 - 1 file changed, 1 deletion(-) diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 6d4d300f..549b737f 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -6,7 +6,6 @@ -