diff --git a/app/build.gradle.kts b/app/build.gradle.kts
index 5306826d..2669d1ad 100644
--- a/app/build.gradle.kts
+++ b/app/build.gradle.kts
@@ -50,6 +50,8 @@ android {
dependencies {
implementation(projects.core.ui)
+ implementation(projects.core.analytics)
+ implementation(projects.core.android)
implementation(projects.core.designSystem)
implementation(projects.core.common)
implementation(projects.core.model)
diff --git a/app/src/main/java/com/moneymong/moneymong/MainActivity.kt b/app/src/main/java/com/moneymong/moneymong/MainActivity.kt
index bf56c412..146b220d 100644
--- a/app/src/main/java/com/moneymong/moneymong/MainActivity.kt
+++ b/app/src/main/java/com/moneymong/moneymong/MainActivity.kt
@@ -6,6 +6,7 @@ import android.os.Bundle
import androidx.activity.ComponentActivity
import androidx.activity.compose.setContent
import androidx.activity.viewModels
+import androidx.compose.runtime.CompositionLocalProvider
import androidx.compose.runtime.LaunchedEffect
import androidx.compose.runtime.getValue
import androidx.compose.runtime.mutableStateOf
@@ -13,7 +14,8 @@ import androidx.compose.runtime.remember
import androidx.compose.runtime.setValue
import androidx.compose.ui.platform.LocalContext
import androidx.lifecycle.compose.LifecycleStartEffect
-import com.moneymong.moneymong.common.event.EventTracker
+import com.moneymong.moneymong.analytics.AnalyticsTracker
+import com.moneymong.moneymong.analytics.LocalAnalyticsTracker
import com.moneymong.moneymong.design_system.error.ErrorDialog
import com.moneymong.moneymong.design_system.theme.MMTheme
import com.moneymong.moneymong.domain.repository.token.TokenRepository
@@ -30,12 +32,10 @@ class MainActivity : ComponentActivity() {
lateinit var tokenRepository: TokenRepository
@Inject
- lateinit var eventTracker: EventTracker
+ lateinit var analyticsTracker: AnalyticsTracker
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
- eventTracker.initialize()
-
setContent {
val context = LocalContext.current
val state by viewModel.collectAsState()
@@ -53,27 +53,29 @@ class MainActivity : ComponentActivity() {
onStopOrDispose { }
})
- MMTheme {
- if (shouldUpdate) {
- ErrorDialog(
- message = "안정적인 머니몽 사용을 위해\n최신 버전으로 업데이트가 필요해요!",
- confirmText = "업데이트",
- onConfirm = {
- val playStoreUrl =
- "https://play.google.com/store/apps/details?id=${BuildConfig.APPLICATION_ID}"
- val intent = Intent(Intent.ACTION_VIEW).apply {
- data = Uri.parse(playStoreUrl)
- setPackage("com.android.vending")
+ CompositionLocalProvider(LocalAnalyticsTracker provides analyticsTracker) {
+ MMTheme {
+ if (shouldUpdate) {
+ ErrorDialog(
+ message = "안정적인 머니몽 사용을 위해\n최신 버전으로 업데이트가 필요해요!",
+ confirmText = "업데이트",
+ onConfirm = {
+ val playStoreUrl =
+ "https://play.google.com/store/apps/details?id=${BuildConfig.APPLICATION_ID}"
+ val intent = Intent(Intent.ACTION_VIEW).apply {
+ data = Uri.parse(playStoreUrl)
+ setPackage("com.android.vending")
+ }
+ context.startActivity(intent)
}
- context.startActivity(intent)
- }
+ )
+ }
+
+ MoneyMongApp(
+ expired = expired,
+ onChangeExpired = { expired = false }
)
}
-
- MoneyMongApp(
- expired = expired,
- onChangeExpired = { expired = false }
- )
}
}
}
diff --git a/app/src/main/java/com/moneymong/moneymong/MainSideEffect.kt b/app/src/main/java/com/moneymong/moneymong/MainSideEffect.kt
index 268a99d1..dd6b75e1 100644
--- a/app/src/main/java/com/moneymong/moneymong/MainSideEffect.kt
+++ b/app/src/main/java/com/moneymong/moneymong/MainSideEffect.kt
@@ -1,6 +1,6 @@
package com.moneymong.moneymong
-import com.moneymong.moneymong.common.base.SideEffect
+import com.moneymong.moneymong.android.SideEffect
sealed class MainSideEffect: SideEffect {
}
\ No newline at end of file
diff --git a/app/src/main/java/com/moneymong/moneymong/MainState.kt b/app/src/main/java/com/moneymong/moneymong/MainState.kt
index e52687e3..b2e68f38 100644
--- a/app/src/main/java/com/moneymong/moneymong/MainState.kt
+++ b/app/src/main/java/com/moneymong/moneymong/MainState.kt
@@ -1,6 +1,6 @@
package com.moneymong.moneymong
-import com.moneymong.moneymong.common.base.State
+import com.moneymong.moneymong.android.State
data class MainState(
val shouldUpdate: Boolean = false
diff --git a/app/src/main/java/com/moneymong/moneymong/MainViewModel.kt b/app/src/main/java/com/moneymong/moneymong/MainViewModel.kt
index 191ab18b..78cecc74 100644
--- a/app/src/main/java/com/moneymong/moneymong/MainViewModel.kt
+++ b/app/src/main/java/com/moneymong/moneymong/MainViewModel.kt
@@ -1,6 +1,6 @@
package com.moneymong.moneymong
-import com.moneymong.moneymong.common.base.BaseViewModel
+import com.moneymong.moneymong.android.BaseViewModel
import com.moneymong.moneymong.domain.usecase.version.CheckVersionUpdateUseCase
import dagger.hilt.android.lifecycle.HiltViewModel
import org.orbitmvi.orbit.syntax.simple.intent
diff --git a/core/analytics/.gitignore b/core/analytics/.gitignore
new file mode 100644
index 00000000..42afabfd
--- /dev/null
+++ b/core/analytics/.gitignore
@@ -0,0 +1 @@
+/build
\ No newline at end of file
diff --git a/core/analytics/build.gradle.kts b/core/analytics/build.gradle.kts
new file mode 100644
index 00000000..348ef22f
--- /dev/null
+++ b/core/analytics/build.gradle.kts
@@ -0,0 +1,15 @@
+@Suppress("DSL_SCOPE_VIOLATION") // TODO: Remove once KTIJ-19369 is fixed
+plugins {
+ alias(libs.plugins.moneymong.android.library)
+ alias(libs.plugins.moneymong.android.hilt)
+}
+
+android {
+ namespace = "com.moneymong.moneymong.analytics"
+}
+
+dependencies {
+ implementation(platform(libs.firebase.bom))
+ implementation(libs.firebase.analytics)
+ implementation(libs.firebase.crashlytics)
+}
\ No newline at end of file
diff --git a/core/analytics/consumer-rules.pro b/core/analytics/consumer-rules.pro
new file mode 100644
index 00000000..e69de29b
diff --git a/core/analytics/proguard-rules.pro b/core/analytics/proguard-rules.pro
new file mode 100644
index 00000000..481bb434
--- /dev/null
+++ b/core/analytics/proguard-rules.pro
@@ -0,0 +1,21 @@
+# 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
\ No newline at end of file
diff --git a/core/analytics/src/androidTest/java/com/moneymong/moneymong/analytics/ExampleInstrumentedTest.kt b/core/analytics/src/androidTest/java/com/moneymong/moneymong/analytics/ExampleInstrumentedTest.kt
new file mode 100644
index 00000000..27a857dc
--- /dev/null
+++ b/core/analytics/src/androidTest/java/com/moneymong/moneymong/analytics/ExampleInstrumentedTest.kt
@@ -0,0 +1,24 @@
+package com.moneymong.moneymong.analytics
+
+import androidx.test.platform.app.InstrumentationRegistry
+import androidx.test.ext.junit.runners.AndroidJUnit4
+
+import org.junit.Test
+import org.junit.runner.RunWith
+
+import org.junit.Assert.*
+
+/**
+ * Instrumented test, which will execute on an Android device.
+ *
+ * See [testing documentation](http://d.android.com/tools/testing).
+ */
+@RunWith(AndroidJUnit4::class)
+class ExampleInstrumentedTest {
+ @Test
+ fun useAppContext() {
+ // Context of the app under test.
+ val appContext = InstrumentationRegistry.getInstrumentation().targetContext
+ assertEquals("com.moneymong.moneymong.analytics.test", appContext.packageName)
+ }
+}
\ No newline at end of file
diff --git a/core/analytics/src/main/AndroidManifest.xml b/core/analytics/src/main/AndroidManifest.xml
new file mode 100644
index 00000000..a5918e68
--- /dev/null
+++ b/core/analytics/src/main/AndroidManifest.xml
@@ -0,0 +1,4 @@
+
+
+
+
\ No newline at end of file
diff --git a/core/analytics/src/main/java/com/moneymong/moneymong/analytics/AnalyticsEvent.kt b/core/analytics/src/main/java/com/moneymong/moneymong/analytics/AnalyticsEvent.kt
new file mode 100644
index 00000000..df6bc9ad
--- /dev/null
+++ b/core/analytics/src/main/java/com/moneymong/moneymong/analytics/AnalyticsEvent.kt
@@ -0,0 +1,16 @@
+package com.moneymong.moneymong.analytics
+
+data class AnalyticsEvent(
+ val type: String,
+ val extras: List = emptyList(),
+) {
+ data class Param(
+ val key: String,
+ val value: String,
+ )
+
+ companion object {
+ const val SCREEN_VIEW = "screen_view"
+ const val SCREEN_NAME = "screen_name"
+ }
+}
\ No newline at end of file
diff --git a/core/analytics/src/main/java/com/moneymong/moneymong/analytics/AnalyticsModule.kt b/core/analytics/src/main/java/com/moneymong/moneymong/analytics/AnalyticsModule.kt
new file mode 100644
index 00000000..462a54af
--- /dev/null
+++ b/core/analytics/src/main/java/com/moneymong/moneymong/analytics/AnalyticsModule.kt
@@ -0,0 +1,26 @@
+package com.moneymong.moneymong.analytics
+
+import com.google.firebase.Firebase
+import com.google.firebase.analytics.FirebaseAnalytics
+import com.google.firebase.analytics.analytics
+import dagger.Binds
+import dagger.Module
+import dagger.Provides
+import dagger.hilt.InstallIn
+import dagger.hilt.components.SingletonComponent
+import javax.inject.Singleton
+
+@Module
+@InstallIn(SingletonComponent::class)
+abstract class AnalyticsModule {
+
+ @Binds
+ @Singleton
+ abstract fun bindsAnalyticsTracker(firebaseAnalyticsTracker: FirebaseAnalyticsTracker): AnalyticsTracker
+
+ companion object {
+ @Provides
+ @Singleton
+ fun provideFirebaseAnalytics(): FirebaseAnalytics = Firebase.analytics
+ }
+}
\ No newline at end of file
diff --git a/core/analytics/src/main/java/com/moneymong/moneymong/analytics/AnalyticsTracker.kt b/core/analytics/src/main/java/com/moneymong/moneymong/analytics/AnalyticsTracker.kt
new file mode 100644
index 00000000..a1fdbe76
--- /dev/null
+++ b/core/analytics/src/main/java/com/moneymong/moneymong/analytics/AnalyticsTracker.kt
@@ -0,0 +1,5 @@
+package com.moneymong.moneymong.analytics
+
+interface AnalyticsTracker {
+ fun logEvent(event: AnalyticsEvent)
+}
\ No newline at end of file
diff --git a/core/analytics/src/main/java/com/moneymong/moneymong/analytics/CompositionEventTracker.kt b/core/analytics/src/main/java/com/moneymong/moneymong/analytics/CompositionEventTracker.kt
new file mode 100644
index 00000000..6ce1edd5
--- /dev/null
+++ b/core/analytics/src/main/java/com/moneymong/moneymong/analytics/CompositionEventTracker.kt
@@ -0,0 +1,7 @@
+package com.moneymong.moneymong.analytics
+
+import androidx.compose.runtime.staticCompositionLocalOf
+
+val LocalAnalyticsTracker = staticCompositionLocalOf {
+ NoOpAnalyticsTracker()
+}
diff --git a/core/analytics/src/main/java/com/moneymong/moneymong/analytics/FirebaseAnalyticsTracker.kt b/core/analytics/src/main/java/com/moneymong/moneymong/analytics/FirebaseAnalyticsTracker.kt
new file mode 100644
index 00000000..604f6c9d
--- /dev/null
+++ b/core/analytics/src/main/java/com/moneymong/moneymong/analytics/FirebaseAnalyticsTracker.kt
@@ -0,0 +1,25 @@
+package com.moneymong.moneymong.analytics
+
+import com.google.firebase.analytics.FirebaseAnalytics
+import com.google.firebase.analytics.logEvent
+import javax.inject.Inject
+
+class FirebaseAnalyticsTracker @Inject constructor(
+ private val firebaseAnalytics: FirebaseAnalytics
+) : AnalyticsTracker {
+ override fun logEvent(event: AnalyticsEvent) {
+ firebaseAnalytics.logEvent(event.type) {
+ for (extra in event.extras) {
+ param(
+ key = extra.key.take(MAX_KEY_TAKE_COUNT),
+ value = extra.value.take(MAX_VALUE_TAKE_COUNT),
+ )
+ }
+ }
+ }
+
+ companion object {
+ private const val MAX_KEY_TAKE_COUNT = 40
+ private const val MAX_VALUE_TAKE_COUNT = 100
+ }
+}
\ No newline at end of file
diff --git a/core/analytics/src/main/java/com/moneymong/moneymong/analytics/NoOpAnalyticsTracker.kt b/core/analytics/src/main/java/com/moneymong/moneymong/analytics/NoOpAnalyticsTracker.kt
new file mode 100644
index 00000000..1e0f9c15
--- /dev/null
+++ b/core/analytics/src/main/java/com/moneymong/moneymong/analytics/NoOpAnalyticsTracker.kt
@@ -0,0 +1,5 @@
+package com.moneymong.moneymong.analytics
+
+class NoOpAnalyticsTracker : AnalyticsTracker {
+ override fun logEvent(event: AnalyticsEvent) = Unit
+}
\ No newline at end of file
diff --git a/core/analytics/src/test/java/com/moneymong/moneymong/analytics/ExampleUnitTest.kt b/core/analytics/src/test/java/com/moneymong/moneymong/analytics/ExampleUnitTest.kt
new file mode 100644
index 00000000..c4c0510d
--- /dev/null
+++ b/core/analytics/src/test/java/com/moneymong/moneymong/analytics/ExampleUnitTest.kt
@@ -0,0 +1,17 @@
+package com.moneymong.moneymong.analytics
+
+import org.junit.Test
+
+import org.junit.Assert.*
+
+/**
+ * Example local unit test, which will execute on the development machine (host).
+ *
+ * See [testing documentation](http://d.android.com/tools/testing).
+ */
+class ExampleUnitTest {
+ @Test
+ fun addition_isCorrect() {
+ assertEquals(4, 2 + 2)
+ }
+}
\ No newline at end of file
diff --git a/core/android/.gitignore b/core/android/.gitignore
new file mode 100644
index 00000000..42afabfd
--- /dev/null
+++ b/core/android/.gitignore
@@ -0,0 +1 @@
+/build
\ No newline at end of file
diff --git a/core/android/build.gradle.kts b/core/android/build.gradle.kts
new file mode 100644
index 00000000..8dbede6d
--- /dev/null
+++ b/core/android/build.gradle.kts
@@ -0,0 +1,23 @@
+@Suppress("DSL_SCOPE_VIOLATION") // TODO: Remove once KTIJ-19369 is fixed
+plugins {
+ alias(libs.plugins.moneymong.android.library)
+ alias(libs.plugins.moneymong.android.hilt)
+}
+
+android {
+ namespace = "com.moneymong.moneymong.android"
+}
+
+dependencies {
+ implementation(libs.orbit.core)
+ implementation(libs.orbit.compose)
+ implementation(libs.orbit.viewModel)
+ implementation(libs.okhttp)
+
+ implementation(libs.androidx.core.ktx)
+ implementation(libs.appcompat)
+ implementation(libs.material)
+ testImplementation(libs.junit4)
+ androidTestImplementation(libs.androidx.junit)
+ androidTestImplementation(libs.androidx.test.espresso.core)
+}
\ No newline at end of file
diff --git a/core/android/consumer-rules.pro b/core/android/consumer-rules.pro
new file mode 100644
index 00000000..e69de29b
diff --git a/core/android/proguard-rules.pro b/core/android/proguard-rules.pro
new file mode 100644
index 00000000..481bb434
--- /dev/null
+++ b/core/android/proguard-rules.pro
@@ -0,0 +1,21 @@
+# 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
\ No newline at end of file
diff --git a/core/android/src/androidTest/java/com/moneymong/moneymong/android/ExampleInstrumentedTest.kt b/core/android/src/androidTest/java/com/moneymong/moneymong/android/ExampleInstrumentedTest.kt
new file mode 100644
index 00000000..3570676d
--- /dev/null
+++ b/core/android/src/androidTest/java/com/moneymong/moneymong/android/ExampleInstrumentedTest.kt
@@ -0,0 +1,24 @@
+package com.moneymong.moneymong.android
+
+import androidx.test.platform.app.InstrumentationRegistry
+import androidx.test.ext.junit.runners.AndroidJUnit4
+
+import org.junit.Test
+import org.junit.runner.RunWith
+
+import org.junit.Assert.*
+
+/**
+ * Instrumented test, which will execute on an Android device.
+ *
+ * See [testing documentation](http://d.android.com/tools/testing).
+ */
+@RunWith(AndroidJUnit4::class)
+class ExampleInstrumentedTest {
+ @Test
+ fun useAppContext() {
+ // Context of the app under test.
+ val appContext = InstrumentationRegistry.getInstrumentation().targetContext
+ assertEquals("com.moneymong.moneymong.android.test", appContext.packageName)
+ }
+}
\ No newline at end of file
diff --git a/core/android/src/main/AndroidManifest.xml b/core/android/src/main/AndroidManifest.xml
new file mode 100644
index 00000000..a5918e68
--- /dev/null
+++ b/core/android/src/main/AndroidManifest.xml
@@ -0,0 +1,4 @@
+
+
+
+
\ No newline at end of file
diff --git a/core/common/src/main/java/com/moneymong/moneymong/common/base/BaseViewModel.kt b/core/android/src/main/java/com/moneymong/moneymong/android/BaseViewModel.kt
similarity index 91%
rename from core/common/src/main/java/com/moneymong/moneymong/common/base/BaseViewModel.kt
rename to core/android/src/main/java/com/moneymong/moneymong/android/BaseViewModel.kt
index 2869efc3..0c862903 100644
--- a/core/common/src/main/java/com/moneymong/moneymong/common/base/BaseViewModel.kt
+++ b/core/android/src/main/java/com/moneymong/moneymong/android/BaseViewModel.kt
@@ -1,4 +1,4 @@
-package com.moneymong.moneymong.common.base
+package com.moneymong.moneymong.android
import androidx.lifecycle.ViewModel
import org.orbitmvi.orbit.ContainerHost
diff --git a/core/android/src/main/java/com/moneymong/moneymong/android/SideEffect.kt b/core/android/src/main/java/com/moneymong/moneymong/android/SideEffect.kt
new file mode 100644
index 00000000..df0c7d81
--- /dev/null
+++ b/core/android/src/main/java/com/moneymong/moneymong/android/SideEffect.kt
@@ -0,0 +1,4 @@
+package com.moneymong.moneymong.android
+
+interface SideEffect {
+}
\ No newline at end of file
diff --git a/core/android/src/main/java/com/moneymong/moneymong/android/State.kt b/core/android/src/main/java/com/moneymong/moneymong/android/State.kt
new file mode 100644
index 00000000..02781e13
--- /dev/null
+++ b/core/android/src/main/java/com/moneymong/moneymong/android/State.kt
@@ -0,0 +1,4 @@
+package com.moneymong.moneymong.android
+
+interface State {
+}
\ No newline at end of file
diff --git a/core/common/src/main/java/com/moneymong/moneymong/common/ext/ApplicationExt.kt b/core/android/src/main/java/com/moneymong/moneymong/android/util/ApplicationExt.kt
similarity index 97%
rename from core/common/src/main/java/com/moneymong/moneymong/common/ext/ApplicationExt.kt
rename to core/android/src/main/java/com/moneymong/moneymong/android/util/ApplicationExt.kt
index b41e04ef..426877fe 100644
--- a/core/common/src/main/java/com/moneymong/moneymong/common/ext/ApplicationExt.kt
+++ b/core/android/src/main/java/com/moneymong/moneymong/android/util/ApplicationExt.kt
@@ -1,4 +1,4 @@
-package com.moneymong.moneymong.common.ext
+package com.moneymong.moneymong.android.util
import android.content.Context
import android.content.pm.PackageManager
@@ -10,7 +10,6 @@ import android.net.Uri
import android.os.Build
import android.util.Base64
import androidx.core.content.ContextCompat
-import androidx.core.content.FileProvider
import okhttp3.MediaType.Companion.toMediaTypeOrNull
import okhttp3.MultipartBody
import okhttp3.RequestBody.Companion.asRequestBody
diff --git a/core/android/src/test/java/com/moneymong/moneymong/android/ExampleUnitTest.kt b/core/android/src/test/java/com/moneymong/moneymong/android/ExampleUnitTest.kt
new file mode 100644
index 00000000..858690a7
--- /dev/null
+++ b/core/android/src/test/java/com/moneymong/moneymong/android/ExampleUnitTest.kt
@@ -0,0 +1,17 @@
+package com.moneymong.moneymong.android
+
+import org.junit.Test
+
+import org.junit.Assert.*
+
+/**
+ * Example local unit test, which will execute on the development machine (host).
+ *
+ * See [testing documentation](http://d.android.com/tools/testing).
+ */
+class ExampleUnitTest {
+ @Test
+ fun addition_isCorrect() {
+ assertEquals(4, 2 + 2)
+ }
+}
\ No newline at end of file
diff --git a/core/common/build.gradle.kts b/core/common/build.gradle.kts
index fba5fbee..010aecd3 100644
--- a/core/common/build.gradle.kts
+++ b/core/common/build.gradle.kts
@@ -1,31 +1,3 @@
-@Suppress("DSL_SCOPE_VIOLATION") // TODO: Remove once KTIJ-19369 is fixed
plugins {
- alias(libs.plugins.moneymong.android.library)
- alias(libs.plugins.moneymong.android.library.compose)
- alias(libs.plugins.moneymong.android.hilt)
+ alias(libs.plugins.kotlin.jvm)
}
-
-android {
- namespace = "com.moneymong.moneymong.common"
-}
-
-dependencies {
-
- implementation(projects.domain)
- implementation(libs.androidx.core.ktx)
- implementation(libs.appcompat)
- implementation(libs.material)
-
- implementation(libs.orbit.core)
- implementation(libs.orbit.compose)
- implementation(libs.orbit.viewModel)
- implementation(libs.okhttp)
-
- implementation(platform(libs.firebase.bom))
- implementation(libs.firebase.analytics)
- implementation(libs.firebase.crashlytics)
-
- testImplementation(libs.junit4)
- androidTestImplementation(libs.androidx.junit)
- androidTestImplementation(libs.androidx.test.espresso.core)
-}
\ No newline at end of file
diff --git a/core/common/src/main/java/com/moneymong/moneymong/common/base/SideEffect.kt b/core/common/src/main/java/com/moneymong/moneymong/common/base/SideEffect.kt
deleted file mode 100644
index 41a5de72..00000000
--- a/core/common/src/main/java/com/moneymong/moneymong/common/base/SideEffect.kt
+++ /dev/null
@@ -1,4 +0,0 @@
-package com.moneymong.moneymong.common.base
-
-interface SideEffect {
-}
\ No newline at end of file
diff --git a/core/common/src/main/java/com/moneymong/moneymong/common/base/State.kt b/core/common/src/main/java/com/moneymong/moneymong/common/base/State.kt
deleted file mode 100644
index 6aecace4..00000000
--- a/core/common/src/main/java/com/moneymong/moneymong/common/base/State.kt
+++ /dev/null
@@ -1,4 +0,0 @@
-package com.moneymong.moneymong.common.base
-
-interface State {
-}
\ No newline at end of file
diff --git a/core/common/src/main/java/com/moneymong/moneymong/common/di/EventModule.kt b/core/common/src/main/java/com/moneymong/moneymong/common/di/EventModule.kt
deleted file mode 100644
index d058d534..00000000
--- a/core/common/src/main/java/com/moneymong/moneymong/common/di/EventModule.kt
+++ /dev/null
@@ -1,18 +0,0 @@
-package com.moneymong.moneymong.common.di
-
-import com.moneymong.moneymong.common.event.EventTracker
-import dagger.Module
-import dagger.Provides
-import dagger.hilt.InstallIn
-import dagger.hilt.components.SingletonComponent
-import javax.inject.Singleton
-
-@Module
-@InstallIn(SingletonComponent::class)
-object EventModule {
-
- @Provides
- @Singleton
- fun provideEventTracker(): EventTracker =
- EventTracker()
-}
\ No newline at end of file
diff --git a/core/common/src/main/java/com/moneymong/moneymong/common/event/Event.kt b/core/common/src/main/java/com/moneymong/moneymong/common/event/Event.kt
deleted file mode 100644
index 6d0fe619..00000000
--- a/core/common/src/main/java/com/moneymong/moneymong/common/event/Event.kt
+++ /dev/null
@@ -1,38 +0,0 @@
-package com.moneymong.moneymong.common.event
-
-enum class Event(val eventName: String, val desc: String) {
- OPERATION_COST_CLICK(
- eventName = "operation_cost_click",
- desc = "운영비 등록하기 버튼 클릭"
- ),
- LEDGER_CLICK(
- eventName = "ledger_click",
- desc = "소속 장부 확인 버튼 클릭"
- ),
- OCR_REGISTER_CLICK(
- eventName = "ocr_register_click",
- desc = "등록하기 버튼 클릭"
- ),
- OCR_MODIFY_CLICK(
- eventName = "ocr_modify_click",
- desc = "수정하기 버튼 클릭"
- ),
- OCR_MODIFY_TO_REGISTER_CLICK(
- eventName = "ocr_modify_to_register_click",
- desc = "등록하기 버튼 클릭"
- ),
- PLUS_CLICK(
- eventName = "plus_click",
- desc = "+ 플로팅 버튼 클릭"
- ),
- HAND_CLICK(
- eventName = "hand_click",
- desc = "수동 등록 플로팅 버튼 클릭"
- ),
- OCR_CLICK(
- eventName = "ocr_click",
- desc = "OCR 등록 플로팅 버튼 클릭"
- )
- ;
-
-}
\ No newline at end of file
diff --git a/core/common/src/main/java/com/moneymong/moneymong/common/event/EventTracker.kt b/core/common/src/main/java/com/moneymong/moneymong/common/event/EventTracker.kt
deleted file mode 100644
index c6288943..00000000
--- a/core/common/src/main/java/com/moneymong/moneymong/common/event/EventTracker.kt
+++ /dev/null
@@ -1,24 +0,0 @@
-package com.moneymong.moneymong.common.event
-
-import android.os.Bundle
-import com.google.firebase.Firebase
-import com.google.firebase.analytics.FirebaseAnalytics
-import com.google.firebase.analytics.analytics
-import javax.inject.Inject
-
-class EventTracker @Inject constructor() {
-
- private lateinit var firebaseAnalytics: FirebaseAnalytics
- private var initialized: Boolean = false
-
- fun initialize() {
- firebaseAnalytics = Firebase.analytics
- initialized = true
- }
-
- fun logEvent(event: Event, param: Bundle? = null) {
- check(initialized) { "logEvent를 호출하기 전 초기화가 필요합니다." }
-
- firebaseAnalytics.logEvent(event.eventName, param)
- }
-}
\ No newline at end of file
diff --git a/core/common/src/main/java/com/moneymong/moneymong/common/ext/DateExt.kt b/core/common/src/main/java/com/moneymong/moneymong/common/util/DateExt.kt
similarity index 95%
rename from core/common/src/main/java/com/moneymong/moneymong/common/ext/DateExt.kt
rename to core/common/src/main/java/com/moneymong/moneymong/common/util/DateExt.kt
index 062d7449..1fcfabe7 100644
--- a/core/common/src/main/java/com/moneymong/moneymong/common/ext/DateExt.kt
+++ b/core/common/src/main/java/com/moneymong/moneymong/common/util/DateExt.kt
@@ -1,4 +1,4 @@
-package com.moneymong.moneymong.common.ext
+package com.moneymong.moneymong.common.util
import java.time.Instant
import java.time.LocalDateTime
diff --git a/core/network/build.gradle.kts b/core/network/build.gradle.kts
index 037f5fcc..355cba4d 100644
--- a/core/network/build.gradle.kts
+++ b/core/network/build.gradle.kts
@@ -37,7 +37,6 @@ android {
dependencies {
implementation(projects.core.common)
implementation(projects.core.model)
- implementation(projects.domain)
implementation(libs.androidx.core.ktx)
implementation(libs.appcompat)
implementation(libs.material)
diff --git a/core/ui/build.gradle.kts b/core/ui/build.gradle.kts
index 22e5d63d..f3d28ae5 100644
--- a/core/ui/build.gradle.kts
+++ b/core/ui/build.gradle.kts
@@ -9,7 +9,7 @@ android {
}
dependencies {
-
+ implementation(projects.core.analytics)
implementation(libs.androidx.core.ktx)
implementation(libs.appcompat)
implementation(libs.material)
diff --git a/core/ui/src/main/java/com/moneymong/moneymong/ui/AnalyticsExt.kt b/core/ui/src/main/java/com/moneymong/moneymong/ui/AnalyticsExt.kt
new file mode 100644
index 00000000..eca5b953
--- /dev/null
+++ b/core/ui/src/main/java/com/moneymong/moneymong/ui/AnalyticsExt.kt
@@ -0,0 +1,13 @@
+package com.moneymong.moneymong.ui
+
+import com.moneymong.moneymong.analytics.AnalyticsEvent
+import com.moneymong.moneymong.analytics.AnalyticsTracker
+
+fun AnalyticsTracker.logClicked(eventName: String) {
+ logEvent(
+ event = AnalyticsEvent(
+ type = eventName,
+ extras = emptyList(),
+ )
+ )
+}
\ No newline at end of file
diff --git a/core/common/src/main/java/com/moneymong/moneymong/common/ui/ModifierExt.kt b/core/ui/src/main/java/com/moneymong/moneymong/ui/ModifierExt.kt
similarity index 97%
rename from core/common/src/main/java/com/moneymong/moneymong/common/ui/ModifierExt.kt
rename to core/ui/src/main/java/com/moneymong/moneymong/ui/ModifierExt.kt
index 051f6a7e..c41ed444 100644
--- a/core/common/src/main/java/com/moneymong/moneymong/common/ui/ModifierExt.kt
+++ b/core/ui/src/main/java/com/moneymong/moneymong/ui/ModifierExt.kt
@@ -1,4 +1,4 @@
-package com.moneymong.moneymong.common.ui
+package com.moneymong.moneymong.ui
import androidx.compose.foundation.clickable
import androidx.compose.foundation.interaction.MutableInteractionSource
diff --git a/core/common/src/main/java/com/moneymong/moneymong/common/ui/Padding.kt b/core/ui/src/main/java/com/moneymong/moneymong/ui/Padding.kt
similarity index 94%
rename from core/common/src/main/java/com/moneymong/moneymong/common/ui/Padding.kt
rename to core/ui/src/main/java/com/moneymong/moneymong/ui/Padding.kt
index 57396281..cdaf00f5 100644
--- a/core/common/src/main/java/com/moneymong/moneymong/common/ui/Padding.kt
+++ b/core/ui/src/main/java/com/moneymong/moneymong/ui/Padding.kt
@@ -1,4 +1,4 @@
-package com.moneymong.moneymong.common.ui
+package com.moneymong.moneymong.ui
import androidx.compose.foundation.layout.PaddingValues
import androidx.compose.foundation.layout.calculateEndPadding
diff --git a/core/common/src/main/java/com/moneymong/moneymong/common/ui/PrimitiveExt.kt b/core/ui/src/main/java/com/moneymong/moneymong/ui/PrimitiveExt.kt
similarity index 97%
rename from core/common/src/main/java/com/moneymong/moneymong/common/ui/PrimitiveExt.kt
rename to core/ui/src/main/java/com/moneymong/moneymong/ui/PrimitiveExt.kt
index 80a77736..56202803 100644
--- a/core/common/src/main/java/com/moneymong/moneymong/common/ui/PrimitiveExt.kt
+++ b/core/ui/src/main/java/com/moneymong/moneymong/ui/PrimitiveExt.kt
@@ -1,4 +1,4 @@
-package com.moneymong.moneymong.common.ui
+package com.moneymong.moneymong.ui
import androidx.core.text.isDigitsOnly
import java.text.DecimalFormat
diff --git a/core/common/src/main/java/com/moneymong/moneymong/common/util/LifeCycleUtil.kt b/core/ui/src/main/java/com/moneymong/moneymong/ui/util/LifeCycleUtil.kt
similarity index 97%
rename from core/common/src/main/java/com/moneymong/moneymong/common/util/LifeCycleUtil.kt
rename to core/ui/src/main/java/com/moneymong/moneymong/ui/util/LifeCycleUtil.kt
index 9dbedcd7..6663ab96 100644
--- a/core/common/src/main/java/com/moneymong/moneymong/common/util/LifeCycleUtil.kt
+++ b/core/ui/src/main/java/com/moneymong/moneymong/ui/util/LifeCycleUtil.kt
@@ -1,4 +1,4 @@
-package com.moneymong.moneymong.common.util
+package com.moneymong.moneymong.ui.util
import androidx.compose.runtime.Composable
import androidx.compose.runtime.DisposableEffect
diff --git a/feature/agency/build.gradle.kts b/feature/agency/build.gradle.kts
index d87843e8..9924b181 100644
--- a/feature/agency/build.gradle.kts
+++ b/feature/agency/build.gradle.kts
@@ -10,6 +10,8 @@ android {
}
dependencies {
+ implementation(projects.core.analytics)
+ implementation(projects.core.android)
implementation(projects.core.common)
implementation(projects.core.model)
implementation(projects.domain)
diff --git a/feature/agency/src/main/java/com/moneymong/moneymong/feature/agency/join/AgencyCompleteScreen.kt b/feature/agency/src/main/java/com/moneymong/moneymong/feature/agency/join/AgencyCompleteScreen.kt
index 002f7118..e7d40a93 100644
--- a/feature/agency/src/main/java/com/moneymong/moneymong/feature/agency/join/AgencyCompleteScreen.kt
+++ b/feature/agency/src/main/java/com/moneymong/moneymong/feature/agency/join/AgencyCompleteScreen.kt
@@ -18,7 +18,7 @@ import androidx.compose.ui.text.style.TextAlign
import androidx.compose.ui.tooling.preview.Preview
import androidx.compose.ui.unit.dp
import androidx.hilt.navigation.compose.hiltViewModel
-import com.moneymong.moneymong.common.ui.noRippleClickable
+import com.moneymong.moneymong.ui.noRippleClickable
import com.moneymong.moneymong.design_system.R
import com.moneymong.moneymong.design_system.theme.Black
import com.moneymong.moneymong.design_system.theme.Heading1
diff --git a/feature/agency/src/main/java/com/moneymong/moneymong/feature/agency/join/AgencyCompleteSideEffect.kt b/feature/agency/src/main/java/com/moneymong/moneymong/feature/agency/join/AgencyCompleteSideEffect.kt
index 47e7929a..4f24f5da 100644
--- a/feature/agency/src/main/java/com/moneymong/moneymong/feature/agency/join/AgencyCompleteSideEffect.kt
+++ b/feature/agency/src/main/java/com/moneymong/moneymong/feature/agency/join/AgencyCompleteSideEffect.kt
@@ -1,6 +1,6 @@
package com.moneymong.moneymong.feature.agency.join
-import com.moneymong.moneymong.common.base.SideEffect
+import com.moneymong.moneymong.android.SideEffect
sealed class AgencyCompleteSideEffect : SideEffect {
diff --git a/feature/agency/src/main/java/com/moneymong/moneymong/feature/agency/join/AgencyCompleteState.kt b/feature/agency/src/main/java/com/moneymong/moneymong/feature/agency/join/AgencyCompleteState.kt
index f3b3e4cd..d33e4ce1 100644
--- a/feature/agency/src/main/java/com/moneymong/moneymong/feature/agency/join/AgencyCompleteState.kt
+++ b/feature/agency/src/main/java/com/moneymong/moneymong/feature/agency/join/AgencyCompleteState.kt
@@ -1,6 +1,6 @@
package com.moneymong.moneymong.feature.agency.join
-import com.moneymong.moneymong.common.base.State
+import com.moneymong.moneymong.android.State
data class AgencyCompleteState(
val isBtnClicked: Boolean = false
diff --git a/feature/agency/src/main/java/com/moneymong/moneymong/feature/agency/join/AgencyCompleteViewModel.kt b/feature/agency/src/main/java/com/moneymong/moneymong/feature/agency/join/AgencyCompleteViewModel.kt
index f309cc50..c048070f 100644
--- a/feature/agency/src/main/java/com/moneymong/moneymong/feature/agency/join/AgencyCompleteViewModel.kt
+++ b/feature/agency/src/main/java/com/moneymong/moneymong/feature/agency/join/AgencyCompleteViewModel.kt
@@ -1,6 +1,6 @@
package com.moneymong.moneymong.feature.agency.join
-import com.moneymong.moneymong.common.base.BaseViewModel
+import com.moneymong.moneymong.android.BaseViewModel
import dagger.hilt.android.lifecycle.HiltViewModel
import org.orbitmvi.orbit.syntax.simple.intent
import org.orbitmvi.orbit.syntax.simple.reduce
diff --git a/feature/agency/src/main/java/com/moneymong/moneymong/feature/agency/join/AgencyJoinScreen.kt b/feature/agency/src/main/java/com/moneymong/moneymong/feature/agency/join/AgencyJoinScreen.kt
index ccdab9fd..7561fb6c 100644
--- a/feature/agency/src/main/java/com/moneymong/moneymong/feature/agency/join/AgencyJoinScreen.kt
+++ b/feature/agency/src/main/java/com/moneymong/moneymong/feature/agency/join/AgencyJoinScreen.kt
@@ -26,7 +26,7 @@ import androidx.compose.ui.platform.LocalFocusManager
import androidx.compose.ui.res.painterResource
import androidx.compose.ui.unit.dp
import androidx.hilt.navigation.compose.hiltViewModel
-import com.moneymong.moneymong.common.ui.noRippleClickable
+import com.moneymong.moneymong.ui.noRippleClickable
import com.moneymong.moneymong.design_system.R
import com.moneymong.moneymong.design_system.component.snackbar.MDSSnackbarHost
import com.moneymong.moneymong.design_system.error.ErrorDialog
diff --git a/feature/agency/src/main/java/com/moneymong/moneymong/feature/agency/join/AgencyJoinSideEffect.kt b/feature/agency/src/main/java/com/moneymong/moneymong/feature/agency/join/AgencyJoinSideEffect.kt
index 928e38df..e57ee4f5 100644
--- a/feature/agency/src/main/java/com/moneymong/moneymong/feature/agency/join/AgencyJoinSideEffect.kt
+++ b/feature/agency/src/main/java/com/moneymong/moneymong/feature/agency/join/AgencyJoinSideEffect.kt
@@ -1,6 +1,6 @@
package com.moneymong.moneymong.feature.agency.join
-import com.moneymong.moneymong.common.base.SideEffect
+import com.moneymong.moneymong.android.SideEffect
sealed class AgencyJoinSideEffect : SideEffect {
}
\ No newline at end of file
diff --git a/feature/agency/src/main/java/com/moneymong/moneymong/feature/agency/join/AgencyJoinState.kt b/feature/agency/src/main/java/com/moneymong/moneymong/feature/agency/join/AgencyJoinState.kt
index 4a1486cf..a0eb45fd 100644
--- a/feature/agency/src/main/java/com/moneymong/moneymong/feature/agency/join/AgencyJoinState.kt
+++ b/feature/agency/src/main/java/com/moneymong/moneymong/feature/agency/join/AgencyJoinState.kt
@@ -1,6 +1,6 @@
package com.moneymong.moneymong.feature.agency.join
-import com.moneymong.moneymong.common.base.State
+import com.moneymong.moneymong.android.State
data class AgencyJoinState(
val isError: Boolean = false,
diff --git a/feature/agency/src/main/java/com/moneymong/moneymong/feature/agency/join/AgencyJoinViewModel.kt b/feature/agency/src/main/java/com/moneymong/moneymong/feature/agency/join/AgencyJoinViewModel.kt
index cf406852..8b4db985 100644
--- a/feature/agency/src/main/java/com/moneymong/moneymong/feature/agency/join/AgencyJoinViewModel.kt
+++ b/feature/agency/src/main/java/com/moneymong/moneymong/feature/agency/join/AgencyJoinViewModel.kt
@@ -2,7 +2,7 @@ package com.moneymong.moneymong.feature.agency.join
import androidx.core.text.isDigitsOnly
import androidx.lifecycle.viewModelScope
-import com.moneymong.moneymong.common.base.BaseViewModel
+import com.moneymong.moneymong.android.BaseViewModel
import com.moneymong.moneymong.domain.usecase.agency.AgencyJoinUseCase
import com.moneymong.moneymong.domain.usecase.agency.SaveAgencyIdUseCase
import com.moneymong.moneymong.feature.agency.join.component.CODE_MAX_SIZE
diff --git a/feature/agency/src/main/java/com/moneymong/moneymong/feature/agency/register/AgencyRegisterScreen.kt b/feature/agency/src/main/java/com/moneymong/moneymong/feature/agency/register/AgencyRegisterScreen.kt
index c575a041..7f2aa15e 100644
--- a/feature/agency/src/main/java/com/moneymong/moneymong/feature/agency/register/AgencyRegisterScreen.kt
+++ b/feature/agency/src/main/java/com/moneymong/moneymong/feature/agency/register/AgencyRegisterScreen.kt
@@ -25,7 +25,7 @@ import androidx.compose.ui.res.painterResource
import androidx.compose.ui.tooling.preview.Preview
import androidx.compose.ui.unit.dp
import androidx.hilt.navigation.compose.hiltViewModel
-import com.moneymong.moneymong.common.ui.noRippleClickable
+import com.moneymong.moneymong.ui.noRippleClickable
import com.moneymong.moneymong.design_system.R
import com.moneymong.moneymong.design_system.component.button.MDSButton
import com.moneymong.moneymong.design_system.component.modal.MDSModal
diff --git a/feature/agency/src/main/java/com/moneymong/moneymong/feature/agency/register/AgencyRegisterSideEffect.kt b/feature/agency/src/main/java/com/moneymong/moneymong/feature/agency/register/AgencyRegisterSideEffect.kt
index 99b1b3b1..126bd8ea 100644
--- a/feature/agency/src/main/java/com/moneymong/moneymong/feature/agency/register/AgencyRegisterSideEffect.kt
+++ b/feature/agency/src/main/java/com/moneymong/moneymong/feature/agency/register/AgencyRegisterSideEffect.kt
@@ -1,6 +1,6 @@
package com.moneymong.moneymong.feature.agency.register
-import com.moneymong.moneymong.common.base.SideEffect
+import com.moneymong.moneymong.android.SideEffect
sealed interface AgencyRegisterSideEffect : SideEffect {
data object NavigateToLedger : AgencyRegisterSideEffect
diff --git a/feature/agency/src/main/java/com/moneymong/moneymong/feature/agency/register/AgencyRegisterState.kt b/feature/agency/src/main/java/com/moneymong/moneymong/feature/agency/register/AgencyRegisterState.kt
index 334203e5..36eacc93 100644
--- a/feature/agency/src/main/java/com/moneymong/moneymong/feature/agency/register/AgencyRegisterState.kt
+++ b/feature/agency/src/main/java/com/moneymong/moneymong/feature/agency/register/AgencyRegisterState.kt
@@ -1,7 +1,7 @@
package com.moneymong.moneymong.feature.agency.register
import androidx.compose.ui.text.input.TextFieldValue
-import com.moneymong.moneymong.common.base.State
+import com.moneymong.moneymong.android.State
import com.moneymong.moneymong.feature.agency.search.AgencyType
data class AgencyRegisterState(
diff --git a/feature/agency/src/main/java/com/moneymong/moneymong/feature/agency/register/AgencyRegisterViewModel.kt b/feature/agency/src/main/java/com/moneymong/moneymong/feature/agency/register/AgencyRegisterViewModel.kt
index fcc3b09c..9e935ee5 100644
--- a/feature/agency/src/main/java/com/moneymong/moneymong/feature/agency/register/AgencyRegisterViewModel.kt
+++ b/feature/agency/src/main/java/com/moneymong/moneymong/feature/agency/register/AgencyRegisterViewModel.kt
@@ -1,7 +1,7 @@
package com.moneymong.moneymong.feature.agency.register
import androidx.compose.ui.text.input.TextFieldValue
-import com.moneymong.moneymong.common.base.BaseViewModel
+import com.moneymong.moneymong.android.BaseViewModel
import com.moneymong.moneymong.common.error.MoneyMongError
import com.moneymong.moneymong.domain.usecase.agency.RegisterAgencyUseCase
import com.moneymong.moneymong.domain.usecase.agency.SaveAgencyIdUseCase
diff --git a/feature/agency/src/main/java/com/moneymong/moneymong/feature/agency/register/complete/AgencyRegisterCompleteSideEffect.kt b/feature/agency/src/main/java/com/moneymong/moneymong/feature/agency/register/complete/AgencyRegisterCompleteSideEffect.kt
index 51575359..827ae5aa 100644
--- a/feature/agency/src/main/java/com/moneymong/moneymong/feature/agency/register/complete/AgencyRegisterCompleteSideEffect.kt
+++ b/feature/agency/src/main/java/com/moneymong/moneymong/feature/agency/register/complete/AgencyRegisterCompleteSideEffect.kt
@@ -1,6 +1,6 @@
package com.moneymong.moneymong.feature.agency.register.complete
-import com.moneymong.moneymong.common.base.SideEffect
+import com.moneymong.moneymong.android.SideEffect
sealed interface AgencyRegisterCompleteSideEffect : SideEffect {
data object NavigateToAgencySearch : AgencyRegisterCompleteSideEffect
diff --git a/feature/agency/src/main/java/com/moneymong/moneymong/feature/agency/register/complete/AgencyRegisterCompleteState.kt b/feature/agency/src/main/java/com/moneymong/moneymong/feature/agency/register/complete/AgencyRegisterCompleteState.kt
index 7ef7384a..14d97918 100644
--- a/feature/agency/src/main/java/com/moneymong/moneymong/feature/agency/register/complete/AgencyRegisterCompleteState.kt
+++ b/feature/agency/src/main/java/com/moneymong/moneymong/feature/agency/register/complete/AgencyRegisterCompleteState.kt
@@ -1,5 +1,5 @@
package com.moneymong.moneymong.feature.agency.register.complete
-import com.moneymong.moneymong.common.base.State
+import com.moneymong.moneymong.android.State
data object AgencyRegisterCompleteState : State
\ No newline at end of file
diff --git a/feature/agency/src/main/java/com/moneymong/moneymong/feature/agency/register/complete/AgencyRegisterCompleteViewModel.kt b/feature/agency/src/main/java/com/moneymong/moneymong/feature/agency/register/complete/AgencyRegisterCompleteViewModel.kt
index 4efbe5f1..1add2c81 100644
--- a/feature/agency/src/main/java/com/moneymong/moneymong/feature/agency/register/complete/AgencyRegisterCompleteViewModel.kt
+++ b/feature/agency/src/main/java/com/moneymong/moneymong/feature/agency/register/complete/AgencyRegisterCompleteViewModel.kt
@@ -1,21 +1,16 @@
package com.moneymong.moneymong.feature.agency.register.complete
-import com.moneymong.moneymong.common.base.BaseViewModel
-import com.moneymong.moneymong.common.event.Event
-import com.moneymong.moneymong.common.event.EventTracker
+import com.moneymong.moneymong.android.BaseViewModel
import dagger.hilt.android.lifecycle.HiltViewModel
import javax.inject.Inject
@HiltViewModel
-class AgencyRegisterCompleteViewModel @Inject constructor(
- private val eventTracker: EventTracker
-) :
+class AgencyRegisterCompleteViewModel @Inject constructor() :
BaseViewModel(
AgencyRegisterCompleteState
) {
fun navigateToLedger() {
- eventTracker.logEvent(Event.LEDGER_CLICK)
eventEmit(sideEffect = AgencyRegisterCompleteSideEffect.NavigateToLedger)
}
@@ -23,7 +18,6 @@ class AgencyRegisterCompleteViewModel @Inject constructor(
eventEmit(sideEffect = AgencyRegisterCompleteSideEffect.NavigateToAgencySearch)
fun navigateToLedgerManual() {
- eventTracker.logEvent(Event.OPERATION_COST_CLICK)
eventEmit(sideEffect = AgencyRegisterCompleteSideEffect.NavigateToLedgerManual)
}
}
\ No newline at end of file
diff --git a/feature/agency/src/main/java/com/moneymong/moneymong/feature/agency/search/AgencySearchSideEffect.kt b/feature/agency/src/main/java/com/moneymong/moneymong/feature/agency/search/AgencySearchSideEffect.kt
index 84fd3c20..0bad57d9 100644
--- a/feature/agency/src/main/java/com/moneymong/moneymong/feature/agency/search/AgencySearchSideEffect.kt
+++ b/feature/agency/src/main/java/com/moneymong/moneymong/feature/agency/search/AgencySearchSideEffect.kt
@@ -1,6 +1,6 @@
package com.moneymong.moneymong.feature.agency.search
-import com.moneymong.moneymong.common.base.SideEffect
+import com.moneymong.moneymong.android.SideEffect
sealed interface AgencySearchSideEffect : SideEffect {
data class NavigateToRegister(val isUniversityStudent: Boolean) : AgencySearchSideEffect
diff --git a/feature/agency/src/main/java/com/moneymong/moneymong/feature/agency/search/AgencySearchState.kt b/feature/agency/src/main/java/com/moneymong/moneymong/feature/agency/search/AgencySearchState.kt
index ecb9cdf7..b8e8494b 100644
--- a/feature/agency/src/main/java/com/moneymong/moneymong/feature/agency/search/AgencySearchState.kt
+++ b/feature/agency/src/main/java/com/moneymong/moneymong/feature/agency/search/AgencySearchState.kt
@@ -1,7 +1,7 @@
package com.moneymong.moneymong.feature.agency.search
import androidx.compose.foundation.text.input.TextFieldState
-import com.moneymong.moneymong.common.base.State
+import com.moneymong.moneymong.android.State
data class AgencySearchState(
val joinedAgencies: List = emptyList(),
diff --git a/feature/agency/src/main/java/com/moneymong/moneymong/feature/agency/search/AgencySearchViewModel.kt b/feature/agency/src/main/java/com/moneymong/moneymong/feature/agency/search/AgencySearchViewModel.kt
index 7682e377..69ed0ad8 100644
--- a/feature/agency/src/main/java/com/moneymong/moneymong/feature/agency/search/AgencySearchViewModel.kt
+++ b/feature/agency/src/main/java/com/moneymong/moneymong/feature/agency/search/AgencySearchViewModel.kt
@@ -4,7 +4,7 @@ import androidx.compose.foundation.text.input.clearText
import androidx.lifecycle.viewModelScope
import androidx.paging.cachedIn
import androidx.paging.map
-import com.moneymong.moneymong.common.base.BaseViewModel
+import com.moneymong.moneymong.android.BaseViewModel
import com.moneymong.moneymong.common.error.MoneyMongError
import com.moneymong.moneymong.domain.usecase.agency.FetchAgenciesUseCase
import com.moneymong.moneymong.domain.usecase.agency.FetchAgencyByNameUseCase
diff --git a/feature/agency/src/main/java/com/moneymong/moneymong/feature/agency/search/component/AgencySearchTopBar.kt b/feature/agency/src/main/java/com/moneymong/moneymong/feature/agency/search/component/AgencySearchTopBar.kt
index 7ef1ac89..4cbc5ddb 100644
--- a/feature/agency/src/main/java/com/moneymong/moneymong/feature/agency/search/component/AgencySearchTopBar.kt
+++ b/feature/agency/src/main/java/com/moneymong/moneymong/feature/agency/search/component/AgencySearchTopBar.kt
@@ -18,7 +18,7 @@ import androidx.compose.ui.graphics.vector.ImageVector
import androidx.compose.ui.res.vectorResource
import androidx.compose.ui.tooling.preview.Preview
import androidx.compose.ui.unit.dp
-import com.moneymong.moneymong.common.ui.noRippleClickable
+import com.moneymong.moneymong.ui.noRippleClickable
import com.moneymong.moneymong.design_system.theme.Gray10
import com.moneymong.moneymong.design_system.theme.Heading1
import com.moneymong.moneymong.design_system.R as MDSR
diff --git a/feature/agency/src/main/java/com/moneymong/moneymong/feature/agency/search/component/searchbar/AgencySearchBar.kt b/feature/agency/src/main/java/com/moneymong/moneymong/feature/agency/search/component/searchbar/AgencySearchBar.kt
index 9fbb230d..ad44faed 100644
--- a/feature/agency/src/main/java/com/moneymong/moneymong/feature/agency/search/component/searchbar/AgencySearchBar.kt
+++ b/feature/agency/src/main/java/com/moneymong/moneymong/feature/agency/search/component/searchbar/AgencySearchBar.kt
@@ -22,7 +22,7 @@ import androidx.compose.ui.focus.focusRequester
import androidx.compose.ui.platform.LocalFocusManager
import androidx.compose.ui.tooling.preview.Preview
import androidx.compose.ui.unit.dp
-import com.moneymong.moneymong.common.ui.noRippleClickable
+import com.moneymong.moneymong.ui.noRippleClickable
import com.moneymong.moneymong.design_system.theme.Body2
import com.moneymong.moneymong.design_system.theme.Gray08
import com.moneymong.moneymong.design_system.theme.MMTheme
diff --git a/feature/agency/src/main/java/com/moneymong/moneymong/feature/agency/search/component/searchbar/AgencySearchTextField.kt b/feature/agency/src/main/java/com/moneymong/moneymong/feature/agency/search/component/searchbar/AgencySearchTextField.kt
index d35e352b..172d6b6c 100644
--- a/feature/agency/src/main/java/com/moneymong/moneymong/feature/agency/search/component/searchbar/AgencySearchTextField.kt
+++ b/feature/agency/src/main/java/com/moneymong/moneymong/feature/agency/search/component/searchbar/AgencySearchTextField.kt
@@ -23,7 +23,7 @@ import androidx.compose.ui.res.vectorResource
import androidx.compose.ui.text.input.ImeAction
import androidx.compose.ui.tooling.preview.Preview
import androidx.compose.ui.unit.dp
-import com.moneymong.moneymong.common.ui.noRippleClickable
+import com.moneymong.moneymong.ui.noRippleClickable
import com.moneymong.moneymong.design_system.theme.Blue04
import com.moneymong.moneymong.design_system.theme.Body2
import com.moneymong.moneymong.design_system.theme.Gray04
diff --git a/feature/home/build.gradle.kts b/feature/home/build.gradle.kts
index f9ace3df..0345cb4d 100644
--- a/feature/home/build.gradle.kts
+++ b/feature/home/build.gradle.kts
@@ -10,7 +10,7 @@ android {
}
dependencies {
-
+ implementation(projects.core.android)
implementation(projects.core.designSystem)
implementation(projects.feature.sign)
implementation(projects.feature.agency)
diff --git a/feature/ledger/build.gradle.kts b/feature/ledger/build.gradle.kts
index b8b3f667..385268a9 100644
--- a/feature/ledger/build.gradle.kts
+++ b/feature/ledger/build.gradle.kts
@@ -10,6 +10,8 @@ android {
}
dependencies {
+ implementation(projects.core.analytics)
+ implementation(projects.core.android)
implementation(projects.core.common)
implementation(projects.core.ui)
implementation(projects.core.model)
diff --git a/feature/ledger/src/main/java/com/moneymong/moneymong/ledger/LedgerScreen.kt b/feature/ledger/src/main/java/com/moneymong/moneymong/ledger/LedgerScreen.kt
index 11eec6ee..c42b3849 100644
--- a/feature/ledger/src/main/java/com/moneymong/moneymong/ledger/LedgerScreen.kt
+++ b/feature/ledger/src/main/java/com/moneymong/moneymong/ledger/LedgerScreen.kt
@@ -31,8 +31,8 @@ import androidx.compose.ui.unit.dp
import androidx.hilt.navigation.compose.hiltViewModel
import androidx.navigation.NavOptions
import com.example.member.MemberScreen
-import com.moneymong.moneymong.common.event.Event
-import com.moneymong.moneymong.common.ui.plus
+import com.moneymong.moneymong.analytics.LocalAnalyticsTracker
+import com.moneymong.moneymong.ui.plus
import com.moneymong.moneymong.design_system.R
import com.moneymong.moneymong.design_system.component.bottomSheet.MDSBottomSheet
import com.moneymong.moneymong.design_system.component.button.MDSFloatingActionButton
@@ -50,6 +50,7 @@ import com.moneymong.moneymong.ledger.view.LedgerTab
import com.moneymong.moneymong.ledger.view.LedgerTabRowView
import com.moneymong.moneymong.ledger.view.LedgerTopbarView
import com.moneymong.moneymong.ledger.view.onboarding.OnboardingComponentState
+import com.moneymong.moneymong.ui.logClicked
import kotlinx.coroutines.launch
import org.orbitmvi.orbit.compose.collectAsState
import org.orbitmvi.orbit.compose.collectSideEffect
@@ -79,6 +80,7 @@ fun LedgerScreen(
refreshing = state.isRefreshing,
onRefresh = viewModel::fetchLedgerTransactionList
)
+ val analyticsTracker = LocalAnalyticsTracker.current
LaunchedEffect(Unit) {
viewModel.fetchMyAgencyList()
@@ -254,7 +256,7 @@ fun LedgerScreen(
iconResource = R.drawable.ic_plus_default,
containerColor = Mint03,
onClick = {
- viewModel.eventTracker.logEvent(Event.PLUS_CLICK)
+ analyticsTracker.logClicked("plus_click")
viewModel.onClickLedgerRegisterManual()
}
)
diff --git a/feature/ledger/src/main/java/com/moneymong/moneymong/ledger/LedgerSideEffect.kt b/feature/ledger/src/main/java/com/moneymong/moneymong/ledger/LedgerSideEffect.kt
index ccae7da7..8dda7faf 100644
--- a/feature/ledger/src/main/java/com/moneymong/moneymong/ledger/LedgerSideEffect.kt
+++ b/feature/ledger/src/main/java/com/moneymong/moneymong/ledger/LedgerSideEffect.kt
@@ -1,6 +1,6 @@
package com.moneymong.moneymong.ledger
-import com.moneymong.moneymong.common.base.SideEffect
+import com.moneymong.moneymong.android.SideEffect
sealed class LedgerSideEffect : SideEffect {
data object LedgerOpenSheet : LedgerSideEffect()
diff --git a/feature/ledger/src/main/java/com/moneymong/moneymong/ledger/LedgerState.kt b/feature/ledger/src/main/java/com/moneymong/moneymong/ledger/LedgerState.kt
index e4fdee2f..983bb129 100644
--- a/feature/ledger/src/main/java/com/moneymong/moneymong/ledger/LedgerState.kt
+++ b/feature/ledger/src/main/java/com/moneymong/moneymong/ledger/LedgerState.kt
@@ -1,6 +1,6 @@
package com.moneymong.moneymong.ledger
-import com.moneymong.moneymong.common.base.State
+import com.moneymong.moneymong.android.State
import com.moneymong.moneymong.ledger.view.LedgerTransactionType
import com.moneymong.moneymong.model.agency.MyAgencyResponse
import com.moneymong.moneymong.model.ledger.LedgerDetail
diff --git a/feature/ledger/src/main/java/com/moneymong/moneymong/ledger/LedgerViewModel.kt b/feature/ledger/src/main/java/com/moneymong/moneymong/ledger/LedgerViewModel.kt
index dd5d5c57..f9d2b80b 100644
--- a/feature/ledger/src/main/java/com/moneymong/moneymong/ledger/LedgerViewModel.kt
+++ b/feature/ledger/src/main/java/com/moneymong/moneymong/ledger/LedgerViewModel.kt
@@ -2,10 +2,8 @@ package com.moneymong.moneymong.ledger
import android.util.Log
import androidx.lifecycle.SavedStateHandle
-import com.moneymong.moneymong.common.base.BaseViewModel
+import com.moneymong.moneymong.android.BaseViewModel
import com.moneymong.moneymong.common.error.MoneyMongError
-import com.moneymong.moneymong.common.event.Event
-import com.moneymong.moneymong.common.event.EventTracker
import com.moneymong.moneymong.domain.usecase.agency.FetchAgencyIdUseCase
import com.moneymong.moneymong.domain.usecase.agency.FetchMyAgencyListUseCase
import com.moneymong.moneymong.domain.usecase.agency.SaveAgencyIdUseCase
@@ -30,7 +28,6 @@ import javax.inject.Inject
@HiltViewModel
class LedgerViewModel @Inject constructor(
savedStateHandle: SavedStateHandle,
- val eventTracker: EventTracker,
private val fetchLedgerTransactionListUseCase: FetchLedgerTransactionListUseCase,
private val fetchAgencyExistLedgerUseCase: FetchAgencyExistLedgerUseCase,
private val fetchMyAgencyListUseCase: FetchMyAgencyListUseCase,
@@ -251,7 +248,6 @@ class LedgerViewModel @Inject constructor(
}
fun onClickLedgerRegisterManual() = intent {
- eventTracker.logEvent(Event.HAND_CLICK)
postSideEffect(LedgerSideEffect.LedgerNavigateToLedgerManual)
}
diff --git a/feature/ledger/src/main/java/com/moneymong/moneymong/ledger/view/LedgerDefaultView.kt b/feature/ledger/src/main/java/com/moneymong/moneymong/ledger/view/LedgerDefaultView.kt
index 28e447ff..26916613 100644
--- a/feature/ledger/src/main/java/com/moneymong/moneymong/ledger/view/LedgerDefaultView.kt
+++ b/feature/ledger/src/main/java/com/moneymong/moneymong/ledger/view/LedgerDefaultView.kt
@@ -33,8 +33,8 @@ import androidx.compose.ui.res.painterResource
import androidx.compose.ui.tooling.preview.Preview
import androidx.compose.ui.unit.DpSize
import androidx.compose.ui.unit.dp
-import com.moneymong.moneymong.common.ui.noRippleClickable
-import com.moneymong.moneymong.common.ui.toWonFormat
+import com.moneymong.moneymong.ui.noRippleClickable
+import com.moneymong.moneymong.ui.toWonFormat
import com.moneymong.moneymong.design_system.R.drawable
import com.moneymong.moneymong.design_system.component.chip.MDSChip
import com.moneymong.moneymong.design_system.component.indicator.LoadingScreen
diff --git a/feature/ledger/src/main/java/com/moneymong/moneymong/ledger/view/LedgerTopbarView.kt b/feature/ledger/src/main/java/com/moneymong/moneymong/ledger/view/LedgerTopbarView.kt
index 41398381..4565f510 100644
--- a/feature/ledger/src/main/java/com/moneymong/moneymong/ledger/view/LedgerTopbarView.kt
+++ b/feature/ledger/src/main/java/com/moneymong/moneymong/ledger/view/LedgerTopbarView.kt
@@ -4,7 +4,6 @@ import androidx.compose.foundation.layout.Arrangement
import androidx.compose.foundation.layout.Row
import androidx.compose.foundation.layout.Spacer
import androidx.compose.foundation.layout.fillMaxWidth
-import androidx.compose.foundation.layout.height
import androidx.compose.foundation.layout.padding
import androidx.compose.foundation.layout.size
import androidx.compose.foundation.layout.width
@@ -19,7 +18,7 @@ import androidx.compose.ui.text.style.TextAlign
import androidx.compose.ui.text.style.TextOverflow
import androidx.compose.ui.tooling.preview.Preview
import androidx.compose.ui.unit.dp
-import com.moneymong.moneymong.common.ui.noRippleClickable
+import com.moneymong.moneymong.ui.noRippleClickable
import com.moneymong.moneymong.design_system.theme.Gray10
import com.moneymong.moneymong.design_system.theme.Heading1
import com.moneymong.moneymong.design_system.R
diff --git a/feature/ledger/src/main/java/com/moneymong/moneymong/ledger/view/item/LedgerTransactionItem.kt b/feature/ledger/src/main/java/com/moneymong/moneymong/ledger/view/item/LedgerTransactionItem.kt
index b2d850c2..17082783 100644
--- a/feature/ledger/src/main/java/com/moneymong/moneymong/ledger/view/item/LedgerTransactionItem.kt
+++ b/feature/ledger/src/main/java/com/moneymong/moneymong/ledger/view/item/LedgerTransactionItem.kt
@@ -19,8 +19,8 @@ import androidx.compose.ui.draw.clip
import androidx.compose.ui.res.painterResource
import androidx.compose.ui.tooling.preview.Preview
import androidx.compose.ui.unit.dp
-import com.moneymong.moneymong.common.ext.toDateFormat
-import com.moneymong.moneymong.common.ui.toWonFormat
+import com.moneymong.moneymong.common.util.toDateFormat
+import com.moneymong.moneymong.ui.toWonFormat
import com.moneymong.moneymong.design_system.R.*
import com.moneymong.moneymong.design_system.theme.Blue01
import com.moneymong.moneymong.design_system.theme.Blue04
diff --git a/feature/ledger/src/main/java/com/moneymong/moneymong/ledger/view/onboarding/LedgerOnboardingControlButton.kt b/feature/ledger/src/main/java/com/moneymong/moneymong/ledger/view/onboarding/LedgerOnboardingControlButton.kt
index acfdd8fb..ece95f2e 100644
--- a/feature/ledger/src/main/java/com/moneymong/moneymong/ledger/view/onboarding/LedgerOnboardingControlButton.kt
+++ b/feature/ledger/src/main/java/com/moneymong/moneymong/ledger/view/onboarding/LedgerOnboardingControlButton.kt
@@ -10,7 +10,7 @@ import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.res.painterResource
import androidx.compose.ui.unit.dp
-import com.moneymong.moneymong.common.ui.noRippleClickable
+import com.moneymong.moneymong.ui.noRippleClickable
import com.moneymong.moneymong.design_system.R
import com.moneymong.moneymong.design_system.theme.Heading1
import com.moneymong.moneymong.design_system.theme.White
diff --git a/feature/ledgerdetail/build.gradle.kts b/feature/ledgerdetail/build.gradle.kts
index 280367a9..7dae8ad6 100644
--- a/feature/ledgerdetail/build.gradle.kts
+++ b/feature/ledgerdetail/build.gradle.kts
@@ -10,6 +10,7 @@ android {
}
dependencies {
+ implementation(projects.core.android)
implementation(projects.core.common)
implementation(projects.core.model)
implementation(projects.domain)
diff --git a/feature/ledgerdetail/src/main/java/com/moneymong/moneymong/ledgerdetail/LedgerDetailScreen.kt b/feature/ledgerdetail/src/main/java/com/moneymong/moneymong/ledgerdetail/LedgerDetailScreen.kt
index 8dd5409a..58b6b92f 100644
--- a/feature/ledgerdetail/src/main/java/com/moneymong/moneymong/ledgerdetail/LedgerDetailScreen.kt
+++ b/feature/ledgerdetail/src/main/java/com/moneymong/moneymong/ledgerdetail/LedgerDetailScreen.kt
@@ -43,10 +43,10 @@ import androidx.compose.ui.unit.dp
import androidx.hilt.navigation.compose.hiltViewModel
import com.bumptech.glide.integration.compose.ExperimentalGlideComposeApi
import com.bumptech.glide.integration.compose.GlideImage
-import com.moneymong.moneymong.common.ext.base64ToFile
-import com.moneymong.moneymong.common.ext.encodingBase64
-import com.moneymong.moneymong.common.ui.DottedShape
-import com.moneymong.moneymong.common.ui.noRippleClickable
+import com.moneymong.moneymong.android.util.base64ToFile
+import com.moneymong.moneymong.android.util.encodingBase64
+import com.moneymong.moneymong.ui.DottedShape
+import com.moneymong.moneymong.ui.noRippleClickable
import com.moneymong.moneymong.design_system.R
import com.moneymong.moneymong.design_system.component.button.MDSButton
import com.moneymong.moneymong.design_system.component.button.MDSButtonSize
diff --git a/feature/ledgerdetail/src/main/java/com/moneymong/moneymong/ledgerdetail/LedgerDetailSideEffect.kt b/feature/ledgerdetail/src/main/java/com/moneymong/moneymong/ledgerdetail/LedgerDetailSideEffect.kt
index f1074f0f..a96bc726 100644
--- a/feature/ledgerdetail/src/main/java/com/moneymong/moneymong/ledgerdetail/LedgerDetailSideEffect.kt
+++ b/feature/ledgerdetail/src/main/java/com/moneymong/moneymong/ledgerdetail/LedgerDetailSideEffect.kt
@@ -1,6 +1,6 @@
package com.moneymong.moneymong.ledgerdetail
-import com.moneymong.moneymong.common.base.SideEffect
+import com.moneymong.moneymong.android.SideEffect
sealed class LedgerDetailSideEffect : SideEffect {
data object LedgerDetailEdit : LedgerDetailSideEffect()
diff --git a/feature/ledgerdetail/src/main/java/com/moneymong/moneymong/ledgerdetail/LedgerDetailState.kt b/feature/ledgerdetail/src/main/java/com/moneymong/moneymong/ledgerdetail/LedgerDetailState.kt
index cfb27339..fb6dccf3 100644
--- a/feature/ledgerdetail/src/main/java/com/moneymong/moneymong/ledgerdetail/LedgerDetailState.kt
+++ b/feature/ledgerdetail/src/main/java/com/moneymong/moneymong/ledgerdetail/LedgerDetailState.kt
@@ -1,9 +1,9 @@
package com.moneymong.moneymong.ledgerdetail
import androidx.compose.ui.text.input.TextFieldValue
-import com.moneymong.moneymong.common.base.State
-import com.moneymong.moneymong.common.ext.toDateFormat
-import com.moneymong.moneymong.common.ui.toWonFormat
+import com.moneymong.moneymong.android.State
+import com.moneymong.moneymong.common.util.toDateFormat
+import com.moneymong.moneymong.ui.toWonFormat
import com.moneymong.moneymong.design_system.component.textfield.util.PriceType
import com.moneymong.moneymong.model.ledger.FundType
import com.moneymong.moneymong.model.ledgerdetail.LedgerTransactionDetailResponse
diff --git a/feature/ledgerdetail/src/main/java/com/moneymong/moneymong/ledgerdetail/LedgerDetailViewModel.kt b/feature/ledgerdetail/src/main/java/com/moneymong/moneymong/ledgerdetail/LedgerDetailViewModel.kt
index 1f4e0157..d9dc9c93 100644
--- a/feature/ledgerdetail/src/main/java/com/moneymong/moneymong/ledgerdetail/LedgerDetailViewModel.kt
+++ b/feature/ledgerdetail/src/main/java/com/moneymong/moneymong/ledgerdetail/LedgerDetailViewModel.kt
@@ -2,13 +2,13 @@ package com.moneymong.moneymong.ledgerdetail
import androidx.compose.ui.text.input.TextFieldValue
import androidx.lifecycle.SavedStateHandle
-import com.moneymong.moneymong.common.base.BaseViewModel
+import com.moneymong.moneymong.android.BaseViewModel
import com.moneymong.moneymong.common.error.MoneyMongError
-import com.moneymong.moneymong.common.ext.toDateFormat
-import com.moneymong.moneymong.common.ext.toMultipart
-import com.moneymong.moneymong.common.ui.isValidPaymentDate
-import com.moneymong.moneymong.common.ui.isValidPaymentTime
-import com.moneymong.moneymong.common.ui.validateValue
+import com.moneymong.moneymong.common.util.toDateFormat
+import com.moneymong.moneymong.android.util.toMultipart
+import com.moneymong.moneymong.ui.isValidPaymentDate
+import com.moneymong.moneymong.ui.isValidPaymentTime
+import com.moneymong.moneymong.ui.validateValue
import com.moneymong.moneymong.domain.usecase.ledgerdetail.FetchLedgerTransactionDetailUseCase
import com.moneymong.moneymong.domain.usecase.ledgerdetail.DeleteLedgerDetailUseCase
import com.moneymong.moneymong.domain.usecase.ledgerdetail.DeleteLedgerDocumentTransactionUseCase
diff --git a/feature/ledgerdetail/src/main/java/com/moneymong/moneymong/ledgerdetail/view/LedgerDetailTopbarView.kt b/feature/ledgerdetail/src/main/java/com/moneymong/moneymong/ledgerdetail/view/LedgerDetailTopbarView.kt
index 06bb01b7..b5228cb4 100644
--- a/feature/ledgerdetail/src/main/java/com/moneymong/moneymong/ledgerdetail/view/LedgerDetailTopbarView.kt
+++ b/feature/ledgerdetail/src/main/java/com/moneymong/moneymong/ledgerdetail/view/LedgerDetailTopbarView.kt
@@ -12,7 +12,7 @@ import androidx.compose.ui.Modifier
import androidx.compose.ui.res.painterResource
import androidx.compose.ui.tooling.preview.Preview
import androidx.compose.ui.unit.dp
-import com.moneymong.moneymong.common.ui.noRippleClickable
+import com.moneymong.moneymong.ui.noRippleClickable
import com.moneymong.moneymong.design_system.R.*
import com.moneymong.moneymong.design_system.theme.Blue04
import com.moneymong.moneymong.design_system.theme.Body3
diff --git a/feature/ledgermanual/build.gradle.kts b/feature/ledgermanual/build.gradle.kts
index 22c03c40..ed90cd41 100644
--- a/feature/ledgermanual/build.gradle.kts
+++ b/feature/ledgermanual/build.gradle.kts
@@ -10,6 +10,7 @@ android {
}
dependencies {
+ implementation(projects.core.android)
implementation(projects.core.common)
implementation(projects.core.model)
implementation(projects.domain)
diff --git a/feature/ledgermanual/src/main/java/com/moneymong/moneymong/ledgermanual/LedgerManualScreen.kt b/feature/ledgermanual/src/main/java/com/moneymong/moneymong/ledgermanual/LedgerManualScreen.kt
index 3666a4db..067b91a7 100644
--- a/feature/ledgermanual/src/main/java/com/moneymong/moneymong/ledgermanual/LedgerManualScreen.kt
+++ b/feature/ledgermanual/src/main/java/com/moneymong/moneymong/ledgermanual/LedgerManualScreen.kt
@@ -44,19 +44,16 @@ import androidx.compose.ui.layout.ContentScale
import androidx.compose.ui.platform.LocalContext
import androidx.compose.ui.platform.LocalFocusManager
import androidx.compose.ui.res.painterResource
-import androidx.compose.ui.text.SpanStyle
-import androidx.compose.ui.text.buildAnnotatedString
import androidx.compose.ui.text.input.KeyboardType
import androidx.compose.ui.text.input.TextFieldValue
-import androidx.compose.ui.text.withStyle
import androidx.compose.ui.tooling.preview.Preview
import androidx.compose.ui.unit.dp
import androidx.hilt.navigation.compose.hiltViewModel
import com.bumptech.glide.integration.compose.ExperimentalGlideComposeApi
import com.bumptech.glide.integration.compose.GlideImage
-import com.moneymong.moneymong.common.ext.base64ToFile
-import com.moneymong.moneymong.common.ext.encodingBase64
-import com.moneymong.moneymong.common.ui.noRippleClickable
+import com.moneymong.moneymong.android.util.base64ToFile
+import com.moneymong.moneymong.android.util.encodingBase64
+import com.moneymong.moneymong.ui.noRippleClickable
import com.moneymong.moneymong.design_system.R.drawable
import com.moneymong.moneymong.design_system.component.button.MDSButton
import com.moneymong.moneymong.design_system.component.button.MDSButtonSize
@@ -76,7 +73,6 @@ import com.moneymong.moneymong.design_system.theme.Body3
import com.moneymong.moneymong.design_system.theme.Gray06
import com.moneymong.moneymong.design_system.theme.Gray10
import com.moneymong.moneymong.design_system.theme.MMHorizontalSpacing
-import com.moneymong.moneymong.design_system.theme.Red03
import com.moneymong.moneymong.design_system.theme.White
import com.moneymong.moneymong.ledgermanual.view.LedgerManualTopbarView
import com.moneymong.moneymong.model.ledger.FundType
diff --git a/feature/ledgermanual/src/main/java/com/moneymong/moneymong/ledgermanual/LedgerManualSideEffect.kt b/feature/ledgermanual/src/main/java/com/moneymong/moneymong/ledgermanual/LedgerManualSideEffect.kt
index 74b0efe1..496ffb33 100644
--- a/feature/ledgermanual/src/main/java/com/moneymong/moneymong/ledgermanual/LedgerManualSideEffect.kt
+++ b/feature/ledgermanual/src/main/java/com/moneymong/moneymong/ledgermanual/LedgerManualSideEffect.kt
@@ -1,6 +1,6 @@
package com.moneymong.moneymong.ledgermanual
-import com.moneymong.moneymong.common.base.SideEffect
+import com.moneymong.moneymong.android.SideEffect
sealed class LedgerManualSideEffect : SideEffect {
diff --git a/feature/ledgermanual/src/main/java/com/moneymong/moneymong/ledgermanual/LedgerManualState.kt b/feature/ledgermanual/src/main/java/com/moneymong/moneymong/ledgermanual/LedgerManualState.kt
index 7b4725ee..294d825a 100644
--- a/feature/ledgermanual/src/main/java/com/moneymong/moneymong/ledgermanual/LedgerManualState.kt
+++ b/feature/ledgermanual/src/main/java/com/moneymong/moneymong/ledgermanual/LedgerManualState.kt
@@ -1,8 +1,8 @@
package com.moneymong.moneymong.ledgermanual
import androidx.compose.ui.text.input.TextFieldValue
-import com.moneymong.moneymong.common.base.State
-import com.moneymong.moneymong.common.ext.toZonedDateTime
+import com.moneymong.moneymong.android.State
+import com.moneymong.moneymong.common.util.toZonedDateTime
import com.moneymong.moneymong.design_system.component.textfield.util.PriceType
import com.moneymong.moneymong.model.ledger.FundType
import java.text.SimpleDateFormat
diff --git a/feature/ledgermanual/src/main/java/com/moneymong/moneymong/ledgermanual/LedgerManualViewModel.kt b/feature/ledgermanual/src/main/java/com/moneymong/moneymong/ledgermanual/LedgerManualViewModel.kt
index b99ee70e..ac10bc8a 100644
--- a/feature/ledgermanual/src/main/java/com/moneymong/moneymong/ledgermanual/LedgerManualViewModel.kt
+++ b/feature/ledgermanual/src/main/java/com/moneymong/moneymong/ledgermanual/LedgerManualViewModel.kt
@@ -1,11 +1,11 @@
package com.moneymong.moneymong.ledgermanual
import androidx.compose.ui.text.input.TextFieldValue
-import com.moneymong.moneymong.common.base.BaseViewModel
-import com.moneymong.moneymong.common.ext.toMultipart
-import com.moneymong.moneymong.common.ui.isValidPaymentDate
-import com.moneymong.moneymong.common.ui.isValidPaymentTime
-import com.moneymong.moneymong.common.ui.validateValue
+import com.moneymong.moneymong.android.BaseViewModel
+import com.moneymong.moneymong.android.util.toMultipart
+import com.moneymong.moneymong.ui.isValidPaymentDate
+import com.moneymong.moneymong.ui.isValidPaymentTime
+import com.moneymong.moneymong.ui.validateValue
import com.moneymong.moneymong.domain.usecase.agency.FetchAgencyIdUseCase
import com.moneymong.moneymong.domain.usecase.ledger.PostLedgerTransactionUseCase
import com.moneymong.moneymong.domain.usecase.ocr.PostFileUploadUseCase
diff --git a/feature/ledgermanual/src/main/java/com/moneymong/moneymong/ledgermanual/view/LedgerManualTopbarView.kt b/feature/ledgermanual/src/main/java/com/moneymong/moneymong/ledgermanual/view/LedgerManualTopbarView.kt
index 93fb19c9..b5aad548 100644
--- a/feature/ledgermanual/src/main/java/com/moneymong/moneymong/ledgermanual/view/LedgerManualTopbarView.kt
+++ b/feature/ledgermanual/src/main/java/com/moneymong/moneymong/ledgermanual/view/LedgerManualTopbarView.kt
@@ -6,7 +6,6 @@ import androidx.compose.foundation.layout.Row
import androidx.compose.foundation.layout.Spacer
import androidx.compose.foundation.layout.fillMaxWidth
import androidx.compose.foundation.layout.padding
-import androidx.compose.foundation.layout.size
import androidx.compose.foundation.layout.width
import androidx.compose.material3.Icon
import androidx.compose.material3.Text
@@ -16,7 +15,7 @@ import androidx.compose.ui.Modifier
import androidx.compose.ui.res.painterResource
import androidx.compose.ui.tooling.preview.Preview
import androidx.compose.ui.unit.dp
-import com.moneymong.moneymong.common.ui.noRippleClickable
+import com.moneymong.moneymong.ui.noRippleClickable
import com.moneymong.moneymong.design_system.R
import com.moneymong.moneymong.design_system.theme.Gray07
import com.moneymong.moneymong.design_system.theme.Gray10
diff --git a/feature/member/build.gradle.kts b/feature/member/build.gradle.kts
index 6a994f13..a1b3bbd0 100644
--- a/feature/member/build.gradle.kts
+++ b/feature/member/build.gradle.kts
@@ -1,15 +1,13 @@
@Suppress("DSL_SCOPE_VIOLATION") // TODO: Remove once KTIJ-19369 is fixed
plugins {
- alias(libs.plugins.moneymong.android.library)
alias(libs.plugins.moneymong.android.library.compose)
- alias(libs.plugins.kotlin.android)
+ alias(libs.plugins.moneymong.android.feature)
alias(libs.plugins.moneymong.android.hilt)
}
android {
namespace = "com.example.member"
-
}
dependencies {
@@ -17,32 +15,15 @@ dependencies {
implementation(libs.appcompat)
implementation(libs.material)
- implementation(libs.androidx.activity.compose)
- implementation(platform(libs.androidx.compose.bom))
- implementation(libs.androidx.compose.ui)
- implementation(libs.androidx.compose.ui.tooling.preview)
- implementation(libs.androidx.compose.material3)
- implementation(platform(libs.androidx.compose.bom))
- implementation(libs.constraintlayout)
- implementation(libs.navigation.fragment.ktx)
- implementation(libs.navigation.ui.ktx)
- implementation(libs.lifecycle.runtime.ktx)
- implementation(platform(libs.androidx.compose.bom))
- implementation(libs.ui.graphics)
-
testImplementation(libs.junit4)
androidTestImplementation(libs.androidx.junit)
androidTestImplementation(libs.androidx.test.espresso.core)
- androidTestImplementation(platform(libs.androidx.compose.bom))
- androidTestImplementation(platform(libs.androidx.compose.bom))
- androidTestImplementation(platform(libs.androidx.compose.bom))
- androidTestImplementation(libs.ui.test.junit4)
- debugImplementation(libs.androidx.compose.ui.tooling)
- debugImplementation(libs.androidx.compose.ui.testManifest)
+ implementation(projects.core.android)
implementation(projects.core.common)
implementation(projects.core.designSystem)
implementation(projects.core.model)
+ implementation(projects.core.ui)
implementation(projects.domain)
implementation(libs.orbit.compose)
diff --git a/feature/member/src/main/java/com/example/member/MemberScreen.kt b/feature/member/src/main/java/com/example/member/MemberScreen.kt
index 9dedc5fb..630641eb 100644
--- a/feature/member/src/main/java/com/example/member/MemberScreen.kt
+++ b/feature/member/src/main/java/com/example/member/MemberScreen.kt
@@ -2,7 +2,6 @@ package com.example.member
import BottomSheetType
import androidx.compose.foundation.background
-import androidx.compose.foundation.clickable
import androidx.compose.foundation.layout.Arrangement
import androidx.compose.foundation.layout.Box
import androidx.compose.foundation.layout.Column
@@ -31,7 +30,7 @@ import androidx.hilt.navigation.compose.hiltViewModel
import com.example.member.component.MemberCardView
import com.example.member.component.MemberDialogView
import com.example.member.component.MemberListView
-import com.moneymong.moneymong.common.ui.noRippleClickable
+import com.moneymong.moneymong.ui.noRippleClickable
import com.moneymong.moneymong.design_system.R
import com.moneymong.moneymong.design_system.component.bottomSheet.MDSBottomSheet
import com.moneymong.moneymong.design_system.component.button.MDSButton
diff --git a/feature/member/src/main/java/com/example/member/MemberSideEffect.kt b/feature/member/src/main/java/com/example/member/MemberSideEffect.kt
index c8116c06..70e6416e 100644
--- a/feature/member/src/main/java/com/example/member/MemberSideEffect.kt
+++ b/feature/member/src/main/java/com/example/member/MemberSideEffect.kt
@@ -1,6 +1,6 @@
package com.example.member
-import com.moneymong.moneymong.common.base.SideEffect
+import com.moneymong.moneymong.android.SideEffect
sealed class MemberSideEffect : SideEffect {
data class GetInvitationCode(val agencyId: Long) : MemberSideEffect()
diff --git a/feature/member/src/main/java/com/example/member/MemberState.kt b/feature/member/src/main/java/com/example/member/MemberState.kt
index 3a4ae76a..028e98e0 100644
--- a/feature/member/src/main/java/com/example/member/MemberState.kt
+++ b/feature/member/src/main/java/com/example/member/MemberState.kt
@@ -1,7 +1,7 @@
package com.example.member
-import com.moneymong.moneymong.common.base.State
+import com.moneymong.moneymong.android.State
import com.moneymong.moneymong.model.member.AgencyUser
data class MemberState(
diff --git a/feature/member/src/main/java/com/example/member/MemberViewModel.kt b/feature/member/src/main/java/com/example/member/MemberViewModel.kt
index 49ab1ec2..15658e23 100644
--- a/feature/member/src/main/java/com/example/member/MemberViewModel.kt
+++ b/feature/member/src/main/java/com/example/member/MemberViewModel.kt
@@ -1,7 +1,7 @@
package com.example.member
import android.util.Log
-import com.moneymong.moneymong.common.base.BaseViewModel
+import com.moneymong.moneymong.android.BaseViewModel
import com.moneymong.moneymong.domain.usecase.agency.FetchAgencyIdUseCase
import com.moneymong.moneymong.domain.usecase.member.DeleteAgencyUseCase
import com.moneymong.moneymong.domain.usecase.member.MemberBlockUseCase
diff --git a/feature/member/src/main/java/com/example/member/component/MemberCardView.kt b/feature/member/src/main/java/com/example/member/component/MemberCardView.kt
index b0ca5ba8..fdcf028b 100644
--- a/feature/member/src/main/java/com/example/member/component/MemberCardView.kt
+++ b/feature/member/src/main/java/com/example/member/component/MemberCardView.kt
@@ -23,7 +23,7 @@ import androidx.compose.ui.platform.LocalContext
import androidx.compose.ui.res.painterResource
import androidx.compose.ui.unit.dp
import com.example.member.util.MemberRoundRectShadow
-import com.moneymong.moneymong.common.ui.noRippleClickable
+import com.moneymong.moneymong.ui.noRippleClickable
import com.moneymong.moneymong.design_system.R
import com.moneymong.moneymong.design_system.component.tag.MDSTag
import com.moneymong.moneymong.design_system.theme.Blue04
diff --git a/feature/member/src/main/java/com/example/member/item/MemberListItem.kt b/feature/member/src/main/java/com/example/member/item/MemberListItem.kt
index 3d1d4c54..355f8868 100644
--- a/feature/member/src/main/java/com/example/member/item/MemberListItem.kt
+++ b/feature/member/src/main/java/com/example/member/item/MemberListItem.kt
@@ -14,7 +14,7 @@ import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.res.painterResource
import androidx.compose.ui.unit.dp
-import com.moneymong.moneymong.common.ui.noRippleClickable
+import com.moneymong.moneymong.ui.noRippleClickable
import com.moneymong.moneymong.design_system.R
import com.moneymong.moneymong.design_system.component.tag.MDSTag
import com.moneymong.moneymong.design_system.theme.Blue04
diff --git a/feature/mymong/build.gradle.kts b/feature/mymong/build.gradle.kts
index 59e4acdf..8636ee93 100644
--- a/feature/mymong/build.gradle.kts
+++ b/feature/mymong/build.gradle.kts
@@ -10,6 +10,7 @@ android {
}
dependencies {
+ implementation(projects.core.android)
implementation(projects.core.model)
implementation(projects.domain)
diff --git a/feature/mymong/src/main/java/com/moneymong/moneymong/feature/mymong/component/MyMongInnerTopBar.kt b/feature/mymong/src/main/java/com/moneymong/moneymong/feature/mymong/component/MyMongInnerTopBar.kt
index 774f6ce5..4d4ac126 100644
--- a/feature/mymong/src/main/java/com/moneymong/moneymong/feature/mymong/component/MyMongInnerTopBar.kt
+++ b/feature/mymong/src/main/java/com/moneymong/moneymong/feature/mymong/component/MyMongInnerTopBar.kt
@@ -13,7 +13,7 @@ import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.res.painterResource
import androidx.compose.ui.unit.dp
-import com.moneymong.moneymong.common.ui.noRippleClickable
+import com.moneymong.moneymong.ui.noRippleClickable
import com.moneymong.moneymong.design_system.R
import com.moneymong.moneymong.design_system.theme.Gray07
import com.moneymong.moneymong.design_system.theme.Gray10
diff --git a/feature/mymong/src/main/java/com/moneymong/moneymong/feature/mymong/main/MyMongSideEffect.kt b/feature/mymong/src/main/java/com/moneymong/moneymong/feature/mymong/main/MyMongSideEffect.kt
index 6b53802e..6a2e8e95 100644
--- a/feature/mymong/src/main/java/com/moneymong/moneymong/feature/mymong/main/MyMongSideEffect.kt
+++ b/feature/mymong/src/main/java/com/moneymong/moneymong/feature/mymong/main/MyMongSideEffect.kt
@@ -1,6 +1,6 @@
package com.moneymong.moneymong.feature.mymong.main
-import com.moneymong.moneymong.common.base.SideEffect
+import com.moneymong.moneymong.android.SideEffect
sealed interface MyMongSideEffect : SideEffect {
data object NavigateToWithdrawal : MyMongSideEffect
diff --git a/feature/mymong/src/main/java/com/moneymong/moneymong/feature/mymong/main/MyMongState.kt b/feature/mymong/src/main/java/com/moneymong/moneymong/feature/mymong/main/MyMongState.kt
index 6b49e415..0cfda01a 100644
--- a/feature/mymong/src/main/java/com/moneymong/moneymong/feature/mymong/main/MyMongState.kt
+++ b/feature/mymong/src/main/java/com/moneymong/moneymong/feature/mymong/main/MyMongState.kt
@@ -1,6 +1,6 @@
package com.moneymong.moneymong.feature.mymong.main
-import com.moneymong.moneymong.common.base.State
+import com.moneymong.moneymong.android.State
data class MyMongState(
val name: String = "",
diff --git a/feature/mymong/src/main/java/com/moneymong/moneymong/feature/mymong/main/MyMongViewModel.kt b/feature/mymong/src/main/java/com/moneymong/moneymong/feature/mymong/main/MyMongViewModel.kt
index e3beeab0..052a3cc1 100644
--- a/feature/mymong/src/main/java/com/moneymong/moneymong/feature/mymong/main/MyMongViewModel.kt
+++ b/feature/mymong/src/main/java/com/moneymong/moneymong/feature/mymong/main/MyMongViewModel.kt
@@ -1,6 +1,6 @@
package com.moneymong.moneymong.feature.mymong.main
-import com.moneymong.moneymong.common.base.BaseViewModel
+import com.moneymong.moneymong.android.BaseViewModel
import com.moneymong.moneymong.common.error.MoneyMongError
import com.moneymong.moneymong.domain.usecase.agency.SaveAgencyIdUseCase
import com.moneymong.moneymong.domain.usecase.user.FetchMyInfoUseCase
diff --git a/feature/mymong/src/main/java/com/moneymong/moneymong/feature/mymong/main/view/MyMongSettingView.kt b/feature/mymong/src/main/java/com/moneymong/moneymong/feature/mymong/main/view/MyMongSettingView.kt
index 6e2f6865..6e3b26b8 100644
--- a/feature/mymong/src/main/java/com/moneymong/moneymong/feature/mymong/main/view/MyMongSettingView.kt
+++ b/feature/mymong/src/main/java/com/moneymong/moneymong/feature/mymong/main/view/MyMongSettingView.kt
@@ -22,14 +22,13 @@ import androidx.compose.ui.Modifier
import androidx.compose.ui.platform.LocalContext
import androidx.compose.ui.res.painterResource
import androidx.compose.ui.unit.dp
-import com.moneymong.moneymong.common.ui.noRippleClickable
+import com.moneymong.moneymong.ui.noRippleClickable
import com.moneymong.moneymong.design_system.R
import com.moneymong.moneymong.design_system.theme.Blue04
import com.moneymong.moneymong.design_system.theme.Body4
import com.moneymong.moneymong.design_system.theme.Gray02
import com.moneymong.moneymong.design_system.theme.Gray06
import com.moneymong.moneymong.design_system.theme.Gray07
-import com.moneymong.moneymong.design_system.theme.Gray10
import com.moneymong.moneymong.design_system.theme.White
import com.moneymong.moneymong.feature.mymong.main.util.myMongRoundRectShadow
diff --git a/feature/mymong/src/main/java/com/moneymong/moneymong/feature/mymong/withdrawal/WithdrawalScreen.kt b/feature/mymong/src/main/java/com/moneymong/moneymong/feature/mymong/withdrawal/WithdrawalScreen.kt
index f5b56795..e9bcd2f8 100644
--- a/feature/mymong/src/main/java/com/moneymong/moneymong/feature/mymong/withdrawal/WithdrawalScreen.kt
+++ b/feature/mymong/src/main/java/com/moneymong/moneymong/feature/mymong/withdrawal/WithdrawalScreen.kt
@@ -19,7 +19,7 @@ import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.unit.dp
import androidx.hilt.navigation.compose.hiltViewModel
-import com.moneymong.moneymong.common.ui.noRippleClickable
+import com.moneymong.moneymong.ui.noRippleClickable
import com.moneymong.moneymong.design_system.R
import com.moneymong.moneymong.design_system.component.button.MDSButton
import com.moneymong.moneymong.design_system.component.modal.MDSModal
diff --git a/feature/mymong/src/main/java/com/moneymong/moneymong/feature/mymong/withdrawal/WithdrawalSideEffect.kt b/feature/mymong/src/main/java/com/moneymong/moneymong/feature/mymong/withdrawal/WithdrawalSideEffect.kt
index b0aef6c4..91886d83 100644
--- a/feature/mymong/src/main/java/com/moneymong/moneymong/feature/mymong/withdrawal/WithdrawalSideEffect.kt
+++ b/feature/mymong/src/main/java/com/moneymong/moneymong/feature/mymong/withdrawal/WithdrawalSideEffect.kt
@@ -1,6 +1,6 @@
package com.moneymong.moneymong.feature.mymong.withdrawal
-import com.moneymong.moneymong.common.base.SideEffect
+import com.moneymong.moneymong.android.SideEffect
sealed interface WithdrawalSideEffect : SideEffect {
data object NavigateToLogin : WithdrawalSideEffect
diff --git a/feature/mymong/src/main/java/com/moneymong/moneymong/feature/mymong/withdrawal/WithdrawalState.kt b/feature/mymong/src/main/java/com/moneymong/moneymong/feature/mymong/withdrawal/WithdrawalState.kt
index 6dcbd5d7..f13d0b5b 100644
--- a/feature/mymong/src/main/java/com/moneymong/moneymong/feature/mymong/withdrawal/WithdrawalState.kt
+++ b/feature/mymong/src/main/java/com/moneymong/moneymong/feature/mymong/withdrawal/WithdrawalState.kt
@@ -1,6 +1,6 @@
package com.moneymong.moneymong.feature.mymong.withdrawal
-import com.moneymong.moneymong.common.base.State
+import com.moneymong.moneymong.android.State
data class WithdrawalState(
val isAgreed: Boolean = false,
diff --git a/feature/mymong/src/main/java/com/moneymong/moneymong/feature/mymong/withdrawal/WithdrawalViewModel.kt b/feature/mymong/src/main/java/com/moneymong/moneymong/feature/mymong/withdrawal/WithdrawalViewModel.kt
index 4d1da1d7..e0265620 100644
--- a/feature/mymong/src/main/java/com/moneymong/moneymong/feature/mymong/withdrawal/WithdrawalViewModel.kt
+++ b/feature/mymong/src/main/java/com/moneymong/moneymong/feature/mymong/withdrawal/WithdrawalViewModel.kt
@@ -1,6 +1,6 @@
package com.moneymong.moneymong.feature.mymong.withdrawal
-import com.moneymong.moneymong.common.base.BaseViewModel
+import com.moneymong.moneymong.android.BaseViewModel
import com.moneymong.moneymong.common.error.MoneyMongError
import com.moneymong.moneymong.domain.usecase.agency.SaveAgencyIdUseCase
import com.moneymong.moneymong.domain.usecase.user.SaveDeniedCameraPermissionUseCase
diff --git a/feature/ocr-detail/build.gradle.kts b/feature/ocr-detail/build.gradle.kts
index 34c1bdc2..cfbee5a9 100644
--- a/feature/ocr-detail/build.gradle.kts
+++ b/feature/ocr-detail/build.gradle.kts
@@ -10,6 +10,7 @@ android {
}
dependencies {
+ implementation(projects.core.android)
implementation(projects.core.common)
implementation(projects.core.designSystem)
implementation(projects.core.model)
diff --git a/feature/ocr-detail/src/main/java/com/moneymong/moneymong/ocr_detail/OCRDetailScreen.kt b/feature/ocr-detail/src/main/java/com/moneymong/moneymong/ocr_detail/OCRDetailScreen.kt
index 5bf60961..6b6664ff 100644
--- a/feature/ocr-detail/src/main/java/com/moneymong/moneymong/ocr_detail/OCRDetailScreen.kt
+++ b/feature/ocr-detail/src/main/java/com/moneymong/moneymong/ocr_detail/OCRDetailScreen.kt
@@ -52,10 +52,10 @@ import androidx.compose.ui.unit.dp
import androidx.hilt.navigation.compose.hiltViewModel
import com.bumptech.glide.integration.compose.ExperimentalGlideComposeApi
import com.bumptech.glide.integration.compose.GlideImage
-import com.moneymong.moneymong.common.ext.base64ToFile
-import com.moneymong.moneymong.common.ext.encodingBase64
-import com.moneymong.moneymong.common.ui.DottedShape
-import com.moneymong.moneymong.common.ui.noRippleClickable
+import com.moneymong.moneymong.android.util.base64ToFile
+import com.moneymong.moneymong.android.util.encodingBase64
+import com.moneymong.moneymong.ui.DottedShape
+import com.moneymong.moneymong.ui.noRippleClickable
import com.moneymong.moneymong.design_system.R
import com.moneymong.moneymong.design_system.component.button.MDSButton
import com.moneymong.moneymong.design_system.component.selection.MDSSelection
diff --git a/feature/ocr-detail/src/main/java/com/moneymong/moneymong/ocr_detail/OCRDetailSideEffect.kt b/feature/ocr-detail/src/main/java/com/moneymong/moneymong/ocr_detail/OCRDetailSideEffect.kt
index 231c3992..9e6c6d0b 100644
--- a/feature/ocr-detail/src/main/java/com/moneymong/moneymong/ocr_detail/OCRDetailSideEffect.kt
+++ b/feature/ocr-detail/src/main/java/com/moneymong/moneymong/ocr_detail/OCRDetailSideEffect.kt
@@ -1,6 +1,6 @@
package com.moneymong.moneymong.ocr_detail
-import com.moneymong.moneymong.common.base.SideEffect
+import com.moneymong.moneymong.android.SideEffect
sealed class OCRDetailSideEffect : SideEffect {
data object OCRDetailOpenImagePicker : OCRDetailSideEffect()
diff --git a/feature/ocr-detail/src/main/java/com/moneymong/moneymong/ocr_detail/OCRDetailState.kt b/feature/ocr-detail/src/main/java/com/moneymong/moneymong/ocr_detail/OCRDetailState.kt
index e9fcd6a0..0b23a107 100644
--- a/feature/ocr-detail/src/main/java/com/moneymong/moneymong/ocr_detail/OCRDetailState.kt
+++ b/feature/ocr-detail/src/main/java/com/moneymong/moneymong/ocr_detail/OCRDetailState.kt
@@ -1,7 +1,7 @@
package com.moneymong.moneymong.ocr_detail
import androidx.compose.ui.text.input.TextFieldValue
-import com.moneymong.moneymong.common.base.State
+import com.moneymong.moneymong.android.State
import com.moneymong.moneymong.design_system.component.textfield.util.PriceType
import com.moneymong.moneymong.model.ledger.FundType
import com.moneymong.moneymong.model.ocr.DocumentResponse
diff --git a/feature/ocr-detail/src/main/java/com/moneymong/moneymong/ocr_detail/OCRDetailViewModel.kt b/feature/ocr-detail/src/main/java/com/moneymong/moneymong/ocr_detail/OCRDetailViewModel.kt
index a5ed714e..1ea47fb9 100644
--- a/feature/ocr-detail/src/main/java/com/moneymong/moneymong/ocr_detail/OCRDetailViewModel.kt
+++ b/feature/ocr-detail/src/main/java/com/moneymong/moneymong/ocr_detail/OCRDetailViewModel.kt
@@ -2,13 +2,11 @@ package com.moneymong.moneymong.ocr_detail
import android.content.SharedPreferences
import androidx.compose.ui.text.input.TextFieldValue
-import com.moneymong.moneymong.common.base.BaseViewModel
-import com.moneymong.moneymong.common.event.Event
-import com.moneymong.moneymong.common.event.EventTracker
-import com.moneymong.moneymong.common.ext.toMultipart
-import com.moneymong.moneymong.common.ui.isValidPaymentDate
-import com.moneymong.moneymong.common.ui.isValidPaymentTime
-import com.moneymong.moneymong.common.ui.validateValue
+import com.moneymong.moneymong.android.BaseViewModel
+import com.moneymong.moneymong.android.util.toMultipart
+import com.moneymong.moneymong.ui.isValidPaymentDate
+import com.moneymong.moneymong.ui.isValidPaymentTime
+import com.moneymong.moneymong.ui.validateValue
import com.moneymong.moneymong.domain.usecase.agency.FetchAgencyIdUseCase
import com.moneymong.moneymong.domain.usecase.ledger.PostLedgerTransactionUseCase
import com.moneymong.moneymong.domain.usecase.ocr.PostFileUploadUseCase
@@ -31,7 +29,6 @@ import javax.inject.Inject
@HiltViewModel
class OCRDetailViewModel @Inject constructor(
- private val eventTracker: EventTracker,
private val prefs: SharedPreferences,
private val postLedgerTransactionUseCase: PostLedgerTransactionUseCase,
private val postFileUploadUseCase: PostFileUploadUseCase,
@@ -136,7 +133,6 @@ class OCRDetailViewModel @Inject constructor(
}
fun onClickPostLedger() = intent {
- eventTracker.logEvent(Event.OCR_MODIFY_TO_REGISTER_CLICK)
postDocumentImage(imageFile = state.receiptFile, isReceipt = true)
}
diff --git a/feature/ocr-detail/src/main/java/com/moneymong/moneymong/ocr_detail/view/OCRDetailTopbarView.kt b/feature/ocr-detail/src/main/java/com/moneymong/moneymong/ocr_detail/view/OCRDetailTopbarView.kt
index 324a2a83..86db074f 100644
--- a/feature/ocr-detail/src/main/java/com/moneymong/moneymong/ocr_detail/view/OCRDetailTopbarView.kt
+++ b/feature/ocr-detail/src/main/java/com/moneymong/moneymong/ocr_detail/view/OCRDetailTopbarView.kt
@@ -13,7 +13,7 @@ import androidx.compose.ui.Modifier
import androidx.compose.ui.res.painterResource
import androidx.compose.ui.tooling.preview.Preview
import androidx.compose.ui.unit.dp
-import com.moneymong.moneymong.common.ui.noRippleClickable
+import com.moneymong.moneymong.ui.noRippleClickable
import com.moneymong.moneymong.design_system.R.*
import com.moneymong.moneymong.design_system.theme.Blue04
import com.moneymong.moneymong.design_system.theme.Body2
diff --git a/feature/ocr-result/build.gradle.kts b/feature/ocr-result/build.gradle.kts
index 10ea4386..d1e338b4 100644
--- a/feature/ocr-result/build.gradle.kts
+++ b/feature/ocr-result/build.gradle.kts
@@ -10,6 +10,7 @@ android {
}
dependencies {
+ implementation(projects.core.android)
implementation(projects.core.common)
implementation(projects.core.designSystem)
implementation(projects.core.model)
diff --git a/feature/ocr-result/src/main/java/com/moneymong/moneymong/ocr_result/OCRResultScreen.kt b/feature/ocr-result/src/main/java/com/moneymong/moneymong/ocr_result/OCRResultScreen.kt
index e1fe8b70..2272dbb4 100644
--- a/feature/ocr-result/src/main/java/com/moneymong/moneymong/ocr_result/OCRResultScreen.kt
+++ b/feature/ocr-result/src/main/java/com/moneymong/moneymong/ocr_result/OCRResultScreen.kt
@@ -34,7 +34,7 @@ import androidx.navigation.NavOptions
import com.bumptech.glide.integration.compose.ExperimentalGlideComposeApi
import com.bumptech.glide.integration.compose.GlideImage
import com.google.gson.Gson
-import com.moneymong.moneymong.common.ext.base64ToFile
+import com.moneymong.moneymong.android.util.base64ToFile
import com.moneymong.moneymong.design_system.component.snackbar.MDSSnackbarHost
import com.moneymong.moneymong.design_system.theme.Black
import com.moneymong.moneymong.design_system.theme.Blue01
diff --git a/feature/ocr-result/src/main/java/com/moneymong/moneymong/ocr_result/OCRResultSideEffect.kt b/feature/ocr-result/src/main/java/com/moneymong/moneymong/ocr_result/OCRResultSideEffect.kt
index 45690e88..aec5b0c9 100644
--- a/feature/ocr-result/src/main/java/com/moneymong/moneymong/ocr_result/OCRResultSideEffect.kt
+++ b/feature/ocr-result/src/main/java/com/moneymong/moneymong/ocr_result/OCRResultSideEffect.kt
@@ -1,6 +1,6 @@
package com.moneymong.moneymong.ocr_result
-import com.moneymong.moneymong.common.base.SideEffect
+import com.moneymong.moneymong.android.SideEffect
import com.moneymong.moneymong.model.ocr.DocumentResponse
sealed class OCRResultSideEffect : SideEffect {
diff --git a/feature/ocr-result/src/main/java/com/moneymong/moneymong/ocr_result/OCRResultState.kt b/feature/ocr-result/src/main/java/com/moneymong/moneymong/ocr_result/OCRResultState.kt
index 14b0e59a..b6e4d87c 100644
--- a/feature/ocr-result/src/main/java/com/moneymong/moneymong/ocr_result/OCRResultState.kt
+++ b/feature/ocr-result/src/main/java/com/moneymong/moneymong/ocr_result/OCRResultState.kt
@@ -1,11 +1,11 @@
package com.moneymong.moneymong.ocr_result
-import com.moneymong.moneymong.common.base.State
-import com.moneymong.moneymong.common.ext.toZonedDateTime
-import com.moneymong.moneymong.common.ui.isValidPaymentDate
-import com.moneymong.moneymong.common.ui.isValidPaymentTime
-import com.moneymong.moneymong.common.ui.toWonFormat
-import com.moneymong.moneymong.common.ui.validateValue
+import com.moneymong.moneymong.android.State
+import com.moneymong.moneymong.common.util.toZonedDateTime
+import com.moneymong.moneymong.ui.isValidPaymentDate
+import com.moneymong.moneymong.ui.isValidPaymentTime
+import com.moneymong.moneymong.ui.toWonFormat
+import com.moneymong.moneymong.ui.validateValue
import com.moneymong.moneymong.model.ocr.DocumentResponse
import com.moneymong.moneymong.model.ocr.DocumentResult
import java.io.File
diff --git a/feature/ocr-result/src/main/java/com/moneymong/moneymong/ocr_result/OCRResultViewModel.kt b/feature/ocr-result/src/main/java/com/moneymong/moneymong/ocr_result/OCRResultViewModel.kt
index c1f7d5da..b4370385 100644
--- a/feature/ocr-result/src/main/java/com/moneymong/moneymong/ocr_result/OCRResultViewModel.kt
+++ b/feature/ocr-result/src/main/java/com/moneymong/moneymong/ocr_result/OCRResultViewModel.kt
@@ -1,10 +1,8 @@
package com.moneymong.moneymong.ocr_result
import android.content.SharedPreferences
-import com.moneymong.moneymong.common.base.BaseViewModel
-import com.moneymong.moneymong.common.event.Event
-import com.moneymong.moneymong.common.event.EventTracker
-import com.moneymong.moneymong.common.ext.toMultipart
+import com.moneymong.moneymong.android.BaseViewModel
+import com.moneymong.moneymong.android.util.toMultipart
import com.moneymong.moneymong.domain.usecase.agency.FetchAgencyIdUseCase
import com.moneymong.moneymong.domain.usecase.ledger.PostLedgerTransactionUseCase
import com.moneymong.moneymong.domain.usecase.ocr.PostFileUploadUseCase
@@ -23,7 +21,6 @@ import javax.inject.Inject
@HiltViewModel
class OCRResultViewModel @Inject constructor(
- private val eventTracker: EventTracker,
private val prefs: SharedPreferences,
private val postLedgerTransactionUseCase: PostLedgerTransactionUseCase,
private val postFileUploadUseCase: PostFileUploadUseCase,
@@ -62,8 +59,6 @@ class OCRResultViewModel @Inject constructor(
}
fun postReceiptImage() = intent {
- eventTracker.logEvent(Event.OCR_REGISTER_CLICK)
-
state.receiptFile?.let {
if (!state.isLoading) {
reduce { state.copy(isLoading = true) }
@@ -98,7 +93,6 @@ class OCRResultViewModel @Inject constructor(
// onClick
fun onClickOCREdit() = intent {
- eventTracker.logEvent(Event.OCR_MODIFY_CLICK)
postSideEffect(OCRResultSideEffect.OCRResultNavigateToOCRDetail(state.document))
}
}
\ No newline at end of file
diff --git a/feature/ocr-result/src/main/java/com/moneymong/moneymong/ocr_result/view/OCRResultTopbarView.kt b/feature/ocr-result/src/main/java/com/moneymong/moneymong/ocr_result/view/OCRResultTopbarView.kt
index 1746421a..075226ee 100644
--- a/feature/ocr-result/src/main/java/com/moneymong/moneymong/ocr_result/view/OCRResultTopbarView.kt
+++ b/feature/ocr-result/src/main/java/com/moneymong/moneymong/ocr_result/view/OCRResultTopbarView.kt
@@ -1,6 +1,5 @@
package com.moneymong.moneymong.ocr_result.view
-import androidx.compose.foundation.background
import androidx.compose.foundation.layout.Arrangement
import androidx.compose.foundation.layout.Row
import androidx.compose.foundation.layout.fillMaxWidth
@@ -14,7 +13,7 @@ import androidx.compose.ui.graphics.Color
import androidx.compose.ui.res.painterResource
import androidx.compose.ui.tooling.preview.Preview
import androidx.compose.ui.unit.dp
-import com.moneymong.moneymong.common.ui.noRippleClickable
+import com.moneymong.moneymong.ui.noRippleClickable
import com.moneymong.moneymong.design_system.R
import com.moneymong.moneymong.design_system.theme.Heading1
import com.moneymong.moneymong.design_system.theme.MMHorizontalSpacing
diff --git a/feature/ocr/build.gradle.kts b/feature/ocr/build.gradle.kts
index 59da8302..82ff31d3 100644
--- a/feature/ocr/build.gradle.kts
+++ b/feature/ocr/build.gradle.kts
@@ -10,6 +10,7 @@ android {
}
dependencies {
+ implementation(projects.core.android)
implementation(projects.core.common)
implementation(projects.core.model)
implementation(projects.domain)
diff --git a/feature/ocr/src/main/java/com/moneymong/moneymong/ocr/OCRScreen.kt b/feature/ocr/src/main/java/com/moneymong/moneymong/ocr/OCRScreen.kt
index 8496cdbf..3f624d26 100644
--- a/feature/ocr/src/main/java/com/moneymong/moneymong/ocr/OCRScreen.kt
+++ b/feature/ocr/src/main/java/com/moneymong/moneymong/ocr/OCRScreen.kt
@@ -33,9 +33,9 @@ import com.moneymong.moneymong.design_system.component.modal.MDSModal
import com.moneymong.moneymong.design_system.theme.Heading1
import com.moneymong.moneymong.design_system.theme.Mint03
import com.moneymong.moneymong.design_system.theme.White
-import com.moneymong.moneymong.common.ext.hasPermission
-import com.moneymong.moneymong.common.ui.noRippleClickable
-import com.moneymong.moneymong.common.util.DisposableEffectWithLifeCycle
+import com.moneymong.moneymong.android.util.hasPermission
+import com.moneymong.moneymong.ui.noRippleClickable
+import com.moneymong.moneymong.ui.util.DisposableEffectWithLifeCycle
import com.moneymong.moneymong.design_system.error.ErrorDialog
import com.moneymong.moneymong.design_system.theme.Black
import com.moneymong.moneymong.ocr.view.OCRCameraPermissionDeniedView
diff --git a/feature/ocr/src/main/java/com/moneymong/moneymong/ocr/OCRSideEffect.kt b/feature/ocr/src/main/java/com/moneymong/moneymong/ocr/OCRSideEffect.kt
index ab353235..dd252e25 100644
--- a/feature/ocr/src/main/java/com/moneymong/moneymong/ocr/OCRSideEffect.kt
+++ b/feature/ocr/src/main/java/com/moneymong/moneymong/ocr/OCRSideEffect.kt
@@ -1,6 +1,6 @@
package com.moneymong.moneymong.ocr
-import com.moneymong.moneymong.common.base.SideEffect
+import com.moneymong.moneymong.android.SideEffect
import com.moneymong.moneymong.model.ocr.DocumentResponse
sealed class OCRSideEffect : SideEffect {
diff --git a/feature/ocr/src/main/java/com/moneymong/moneymong/ocr/OCRState.kt b/feature/ocr/src/main/java/com/moneymong/moneymong/ocr/OCRState.kt
index 4b709896..8466152e 100644
--- a/feature/ocr/src/main/java/com/moneymong/moneymong/ocr/OCRState.kt
+++ b/feature/ocr/src/main/java/com/moneymong/moneymong/ocr/OCRState.kt
@@ -1,6 +1,6 @@
package com.moneymong.moneymong.ocr
-import com.moneymong.moneymong.common.base.State
+import com.moneymong.moneymong.android.State
import com.moneymong.moneymong.model.ocr.DocumentResponse
import com.moneymong.moneymong.ocr.util.ModalType
diff --git a/feature/ocr/src/main/java/com/moneymong/moneymong/ocr/OCRViewModel.kt b/feature/ocr/src/main/java/com/moneymong/moneymong/ocr/OCRViewModel.kt
index 012d9194..2015fd79 100644
--- a/feature/ocr/src/main/java/com/moneymong/moneymong/ocr/OCRViewModel.kt
+++ b/feature/ocr/src/main/java/com/moneymong/moneymong/ocr/OCRViewModel.kt
@@ -2,7 +2,7 @@ package com.moneymong.moneymong.ocr
import android.content.SharedPreferences
import androidx.core.content.edit
-import com.moneymong.moneymong.common.base.BaseViewModel
+import com.moneymong.moneymong.android.BaseViewModel
import com.moneymong.moneymong.domain.usecase.ocr.DocumentOCRUseCase
import com.moneymong.moneymong.domain.usecase.user.FetchDeniedCameraPermissionUseCase
import com.moneymong.moneymong.domain.usecase.user.SaveDeniedCameraPermissionUseCase
diff --git a/feature/ocr/src/main/java/com/moneymong/moneymong/ocr/view/OCRCameraPermissionDeniedView.kt b/feature/ocr/src/main/java/com/moneymong/moneymong/ocr/view/OCRCameraPermissionDeniedView.kt
index b3a42767..ff20f820 100644
--- a/feature/ocr/src/main/java/com/moneymong/moneymong/ocr/view/OCRCameraPermissionDeniedView.kt
+++ b/feature/ocr/src/main/java/com/moneymong/moneymong/ocr/view/OCRCameraPermissionDeniedView.kt
@@ -5,7 +5,6 @@ import androidx.compose.foundation.background
import androidx.compose.foundation.layout.Arrangement
import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.Spacer
-import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.foundation.layout.height
import androidx.compose.foundation.layout.size
import androidx.compose.material3.Text
@@ -17,7 +16,7 @@ import androidx.compose.ui.res.painterResource
import androidx.compose.ui.text.style.TextAlign
import androidx.compose.ui.tooling.preview.Preview
import androidx.compose.ui.unit.dp
-import com.moneymong.moneymong.common.ui.noRippleClickable
+import com.moneymong.moneymong.ui.noRippleClickable
import com.moneymong.moneymong.design_system.R.*
import com.moneymong.moneymong.design_system.theme.Body3
import com.moneymong.moneymong.design_system.theme.Gray03
diff --git a/feature/ocr/src/main/java/com/moneymong/moneymong/ocr/view/OCRCaptureView.kt b/feature/ocr/src/main/java/com/moneymong/moneymong/ocr/view/OCRCaptureView.kt
index 23144364..89f35dfb 100644
--- a/feature/ocr/src/main/java/com/moneymong/moneymong/ocr/view/OCRCaptureView.kt
+++ b/feature/ocr/src/main/java/com/moneymong/moneymong/ocr/view/OCRCaptureView.kt
@@ -8,19 +8,15 @@ import androidx.camera.core.ImageCapture
import androidx.camera.core.ImageCaptureException
import androidx.camera.view.LifecycleCameraController
import androidx.camera.view.PreviewView
-import androidx.compose.foundation.Image
import androidx.compose.foundation.background
-import androidx.compose.foundation.border
import androidx.compose.foundation.layout.Arrangement
import androidx.compose.foundation.layout.Box
import androidx.compose.foundation.layout.Row
-import androidx.compose.foundation.layout.Spacer
import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.foundation.layout.fillMaxWidth
import androidx.compose.foundation.layout.height
import androidx.compose.foundation.layout.padding
import androidx.compose.foundation.layout.size
-import androidx.compose.foundation.layout.width
import androidx.compose.foundation.shape.RoundedCornerShape
import androidx.compose.material3.Icon
import androidx.compose.material3.Scaffold
@@ -40,11 +36,9 @@ import androidx.compose.ui.res.painterResource
import androidx.compose.ui.unit.dp
import androidx.compose.ui.viewinterop.AndroidView
import androidx.core.content.ContextCompat
-import com.moneymong.moneymong.common.ext.encodingBase64
+import com.moneymong.moneymong.android.util.encodingBase64
import com.moneymong.moneymong.design_system.R
import com.moneymong.moneymong.design_system.theme.Black
-import com.moneymong.moneymong.design_system.theme.Gray02
-import com.moneymong.moneymong.design_system.theme.Gray05
import com.moneymong.moneymong.design_system.theme.Gray10
import com.moneymong.moneymong.design_system.theme.Mint03
import com.moneymong.moneymong.ocr.util.bounceClick
diff --git a/feature/ocr/src/main/java/com/moneymong/moneymong/ocr/view/OCRHelperView.kt b/feature/ocr/src/main/java/com/moneymong/moneymong/ocr/view/OCRHelperView.kt
index 6f197315..d035971d 100644
--- a/feature/ocr/src/main/java/com/moneymong/moneymong/ocr/view/OCRHelperView.kt
+++ b/feature/ocr/src/main/java/com/moneymong/moneymong/ocr/view/OCRHelperView.kt
@@ -22,7 +22,7 @@ import androidx.compose.ui.res.painterResource
import androidx.compose.ui.text.style.TextAlign
import androidx.compose.ui.tooling.preview.Preview
import androidx.compose.ui.unit.dp
-import com.moneymong.moneymong.common.ui.noRippleClickable
+import com.moneymong.moneymong.ui.noRippleClickable
import com.moneymong.moneymong.design_system.R
import com.moneymong.moneymong.design_system.theme.Body4
import com.moneymong.moneymong.design_system.theme.Heading2
diff --git a/feature/ocr/src/main/java/com/moneymong/moneymong/ocr/view/OCRTopbarView.kt b/feature/ocr/src/main/java/com/moneymong/moneymong/ocr/view/OCRTopbarView.kt
index 23a813aa..acb78977 100644
--- a/feature/ocr/src/main/java/com/moneymong/moneymong/ocr/view/OCRTopbarView.kt
+++ b/feature/ocr/src/main/java/com/moneymong/moneymong/ocr/view/OCRTopbarView.kt
@@ -22,7 +22,7 @@ import androidx.compose.ui.graphics.toArgb
import androidx.compose.ui.res.painterResource
import androidx.compose.ui.tooling.preview.Preview
import androidx.compose.ui.unit.dp
-import com.moneymong.moneymong.common.ui.noRippleClickable
+import com.moneymong.moneymong.ui.noRippleClickable
import com.moneymong.moneymong.design_system.R.*
import com.moneymong.moneymong.design_system.theme.Mint03
diff --git a/feature/sign/build.gradle.kts b/feature/sign/build.gradle.kts
index 71c46f46..df23e10a 100644
--- a/feature/sign/build.gradle.kts
+++ b/feature/sign/build.gradle.kts
@@ -13,10 +13,12 @@ android {
}
dependencies {
+ implementation(projects.core.android)
implementation(projects.core.designSystem)
implementation(projects.core.common)
implementation(projects.core.model)
implementation(projects.core.network)
+ implementation(projects.core.ui)
implementation(projects.domain)
implementation(libs.androidx.core.ktx)
diff --git a/feature/sign/src/main/java/com/moneymong/moneymong/feature/sign/SignUpScreen.kt b/feature/sign/src/main/java/com/moneymong/moneymong/feature/sign/SignUpScreen.kt
index c6b97c11..b9ee6a49 100644
--- a/feature/sign/src/main/java/com/moneymong/moneymong/feature/sign/SignUpScreen.kt
+++ b/feature/sign/src/main/java/com/moneymong/moneymong/feature/sign/SignUpScreen.kt
@@ -32,7 +32,7 @@ import androidx.compose.ui.text.input.TextFieldValue
import androidx.compose.ui.text.style.TextAlign
import androidx.compose.ui.unit.dp
import androidx.hilt.navigation.compose.hiltViewModel
-import com.moneymong.moneymong.common.ui.noRippleClickable
+import com.moneymong.moneymong.ui.noRippleClickable
import com.moneymong.moneymong.design_system.R
import com.moneymong.moneymong.design_system.component.selection.MDSSelection
import com.moneymong.moneymong.design_system.component.textfield.MDSTextField
diff --git a/feature/sign/src/main/java/com/moneymong/moneymong/feature/sign/item/UnivItem.kt b/feature/sign/src/main/java/com/moneymong/moneymong/feature/sign/item/UnivItem.kt
index 2a59d3b6..104c41ec 100644
--- a/feature/sign/src/main/java/com/moneymong/moneymong/feature/sign/item/UnivItem.kt
+++ b/feature/sign/src/main/java/com/moneymong/moneymong/feature/sign/item/UnivItem.kt
@@ -13,7 +13,7 @@ import androidx.compose.runtime.Composable
import androidx.compose.ui.Modifier
import androidx.compose.ui.res.painterResource
import androidx.compose.ui.unit.dp
-import com.moneymong.moneymong.common.ui.noRippleClickable
+import com.moneymong.moneymong.ui.noRippleClickable
import com.moneymong.moneymong.design_system.R
import com.moneymong.moneymong.design_system.theme.Black
import com.moneymong.moneymong.design_system.theme.Blue04
diff --git a/feature/sign/src/main/java/com/moneymong/moneymong/feature/sign/sideeffect/LoginSideEffect.kt b/feature/sign/src/main/java/com/moneymong/moneymong/feature/sign/sideeffect/LoginSideEffect.kt
index cb69e27f..c674ca3c 100644
--- a/feature/sign/src/main/java/com/moneymong/moneymong/feature/sign/sideeffect/LoginSideEffect.kt
+++ b/feature/sign/src/main/java/com/moneymong/moneymong/feature/sign/sideeffect/LoginSideEffect.kt
@@ -1,7 +1,7 @@
package com.moneymong.moneymong.feature.sign.sideeffect
-import com.moneymong.moneymong.common.base.SideEffect
+import com.moneymong.moneymong.android.SideEffect
-sealed interface LoginSideEffect : SideEffect {
+sealed interface LoginSideEffect : com.moneymong.moneymong.android.SideEffect {
}
\ No newline at end of file
diff --git a/feature/sign/src/main/java/com/moneymong/moneymong/feature/sign/sideeffect/SignCompleteSideEffect.kt b/feature/sign/src/main/java/com/moneymong/moneymong/feature/sign/sideeffect/SignCompleteSideEffect.kt
index accbcb0e..85740349 100644
--- a/feature/sign/src/main/java/com/moneymong/moneymong/feature/sign/sideeffect/SignCompleteSideEffect.kt
+++ b/feature/sign/src/main/java/com/moneymong/moneymong/feature/sign/sideeffect/SignCompleteSideEffect.kt
@@ -1,6 +1,6 @@
package com.moneymong.moneymong.feature.sign.sideeffect
-import com.moneymong.moneymong.common.base.SideEffect
+import com.moneymong.moneymong.android.SideEffect
-sealed interface SignCompleteSideEffect : SideEffect {
+sealed interface SignCompleteSideEffect : com.moneymong.moneymong.android.SideEffect {
}
\ No newline at end of file
diff --git a/feature/sign/src/main/java/com/moneymong/moneymong/feature/sign/sideeffect/SignUpSideEffect.kt b/feature/sign/src/main/java/com/moneymong/moneymong/feature/sign/sideeffect/SignUpSideEffect.kt
index 30ef0232..d6d93709 100644
--- a/feature/sign/src/main/java/com/moneymong/moneymong/feature/sign/sideeffect/SignUpSideEffect.kt
+++ b/feature/sign/src/main/java/com/moneymong/moneymong/feature/sign/sideeffect/SignUpSideEffect.kt
@@ -1,8 +1,8 @@
package com.moneymong.moneymong.feature.sign.sideeffect
-import com.moneymong.moneymong.common.base.SideEffect
+import com.moneymong.moneymong.android.SideEffect
-sealed class SignUpSideEffect : SideEffect {
+sealed class SignUpSideEffect : com.moneymong.moneymong.android.SideEffect {
data class CreateUniversityApi(
val universityName : String,
val grade: Int
diff --git a/feature/sign/src/main/java/com/moneymong/moneymong/feature/sign/sideeffect/SignUpUniversitySideEffect.kt b/feature/sign/src/main/java/com/moneymong/moneymong/feature/sign/sideeffect/SignUpUniversitySideEffect.kt
index 4de12bf2..a4a3fc55 100644
--- a/feature/sign/src/main/java/com/moneymong/moneymong/feature/sign/sideeffect/SignUpUniversitySideEffect.kt
+++ b/feature/sign/src/main/java/com/moneymong/moneymong/feature/sign/sideeffect/SignUpUniversitySideEffect.kt
@@ -1,6 +1,6 @@
package com.moneymong.moneymong.feature.sign.sideeffect
-import com.moneymong.moneymong.common.base.SideEffect
+import com.moneymong.moneymong.android.SideEffect
-sealed class SignUpUniversitySideEffect : SideEffect {
+sealed class SignUpUniversitySideEffect : com.moneymong.moneymong.android.SideEffect {
}
\ No newline at end of file
diff --git a/feature/sign/src/main/java/com/moneymong/moneymong/feature/sign/sideeffect/SplashSideEffect.kt b/feature/sign/src/main/java/com/moneymong/moneymong/feature/sign/sideeffect/SplashSideEffect.kt
index 3cb8b37c..a2adf97d 100644
--- a/feature/sign/src/main/java/com/moneymong/moneymong/feature/sign/sideeffect/SplashSideEffect.kt
+++ b/feature/sign/src/main/java/com/moneymong/moneymong/feature/sign/sideeffect/SplashSideEffect.kt
@@ -1,6 +1,6 @@
package com.moneymong.moneymong.feature.sign.sideeffect
-import com.moneymong.moneymong.common.base.SideEffect
+import com.moneymong.moneymong.android.SideEffect
-sealed interface SplashSideEffect : SideEffect {
+sealed interface SplashSideEffect : com.moneymong.moneymong.android.SideEffect {
}
\ No newline at end of file
diff --git a/feature/sign/src/main/java/com/moneymong/moneymong/feature/sign/state/LoginState.kt b/feature/sign/src/main/java/com/moneymong/moneymong/feature/sign/state/LoginState.kt
index 1af47a83..eeb43807 100644
--- a/feature/sign/src/main/java/com/moneymong/moneymong/feature/sign/state/LoginState.kt
+++ b/feature/sign/src/main/java/com/moneymong/moneymong/feature/sign/state/LoginState.kt
@@ -1,10 +1,10 @@
package com.moneymong.moneymong.feature.sign.state
-import com.moneymong.moneymong.common.base.State
+import com.moneymong.moneymong.android.State
data class LoginState(
val isClickable: Boolean = false,
val hasAnyAgency: Boolean? = null,
val visibleError : Boolean = false,
val errorMessage : String = ""
-) : State
\ No newline at end of file
+) : com.moneymong.moneymong.android.State
\ No newline at end of file
diff --git a/feature/sign/src/main/java/com/moneymong/moneymong/feature/sign/state/SignCompleteState.kt b/feature/sign/src/main/java/com/moneymong/moneymong/feature/sign/state/SignCompleteState.kt
index 55725d40..1fef7073 100644
--- a/feature/sign/src/main/java/com/moneymong/moneymong/feature/sign/state/SignCompleteState.kt
+++ b/feature/sign/src/main/java/com/moneymong/moneymong/feature/sign/state/SignCompleteState.kt
@@ -1,7 +1,7 @@
package com.moneymong.moneymong.feature.sign.state
-import com.moneymong.moneymong.common.base.State
+import com.moneymong.moneymong.android.State
data class SignCompleteState (
val isCompleteBtnClicked : Boolean = false
-) : State
\ No newline at end of file
+) : com.moneymong.moneymong.android.State
\ No newline at end of file
diff --git a/feature/sign/src/main/java/com/moneymong/moneymong/feature/sign/state/SignUpState.kt b/feature/sign/src/main/java/com/moneymong/moneymong/feature/sign/state/SignUpState.kt
index 1145e682..82d6b65f 100644
--- a/feature/sign/src/main/java/com/moneymong/moneymong/feature/sign/state/SignUpState.kt
+++ b/feature/sign/src/main/java/com/moneymong/moneymong/feature/sign/state/SignUpState.kt
@@ -3,7 +3,7 @@ package com.moneymong.moneymong.feature.sign.state
import androidx.compose.ui.text.input.TextFieldValue
import androidx.compose.ui.unit.Dp
import androidx.compose.ui.unit.dp
-import com.moneymong.moneymong.common.base.State
+import com.moneymong.moneymong.android.State
import com.moneymong.moneymong.feature.sign.util.AgencyType
import com.moneymong.moneymong.feature.sign.util.Grade
import com.moneymong.moneymong.model.sign.UniversitiesResponse
@@ -39,4 +39,4 @@ data class SignUpState(
val isButtonVisible : Boolean = false,
- ) : State
\ No newline at end of file
+ ) : com.moneymong.moneymong.android.State
\ No newline at end of file
diff --git a/feature/sign/src/main/java/com/moneymong/moneymong/feature/sign/state/SignUpUniversityState.kt b/feature/sign/src/main/java/com/moneymong/moneymong/feature/sign/state/SignUpUniversityState.kt
index d5f2053c..7f48784a 100644
--- a/feature/sign/src/main/java/com/moneymong/moneymong/feature/sign/state/SignUpUniversityState.kt
+++ b/feature/sign/src/main/java/com/moneymong/moneymong/feature/sign/state/SignUpUniversityState.kt
@@ -3,7 +3,7 @@ package com.moneymong.moneymong.feature.sign.state
import androidx.compose.ui.text.input.TextFieldValue
import androidx.compose.ui.unit.Dp
import androidx.compose.ui.unit.dp
-import com.moneymong.moneymong.common.base.State
+import com.moneymong.moneymong.android.State
import com.moneymong.moneymong.feature.sign.util.AgencyType
import com.moneymong.moneymong.model.sign.UniversitiesResponse
@@ -32,4 +32,4 @@ data class SignUpUniversityState (
val isUnivCreated : Boolean = false,
val isAgencyCreated : Boolean = false,
-): State
\ No newline at end of file
+): com.moneymong.moneymong.android.State
\ No newline at end of file
diff --git a/feature/sign/src/main/java/com/moneymong/moneymong/feature/sign/state/SplashState.kt b/feature/sign/src/main/java/com/moneymong/moneymong/feature/sign/state/SplashState.kt
index 25290d82..93989097 100644
--- a/feature/sign/src/main/java/com/moneymong/moneymong/feature/sign/state/SplashState.kt
+++ b/feature/sign/src/main/java/com/moneymong/moneymong/feature/sign/state/SplashState.kt
@@ -1,8 +1,8 @@
package com.moneymong.moneymong.feature.sign.state
-import com.moneymong.moneymong.common.base.State
+import com.moneymong.moneymong.android.State
data class SplashState(
val startAnimation: Boolean = false,
val isTokenValid: Boolean? = null
-) : State
\ No newline at end of file
+) : com.moneymong.moneymong.android.State
\ No newline at end of file
diff --git a/feature/sign/src/main/java/com/moneymong/moneymong/feature/sign/view/SignUpUniversity.kt b/feature/sign/src/main/java/com/moneymong/moneymong/feature/sign/view/SignUpUniversity.kt
index 3e6ea7c9..0403e004 100644
--- a/feature/sign/src/main/java/com/moneymong/moneymong/feature/sign/view/SignUpUniversity.kt
+++ b/feature/sign/src/main/java/com/moneymong/moneymong/feature/sign/view/SignUpUniversity.kt
@@ -24,7 +24,7 @@ import androidx.compose.ui.res.painterResource
import androidx.compose.ui.text.style.TextAlign
import androidx.compose.ui.unit.dp
import androidx.hilt.navigation.compose.hiltViewModel
-import com.moneymong.moneymong.common.ui.noRippleClickable
+import com.moneymong.moneymong.ui.noRippleClickable
import com.moneymong.moneymong.design_system.R
import com.moneymong.moneymong.design_system.error.ErrorDialog
import com.moneymong.moneymong.design_system.error.ErrorScreen
diff --git a/feature/sign/src/main/java/com/moneymong/moneymong/feature/sign/viewmodel/LoginViewModel.kt b/feature/sign/src/main/java/com/moneymong/moneymong/feature/sign/viewmodel/LoginViewModel.kt
index 8d0a57d0..88fa0ac2 100644
--- a/feature/sign/src/main/java/com/moneymong/moneymong/feature/sign/viewmodel/LoginViewModel.kt
+++ b/feature/sign/src/main/java/com/moneymong/moneymong/feature/sign/viewmodel/LoginViewModel.kt
@@ -1,7 +1,7 @@
package com.moneymong.moneymong.feature.sign.viewmodel
import androidx.lifecycle.viewModelScope
-import com.moneymong.moneymong.common.base.BaseViewModel
+import com.moneymong.moneymong.android.BaseViewModel
import com.moneymong.moneymong.domain.usecase.agency.FetchMyAgencyListUseCase
import com.moneymong.moneymong.domain.usecase.token.PostAccessTokenUseCase
import com.moneymong.moneymong.feature.sign.sideeffect.LoginSideEffect
diff --git a/feature/sign/src/main/java/com/moneymong/moneymong/feature/sign/viewmodel/SignCompleteViewModel.kt b/feature/sign/src/main/java/com/moneymong/moneymong/feature/sign/viewmodel/SignCompleteViewModel.kt
index 8f93c8d3..aa8ca0e8 100644
--- a/feature/sign/src/main/java/com/moneymong/moneymong/feature/sign/viewmodel/SignCompleteViewModel.kt
+++ b/feature/sign/src/main/java/com/moneymong/moneymong/feature/sign/viewmodel/SignCompleteViewModel.kt
@@ -1,15 +1,13 @@
package com.moneymong.moneymong.feature.sign.viewmodel
-import com.moneymong.moneymong.common.base.BaseViewModel
+import com.moneymong.moneymong.android.BaseViewModel
import com.moneymong.moneymong.feature.sign.sideeffect.SignCompleteSideEffect
import com.moneymong.moneymong.feature.sign.state.SignCompleteState
import dagger.hilt.android.lifecycle.HiltViewModel
-import org.orbitmvi.orbit.syntax.simple.intent
-import org.orbitmvi.orbit.syntax.simple.reduce
import javax.inject.Inject
@HiltViewModel
class SignCompleteViewModel @Inject constructor() :
- BaseViewModel(SignCompleteState()) {
+ com.moneymong.moneymong.android.BaseViewModel(SignCompleteState()) {
}
\ No newline at end of file
diff --git a/feature/sign/src/main/java/com/moneymong/moneymong/feature/sign/viewmodel/SignUpUniversityViewModel.kt b/feature/sign/src/main/java/com/moneymong/moneymong/feature/sign/viewmodel/SignUpUniversityViewModel.kt
index fe034780..d0b5396a 100644
--- a/feature/sign/src/main/java/com/moneymong/moneymong/feature/sign/viewmodel/SignUpUniversityViewModel.kt
+++ b/feature/sign/src/main/java/com/moneymong/moneymong/feature/sign/viewmodel/SignUpUniversityViewModel.kt
@@ -1,11 +1,9 @@
package com.moneymong.moneymong.feature.sign.viewmodel
-import android.view.View
import androidx.compose.ui.text.input.TextFieldValue
import androidx.compose.ui.unit.Dp
-import androidx.lifecycle.ViewModel
import androidx.lifecycle.viewModelScope
-import com.moneymong.moneymong.common.base.BaseViewModel
+import com.moneymong.moneymong.android.BaseViewModel
import com.moneymong.moneymong.domain.usecase.agency.RegisterAgencyUseCase
import com.moneymong.moneymong.domain.usecase.signup.SchoolInfoUseCase
import com.moneymong.moneymong.domain.usecase.university.CreateUniversityUseCase
@@ -29,7 +27,7 @@ class SignUpUniversityViewModel @Inject constructor(
private val registerAgencyUseCase : RegisterAgencyUseCase,
private val schoolInfoUseCase : SchoolInfoUseCase,
private val searchUniversityUseCase: SearchUniversityUseCase
-) : BaseViewModel(SignUpUniversityState()){
+) : com.moneymong.moneymong.android.BaseViewModel(SignUpUniversityState()){
fun searchUniv(searchQuery: String) = intent {
searchUniversityUseCase(searchQuery)
diff --git a/feature/sign/src/main/java/com/moneymong/moneymong/feature/sign/viewmodel/SignUpViewModel.kt b/feature/sign/src/main/java/com/moneymong/moneymong/feature/sign/viewmodel/SignUpViewModel.kt
index 45f4a460..cdb383cb 100644
--- a/feature/sign/src/main/java/com/moneymong/moneymong/feature/sign/viewmodel/SignUpViewModel.kt
+++ b/feature/sign/src/main/java/com/moneymong/moneymong/feature/sign/viewmodel/SignUpViewModel.kt
@@ -3,7 +3,7 @@ package com.moneymong.moneymong.feature.sign.viewmodel
import androidx.compose.ui.text.input.TextFieldValue
import androidx.compose.ui.unit.Dp
import androidx.lifecycle.viewModelScope
-import com.moneymong.moneymong.common.base.BaseViewModel
+import com.moneymong.moneymong.android.BaseViewModel
import com.moneymong.moneymong.domain.usecase.agency.RegisterAgencyUseCase
import com.moneymong.moneymong.domain.usecase.signup.SchoolInfoUseCase
import com.moneymong.moneymong.domain.usecase.university.CreateUniversityUseCase
@@ -23,7 +23,7 @@ class SignUpViewModel @Inject constructor(
private val createUniversityUseCase: CreateUniversityUseCase,
private val registerAgencyUseCase: RegisterAgencyUseCase,
private val schoolInfoUseCase: SchoolInfoUseCase,
-) : BaseViewModel(SignUpState()) {
+) : com.moneymong.moneymong.android.BaseViewModel(SignUpState()) {
fun createUniv(universityName: String, grade: Int) = intent {
val body = UnivRequest(universityName, grade)
createUniversityUseCase(body)
diff --git a/feature/sign/src/main/java/com/moneymong/moneymong/feature/sign/viewmodel/SplashViewModel.kt b/feature/sign/src/main/java/com/moneymong/moneymong/feature/sign/viewmodel/SplashViewModel.kt
index 3ce6349c..347dd04c 100644
--- a/feature/sign/src/main/java/com/moneymong/moneymong/feature/sign/viewmodel/SplashViewModel.kt
+++ b/feature/sign/src/main/java/com/moneymong/moneymong/feature/sign/viewmodel/SplashViewModel.kt
@@ -1,7 +1,7 @@
package com.moneymong.moneymong.feature.sign.viewmodel
import android.util.Log
-import com.moneymong.moneymong.common.base.BaseViewModel
+import com.moneymong.moneymong.android.BaseViewModel
import com.moneymong.moneymong.domain.usecase.token.TokenUseCase
import com.moneymong.moneymong.feature.sign.sideeffect.SplashSideEffect
import com.moneymong.moneymong.feature.sign.state.SplashState
@@ -13,7 +13,7 @@ import javax.inject.Inject
@HiltViewModel
class SplashViewModel @Inject constructor(
private val tokenUseCase: TokenUseCase
-) : BaseViewModel(
+) : com.moneymong.moneymong.android.BaseViewModel(
SplashState()
) {
diff --git a/settings.gradle.kts b/settings.gradle.kts
index 1295ff85..f064f25c 100644
--- a/settings.gradle.kts
+++ b/settings.gradle.kts
@@ -22,6 +22,8 @@ enableFeaturePreview("TYPESAFE_PROJECT_ACCESSORS")
include(":app")
include(":data")
include(":domain")
+include(":core:analytics")
+include(":core:android")
include(":core:design-system")
include(":core:ui")
include(":core:common")