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")