From f2c8982a0640d67ac80545fd94dd90467e5e2a4a Mon Sep 17 00:00:00 2001 From: Thirfir Date: Thu, 28 Aug 2025 11:30:55 +0900 Subject: [PATCH 01/91] =?UTF-8?q?chore:=20core:social=20=EB=AA=A8=EB=93=88?= =?UTF-8?q?=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- core/social/.gitignore | 1 + core/social/build.gradle.kts | 43 +++++++++++++++++++ core/social/consumer-rules.pro | 0 core/social/proguard-rules.pro | 21 +++++++++ .../core/social/ExampleInstrumentedTest.kt | 24 +++++++++++ core/social/src/main/AndroidManifest.xml | 4 ++ .../com/acon/core/social/ExampleUnitTest.kt | 17 ++++++++ settings.gradle.kts | 1 + 8 files changed, 111 insertions(+) create mode 100644 core/social/.gitignore create mode 100644 core/social/build.gradle.kts create mode 100644 core/social/consumer-rules.pro create mode 100644 core/social/proguard-rules.pro create mode 100644 core/social/src/androidTest/java/com/acon/core/social/ExampleInstrumentedTest.kt create mode 100644 core/social/src/main/AndroidManifest.xml create mode 100644 core/social/src/test/java/com/acon/core/social/ExampleUnitTest.kt diff --git a/core/social/.gitignore b/core/social/.gitignore new file mode 100644 index 000000000..42afabfd2 --- /dev/null +++ b/core/social/.gitignore @@ -0,0 +1 @@ +/build \ No newline at end of file diff --git a/core/social/build.gradle.kts b/core/social/build.gradle.kts new file mode 100644 index 000000000..55a31d8a1 --- /dev/null +++ b/core/social/build.gradle.kts @@ -0,0 +1,43 @@ +plugins { + alias(libs.plugins.android.library) + alias(libs.plugins.kotlin.android) +} + +android { + namespace = "com.acon.core.social" + compileSdk = 35 + + defaultConfig { + minSdk = 26 + + testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" + consumerProguardFiles("consumer-rules.pro") + } + + buildTypes { + release { + isMinifyEnabled = false + proguardFiles( + getDefaultProguardFile("proguard-android-optimize.txt"), + "proguard-rules.pro" + ) + } + } + compileOptions { + sourceCompatibility = JavaVersion.VERSION_11 + targetCompatibility = JavaVersion.VERSION_11 + } + kotlinOptions { + jvmTarget = "11" + } +} + +dependencies { + + implementation(libs.androidx.core.ktx) + implementation(libs.androidx.appcompat) + implementation(libs.material) + testImplementation(libs.junit4) + androidTestImplementation(libs.androidx.junit) + androidTestImplementation(libs.androidx.espresso.core) +} \ No newline at end of file diff --git a/core/social/consumer-rules.pro b/core/social/consumer-rules.pro new file mode 100644 index 000000000..e69de29bb diff --git a/core/social/proguard-rules.pro b/core/social/proguard-rules.pro new file mode 100644 index 000000000..481bb4348 --- /dev/null +++ b/core/social/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/social/src/androidTest/java/com/acon/core/social/ExampleInstrumentedTest.kt b/core/social/src/androidTest/java/com/acon/core/social/ExampleInstrumentedTest.kt new file mode 100644 index 000000000..ed0b861aa --- /dev/null +++ b/core/social/src/androidTest/java/com/acon/core/social/ExampleInstrumentedTest.kt @@ -0,0 +1,24 @@ +package com.acon.core.social + +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.acon.core.social.test", appContext.packageName) + } +} \ No newline at end of file diff --git a/core/social/src/main/AndroidManifest.xml b/core/social/src/main/AndroidManifest.xml new file mode 100644 index 000000000..a5918e68a --- /dev/null +++ b/core/social/src/main/AndroidManifest.xml @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/core/social/src/test/java/com/acon/core/social/ExampleUnitTest.kt b/core/social/src/test/java/com/acon/core/social/ExampleUnitTest.kt new file mode 100644 index 000000000..0b740b49c --- /dev/null +++ b/core/social/src/test/java/com/acon/core/social/ExampleUnitTest.kt @@ -0,0 +1,17 @@ +package com.acon.core.social + +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/settings.gradle.kts b/settings.gradle.kts index 1550dfbd1..fa6d04aa7 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -52,3 +52,4 @@ include(":core:model") include(":core:navigation") include(":provider:ads-impl") include(":core:launcher") +include(":core:social") From 4da731f25c62a449d885898fd91b224447d9d28c Mon Sep 17 00:00:00 2001 From: Thirfir Date: Thu, 28 Aug 2025 11:39:02 +0900 Subject: [PATCH 02/91] =?UTF-8?q?feat:=20=EA=B5=AC=EA=B8=80=20=EC=86=8C?= =?UTF-8?q?=EC=85=9C=20=EB=A1=9C=EA=B7=B8=EC=9D=B8=20=EB=A1=9C=EC=A7=81=20?= =?UTF-8?q?=EB=B6=84=EB=A6=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../core/model/model/user/CredentialCode.kt | 6 ++ .../core/model/model/user/SocialPlatform.kt | 5 ++ core/social/build.gradle.kts | 43 ++++--------- .../core/social/client/GoogleAuthClient.kt | 62 +++++++++++++++++++ .../core/social/client/SocialAuthClient.kt | 12 ++++ .../acon/core/social/di/SocialClientModule.kt | 27 ++++++++ 6 files changed, 125 insertions(+), 30 deletions(-) create mode 100644 core/model/src/main/java/com/acon/acon/core/model/model/user/CredentialCode.kt create mode 100644 core/model/src/main/java/com/acon/acon/core/model/model/user/SocialPlatform.kt create mode 100644 core/social/src/main/kotlin/com/acon/core/social/client/GoogleAuthClient.kt create mode 100644 core/social/src/main/kotlin/com/acon/core/social/client/SocialAuthClient.kt create mode 100644 core/social/src/main/kotlin/com/acon/core/social/di/SocialClientModule.kt diff --git a/core/model/src/main/java/com/acon/acon/core/model/model/user/CredentialCode.kt b/core/model/src/main/java/com/acon/acon/core/model/model/user/CredentialCode.kt new file mode 100644 index 000000000..1eb6ba1a7 --- /dev/null +++ b/core/model/src/main/java/com/acon/acon/core/model/model/user/CredentialCode.kt @@ -0,0 +1,6 @@ +package com.acon.acon.core.model.model.user + +@JvmInline +value class CredentialCode( + val value: String +) \ No newline at end of file diff --git a/core/model/src/main/java/com/acon/acon/core/model/model/user/SocialPlatform.kt b/core/model/src/main/java/com/acon/acon/core/model/model/user/SocialPlatform.kt new file mode 100644 index 000000000..e6e472ff2 --- /dev/null +++ b/core/model/src/main/java/com/acon/acon/core/model/model/user/SocialPlatform.kt @@ -0,0 +1,5 @@ +package com.acon.acon.core.model.model.user + +enum class SocialPlatform { + GOOGLE +} \ No newline at end of file diff --git a/core/social/build.gradle.kts b/core/social/build.gradle.kts index 55a31d8a1..fd0c63fd8 100644 --- a/core/social/build.gradle.kts +++ b/core/social/build.gradle.kts @@ -1,43 +1,26 @@ +import java.util.Properties +import kotlin.apply + plugins { - alias(libs.plugins.android.library) - alias(libs.plugins.kotlin.android) + alias(libs.plugins.acon.android.library) + alias(libs.plugins.acon.android.library.hilt) +} + +val localProperties = Properties().apply { + load(project.rootProject.file("local.properties").inputStream()) } android { namespace = "com.acon.core.social" - compileSdk = 35 defaultConfig { - minSdk = 26 - - testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" - consumerProguardFiles("consumer-rules.pro") - } - - buildTypes { - release { - isMinifyEnabled = false - proguardFiles( - getDefaultProguardFile("proguard-android-optimize.txt"), - "proguard-rules.pro" - ) - } - } - compileOptions { - sourceCompatibility = JavaVersion.VERSION_11 - targetCompatibility = JavaVersion.VERSION_11 - } - kotlinOptions { - jvmTarget = "11" + buildConfigField("String", "GOOGLE_CLIENT_ID", "\"${localProperties["GOOGLE_CLIENT_ID"]}\"") } } dependencies { - implementation(libs.androidx.core.ktx) - implementation(libs.androidx.appcompat) - implementation(libs.material) - testImplementation(libs.junit4) - androidTestImplementation(libs.androidx.junit) - androidTestImplementation(libs.androidx.espresso.core) + implementation(projects.core.model) + + implementation(libs.bundles.googleSignIn) } \ No newline at end of file diff --git a/core/social/src/main/kotlin/com/acon/core/social/client/GoogleAuthClient.kt b/core/social/src/main/kotlin/com/acon/core/social/client/GoogleAuthClient.kt new file mode 100644 index 000000000..ace092a12 --- /dev/null +++ b/core/social/src/main/kotlin/com/acon/core/social/client/GoogleAuthClient.kt @@ -0,0 +1,62 @@ +package com.acon.core.social.client + +import android.content.Context +import androidx.credentials.CredentialManager +import androidx.credentials.CustomCredential +import androidx.credentials.GetCredentialRequest +import androidx.credentials.PasswordCredential +import androidx.credentials.PublicKeyCredential +import com.acon.acon.core.model.model.user.CredentialCode +import com.google.android.libraries.identity.googleid.GetSignInWithGoogleOption +import com.google.android.libraries.identity.googleid.GoogleIdTokenCredential +import dagger.hilt.android.qualifiers.ActivityContext +import timber.log.Timber +import javax.inject.Inject + +class GoogleAuthClient @Inject constructor() : SocialAuthClient { + + override suspend fun getCredentialCode(@ActivityContext context: Context): CredentialCode { + val credentialOption: GetSignInWithGoogleOption = + GetSignInWithGoogleOption.Builder(BuildConfig.GOOGLE_CLIENT_ID).build() + + val credentialManager: CredentialManager = CredentialManager.create(context) + + val request = GetCredentialRequest.Builder() + .addCredentialOption(credentialOption) + .build() + + val credentialResponse = credentialManager.getCredential( + request = request, + context = context + ) + + when (val credential = credentialResponse.credential) { + is CustomCredential -> { + Timber.d("Credential is CustomCredential. Type: ${credential.type}") + if (credential.type == GoogleIdTokenCredential.TYPE_GOOGLE_ID_TOKEN_CREDENTIAL) { + val idToken = GoogleIdTokenCredential.createFrom(credential.data).idToken + return CredentialCode(idToken) + } else { + Timber.e("Unknown credential type") + throw UnsupportedOperationException("지원되지 않거나 알 수 없는 인증 유형입니다.") + } + } + + is PublicKeyCredential -> { + Timber.e("Credential is PublicKeyCredential. Unsupported.") + throw UnsupportedOperationException("지원되지 않는 사용자 인증 유형입니다.") + } + + is PasswordCredential -> { + Timber.e("Credential is PasswordCredential. Unsupported.") + throw UnsupportedOperationException("지원되지 않는 사용자 인증 유형입니다.") + } + + else -> { + Timber.e("Unknown credential class: ${credential::class.java}") + throw UnsupportedOperationException("지원되지 않거나 알 수 없는 인증 유형입니다.") + } + } + } +} + diff --git a/core/social/src/main/kotlin/com/acon/core/social/client/SocialAuthClient.kt b/core/social/src/main/kotlin/com/acon/core/social/client/SocialAuthClient.kt new file mode 100644 index 000000000..4f701ae78 --- /dev/null +++ b/core/social/src/main/kotlin/com/acon/core/social/client/SocialAuthClient.kt @@ -0,0 +1,12 @@ +package com.acon.core.social.client + +import android.content.Context +import com.acon.acon.core.model.model.user.CredentialCode +import dagger.hilt.android.qualifiers.ActivityContext + +interface SocialAuthClient { + + suspend fun getCredentialCode( + @ActivityContext context: Context + ) : CredentialCode +} \ No newline at end of file diff --git a/core/social/src/main/kotlin/com/acon/core/social/di/SocialClientModule.kt b/core/social/src/main/kotlin/com/acon/core/social/di/SocialClientModule.kt new file mode 100644 index 000000000..6c1a9415c --- /dev/null +++ b/core/social/src/main/kotlin/com/acon/core/social/di/SocialClientModule.kt @@ -0,0 +1,27 @@ +package com.acon.core.social.di + +import com.acon.acon.core.model.model.user.SocialPlatform +import com.acon.core.social.client.GoogleAuthClient +import com.acon.core.social.client.SocialAuthClient +import dagger.Module +import dagger.Provides +import dagger.hilt.InstallIn +import dagger.hilt.components.SingletonComponent +import javax.inject.Singleton + +@Module +@InstallIn(SingletonComponent::class) +object SocialClientModule { + + @Provides + @Singleton + fun providesGoogleAuthClient() = GoogleAuthClient() + + @Provides + @Singleton + fun providesSocialAuthClients( + googleAuthClient: GoogleAuthClient + ): Map = mapOf( + SocialPlatform.GOOGLE to googleAuthClient + ) +} \ No newline at end of file From 132481cf88060eefdf5123d97e66d069679c6b73 Mon Sep 17 00:00:00 2001 From: Thirfir Date: Thu, 28 Aug 2025 11:40:42 +0900 Subject: [PATCH 03/91] =?UTF-8?q?chore:=20core:data=20=EB=AA=A8=EB=93=88?= =?UTF-8?q?=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- core/data/.gitignore | 1 + core/data/build.gradle.kts | 43 +++++++++++++++++++ core/data/consumer-rules.pro | 0 core/data/proguard-rules.pro | 21 +++++++++ .../acon/core/data/ExampleInstrumentedTest.kt | 24 +++++++++++ core/data/src/main/AndroidManifest.xml | 4 ++ .../com/acon/core/data/ExampleUnitTest.kt | 17 ++++++++ settings.gradle.kts | 1 + 8 files changed, 111 insertions(+) create mode 100644 core/data/.gitignore create mode 100644 core/data/build.gradle.kts create mode 100644 core/data/consumer-rules.pro create mode 100644 core/data/proguard-rules.pro create mode 100644 core/data/src/androidTest/java/com/acon/core/data/ExampleInstrumentedTest.kt create mode 100644 core/data/src/main/AndroidManifest.xml create mode 100644 core/data/src/test/java/com/acon/core/data/ExampleUnitTest.kt diff --git a/core/data/.gitignore b/core/data/.gitignore new file mode 100644 index 000000000..42afabfd2 --- /dev/null +++ b/core/data/.gitignore @@ -0,0 +1 @@ +/build \ No newline at end of file diff --git a/core/data/build.gradle.kts b/core/data/build.gradle.kts new file mode 100644 index 000000000..3444a74d6 --- /dev/null +++ b/core/data/build.gradle.kts @@ -0,0 +1,43 @@ +plugins { + alias(libs.plugins.android.library) + alias(libs.plugins.kotlin.android) +} + +android { + namespace = "com.acon.core.data" + compileSdk = 35 + + defaultConfig { + minSdk = 26 + + testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" + consumerProguardFiles("consumer-rules.pro") + } + + buildTypes { + release { + isMinifyEnabled = false + proguardFiles( + getDefaultProguardFile("proguard-android-optimize.txt"), + "proguard-rules.pro" + ) + } + } + compileOptions { + sourceCompatibility = JavaVersion.VERSION_11 + targetCompatibility = JavaVersion.VERSION_11 + } + kotlinOptions { + jvmTarget = "11" + } +} + +dependencies { + + implementation(libs.androidx.core.ktx) + implementation(libs.androidx.appcompat) + implementation(libs.material) + testImplementation(libs.junit4) + androidTestImplementation(libs.androidx.junit) + androidTestImplementation(libs.androidx.espresso.core) +} \ No newline at end of file diff --git a/core/data/consumer-rules.pro b/core/data/consumer-rules.pro new file mode 100644 index 000000000..e69de29bb diff --git a/core/data/proguard-rules.pro b/core/data/proguard-rules.pro new file mode 100644 index 000000000..481bb4348 --- /dev/null +++ b/core/data/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/data/src/androidTest/java/com/acon/core/data/ExampleInstrumentedTest.kt b/core/data/src/androidTest/java/com/acon/core/data/ExampleInstrumentedTest.kt new file mode 100644 index 000000000..b0610e6cb --- /dev/null +++ b/core/data/src/androidTest/java/com/acon/core/data/ExampleInstrumentedTest.kt @@ -0,0 +1,24 @@ +package com.acon.core.data + +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.acon.core.data.test", appContext.packageName) + } +} \ No newline at end of file diff --git a/core/data/src/main/AndroidManifest.xml b/core/data/src/main/AndroidManifest.xml new file mode 100644 index 000000000..a5918e68a --- /dev/null +++ b/core/data/src/main/AndroidManifest.xml @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/core/data/src/test/java/com/acon/core/data/ExampleUnitTest.kt b/core/data/src/test/java/com/acon/core/data/ExampleUnitTest.kt new file mode 100644 index 000000000..daa7dd7eb --- /dev/null +++ b/core/data/src/test/java/com/acon/core/data/ExampleUnitTest.kt @@ -0,0 +1,17 @@ +package com.acon.core.data + +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/settings.gradle.kts b/settings.gradle.kts index fa6d04aa7..22461c7e1 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -53,3 +53,4 @@ include(":core:navigation") include(":provider:ads-impl") include(":core:launcher") include(":core:social") +include(":core:data") From 875d20fbe627e74e420b68466eb618b61b043bad Mon Sep 17 00:00:00 2001 From: Thirfir Date: Thu, 28 Aug 2025 14:04:57 +0900 Subject: [PATCH 04/91] =?UTF-8?q?chore:=20:data=20->=20:core:data=20?= =?UTF-8?q?=EB=AA=A8=EB=93=88=20=EC=9D=B4=EB=8F=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/build.gradle.kts | 2 +- core/data/build.gradle.kts | 72 +++++++++++-------- .../com/acon/core}/data/api/remote/MapApi.kt | 4 +- .../core}/data/api/remote/MapSearchApi.kt | 4 +- .../data/api/remote/auth/OnboardingAuthApi.kt | 4 +- .../data/api/remote/auth/ProfileAuthApi.kt | 20 +++--- .../core}/data/api/remote/auth/SpotAuthApi.kt | 12 ++-- .../data/api/remote/auth/UploadAuthApi.kt | 10 +-- .../core}/data/api/remote/auth/UserAuthApi.kt | 4 +- .../api/remote/noauth/AconAppNoAuthApi.kt | 4 +- .../data/api/remote/noauth/SpotNoAuthApi.kt | 12 ++-- .../data/api/remote/noauth/UserNoAuthApi.kt | 10 +-- .../data/authentication/AuthAuthenticator.kt | 14 ++-- .../acon/core/data/cache/ProfileInfoCache.kt | 19 +++++ .../core}/data/cache/base/ReadOnlyCache.kt | 4 +- .../core}/data/cache/base/ReadWriteCache.kt | 4 +- .../local/AconAppLocalDataSource.kt | 4 +- .../local/OnboardingLocalDataSource.kt | 4 +- .../datasource/local/TimeLocalDataSource.kt | 4 +- .../datasource/local/TokenLocalDataSource.kt | 2 +- .../datasource/local/UserLocalDataSource.kt | 4 +- .../remote/AconAppRemoteDataSource.kt | 6 +- .../datasource/remote/MapRemoteDataSource.kt | 4 +- .../remote/MapSearchRemoteDataSource.kt | 4 +- .../remote/OnboardingRemoteDataSource.kt | 6 +- .../remote/ProfileRemoteDataSource.kt | 18 ++--- .../datasource/remote/SpotRemoteDataSource.kt | 20 +++--- .../remote/TokenRemoteDataSource.kt | 4 +- .../remote/UploadRemoteDataSource.kt | 12 ++-- .../datasource/remote/UserRemoteDataSource.kt | 12 ++-- .../com/acon/core}/data/di/ApiModule.kt | 22 +++--- .../com/acon/core}/data/di/CacheModule.kt | 6 +- .../com/acon/core}/data/di/DataStoreModule.kt | 2 +- .../com/acon/core}/data/di/NetworkModule.kt | 6 +- .../acon/core}/data/di/RepositoryModule.kt | 24 +++---- .../core}/data/di/SocialRepositoryModule.kt | 4 +- .../data/dto/request/AddBookmarkRequest.kt | 2 +- .../dto/request/AreaVerificationRequest.kt | 2 +- .../data/dto/request/DeleteAccountRequest.kt | 0 .../data/dto/request/OnboardingRequest.kt | 2 +- .../RecentNavigationLocationRequest.kt | 2 +- .../core}/data/dto/request/ReissueRequest.kt | 2 +- .../dto/request/ReplaceVerifiedAreaRequest.kt | 2 +- .../core}/data/dto/request/ReviewRequest.kt | 2 +- .../core}/data/dto/request/SaveSpotRequest.kt | 2 +- .../core}/data/dto/request/SignInRequest.kt | 5 +- .../core}/data/dto/request/SignOutRequest.kt | 2 +- .../core}/data/dto/request/SpotListRequest.kt | 2 +- .../dto/request/SubmitUploadPlaceRequest.kt | 2 +- .../data/dto/request/UpdateProfileRequest.kt | 2 +- .../data/dto/response/GeocodingResponse.kt | 2 +- .../data/dto/response/MapSearchResponse.kt | 2 +- .../dto/response/MenuBoardListResponse.kt | 4 +- .../core}/data/dto/response/SignInResponse.kt | 2 +- .../data/dto/response/SpotDetailResponse.kt | 6 +- .../data/dto/response/SpotListResponse.kt | 24 +++---- .../core}/data/dto/response/TokenResponse.kt | 2 +- .../dto/response/app/ShouldUpdateResponse.kt | 2 +- .../response/area/AreaVerificationResponse.kt | 4 +- .../response/area/VerifiedAreaListResponse.kt | 4 +- .../response/profile/PreSignedUrlResponse.kt | 4 +- .../dto/response/profile/ProfileResponse.kt | 4 +- .../response/profile/SavedSpotsResponse.kt | 4 +- .../response/upload/SearchedSpotsResponse.kt | 0 .../upload/UploadSpotSuggestionsResponse.kt | 0 .../response/upload/VerifyLocationResponse.kt | 0 .../acon/core}/data/error/ErrorCallAdapter.kt | 2 +- .../acon/core}/data/error/ErrorMessages.kt | 2 +- .../com/acon/core}/data/error/ErrorUtils.kt | 2 +- .../core}/data/error/NetworkErrorResponse.kt | 2 +- .../com/acon/core}/data/error/RemoteError.kt | 2 +- .../data/repository/AconAppRepositoryImpl.kt | 6 +- .../data/repository/MapRepositoryImpl.kt | 6 +- .../repository/MapSearchRepositoryImpl.kt | 6 +- .../repository/OnboardingRepositoryImpl.kt | 10 +-- .../data/repository/ProfileRepositoryImpl.kt | 11 ++- .../data/repository/SocialRepositoryImpl.kt | 6 +- .../data/repository/SpotRepositoryImpl.kt | 20 +++--- .../data/repository/TimeRepositoryImpl.kt | 6 +- .../data/repository/UploadRepositoryImpl.kt | 10 +-- .../data/repository/UserRepositoryImpl.kt | 18 ++--- .../acon/core}/data/session/SessionHandler.kt | 4 +- .../com/acon/core/data/ExampleUnitTest.kt | 17 ----- .../java/com/acon/core}/data/TestUtils.kt | 4 +- .../authenticator/AuthAuthenticatorTest.kt | 25 +++---- .../repository/AconAppRepositoryImplTest.kt | 10 +-- .../OnboardingRepositoryImplTest.kt | 10 +-- .../repository/ProfileRepositoryImplTest.kt | 12 ++-- .../data/repository/SpotRepositoryImplTest.kt | 12 ++-- .../repository/UploadRepositoryImplTest.kt | 10 +-- .../data/repository/UserRepositoryImplTest.kt | 12 ++-- .../data/session/SessionHandlerImplTest.kt | 4 +- .../acon/acon/data/cache/ProfileInfoCache.kt | 18 ----- 93 files changed, 351 insertions(+), 356 deletions(-) rename {data/src/main/kotlin/com/acon/acon => core/data/src/main/kotlin/com/acon/core}/data/api/remote/MapApi.kt (76%) rename {data/src/main/kotlin/com/acon/acon => core/data/src/main/kotlin/com/acon/core}/data/api/remote/MapSearchApi.kt (76%) rename {data/src/main/kotlin/com/acon/acon => core/data/src/main/kotlin/com/acon/core}/data/api/remote/auth/OnboardingAuthApi.kt (68%) rename {data/src/main/kotlin/com/acon/acon => core/data/src/main/kotlin/com/acon/core}/data/api/remote/auth/ProfileAuthApi.kt (73%) rename {data/src/main/kotlin/com/acon/acon => core/data/src/main/kotlin/com/acon/core}/data/api/remote/auth/SpotAuthApi.kt (71%) rename {data/src/main/kotlin/com/acon/acon => core/data/src/main/kotlin/com/acon/core}/data/api/remote/auth/UploadAuthApi.kt (83%) rename {data/src/main/kotlin/com/acon/acon => core/data/src/main/kotlin/com/acon/core}/data/api/remote/auth/UserAuthApi.kt (79%) rename {data/src/main/kotlin/com/acon/acon => core/data/src/main/kotlin/com/acon/core}/data/api/remote/noauth/AconAppNoAuthApi.kt (72%) rename {data/src/main/kotlin/com/acon/acon => core/data/src/main/kotlin/com/acon/core}/data/api/remote/noauth/SpotNoAuthApi.kt (69%) rename {data/src/main/kotlin/com/acon/acon => core/data/src/main/kotlin/com/acon/core}/data/api/remote/noauth/UserNoAuthApi.kt (56%) rename {data/src/main/kotlin/com/acon/acon => core/data/src/main/kotlin/com/acon/core}/data/authentication/AuthAuthenticator.kt (91%) create mode 100644 core/data/src/main/kotlin/com/acon/core/data/cache/ProfileInfoCache.kt rename {data/src/main/kotlin/com/acon/acon => core/data/src/main/kotlin/com/acon/core}/data/cache/base/ReadOnlyCache.kt (89%) rename {data/src/main/kotlin/com/acon/acon => core/data/src/main/kotlin/com/acon/core}/data/cache/base/ReadWriteCache.kt (92%) rename {data/src/main/kotlin/com/acon/acon => core/data/src/main/kotlin/com/acon/core}/data/datasource/local/AconAppLocalDataSource.kt (90%) rename {data/src/main/kotlin/com/acon/acon => core/data/src/main/kotlin/com/acon/core}/data/datasource/local/OnboardingLocalDataSource.kt (90%) rename {data/src/main/kotlin/com/acon/acon => core/data/src/main/kotlin/com/acon/core}/data/datasource/local/TimeLocalDataSource.kt (91%) rename {data/src/main/kotlin/com/acon/acon => core/data/src/main/kotlin/com/acon/core}/data/datasource/local/TokenLocalDataSource.kt (98%) rename {data/src/main/kotlin/com/acon/acon => core/data/src/main/kotlin/com/acon/core}/data/datasource/local/UserLocalDataSource.kt (90%) rename {data/src/main/kotlin/com/acon/acon => core/data/src/main/kotlin/com/acon/core}/data/datasource/remote/AconAppRemoteDataSource.kt (63%) rename {data/src/main/kotlin/com/acon/acon => core/data/src/main/kotlin/com/acon/core}/data/datasource/remote/MapRemoteDataSource.kt (74%) rename {data/src/main/kotlin/com/acon/acon => core/data/src/main/kotlin/com/acon/core}/data/datasource/remote/MapSearchRemoteDataSource.kt (70%) rename {data/src/main/kotlin/com/acon/acon => core/data/src/main/kotlin/com/acon/core}/data/datasource/remote/OnboardingRemoteDataSource.kt (63%) rename {data/src/main/kotlin/com/acon/acon => core/data/src/main/kotlin/com/acon/core}/data/datasource/remote/ProfileRemoteDataSource.kt (79%) rename {data/src/main/kotlin/com/acon/acon => core/data/src/main/kotlin/com/acon/core}/data/datasource/remote/SpotRemoteDataSource.kt (71%) rename {data/src/main/kotlin/com/acon/acon => core/data/src/main/kotlin/com/acon/core}/data/datasource/remote/TokenRemoteDataSource.kt (98%) rename {data/src/main/kotlin/com/acon/acon => core/data/src/main/kotlin/com/acon/core}/data/datasource/remote/UploadRemoteDataSource.kt (82%) rename {data/src/main/kotlin/com/acon/acon => core/data/src/main/kotlin/com/acon/core}/data/datasource/remote/UserRemoteDataSource.kt (66%) rename {data/src/main/kotlin/com/acon/acon => core/data/src/main/kotlin/com/acon/core}/data/di/ApiModule.kt (79%) rename {data/src/main/kotlin/com/acon/acon => core/data/src/main/kotlin/com/acon/core}/data/di/CacheModule.kt (78%) rename {data/src/main/kotlin/com/acon/acon => core/data/src/main/kotlin/com/acon/core}/data/di/DataStoreModule.kt (98%) rename {data/src/main/kotlin/com/acon/acon => core/data/src/main/kotlin/com/acon/core}/data/di/NetworkModule.kt (97%) rename {data/src/main/kotlin/com/acon/acon => core/data/src/main/kotlin/com/acon/core}/data/di/RepositoryModule.kt (75%) rename {data/src/main/kotlin/com/acon/acon => core/data/src/main/kotlin/com/acon/core}/data/di/SocialRepositoryModule.kt (83%) rename {data/src/main/kotlin/com/acon/acon => core/data/src/main/kotlin/com/acon/core}/data/dto/request/AddBookmarkRequest.kt (81%) rename {data/src/main/kotlin/com/acon/acon => core/data/src/main/kotlin/com/acon/core}/data/dto/request/AreaVerificationRequest.kt (85%) rename {data/src/main/kotlin/com/acon/acon => core/data/src/main/kotlin/com/acon/core}/data/dto/request/DeleteAccountRequest.kt (100%) rename {data/src/main/kotlin/com/acon/acon => core/data/src/main/kotlin/com/acon/core}/data/dto/request/OnboardingRequest.kt (83%) rename {data/src/main/kotlin/com/acon/acon => core/data/src/main/kotlin/com/acon/core}/data/dto/request/RecentNavigationLocationRequest.kt (82%) rename {data/src/main/kotlin/com/acon/acon => core/data/src/main/kotlin/com/acon/core}/data/dto/request/ReissueRequest.kt (82%) rename {data/src/main/kotlin/com/acon/acon => core/data/src/main/kotlin/com/acon/core}/data/dto/request/ReplaceVerifiedAreaRequest.kt (88%) rename {data/src/main/kotlin/com/acon/acon => core/data/src/main/kotlin/com/acon/core}/data/dto/request/ReviewRequest.kt (91%) rename {data/src/main/kotlin/com/acon/acon => core/data/src/main/kotlin/com/acon/core}/data/dto/request/SaveSpotRequest.kt (81%) rename {data/src/main/kotlin/com/acon/acon => core/data/src/main/kotlin/com/acon/core}/data/dto/request/SignInRequest.kt (54%) rename {data/src/main/kotlin/com/acon/acon => core/data/src/main/kotlin/com/acon/core}/data/dto/request/SignOutRequest.kt (82%) rename {data/src/main/kotlin/com/acon/acon => core/data/src/main/kotlin/com/acon/core}/data/dto/request/SpotListRequest.kt (94%) rename {data/src/main/kotlin/com/acon/acon => core/data/src/main/kotlin/com/acon/core}/data/dto/request/SubmitUploadPlaceRequest.kt (94%) rename {data/src/main/kotlin/com/acon/acon => core/data/src/main/kotlin/com/acon/core}/data/dto/request/UpdateProfileRequest.kt (92%) rename {data/src/main/kotlin/com/acon/acon => core/data/src/main/kotlin/com/acon/core}/data/dto/response/GeocodingResponse.kt (96%) rename {data/src/main/kotlin/com/acon/acon => core/data/src/main/kotlin/com/acon/core}/data/dto/response/MapSearchResponse.kt (91%) rename {data/src/main/kotlin/com/acon/acon => core/data/src/main/kotlin/com/acon/core}/data/dto/response/MenuBoardListResponse.kt (73%) rename {data/src/main/kotlin/com/acon/acon => core/data/src/main/kotlin/com/acon/core}/data/dto/response/SignInResponse.kt (94%) rename {data/src/main/kotlin/com/acon/acon => core/data/src/main/kotlin/com/acon/core}/data/dto/response/SpotDetailResponse.kt (89%) rename {data/src/main/kotlin/com/acon/acon => core/data/src/main/kotlin/com/acon/core}/data/dto/response/SpotListResponse.kt (67%) rename {data/src/main/kotlin/com/acon/acon => core/data/src/main/kotlin/com/acon/core}/data/dto/response/TokenResponse.kt (85%) rename {data/src/main/kotlin/com/acon/acon => core/data/src/main/kotlin/com/acon/core}/data/dto/response/app/ShouldUpdateResponse.kt (81%) rename {data/src/main/kotlin/com/acon/acon => core/data/src/main/kotlin/com/acon/core}/data/dto/response/area/AreaVerificationResponse.kt (77%) rename {data/src/main/kotlin/com/acon/acon => core/data/src/main/kotlin/com/acon/core}/data/dto/response/area/VerifiedAreaListResponse.kt (80%) rename {data/src/main/kotlin/com/acon/acon => core/data/src/main/kotlin/com/acon/core}/data/dto/response/profile/PreSignedUrlResponse.kt (74%) rename {data/src/main/kotlin/com/acon/acon => core/data/src/main/kotlin/com/acon/core}/data/dto/response/profile/ProfileResponse.kt (82%) rename {data/src/main/kotlin/com/acon/acon => core/data/src/main/kotlin/com/acon/core}/data/dto/response/profile/SavedSpotsResponse.kt (81%) rename {data/src/main/kotlin/com/acon/acon => core/data/src/main/kotlin/com/acon/core}/data/dto/response/upload/SearchedSpotsResponse.kt (100%) rename {data/src/main/kotlin/com/acon/acon => core/data/src/main/kotlin/com/acon/core}/data/dto/response/upload/UploadSpotSuggestionsResponse.kt (100%) rename {data/src/main/kotlin/com/acon/acon => core/data/src/main/kotlin/com/acon/core}/data/dto/response/upload/VerifyLocationResponse.kt (100%) rename {data/src/main/kotlin/com/acon/acon => core/data/src/main/kotlin/com/acon/core}/data/error/ErrorCallAdapter.kt (99%) rename {data/src/main/kotlin/com/acon/acon => core/data/src/main/kotlin/com/acon/core}/data/error/ErrorMessages.kt (93%) rename {data/src/main/kotlin/com/acon/acon => core/data/src/main/kotlin/com/acon/core}/data/error/ErrorUtils.kt (96%) rename {data/src/main/kotlin/com/acon/acon => core/data/src/main/kotlin/com/acon/core}/data/error/NetworkErrorResponse.kt (86%) rename {data/src/main/kotlin/com/acon/acon => core/data/src/main/kotlin/com/acon/core}/data/error/RemoteError.kt (96%) rename {data/src/main/kotlin/com/acon/acon => core/data/src/main/kotlin/com/acon/core}/data/repository/AconAppRepositoryImpl.kt (78%) rename {data/src/main/kotlin/com/acon/acon => core/data/src/main/kotlin/com/acon/core}/data/repository/MapRepositoryImpl.kt (78%) rename {data/src/main/kotlin/com/acon/acon => core/data/src/main/kotlin/com/acon/core}/data/repository/MapSearchRepositoryImpl.kt (91%) rename {data/src/main/kotlin/com/acon/acon => core/data/src/main/kotlin/com/acon/core}/data/repository/OnboardingRepositoryImpl.kt (83%) rename {data/src/main/kotlin/com/acon/acon => core/data/src/main/kotlin/com/acon/core}/data/repository/ProfileRepositoryImpl.kt (94%) rename {data/src/main/kotlin/com/acon/acon => core/data/src/main/kotlin/com/acon/core}/data/repository/SocialRepositoryImpl.kt (84%) rename {data/src/main/kotlin/com/acon/acon => core/data/src/main/kotlin/com/acon/core}/data/repository/SpotRepositoryImpl.kt (89%) rename {data/src/main/kotlin/com/acon/acon => core/data/src/main/kotlin/com/acon/core}/data/repository/TimeRepositoryImpl.kt (81%) rename {data/src/main/kotlin/com/acon/acon => core/data/src/main/kotlin/com/acon/core}/data/repository/UploadRepositoryImpl.kt (93%) rename {data/src/main/kotlin/com/acon/acon => core/data/src/main/kotlin/com/acon/core}/data/repository/UserRepositoryImpl.kt (85%) rename {data/src/main/kotlin/com/acon/acon => core/data/src/main/kotlin/com/acon/core}/data/session/SessionHandler.kt (94%) delete mode 100644 core/data/src/test/java/com/acon/core/data/ExampleUnitTest.kt rename {data/src/test/java/com/acon/acon => core/data/src/test/java/com/acon/core}/data/TestUtils.kt (93%) rename {data/src/test/java/com/acon/acon => core/data/src/test/java/com/acon/core}/data/authenticator/AuthAuthenticatorTest.kt (94%) rename {data/src/test/java/com/acon/acon => core/data/src/test/java/com/acon/core}/data/repository/AconAppRepositoryImplTest.kt (85%) rename {data/src/test/java/com/acon/acon => core/data/src/test/java/com/acon/core}/data/repository/OnboardingRepositoryImplTest.kt (86%) rename {data/src/test/java/com/acon/acon => core/data/src/test/java/com/acon/core}/data/repository/ProfileRepositoryImplTest.kt (94%) rename {data/src/test/java/com/acon/acon => core/data/src/test/java/com/acon/core}/data/repository/SpotRepositoryImplTest.kt (95%) rename {data/src/test/java/com/acon/acon => core/data/src/test/java/com/acon/core}/data/repository/UploadRepositoryImplTest.kt (92%) rename {data/src/test/java/com/acon/acon => core/data/src/test/java/com/acon/core}/data/repository/UserRepositoryImplTest.kt (95%) rename {data/src/test/java/com/acon/acon => core/data/src/test/java/com/acon/core}/data/session/SessionHandlerImplTest.kt (97%) delete mode 100644 data/src/main/kotlin/com/acon/acon/data/cache/ProfileInfoCache.kt diff --git a/app/build.gradle.kts b/app/build.gradle.kts index e0d174453..af423afb1 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -44,9 +44,9 @@ dependencies { implementation(projects.core.navigation) implementation(projects.core.ui) implementation(projects.core.launcher) + implementation(projects.core.data) implementation(projects.domain) - implementation(projects.data) implementation(projects.feature.signin) implementation(projects.feature.spot) diff --git a/core/data/build.gradle.kts b/core/data/build.gradle.kts index 3444a74d6..4b9d2a3e6 100644 --- a/core/data/build.gradle.kts +++ b/core/data/build.gradle.kts @@ -1,43 +1,53 @@ +import java.util.Properties + plugins { - alias(libs.plugins.android.library) - alias(libs.plugins.kotlin.android) + alias(libs.plugins.acon.android.library) + alias(libs.plugins.acon.android.library.hilt) + alias(libs.plugins.kotlin.serialization) +} + +val localProperties = Properties().apply { + load(project.rootProject.file("local.properties").inputStream()) } android { - namespace = "com.acon.core.data" - compileSdk = 35 + namespace = "com.acon.acon.data" defaultConfig { - minSdk = 26 - - testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" - consumerProguardFiles("consumer-rules.pro") - } - - buildTypes { - release { - isMinifyEnabled = false - proguardFiles( - getDefaultProguardFile("proguard-android-optimize.txt"), - "proguard-rules.pro" - ) - } - } - compileOptions { - sourceCompatibility = JavaVersion.VERSION_11 - targetCompatibility = JavaVersion.VERSION_11 - } - kotlinOptions { - jvmTarget = "11" + buildConfigField("String", "GOOGLE_CLIENT_ID", "\"${localProperties["GOOGLE_CLIENT_ID"]}\"") + buildConfigField("String", "BASE_URL", "\"${localProperties["BASE_URL"]}\"") + buildConfigField("String", "NAVER_CLIENT_ID", "\"${localProperties["naver_client_id"]}\"") + buildConfigField("String", "NAVER_CLIENT_SECRET", "\"${localProperties["naver_client_secret"]}\"") + buildConfigField("String", "NAVER_DEVELOPERS_CLIENT_ID", "\"${localProperties["naver_developers_client_id"]}\"") + buildConfigField("String", "NAVER_DEVELOPERS_CLIENT_SECRET", "\"${localProperties["naver_developers_client_secret"]}\"") } } dependencies { - implementation(libs.androidx.core.ktx) - implementation(libs.androidx.appcompat) - implementation(libs.material) - testImplementation(libs.junit4) - androidTestImplementation(libs.androidx.junit) - androidTestImplementation(libs.androidx.espresso.core) + implementation(projects.domain) + implementation(projects.core.analytics) + implementation(projects.core.launcher) + + implementation(platform(libs.okhttp.bom)) + implementation(libs.okhttp) + implementation(libs.logging.interceptor) + + implementation(libs.retrofit) + implementation(libs.retrofit.kotlin.serialization.converter) + + implementation(libs.kotlinx.serialization.json) + + implementation(libs.androidx.security.crypto.ktx) + implementation(libs.bundles.googleSignIn) + + implementation(libs.preferences.datastore) + + testImplementation(libs.bundles.non.android.test) + testRuntimeOnly(libs.bundles.junit5.runtime) + androidTestImplementation(libs.bundles.android.test) +} + +tasks.withType { + useJUnitPlatform() } \ No newline at end of file diff --git a/data/src/main/kotlin/com/acon/acon/data/api/remote/MapApi.kt b/core/data/src/main/kotlin/com/acon/core/data/api/remote/MapApi.kt similarity index 76% rename from data/src/main/kotlin/com/acon/acon/data/api/remote/MapApi.kt rename to core/data/src/main/kotlin/com/acon/core/data/api/remote/MapApi.kt index 9d807cd19..ecb219bfe 100644 --- a/data/src/main/kotlin/com/acon/acon/data/api/remote/MapApi.kt +++ b/core/data/src/main/kotlin/com/acon/core/data/api/remote/MapApi.kt @@ -1,6 +1,6 @@ -package com.acon.acon.data.api.remote +package com.acon.core.data.api.remote -import com.acon.acon.data.dto.response.ReverseGeocodingResponse +import com.acon.core.data.dto.response.ReverseGeocodingResponse import retrofit2.http.GET import retrofit2.http.Query diff --git a/data/src/main/kotlin/com/acon/acon/data/api/remote/MapSearchApi.kt b/core/data/src/main/kotlin/com/acon/core/data/api/remote/MapSearchApi.kt similarity index 76% rename from data/src/main/kotlin/com/acon/acon/data/api/remote/MapSearchApi.kt rename to core/data/src/main/kotlin/com/acon/core/data/api/remote/MapSearchApi.kt index 69a234706..6214f6cb9 100644 --- a/data/src/main/kotlin/com/acon/acon/data/api/remote/MapSearchApi.kt +++ b/core/data/src/main/kotlin/com/acon/core/data/api/remote/MapSearchApi.kt @@ -1,6 +1,6 @@ -package com.acon.acon.data.api.remote +package com.acon.core.data.api.remote -import com.acon.acon.data.dto.response.MapSearchResponse +import com.acon.core.data.dto.response.MapSearchResponse import retrofit2.http.GET import retrofit2.http.Query diff --git a/data/src/main/kotlin/com/acon/acon/data/api/remote/auth/OnboardingAuthApi.kt b/core/data/src/main/kotlin/com/acon/core/data/api/remote/auth/OnboardingAuthApi.kt similarity index 68% rename from data/src/main/kotlin/com/acon/acon/data/api/remote/auth/OnboardingAuthApi.kt rename to core/data/src/main/kotlin/com/acon/core/data/api/remote/auth/OnboardingAuthApi.kt index 49c21bb8d..259507c7b 100644 --- a/data/src/main/kotlin/com/acon/acon/data/api/remote/auth/OnboardingAuthApi.kt +++ b/core/data/src/main/kotlin/com/acon/core/data/api/remote/auth/OnboardingAuthApi.kt @@ -1,6 +1,6 @@ -package com.acon.acon.data.api.remote.auth +package com.acon.core.data.api.remote.auth -import com.acon.acon.data.dto.request.OnboardingRequest +import com.acon.core.data.dto.request.OnboardingRequest import retrofit2.http.Body import retrofit2.http.PUT diff --git a/data/src/main/kotlin/com/acon/acon/data/api/remote/auth/ProfileAuthApi.kt b/core/data/src/main/kotlin/com/acon/core/data/api/remote/auth/ProfileAuthApi.kt similarity index 73% rename from data/src/main/kotlin/com/acon/acon/data/api/remote/auth/ProfileAuthApi.kt rename to core/data/src/main/kotlin/com/acon/core/data/api/remote/auth/ProfileAuthApi.kt index 400ceaefc..7b4c6a7c9 100644 --- a/data/src/main/kotlin/com/acon/acon/data/api/remote/auth/ProfileAuthApi.kt +++ b/core/data/src/main/kotlin/com/acon/core/data/api/remote/auth/ProfileAuthApi.kt @@ -1,13 +1,13 @@ -package com.acon.acon.data.api.remote.auth - -import com.acon.acon.data.dto.request.AreaVerificationRequest -import com.acon.acon.data.dto.request.ReplaceVerifiedAreaRequest -import com.acon.acon.data.dto.request.SaveSpotRequest -import com.acon.acon.data.dto.request.UpdateProfileRequest -import com.acon.acon.data.dto.response.area.VerifiedAreaListResponse -import com.acon.acon.data.dto.response.profile.PreSignedUrlResponse -import com.acon.acon.data.dto.response.profile.ProfileResponse -import com.acon.acon.data.dto.response.profile.SavedSpotsResponse +package com.acon.core.data.api.remote.auth + +import com.acon.core.data.dto.request.AreaVerificationRequest +import com.acon.core.data.dto.request.ReplaceVerifiedAreaRequest +import com.acon.core.data.dto.request.SaveSpotRequest +import com.acon.core.data.dto.request.UpdateProfileRequest +import com.acon.core.data.dto.response.area.VerifiedAreaListResponse +import com.acon.core.data.dto.response.profile.PreSignedUrlResponse +import com.acon.core.data.dto.response.profile.ProfileResponse +import com.acon.core.data.dto.response.profile.SavedSpotsResponse import retrofit2.Response import retrofit2.http.Body import retrofit2.http.DELETE diff --git a/data/src/main/kotlin/com/acon/acon/data/api/remote/auth/SpotAuthApi.kt b/core/data/src/main/kotlin/com/acon/core/data/api/remote/auth/SpotAuthApi.kt similarity index 71% rename from data/src/main/kotlin/com/acon/acon/data/api/remote/auth/SpotAuthApi.kt rename to core/data/src/main/kotlin/com/acon/core/data/api/remote/auth/SpotAuthApi.kt index c70c9b2a3..49644c3e0 100644 --- a/data/src/main/kotlin/com/acon/acon/data/api/remote/auth/SpotAuthApi.kt +++ b/core/data/src/main/kotlin/com/acon/core/data/api/remote/auth/SpotAuthApi.kt @@ -1,10 +1,10 @@ -package com.acon.acon.data.api.remote.auth +package com.acon.core.data.api.remote.auth -import com.acon.acon.data.dto.request.AddBookmarkRequest -import com.acon.acon.data.dto.request.SpotListRequest -import com.acon.acon.data.dto.response.SpotDetailResponse -import com.acon.acon.data.dto.response.SpotListResponse -import com.acon.acon.data.dto.response.profile.SavedSpotsResponse +import com.acon.core.data.dto.request.AddBookmarkRequest +import com.acon.core.data.dto.request.SpotListRequest +import com.acon.core.data.dto.response.SpotDetailResponse +import com.acon.core.data.dto.response.SpotListResponse +import com.acon.core.data.dto.response.profile.SavedSpotsResponse import retrofit2.http.Body import retrofit2.http.DELETE import retrofit2.http.GET diff --git a/data/src/main/kotlin/com/acon/acon/data/api/remote/auth/UploadAuthApi.kt b/core/data/src/main/kotlin/com/acon/core/data/api/remote/auth/UploadAuthApi.kt similarity index 83% rename from data/src/main/kotlin/com/acon/acon/data/api/remote/auth/UploadAuthApi.kt rename to core/data/src/main/kotlin/com/acon/core/data/api/remote/auth/UploadAuthApi.kt index f6a9d49b4..9e167eadb 100644 --- a/data/src/main/kotlin/com/acon/acon/data/api/remote/auth/UploadAuthApi.kt +++ b/core/data/src/main/kotlin/com/acon/core/data/api/remote/auth/UploadAuthApi.kt @@ -1,9 +1,9 @@ -package com.acon.acon.data.api.remote.auth +package com.acon.core.data.api.remote.auth -import com.acon.acon.data.dto.request.ReviewRequest -import com.acon.acon.data.dto.request.ReviewRequestV2 -import com.acon.acon.data.dto.request.SubmitUploadPlaceRequest -import com.acon.acon.data.dto.response.profile.PreSignedUrlResponse +import com.acon.core.data.dto.request.ReviewRequest +import com.acon.core.data.dto.request.ReviewRequestV2 +import com.acon.core.data.dto.request.SubmitUploadPlaceRequest +import com.acon.core.data.dto.response.profile.PreSignedUrlResponse import com.acon.acon.data.dto.response.upload.SearchedSpotsResponse import com.acon.acon.data.dto.response.upload.UploadSpotSuggestionsResponse import com.acon.acon.data.dto.response.upload.VerifyLocationResponse diff --git a/data/src/main/kotlin/com/acon/acon/data/api/remote/auth/UserAuthApi.kt b/core/data/src/main/kotlin/com/acon/core/data/api/remote/auth/UserAuthApi.kt similarity index 79% rename from data/src/main/kotlin/com/acon/acon/data/api/remote/auth/UserAuthApi.kt rename to core/data/src/main/kotlin/com/acon/core/data/api/remote/auth/UserAuthApi.kt index 2616bac97..37baf6b48 100644 --- a/data/src/main/kotlin/com/acon/acon/data/api/remote/auth/UserAuthApi.kt +++ b/core/data/src/main/kotlin/com/acon/core/data/api/remote/auth/UserAuthApi.kt @@ -1,7 +1,7 @@ -package com.acon.acon.data.api.remote.auth +package com.acon.core.data.api.remote.auth import com.acon.acon.data.dto.request.DeleteAccountRequest -import com.acon.acon.data.dto.request.SignOutRequest +import com.acon.core.data.dto.request.SignOutRequest import retrofit2.http.Body import retrofit2.http.POST diff --git a/data/src/main/kotlin/com/acon/acon/data/api/remote/noauth/AconAppNoAuthApi.kt b/core/data/src/main/kotlin/com/acon/core/data/api/remote/noauth/AconAppNoAuthApi.kt similarity index 72% rename from data/src/main/kotlin/com/acon/acon/data/api/remote/noauth/AconAppNoAuthApi.kt rename to core/data/src/main/kotlin/com/acon/core/data/api/remote/noauth/AconAppNoAuthApi.kt index 07c7a4ad2..15df9e71f 100644 --- a/data/src/main/kotlin/com/acon/acon/data/api/remote/noauth/AconAppNoAuthApi.kt +++ b/core/data/src/main/kotlin/com/acon/core/data/api/remote/noauth/AconAppNoAuthApi.kt @@ -1,6 +1,6 @@ -package com.acon.acon.data.api.remote.noauth +package com.acon.core.data.api.remote.noauth -import com.acon.acon.data.dto.response.app.ShouldUpdateResponse +import com.acon.core.data.dto.response.app.ShouldUpdateResponse import retrofit2.http.GET import retrofit2.http.Query diff --git a/data/src/main/kotlin/com/acon/acon/data/api/remote/noauth/SpotNoAuthApi.kt b/core/data/src/main/kotlin/com/acon/core/data/api/remote/noauth/SpotNoAuthApi.kt similarity index 69% rename from data/src/main/kotlin/com/acon/acon/data/api/remote/noauth/SpotNoAuthApi.kt rename to core/data/src/main/kotlin/com/acon/core/data/api/remote/noauth/SpotNoAuthApi.kt index 0e1125e65..45480cb5e 100644 --- a/data/src/main/kotlin/com/acon/acon/data/api/remote/noauth/SpotNoAuthApi.kt +++ b/core/data/src/main/kotlin/com/acon/core/data/api/remote/noauth/SpotNoAuthApi.kt @@ -1,10 +1,10 @@ -package com.acon.acon.data.api.remote.noauth +package com.acon.core.data.api.remote.noauth -import com.acon.acon.data.dto.request.RecentNavigationLocationRequest -import com.acon.acon.data.dto.request.SpotListRequest -import com.acon.acon.data.dto.response.MenuBoardListResponse -import com.acon.acon.data.dto.response.SpotDetailResponse -import com.acon.acon.data.dto.response.SpotListResponse +import com.acon.core.data.dto.request.RecentNavigationLocationRequest +import com.acon.core.data.dto.request.SpotListRequest +import com.acon.core.data.dto.response.MenuBoardListResponse +import com.acon.core.data.dto.response.SpotDetailResponse +import com.acon.core.data.dto.response.SpotListResponse import retrofit2.http.Body import retrofit2.http.GET import retrofit2.http.POST diff --git a/data/src/main/kotlin/com/acon/acon/data/api/remote/noauth/UserNoAuthApi.kt b/core/data/src/main/kotlin/com/acon/core/data/api/remote/noauth/UserNoAuthApi.kt similarity index 56% rename from data/src/main/kotlin/com/acon/acon/data/api/remote/noauth/UserNoAuthApi.kt rename to core/data/src/main/kotlin/com/acon/core/data/api/remote/noauth/UserNoAuthApi.kt index d5916a215..4ffedc57b 100644 --- a/data/src/main/kotlin/com/acon/acon/data/api/remote/noauth/UserNoAuthApi.kt +++ b/core/data/src/main/kotlin/com/acon/core/data/api/remote/noauth/UserNoAuthApi.kt @@ -1,9 +1,9 @@ -package com.acon.acon.data.api.remote.noauth +package com.acon.core.data.api.remote.noauth -import com.acon.acon.data.dto.request.ReissueRequest -import com.acon.acon.data.dto.request.SignInRequest -import com.acon.acon.data.dto.response.SignInResponse -import com.acon.acon.data.dto.response.TokenResponse +import com.acon.core.data.dto.request.ReissueRequest +import com.acon.core.data.dto.request.SignInRequest +import com.acon.core.data.dto.response.SignInResponse +import com.acon.core.data.dto.response.TokenResponse import retrofit2.http.Body import retrofit2.http.POST diff --git a/data/src/main/kotlin/com/acon/acon/data/authentication/AuthAuthenticator.kt b/core/data/src/main/kotlin/com/acon/core/data/authentication/AuthAuthenticator.kt similarity index 91% rename from data/src/main/kotlin/com/acon/acon/data/authentication/AuthAuthenticator.kt rename to core/data/src/main/kotlin/com/acon/core/data/authentication/AuthAuthenticator.kt index c211df7df..5806f0218 100644 --- a/data/src/main/kotlin/com/acon/acon/data/authentication/AuthAuthenticator.kt +++ b/core/data/src/main/kotlin/com/acon/core/data/authentication/AuthAuthenticator.kt @@ -1,14 +1,14 @@ -package com.acon.acon.data.authentication +package com.acon.core.data.authentication import android.content.Context import com.acon.acon.core.launcher.AppLauncher -import com.acon.acon.data.api.remote.noauth.UserNoAuthApi -import com.acon.acon.data.datasource.local.TokenLocalDataSource +import com.acon.core.data.api.remote.noauth.UserNoAuthApi +import com.acon.core.data.datasource.local.TokenLocalDataSource import com.acon.acon.data.dto.request.DeleteAccountRequest -import com.acon.acon.data.dto.request.ReissueRequest -import com.acon.acon.data.dto.request.SignOutRequest -import com.acon.acon.data.error.runCatchingWith -import com.acon.acon.data.session.SessionHandler +import com.acon.core.data.dto.request.ReissueRequest +import com.acon.core.data.dto.request.SignOutRequest +import com.acon.core.data.error.runCatchingWith +import com.acon.core.data.session.SessionHandler import com.acon.acon.domain.error.user.ReissueError import kotlinx.coroutines.runBlocking import kotlinx.coroutines.sync.Mutex diff --git a/core/data/src/main/kotlin/com/acon/core/data/cache/ProfileInfoCache.kt b/core/data/src/main/kotlin/com/acon/core/data/cache/ProfileInfoCache.kt new file mode 100644 index 000000000..c3de4f4e0 --- /dev/null +++ b/core/data/src/main/kotlin/com/acon/core/data/cache/ProfileInfoCache.kt @@ -0,0 +1,19 @@ +package com.acon.core.data.cache + +import com.acon.acon.core.model.model.profile.ProfileInfo +import com.acon.core.data.cache.base.ReadWriteCache +import com.acon.core.data.datasource.remote.ProfileRemoteDataSource +import kotlinx.coroutines.CoroutineScope +import javax.inject.Inject + +class ProfileInfoCache @Inject constructor( + private val scope: CoroutineScope, + private val profileRemoteDataSource: ProfileRemoteDataSource +) : ReadWriteCache(scope) { + + override val emptyData = Result.success(ProfileInfo.Empty) + + override suspend fun fetchRemoteData(): ProfileInfo { + return profileRemoteDataSource.fetchProfile().toProfile() + } +} diff --git a/data/src/main/kotlin/com/acon/acon/data/cache/base/ReadOnlyCache.kt b/core/data/src/main/kotlin/com/acon/core/data/cache/base/ReadOnlyCache.kt similarity index 89% rename from data/src/main/kotlin/com/acon/acon/data/cache/base/ReadOnlyCache.kt rename to core/data/src/main/kotlin/com/acon/core/data/cache/base/ReadOnlyCache.kt index b2cb113ae..9c73522e6 100644 --- a/data/src/main/kotlin/com/acon/acon/data/cache/base/ReadOnlyCache.kt +++ b/core/data/src/main/kotlin/com/acon/core/data/cache/base/ReadOnlyCache.kt @@ -1,6 +1,6 @@ -package com.acon.acon.data.cache.base +package com.acon.core.data.cache.base -import com.acon.acon.data.error.runCatchingWith +import com.acon.core.data.error.runCatchingWith import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.delay import kotlinx.coroutines.flow.SharingStarted diff --git a/data/src/main/kotlin/com/acon/acon/data/cache/base/ReadWriteCache.kt b/core/data/src/main/kotlin/com/acon/core/data/cache/base/ReadWriteCache.kt similarity index 92% rename from data/src/main/kotlin/com/acon/acon/data/cache/base/ReadWriteCache.kt rename to core/data/src/main/kotlin/com/acon/core/data/cache/base/ReadWriteCache.kt index 9363f3393..6f8476201 100644 --- a/data/src/main/kotlin/com/acon/acon/data/cache/base/ReadWriteCache.kt +++ b/core/data/src/main/kotlin/com/acon/core/data/cache/base/ReadWriteCache.kt @@ -1,6 +1,6 @@ -package com.acon.acon.data.cache.base +package com.acon.core.data.cache.base -import com.acon.acon.data.error.runCatchingWith +import com.acon.core.data.error.runCatchingWith import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.delay import kotlinx.coroutines.flow.MutableStateFlow diff --git a/data/src/main/kotlin/com/acon/acon/data/datasource/local/AconAppLocalDataSource.kt b/core/data/src/main/kotlin/com/acon/core/data/datasource/local/AconAppLocalDataSource.kt similarity index 90% rename from data/src/main/kotlin/com/acon/acon/data/datasource/local/AconAppLocalDataSource.kt rename to core/data/src/main/kotlin/com/acon/core/data/datasource/local/AconAppLocalDataSource.kt index 1ec44c399..79d4b986d 100644 --- a/data/src/main/kotlin/com/acon/acon/data/datasource/local/AconAppLocalDataSource.kt +++ b/core/data/src/main/kotlin/com/acon/core/data/datasource/local/AconAppLocalDataSource.kt @@ -1,10 +1,10 @@ -package com.acon.acon.data.datasource.local +package com.acon.core.data.datasource.local import androidx.datastore.core.DataStore import androidx.datastore.preferences.core.Preferences import androidx.datastore.preferences.core.edit import androidx.datastore.preferences.core.longPreferencesKey -import com.acon.acon.data.di.AconAppDataStore +import com.acon.core.data.di.AconAppDataStore import kotlinx.coroutines.flow.first import kotlinx.coroutines.flow.map import javax.inject.Inject diff --git a/data/src/main/kotlin/com/acon/acon/data/datasource/local/OnboardingLocalDataSource.kt b/core/data/src/main/kotlin/com/acon/core/data/datasource/local/OnboardingLocalDataSource.kt similarity index 90% rename from data/src/main/kotlin/com/acon/acon/data/datasource/local/OnboardingLocalDataSource.kt rename to core/data/src/main/kotlin/com/acon/core/data/datasource/local/OnboardingLocalDataSource.kt index 7c4fcf3f1..58c748cd6 100644 --- a/data/src/main/kotlin/com/acon/acon/data/datasource/local/OnboardingLocalDataSource.kt +++ b/core/data/src/main/kotlin/com/acon/core/data/datasource/local/OnboardingLocalDataSource.kt @@ -1,10 +1,10 @@ -package com.acon.acon.data.datasource.local +package com.acon.core.data.datasource.local import androidx.datastore.core.DataStore import androidx.datastore.preferences.core.Preferences import androidx.datastore.preferences.core.booleanPreferencesKey import androidx.datastore.preferences.core.edit -import com.acon.acon.data.di.OnboardingDataStore +import com.acon.core.data.di.OnboardingDataStore import kotlinx.coroutines.flow.first import kotlinx.coroutines.flow.map import javax.inject.Inject diff --git a/data/src/main/kotlin/com/acon/acon/data/datasource/local/TimeLocalDataSource.kt b/core/data/src/main/kotlin/com/acon/core/data/datasource/local/TimeLocalDataSource.kt similarity index 91% rename from data/src/main/kotlin/com/acon/acon/data/datasource/local/TimeLocalDataSource.kt rename to core/data/src/main/kotlin/com/acon/core/data/datasource/local/TimeLocalDataSource.kt index ad51a5f10..b1e574e66 100644 --- a/data/src/main/kotlin/com/acon/acon/data/datasource/local/TimeLocalDataSource.kt +++ b/core/data/src/main/kotlin/com/acon/core/data/datasource/local/TimeLocalDataSource.kt @@ -1,11 +1,11 @@ -package com.acon.acon.data.datasource.local +package com.acon.core.data.datasource.local import androidx.datastore.core.DataStore import androidx.datastore.preferences.core.Preferences import androidx.datastore.preferences.core.edit import androidx.datastore.preferences.core.longPreferencesKey import com.acon.acon.core.model.type.UserActionType -import com.acon.acon.data.di.TimeDataStore +import com.acon.core.data.di.TimeDataStore import kotlinx.coroutines.flow.first import kotlinx.coroutines.flow.map import javax.inject.Inject diff --git a/data/src/main/kotlin/com/acon/acon/data/datasource/local/TokenLocalDataSource.kt b/core/data/src/main/kotlin/com/acon/core/data/datasource/local/TokenLocalDataSource.kt similarity index 98% rename from data/src/main/kotlin/com/acon/acon/data/datasource/local/TokenLocalDataSource.kt rename to core/data/src/main/kotlin/com/acon/core/data/datasource/local/TokenLocalDataSource.kt index 258797950..ecff900f4 100644 --- a/data/src/main/kotlin/com/acon/acon/data/datasource/local/TokenLocalDataSource.kt +++ b/core/data/src/main/kotlin/com/acon/core/data/datasource/local/TokenLocalDataSource.kt @@ -1,4 +1,4 @@ -package com.acon.acon.data.datasource.local +package com.acon.core.data.datasource.local import android.content.Context import androidx.security.crypto.EncryptedSharedPreferences diff --git a/data/src/main/kotlin/com/acon/acon/data/datasource/local/UserLocalDataSource.kt b/core/data/src/main/kotlin/com/acon/core/data/datasource/local/UserLocalDataSource.kt similarity index 90% rename from data/src/main/kotlin/com/acon/acon/data/datasource/local/UserLocalDataSource.kt rename to core/data/src/main/kotlin/com/acon/core/data/datasource/local/UserLocalDataSource.kt index 136d949d5..94c17c763 100644 --- a/data/src/main/kotlin/com/acon/acon/data/datasource/local/UserLocalDataSource.kt +++ b/core/data/src/main/kotlin/com/acon/core/data/datasource/local/UserLocalDataSource.kt @@ -1,10 +1,10 @@ -package com.acon.acon.data.datasource.local +package com.acon.core.data.datasource.local import androidx.datastore.core.DataStore import androidx.datastore.preferences.core.Preferences import androidx.datastore.preferences.core.booleanPreferencesKey import androidx.datastore.preferences.core.edit -import com.acon.acon.data.di.UserDataStore +import com.acon.core.data.di.UserDataStore import kotlinx.coroutines.flow.first import kotlinx.coroutines.flow.map import javax.inject.Inject diff --git a/data/src/main/kotlin/com/acon/acon/data/datasource/remote/AconAppRemoteDataSource.kt b/core/data/src/main/kotlin/com/acon/core/data/datasource/remote/AconAppRemoteDataSource.kt similarity index 63% rename from data/src/main/kotlin/com/acon/acon/data/datasource/remote/AconAppRemoteDataSource.kt rename to core/data/src/main/kotlin/com/acon/core/data/datasource/remote/AconAppRemoteDataSource.kt index 49be95b99..96cba5b4a 100644 --- a/data/src/main/kotlin/com/acon/acon/data/datasource/remote/AconAppRemoteDataSource.kt +++ b/core/data/src/main/kotlin/com/acon/core/data/datasource/remote/AconAppRemoteDataSource.kt @@ -1,7 +1,7 @@ -package com.acon.acon.data.datasource.remote +package com.acon.core.data.datasource.remote -import com.acon.acon.data.dto.response.app.ShouldUpdateResponse -import com.acon.acon.data.api.remote.noauth.AconAppNoAuthApi +import com.acon.core.data.dto.response.app.ShouldUpdateResponse +import com.acon.core.data.api.remote.noauth.AconAppNoAuthApi import javax.inject.Inject class AconAppRemoteDataSource @Inject constructor( diff --git a/data/src/main/kotlin/com/acon/acon/data/datasource/remote/MapRemoteDataSource.kt b/core/data/src/main/kotlin/com/acon/core/data/datasource/remote/MapRemoteDataSource.kt similarity index 74% rename from data/src/main/kotlin/com/acon/acon/data/datasource/remote/MapRemoteDataSource.kt rename to core/data/src/main/kotlin/com/acon/core/data/datasource/remote/MapRemoteDataSource.kt index 3f9702ece..b24a565db 100644 --- a/data/src/main/kotlin/com/acon/acon/data/datasource/remote/MapRemoteDataSource.kt +++ b/core/data/src/main/kotlin/com/acon/core/data/datasource/remote/MapRemoteDataSource.kt @@ -1,6 +1,6 @@ -package com.acon.acon.data.datasource.remote +package com.acon.core.data.datasource.remote -import com.acon.acon.data.api.remote.MapApi +import com.acon.core.data.api.remote.MapApi import javax.inject.Inject class MapRemoteDataSource @Inject constructor( diff --git a/data/src/main/kotlin/com/acon/acon/data/datasource/remote/MapSearchRemoteDataSource.kt b/core/data/src/main/kotlin/com/acon/core/data/datasource/remote/MapSearchRemoteDataSource.kt similarity index 70% rename from data/src/main/kotlin/com/acon/acon/data/datasource/remote/MapSearchRemoteDataSource.kt rename to core/data/src/main/kotlin/com/acon/core/data/datasource/remote/MapSearchRemoteDataSource.kt index dc20d05ed..72b2f386d 100644 --- a/data/src/main/kotlin/com/acon/acon/data/datasource/remote/MapSearchRemoteDataSource.kt +++ b/core/data/src/main/kotlin/com/acon/core/data/datasource/remote/MapSearchRemoteDataSource.kt @@ -1,6 +1,6 @@ -package com.acon.acon.data.datasource.remote +package com.acon.core.data.datasource.remote -import com.acon.acon.data.api.remote.MapSearchApi +import com.acon.core.data.api.remote.MapSearchApi import javax.inject.Inject class MapSearchRemoteDataSource @Inject constructor( diff --git a/data/src/main/kotlin/com/acon/acon/data/datasource/remote/OnboardingRemoteDataSource.kt b/core/data/src/main/kotlin/com/acon/core/data/datasource/remote/OnboardingRemoteDataSource.kt similarity index 63% rename from data/src/main/kotlin/com/acon/acon/data/datasource/remote/OnboardingRemoteDataSource.kt rename to core/data/src/main/kotlin/com/acon/core/data/datasource/remote/OnboardingRemoteDataSource.kt index 47394117f..1d04dd19b 100644 --- a/data/src/main/kotlin/com/acon/acon/data/datasource/remote/OnboardingRemoteDataSource.kt +++ b/core/data/src/main/kotlin/com/acon/core/data/datasource/remote/OnboardingRemoteDataSource.kt @@ -1,7 +1,7 @@ -package com.acon.acon.data.datasource.remote +package com.acon.core.data.datasource.remote -import com.acon.acon.data.dto.request.OnboardingRequest -import com.acon.acon.data.api.remote.auth.OnboardingAuthApi +import com.acon.core.data.dto.request.OnboardingRequest +import com.acon.core.data.api.remote.auth.OnboardingAuthApi import javax.inject.Inject class OnboardingRemoteDataSource @Inject constructor( diff --git a/data/src/main/kotlin/com/acon/acon/data/datasource/remote/ProfileRemoteDataSource.kt b/core/data/src/main/kotlin/com/acon/core/data/datasource/remote/ProfileRemoteDataSource.kt similarity index 79% rename from data/src/main/kotlin/com/acon/acon/data/datasource/remote/ProfileRemoteDataSource.kt rename to core/data/src/main/kotlin/com/acon/core/data/datasource/remote/ProfileRemoteDataSource.kt index 21f85b4c1..fcfc25ea2 100644 --- a/data/src/main/kotlin/com/acon/acon/data/datasource/remote/ProfileRemoteDataSource.kt +++ b/core/data/src/main/kotlin/com/acon/core/data/datasource/remote/ProfileRemoteDataSource.kt @@ -1,13 +1,13 @@ -package com.acon.acon.data.datasource.remote +package com.acon.core.data.datasource.remote -import com.acon.acon.data.dto.request.UpdateProfileRequest -import com.acon.acon.data.dto.response.profile.PreSignedUrlResponse -import com.acon.acon.data.dto.response.profile.ProfileResponse -import com.acon.acon.data.api.remote.auth.ProfileAuthApi -import com.acon.acon.data.dto.request.AreaVerificationRequest -import com.acon.acon.data.dto.request.ReplaceVerifiedAreaRequest -import com.acon.acon.data.dto.request.SaveSpotRequest -import com.acon.acon.data.dto.response.area.VerifiedAreaListResponse +import com.acon.core.data.dto.request.UpdateProfileRequest +import com.acon.core.data.dto.response.profile.PreSignedUrlResponse +import com.acon.core.data.dto.response.profile.ProfileResponse +import com.acon.core.data.api.remote.auth.ProfileAuthApi +import com.acon.core.data.dto.request.AreaVerificationRequest +import com.acon.core.data.dto.request.ReplaceVerifiedAreaRequest +import com.acon.core.data.dto.request.SaveSpotRequest +import com.acon.core.data.dto.response.area.VerifiedAreaListResponse import retrofit2.Response import javax.inject.Inject diff --git a/data/src/main/kotlin/com/acon/acon/data/datasource/remote/SpotRemoteDataSource.kt b/core/data/src/main/kotlin/com/acon/core/data/datasource/remote/SpotRemoteDataSource.kt similarity index 71% rename from data/src/main/kotlin/com/acon/acon/data/datasource/remote/SpotRemoteDataSource.kt rename to core/data/src/main/kotlin/com/acon/core/data/datasource/remote/SpotRemoteDataSource.kt index 8249b70d1..ef47c7571 100644 --- a/data/src/main/kotlin/com/acon/acon/data/datasource/remote/SpotRemoteDataSource.kt +++ b/core/data/src/main/kotlin/com/acon/core/data/datasource/remote/SpotRemoteDataSource.kt @@ -1,15 +1,15 @@ -package com.acon.acon.data.datasource.remote +package com.acon.core.data.datasource.remote import com.acon.acon.core.model.type.UserType -import com.acon.acon.data.api.remote.auth.SpotAuthApi -import com.acon.acon.data.api.remote.noauth.SpotNoAuthApi -import com.acon.acon.data.dto.request.AddBookmarkRequest -import com.acon.acon.data.dto.request.RecentNavigationLocationRequest -import com.acon.acon.data.dto.request.SpotListRequest -import com.acon.acon.data.dto.response.MenuBoardListResponse -import com.acon.acon.data.dto.response.SpotDetailResponse -import com.acon.acon.data.dto.response.SpotListResponse -import com.acon.acon.data.dto.response.profile.SavedSpotsResponse +import com.acon.core.data.api.remote.auth.SpotAuthApi +import com.acon.core.data.api.remote.noauth.SpotNoAuthApi +import com.acon.core.data.dto.request.AddBookmarkRequest +import com.acon.core.data.dto.request.RecentNavigationLocationRequest +import com.acon.core.data.dto.request.SpotListRequest +import com.acon.core.data.dto.response.MenuBoardListResponse +import com.acon.core.data.dto.response.SpotDetailResponse +import com.acon.core.data.dto.response.SpotListResponse +import com.acon.core.data.dto.response.profile.SavedSpotsResponse import javax.inject.Inject class SpotRemoteDataSource @Inject constructor( diff --git a/data/src/main/kotlin/com/acon/acon/data/datasource/remote/TokenRemoteDataSource.kt b/core/data/src/main/kotlin/com/acon/core/data/datasource/remote/TokenRemoteDataSource.kt similarity index 98% rename from data/src/main/kotlin/com/acon/acon/data/datasource/remote/TokenRemoteDataSource.kt rename to core/data/src/main/kotlin/com/acon/core/data/datasource/remote/TokenRemoteDataSource.kt index 2ff9b4a40..0294f32f0 100644 --- a/data/src/main/kotlin/com/acon/acon/data/datasource/remote/TokenRemoteDataSource.kt +++ b/core/data/src/main/kotlin/com/acon/core/data/datasource/remote/TokenRemoteDataSource.kt @@ -1,4 +1,4 @@ -package com.acon.acon.data.datasource.remote +package com.acon.core.data.datasource.remote import android.content.Context import android.os.Build @@ -10,7 +10,7 @@ import androidx.credentials.PublicKeyCredential import androidx.credentials.exceptions.GetCredentialCancellationException import androidx.credentials.exceptions.NoCredentialException import com.acon.acon.data.BuildConfig -import com.acon.acon.data.error.ErrorMessages +import com.acon.core.data.error.ErrorMessages import com.acon.acon.domain.error.user.CredentialException import com.google.android.libraries.identity.googleid.GetSignInWithGoogleOption import com.google.android.libraries.identity.googleid.GoogleIdTokenCredential diff --git a/data/src/main/kotlin/com/acon/acon/data/datasource/remote/UploadRemoteDataSource.kt b/core/data/src/main/kotlin/com/acon/core/data/datasource/remote/UploadRemoteDataSource.kt similarity index 82% rename from data/src/main/kotlin/com/acon/acon/data/datasource/remote/UploadRemoteDataSource.kt rename to core/data/src/main/kotlin/com/acon/core/data/datasource/remote/UploadRemoteDataSource.kt index e386a29e6..493d4d3bb 100644 --- a/data/src/main/kotlin/com/acon/acon/data/datasource/remote/UploadRemoteDataSource.kt +++ b/core/data/src/main/kotlin/com/acon/core/data/datasource/remote/UploadRemoteDataSource.kt @@ -1,10 +1,10 @@ -package com.acon.acon.data.datasource.remote +package com.acon.core.data.datasource.remote -import com.acon.acon.data.api.remote.auth.UploadAuthApi -import com.acon.acon.data.dto.request.ReviewRequest -import com.acon.acon.data.dto.request.ReviewRequestV2 -import com.acon.acon.data.dto.request.SubmitUploadPlaceRequest -import com.acon.acon.data.dto.response.profile.PreSignedUrlResponse +import com.acon.core.data.api.remote.auth.UploadAuthApi +import com.acon.core.data.dto.request.ReviewRequest +import com.acon.core.data.dto.request.ReviewRequestV2 +import com.acon.core.data.dto.request.SubmitUploadPlaceRequest +import com.acon.core.data.dto.response.profile.PreSignedUrlResponse import com.acon.acon.data.dto.response.upload.UploadSpotSuggestionsResponse import com.acon.acon.data.dto.response.upload.VerifyLocationResponse import javax.inject.Inject diff --git a/data/src/main/kotlin/com/acon/acon/data/datasource/remote/UserRemoteDataSource.kt b/core/data/src/main/kotlin/com/acon/core/data/datasource/remote/UserRemoteDataSource.kt similarity index 66% rename from data/src/main/kotlin/com/acon/acon/data/datasource/remote/UserRemoteDataSource.kt rename to core/data/src/main/kotlin/com/acon/core/data/datasource/remote/UserRemoteDataSource.kt index 3e5dd0739..91ec61850 100644 --- a/data/src/main/kotlin/com/acon/acon/data/datasource/remote/UserRemoteDataSource.kt +++ b/core/data/src/main/kotlin/com/acon/core/data/datasource/remote/UserRemoteDataSource.kt @@ -1,11 +1,11 @@ -package com.acon.acon.data.datasource.remote +package com.acon.core.data.datasource.remote -import com.acon.acon.data.api.remote.auth.UserAuthApi -import com.acon.acon.data.api.remote.noauth.UserNoAuthApi +import com.acon.core.data.api.remote.auth.UserAuthApi +import com.acon.core.data.api.remote.noauth.UserNoAuthApi import com.acon.acon.data.dto.request.DeleteAccountRequest -import com.acon.acon.data.dto.request.SignInRequest -import com.acon.acon.data.dto.request.SignOutRequest -import com.acon.acon.data.dto.response.SignInResponse +import com.acon.core.data.dto.request.SignInRequest +import com.acon.core.data.dto.request.SignOutRequest +import com.acon.core.data.dto.response.SignInResponse import javax.inject.Inject class UserRemoteDataSource @Inject constructor( diff --git a/data/src/main/kotlin/com/acon/acon/data/di/ApiModule.kt b/core/data/src/main/kotlin/com/acon/core/data/di/ApiModule.kt similarity index 79% rename from data/src/main/kotlin/com/acon/acon/data/di/ApiModule.kt rename to core/data/src/main/kotlin/com/acon/core/data/di/ApiModule.kt index c74b76445..021b6ff3f 100644 --- a/data/src/main/kotlin/com/acon/acon/data/di/ApiModule.kt +++ b/core/data/src/main/kotlin/com/acon/core/data/di/ApiModule.kt @@ -1,19 +1,19 @@ -package com.acon.acon.data.di +package com.acon.core.data.di import com.acon.acon.core.common.Auth import com.acon.acon.core.common.Naver import com.acon.acon.core.common.NaverDevelopers import com.acon.acon.core.common.NoAuth -import com.acon.acon.data.api.remote.noauth.AconAppNoAuthApi -import com.acon.acon.data.api.remote.MapApi -import com.acon.acon.data.api.remote.MapSearchApi -import com.acon.acon.data.api.remote.auth.OnboardingAuthApi -import com.acon.acon.data.api.remote.auth.ProfileAuthApi -import com.acon.acon.data.api.remote.auth.SpotAuthApi -import com.acon.acon.data.api.remote.noauth.SpotNoAuthApi -import com.acon.acon.data.api.remote.auth.UploadAuthApi -import com.acon.acon.data.api.remote.auth.UserAuthApi -import com.acon.acon.data.api.remote.noauth.UserNoAuthApi +import com.acon.core.data.api.remote.noauth.AconAppNoAuthApi +import com.acon.core.data.api.remote.MapApi +import com.acon.core.data.api.remote.MapSearchApi +import com.acon.core.data.api.remote.auth.OnboardingAuthApi +import com.acon.core.data.api.remote.auth.ProfileAuthApi +import com.acon.core.data.api.remote.auth.SpotAuthApi +import com.acon.core.data.api.remote.noauth.SpotNoAuthApi +import com.acon.core.data.api.remote.auth.UploadAuthApi +import com.acon.core.data.api.remote.auth.UserAuthApi +import com.acon.core.data.api.remote.noauth.UserNoAuthApi import dagger.Module import dagger.Provides import dagger.hilt.InstallIn diff --git a/data/src/main/kotlin/com/acon/acon/data/di/CacheModule.kt b/core/data/src/main/kotlin/com/acon/core/data/di/CacheModule.kt similarity index 78% rename from data/src/main/kotlin/com/acon/acon/data/di/CacheModule.kt rename to core/data/src/main/kotlin/com/acon/core/data/di/CacheModule.kt index 9839b7cb6..7ee69b483 100644 --- a/data/src/main/kotlin/com/acon/acon/data/di/CacheModule.kt +++ b/core/data/src/main/kotlin/com/acon/core/data/di/CacheModule.kt @@ -1,8 +1,8 @@ -package com.acon.acon.data.di +package com.acon.core.data.di import com.acon.acon.core.common.IODispatcher -import com.acon.acon.data.cache.ProfileInfoCache -import com.acon.acon.data.datasource.remote.ProfileRemoteDataSource +import com.acon.core.data.cache.ProfileInfoCache +import com.acon.core.data.datasource.remote.ProfileRemoteDataSource import dagger.Module import dagger.Provides import dagger.hilt.InstallIn diff --git a/data/src/main/kotlin/com/acon/acon/data/di/DataStoreModule.kt b/core/data/src/main/kotlin/com/acon/core/data/di/DataStoreModule.kt similarity index 98% rename from data/src/main/kotlin/com/acon/acon/data/di/DataStoreModule.kt rename to core/data/src/main/kotlin/com/acon/core/data/di/DataStoreModule.kt index 039d4556e..002cacafe 100644 --- a/data/src/main/kotlin/com/acon/acon/data/di/DataStoreModule.kt +++ b/core/data/src/main/kotlin/com/acon/core/data/di/DataStoreModule.kt @@ -1,4 +1,4 @@ -package com.acon.acon.data.di +package com.acon.core.data.di import android.content.Context import androidx.datastore.core.DataStore diff --git a/data/src/main/kotlin/com/acon/acon/data/di/NetworkModule.kt b/core/data/src/main/kotlin/com/acon/core/data/di/NetworkModule.kt similarity index 97% rename from data/src/main/kotlin/com/acon/acon/data/di/NetworkModule.kt rename to core/data/src/main/kotlin/com/acon/core/data/di/NetworkModule.kt index f171e811b..c45f63e82 100644 --- a/data/src/main/kotlin/com/acon/acon/data/di/NetworkModule.kt +++ b/core/data/src/main/kotlin/com/acon/core/data/di/NetworkModule.kt @@ -1,4 +1,4 @@ -package com.acon.acon.data.di +package com.acon.core.data.di import com.acon.acon.core.common.Auth import com.acon.acon.core.common.Naver @@ -9,8 +9,8 @@ import com.acon.acon.core.common.NoAuth import com.acon.acon.core.common.TokenInterceptor import com.acon.acon.core.common.UrlConstants import com.acon.acon.data.BuildConfig -import com.acon.acon.data.datasource.local.TokenLocalDataSource -import com.acon.acon.data.error.RemoteErrorCallAdapterFactory +import com.acon.core.data.datasource.local.TokenLocalDataSource +import com.acon.core.data.error.RemoteErrorCallAdapterFactory import com.jakewharton.retrofit2.converter.kotlinx.serialization.asConverterFactory import dagger.Module import dagger.Provides diff --git a/data/src/main/kotlin/com/acon/acon/data/di/RepositoryModule.kt b/core/data/src/main/kotlin/com/acon/core/data/di/RepositoryModule.kt similarity index 75% rename from data/src/main/kotlin/com/acon/acon/data/di/RepositoryModule.kt rename to core/data/src/main/kotlin/com/acon/core/data/di/RepositoryModule.kt index 6138a0571..77daa445b 100644 --- a/data/src/main/kotlin/com/acon/acon/data/di/RepositoryModule.kt +++ b/core/data/src/main/kotlin/com/acon/core/data/di/RepositoryModule.kt @@ -1,16 +1,16 @@ -package com.acon.acon.data.di +package com.acon.core.data.di -import com.acon.acon.data.session.SessionHandler -import com.acon.acon.data.session.SessionHandlerImpl -import com.acon.acon.data.repository.AconAppRepositoryImpl -import com.acon.acon.data.repository.MapRepositoryImpl -import com.acon.acon.data.repository.MapSearchRepositoryImpl -import com.acon.acon.data.repository.OnboardingRepositoryImpl -import com.acon.acon.data.repository.ProfileRepositoryImpl -import com.acon.acon.data.repository.SpotRepositoryImpl -import com.acon.acon.data.repository.TimeRepositoryImpl -import com.acon.acon.data.repository.UploadRepositoryImpl -import com.acon.acon.data.repository.UserRepositoryImpl +import com.acon.core.data.session.SessionHandler +import com.acon.core.data.session.SessionHandlerImpl +import com.acon.core.data.repository.AconAppRepositoryImpl +import com.acon.core.data.repository.MapRepositoryImpl +import com.acon.core.data.repository.MapSearchRepositoryImpl +import com.acon.core.data.repository.OnboardingRepositoryImpl +import com.acon.core.data.repository.ProfileRepositoryImpl +import com.acon.core.data.repository.SpotRepositoryImpl +import com.acon.core.data.repository.TimeRepositoryImpl +import com.acon.core.data.repository.UploadRepositoryImpl +import com.acon.core.data.repository.UserRepositoryImpl import com.acon.acon.domain.repository.AconAppRepository import com.acon.acon.domain.repository.MapRepository import com.acon.acon.domain.repository.MapSearchRepository diff --git a/data/src/main/kotlin/com/acon/acon/data/di/SocialRepositoryModule.kt b/core/data/src/main/kotlin/com/acon/core/data/di/SocialRepositoryModule.kt similarity index 83% rename from data/src/main/kotlin/com/acon/acon/data/di/SocialRepositoryModule.kt rename to core/data/src/main/kotlin/com/acon/core/data/di/SocialRepositoryModule.kt index fff36fb19..3bb61e787 100644 --- a/data/src/main/kotlin/com/acon/acon/data/di/SocialRepositoryModule.kt +++ b/core/data/src/main/kotlin/com/acon/core/data/di/SocialRepositoryModule.kt @@ -1,6 +1,6 @@ -package com.acon.acon.data.di +package com.acon.core.data.di -import com.acon.acon.data.repository.SocialRepositoryImpl +import com.acon.core.data.repository.SocialRepositoryImpl import com.acon.acon.domain.repository.SocialRepository import dagger.Binds import dagger.Module diff --git a/data/src/main/kotlin/com/acon/acon/data/dto/request/AddBookmarkRequest.kt b/core/data/src/main/kotlin/com/acon/core/data/dto/request/AddBookmarkRequest.kt similarity index 81% rename from data/src/main/kotlin/com/acon/acon/data/dto/request/AddBookmarkRequest.kt rename to core/data/src/main/kotlin/com/acon/core/data/dto/request/AddBookmarkRequest.kt index b08f1e3f1..28cbaab85 100644 --- a/data/src/main/kotlin/com/acon/acon/data/dto/request/AddBookmarkRequest.kt +++ b/core/data/src/main/kotlin/com/acon/core/data/dto/request/AddBookmarkRequest.kt @@ -1,4 +1,4 @@ -package com.acon.acon.data.dto.request +package com.acon.core.data.dto.request import kotlinx.serialization.SerialName import kotlinx.serialization.Serializable diff --git a/data/src/main/kotlin/com/acon/acon/data/dto/request/AreaVerificationRequest.kt b/core/data/src/main/kotlin/com/acon/core/data/dto/request/AreaVerificationRequest.kt similarity index 85% rename from data/src/main/kotlin/com/acon/acon/data/dto/request/AreaVerificationRequest.kt rename to core/data/src/main/kotlin/com/acon/core/data/dto/request/AreaVerificationRequest.kt index d88761c18..ffabb04cb 100644 --- a/data/src/main/kotlin/com/acon/acon/data/dto/request/AreaVerificationRequest.kt +++ b/core/data/src/main/kotlin/com/acon/core/data/dto/request/AreaVerificationRequest.kt @@ -1,4 +1,4 @@ -package com.acon.acon.data.dto.request +package com.acon.core.data.dto.request import kotlinx.serialization.SerialName import kotlinx.serialization.Serializable diff --git a/data/src/main/kotlin/com/acon/acon/data/dto/request/DeleteAccountRequest.kt b/core/data/src/main/kotlin/com/acon/core/data/dto/request/DeleteAccountRequest.kt similarity index 100% rename from data/src/main/kotlin/com/acon/acon/data/dto/request/DeleteAccountRequest.kt rename to core/data/src/main/kotlin/com/acon/core/data/dto/request/DeleteAccountRequest.kt diff --git a/data/src/main/kotlin/com/acon/acon/data/dto/request/OnboardingRequest.kt b/core/data/src/main/kotlin/com/acon/core/data/dto/request/OnboardingRequest.kt similarity index 83% rename from data/src/main/kotlin/com/acon/acon/data/dto/request/OnboardingRequest.kt rename to core/data/src/main/kotlin/com/acon/core/data/dto/request/OnboardingRequest.kt index 500dd9357..cbdd88436 100644 --- a/data/src/main/kotlin/com/acon/acon/data/dto/request/OnboardingRequest.kt +++ b/core/data/src/main/kotlin/com/acon/core/data/dto/request/OnboardingRequest.kt @@ -1,4 +1,4 @@ -package com.acon.acon.data.dto.request +package com.acon.core.data.dto.request import kotlinx.serialization.SerialName import kotlinx.serialization.Serializable diff --git a/data/src/main/kotlin/com/acon/acon/data/dto/request/RecentNavigationLocationRequest.kt b/core/data/src/main/kotlin/com/acon/core/data/dto/request/RecentNavigationLocationRequest.kt similarity index 82% rename from data/src/main/kotlin/com/acon/acon/data/dto/request/RecentNavigationLocationRequest.kt rename to core/data/src/main/kotlin/com/acon/core/data/dto/request/RecentNavigationLocationRequest.kt index 0adec56ac..79a5a5970 100644 --- a/data/src/main/kotlin/com/acon/acon/data/dto/request/RecentNavigationLocationRequest.kt +++ b/core/data/src/main/kotlin/com/acon/core/data/dto/request/RecentNavigationLocationRequest.kt @@ -1,4 +1,4 @@ -package com.acon.acon.data.dto.request +package com.acon.core.data.dto.request import kotlinx.serialization.SerialName import kotlinx.serialization.Serializable diff --git a/data/src/main/kotlin/com/acon/acon/data/dto/request/ReissueRequest.kt b/core/data/src/main/kotlin/com/acon/core/data/dto/request/ReissueRequest.kt similarity index 82% rename from data/src/main/kotlin/com/acon/acon/data/dto/request/ReissueRequest.kt rename to core/data/src/main/kotlin/com/acon/core/data/dto/request/ReissueRequest.kt index 94526f362..e7d0c699e 100644 --- a/data/src/main/kotlin/com/acon/acon/data/dto/request/ReissueRequest.kt +++ b/core/data/src/main/kotlin/com/acon/core/data/dto/request/ReissueRequest.kt @@ -1,4 +1,4 @@ -package com.acon.acon.data.dto.request +package com.acon.core.data.dto.request import kotlinx.serialization.SerialName import kotlinx.serialization.Serializable diff --git a/data/src/main/kotlin/com/acon/acon/data/dto/request/ReplaceVerifiedAreaRequest.kt b/core/data/src/main/kotlin/com/acon/core/data/dto/request/ReplaceVerifiedAreaRequest.kt similarity index 88% rename from data/src/main/kotlin/com/acon/acon/data/dto/request/ReplaceVerifiedAreaRequest.kt rename to core/data/src/main/kotlin/com/acon/core/data/dto/request/ReplaceVerifiedAreaRequest.kt index 42d510525..a60f07e8c 100644 --- a/data/src/main/kotlin/com/acon/acon/data/dto/request/ReplaceVerifiedAreaRequest.kt +++ b/core/data/src/main/kotlin/com/acon/core/data/dto/request/ReplaceVerifiedAreaRequest.kt @@ -1,4 +1,4 @@ -package com.acon.acon.data.dto.request +package com.acon.core.data.dto.request import kotlinx.serialization.SerialName import kotlinx.serialization.Serializable diff --git a/data/src/main/kotlin/com/acon/acon/data/dto/request/ReviewRequest.kt b/core/data/src/main/kotlin/com/acon/core/data/dto/request/ReviewRequest.kt similarity index 91% rename from data/src/main/kotlin/com/acon/acon/data/dto/request/ReviewRequest.kt rename to core/data/src/main/kotlin/com/acon/core/data/dto/request/ReviewRequest.kt index 26c867faf..b1d1c938e 100644 --- a/data/src/main/kotlin/com/acon/acon/data/dto/request/ReviewRequest.kt +++ b/core/data/src/main/kotlin/com/acon/core/data/dto/request/ReviewRequest.kt @@ -1,4 +1,4 @@ -package com.acon.acon.data.dto.request +package com.acon.core.data.dto.request import kotlinx.serialization.SerialName import kotlinx.serialization.Serializable diff --git a/data/src/main/kotlin/com/acon/acon/data/dto/request/SaveSpotRequest.kt b/core/data/src/main/kotlin/com/acon/core/data/dto/request/SaveSpotRequest.kt similarity index 81% rename from data/src/main/kotlin/com/acon/acon/data/dto/request/SaveSpotRequest.kt rename to core/data/src/main/kotlin/com/acon/core/data/dto/request/SaveSpotRequest.kt index 9b9496da5..28c5dfc87 100644 --- a/data/src/main/kotlin/com/acon/acon/data/dto/request/SaveSpotRequest.kt +++ b/core/data/src/main/kotlin/com/acon/core/data/dto/request/SaveSpotRequest.kt @@ -1,4 +1,4 @@ -package com.acon.acon.data.dto.request +package com.acon.core.data.dto.request import kotlinx.serialization.SerialName import kotlinx.serialization.Serializable diff --git a/data/src/main/kotlin/com/acon/acon/data/dto/request/SignInRequest.kt b/core/data/src/main/kotlin/com/acon/core/data/dto/request/SignInRequest.kt similarity index 54% rename from data/src/main/kotlin/com/acon/acon/data/dto/request/SignInRequest.kt rename to core/data/src/main/kotlin/com/acon/core/data/dto/request/SignInRequest.kt index 9fa810976..296249731 100644 --- a/data/src/main/kotlin/com/acon/acon/data/dto/request/SignInRequest.kt +++ b/core/data/src/main/kotlin/com/acon/core/data/dto/request/SignInRequest.kt @@ -1,10 +1,11 @@ -package com.acon.acon.data.dto.request +package com.acon.core.data.dto.request +import com.acon.acon.core.model.type.SocialType import kotlinx.serialization.SerialName import kotlinx.serialization.Serializable @Serializable data class SignInRequest( - @SerialName("socialType") val socialType: com.acon.acon.core.model.type.SocialType?, + @SerialName("socialType") val socialType: SocialType?, @SerialName("idToken") val idToken: String?, ) diff --git a/data/src/main/kotlin/com/acon/acon/data/dto/request/SignOutRequest.kt b/core/data/src/main/kotlin/com/acon/core/data/dto/request/SignOutRequest.kt similarity index 82% rename from data/src/main/kotlin/com/acon/acon/data/dto/request/SignOutRequest.kt rename to core/data/src/main/kotlin/com/acon/core/data/dto/request/SignOutRequest.kt index 8ad334d08..04d3d26e4 100644 --- a/data/src/main/kotlin/com/acon/acon/data/dto/request/SignOutRequest.kt +++ b/core/data/src/main/kotlin/com/acon/core/data/dto/request/SignOutRequest.kt @@ -1,4 +1,4 @@ -package com.acon.acon.data.dto.request +package com.acon.core.data.dto.request import kotlinx.serialization.SerialName import kotlinx.serialization.Serializable diff --git a/data/src/main/kotlin/com/acon/acon/data/dto/request/SpotListRequest.kt b/core/data/src/main/kotlin/com/acon/core/data/dto/request/SpotListRequest.kt similarity index 94% rename from data/src/main/kotlin/com/acon/acon/data/dto/request/SpotListRequest.kt rename to core/data/src/main/kotlin/com/acon/core/data/dto/request/SpotListRequest.kt index 408cdb05d..559b7d1f0 100644 --- a/data/src/main/kotlin/com/acon/acon/data/dto/request/SpotListRequest.kt +++ b/core/data/src/main/kotlin/com/acon/core/data/dto/request/SpotListRequest.kt @@ -1,4 +1,4 @@ -package com.acon.acon.data.dto.request +package com.acon.core.data.dto.request import kotlinx.serialization.SerialName import kotlinx.serialization.Serializable diff --git a/data/src/main/kotlin/com/acon/acon/data/dto/request/SubmitUploadPlaceRequest.kt b/core/data/src/main/kotlin/com/acon/core/data/dto/request/SubmitUploadPlaceRequest.kt similarity index 94% rename from data/src/main/kotlin/com/acon/acon/data/dto/request/SubmitUploadPlaceRequest.kt rename to core/data/src/main/kotlin/com/acon/core/data/dto/request/SubmitUploadPlaceRequest.kt index a725e3a9e..e1211300a 100644 --- a/data/src/main/kotlin/com/acon/acon/data/dto/request/SubmitUploadPlaceRequest.kt +++ b/core/data/src/main/kotlin/com/acon/core/data/dto/request/SubmitUploadPlaceRequest.kt @@ -1,4 +1,4 @@ -package com.acon.acon.data.dto.request +package com.acon.core.data.dto.request import com.acon.acon.core.model.type.SpotType import kotlinx.serialization.SerialName diff --git a/data/src/main/kotlin/com/acon/acon/data/dto/request/UpdateProfileRequest.kt b/core/data/src/main/kotlin/com/acon/core/data/dto/request/UpdateProfileRequest.kt similarity index 92% rename from data/src/main/kotlin/com/acon/acon/data/dto/request/UpdateProfileRequest.kt rename to core/data/src/main/kotlin/com/acon/core/data/dto/request/UpdateProfileRequest.kt index 773fa2ca1..b66092b44 100644 --- a/data/src/main/kotlin/com/acon/acon/data/dto/request/UpdateProfileRequest.kt +++ b/core/data/src/main/kotlin/com/acon/core/data/dto/request/UpdateProfileRequest.kt @@ -1,4 +1,4 @@ -package com.acon.acon.data.dto.request +package com.acon.core.data.dto.request import kotlinx.serialization.EncodeDefault import kotlinx.serialization.ExperimentalSerializationApi diff --git a/data/src/main/kotlin/com/acon/acon/data/dto/response/GeocodingResponse.kt b/core/data/src/main/kotlin/com/acon/core/data/dto/response/GeocodingResponse.kt similarity index 96% rename from data/src/main/kotlin/com/acon/acon/data/dto/response/GeocodingResponse.kt rename to core/data/src/main/kotlin/com/acon/core/data/dto/response/GeocodingResponse.kt index 7c89a2846..fbf70d4da 100644 --- a/data/src/main/kotlin/com/acon/acon/data/dto/response/GeocodingResponse.kt +++ b/core/data/src/main/kotlin/com/acon/core/data/dto/response/GeocodingResponse.kt @@ -1,4 +1,4 @@ -package com.acon.acon.data.dto.response +package com.acon.core.data.dto.response import kotlinx.serialization.SerialName import kotlinx.serialization.Serializable diff --git a/data/src/main/kotlin/com/acon/acon/data/dto/response/MapSearchResponse.kt b/core/data/src/main/kotlin/com/acon/core/data/dto/response/MapSearchResponse.kt similarity index 91% rename from data/src/main/kotlin/com/acon/acon/data/dto/response/MapSearchResponse.kt rename to core/data/src/main/kotlin/com/acon/core/data/dto/response/MapSearchResponse.kt index d7ffe3ee0..21d6d1b2b 100644 --- a/data/src/main/kotlin/com/acon/acon/data/dto/response/MapSearchResponse.kt +++ b/core/data/src/main/kotlin/com/acon/core/data/dto/response/MapSearchResponse.kt @@ -1,4 +1,4 @@ -package com.acon.acon.data.dto.response +package com.acon.core.data.dto.response import kotlinx.serialization.SerialName import kotlinx.serialization.Serializable diff --git a/data/src/main/kotlin/com/acon/acon/data/dto/response/MenuBoardListResponse.kt b/core/data/src/main/kotlin/com/acon/core/data/dto/response/MenuBoardListResponse.kt similarity index 73% rename from data/src/main/kotlin/com/acon/acon/data/dto/response/MenuBoardListResponse.kt rename to core/data/src/main/kotlin/com/acon/core/data/dto/response/MenuBoardListResponse.kt index 2714373f0..87c64f345 100644 --- a/data/src/main/kotlin/com/acon/acon/data/dto/response/MenuBoardListResponse.kt +++ b/core/data/src/main/kotlin/com/acon/core/data/dto/response/MenuBoardListResponse.kt @@ -1,4 +1,4 @@ -package com.acon.acon.data.dto.response +package com.acon.core.data.dto.response import com.acon.acon.core.model.model.spot.MenuBoardList import kotlinx.serialization.SerialName @@ -8,7 +8,7 @@ import kotlinx.serialization.Serializable data class MenuBoardListResponse( @SerialName("menuboardImageList") val menuBoardImageList: List ) { - fun toMenuBoardList() = com.acon.acon.core.model.model.spot.MenuBoardList( + fun toMenuBoardList() = MenuBoardList( menuBoardImageList = menuBoardImageList ) } \ No newline at end of file diff --git a/data/src/main/kotlin/com/acon/acon/data/dto/response/SignInResponse.kt b/core/data/src/main/kotlin/com/acon/core/data/dto/response/SignInResponse.kt similarity index 94% rename from data/src/main/kotlin/com/acon/acon/data/dto/response/SignInResponse.kt rename to core/data/src/main/kotlin/com/acon/core/data/dto/response/SignInResponse.kt index 42297b739..de6135dc4 100644 --- a/data/src/main/kotlin/com/acon/acon/data/dto/response/SignInResponse.kt +++ b/core/data/src/main/kotlin/com/acon/core/data/dto/response/SignInResponse.kt @@ -1,4 +1,4 @@ -package com.acon.acon.data.dto.response +package com.acon.core.data.dto.response import com.acon.acon.core.model.model.user.VerificationStatus import kotlinx.serialization.SerialName diff --git a/data/src/main/kotlin/com/acon/acon/data/dto/response/SpotDetailResponse.kt b/core/data/src/main/kotlin/com/acon/core/data/dto/response/SpotDetailResponse.kt similarity index 89% rename from data/src/main/kotlin/com/acon/acon/data/dto/response/SpotDetailResponse.kt rename to core/data/src/main/kotlin/com/acon/core/data/dto/response/SpotDetailResponse.kt index a625e94c4..165990a88 100644 --- a/data/src/main/kotlin/com/acon/acon/data/dto/response/SpotDetailResponse.kt +++ b/core/data/src/main/kotlin/com/acon/core/data/dto/response/SpotDetailResponse.kt @@ -1,4 +1,4 @@ -package com.acon.acon.data.dto.response +package com.acon.core.data.dto.response import com.acon.acon.core.model.model.spot.SignatureMenu import com.acon.acon.core.model.model.spot.SpotDetail @@ -21,7 +21,7 @@ data class SpotDetailResponse( @SerialName("latitude") val latitude: Double, @SerialName("longitude") val longitude: Double ) { - fun toSpotDetail() = com.acon.acon.core.model.model.spot.SpotDetail( + fun toSpotDetail() = SpotDetail( spotId = spotId, imageList = imageList ?: emptyList(), name = name, @@ -45,7 +45,7 @@ data class SignatureMenuResponse( @SerialName("name") val name: String, @SerialName("price") val price: Int ) { - fun toSignatureMenu() = com.acon.acon.core.model.model.spot.SignatureMenu( + fun toSignatureMenu() = SignatureMenu( name = name, price = price ) diff --git a/data/src/main/kotlin/com/acon/acon/data/dto/response/SpotListResponse.kt b/core/data/src/main/kotlin/com/acon/core/data/dto/response/SpotListResponse.kt similarity index 67% rename from data/src/main/kotlin/com/acon/acon/data/dto/response/SpotListResponse.kt rename to core/data/src/main/kotlin/com/acon/core/data/dto/response/SpotListResponse.kt index b1b7e9854..387e545a7 100644 --- a/data/src/main/kotlin/com/acon/acon/data/dto/response/SpotListResponse.kt +++ b/core/data/src/main/kotlin/com/acon/core/data/dto/response/SpotListResponse.kt @@ -1,4 +1,4 @@ -package com.acon.acon.data.dto.response +package com.acon.core.data.dto.response import com.acon.acon.core.common.utils.toLocalTime import com.acon.acon.core.model.model.spot.Spot @@ -12,11 +12,11 @@ import java.time.LocalTime @Serializable data class SpotListResponse( - @SerialName("transportMode") val transportMode: com.acon.acon.core.model.type.TransportMode?, + @SerialName("transportMode") val transportMode: TransportMode?, @SerialName("spotList") val spotList: List? ) { - fun toSpotList() = com.acon.acon.core.model.model.spot.SpotList( - transportMode = transportMode ?: com.acon.acon.core.model.type.TransportMode.WALKING, + fun toSpotList() = SpotList( + transportMode = transportMode ?: TransportMode.WALKING, spots = spotList?.map { it.toSpot() } ?: emptyList(), ) } @@ -36,20 +36,20 @@ data class SpotResponse( @SerialName("longitude") val longitude: Double?, ) { - fun toSpot() = com.acon.acon.core.model.model.spot.Spot( + fun toSpot() = Spot( id = id ?: 0L, image = image.orEmpty(), name = name.orEmpty(), acorn = acornCount ?: 0, tags = tags?.mapNotNull { tagString -> when (tagString) { - "NEW" -> com.acon.acon.core.model.type.TagType.NEW - "LOCAL" -> com.acon.acon.core.model.type.TagType.LOCAL - "TOP 1" -> com.acon.acon.core.model.type.TagType.TOP_1 - "TOP 2" -> com.acon.acon.core.model.type.TagType.TOP_2 - "TOP 3" -> com.acon.acon.core.model.type.TagType.TOP_3 - "TOP 4" -> com.acon.acon.core.model.type.TagType.TOP_4 - "TOP 5" -> com.acon.acon.core.model.type.TagType.TOP_5 + "NEW" -> TagType.NEW + "LOCAL" -> TagType.LOCAL + "TOP 1" -> TagType.TOP_1 + "TOP 2" -> TagType.TOP_2 + "TOP 3" -> TagType.TOP_3 + "TOP 4" -> TagType.TOP_4 + "TOP 5" -> TagType.TOP_5 else -> { Timber.e("Unknown tag type: $tagString") null diff --git a/data/src/main/kotlin/com/acon/acon/data/dto/response/TokenResponse.kt b/core/data/src/main/kotlin/com/acon/core/data/dto/response/TokenResponse.kt similarity index 85% rename from data/src/main/kotlin/com/acon/acon/data/dto/response/TokenResponse.kt rename to core/data/src/main/kotlin/com/acon/core/data/dto/response/TokenResponse.kt index ae114dd4e..b821e51ab 100644 --- a/data/src/main/kotlin/com/acon/acon/data/dto/response/TokenResponse.kt +++ b/core/data/src/main/kotlin/com/acon/core/data/dto/response/TokenResponse.kt @@ -1,4 +1,4 @@ -package com.acon.acon.data.dto.response +package com.acon.core.data.dto.response import kotlinx.serialization.SerialName import kotlinx.serialization.Serializable diff --git a/data/src/main/kotlin/com/acon/acon/data/dto/response/app/ShouldUpdateResponse.kt b/core/data/src/main/kotlin/com/acon/core/data/dto/response/app/ShouldUpdateResponse.kt similarity index 81% rename from data/src/main/kotlin/com/acon/acon/data/dto/response/app/ShouldUpdateResponse.kt rename to core/data/src/main/kotlin/com/acon/core/data/dto/response/app/ShouldUpdateResponse.kt index 6698a59fc..f3b162fcd 100644 --- a/data/src/main/kotlin/com/acon/acon/data/dto/response/app/ShouldUpdateResponse.kt +++ b/core/data/src/main/kotlin/com/acon/core/data/dto/response/app/ShouldUpdateResponse.kt @@ -1,4 +1,4 @@ -package com.acon.acon.data.dto.response.app +package com.acon.core.data.dto.response.app import kotlinx.serialization.SerialName import kotlinx.serialization.Serializable diff --git a/data/src/main/kotlin/com/acon/acon/data/dto/response/area/AreaVerificationResponse.kt b/core/data/src/main/kotlin/com/acon/core/data/dto/response/area/AreaVerificationResponse.kt similarity index 77% rename from data/src/main/kotlin/com/acon/acon/data/dto/response/area/AreaVerificationResponse.kt rename to core/data/src/main/kotlin/com/acon/core/data/dto/response/area/AreaVerificationResponse.kt index 74586297e..76ee3e6f0 100644 --- a/data/src/main/kotlin/com/acon/acon/data/dto/response/area/AreaVerificationResponse.kt +++ b/core/data/src/main/kotlin/com/acon/core/data/dto/response/area/AreaVerificationResponse.kt @@ -1,4 +1,4 @@ -package com.acon.acon.data.dto.response.area +package com.acon.core.data.dto.response.area import com.acon.acon.core.model.model.area.Area import kotlinx.serialization.SerialName @@ -9,7 +9,7 @@ data class AreaVerificationResponse( @SerialName("verifiedAreaId") val verifiedAreaId: Long, @SerialName("name") val name: String ) { - fun toArea() = com.acon.acon.core.model.model.area.Area( + fun toArea() = Area( verifiedAreaId = verifiedAreaId, name = name ) diff --git a/data/src/main/kotlin/com/acon/acon/data/dto/response/area/VerifiedAreaListResponse.kt b/core/data/src/main/kotlin/com/acon/core/data/dto/response/area/VerifiedAreaListResponse.kt similarity index 80% rename from data/src/main/kotlin/com/acon/acon/data/dto/response/area/VerifiedAreaListResponse.kt rename to core/data/src/main/kotlin/com/acon/core/data/dto/response/area/VerifiedAreaListResponse.kt index 4055ccf40..591294c66 100644 --- a/data/src/main/kotlin/com/acon/acon/data/dto/response/area/VerifiedAreaListResponse.kt +++ b/core/data/src/main/kotlin/com/acon/core/data/dto/response/area/VerifiedAreaListResponse.kt @@ -1,4 +1,4 @@ -package com.acon.acon.data.dto.response.area +package com.acon.core.data.dto.response.area import com.acon.acon.core.model.model.area.Area import kotlinx.serialization.SerialName @@ -14,7 +14,7 @@ data class VerifiedAreaResponse( @SerialName("verifiedAreaId") val id: Long, @SerialName("name") val name: String, ) { - fun toVerifiedArea() = com.acon.acon.core.model.model.area.Area( + fun toVerifiedArea() = Area( verifiedAreaId = id, name = name ) diff --git a/data/src/main/kotlin/com/acon/acon/data/dto/response/profile/PreSignedUrlResponse.kt b/core/data/src/main/kotlin/com/acon/core/data/dto/response/profile/PreSignedUrlResponse.kt similarity index 74% rename from data/src/main/kotlin/com/acon/acon/data/dto/response/profile/PreSignedUrlResponse.kt rename to core/data/src/main/kotlin/com/acon/core/data/dto/response/profile/PreSignedUrlResponse.kt index 910211a50..90b3a122b 100644 --- a/data/src/main/kotlin/com/acon/acon/data/dto/response/profile/PreSignedUrlResponse.kt +++ b/core/data/src/main/kotlin/com/acon/core/data/dto/response/profile/PreSignedUrlResponse.kt @@ -1,4 +1,4 @@ -package com.acon.acon.data.dto.response.profile +package com.acon.core.data.dto.response.profile import com.acon.acon.core.model.model.profile.PreSignedUrl import kotlinx.serialization.SerialName @@ -9,7 +9,7 @@ data class PreSignedUrlResponse( @SerialName("fileName") val fileName: String, @SerialName("preSignedUrl") val preSignedUrl: String, ) { - fun toPreSignedUrl() = com.acon.acon.core.model.model.profile.PreSignedUrl( + fun toPreSignedUrl() = PreSignedUrl( fileName = fileName, preSignedUrl = preSignedUrl, ) diff --git a/data/src/main/kotlin/com/acon/acon/data/dto/response/profile/ProfileResponse.kt b/core/data/src/main/kotlin/com/acon/core/data/dto/response/profile/ProfileResponse.kt similarity index 82% rename from data/src/main/kotlin/com/acon/acon/data/dto/response/profile/ProfileResponse.kt rename to core/data/src/main/kotlin/com/acon/core/data/dto/response/profile/ProfileResponse.kt index 67a2b09b3..987e5c088 100644 --- a/data/src/main/kotlin/com/acon/acon/data/dto/response/profile/ProfileResponse.kt +++ b/core/data/src/main/kotlin/com/acon/core/data/dto/response/profile/ProfileResponse.kt @@ -1,4 +1,4 @@ -package com.acon.acon.data.dto.response.profile +package com.acon.core.data.dto.response.profile import com.acon.acon.core.model.model.profile.ProfileInfo import kotlinx.serialization.SerialName @@ -11,7 +11,7 @@ data class ProfileResponse( @SerialName("birthDate") val birthDate: String? = null, @SerialName("savedSpotList") val savedSpotList: List, ) { - fun toProfile() = com.acon.acon.core.model.model.profile.ProfileInfo( + fun toProfile() = ProfileInfo( image = image, nickname = nickname, birthDate = birthDate, diff --git a/data/src/main/kotlin/com/acon/acon/data/dto/response/profile/SavedSpotsResponse.kt b/core/data/src/main/kotlin/com/acon/core/data/dto/response/profile/SavedSpotsResponse.kt similarity index 81% rename from data/src/main/kotlin/com/acon/acon/data/dto/response/profile/SavedSpotsResponse.kt rename to core/data/src/main/kotlin/com/acon/core/data/dto/response/profile/SavedSpotsResponse.kt index 574a9c47b..8756b01fc 100644 --- a/data/src/main/kotlin/com/acon/acon/data/dto/response/profile/SavedSpotsResponse.kt +++ b/core/data/src/main/kotlin/com/acon/core/data/dto/response/profile/SavedSpotsResponse.kt @@ -1,4 +1,4 @@ -package com.acon.acon.data.dto.response.profile +package com.acon.core.data.dto.response.profile import com.acon.acon.core.model.model.profile.SavedSpot import kotlinx.serialization.SerialName @@ -16,7 +16,7 @@ data class SavedSpotResponse( @SerialName("image") val image: String? ) { - fun toSavedSpot() = com.acon.acon.core.model.model.profile.SavedSpot( + fun toSavedSpot() = SavedSpot( spotId = spotId ?: 0L, name = name.orEmpty(), image = image.orEmpty() diff --git a/data/src/main/kotlin/com/acon/acon/data/dto/response/upload/SearchedSpotsResponse.kt b/core/data/src/main/kotlin/com/acon/core/data/dto/response/upload/SearchedSpotsResponse.kt similarity index 100% rename from data/src/main/kotlin/com/acon/acon/data/dto/response/upload/SearchedSpotsResponse.kt rename to core/data/src/main/kotlin/com/acon/core/data/dto/response/upload/SearchedSpotsResponse.kt diff --git a/data/src/main/kotlin/com/acon/acon/data/dto/response/upload/UploadSpotSuggestionsResponse.kt b/core/data/src/main/kotlin/com/acon/core/data/dto/response/upload/UploadSpotSuggestionsResponse.kt similarity index 100% rename from data/src/main/kotlin/com/acon/acon/data/dto/response/upload/UploadSpotSuggestionsResponse.kt rename to core/data/src/main/kotlin/com/acon/core/data/dto/response/upload/UploadSpotSuggestionsResponse.kt diff --git a/data/src/main/kotlin/com/acon/acon/data/dto/response/upload/VerifyLocationResponse.kt b/core/data/src/main/kotlin/com/acon/core/data/dto/response/upload/VerifyLocationResponse.kt similarity index 100% rename from data/src/main/kotlin/com/acon/acon/data/dto/response/upload/VerifyLocationResponse.kt rename to core/data/src/main/kotlin/com/acon/core/data/dto/response/upload/VerifyLocationResponse.kt diff --git a/data/src/main/kotlin/com/acon/acon/data/error/ErrorCallAdapter.kt b/core/data/src/main/kotlin/com/acon/core/data/error/ErrorCallAdapter.kt similarity index 99% rename from data/src/main/kotlin/com/acon/acon/data/error/ErrorCallAdapter.kt rename to core/data/src/main/kotlin/com/acon/core/data/error/ErrorCallAdapter.kt index f73273bd6..50c2b74ac 100644 --- a/data/src/main/kotlin/com/acon/acon/data/error/ErrorCallAdapter.kt +++ b/core/data/src/main/kotlin/com/acon/core/data/error/ErrorCallAdapter.kt @@ -1,4 +1,4 @@ -package com.acon.acon.data.error +package com.acon.core.data.error import kotlinx.serialization.json.Json import okhttp3.Request diff --git a/data/src/main/kotlin/com/acon/acon/data/error/ErrorMessages.kt b/core/data/src/main/kotlin/com/acon/core/data/error/ErrorMessages.kt similarity index 93% rename from data/src/main/kotlin/com/acon/acon/data/error/ErrorMessages.kt rename to core/data/src/main/kotlin/com/acon/core/data/error/ErrorMessages.kt index 7b057a1a3..dd57e166c 100644 --- a/data/src/main/kotlin/com/acon/acon/data/error/ErrorMessages.kt +++ b/core/data/src/main/kotlin/com/acon/core/data/error/ErrorMessages.kt @@ -1,4 +1,4 @@ -package com.acon.acon.data.error +package com.acon.core.data.error object ErrorMessages { const val USER_CANCELED = "사용자가 로그인 과정을 취소했습니다." diff --git a/data/src/main/kotlin/com/acon/acon/data/error/ErrorUtils.kt b/core/data/src/main/kotlin/com/acon/core/data/error/ErrorUtils.kt similarity index 96% rename from data/src/main/kotlin/com/acon/acon/data/error/ErrorUtils.kt rename to core/data/src/main/kotlin/com/acon/core/data/error/ErrorUtils.kt index ca86f9dd3..47d4257f2 100644 --- a/data/src/main/kotlin/com/acon/acon/data/error/ErrorUtils.kt +++ b/core/data/src/main/kotlin/com/acon/core/data/error/ErrorUtils.kt @@ -1,4 +1,4 @@ -package com.acon.acon.data.error +package com.acon.core.data.error import com.acon.acon.domain.error.RootError import timber.log.Timber diff --git a/data/src/main/kotlin/com/acon/acon/data/error/NetworkErrorResponse.kt b/core/data/src/main/kotlin/com/acon/core/data/error/NetworkErrorResponse.kt similarity index 86% rename from data/src/main/kotlin/com/acon/acon/data/error/NetworkErrorResponse.kt rename to core/data/src/main/kotlin/com/acon/core/data/error/NetworkErrorResponse.kt index dfba7c4c0..195f9b2c6 100644 --- a/data/src/main/kotlin/com/acon/acon/data/error/NetworkErrorResponse.kt +++ b/core/data/src/main/kotlin/com/acon/core/data/error/NetworkErrorResponse.kt @@ -1,4 +1,4 @@ -package com.acon.acon.data.error +package com.acon.core.data.error import kotlinx.serialization.SerialName import kotlinx.serialization.Serializable diff --git a/data/src/main/kotlin/com/acon/acon/data/error/RemoteError.kt b/core/data/src/main/kotlin/com/acon/core/data/error/RemoteError.kt similarity index 96% rename from data/src/main/kotlin/com/acon/acon/data/error/RemoteError.kt rename to core/data/src/main/kotlin/com/acon/core/data/error/RemoteError.kt index 4645edd5c..4342d7abe 100644 --- a/data/src/main/kotlin/com/acon/acon/data/error/RemoteError.kt +++ b/core/data/src/main/kotlin/com/acon/core/data/error/RemoteError.kt @@ -1,4 +1,4 @@ -package com.acon.acon.data.error +package com.acon.core.data.error import retrofit2.HttpException import retrofit2.Response diff --git a/data/src/main/kotlin/com/acon/acon/data/repository/AconAppRepositoryImpl.kt b/core/data/src/main/kotlin/com/acon/core/data/repository/AconAppRepositoryImpl.kt similarity index 78% rename from data/src/main/kotlin/com/acon/acon/data/repository/AconAppRepositoryImpl.kt rename to core/data/src/main/kotlin/com/acon/core/data/repository/AconAppRepositoryImpl.kt index 51fe14662..498be3829 100644 --- a/data/src/main/kotlin/com/acon/acon/data/repository/AconAppRepositoryImpl.kt +++ b/core/data/src/main/kotlin/com/acon/core/data/repository/AconAppRepositoryImpl.kt @@ -1,7 +1,7 @@ -package com.acon.acon.data.repository +package com.acon.core.data.repository -import com.acon.acon.data.datasource.remote.AconAppRemoteDataSource -import com.acon.acon.data.error.runCatchingWith +import com.acon.core.data.datasource.remote.AconAppRemoteDataSource +import com.acon.core.data.error.runCatchingWith import com.acon.acon.domain.error.app.FetchShouldUpdateError import com.acon.acon.domain.repository.AconAppRepository import javax.inject.Inject diff --git a/data/src/main/kotlin/com/acon/acon/data/repository/MapRepositoryImpl.kt b/core/data/src/main/kotlin/com/acon/core/data/repository/MapRepositoryImpl.kt similarity index 78% rename from data/src/main/kotlin/com/acon/acon/data/repository/MapRepositoryImpl.kt rename to core/data/src/main/kotlin/com/acon/core/data/repository/MapRepositoryImpl.kt index 612b3797b..6e0c4fcd6 100644 --- a/data/src/main/kotlin/com/acon/acon/data/repository/MapRepositoryImpl.kt +++ b/core/data/src/main/kotlin/com/acon/core/data/repository/MapRepositoryImpl.kt @@ -1,7 +1,7 @@ -package com.acon.acon.data.repository +package com.acon.core.data.repository -import com.acon.acon.data.datasource.remote.MapRemoteDataSource -import com.acon.acon.data.error.runCatchingWith +import com.acon.core.data.datasource.remote.MapRemoteDataSource +import com.acon.core.data.error.runCatchingWith import com.acon.acon.domain.repository.MapRepository import javax.inject.Inject diff --git a/data/src/main/kotlin/com/acon/acon/data/repository/MapSearchRepositoryImpl.kt b/core/data/src/main/kotlin/com/acon/core/data/repository/MapSearchRepositoryImpl.kt similarity index 91% rename from data/src/main/kotlin/com/acon/acon/data/repository/MapSearchRepositoryImpl.kt rename to core/data/src/main/kotlin/com/acon/core/data/repository/MapSearchRepositoryImpl.kt index 44e88e5c0..4a318991c 100644 --- a/data/src/main/kotlin/com/acon/acon/data/repository/MapSearchRepositoryImpl.kt +++ b/core/data/src/main/kotlin/com/acon/core/data/repository/MapSearchRepositoryImpl.kt @@ -1,8 +1,8 @@ -package com.acon.acon.data.repository +package com.acon.core.data.repository import com.acon.acon.core.model.model.upload.SearchedSpotByMap -import com.acon.acon.data.datasource.remote.MapSearchRemoteDataSource -import com.acon.acon.data.error.runCatchingWith +import com.acon.core.data.datasource.remote.MapSearchRemoteDataSource +import com.acon.core.data.error.runCatchingWith import com.acon.acon.domain.repository.MapSearchRepository import javax.inject.Inject diff --git a/data/src/main/kotlin/com/acon/acon/data/repository/OnboardingRepositoryImpl.kt b/core/data/src/main/kotlin/com/acon/core/data/repository/OnboardingRepositoryImpl.kt similarity index 83% rename from data/src/main/kotlin/com/acon/acon/data/repository/OnboardingRepositoryImpl.kt rename to core/data/src/main/kotlin/com/acon/core/data/repository/OnboardingRepositoryImpl.kt index aed15f717..e90e0e468 100644 --- a/data/src/main/kotlin/com/acon/acon/data/repository/OnboardingRepositoryImpl.kt +++ b/core/data/src/main/kotlin/com/acon/core/data/repository/OnboardingRepositoryImpl.kt @@ -1,12 +1,12 @@ -package com.acon.acon.data.repository +package com.acon.core.data.repository -import com.acon.acon.data.datasource.remote.OnboardingRemoteDataSource -import com.acon.acon.data.dto.request.OnboardingRequest -import com.acon.acon.data.error.runCatchingWith +import com.acon.core.data.datasource.remote.OnboardingRemoteDataSource +import com.acon.core.data.dto.request.OnboardingRequest +import com.acon.core.data.error.runCatchingWith import com.acon.acon.domain.error.onboarding.PostOnboardingResultError import com.acon.acon.domain.repository.OnboardingRepository import com.acon.acon.core.model.type.FoodType -import com.acon.acon.data.datasource.local.OnboardingLocalDataSource +import com.acon.core.data.datasource.local.OnboardingLocalDataSource import com.acon.acon.domain.repository.UserRepository import javax.inject.Inject diff --git a/data/src/main/kotlin/com/acon/acon/data/repository/ProfileRepositoryImpl.kt b/core/data/src/main/kotlin/com/acon/core/data/repository/ProfileRepositoryImpl.kt similarity index 94% rename from data/src/main/kotlin/com/acon/acon/data/repository/ProfileRepositoryImpl.kt rename to core/data/src/main/kotlin/com/acon/core/data/repository/ProfileRepositoryImpl.kt index 5db24ee8b..5bcd00581 100644 --- a/data/src/main/kotlin/com/acon/acon/data/repository/ProfileRepositoryImpl.kt +++ b/core/data/src/main/kotlin/com/acon/core/data/repository/ProfileRepositoryImpl.kt @@ -1,11 +1,11 @@ -package com.acon.acon.data.repository +package com.acon.core.data.repository import com.acon.acon.core.common.IODispatcher import com.acon.acon.core.model.model.area.Area -import com.acon.acon.data.cache.ProfileInfoCache -import com.acon.acon.data.datasource.remote.ProfileRemoteDataSource -import com.acon.acon.data.dto.request.SaveSpotRequest -import com.acon.acon.data.error.runCatchingWith +import com.acon.core.data.cache.ProfileInfoCache +import com.acon.core.data.datasource.remote.ProfileRemoteDataSource +import com.acon.core.data.dto.request.SaveSpotRequest +import com.acon.core.data.error.runCatchingWith import com.acon.acon.domain.error.profile.SaveSpotError import com.acon.acon.domain.error.profile.ValidateNicknameError import com.acon.acon.core.model.model.profile.PreSignedUrl @@ -22,7 +22,6 @@ import kotlinx.coroutines.flow.SharingStarted import kotlinx.coroutines.flow.emitAll import kotlinx.coroutines.flow.flow import kotlinx.coroutines.flow.stateIn -import kotlinx.coroutines.flow.transform import javax.inject.Inject class ProfileRepositoryImpl @Inject constructor( diff --git a/data/src/main/kotlin/com/acon/acon/data/repository/SocialRepositoryImpl.kt b/core/data/src/main/kotlin/com/acon/core/data/repository/SocialRepositoryImpl.kt similarity index 84% rename from data/src/main/kotlin/com/acon/acon/data/repository/SocialRepositoryImpl.kt rename to core/data/src/main/kotlin/com/acon/core/data/repository/SocialRepositoryImpl.kt index 7fe9a9b09..2eda37b5a 100644 --- a/data/src/main/kotlin/com/acon/acon/data/repository/SocialRepositoryImpl.kt +++ b/core/data/src/main/kotlin/com/acon/core/data/repository/SocialRepositoryImpl.kt @@ -1,7 +1,7 @@ -package com.acon.acon.data.repository +package com.acon.core.data.repository -import com.acon.acon.data.datasource.remote.TokenRemoteDataSource -import com.acon.acon.data.error.runCatchingWith +import com.acon.core.data.datasource.remote.TokenRemoteDataSource +import com.acon.core.data.error.runCatchingWith import com.acon.acon.domain.error.user.PostSignInError import com.acon.acon.core.model.model.user.VerificationStatus import com.acon.acon.domain.repository.SocialRepository diff --git a/data/src/main/kotlin/com/acon/acon/data/repository/SpotRepositoryImpl.kt b/core/data/src/main/kotlin/com/acon/core/data/repository/SpotRepositoryImpl.kt similarity index 89% rename from data/src/main/kotlin/com/acon/acon/data/repository/SpotRepositoryImpl.kt rename to core/data/src/main/kotlin/com/acon/core/data/repository/SpotRepositoryImpl.kt index 3ee4843cc..fe1ccd834 100644 --- a/data/src/main/kotlin/com/acon/acon/data/repository/SpotRepositoryImpl.kt +++ b/core/data/src/main/kotlin/com/acon/core/data/repository/SpotRepositoryImpl.kt @@ -1,19 +1,19 @@ -package com.acon.acon.data.repository +package com.acon.core.data.repository import com.acon.acon.core.model.model.profile.SavedSpot import com.acon.acon.core.model.model.spot.Condition import com.acon.acon.core.model.model.spot.MenuBoardList import com.acon.acon.core.model.model.spot.SpotDetail import com.acon.acon.core.model.model.spot.SpotList -import com.acon.acon.data.cache.ProfileInfoCache -import com.acon.acon.data.datasource.remote.SpotRemoteDataSource -import com.acon.acon.data.dto.request.AddBookmarkRequest -import com.acon.acon.data.dto.request.ConditionRequest -import com.acon.acon.data.dto.request.FilterListRequest -import com.acon.acon.data.dto.request.RecentNavigationLocationRequest -import com.acon.acon.data.dto.request.SpotListRequest -import com.acon.acon.data.error.runCatchingWith -import com.acon.acon.data.session.SessionHandler +import com.acon.core.data.cache.ProfileInfoCache +import com.acon.core.data.datasource.remote.SpotRemoteDataSource +import com.acon.core.data.dto.request.AddBookmarkRequest +import com.acon.core.data.dto.request.ConditionRequest +import com.acon.core.data.dto.request.FilterListRequest +import com.acon.core.data.dto.request.RecentNavigationLocationRequest +import com.acon.core.data.dto.request.SpotListRequest +import com.acon.core.data.error.runCatchingWith +import com.acon.core.data.session.SessionHandler import com.acon.acon.domain.error.spot.AddBookmarkError import com.acon.acon.domain.error.spot.DeleteBookmarkError import com.acon.acon.domain.error.spot.FetchMenuBoardsError diff --git a/data/src/main/kotlin/com/acon/acon/data/repository/TimeRepositoryImpl.kt b/core/data/src/main/kotlin/com/acon/core/data/repository/TimeRepositoryImpl.kt similarity index 81% rename from data/src/main/kotlin/com/acon/acon/data/repository/TimeRepositoryImpl.kt rename to core/data/src/main/kotlin/com/acon/core/data/repository/TimeRepositoryImpl.kt index c37fa2cdb..08ba4fe40 100644 --- a/data/src/main/kotlin/com/acon/acon/data/repository/TimeRepositoryImpl.kt +++ b/core/data/src/main/kotlin/com/acon/core/data/repository/TimeRepositoryImpl.kt @@ -1,8 +1,8 @@ -package com.acon.acon.data.repository +package com.acon.core.data.repository import com.acon.acon.core.model.type.UserActionType -import com.acon.acon.data.datasource.local.TimeLocalDataSource -import com.acon.acon.data.error.runCatchingWith +import com.acon.core.data.datasource.local.TimeLocalDataSource +import com.acon.core.data.error.runCatchingWith import com.acon.acon.domain.repository.TimeRepository import javax.inject.Inject diff --git a/data/src/main/kotlin/com/acon/acon/data/repository/UploadRepositoryImpl.kt b/core/data/src/main/kotlin/com/acon/core/data/repository/UploadRepositoryImpl.kt similarity index 93% rename from data/src/main/kotlin/com/acon/acon/data/repository/UploadRepositoryImpl.kt rename to core/data/src/main/kotlin/com/acon/core/data/repository/UploadRepositoryImpl.kt index fa786cb4a..e710a08dd 100644 --- a/data/src/main/kotlin/com/acon/acon/data/repository/UploadRepositoryImpl.kt +++ b/core/data/src/main/kotlin/com/acon/core/data/repository/UploadRepositoryImpl.kt @@ -1,14 +1,14 @@ -package com.acon.acon.data.repository +package com.acon.core.data.repository import com.acon.acon.core.model.model.profile.PreSignedUrl import com.acon.acon.core.model.model.upload.Feature import com.acon.acon.core.model.model.upload.SearchedSpot import com.acon.acon.core.model.model.upload.UploadSpotSuggestion import com.acon.acon.core.model.type.SpotType -import com.acon.acon.data.datasource.remote.UploadRemoteDataSource -import com.acon.acon.data.dto.request.FeatureRequest -import com.acon.acon.data.dto.request.SubmitUploadPlaceRequest -import com.acon.acon.data.error.runCatchingWith +import com.acon.core.data.datasource.remote.UploadRemoteDataSource +import com.acon.core.data.dto.request.FeatureRequest +import com.acon.core.data.dto.request.SubmitUploadPlaceRequest +import com.acon.core.data.error.runCatchingWith import com.acon.acon.domain.error.upload.GetUploadPlacePreSignedUrlError import com.acon.acon.domain.error.upload.GetVerifySpotLocationError import com.acon.acon.domain.error.upload.SubmitUploadPlaceError diff --git a/data/src/main/kotlin/com/acon/acon/data/repository/UserRepositoryImpl.kt b/core/data/src/main/kotlin/com/acon/core/data/repository/UserRepositoryImpl.kt similarity index 85% rename from data/src/main/kotlin/com/acon/acon/data/repository/UserRepositoryImpl.kt rename to core/data/src/main/kotlin/com/acon/core/data/repository/UserRepositoryImpl.kt index 9c5a64ff7..408edb84d 100644 --- a/data/src/main/kotlin/com/acon/acon/data/repository/UserRepositoryImpl.kt +++ b/core/data/src/main/kotlin/com/acon/core/data/repository/UserRepositoryImpl.kt @@ -1,16 +1,16 @@ -package com.acon.acon.data.repository +package com.acon.core.data.repository import com.acon.acon.core.model.model.user.VerificationStatus import com.acon.acon.core.model.type.SocialType -import com.acon.acon.data.cache.ProfileInfoCache -import com.acon.acon.data.session.SessionHandler -import com.acon.acon.data.datasource.local.TokenLocalDataSource -import com.acon.acon.data.datasource.local.UserLocalDataSource -import com.acon.acon.data.datasource.remote.UserRemoteDataSource +import com.acon.core.data.cache.ProfileInfoCache +import com.acon.core.data.session.SessionHandler +import com.acon.core.data.datasource.local.TokenLocalDataSource +import com.acon.core.data.datasource.local.UserLocalDataSource +import com.acon.core.data.datasource.remote.UserRemoteDataSource import com.acon.acon.data.dto.request.DeleteAccountRequest -import com.acon.acon.data.dto.request.SignInRequest -import com.acon.acon.data.dto.request.SignOutRequest -import com.acon.acon.data.error.runCatchingWith +import com.acon.core.data.dto.request.SignInRequest +import com.acon.core.data.dto.request.SignOutRequest +import com.acon.core.data.error.runCatchingWith import com.acon.acon.domain.error.user.PostSignOutError import com.acon.acon.domain.error.user.PostSignInError import com.acon.acon.domain.repository.UserRepository diff --git a/data/src/main/kotlin/com/acon/acon/data/session/SessionHandler.kt b/core/data/src/main/kotlin/com/acon/core/data/session/SessionHandler.kt similarity index 94% rename from data/src/main/kotlin/com/acon/acon/data/session/SessionHandler.kt rename to core/data/src/main/kotlin/com/acon/core/data/session/SessionHandler.kt index a675bd874..b7d228c12 100644 --- a/data/src/main/kotlin/com/acon/acon/data/session/SessionHandler.kt +++ b/core/data/src/main/kotlin/com/acon/core/data/session/SessionHandler.kt @@ -1,9 +1,9 @@ -package com.acon.acon.data.session +package com.acon.core.data.session import com.acon.acon.core.analytics.amplitude.AconAmplitude import com.acon.acon.core.common.IODispatcher import com.acon.acon.core.model.type.UserType -import com.acon.acon.data.datasource.local.TokenLocalDataSource +import com.acon.core.data.datasource.local.TokenLocalDataSource import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.flow.Flow import kotlinx.coroutines.flow.MutableStateFlow diff --git a/core/data/src/test/java/com/acon/core/data/ExampleUnitTest.kt b/core/data/src/test/java/com/acon/core/data/ExampleUnitTest.kt deleted file mode 100644 index daa7dd7eb..000000000 --- a/core/data/src/test/java/com/acon/core/data/ExampleUnitTest.kt +++ /dev/null @@ -1,17 +0,0 @@ -package com.acon.core.data - -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/data/src/test/java/com/acon/acon/data/TestUtils.kt b/core/data/src/test/java/com/acon/core/data/TestUtils.kt similarity index 93% rename from data/src/test/java/com/acon/acon/data/TestUtils.kt rename to core/data/src/test/java/com/acon/core/data/TestUtils.kt index 7d5377485..e53a5d135 100644 --- a/data/src/test/java/com/acon/acon/data/TestUtils.kt +++ b/core/data/src/test/java/com/acon/core/data/TestUtils.kt @@ -1,7 +1,7 @@ -package com.acon.acon.data +package com.acon.core.data -import com.acon.acon.data.error.RemoteError import com.acon.acon.domain.error.RootError +import com.acon.core.data.error.RemoteError import io.mockk.mockk import org.junit.jupiter.api.Assertions.assertInstanceOf import org.junit.jupiter.params.provider.Arguments diff --git a/data/src/test/java/com/acon/acon/data/authenticator/AuthAuthenticatorTest.kt b/core/data/src/test/java/com/acon/core/data/authenticator/AuthAuthenticatorTest.kt similarity index 94% rename from data/src/test/java/com/acon/acon/data/authenticator/AuthAuthenticatorTest.kt rename to core/data/src/test/java/com/acon/core/data/authenticator/AuthAuthenticatorTest.kt index 4663ee713..69490933d 100644 --- a/data/src/test/java/com/acon/acon/data/authenticator/AuthAuthenticatorTest.kt +++ b/core/data/src/test/java/com/acon/core/data/authenticator/AuthAuthenticatorTest.kt @@ -1,19 +1,19 @@ -package com.acon.acon.data.authenticator +package com.acon.core.data.authenticator import android.content.Context import com.acon.acon.core.launcher.AppLauncher -import com.acon.acon.data.api.remote.noauth.UserNoAuthApi -import com.acon.acon.data.assertValidErrorMapping -import com.acon.acon.data.authentication.AuthAuthenticator -import com.acon.acon.data.createFakeRemoteError -import com.acon.acon.data.datasource.local.TokenLocalDataSource import com.acon.acon.data.dto.request.DeleteAccountRequest -import com.acon.acon.data.dto.request.ReissueRequest -import com.acon.acon.data.dto.request.SignOutRequest -import com.acon.acon.data.dto.response.TokenResponse -import com.acon.acon.data.error.runCatchingWith -import com.acon.acon.data.session.SessionHandler import com.acon.acon.domain.error.user.ReissueError +import com.acon.core.data.api.remote.noauth.UserNoAuthApi +import com.acon.core.data.assertValidErrorMapping +import com.acon.core.data.authentication.AuthAuthenticator +import com.acon.core.data.createFakeRemoteError +import com.acon.core.data.datasource.local.TokenLocalDataSource +import com.acon.core.data.dto.request.ReissueRequest +import com.acon.core.data.dto.request.SignOutRequest +import com.acon.core.data.dto.response.TokenResponse +import com.acon.core.data.error.runCatchingWith +import com.acon.core.data.session.SessionHandler import io.mockk.coEvery import io.mockk.coVerify import io.mockk.every @@ -31,6 +31,7 @@ import okhttp3.RequestBody import okhttp3.RequestBody.Companion.toRequestBody import okhttp3.Response import okhttp3.Route +import okio.Buffer import org.junit.Rule import org.junit.Test import java.io.IOException @@ -279,7 +280,7 @@ class AuthAuthenticatorTest { private fun RequestBody?.asString(): String? { if (this == null) return null return try { - val buffer = okio.Buffer() + val buffer = Buffer() this.writeTo(buffer) buffer.readUtf8() } catch (e: IOException) { diff --git a/data/src/test/java/com/acon/acon/data/repository/AconAppRepositoryImplTest.kt b/core/data/src/test/java/com/acon/core/data/repository/AconAppRepositoryImplTest.kt similarity index 85% rename from data/src/test/java/com/acon/acon/data/repository/AconAppRepositoryImplTest.kt rename to core/data/src/test/java/com/acon/core/data/repository/AconAppRepositoryImplTest.kt index 55784f074..77510c663 100644 --- a/data/src/test/java/com/acon/acon/data/repository/AconAppRepositoryImplTest.kt +++ b/core/data/src/test/java/com/acon/core/data/repository/AconAppRepositoryImplTest.kt @@ -1,10 +1,10 @@ -package com.acon.acon.data.repository +package com.acon.core.data.repository -import com.acon.acon.data.assertValidErrorMapping -import com.acon.acon.data.createErrorStream -import com.acon.acon.data.createFakeRemoteError -import com.acon.acon.data.datasource.remote.AconAppRemoteDataSource import com.acon.acon.domain.error.app.FetchShouldUpdateError +import com.acon.core.data.assertValidErrorMapping +import com.acon.core.data.createErrorStream +import com.acon.core.data.createFakeRemoteError +import com.acon.core.data.datasource.remote.AconAppRemoteDataSource import io.mockk.coEvery import io.mockk.impl.annotations.InjectMockKs import io.mockk.impl.annotations.RelaxedMockK diff --git a/data/src/test/java/com/acon/acon/data/repository/OnboardingRepositoryImplTest.kt b/core/data/src/test/java/com/acon/core/data/repository/OnboardingRepositoryImplTest.kt similarity index 86% rename from data/src/test/java/com/acon/acon/data/repository/OnboardingRepositoryImplTest.kt rename to core/data/src/test/java/com/acon/core/data/repository/OnboardingRepositoryImplTest.kt index 8f1091691..8f9b030c7 100644 --- a/data/src/test/java/com/acon/acon/data/repository/OnboardingRepositoryImplTest.kt +++ b/core/data/src/test/java/com/acon/core/data/repository/OnboardingRepositoryImplTest.kt @@ -1,10 +1,10 @@ -package com.acon.acon.data.repository +package com.acon.core.data.repository -import com.acon.acon.data.assertValidErrorMapping -import com.acon.acon.data.createErrorStream -import com.acon.acon.data.createFakeRemoteError -import com.acon.acon.data.datasource.remote.OnboardingRemoteDataSource import com.acon.acon.domain.error.onboarding.PostOnboardingResultError +import com.acon.core.data.assertValidErrorMapping +import com.acon.core.data.createErrorStream +import com.acon.core.data.createFakeRemoteError +import com.acon.core.data.datasource.remote.OnboardingRemoteDataSource import io.mockk.coEvery import io.mockk.impl.annotations.InjectMockKs import io.mockk.impl.annotations.RelaxedMockK diff --git a/data/src/test/java/com/acon/acon/data/repository/ProfileRepositoryImplTest.kt b/core/data/src/test/java/com/acon/core/data/repository/ProfileRepositoryImplTest.kt similarity index 94% rename from data/src/test/java/com/acon/acon/data/repository/ProfileRepositoryImplTest.kt rename to core/data/src/test/java/com/acon/core/data/repository/ProfileRepositoryImplTest.kt index cb0d07d1f..8e59ae668 100644 --- a/data/src/test/java/com/acon/acon/data/repository/ProfileRepositoryImplTest.kt +++ b/core/data/src/test/java/com/acon/core/data/repository/ProfileRepositoryImplTest.kt @@ -1,14 +1,14 @@ -package com.acon.acon.data.repository +package com.acon.core.data.repository -import com.acon.acon.data.assertValidErrorMapping -import com.acon.acon.data.cache.ProfileInfoCache -import com.acon.acon.data.createErrorStream -import com.acon.acon.data.createFakeRemoteError -import com.acon.acon.data.datasource.remote.ProfileRemoteDataSource import com.acon.acon.domain.error.area.DeleteVerifiedAreaError import com.acon.acon.domain.error.area.ReplaceVerifiedArea import com.acon.acon.domain.error.profile.SaveSpotError import com.acon.acon.domain.error.profile.ValidateNicknameError +import com.acon.core.data.assertValidErrorMapping +import com.acon.core.data.cache.ProfileInfoCache +import com.acon.core.data.createErrorStream +import com.acon.core.data.createFakeRemoteError +import com.acon.core.data.datasource.remote.ProfileRemoteDataSource import io.mockk.coEvery import io.mockk.impl.annotations.RelaxedMockK import io.mockk.junit5.MockKExtension diff --git a/data/src/test/java/com/acon/acon/data/repository/SpotRepositoryImplTest.kt b/core/data/src/test/java/com/acon/core/data/repository/SpotRepositoryImplTest.kt similarity index 95% rename from data/src/test/java/com/acon/acon/data/repository/SpotRepositoryImplTest.kt rename to core/data/src/test/java/com/acon/core/data/repository/SpotRepositoryImplTest.kt index 1ec7fac72..37c3df1c8 100644 --- a/data/src/test/java/com/acon/acon/data/repository/SpotRepositoryImplTest.kt +++ b/core/data/src/test/java/com/acon/core/data/repository/SpotRepositoryImplTest.kt @@ -1,10 +1,5 @@ -package com.acon.acon.data.repository +package com.acon.core.data.repository -import com.acon.acon.data.assertValidErrorMapping -import com.acon.acon.data.cache.ProfileInfoCache -import com.acon.acon.data.createErrorStream -import com.acon.acon.data.createFakeRemoteError -import com.acon.acon.data.datasource.remote.SpotRemoteDataSource import com.acon.acon.domain.error.spot.AddBookmarkError import com.acon.acon.domain.error.spot.DeleteBookmarkError import com.acon.acon.domain.error.spot.FetchMenuBoardsError @@ -12,6 +7,11 @@ import com.acon.acon.domain.error.spot.FetchRecentNavigationLocationError import com.acon.acon.domain.error.spot.FetchSpotListError import com.acon.acon.domain.error.spot.GetSpotDetailInfoError import com.acon.acon.domain.repository.ProfileRepository +import com.acon.core.data.assertValidErrorMapping +import com.acon.core.data.cache.ProfileInfoCache +import com.acon.core.data.createErrorStream +import com.acon.core.data.createFakeRemoteError +import com.acon.core.data.datasource.remote.SpotRemoteDataSource import io.mockk.coEvery import io.mockk.impl.annotations.InjectMockKs import io.mockk.impl.annotations.RelaxedMockK diff --git a/data/src/test/java/com/acon/acon/data/repository/UploadRepositoryImplTest.kt b/core/data/src/test/java/com/acon/core/data/repository/UploadRepositoryImplTest.kt similarity index 92% rename from data/src/test/java/com/acon/acon/data/repository/UploadRepositoryImplTest.kt rename to core/data/src/test/java/com/acon/core/data/repository/UploadRepositoryImplTest.kt index a2ce90659..b929061f8 100644 --- a/data/src/test/java/com/acon/acon/data/repository/UploadRepositoryImplTest.kt +++ b/core/data/src/test/java/com/acon/core/data/repository/UploadRepositoryImplTest.kt @@ -1,12 +1,12 @@ -package com.acon.acon.data.repository +package com.acon.core.data.repository -import com.acon.acon.data.assertValidErrorMapping -import com.acon.acon.data.createErrorStream -import com.acon.acon.data.createFakeRemoteError -import com.acon.acon.data.datasource.remote.UploadRemoteDataSource import com.acon.acon.domain.error.upload.GetVerifySpotLocationError import com.acon.acon.domain.error.upload.UploadReviewError import com.acon.acon.domain.error.user.GetSuggestionsError +import com.acon.core.data.assertValidErrorMapping +import com.acon.core.data.createErrorStream +import com.acon.core.data.createFakeRemoteError +import com.acon.core.data.datasource.remote.UploadRemoteDataSource import io.mockk.coEvery import io.mockk.impl.annotations.InjectMockKs import io.mockk.impl.annotations.RelaxedMockK diff --git a/data/src/test/java/com/acon/acon/data/repository/UserRepositoryImplTest.kt b/core/data/src/test/java/com/acon/core/data/repository/UserRepositoryImplTest.kt similarity index 95% rename from data/src/test/java/com/acon/acon/data/repository/UserRepositoryImplTest.kt rename to core/data/src/test/java/com/acon/core/data/repository/UserRepositoryImplTest.kt index 12d19beb1..89f8da1e9 100644 --- a/data/src/test/java/com/acon/acon/data/repository/UserRepositoryImplTest.kt +++ b/core/data/src/test/java/com/acon/core/data/repository/UserRepositoryImplTest.kt @@ -1,13 +1,13 @@ -package com.acon.acon.data.repository +package com.acon.core.data.repository -import com.acon.acon.data.session.SessionHandler -import com.acon.acon.data.datasource.local.TokenLocalDataSource -import com.acon.acon.data.datasource.remote.UserRemoteDataSource -import com.acon.acon.data.dto.response.SignInResponse -import com.acon.acon.data.error.RemoteError import com.acon.acon.domain.error.user.PostSignInError import com.acon.acon.domain.error.user.PostSignOutError import com.acon.acon.domain.repository.UserRepository +import com.acon.core.data.datasource.local.TokenLocalDataSource +import com.acon.core.data.datasource.remote.UserRemoteDataSource +import com.acon.core.data.dto.response.SignInResponse +import com.acon.core.data.error.RemoteError +import com.acon.core.data.session.SessionHandler import io.mockk.coEvery import io.mockk.coVerify import io.mockk.impl.annotations.RelaxedMockK diff --git a/data/src/test/java/com/acon/acon/data/session/SessionHandlerImplTest.kt b/core/data/src/test/java/com/acon/core/data/session/SessionHandlerImplTest.kt similarity index 97% rename from data/src/test/java/com/acon/acon/data/session/SessionHandlerImplTest.kt rename to core/data/src/test/java/com/acon/core/data/session/SessionHandlerImplTest.kt index 6a5a2194c..8e354249a 100644 --- a/data/src/test/java/com/acon/acon/data/session/SessionHandlerImplTest.kt +++ b/core/data/src/test/java/com/acon/core/data/session/SessionHandlerImplTest.kt @@ -1,9 +1,9 @@ -package com.acon.acon.data.session +package com.acon.core.data.session import app.cash.turbine.test import com.acon.acon.core.analytics.amplitude.AconAmplitude import com.acon.acon.core.model.type.UserType -import com.acon.acon.data.datasource.local.TokenLocalDataSource +import com.acon.core.data.datasource.local.TokenLocalDataSource import io.mockk.coEvery import io.mockk.coVerify import io.mockk.impl.annotations.RelaxedMockK diff --git a/data/src/main/kotlin/com/acon/acon/data/cache/ProfileInfoCache.kt b/data/src/main/kotlin/com/acon/acon/data/cache/ProfileInfoCache.kt deleted file mode 100644 index 365442f54..000000000 --- a/data/src/main/kotlin/com/acon/acon/data/cache/ProfileInfoCache.kt +++ /dev/null @@ -1,18 +0,0 @@ -package com.acon.acon.data.cache - -import com.acon.acon.data.cache.base.ReadWriteCache -import com.acon.acon.data.datasource.remote.ProfileRemoteDataSource -import kotlinx.coroutines.CoroutineScope -import javax.inject.Inject - -class ProfileInfoCache @Inject constructor( - private val scope: CoroutineScope, - private val profileRemoteDataSource: ProfileRemoteDataSource -) : ReadWriteCache(scope) { - - override val emptyData = Result.success(com.acon.acon.core.model.model.profile.ProfileInfo.Empty) - - override suspend fun fetchRemoteData(): com.acon.acon.core.model.model.profile.ProfileInfo { - return profileRemoteDataSource.fetchProfile().toProfile() - } -} From 6673af9e2a8abfddce5835105b2db288b293e8ad Mon Sep 17 00:00:00 2001 From: Thirfir Date: Thu, 28 Aug 2025 14:13:43 +0900 Subject: [PATCH 05/91] =?UTF-8?q?chore:=20:data=20=EB=AA=A8=EB=93=88=20?= =?UTF-8?q?=EC=A0=9C=EA=B1=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- data/.gitignore | 1 - data/build.gradle.kts | 54 ------------------- data/proguard-rules.pro | 4 -- .../acon/acon/data/ExampleInstrumentedTest.kt | 24 --------- data/src/main/AndroidManifest.xml | 4 -- settings.gradle.kts | 1 - 6 files changed, 88 deletions(-) delete mode 100644 data/.gitignore delete mode 100644 data/build.gradle.kts delete mode 100644 data/proguard-rules.pro delete mode 100644 data/src/androidTest/java/com/acon/acon/data/ExampleInstrumentedTest.kt delete mode 100644 data/src/main/AndroidManifest.xml diff --git a/data/.gitignore b/data/.gitignore deleted file mode 100644 index 42afabfd2..000000000 --- a/data/.gitignore +++ /dev/null @@ -1 +0,0 @@ -/build \ No newline at end of file diff --git a/data/build.gradle.kts b/data/build.gradle.kts deleted file mode 100644 index 980822769..000000000 --- a/data/build.gradle.kts +++ /dev/null @@ -1,54 +0,0 @@ -import utils.androidTestImplementation -import java.util.Properties - -plugins { - alias(libs.plugins.acon.android.library) - alias(libs.plugins.acon.android.library.hilt) - alias(libs.plugins.kotlin.serialization) -} - -val localProperties = Properties().apply { - load(project.rootProject.file("local.properties").inputStream()) -} - -android { - namespace = "com.acon.acon.data" - - defaultConfig { - buildConfigField("String", "GOOGLE_CLIENT_ID", "\"${localProperties["GOOGLE_CLIENT_ID"]}\"") - buildConfigField("String", "BASE_URL", "\"${localProperties["BASE_URL"]}\"") - buildConfigField("String", "NAVER_CLIENT_ID", "\"${localProperties["naver_client_id"]}\"") - buildConfigField("String", "NAVER_CLIENT_SECRET", "\"${localProperties["naver_client_secret"]}\"") - buildConfigField("String", "NAVER_DEVELOPERS_CLIENT_ID", "\"${localProperties["naver_developers_client_id"]}\"") - buildConfigField("String", "NAVER_DEVELOPERS_CLIENT_SECRET", "\"${localProperties["naver_developers_client_secret"]}\"") - } -} - -dependencies { - - implementation(projects.domain) - implementation(projects.core.analytics) - implementation(projects.core.launcher) - - implementation(platform(libs.okhttp.bom)) - implementation(libs.okhttp) - implementation(libs.logging.interceptor) - - implementation(libs.retrofit) - implementation(libs.retrofit.kotlin.serialization.converter) - - implementation(libs.kotlinx.serialization.json) - - implementation(libs.androidx.security.crypto.ktx) - implementation(libs.bundles.googleSignIn) - - implementation(libs.preferences.datastore) - - testImplementation(libs.bundles.non.android.test) - testRuntimeOnly(libs.bundles.junit5.runtime) - androidTestImplementation(libs.bundles.android.test) -} - -tasks.withType { - useJUnitPlatform() -} \ No newline at end of file diff --git a/data/proguard-rules.pro b/data/proguard-rules.pro deleted file mode 100644 index 78e0e03f2..000000000 --- a/data/proguard-rules.pro +++ /dev/null @@ -1,4 +0,0 @@ --if class androidx.credentials.CredentialManager --keep class androidx.credentials.playservices.** { - *; -} \ No newline at end of file diff --git a/data/src/androidTest/java/com/acon/acon/data/ExampleInstrumentedTest.kt b/data/src/androidTest/java/com/acon/acon/data/ExampleInstrumentedTest.kt deleted file mode 100644 index 88b8f8c74..000000000 --- a/data/src/androidTest/java/com/acon/acon/data/ExampleInstrumentedTest.kt +++ /dev/null @@ -1,24 +0,0 @@ -package com.acon.acon.data - -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.acon.data.test", appContext.packageName) - } -} \ No newline at end of file diff --git a/data/src/main/AndroidManifest.xml b/data/src/main/AndroidManifest.xml deleted file mode 100644 index a5918e68a..000000000 --- a/data/src/main/AndroidManifest.xml +++ /dev/null @@ -1,4 +0,0 @@ - - - - \ No newline at end of file diff --git a/settings.gradle.kts b/settings.gradle.kts index 22461c7e1..ac9478231 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -41,7 +41,6 @@ include( ":feature:onboarding" ) -include(":data") include(":domain") include(":feature:profile") include(":feature:settings") From e9548612756e7c955c0ec5444441f1ad854ae8dd Mon Sep 17 00:00:00 2001 From: Thirfir Date: Thu, 28 Aug 2025 16:01:48 +0900 Subject: [PATCH 06/91] =?UTF-8?q?refactor:=20=EC=86=8C=EC=85=9C=20?= =?UTF-8?q?=EB=A1=9C=EA=B7=B8=EC=9D=B8=20=EB=A1=9C=EC=A7=81=20=EB=B3=80?= =?UTF-8?q?=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/build.gradle.kts | 1 + .../main/java/com/acon/acon/MainActivity.kt | 20 +-- .../remote/TokenRemoteDataSource.kt | 131 ------------------ .../core/data/di/SocialRepositoryModule.kt | 19 --- .../core/data/dto/request/SignInRequest.kt | 4 +- .../com/acon/core/data/error/ErrorMessages.kt | 9 -- .../data/repository/SocialRepositoryImpl.kt | 25 ---- .../data/repository/UserRepositoryImpl.kt | 21 +-- .../acon/acon/core/model/type/SocialType.kt | 6 - .../core/social/client/GoogleAuthClient.kt | 87 ++++++------ .../core/social/client/SocialAuthClient.kt | 18 ++- .../acon/core/social/di/SocialClientModule.kt | 27 ---- .../domain/repository/SocialRepository.kt | 7 - .../acon/domain/repository/UserRepository.kt | 5 +- feature/signin/build.gradle.kts | 2 + .../feature/signin/screen/SignInScreen.kt | 27 +--- .../signin/screen/SignInScreenContainer.kt | 2 +- .../feature/signin/screen/SignInViewModel.kt | 16 ++- .../signin/utils/ComposableEntryPoints.kt | 20 --- .../feature/signin/utils/RememberInstances.kt | 35 ----- 20 files changed, 110 insertions(+), 372 deletions(-) delete mode 100644 core/data/src/main/kotlin/com/acon/core/data/datasource/remote/TokenRemoteDataSource.kt delete mode 100644 core/data/src/main/kotlin/com/acon/core/data/di/SocialRepositoryModule.kt delete mode 100644 core/data/src/main/kotlin/com/acon/core/data/error/ErrorMessages.kt delete mode 100644 core/data/src/main/kotlin/com/acon/core/data/repository/SocialRepositoryImpl.kt delete mode 100644 core/model/src/main/java/com/acon/acon/core/model/type/SocialType.kt delete mode 100644 core/social/src/main/kotlin/com/acon/core/social/di/SocialClientModule.kt delete mode 100644 domain/src/main/java/com/acon/acon/domain/repository/SocialRepository.kt delete mode 100644 feature/signin/src/main/java/com/acon/acon/feature/signin/utils/ComposableEntryPoints.kt delete mode 100644 feature/signin/src/main/java/com/acon/acon/feature/signin/utils/RememberInstances.kt diff --git a/app/build.gradle.kts b/app/build.gradle.kts index af423afb1..b0573d6a2 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -45,6 +45,7 @@ dependencies { implementation(projects.core.ui) implementation(projects.core.launcher) implementation(projects.core.data) + implementation(projects.core.social) implementation(projects.domain) diff --git a/app/src/main/java/com/acon/acon/MainActivity.kt b/app/src/main/java/com/acon/acon/MainActivity.kt index cd4684e33..88e6ff153 100644 --- a/app/src/main/java/com/acon/acon/MainActivity.kt +++ b/app/src/main/java/com/acon/acon/MainActivity.kt @@ -60,13 +60,13 @@ import com.acon.acon.core.ui.compose.LocalRequestSignIn import com.acon.acon.core.ui.compose.LocalSnackbarHostState import com.acon.acon.core.ui.compose.LocalUserType import com.acon.acon.domain.repository.AconAppRepository -import com.acon.acon.domain.repository.SocialRepository import com.acon.acon.domain.repository.UserRepository import com.acon.acon.navigation.AconNavigation import com.acon.acon.provider.ads_impl.SpotListAdProvider import com.acon.acon.update.AppUpdateHandler import com.acon.acon.update.AppUpdateHandlerImpl import com.acon.acon.update.UpdateState +import com.acon.core.social.client.GoogleAuthClient import com.google.android.gms.common.api.ResolvableApiException import com.google.android.gms.location.LocationCallback import com.google.android.gms.location.LocationRequest @@ -97,8 +97,6 @@ import javax.inject.Inject @AndroidEntryPoint class MainActivity : ComponentActivity() { - @Inject - lateinit var socialRepository: SocialRepository @Inject lateinit var userRepository: UserRepository @@ -335,9 +333,12 @@ class MainActivity : ComponentActivity() { onDismissRequest = { viewModel.updateShowSignInBottomSheet(false) }, onGoogleSignIn = { scope.launch { - socialRepository.googleSignIn() - .onSuccess { - if (it.hasVerifiedArea) { + val client = GoogleAuthClient(this@MainActivity) + val code = client.getCredentialCode() ?: return@launch + + userRepository.signIn(client.platform, code) + .onSuccess { verificationStatus -> + if (verificationStatus.hasVerifiedArea) { navController.navigate(SpotRoute.SpotList) { popUpTo(navController.graph.id) { inclusive = true @@ -361,11 +362,10 @@ class MainActivity : ComponentActivity() { property = appState.propertyKey to true ) } - AconAmplitude.setUserId(it.externalUUID) - }.onFailure { - + AconAmplitude.setUserId(verificationStatus.externalUUID) + }.onFailure { e -> + Timber.e(e) } - viewModel.updateShowSignInBottomSheet(false) } }, modifier = Modifier ) diff --git a/core/data/src/main/kotlin/com/acon/core/data/datasource/remote/TokenRemoteDataSource.kt b/core/data/src/main/kotlin/com/acon/core/data/datasource/remote/TokenRemoteDataSource.kt deleted file mode 100644 index 0294f32f0..000000000 --- a/core/data/src/main/kotlin/com/acon/core/data/datasource/remote/TokenRemoteDataSource.kt +++ /dev/null @@ -1,131 +0,0 @@ -package com.acon.core.data.datasource.remote - -import android.content.Context -import android.os.Build -import androidx.credentials.CredentialManager -import androidx.credentials.CustomCredential -import androidx.credentials.GetCredentialRequest -import androidx.credentials.PasswordCredential -import androidx.credentials.PublicKeyCredential -import androidx.credentials.exceptions.GetCredentialCancellationException -import androidx.credentials.exceptions.NoCredentialException -import com.acon.acon.data.BuildConfig -import com.acon.core.data.error.ErrorMessages -import com.acon.acon.domain.error.user.CredentialException -import com.google.android.libraries.identity.googleid.GetSignInWithGoogleOption -import com.google.android.libraries.identity.googleid.GoogleIdTokenCredential -import com.google.android.libraries.identity.googleid.GoogleIdTokenParsingException -import dagger.hilt.android.qualifiers.ActivityContext -import timber.log.Timber -import java.security.MessageDigest -import java.util.UUID -import javax.inject.Inject - -class TokenRemoteDataSource @Inject constructor( - @ActivityContext private val context: Context -) { - - private val rawNounce = UUID.randomUUID().toString() - private val bytes = rawNounce.toByteArray() - private val md = MessageDigest.getInstance("SHA-256") - private val digest = md.digest(bytes) - private val hashedNonce = digest.fold("") { str, it -> str + "%02x".format(it) } - - private val googleIdOption: GetSignInWithGoogleOption = - GetSignInWithGoogleOption.Builder(BuildConfig.GOOGLE_CLIENT_ID) - .build() - - private val credentialManager: CredentialManager by lazy { - CredentialManager.create(context) - } - - suspend fun googleSignIn(): Result = runCatching { - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.UPSIDE_DOWN_CAKE) { - credentialManager.prepareGetCredential( - GetCredentialRequest( - listOf(googleIdOption) - ) - ) - } - - val request = GetCredentialRequest.Builder() - .addCredentialOption(googleIdOption) - .build() - - credentialManager.getCredential( - request = request, - context = context - ) - }.fold( - onSuccess = { response -> - Timber.tag(TAG).d("Received credential response: $response") - - when (val credential = response.credential) { - is CustomCredential -> { - Timber.tag(TAG) - .d("Credential is CustomCredential. Type: ${credential.type}") - if (credential.type == GoogleIdTokenCredential.TYPE_GOOGLE_ID_TOKEN_CREDENTIAL) { - val idToken = GoogleIdTokenCredential.createFrom(credential.data).idToken - Timber.tag(TAG).d("Successfully parsed idToken") - Result.success(idToken) - } else { - Timber.tag(TAG).e("Unknown credential type") - throw IllegalStateException(ErrorMessages.UNKNOWN_CREDENTIAL_TYPE) - } - } - - is PublicKeyCredential -> { - Timber.tag(TAG).e("Credential is PublicKeyCredential. Unsupported.") - throw IllegalStateException(ErrorMessages.UNSUPPORTED_CREDENTIAL_TYPE) - } - - is PasswordCredential -> { - Timber.tag(TAG).e("Credential is PasswordCredential. Unsupported.") - throw IllegalStateException(ErrorMessages.UNSUPPORTED_CREDENTIAL_TYPE) - } - - else -> { - Timber.tag(TAG) - .e("Unknown credential class: ${credential::class.java}") - throw IllegalStateException(ErrorMessages.UNKNOWN_CREDENTIAL_TYPE) - } - } - }, - onFailure = { e -> - Timber.tag(TAG).e(e, "GoogleLogin failed: ${e.message}") - - Result.failure( - when (e) { - is GetCredentialCancellationException -> { - Timber.tag(TAG).e("User cancelled login") - CredentialException.UserCanceled(ErrorMessages.USER_CANCELED) - } - - is NoCredentialException -> { - Timber.tag(TAG).e("No stored credentials available") - CredentialException.NoStoredCredentials(ErrorMessages.NO_CREDENTIAL_AVAILABLE) - } - - is GoogleIdTokenParsingException -> { - Timber.tag(TAG).e(e, "GoogleIdTokenParsingException") - e - } - - is SecurityException -> { - Timber.tag(TAG).e(e, "SecurityException") - e - } - - else -> { - Timber.tag(TAG).e(e, "Unknown error occurred") - IllegalStateException(ErrorMessages.UNKNOWN_ERROR) - } - } - ) - } - ) - - companion object { - const val TAG = "GoogleLogin" - } -} \ No newline at end of file diff --git a/core/data/src/main/kotlin/com/acon/core/data/di/SocialRepositoryModule.kt b/core/data/src/main/kotlin/com/acon/core/data/di/SocialRepositoryModule.kt deleted file mode 100644 index 3bb61e787..000000000 --- a/core/data/src/main/kotlin/com/acon/core/data/di/SocialRepositoryModule.kt +++ /dev/null @@ -1,19 +0,0 @@ -package com.acon.core.data.di - -import com.acon.core.data.repository.SocialRepositoryImpl -import com.acon.acon.domain.repository.SocialRepository -import dagger.Binds -import dagger.Module -import dagger.hilt.InstallIn -import dagger.hilt.android.components.ActivityComponent -import dagger.hilt.android.scopes.ActivityScoped - -@Module -@InstallIn(ActivityComponent::class) -abstract class SocialRepositoryModule { - @Binds - @ActivityScoped - abstract fun bindGoogleSignInRepository( - impl: SocialRepositoryImpl - ): SocialRepository -} \ No newline at end of file diff --git a/core/data/src/main/kotlin/com/acon/core/data/dto/request/SignInRequest.kt b/core/data/src/main/kotlin/com/acon/core/data/dto/request/SignInRequest.kt index 296249731..c1c5a6ffc 100644 --- a/core/data/src/main/kotlin/com/acon/core/data/dto/request/SignInRequest.kt +++ b/core/data/src/main/kotlin/com/acon/core/data/dto/request/SignInRequest.kt @@ -1,11 +1,11 @@ package com.acon.core.data.dto.request -import com.acon.acon.core.model.type.SocialType +import com.acon.acon.core.model.model.user.SocialPlatform import kotlinx.serialization.SerialName import kotlinx.serialization.Serializable @Serializable data class SignInRequest( - @SerialName("socialType") val socialType: SocialType?, + @SerialName("socialType") val platform: SocialPlatform?, @SerialName("idToken") val idToken: String?, ) diff --git a/core/data/src/main/kotlin/com/acon/core/data/error/ErrorMessages.kt b/core/data/src/main/kotlin/com/acon/core/data/error/ErrorMessages.kt deleted file mode 100644 index dd57e166c..000000000 --- a/core/data/src/main/kotlin/com/acon/core/data/error/ErrorMessages.kt +++ /dev/null @@ -1,9 +0,0 @@ -package com.acon.core.data.error - -object ErrorMessages { - const val USER_CANCELED = "사용자가 로그인 과정을 취소했습니다." - const val UNKNOWN_CREDENTIAL_TYPE = "지원되지 않거나 알 수 없는 인증 유형입니다." - const val UNKNOWN_ERROR = "로그인 과정에서 알 수 없는 오류가 발생했습니다." - const val UNSUPPORTED_CREDENTIAL_TYPE = "지원되지 않는 사용자 인증 유형입니다." - const val NO_CREDENTIAL_AVAILABLE = "사용 가능한 사용자 인증 정보가 없습니다." -} diff --git a/core/data/src/main/kotlin/com/acon/core/data/repository/SocialRepositoryImpl.kt b/core/data/src/main/kotlin/com/acon/core/data/repository/SocialRepositoryImpl.kt deleted file mode 100644 index 2eda37b5a..000000000 --- a/core/data/src/main/kotlin/com/acon/core/data/repository/SocialRepositoryImpl.kt +++ /dev/null @@ -1,25 +0,0 @@ -package com.acon.core.data.repository - -import com.acon.core.data.datasource.remote.TokenRemoteDataSource -import com.acon.core.data.error.runCatchingWith -import com.acon.acon.domain.error.user.PostSignInError -import com.acon.acon.core.model.model.user.VerificationStatus -import com.acon.acon.domain.repository.SocialRepository -import com.acon.acon.domain.repository.UserRepository -import com.acon.acon.core.model.type.SocialType -import javax.inject.Inject - -class SocialRepositoryImpl @Inject constructor( - private val tokenRemoteDataSource: TokenRemoteDataSource, - private val userRepository: UserRepository, -) : SocialRepository { - override suspend fun googleSignIn(): Result { - return runCatchingWith(PostSignInError()) { - val idToken = tokenRemoteDataSource.googleSignIn().getOrThrow() - - userRepository.signIn( - socialType = SocialType.GOOGLE, idToken = idToken - ).getOrThrow() - } - } -} diff --git a/core/data/src/main/kotlin/com/acon/core/data/repository/UserRepositoryImpl.kt b/core/data/src/main/kotlin/com/acon/core/data/repository/UserRepositoryImpl.kt index 408edb84d..2a8e49064 100644 --- a/core/data/src/main/kotlin/com/acon/core/data/repository/UserRepositoryImpl.kt +++ b/core/data/src/main/kotlin/com/acon/core/data/repository/UserRepositoryImpl.kt @@ -1,19 +1,20 @@ package com.acon.core.data.repository +import com.acon.acon.core.model.model.user.CredentialCode +import com.acon.acon.core.model.model.user.SocialPlatform import com.acon.acon.core.model.model.user.VerificationStatus -import com.acon.acon.core.model.type.SocialType +import com.acon.acon.data.dto.request.DeleteAccountRequest +import com.acon.acon.domain.error.user.PostSignInError +import com.acon.acon.domain.error.user.PostSignOutError +import com.acon.acon.domain.repository.UserRepository import com.acon.core.data.cache.ProfileInfoCache -import com.acon.core.data.session.SessionHandler import com.acon.core.data.datasource.local.TokenLocalDataSource import com.acon.core.data.datasource.local.UserLocalDataSource import com.acon.core.data.datasource.remote.UserRemoteDataSource -import com.acon.acon.data.dto.request.DeleteAccountRequest import com.acon.core.data.dto.request.SignInRequest import com.acon.core.data.dto.request.SignOutRequest import com.acon.core.data.error.runCatchingWith -import com.acon.acon.domain.error.user.PostSignOutError -import com.acon.acon.domain.error.user.PostSignInError -import com.acon.acon.domain.repository.UserRepository +import com.acon.core.data.session.SessionHandler import javax.inject.Inject class UserRepositoryImpl @Inject constructor( @@ -27,14 +28,14 @@ class UserRepositoryImpl @Inject constructor( override fun getUserType() = sessionHandler.getUserType() override suspend fun signIn( - socialType: SocialType, - idToken: String + socialType: SocialPlatform, + code: CredentialCode ): Result { return runCatchingWith(PostSignInError()) { val signInResponse = userRemoteDataSource.signIn( SignInRequest( - socialType = socialType, - idToken = idToken + platform = socialType, + idToken = code.value ) ) diff --git a/core/model/src/main/java/com/acon/acon/core/model/type/SocialType.kt b/core/model/src/main/java/com/acon/acon/core/model/type/SocialType.kt deleted file mode 100644 index e3f664bac..000000000 --- a/core/model/src/main/java/com/acon/acon/core/model/type/SocialType.kt +++ /dev/null @@ -1,6 +0,0 @@ -package com.acon.acon.core.model.type - -enum class SocialType { - GOOGLE, - APPLE -} \ No newline at end of file diff --git a/core/social/src/main/kotlin/com/acon/core/social/client/GoogleAuthClient.kt b/core/social/src/main/kotlin/com/acon/core/social/client/GoogleAuthClient.kt index ace092a12..bf0756484 100644 --- a/core/social/src/main/kotlin/com/acon/core/social/client/GoogleAuthClient.kt +++ b/core/social/src/main/kotlin/com/acon/core/social/client/GoogleAuthClient.kt @@ -7,55 +7,62 @@ import androidx.credentials.GetCredentialRequest import androidx.credentials.PasswordCredential import androidx.credentials.PublicKeyCredential import com.acon.acon.core.model.model.user.CredentialCode +import com.acon.acon.core.model.model.user.SocialPlatform +import com.acon.core.social.BuildConfig import com.google.android.libraries.identity.googleid.GetSignInWithGoogleOption import com.google.android.libraries.identity.googleid.GoogleIdTokenCredential import dagger.hilt.android.qualifiers.ActivityContext import timber.log.Timber -import javax.inject.Inject - -class GoogleAuthClient @Inject constructor() : SocialAuthClient { - - override suspend fun getCredentialCode(@ActivityContext context: Context): CredentialCode { - val credentialOption: GetSignInWithGoogleOption = - GetSignInWithGoogleOption.Builder(BuildConfig.GOOGLE_CLIENT_ID).build() - - val credentialManager: CredentialManager = CredentialManager.create(context) - - val request = GetCredentialRequest.Builder() - .addCredentialOption(credentialOption) - .build() - - val credentialResponse = credentialManager.getCredential( - request = request, - context = context - ) - - when (val credential = credentialResponse.credential) { - is CustomCredential -> { - Timber.d("Credential is CustomCredential. Type: ${credential.type}") - if (credential.type == GoogleIdTokenCredential.TYPE_GOOGLE_ID_TOKEN_CREDENTIAL) { - val idToken = GoogleIdTokenCredential.createFrom(credential.data).idToken - return CredentialCode(idToken) - } else { - Timber.e("Unknown credential type") - throw UnsupportedOperationException("지원되지 않거나 알 수 없는 인증 유형입니다.") + +class GoogleAuthClient(@ActivityContext private val context: Context) : SocialAuthClient { + + override val platform = SocialPlatform.GOOGLE + + val credentialOption: GetSignInWithGoogleOption = + GetSignInWithGoogleOption.Builder(BuildConfig.GOOGLE_CLIENT_ID).build() + + val credentialManager: CredentialManager = CredentialManager.create(context) + + val request = GetCredentialRequest.Builder() + .addCredentialOption(credentialOption) + .build() + + override suspend fun getCredentialCode(): CredentialCode? { + try { + val credentialResponse = credentialManager.getCredential( + request = request, + context = context + ) + + when (val credential = credentialResponse.credential) { + is CustomCredential -> { + Timber.d("Credential is CustomCredential. Type: ${credential.type}") + if (credential.type == GoogleIdTokenCredential.TYPE_GOOGLE_ID_TOKEN_CREDENTIAL) { + val idToken = GoogleIdTokenCredential.createFrom(credential.data).idToken + return CredentialCode(idToken) + } else { + Timber.e("Unknown credential type") + return null + } } - } - is PublicKeyCredential -> { - Timber.e("Credential is PublicKeyCredential. Unsupported.") - throw UnsupportedOperationException("지원되지 않는 사용자 인증 유형입니다.") - } + is PublicKeyCredential -> { + Timber.e("Credential is PublicKeyCredential. Unsupported.") + return null + } - is PasswordCredential -> { - Timber.e("Credential is PasswordCredential. Unsupported.") - throw UnsupportedOperationException("지원되지 않는 사용자 인증 유형입니다.") - } + is PasswordCredential -> { + Timber.e("Credential is PasswordCredential. Unsupported.") + return null + } - else -> { - Timber.e("Unknown credential class: ${credential::class.java}") - throw UnsupportedOperationException("지원되지 않거나 알 수 없는 인증 유형입니다.") + else -> { + Timber.e("Unknown credential class: ${credential::class.java}") + return null + } } + } catch (e: Exception) { + return null } } } diff --git a/core/social/src/main/kotlin/com/acon/core/social/client/SocialAuthClient.kt b/core/social/src/main/kotlin/com/acon/core/social/client/SocialAuthClient.kt index 4f701ae78..35e7a5c46 100644 --- a/core/social/src/main/kotlin/com/acon/core/social/client/SocialAuthClient.kt +++ b/core/social/src/main/kotlin/com/acon/core/social/client/SocialAuthClient.kt @@ -1,12 +1,20 @@ package com.acon.core.social.client -import android.content.Context import com.acon.acon.core.model.model.user.CredentialCode -import dagger.hilt.android.qualifiers.ActivityContext +import com.acon.acon.core.model.model.user.SocialPlatform +/** + * 소셜 플랫폼 인증 클라이언트 인터페이스 + */ interface SocialAuthClient { - suspend fun getCredentialCode( - @ActivityContext context: Context - ) : CredentialCode + val platform: SocialPlatform + + /** + * 소셜 플랫폼의 자격 증명 코드를 가져옵니다. + * 이 코드는 백엔드에서 사용자를 인증하는 데 사용할 수 있습니다. + * + * @return 자격 증명 코드. 실패한 경우 null 반환 + */ + suspend fun getCredentialCode() : CredentialCode? } \ No newline at end of file diff --git a/core/social/src/main/kotlin/com/acon/core/social/di/SocialClientModule.kt b/core/social/src/main/kotlin/com/acon/core/social/di/SocialClientModule.kt deleted file mode 100644 index 6c1a9415c..000000000 --- a/core/social/src/main/kotlin/com/acon/core/social/di/SocialClientModule.kt +++ /dev/null @@ -1,27 +0,0 @@ -package com.acon.core.social.di - -import com.acon.acon.core.model.model.user.SocialPlatform -import com.acon.core.social.client.GoogleAuthClient -import com.acon.core.social.client.SocialAuthClient -import dagger.Module -import dagger.Provides -import dagger.hilt.InstallIn -import dagger.hilt.components.SingletonComponent -import javax.inject.Singleton - -@Module -@InstallIn(SingletonComponent::class) -object SocialClientModule { - - @Provides - @Singleton - fun providesGoogleAuthClient() = GoogleAuthClient() - - @Provides - @Singleton - fun providesSocialAuthClients( - googleAuthClient: GoogleAuthClient - ): Map = mapOf( - SocialPlatform.GOOGLE to googleAuthClient - ) -} \ No newline at end of file diff --git a/domain/src/main/java/com/acon/acon/domain/repository/SocialRepository.kt b/domain/src/main/java/com/acon/acon/domain/repository/SocialRepository.kt deleted file mode 100644 index 591f33824..000000000 --- a/domain/src/main/java/com/acon/acon/domain/repository/SocialRepository.kt +++ /dev/null @@ -1,7 +0,0 @@ -package com.acon.acon.domain.repository - -import com.acon.acon.core.model.model.user.VerificationStatus - -interface SocialRepository { - suspend fun googleSignIn(): Result -} \ No newline at end of file diff --git a/domain/src/main/java/com/acon/acon/domain/repository/UserRepository.kt b/domain/src/main/java/com/acon/acon/domain/repository/UserRepository.kt index 323854479..21aa1e7aa 100644 --- a/domain/src/main/java/com/acon/acon/domain/repository/UserRepository.kt +++ b/domain/src/main/java/com/acon/acon/domain/repository/UserRepository.kt @@ -1,12 +1,13 @@ package com.acon.acon.domain.repository +import com.acon.acon.core.model.model.user.CredentialCode +import com.acon.acon.core.model.model.user.SocialPlatform import com.acon.acon.core.model.model.user.VerificationStatus -import com.acon.acon.core.model.type.SocialType import com.acon.acon.core.model.type.UserType import kotlinx.coroutines.flow.Flow interface UserRepository { - suspend fun signIn(socialType: SocialType, idToken: String): Result + suspend fun signIn(socialType: SocialPlatform, code: CredentialCode): Result suspend fun signOut(): Result suspend fun deleteAccount(reason: String): Result suspend fun clearSession(): Result diff --git a/feature/signin/build.gradle.kts b/feature/signin/build.gradle.kts index a2b70a434..721bc9a9a 100644 --- a/feature/signin/build.gradle.kts +++ b/feature/signin/build.gradle.kts @@ -12,6 +12,8 @@ android { } dependencies { + + implementation(projects.core.social) implementation(libs.lottie.compose) } \ No newline at end of file diff --git a/feature/signin/src/main/java/com/acon/acon/feature/signin/screen/SignInScreen.kt b/feature/signin/src/main/java/com/acon/acon/feature/signin/screen/SignInScreen.kt index 09fd84ec6..6ce63a7d7 100644 --- a/feature/signin/src/main/java/com/acon/acon/feature/signin/screen/SignInScreen.kt +++ b/feature/signin/src/main/java/com/acon/acon/feature/signin/screen/SignInScreen.kt @@ -22,7 +22,6 @@ import androidx.compose.runtime.LaunchedEffect import androidx.compose.runtime.getValue import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.remember -import androidx.compose.runtime.rememberCoroutineScope import androidx.compose.runtime.setValue import androidx.compose.runtime.snapshotFlow import androidx.compose.ui.Alignment @@ -40,23 +39,19 @@ import com.acon.acon.core.designsystem.R import com.acon.acon.core.designsystem.component.button.AconGoogleSignInButton import com.acon.acon.core.designsystem.noRippleClickable import com.acon.acon.core.designsystem.theme.AconTheme -import com.acon.acon.feature.signin.screen.component.SignInTopBar -import com.acon.acon.feature.signin.utils.SplashAudioManager -import com.acon.acon.core.analytics.amplitude.AconAmplitude -import com.acon.acon.core.analytics.constants.EventNames -import com.acon.acon.core.analytics.constants.PropertyKeys -import com.acon.acon.core.model.model.user.VerificationStatus import com.acon.acon.core.ui.compose.LocalDeepLinkHandler import com.acon.acon.core.ui.compose.LocalUserType import com.acon.acon.core.ui.compose.getScreenHeight import com.acon.acon.core.ui.compose.getScreenWidth -import com.acon.acon.feature.signin.utils.rememberSocialRepository +import com.acon.acon.feature.signin.screen.component.SignInTopBar +import com.acon.acon.feature.signin.utils.SplashAudioManager +import com.acon.core.social.client.GoogleAuthClient +import com.acon.core.social.client.SocialAuthClient import com.airbnb.lottie.compose.LottieAnimation import com.airbnb.lottie.compose.LottieCompositionSpec import com.airbnb.lottie.compose.animateLottieCompositionAsState import com.airbnb.lottie.compose.rememberLottieComposition import kotlinx.coroutines.delay -import kotlinx.coroutines.launch @Composable fun SignInScreen( @@ -65,12 +60,10 @@ fun SignInScreen( navigateToSpotListView: () -> Unit, onClickTermsOfUse: () -> Unit, onClickPrivacyPolicy: () -> Unit, - onSignInComplete: (VerificationStatus) -> Unit, + onSignInButtonClick: (SocialAuthClient) -> Unit, onAnimationEnd:() -> Unit, onSkipButtonClick: () -> Unit ) { - val scope = rememberCoroutineScope() - val socialRepository = rememberSocialRepository() val context = LocalContext.current val activity = context as? Activity @@ -179,13 +172,7 @@ fun SignInScreen( .alpha(alpha), onClick = { if (alpha >= 0.75f) { - scope.launch { - socialRepository.googleSignIn() - .onSuccess { - onSignInComplete(it) - }.onFailure { - } - } + onSignInButtonClick(GoogleAuthClient(context)) } } ) @@ -257,7 +244,7 @@ private fun PreviewSignInScreen() { onClickPrivacyPolicy = {}, onAnimationEnd = {}, onSkipButtonClick = {}, - onSignInComplete = {} + onSignInButtonClick = {} ) } } \ No newline at end of file diff --git a/feature/signin/src/main/java/com/acon/acon/feature/signin/screen/SignInScreenContainer.kt b/feature/signin/src/main/java/com/acon/acon/feature/signin/screen/SignInScreenContainer.kt index 7596cefcf..8623cc800 100644 --- a/feature/signin/src/main/java/com/acon/acon/feature/signin/screen/SignInScreenContainer.kt +++ b/feature/signin/src/main/java/com/acon/acon/feature/signin/screen/SignInScreenContainer.kt @@ -30,7 +30,7 @@ fun SignInScreenContainer( state = state, modifier = modifier.fillMaxSize(), navigateToSpotListView = viewModel::navigateToSpotListView, - onSignInComplete = viewModel::onSignInComplete, + onSignInButtonClick = viewModel::onSignInButtonClicked, onClickTermsOfUse = viewModel::onClickTermsOfUse, onClickPrivacyPolicy = viewModel::onClickPrivacyPolicy, onAnimationEnd = viewModel::signIn, diff --git a/feature/signin/src/main/java/com/acon/acon/feature/signin/screen/SignInViewModel.kt b/feature/signin/src/main/java/com/acon/acon/feature/signin/screen/SignInViewModel.kt index 7595c6c63..f8f53ab29 100644 --- a/feature/signin/src/main/java/com/acon/acon/feature/signin/screen/SignInViewModel.kt +++ b/feature/signin/src/main/java/com/acon/acon/feature/signin/screen/SignInViewModel.kt @@ -7,8 +7,8 @@ import com.acon.acon.core.model.model.user.VerificationStatus import com.acon.acon.core.model.type.UserType import com.acon.acon.core.ui.base.BaseContainerHost import com.acon.acon.domain.repository.OnboardingRepository -import com.acon.acon.domain.repository.ProfileRepository import com.acon.acon.domain.repository.UserRepository +import com.acon.core.social.client.SocialAuthClient import dagger.hilt.android.lifecycle.HiltViewModel import kotlinx.coroutines.flow.collectLatest import org.orbitmvi.orbit.Container @@ -17,7 +17,6 @@ import javax.inject.Inject @HiltViewModel class SignInViewModel @Inject constructor( - private val profileRepository: ProfileRepository, private val onboardingRepository: OnboardingRepository, private val userRepository: UserRepository ) : BaseContainerHost() { @@ -59,7 +58,18 @@ class SignInViewModel @Inject constructor( } } - fun onSignInComplete(verificationStatus: VerificationStatus) = intent { + fun onSignInButtonClicked(socialAuthClient: SocialAuthClient) = intent { + val platform = socialAuthClient.platform + val code = socialAuthClient.getCredentialCode() + + userRepository.signIn(platform, code ?: return@intent).onSuccess { verificationStatus -> + onSignInComplete(verificationStatus) + }.onFailure { + postSideEffect(SignInSideEffect.ShowToastMessage) + } + } + + private fun onSignInComplete(verificationStatus: VerificationStatus) = intent { AconAmplitude.trackEvent( eventName = EventNames.SIGN_IN, properties = mapOf( diff --git a/feature/signin/src/main/java/com/acon/acon/feature/signin/utils/ComposableEntryPoints.kt b/feature/signin/src/main/java/com/acon/acon/feature/signin/utils/ComposableEntryPoints.kt deleted file mode 100644 index 546ab9319..000000000 --- a/feature/signin/src/main/java/com/acon/acon/feature/signin/utils/ComposableEntryPoints.kt +++ /dev/null @@ -1,20 +0,0 @@ -package com.acon.acon.feature.signin.utils - -import com.acon.acon.domain.repository.SocialRepository -import com.acon.acon.domain.repository.UserRepository -import dagger.hilt.EntryPoint -import dagger.hilt.InstallIn -import dagger.hilt.android.components.ActivityComponent -import dagger.hilt.components.SingletonComponent - -@EntryPoint -@InstallIn(SingletonComponent::class) -interface ComposableEntryPoint { - fun userRepository(): UserRepository -} - -@EntryPoint -@InstallIn(ActivityComponent::class) -interface ComposableActivityEntryPoint { - fun socialRepository(): SocialRepository -} \ No newline at end of file diff --git a/feature/signin/src/main/java/com/acon/acon/feature/signin/utils/RememberInstances.kt b/feature/signin/src/main/java/com/acon/acon/feature/signin/utils/RememberInstances.kt deleted file mode 100644 index a2da008b2..000000000 --- a/feature/signin/src/main/java/com/acon/acon/feature/signin/utils/RememberInstances.kt +++ /dev/null @@ -1,35 +0,0 @@ -package com.acon.acon.feature.signin.utils - -import androidx.compose.runtime.Composable -import androidx.compose.runtime.remember -import androidx.compose.ui.platform.LocalContext -import com.acon.acon.domain.repository.SocialRepository -import com.acon.acon.domain.repository.UserRepository -import com.acon.acon.core.ui.android.findActivity -import dagger.hilt.android.EntryPointAccessors - -@Composable -fun rememberUserRepository(): UserRepository { - val context = LocalContext.current - val entryPoint = EntryPointAccessors.fromApplication( - context.applicationContext, - ComposableEntryPoint::class.java - ) - - return remember { - entryPoint.userRepository() - } -} - -@Composable -fun rememberSocialRepository(): SocialRepository { - val context = LocalContext.current - val entryPoint = EntryPointAccessors.fromActivity( - context.findActivity(), - ComposableActivityEntryPoint::class.java - ) - - return remember { - entryPoint.socialRepository() - } -} \ No newline at end of file From e77a5918e853c7cd7a11ca52192459f72084241e Mon Sep 17 00:00:00 2001 From: Thirfir Date: Thu, 28 Aug 2025 16:20:27 +0900 Subject: [PATCH 07/91] =?UTF-8?q?refactor:=20Token=20=EC=A0=80=EC=9E=A5?= =?UTF-8?q?=EC=86=8C=20=EB=A1=9C=EC=A7=81=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../datasource/local/TokenLocalDataSource.kt | 48 ++++++------------- .../core/data/di/SharedPreferencesModule.kt | 35 ++++++++++++++ .../settings/screen/SettingsViewModel.kt | 7 +-- 3 files changed, 54 insertions(+), 36 deletions(-) create mode 100644 core/data/src/main/kotlin/com/acon/core/data/di/SharedPreferencesModule.kt diff --git a/core/data/src/main/kotlin/com/acon/core/data/datasource/local/TokenLocalDataSource.kt b/core/data/src/main/kotlin/com/acon/core/data/datasource/local/TokenLocalDataSource.kt index ecff900f4..49932df14 100644 --- a/core/data/src/main/kotlin/com/acon/core/data/datasource/local/TokenLocalDataSource.kt +++ b/core/data/src/main/kotlin/com/acon/core/data/datasource/local/TokenLocalDataSource.kt @@ -1,68 +1,50 @@ package com.acon.core.data.datasource.local -import android.content.Context +import androidx.core.content.edit import androidx.security.crypto.EncryptedSharedPreferences -import androidx.security.crypto.MasterKey import com.acon.acon.core.common.IODispatcher -import dagger.hilt.android.qualifiers.ApplicationContext import kotlinx.coroutines.CoroutineDispatcher import kotlinx.coroutines.withContext import javax.inject.Inject class TokenLocalDataSource @Inject constructor( - @ApplicationContext applicationContext: Context, - @IODispatcher private val dispatchersIO: CoroutineDispatcher, + @IODispatcher private val dispatcher: CoroutineDispatcher, + private val preferences: EncryptedSharedPreferences ) { - private var masterKey = - MasterKey.Builder(applicationContext, MasterKey.DEFAULT_MASTER_KEY_ALIAS) - .setKeyScheme(MasterKey.KeyScheme.AES256_GCM) - .build() - - private var sharedPreferences = EncryptedSharedPreferences.create( - applicationContext, - SHARED_PREF_FILENAME, - masterKey, - EncryptedSharedPreferences.PrefKeyEncryptionScheme.AES256_SIV, - EncryptedSharedPreferences.PrefValueEncryptionScheme.AES256_GCM - ) internal suspend fun saveAccessToken( accessToken: String, - ) = withContext(dispatchersIO) { - with(sharedPreferences.edit()) { + ) = withContext(dispatcher) { + preferences.edit { putString(SHARED_PREF_KEY, accessToken) - apply() } } internal suspend fun saveRefreshToken( refreshToken: String, - ) = withContext(dispatchersIO) { - with(sharedPreferences.edit()) { + ) = withContext(dispatcher) { + preferences.edit { putString(SHARED_PREF_REFRESH_KEY, refreshToken) - apply() } } - internal suspend fun getAccessToken(): String? = withContext(dispatchersIO) { - sharedPreferences.getString(SHARED_PREF_KEY, null) + internal suspend fun getAccessToken(): String? = withContext(dispatcher) { + preferences.getString(SHARED_PREF_KEY, null) } - internal suspend fun getRefreshToken(): String? = withContext(dispatchersIO) { - sharedPreferences.getString(SHARED_PREF_REFRESH_KEY, null) + internal suspend fun getRefreshToken(): String? = withContext(dispatcher) { + preferences.getString(SHARED_PREF_REFRESH_KEY, null) } - internal suspend fun removeAllTokens() = withContext(dispatchersIO) { - with(sharedPreferences.edit()) { + internal suspend fun removeAllTokens() = withContext(dispatcher) { + preferences.edit { remove(SHARED_PREF_KEY) remove(SHARED_PREF_REFRESH_KEY) - apply() } } companion object { - private const val SHARED_PREF_FILENAME = "token" - private const val SHARED_PREF_KEY = "accessToken" - private const val SHARED_PREF_REFRESH_KEY = "refreshToken" + private const val SHARED_PREF_KEY = "access_token" + private const val SHARED_PREF_REFRESH_KEY = "refresh_token" } } \ No newline at end of file diff --git a/core/data/src/main/kotlin/com/acon/core/data/di/SharedPreferencesModule.kt b/core/data/src/main/kotlin/com/acon/core/data/di/SharedPreferencesModule.kt new file mode 100644 index 000000000..40cd46eb2 --- /dev/null +++ b/core/data/src/main/kotlin/com/acon/core/data/di/SharedPreferencesModule.kt @@ -0,0 +1,35 @@ +package com.acon.core.data.di + +import android.content.Context +import android.content.SharedPreferences +import androidx.security.crypto.EncryptedSharedPreferences +import androidx.security.crypto.MasterKey +import dagger.Module +import dagger.Provides +import dagger.hilt.InstallIn +import dagger.hilt.android.qualifiers.ApplicationContext +import dagger.hilt.components.SingletonComponent +import javax.inject.Singleton + +@Module +@InstallIn(SingletonComponent::class) +object SharedPreferencesModule { + + @Provides + @Singleton + fun providesSharedPreferences( + @ApplicationContext context: Context, + ): SharedPreferences { + val masterKey = MasterKey.Builder(context, MasterKey.DEFAULT_MASTER_KEY_ALIAS) + .setKeyScheme(MasterKey.KeyScheme.AES256_GCM) + .build() + + return EncryptedSharedPreferences.create( + context, + "secrets.sp", + masterKey, + EncryptedSharedPreferences.PrefKeyEncryptionScheme.AES256_SIV, + EncryptedSharedPreferences.PrefValueEncryptionScheme.AES256_GCM + ) + } +} \ No newline at end of file diff --git a/feature/settings/src/main/java/com/acon/acon/feature/settings/screen/SettingsViewModel.kt b/feature/settings/src/main/java/com/acon/acon/feature/settings/screen/SettingsViewModel.kt index 0761f315c..f3e7a5c82 100644 --- a/feature/settings/src/main/java/com/acon/acon/feature/settings/screen/SettingsViewModel.kt +++ b/feature/settings/src/main/java/com/acon/acon/feature/settings/screen/SettingsViewModel.kt @@ -1,5 +1,6 @@ package com.acon.acon.feature.settings.screen +import com.acon.acon.core.model.type.UserType import com.acon.acon.domain.repository.UserRepository import com.acon.acon.core.ui.base.BaseContainerHost import dagger.hilt.android.lifecycle.HiltViewModel @@ -18,9 +19,9 @@ class SettingsViewModel @Inject constructor( container(SettingsUiState.Guest) { userRepository.getUserType().collectLatest { userType -> when (userType) { - com.acon.acon.core.model.type.UserType.GUEST -> reduce { SettingsUiState.Guest } - com.acon.acon.core.model.type.UserType.USER -> reduce { SettingsUiState.User() } - com.acon.acon.core.model.type.UserType.ADMIN -> reduce { SettingsUiState.User() } + UserType.GUEST -> reduce { SettingsUiState.Guest } + UserType.USER -> reduce { SettingsUiState.User() } + UserType.ADMIN -> reduce { SettingsUiState.User() } } } } From 5ffdec64398d6b1e975299e904fc7e108fad5072 Mon Sep 17 00:00:00 2001 From: Thirfir Date: Thu, 28 Aug 2025 17:33:23 +0900 Subject: [PATCH 08/91] =?UTF-8?q?refactor:=20=EB=A9=94=EC=9D=B8=20?= =?UTF-8?q?=EC=95=A1=ED=8B=B0=EB=B9=84=ED=8B=B0=20=EC=8B=A4=EC=8B=9C?= =?UTF-8?q?=EA=B0=84=20=EC=9C=84=EC=B9=98=20Flow=20=EB=A1=9C=EC=A7=81=20?= =?UTF-8?q?=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/com/acon/acon/MainActivity.kt | 82 ++++++++++--------- 1 file changed, 45 insertions(+), 37 deletions(-) diff --git a/app/src/main/java/com/acon/acon/MainActivity.kt b/app/src/main/java/com/acon/acon/MainActivity.kt index 88e6ff153..f45fd1ff5 100644 --- a/app/src/main/java/com/acon/acon/MainActivity.kt +++ b/app/src/main/java/com/acon/acon/MainActivity.kt @@ -40,7 +40,6 @@ import com.acon.acon.core.ads_api.LocalSpotListAdProvider import com.acon.acon.core.analytics.amplitude.AconAmplitude import com.acon.acon.core.analytics.constants.EventNames import com.acon.acon.core.common.DeepLinkHandler -import com.acon.acon.core.common.utils.firstNotNull import com.acon.acon.core.designsystem.R import com.acon.acon.core.designsystem.component.bottomsheet.SignInBottomSheet import com.acon.acon.core.designsystem.component.dialog.AconPermissionDialog @@ -82,14 +81,18 @@ import com.google.android.play.core.install.model.ActivityResult import com.google.android.play.core.install.model.InstallStatus import dagger.hilt.android.AndroidEntryPoint import io.branch.referral.Branch +import kotlinx.coroutines.ExperimentalCoroutinesApi import kotlinx.coroutines.channels.awaitClose import kotlinx.coroutines.flow.MutableStateFlow import kotlinx.coroutines.flow.SharingStarted +import kotlinx.coroutines.flow.asStateFlow import kotlinx.coroutines.flow.callbackFlow import kotlinx.coroutines.flow.emitAll import kotlinx.coroutines.flow.filter +import kotlinx.coroutines.flow.flatMapLatest import kotlinx.coroutines.flow.flow import kotlinx.coroutines.flow.stateIn +import kotlinx.coroutines.flow.transform import kotlinx.coroutines.launch import kotlinx.coroutines.tasks.await import timber.log.Timber @@ -124,12 +127,16 @@ class MainActivity : ComponentActivity() { } private val appUpdateActivityResultLauncher = registerForActivityResult(ActivityResultContracts.StartIntentSenderForResult()) { result -> - if (result.resultCode == RESULT_OK) { // Immediate에서는 받을 일 없음 - Timber.d("유저 업데이트 수락") - } else if (result.resultCode == RESULT_CANCELED) { - Timber.d("유저 업데이트 거부") - } else if (result.resultCode == ActivityResult.RESULT_IN_APP_UPDATE_FAILED) { - Timber.d("업데이트 실패") + when (result.resultCode) { + RESULT_OK -> { // Immediate에서는 받을 일 없음 + Timber.d("유저 업데이트 수락") + } + RESULT_CANCELED -> { + Timber.d("유저 업데이트 거부") + } + ActivityResult.RESULT_IN_APP_UPDATE_FAILED -> { + Timber.d("업데이트 실패") + } } } @@ -184,42 +191,43 @@ class MainActivity : ComponentActivity() { ) @SuppressLint("MissingPermission") - private val currentLocationFlow = callbackFlow { - isLocationPermissionGranted.collect { granted -> - if (granted) { - val fusedLocationClient = - LocationServices.getFusedLocationProviderClient(this@MainActivity.applicationContext) - trySend( - fusedLocationClient.getCurrentLocation( - Priority.PRIORITY_HIGH_ACCURACY, - null - ).await() - ) + val liveLocationFlow = callbackFlow { + val fusedLocationClient = + LocationServices.getFusedLocationProviderClient(this@MainActivity.applicationContext) + trySend( + fusedLocationClient.getCurrentLocation( + Priority.PRIORITY_HIGH_ACCURACY, + null + ).await() + ) - val locationRequest = LocationRequest.Builder(3_000).setPriority( - Priority.PRIORITY_HIGH_ACCURACY - ).build() + val locationRequest = LocationRequest.Builder(3_000).setPriority( + Priority.PRIORITY_HIGH_ACCURACY + ).build() - val locationCallback = object : LocationCallback() { - override fun onLocationResult(locationResult: LocationResult) { - for (location in locationResult.locations) { - Timber.d("새 좌표 획득: [${location.latitude}, ${location.longitude}]") - trySend(location) - } - } + val locationCallback = object : LocationCallback() { + override fun onLocationResult(locationResult: LocationResult) { + for (location in locationResult.locations) { + Timber.d("새 좌표 획득: [${location.latitude}, ${location.longitude}]") + trySend(location) } + } + } - fusedLocationClient.requestLocationUpdates( - locationRequest, - locationCallback, - Looper.getMainLooper() - ) + fusedLocationClient.requestLocationUpdates( + locationRequest, + locationCallback, + Looper.getMainLooper() + ) - awaitClose { - fusedLocationClient.removeLocationUpdates(locationCallback) - } - } + awaitClose { + fusedLocationClient.removeLocationUpdates(locationCallback) } + } + + @OptIn(ExperimentalCoroutinesApi::class) + private val currentLocationFlow = isLocationPermissionGranted.filter { it }.flatMapLatest { + liveLocationFlow }.stateIn( scope = lifecycleScope, started = SharingStarted.WhileSubscribed(5_000), From 357a48ac6b0e678d360e76d488b78f0a78aa10f7 Mon Sep 17 00:00:00 2001 From: Thirfir Date: Fri, 29 Aug 2025 15:09:05 +0900 Subject: [PATCH 09/91] =?UTF-8?q?refactor:=20=EC=98=A8=EB=B3=B4=EB=94=A9?= =?UTF-8?q?=20DataStore=20=ED=86=B5=ED=95=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Proto DataStore 추가, 지역인증/취향탐색/온보딩소개 저장소 통합 --- .../main/java/com/acon/acon/MainActivity.kt | 1 + .../com/acon/acon/di/AuthenticatorModule.kt | 11 ++-- .../acon/acon/navigation/AconNavigation.kt | 8 +-- .../nested/AreaVerificationNavigation.kt | 2 +- .../navigation/nested/OnboardingNavigation.kt | 5 +- .../navigation/nested/SignInNavigation.kt | 2 +- build.gradle.kts | 1 + core/data/build.gradle.kts | 36 ++++++++++++- .../data/api/remote/auth/OnboardingAuthApi.kt | 6 +-- .../local/OnboardingLocalDataSource.kt | 49 ++++++++++++------ .../datasource/local/TokenLocalDataSource.kt | 4 +- .../datasource/local/UserLocalDataSource.kt | 31 ------------ .../remote/OnboardingRemoteDataSource.kt | 6 +-- .../com/acon/core/data/di/DataStoreModule.kt | 26 +++------- .../com/acon/core/data/di/NetworkModule.kt | 2 +- ...ngRequest.kt => TastePreferenceRequest.kt} | 2 +- .../repository/OnboardingRepositoryImpl.kt | 50 ++++++++++++------- .../data/repository/UserRepositoryImpl.kt | 39 ++++++++------- .../OnboardingPreferencesSerializer.kt | 31 ++++++++++++ .../acon/core/data/session/SessionHandler.kt | 12 ++++- .../proto/onboarding_preferences_entity.proto | 10 ++++ .../OnboardingRepositoryImplTest.kt | 10 ++-- .../src/main/res/values/strings.xml | 2 +- .../core/model/model/OnboardingPreferences.kt | 7 +++ ...r.kt => PostTastePreferenceResultError.kt} | 4 +- .../domain/repository/OnboardingRepository.kt | 12 +++-- .../acon/domain/repository/UserRepository.kt | 2 - .../AreaVerificationScreenContainer.kt | 5 +- .../composable/AreaVerificationViewModel.kt | 17 +++---- .../composable/PreferenceMapScreen.kt | 2 +- .../composable/ChooseDislikesScreen.kt | 2 +- .../viewmodel/ChooseDislikesViewModel.kt | 8 +-- .../introduce/viewmodel/IntroduceViewModel.kt | 2 +- .../signin/screen/SignInScreenContainer.kt | 2 +- .../feature/signin/screen/SignInViewModel.kt | 28 +++++------ .../spot/screen/spotlist/SpotListViewModel.kt | 10 ++-- gradle/libs.versions.toml | 8 ++- 37 files changed, 275 insertions(+), 180 deletions(-) delete mode 100644 core/data/src/main/kotlin/com/acon/core/data/datasource/local/UserLocalDataSource.kt rename core/data/src/main/kotlin/com/acon/core/data/dto/request/{OnboardingRequest.kt => TastePreferenceRequest.kt} (85%) create mode 100644 core/data/src/main/kotlin/com/acon/core/data/serializer/OnboardingPreferencesSerializer.kt create mode 100644 core/data/src/main/proto/onboarding_preferences_entity.proto create mode 100644 core/model/src/main/java/com/acon/acon/core/model/model/OnboardingPreferences.kt rename domain/src/main/java/com/acon/acon/domain/error/onboarding/{PostOnboardingResultError.kt => PostTastePreferenceResultError.kt} (69%) diff --git a/app/src/main/java/com/acon/acon/MainActivity.kt b/app/src/main/java/com/acon/acon/MainActivity.kt index f45fd1ff5..451b66a32 100644 --- a/app/src/main/java/com/acon/acon/MainActivity.kt +++ b/app/src/main/java/com/acon/acon/MainActivity.kt @@ -375,6 +375,7 @@ class MainActivity : ComponentActivity() { Timber.e(e) } } + viewModel.updateShowSignInBottomSheet(false) }, modifier = Modifier ) } diff --git a/app/src/main/java/com/acon/acon/di/AuthenticatorModule.kt b/app/src/main/java/com/acon/acon/di/AuthenticatorModule.kt index dc0573a15..c87925dfe 100644 --- a/app/src/main/java/com/acon/acon/di/AuthenticatorModule.kt +++ b/app/src/main/java/com/acon/acon/di/AuthenticatorModule.kt @@ -2,11 +2,11 @@ package com.acon.acon.di import android.content.Context import com.acon.acon.core.launcher.AppLauncher -import com.acon.acon.data.api.remote.noauth.UserNoAuthApi -import com.acon.acon.data.authentication.AuthAuthenticator -import com.acon.acon.data.datasource.local.TokenLocalDataSource -import com.acon.acon.data.session.SessionHandler import com.acon.acon.launcher.AppLauncherImpl +import com.acon.core.data.api.remote.noauth.UserNoAuthApi +import com.acon.core.data.authentication.AuthAuthenticator +import com.acon.core.data.datasource.local.TokenLocalDataSource +import com.acon.core.data.session.SessionHandler import dagger.Binds import dagger.Module import dagger.Provides @@ -28,7 +28,8 @@ object AuthenticatorModule { sessionHandler: SessionHandler, userNoAuthApi: UserNoAuthApi, appLauncher: AppLauncher - ): Authenticator = AuthAuthenticator(context, tokenLocalDataSource, sessionHandler, userNoAuthApi, appLauncher) + ): Authenticator = + AuthAuthenticator(context, tokenLocalDataSource, sessionHandler, userNoAuthApi, appLauncher) } @Module diff --git a/app/src/main/java/com/acon/acon/navigation/AconNavigation.kt b/app/src/main/java/com/acon/acon/navigation/AconNavigation.kt index 839efa8cc..0200ab29a 100644 --- a/app/src/main/java/com/acon/acon/navigation/AconNavigation.kt +++ b/app/src/main/java/com/acon/acon/navigation/AconNavigation.kt @@ -34,10 +34,10 @@ import com.acon.acon.core.navigation.route.SpotRoute import com.acon.acon.core.ui.compose.LocalDeepLinkHandler import com.acon.acon.core.ui.compose.LocalSnackbarHostState import com.acon.acon.navigation.nested.areaVerificationNavigation -import com.acon.acon.navigation.nested.onboardingNavigationNavigation +import com.acon.acon.navigation.nested.onboardingNavigation import com.acon.acon.navigation.nested.profileNavigation import com.acon.acon.navigation.nested.settingsNavigation -import com.acon.acon.navigation.nested.signInNavigationNavigation +import com.acon.acon.navigation.nested.signInNavigation import com.acon.acon.navigation.nested.spotNavigation import com.acon.acon.navigation.nested.uploadNavigation import kotlinx.coroutines.delay @@ -142,11 +142,11 @@ fun AconNavigation( defaultPopExitTransition() } ) { - signInNavigationNavigation(navController) + signInNavigation(navController) areaVerificationNavigation(navController) - onboardingNavigationNavigation(navController) + onboardingNavigation(navController) spotNavigation(navController) diff --git a/app/src/main/java/com/acon/acon/navigation/nested/AreaVerificationNavigation.kt b/app/src/main/java/com/acon/acon/navigation/nested/AreaVerificationNavigation.kt index 5a9624ad3..f3b1d409f 100644 --- a/app/src/main/java/com/acon/acon/navigation/nested/AreaVerificationNavigation.kt +++ b/app/src/main/java/com/acon/acon/navigation/nested/AreaVerificationNavigation.kt @@ -41,7 +41,7 @@ fun NavGraphBuilder.areaVerificationNavigation( route = routeData.route ) ) - }, onNavigateToOnboarding = { navController.navigateAndClear(OnboardingRoute.Graph) }, + }, onNavigateToChooseDislikes = { navController.navigateAndClear(OnboardingRoute.Graph) }, onNavigateToSpotList = { navController.navigateAndClear(SpotRoute.Graph) } ) } diff --git a/app/src/main/java/com/acon/acon/navigation/nested/OnboardingNavigation.kt b/app/src/main/java/com/acon/acon/navigation/nested/OnboardingNavigation.kt index 601acf433..2d20589b7 100644 --- a/app/src/main/java/com/acon/acon/navigation/nested/OnboardingNavigation.kt +++ b/app/src/main/java/com/acon/acon/navigation/nested/OnboardingNavigation.kt @@ -1,7 +1,5 @@ package com.acon.acon.navigation.nested -import androidx.compose.foundation.background -import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.foundation.layout.statusBarsPadding import androidx.compose.foundation.layout.systemBarsPadding import androidx.compose.ui.Modifier @@ -11,7 +9,6 @@ import androidx.navigation.NavHostController import androidx.navigation.compose.composable import androidx.navigation.compose.navigation import com.acon.acon.core.designsystem.effect.screenDefault -import com.acon.acon.core.designsystem.theme.AconTheme import com.acon.acon.core.navigation.LocalNavController import com.acon.acon.core.navigation.route.OnboardingRoute import com.acon.acon.core.navigation.route.SettingsRoute @@ -21,7 +18,7 @@ import com.acon.feature.onboarding.dislikes.composable.ChooseDislikesScreenConta import com.acon.feature.onboarding.introduce.composable.IntroduceScreenContainer -internal fun NavGraphBuilder.onboardingNavigationNavigation( +internal fun NavGraphBuilder.onboardingNavigation( navController: NavHostController ) { diff --git a/app/src/main/java/com/acon/acon/navigation/nested/SignInNavigation.kt b/app/src/main/java/com/acon/acon/navigation/nested/SignInNavigation.kt index 39e8a00d5..ec952c445 100644 --- a/app/src/main/java/com/acon/acon/navigation/nested/SignInNavigation.kt +++ b/app/src/main/java/com/acon/acon/navigation/nested/SignInNavigation.kt @@ -13,7 +13,7 @@ import com.acon.acon.feature.signin.screen.SignInScreenContainer import com.acon.acon.core.navigation.route.SpotRoute import com.acon.acon.core.navigation.utils.navigateAndClear -internal fun NavGraphBuilder.signInNavigationNavigation( +internal fun NavGraphBuilder.signInNavigation( navController: NavHostController, ) { diff --git a/build.gradle.kts b/build.gradle.kts index 05fe971f3..b7b68db38 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -10,4 +10,5 @@ plugins { alias(libs.plugins.compose.compiler) apply false alias(libs.plugins.firebase.crashlytics) apply false alias(libs.plugins.google.services) apply false + alias(libs.plugins.protobuf) apply false } \ No newline at end of file diff --git a/core/data/build.gradle.kts b/core/data/build.gradle.kts index 4b9d2a3e6..d6369b6a2 100644 --- a/core/data/build.gradle.kts +++ b/core/data/build.gradle.kts @@ -1,9 +1,12 @@ +import org.gradle.configurationcache.extensions.capitalized +import org.jetbrains.kotlin.gradle.tasks.KotlinCompile import java.util.Properties plugins { alias(libs.plugins.acon.android.library) alias(libs.plugins.acon.android.library.hilt) alias(libs.plugins.kotlin.serialization) + alias(libs.plugins.protobuf) } val localProperties = Properties().apply { @@ -11,7 +14,7 @@ val localProperties = Properties().apply { } android { - namespace = "com.acon.acon.data" + namespace = "com.acon.core.data" defaultConfig { buildConfigField("String", "GOOGLE_CLIENT_ID", "\"${localProperties["GOOGLE_CLIENT_ID"]}\"") @@ -23,6 +26,35 @@ android { } } +androidComponents { + onVariants(selector().all()) { variant -> + afterEvaluate { + val capName = variant.name.capitalized() + tasks.getByName("ksp${capName}Kotlin") { + setSource(tasks.getByName("generate${capName}Proto").outputs) + } + } + } +} + +protobuf { + protoc { + artifact = "com.google.protobuf:protoc:4.32.0" + } + generateProtoTasks { + all().forEach { task -> + task.builtins { + create("java") { + option("lite") + } + create("kotlin") { + option("lite") + } + } + } + } +} + dependencies { implementation(projects.domain) @@ -42,6 +74,8 @@ dependencies { implementation(libs.bundles.googleSignIn) implementation(libs.preferences.datastore) + implementation(libs.proto.datastore) + implementation(libs.protobuf.kotlin) testImplementation(libs.bundles.non.android.test) testRuntimeOnly(libs.bundles.junit5.runtime) diff --git a/core/data/src/main/kotlin/com/acon/core/data/api/remote/auth/OnboardingAuthApi.kt b/core/data/src/main/kotlin/com/acon/core/data/api/remote/auth/OnboardingAuthApi.kt index 259507c7b..60823684e 100644 --- a/core/data/src/main/kotlin/com/acon/core/data/api/remote/auth/OnboardingAuthApi.kt +++ b/core/data/src/main/kotlin/com/acon/core/data/api/remote/auth/OnboardingAuthApi.kt @@ -1,13 +1,13 @@ package com.acon.core.data.api.remote.auth -import com.acon.core.data.dto.request.OnboardingRequest +import com.acon.core.data.dto.request.TastePreferenceRequest import retrofit2.http.Body import retrofit2.http.PUT interface OnboardingAuthApi { @PUT("/api/v1/preference") - suspend fun submitOnboardingResult( - @Body onboardingRequest: OnboardingRequest + suspend fun submitTastePreferenceResult( + @Body tastePreferenceRequest: TastePreferenceRequest ) } \ No newline at end of file diff --git a/core/data/src/main/kotlin/com/acon/core/data/datasource/local/OnboardingLocalDataSource.kt b/core/data/src/main/kotlin/com/acon/core/data/datasource/local/OnboardingLocalDataSource.kt index 58c748cd6..af9818f0b 100644 --- a/core/data/src/main/kotlin/com/acon/core/data/datasource/local/OnboardingLocalDataSource.kt +++ b/core/data/src/main/kotlin/com/acon/core/data/datasource/local/OnboardingLocalDataSource.kt @@ -1,31 +1,50 @@ package com.acon.core.data.datasource.local import androidx.datastore.core.DataStore -import androidx.datastore.preferences.core.Preferences -import androidx.datastore.preferences.core.booleanPreferencesKey -import androidx.datastore.preferences.core.edit -import com.acon.core.data.di.OnboardingDataStore +import com.acon.core.data.dto.entity.OnboardingPreferencesEntity +import com.acon.core.data.dto.entity.copy import kotlinx.coroutines.flow.first -import kotlinx.coroutines.flow.map import javax.inject.Inject class OnboardingLocalDataSource @Inject constructor( - @OnboardingDataStore private val onboardingDataStore: DataStore + private val onboardingDataStore: DataStore ) { - suspend fun saveDidOnboarding(didOnboarding: Boolean) { - onboardingDataStore.edit { prefs -> - prefs[DID_ONBOARDING] = didOnboarding + suspend fun updateOnboardingPreferences(pref: OnboardingPreferencesEntity) { + onboardingDataStore.updateData { prefs -> + prefs.copy { + shouldShowIntroduce = pref.shouldShowIntroduce + hasTastePreference = pref.hasTastePreference + hasVerifiedArea = pref.hasVerifiedArea + } } } - suspend fun getDidOnboarding(): Boolean { - return onboardingDataStore.data.map { prefs -> - prefs[DID_ONBOARDING] ?: false - }.first() + suspend fun updateShouldShowIntroduce(shouldShow: Boolean) { + onboardingDataStore.updateData { prefs -> + prefs.copy { + shouldShowIntroduce = shouldShow + } + } + } + + suspend fun updateHasPreference(hasPreference: Boolean) { + onboardingDataStore.updateData { prefs -> + prefs.copy { + this.hasTastePreference = hasPreference + } + } + } + + suspend fun updateHasVerifiedArea(verifiedArea: Boolean) { + onboardingDataStore.updateData { prefs -> + prefs.copy { + this.hasVerifiedArea = verifiedArea + } + } } - companion object { - private val DID_ONBOARDING = booleanPreferencesKey("did_onboarding") + suspend fun getOnboardingPreferences(): OnboardingPreferencesEntity { + return onboardingDataStore.data.first() } } \ No newline at end of file diff --git a/core/data/src/main/kotlin/com/acon/core/data/datasource/local/TokenLocalDataSource.kt b/core/data/src/main/kotlin/com/acon/core/data/datasource/local/TokenLocalDataSource.kt index 49932df14..174345705 100644 --- a/core/data/src/main/kotlin/com/acon/core/data/datasource/local/TokenLocalDataSource.kt +++ b/core/data/src/main/kotlin/com/acon/core/data/datasource/local/TokenLocalDataSource.kt @@ -1,7 +1,7 @@ package com.acon.core.data.datasource.local +import android.content.SharedPreferences import androidx.core.content.edit -import androidx.security.crypto.EncryptedSharedPreferences import com.acon.acon.core.common.IODispatcher import kotlinx.coroutines.CoroutineDispatcher import kotlinx.coroutines.withContext @@ -9,7 +9,7 @@ import javax.inject.Inject class TokenLocalDataSource @Inject constructor( @IODispatcher private val dispatcher: CoroutineDispatcher, - private val preferences: EncryptedSharedPreferences + private val preferences: SharedPreferences ) { internal suspend fun saveAccessToken( diff --git a/core/data/src/main/kotlin/com/acon/core/data/datasource/local/UserLocalDataSource.kt b/core/data/src/main/kotlin/com/acon/core/data/datasource/local/UserLocalDataSource.kt deleted file mode 100644 index 94c17c763..000000000 --- a/core/data/src/main/kotlin/com/acon/core/data/datasource/local/UserLocalDataSource.kt +++ /dev/null @@ -1,31 +0,0 @@ -package com.acon.core.data.datasource.local - -import androidx.datastore.core.DataStore -import androidx.datastore.preferences.core.Preferences -import androidx.datastore.preferences.core.booleanPreferencesKey -import androidx.datastore.preferences.core.edit -import com.acon.core.data.di.UserDataStore -import kotlinx.coroutines.flow.first -import kotlinx.coroutines.flow.map -import javax.inject.Inject - -class UserLocalDataSource @Inject constructor( - @UserDataStore private val userDataStore: DataStore -) { - - suspend fun saveDidOnboarding(didOnboarding: Boolean) { - userDataStore.edit { - it[DID_ONBOARDING] = didOnboarding - } - } - - suspend fun getDidOnboarding(): Boolean { - return userDataStore.data.map { preferences -> - preferences[DID_ONBOARDING] ?: false - }.first() - } - - companion object { - private val DID_ONBOARDING = booleanPreferencesKey("did_onboarding") - } -} \ No newline at end of file diff --git a/core/data/src/main/kotlin/com/acon/core/data/datasource/remote/OnboardingRemoteDataSource.kt b/core/data/src/main/kotlin/com/acon/core/data/datasource/remote/OnboardingRemoteDataSource.kt index 1d04dd19b..cd7c9388b 100644 --- a/core/data/src/main/kotlin/com/acon/core/data/datasource/remote/OnboardingRemoteDataSource.kt +++ b/core/data/src/main/kotlin/com/acon/core/data/datasource/remote/OnboardingRemoteDataSource.kt @@ -1,6 +1,6 @@ package com.acon.core.data.datasource.remote -import com.acon.core.data.dto.request.OnboardingRequest +import com.acon.core.data.dto.request.TastePreferenceRequest import com.acon.core.data.api.remote.auth.OnboardingAuthApi import javax.inject.Inject @@ -8,7 +8,7 @@ class OnboardingRemoteDataSource @Inject constructor( private val onboardingAuthApi: OnboardingAuthApi ) { - suspend fun submitOnboardingResult(request: OnboardingRequest) { - return onboardingAuthApi.submitOnboardingResult(request) + suspend fun submitTastePreferenceResult(request: TastePreferenceRequest) { + return onboardingAuthApi.submitTastePreferenceResult(request) } } \ No newline at end of file diff --git a/core/data/src/main/kotlin/com/acon/core/data/di/DataStoreModule.kt b/core/data/src/main/kotlin/com/acon/core/data/di/DataStoreModule.kt index 002cacafe..2cbf6352f 100644 --- a/core/data/src/main/kotlin/com/acon/core/data/di/DataStoreModule.kt +++ b/core/data/src/main/kotlin/com/acon/core/data/di/DataStoreModule.kt @@ -2,8 +2,11 @@ package com.acon.core.data.di import android.content.Context import androidx.datastore.core.DataStore +import androidx.datastore.dataStore import androidx.datastore.preferences.core.Preferences import androidx.datastore.preferences.preferencesDataStore +import com.acon.core.data.dto.entity.OnboardingPreferencesEntity +import com.acon.core.data.serializer.OnboardingPreferencesSerializer import dagger.Module import dagger.Provides import dagger.hilt.InstallIn @@ -18,8 +21,10 @@ object DataStoreModule { private val Context.aconAppDataStore: DataStore by preferencesDataStore(name = "acon_app.ds") private val Context.timeDataStore: DataStore by preferencesDataStore(name = "time.ds") - private val Context.userDataStore: DataStore by preferencesDataStore(name = "user.ds") - private val Context.onboardingDataStore: DataStore by preferencesDataStore(name = "onboarding.ds") + private val Context.onboardingDataStore: DataStore by dataStore( + fileName = "onboarding.ds", + serializer = OnboardingPreferencesSerializer() + ) @Provides @Singleton @@ -37,14 +42,6 @@ object DataStoreModule { @Provides @Singleton - @UserDataStore - fun providesUserDataStore( - @ApplicationContext context: Context - ) = context.userDataStore - - @Provides - @Singleton - @OnboardingDataStore fun providesOnboardingDataStore( @ApplicationContext context: Context ) = context.onboardingDataStore @@ -57,12 +54,3 @@ annotation class AconAppDataStore @Qualifier @Retention(AnnotationRetention.BINARY) annotation class TimeDataStore - -@Qualifier -@Retention(AnnotationRetention.BINARY) -annotation class UserDataStore - -@Qualifier -@Retention(AnnotationRetention.BINARY) -annotation class OnboardingDataStore - diff --git a/core/data/src/main/kotlin/com/acon/core/data/di/NetworkModule.kt b/core/data/src/main/kotlin/com/acon/core/data/di/NetworkModule.kt index c45f63e82..8cbb9050b 100644 --- a/core/data/src/main/kotlin/com/acon/core/data/di/NetworkModule.kt +++ b/core/data/src/main/kotlin/com/acon/core/data/di/NetworkModule.kt @@ -8,7 +8,7 @@ import com.acon.acon.core.common.NaverDevelopersAuthInterceptor import com.acon.acon.core.common.NoAuth import com.acon.acon.core.common.TokenInterceptor import com.acon.acon.core.common.UrlConstants -import com.acon.acon.data.BuildConfig +import com.acon.core.data.BuildConfig import com.acon.core.data.datasource.local.TokenLocalDataSource import com.acon.core.data.error.RemoteErrorCallAdapterFactory import com.jakewharton.retrofit2.converter.kotlinx.serialization.asConverterFactory diff --git a/core/data/src/main/kotlin/com/acon/core/data/dto/request/OnboardingRequest.kt b/core/data/src/main/kotlin/com/acon/core/data/dto/request/TastePreferenceRequest.kt similarity index 85% rename from core/data/src/main/kotlin/com/acon/core/data/dto/request/OnboardingRequest.kt rename to core/data/src/main/kotlin/com/acon/core/data/dto/request/TastePreferenceRequest.kt index cbdd88436..9367c7267 100644 --- a/core/data/src/main/kotlin/com/acon/core/data/dto/request/OnboardingRequest.kt +++ b/core/data/src/main/kotlin/com/acon/core/data/dto/request/TastePreferenceRequest.kt @@ -4,6 +4,6 @@ import kotlinx.serialization.SerialName import kotlinx.serialization.Serializable @Serializable -data class OnboardingRequest( +data class TastePreferenceRequest( @SerialName("dislikeFoodList") val dislikeFoods: List ) \ No newline at end of file diff --git a/core/data/src/main/kotlin/com/acon/core/data/repository/OnboardingRepositoryImpl.kt b/core/data/src/main/kotlin/com/acon/core/data/repository/OnboardingRepositoryImpl.kt index e90e0e468..5a5678b4b 100644 --- a/core/data/src/main/kotlin/com/acon/core/data/repository/OnboardingRepositoryImpl.kt +++ b/core/data/src/main/kotlin/com/acon/core/data/repository/OnboardingRepositoryImpl.kt @@ -1,40 +1,56 @@ package com.acon.core.data.repository -import com.acon.core.data.datasource.remote.OnboardingRemoteDataSource -import com.acon.core.data.dto.request.OnboardingRequest -import com.acon.core.data.error.runCatchingWith -import com.acon.acon.domain.error.onboarding.PostOnboardingResultError -import com.acon.acon.domain.repository.OnboardingRepository +import com.acon.acon.core.model.model.OnboardingPreferences import com.acon.acon.core.model.type.FoodType +import com.acon.acon.domain.error.onboarding.PostTastePreferenceResultError +import com.acon.acon.domain.repository.OnboardingRepository import com.acon.core.data.datasource.local.OnboardingLocalDataSource -import com.acon.acon.domain.repository.UserRepository +import com.acon.core.data.datasource.remote.OnboardingRemoteDataSource +import com.acon.core.data.dto.request.TastePreferenceRequest +import com.acon.core.data.error.runCatchingWith import javax.inject.Inject class OnboardingRepositoryImpl @Inject constructor( private val onboardingRemoteDataSource: OnboardingRemoteDataSource, private val onboardingLocalDataSource: OnboardingLocalDataSource, - private val userRepository: UserRepository ) : OnboardingRepository { - override suspend fun submitOnboardingResult( - dislikeFoodList: List + override suspend fun submitTastePreferenceResult( + dislikeFoods: List ): Result { - return runCatchingWith(PostOnboardingResultError()) { - val request = OnboardingRequest(dislikeFoods = dislikeFoodList.map { it.name }) - onboardingRemoteDataSource.submitOnboardingResult(request) - userRepository.saveDidOnboarding(true) + return runCatchingWith(PostTastePreferenceResultError()) { + val request = TastePreferenceRequest(dislikeFoods = dislikeFoods.map { it.name }) + onboardingRemoteDataSource.submitTastePreferenceResult(request) + onboardingLocalDataSource.updateHasPreference(true) + } + } + + override suspend fun updateHasTastePreference(hasPreference: Boolean): Result { + return runCatchingWith { + onboardingLocalDataSource.updateHasPreference(hasPreference) + } + } + + override suspend fun updateShouldShowIntroduce(shouldShow: Boolean): Result { + return runCatchingWith { + onboardingLocalDataSource.updateShouldShowIntroduce(shouldShow) } } - override suspend fun saveDidOnboarding(didOnboarding: Boolean): Result { + override suspend fun updateHasVerifiedArea(hasVerifiedArea: Boolean): Result { return runCatchingWith { - onboardingLocalDataSource.saveDidOnboarding(didOnboarding) + onboardingLocalDataSource.updateHasVerifiedArea(hasVerifiedArea) } } - override suspend fun getDidOnboarding(): Result { + override suspend fun getOnboardingPreferences(): Result { return runCatchingWith { - onboardingLocalDataSource.getDidOnboarding() + val entity = onboardingLocalDataSource.getOnboardingPreferences() + OnboardingPreferences( + shouldShowIntroduce = entity.shouldShowIntroduce, + hasTastePreference = entity.hasTastePreference, + hasVerifiedArea = entity.hasVerifiedArea + ) } } } \ No newline at end of file diff --git a/core/data/src/main/kotlin/com/acon/core/data/repository/UserRepositoryImpl.kt b/core/data/src/main/kotlin/com/acon/core/data/repository/UserRepositoryImpl.kt index 2a8e49064..08f2f331e 100644 --- a/core/data/src/main/kotlin/com/acon/core/data/repository/UserRepositoryImpl.kt +++ b/core/data/src/main/kotlin/com/acon/core/data/repository/UserRepositoryImpl.kt @@ -6,23 +6,26 @@ import com.acon.acon.core.model.model.user.VerificationStatus import com.acon.acon.data.dto.request.DeleteAccountRequest import com.acon.acon.domain.error.user.PostSignInError import com.acon.acon.domain.error.user.PostSignOutError +import com.acon.acon.domain.repository.OnboardingRepository import com.acon.acon.domain.repository.UserRepository import com.acon.core.data.cache.ProfileInfoCache import com.acon.core.data.datasource.local.TokenLocalDataSource -import com.acon.core.data.datasource.local.UserLocalDataSource import com.acon.core.data.datasource.remote.UserRemoteDataSource import com.acon.core.data.dto.request.SignInRequest import com.acon.core.data.dto.request.SignOutRequest import com.acon.core.data.error.runCatchingWith import com.acon.core.data.session.SessionHandler +import kotlinx.coroutines.async +import kotlinx.coroutines.awaitAll +import kotlinx.coroutines.coroutineScope import javax.inject.Inject class UserRepositoryImpl @Inject constructor( private val userRemoteDataSource: UserRemoteDataSource, private val tokenLocalDataSource: TokenLocalDataSource, - private val userLocalDataSource: UserLocalDataSource, private val sessionHandler: SessionHandler, - private val profileInfoCache: ProfileInfoCache + private val profileInfoCache: ProfileInfoCache, + private val onboardingRepository: OnboardingRepository ) : UserRepository { override fun getUserType() = sessionHandler.getUserType() @@ -43,7 +46,17 @@ class UserRepositoryImpl @Inject constructor( signInResponse.accessToken.orEmpty(), signInResponse.refreshToken.orEmpty() ) - saveDidOnboarding(signInResponse.toVerificationStatus().hasPreference) + + coroutineScope { + val verifiedAreaJob = async { + onboardingRepository.updateHasVerifiedArea(signInResponse.toVerificationStatus().hasVerifiedArea) + } + val tastePreferenceJob = async { + onboardingRepository.updateHasTastePreference(signInResponse.toVerificationStatus().hasPreference) + } + + awaitAll(verifiedAreaJob, tastePreferenceJob) + } signInResponse.toVerificationStatus() } @@ -56,7 +69,8 @@ class UserRepositoryImpl @Inject constructor( SignOutRequest(refreshToken = refreshToken) ) }.onSuccess { - saveDidOnboarding(false) + onboardingRepository.updateHasVerifiedArea(false) + onboardingRepository.updateHasTastePreference(false) clearSession() } } @@ -71,23 +85,12 @@ class UserRepositoryImpl @Inject constructor( ) ) }.onSuccess { - saveDidOnboarding(false) + onboardingRepository.updateHasVerifiedArea(false) + onboardingRepository.updateHasTastePreference(false) clearSession() } } - override suspend fun saveDidOnboarding(didOnboarding: Boolean): Result { - return runCatchingWith { - userLocalDataSource.saveDidOnboarding(didOnboarding) - } - } - - override suspend fun getDidOnboarding(): Result { - return runCatchingWith { - userLocalDataSource.getDidOnboarding() - } - } - override suspend fun clearSession() = runCatchingWith { profileInfoCache.clearData() sessionHandler.clearSession() diff --git a/core/data/src/main/kotlin/com/acon/core/data/serializer/OnboardingPreferencesSerializer.kt b/core/data/src/main/kotlin/com/acon/core/data/serializer/OnboardingPreferencesSerializer.kt new file mode 100644 index 000000000..917bad6df --- /dev/null +++ b/core/data/src/main/kotlin/com/acon/core/data/serializer/OnboardingPreferencesSerializer.kt @@ -0,0 +1,31 @@ +package com.acon.core.data.serializer + +import androidx.datastore.core.CorruptionException +import androidx.datastore.core.Serializer +import com.acon.core.data.dto.entity.OnboardingPreferencesEntity +import com.acon.core.data.dto.entity.copy +import com.google.protobuf.InvalidProtocolBufferException +import java.io.InputStream +import java.io.OutputStream +import javax.inject.Inject + +class OnboardingPreferencesSerializer @Inject constructor() : Serializer{ + + override val defaultValue: OnboardingPreferencesEntity = OnboardingPreferencesEntity.getDefaultInstance().copy { + shouldShowIntroduce = true + hasTastePreference = false + hasVerifiedArea = false + } + + override suspend fun readFrom(input: InputStream): OnboardingPreferencesEntity { + return try { + OnboardingPreferencesEntity.parseFrom(input) + } catch (exception: InvalidProtocolBufferException) { + throw CorruptionException("Cannot read proto.", exception) + } + } + + override suspend fun writeTo(t: OnboardingPreferencesEntity, output: OutputStream) { + t.writeTo(output) + } +} \ No newline at end of file diff --git a/core/data/src/main/kotlin/com/acon/core/data/session/SessionHandler.kt b/core/data/src/main/kotlin/com/acon/core/data/session/SessionHandler.kt index b7d228c12..92d61f689 100644 --- a/core/data/src/main/kotlin/com/acon/core/data/session/SessionHandler.kt +++ b/core/data/src/main/kotlin/com/acon/core/data/session/SessionHandler.kt @@ -4,6 +4,7 @@ import com.acon.acon.core.analytics.amplitude.AconAmplitude import com.acon.acon.core.common.IODispatcher import com.acon.acon.core.model.type.UserType import com.acon.core.data.datasource.local.TokenLocalDataSource +import com.acon.core.data.dto.response.SignInResponse import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.flow.Flow import kotlinx.coroutines.flow.MutableStateFlow @@ -15,6 +16,8 @@ interface SessionHandler { suspend fun clearSession() suspend fun completeSignIn(accessToken: String, refreshToken: String) fun getUserType(): Flow + + suspend fun onSignInResponse(response: SignInResponse) } class SessionHandlerImpl @Inject constructor( @@ -50,4 +53,11 @@ class SessionHandlerImpl @Inject constructor( tokenLocalDataSource.saveAccessToken(accessToken) tokenLocalDataSource.saveRefreshToken(refreshToken) } -} \ No newline at end of file + + override suspend fun onSignInResponse(response: SignInResponse) { + val accessToken = response.accessToken ?: throw IllegalStateException("Access token is null") + val refreshToken = response.refreshToken ?: throw IllegalStateException("Refresh token is null") + tokenLocalDataSource.saveAccessToken(accessToken) + tokenLocalDataSource.saveRefreshToken(refreshToken) + } +} diff --git a/core/data/src/main/proto/onboarding_preferences_entity.proto b/core/data/src/main/proto/onboarding_preferences_entity.proto new file mode 100644 index 000000000..9947fde51 --- /dev/null +++ b/core/data/src/main/proto/onboarding_preferences_entity.proto @@ -0,0 +1,10 @@ +syntax = "proto3"; + +option java_package = "com.acon.core.data.dto.entity"; +option java_multiple_files = true; + +message OnboardingPreferencesEntity { + bool should_show_introduce = 1; + bool has_taste_preference = 2; + bool has_verified_area = 3; +} diff --git a/core/data/src/test/java/com/acon/core/data/repository/OnboardingRepositoryImplTest.kt b/core/data/src/test/java/com/acon/core/data/repository/OnboardingRepositoryImplTest.kt index 8f9b030c7..081c40618 100644 --- a/core/data/src/test/java/com/acon/core/data/repository/OnboardingRepositoryImplTest.kt +++ b/core/data/src/test/java/com/acon/core/data/repository/OnboardingRepositoryImplTest.kt @@ -1,6 +1,6 @@ package com.acon.core.data.repository -import com.acon.acon.domain.error.onboarding.PostOnboardingResultError +import com.acon.acon.domain.error.onboarding.PostTastePreferenceResultError import com.acon.core.data.assertValidErrorMapping import com.acon.core.data.createErrorStream import com.acon.core.data.createFakeRemoteError @@ -27,7 +27,7 @@ class OnboardingRepositoryImplTest { companion object { @JvmStatic fun postOnboardingResultErrorScenarios() = createErrorStream( - 40013 to PostOnboardingResultError.InvalidDislikeFood::class + 40013 to PostTastePreferenceResultError.InvalidDislikeFood::class ) } @@ -35,14 +35,14 @@ class OnboardingRepositoryImplTest { @MethodSource("postOnboardingResultErrorScenarios") fun `싫어하는 음식 API 실패 시 에러 객체를 반환한다`( errorCode: Int, - expectedErrorClass: KClass + expectedErrorClass: KClass ) = runTest { // Given val fakeRemoteError = createFakeRemoteError(errorCode) - coEvery { onboardingRemoteDataSource.submitOnboardingResult(any()) } throws fakeRemoteError + coEvery { onboardingRemoteDataSource.submitTastePreferenceResult(any()) } throws fakeRemoteError // When - val result = onboardingRepository.submitOnboardingResult(listOf()) + val result = onboardingRepository.submitTastePreferenceResult(listOf()) // Then assertValidErrorMapping(result, expectedErrorClass) diff --git a/core/designsystem/src/main/res/values/strings.xml b/core/designsystem/src/main/res/values/strings.xml index 437b3ffe9..8afcb9c87 100644 --- a/core/designsystem/src/main/res/values/strings.xml +++ b/core/designsystem/src/main/res/values/strings.xml @@ -270,7 +270,7 @@ 모든 음식을 잘 드시는 분이군요! 확인했어요! 센스있게 추천해드릴게요 시작하기 - 취향탐색을 그만둘까요? + 취향탐색을 그만둘까요? 계속하기 그만두기 저장되었습니다 diff --git a/core/model/src/main/java/com/acon/acon/core/model/model/OnboardingPreferences.kt b/core/model/src/main/java/com/acon/acon/core/model/model/OnboardingPreferences.kt new file mode 100644 index 000000000..2de1cfaa2 --- /dev/null +++ b/core/model/src/main/java/com/acon/acon/core/model/model/OnboardingPreferences.kt @@ -0,0 +1,7 @@ +package com.acon.acon.core.model.model + +data class OnboardingPreferences( + val shouldShowIntroduce: Boolean, + val hasTastePreference: Boolean, + val hasVerifiedArea: Boolean +) diff --git a/domain/src/main/java/com/acon/acon/domain/error/onboarding/PostOnboardingResultError.kt b/domain/src/main/java/com/acon/acon/domain/error/onboarding/PostTastePreferenceResultError.kt similarity index 69% rename from domain/src/main/java/com/acon/acon/domain/error/onboarding/PostOnboardingResultError.kt rename to domain/src/main/java/com/acon/acon/domain/error/onboarding/PostTastePreferenceResultError.kt index c7efb81f8..0f8feef61 100644 --- a/domain/src/main/java/com/acon/acon/domain/error/onboarding/PostOnboardingResultError.kt +++ b/domain/src/main/java/com/acon/acon/domain/error/onboarding/PostTastePreferenceResultError.kt @@ -2,9 +2,9 @@ package com.acon.acon.domain.error.onboarding import com.acon.acon.domain.error.RootError -open class PostOnboardingResultError : RootError() { +open class PostTastePreferenceResultError : RootError() { - class InvalidDislikeFood : PostOnboardingResultError() { + class InvalidDislikeFood : PostTastePreferenceResultError() { override val code: Int = 40013 } diff --git a/domain/src/main/java/com/acon/acon/domain/repository/OnboardingRepository.kt b/domain/src/main/java/com/acon/acon/domain/repository/OnboardingRepository.kt index 7186c52f6..44067408d 100644 --- a/domain/src/main/java/com/acon/acon/domain/repository/OnboardingRepository.kt +++ b/domain/src/main/java/com/acon/acon/domain/repository/OnboardingRepository.kt @@ -1,12 +1,16 @@ package com.acon.acon.domain.repository +import com.acon.acon.core.model.model.OnboardingPreferences import com.acon.acon.core.model.type.FoodType interface OnboardingRepository { - suspend fun submitOnboardingResult( - dislikeFoodList: List + suspend fun submitTastePreferenceResult( + dislikeFoods: List ): Result - suspend fun saveDidOnboarding(didOnboarding: Boolean): Result - suspend fun getDidOnboarding(): Result + suspend fun updateHasTastePreference(hasPreference: Boolean): Result + suspend fun updateShouldShowIntroduce(shouldShow: Boolean): Result + suspend fun updateHasVerifiedArea(hasVerifiedArea: Boolean): Result + + suspend fun getOnboardingPreferences(): Result } diff --git a/domain/src/main/java/com/acon/acon/domain/repository/UserRepository.kt b/domain/src/main/java/com/acon/acon/domain/repository/UserRepository.kt index 21aa1e7aa..79775632a 100644 --- a/domain/src/main/java/com/acon/acon/domain/repository/UserRepository.kt +++ b/domain/src/main/java/com/acon/acon/domain/repository/UserRepository.kt @@ -11,7 +11,5 @@ interface UserRepository { suspend fun signOut(): Result suspend fun deleteAccount(reason: String): Result suspend fun clearSession(): Result - suspend fun saveDidOnboarding(didOnboarding: Boolean): Result - suspend fun getDidOnboarding(): Result fun getUserType(): Flow } \ No newline at end of file diff --git a/feature/areaverification/src/main/java/com/acon/acon/feature/areaverification/composable/AreaVerificationScreenContainer.kt b/feature/areaverification/src/main/java/com/acon/acon/feature/areaverification/composable/AreaVerificationScreenContainer.kt index 194b56294..1582d12eb 100644 --- a/feature/areaverification/src/main/java/com/acon/acon/feature/areaverification/composable/AreaVerificationScreenContainer.kt +++ b/feature/areaverification/src/main/java/com/acon/acon/feature/areaverification/composable/AreaVerificationScreenContainer.kt @@ -8,7 +8,6 @@ import androidx.compose.runtime.getValue import androidx.compose.ui.Modifier import androidx.compose.ui.platform.LocalContext import androidx.hilt.navigation.compose.hiltViewModel -import com.acon.acon.core.navigation.route.AreaVerificationRoute import com.acon.acon.core.ui.permission.checkLocationPermission import com.acon.acon.core.ui.android.showToast import com.acon.acon.core.ui.compose.LocalRequestLocationPermission @@ -19,7 +18,7 @@ import org.orbitmvi.orbit.compose.collectSideEffect fun AreaVerificationScreenContainer( route: String, onNextScreen: (Double, Double) -> Unit, - onNavigateToOnboarding: () -> Unit, + onNavigateToChooseDislikes: () -> Unit, onNavigateToSpotList: () -> Unit, modifier: Modifier = Modifier, viewModel: AreaVerificationViewModel = hiltViewModel() @@ -69,7 +68,7 @@ fun AreaVerificationScreenContainer( context.showToast(it.errorMessage) } - is AreaVerificationSideEffect.NavigateToOnboarding -> onNavigateToOnboarding() + is AreaVerificationSideEffect.NavigateToOnboarding -> onNavigateToChooseDislikes() is AreaVerificationSideEffect.NavigateToSpotList -> onNavigateToSpotList() } } diff --git a/feature/areaverification/src/main/java/com/acon/acon/feature/areaverification/composable/AreaVerificationViewModel.kt b/feature/areaverification/src/main/java/com/acon/acon/feature/areaverification/composable/AreaVerificationViewModel.kt index 0e9841663..054933c52 100644 --- a/feature/areaverification/src/main/java/com/acon/acon/feature/areaverification/composable/AreaVerificationViewModel.kt +++ b/feature/areaverification/src/main/java/com/acon/acon/feature/areaverification/composable/AreaVerificationViewModel.kt @@ -6,16 +6,14 @@ import android.content.Context import android.content.pm.PackageManager import android.location.LocationManager import androidx.core.app.ActivityCompat -import androidx.lifecycle.viewModelScope import com.acon.acon.core.model.model.area.Area import com.acon.acon.core.model.type.UserActionType import com.acon.acon.core.ui.base.BaseContainerHost import com.acon.acon.domain.error.area.ReplaceVerifiedArea +import com.acon.acon.domain.repository.OnboardingRepository import com.acon.acon.domain.repository.ProfileRepository import com.acon.acon.domain.repository.TimeRepository -import com.acon.acon.domain.repository.UserRepository import dagger.hilt.android.lifecycle.HiltViewModel -import kotlinx.coroutines.async import org.orbitmvi.orbit.viewmodel.container import timber.log.Timber import javax.inject.Inject @@ -24,7 +22,7 @@ import javax.inject.Inject class AreaVerificationViewModel @Inject constructor( private val application: Application, private val profileRepository: ProfileRepository, - private val userRepository: UserRepository, + private val onboardingRepository: OnboardingRepository, private val timeRepository: TimeRepository ) : BaseContainerHost() { @@ -61,8 +59,8 @@ class AreaVerificationViewModel @Inject constructor( } fun onSkipButtonClick() = intent { - userRepository.getDidOnboarding().onSuccess { did -> - if (did) postSideEffect(AreaVerificationSideEffect.NavigateToSpotList) + onboardingRepository.getOnboardingPreferences().onSuccess { prefs -> + if (prefs.hasTastePreference) postSideEffect(AreaVerificationSideEffect.NavigateToSpotList) else postSideEffect(AreaVerificationSideEffect.NavigateToOnboarding) }.onFailure { postSideEffect(AreaVerificationSideEffect.NavigateToOnboarding) } timeRepository.saveUserActionTime(UserActionType.SKIP_AREA_VERIFICATION, System.currentTimeMillis()) @@ -126,13 +124,14 @@ class AreaVerificationViewModel @Inject constructor( } fun verifyArea(latitude: Double, longitude: Double) = intent { - val didOnboarding = userRepository.getDidOnboarding().takeIf { it.isSuccess }?.getOrElse { true }!! + val hasPreference = onboardingRepository.getOnboardingPreferences().getOrNull()?.hasTastePreference + profileRepository.verifyArea(latitude, longitude) .onSuccess { reduce { state.copy( isVerifySuccess = true, - didOnboarding = didOnboarding + hasTastePreference = hasPreference == true ) } } @@ -154,7 +153,7 @@ data class AreaVerificationUiState( val longitude: Double = 0.0, val isVerifySuccess: Boolean = false, val verifiedAreaList: List = emptyList(), - val didOnboarding: Boolean = false, + val hasTastePreference: Boolean = false, ) sealed interface AreaVerificationSideEffect { diff --git a/feature/areaverification/src/main/java/com/acon/acon/feature/areaverification/composable/PreferenceMapScreen.kt b/feature/areaverification/src/main/java/com/acon/acon/feature/areaverification/composable/PreferenceMapScreen.kt index 37f0a9519..395713033 100644 --- a/feature/areaverification/src/main/java/com/acon/acon/feature/areaverification/composable/PreferenceMapScreen.kt +++ b/feature/areaverification/src/main/java/com/acon/acon/feature/areaverification/composable/PreferenceMapScreen.kt @@ -72,7 +72,7 @@ fun PreferenceMapScreen( LaunchedEffect(state.isVerifySuccess) { if (state.isVerifySuccess) { - onNavigateToNext(state.didOnboarding) + onNavigateToNext(state.hasTastePreference) } } diff --git a/feature/onboarding/src/main/java/com/acon/feature/onboarding/dislikes/composable/ChooseDislikesScreen.kt b/feature/onboarding/src/main/java/com/acon/feature/onboarding/dislikes/composable/ChooseDislikesScreen.kt index 1680247c0..d9f7b56ce 100644 --- a/feature/onboarding/src/main/java/com/acon/feature/onboarding/dislikes/composable/ChooseDislikesScreen.kt +++ b/feature/onboarding/src/main/java/com/acon/feature/onboarding/dislikes/composable/ChooseDislikesScreen.kt @@ -49,7 +49,7 @@ internal fun ChooseDislikesScreen( is ChooseDislikesUiState.Success -> { if (state.showStopModal) { AconTwoActionDialog( - title = stringResource(R.string.stop_onboarding), + title = stringResource(R.string.stop_choose_dislikes), action1 = stringResource(R.string.keep_going), action2 = stringResource(R.string.stop), onAction1 = { onDismissStopModal{} }, diff --git a/feature/onboarding/src/main/java/com/acon/feature/onboarding/dislikes/viewmodel/ChooseDislikesViewModel.kt b/feature/onboarding/src/main/java/com/acon/feature/onboarding/dislikes/viewmodel/ChooseDislikesViewModel.kt index e57b80f48..db26e4f9b 100644 --- a/feature/onboarding/src/main/java/com/acon/feature/onboarding/dislikes/viewmodel/ChooseDislikesViewModel.kt +++ b/feature/onboarding/src/main/java/com/acon/feature/onboarding/dislikes/viewmodel/ChooseDislikesViewModel.kt @@ -92,11 +92,11 @@ class ChooseDislikesViewModel @Inject constructor( fun onCompletion() = intent { runOn { - onboardingRepository.submitOnboardingResult(state.selectedDislikes.toList()).onSuccess { - if (onboardingRepository.getDidOnboarding().getOrDefault(true)) - postSideEffect(ChooseDislikesSideEffect.NavigateToHome) - else + onboardingRepository.submitTastePreferenceResult(state.selectedDislikes.toList()).onSuccess { + if (onboardingRepository.getOnboardingPreferences().getOrNull()?.shouldShowIntroduce == true) postSideEffect(ChooseDislikesSideEffect.NavigateToIntroduce) + else + postSideEffect(ChooseDislikesSideEffect.NavigateToHome) }.onFailure { postSideEffect(ChooseDislikesSideEffect.ShowErrorToast) } diff --git a/feature/onboarding/src/main/java/com/acon/feature/onboarding/introduce/viewmodel/IntroduceViewModel.kt b/feature/onboarding/src/main/java/com/acon/feature/onboarding/introduce/viewmodel/IntroduceViewModel.kt index 5f8051d09..08c7a645a 100644 --- a/feature/onboarding/src/main/java/com/acon/feature/onboarding/introduce/viewmodel/IntroduceViewModel.kt +++ b/feature/onboarding/src/main/java/com/acon/feature/onboarding/introduce/viewmodel/IntroduceViewModel.kt @@ -41,7 +41,7 @@ class IntroduceViewModel @Inject constructor( } fun onStartButtonClicked() = intent { - onboardingRepository.saveDidOnboarding(true) + onboardingRepository.updateShouldShowIntroduce(false) postSideEffect(IntroduceSideEffect.OnNavigateToHomeScreen) } } diff --git a/feature/signin/src/main/java/com/acon/acon/feature/signin/screen/SignInScreenContainer.kt b/feature/signin/src/main/java/com/acon/acon/feature/signin/screen/SignInScreenContainer.kt index 8623cc800..4980441c3 100644 --- a/feature/signin/src/main/java/com/acon/acon/feature/signin/screen/SignInScreenContainer.kt +++ b/feature/signin/src/main/java/com/acon/acon/feature/signin/screen/SignInScreenContainer.kt @@ -53,7 +53,7 @@ fun SignInScreenContainer( val intent = Intent(Intent.ACTION_VIEW, Uri.parse(url)) context.startActivity(intent) } - is SignInSideEffect.NavigateToOnboarding -> navigateToOnboarding() + is SignInSideEffect.NavigateToChooseDislikes -> navigateToOnboarding() is SignInSideEffect.NavigateToIntroduce -> navigateToIntroduce() } } diff --git a/feature/signin/src/main/java/com/acon/acon/feature/signin/screen/SignInViewModel.kt b/feature/signin/src/main/java/com/acon/acon/feature/signin/screen/SignInViewModel.kt index f8f53ab29..0879a64e4 100644 --- a/feature/signin/src/main/java/com/acon/acon/feature/signin/screen/SignInViewModel.kt +++ b/feature/signin/src/main/java/com/acon/acon/feature/signin/screen/SignInViewModel.kt @@ -30,14 +30,14 @@ class SignInViewModel @Inject constructor( SignInUiState.SignIn(showSignInInfo = true) } } else { - userRepository.getDidOnboarding().onSuccess { did -> - if (!did) - postSideEffect(SignInSideEffect.NavigateToOnboarding) + onboardingRepository.getOnboardingPreferences().onSuccess { + if(it.hasTastePreference.not()) + postSideEffect(SignInSideEffect.NavigateToChooseDislikes) else { - if (onboardingRepository.getDidOnboarding().getOrDefault(true)) - postSideEffect(SignInSideEffect.NavigateToSpotListView) - else + if (it.shouldShowIntroduce) postSideEffect(SignInSideEffect.NavigateToIntroduce) + else + postSideEffect(SignInSideEffect.NavigateToSpotListView) } } } @@ -51,10 +51,10 @@ class SignInViewModel @Inject constructor( } fun onSkipButtonClicked() = intent { - if (onboardingRepository.getDidOnboarding().getOrDefault(true)) { - postSideEffect(SignInSideEffect.NavigateToSpotListView) - } else { + if (onboardingRepository.getOnboardingPreferences().getOrNull()?.shouldShowIntroduce == true) { postSideEffect(SignInSideEffect.NavigateToIntroduce) + } else { + postSideEffect(SignInSideEffect.NavigateToSpotListView) } } @@ -79,11 +79,11 @@ class SignInViewModel @Inject constructor( if (verificationStatus.hasVerifiedArea.not()) { postSideEffect(SignInSideEffect.NavigateToAreaVerification) } else if (verificationStatus.hasPreference.not()) { - postSideEffect(SignInSideEffect.NavigateToOnboarding) - } else if (onboardingRepository.getDidOnboarding().getOrDefault(true)) { - postSideEffect(SignInSideEffect.NavigateToSpotListView) - } else { + postSideEffect(SignInSideEffect.NavigateToChooseDislikes) + } else if (onboardingRepository.getOnboardingPreferences().getOrNull()?.shouldShowIntroduce == true) { postSideEffect(SignInSideEffect.NavigateToIntroduce) + } else { + postSideEffect(SignInSideEffect.NavigateToSpotListView) } AconAmplitude.setUserId(verificationStatus.externalUUID) } @@ -115,7 +115,7 @@ sealed interface SignInSideEffect { data object ShowToastMessage : SignInSideEffect data object NavigateToSpotListView : SignInSideEffect data object NavigateToAreaVerification : SignInSideEffect - data object NavigateToOnboarding : SignInSideEffect + data object NavigateToChooseDislikes : SignInSideEffect data object OnClickTermsOfUse : SignInSideEffect data object OnClickPrivacyPolicy : SignInSideEffect data object NavigateToIntroduce : SignInSideEffect diff --git a/feature/spot/src/main/java/com/acon/acon/feature/spot/screen/spotlist/SpotListViewModel.kt b/feature/spot/src/main/java/com/acon/acon/feature/spot/screen/spotlist/SpotListViewModel.kt index 4b24110df..c24124b80 100644 --- a/feature/spot/src/main/java/com/acon/acon/feature/spot/screen/spotlist/SpotListViewModel.kt +++ b/feature/spot/src/main/java/com/acon/acon/feature/spot/screen/spotlist/SpotListViewModel.kt @@ -24,6 +24,7 @@ import com.acon.acon.core.ui.android.NavigationAppHandler import com.acon.acon.core.ui.android.isInKorea import com.acon.acon.core.ui.base.BaseContainerHost import com.acon.acon.domain.error.spot.FetchSpotListError +import com.acon.acon.domain.repository.OnboardingRepository import com.acon.acon.domain.repository.ProfileRepository import com.acon.acon.domain.repository.SpotRepository import com.acon.acon.domain.repository.TimeRepository @@ -43,7 +44,7 @@ import kotlin.reflect.KClass class SpotListViewModel @Inject constructor( @ApplicationContext private val context: Context, private val spotRepository: SpotRepository, - private val profileRepository: ProfileRepository, + private val onboardingRepository: OnboardingRepository, private val timeRepository: TimeRepository, private val isDistanceExceededUseCase: IsDistanceExceededUseCase, private val isCooldownExpiredUseCase: IsCooldownExpiredUseCase @@ -77,9 +78,10 @@ class SpotListViewModel @Inject constructor( initialLocation = location if (location.isInKorea(context)) { var showAreaVerificationModal = false - if (isCooldownExpiredUseCase(UserActionType.SKIP_AREA_VERIFICATION, 24 * 60 * 60) && userType.value != UserType.GUEST) - showAreaVerificationModal = - profileRepository.fetchVerifiedAreaList().takeIf { it.isSuccess }?.getOrNull()?.isEmpty() == true + if (isCooldownExpiredUseCase(UserActionType.SKIP_AREA_VERIFICATION, 24 * 60 * 60) && userType.value != UserType.GUEST) { + showAreaVerificationModal = onboardingRepository.getOnboardingPreferences() + .getOrNull()?.hasVerifiedArea == false + } fetchSpotList(location, Condition( state.selectedSpotType, diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 39cc5e09b..086a96519 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -38,7 +38,6 @@ hiltCompose = "1.2.0" javaxInject = "1" orbit = "9.0.0" coroutine = "1.7.3" -dataStoreVersion = "1.1.0" paging-compose = "3.3.6" amplitudeVersion = "1.20.1" @@ -48,6 +47,10 @@ firebaseCrashlytics = "3.0.3" googleServices = "4.4.2" ads = "24.3.0" +# DataStore +dataStoreVersion = "1.1.7" +protobufKotlinLite = "4.32.0" + ## Naver Map naverMapCompose = "1.8.0" naverMapLocation = "21.0.2" @@ -202,6 +205,8 @@ firebase-crashlytics-sdk = { group = "com.google.firebase", name = "firebase-cra # DataStore preferences-datastore = { module = "androidx.datastore:datastore-preferences", version.ref = "dataStoreVersion" } +proto-datastore = { module = "androidx.datastore:datastore", version.ref = "dataStoreVersion" } +protobuf-kotlin = { module = "com.google.protobuf:protobuf-kotlin-lite", version.ref = "protobufKotlinLite" } # Palette palette = { module = "androidx.palette:palette", version.ref = "paletteVersion" } @@ -231,6 +236,7 @@ compose-compiler = { id = "org.jetbrains.kotlin.plugin.compose", version.ref = " firebase-crashlytics = { id = "com.google.firebase.crashlytics", version.ref = "firebaseCrashlytics" } jetbrains-kotlin-jvm = { id = "org.jetbrains.kotlin.jvm", version.ref = "jetbrainsKotlinJvm" } google-services = { id = "com.google.gms.google-services", version.ref = "googleServices" } +protobuf = { id = "com.google.protobuf", version = "0.9.5" } # build-logic plugins acon-non-android-library = { id = "com.acon.non.android.library", version = "unspecified" } From 6d21abac409cc2ae3bbc8b93c6017bd849176741 Mon Sep 17 00:00:00 2001 From: Thirfir Date: Fri, 29 Aug 2025 15:18:48 +0900 Subject: [PATCH 10/91] =?UTF-8?q?chore:=20=EC=A7=80=EC=97=AD=EC=9D=B8?= =?UTF-8?q?=EC=A6=9D=20=EB=AA=A8=EB=93=88=20=EC=A0=9C=EA=B1=B0=20->=20?= =?UTF-8?q?=EC=98=A8=EB=B3=B4=EB=94=A9=20=EB=AA=A8=EB=93=88=EB=A1=9C=20?= =?UTF-8?q?=ED=86=B5=ED=95=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/build.gradle.kts | 1 - .../nested/AreaVerificationNavigation.kt | 4 ++-- feature/areaverification/.gitignore | 1 - feature/areaverification/build.gradle.kts | 19 ------------------- .../src/main/AndroidManifest.xml | 5 ----- feature/onboarding/build.gradle.kts | 4 ++++ .../composable/AreaVerificationScreen.kt | 3 ++- .../AreaVerificationScreenContainer.kt | 4 +++- .../area}/composable/LocationMapScreen.kt | 2 +- .../area}/composable/PreferenceMapScreen.kt | 4 +++- .../viewmodel}/AreaVerificationViewModel.kt | 2 +- settings.gradle.kts | 1 - 12 files changed, 16 insertions(+), 34 deletions(-) delete mode 100644 feature/areaverification/.gitignore delete mode 100644 feature/areaverification/build.gradle.kts delete mode 100644 feature/areaverification/src/main/AndroidManifest.xml rename feature/{areaverification/src/main/java/com/acon/acon/feature/areaverification => onboarding/src/main/java/com/acon/feature/onboarding/area}/composable/AreaVerificationScreen.kt (97%) rename feature/{areaverification/src/main/java/com/acon/acon/feature/areaverification => onboarding/src/main/java/com/acon/feature/onboarding/area}/composable/AreaVerificationScreenContainer.kt (92%) rename feature/{areaverification/src/main/java/com/acon/acon/feature/areaverification => onboarding/src/main/java/com/acon/feature/onboarding/area}/composable/LocationMapScreen.kt (99%) rename feature/{areaverification/src/main/java/com/acon/acon/feature/areaverification => onboarding/src/main/java/com/acon/feature/onboarding/area}/composable/PreferenceMapScreen.kt (96%) rename feature/{areaverification/src/main/java/com/acon/acon/feature/areaverification/composable => onboarding/src/main/java/com/acon/feature/onboarding/area/viewmodel}/AreaVerificationViewModel.kt (99%) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index b0573d6a2..2514033ef 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -52,7 +52,6 @@ dependencies { implementation(projects.feature.signin) implementation(projects.feature.spot) implementation(projects.feature.onboarding) - implementation(projects.feature.areaverification) implementation(projects.feature.upload) implementation(projects.feature.settings) implementation(projects.feature.profile) diff --git a/app/src/main/java/com/acon/acon/navigation/nested/AreaVerificationNavigation.kt b/app/src/main/java/com/acon/acon/navigation/nested/AreaVerificationNavigation.kt index f3b1d409f..f905750a5 100644 --- a/app/src/main/java/com/acon/acon/navigation/nested/AreaVerificationNavigation.kt +++ b/app/src/main/java/com/acon/acon/navigation/nested/AreaVerificationNavigation.kt @@ -17,8 +17,8 @@ import com.acon.acon.core.navigation.route.SettingsRoute import com.acon.acon.core.navigation.route.SpotRoute import com.acon.acon.core.navigation.utils.navigateAndClear import com.acon.acon.core.ui.android.showToast -import com.acon.acon.feature.areaverification.composable.AreaVerificationScreenContainer -import com.acon.acon.feature.areaverification.composable.PreferenceMapScreen +import com.acon.feature.onboarding.area.composable.AreaVerificationScreenContainer +import com.acon.feature.onboarding.area.composable.PreferenceMapScreen fun NavGraphBuilder.areaVerificationNavigation( navController: NavHostController diff --git a/feature/areaverification/.gitignore b/feature/areaverification/.gitignore deleted file mode 100644 index 42afabfd2..000000000 --- a/feature/areaverification/.gitignore +++ /dev/null @@ -1 +0,0 @@ -/build \ No newline at end of file diff --git a/feature/areaverification/build.gradle.kts b/feature/areaverification/build.gradle.kts deleted file mode 100644 index 8df154a28..000000000 --- a/feature/areaverification/build.gradle.kts +++ /dev/null @@ -1,19 +0,0 @@ -plugins { - alias(libs.plugins.acon.android.library) - alias(libs.plugins.acon.android.feature) - alias(libs.plugins.acon.android.library.compose) - alias(libs.plugins.acon.android.library.hilt) - alias(libs.plugins.acon.android.library.orbit) - alias(libs.plugins.acon.android.library.haze) - alias(libs.plugins.acon.android.library.naver.map) -} - -android { - namespace = "com.acon.acon.feature.areaverification" -} - -dependencies { - implementation(projects.core.map) - - implementation(libs.play.services.location) -} diff --git a/feature/areaverification/src/main/AndroidManifest.xml b/feature/areaverification/src/main/AndroidManifest.xml deleted file mode 100644 index 220f6c7b6..000000000 --- a/feature/areaverification/src/main/AndroidManifest.xml +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/feature/onboarding/build.gradle.kts b/feature/onboarding/build.gradle.kts index 91906ab93..074b63cfe 100644 --- a/feature/onboarding/build.gradle.kts +++ b/feature/onboarding/build.gradle.kts @@ -6,6 +6,7 @@ plugins { alias(libs.plugins.acon.android.library.orbit) alias(libs.plugins.acon.android.library.haze) alias(libs.plugins.acon.android.library.coil) + alias(libs.plugins.acon.android.library.naver.map) } android { @@ -14,5 +15,8 @@ android { dependencies { + implementation(projects.core.map) + + implementation(libs.play.services.location) implementation(libs.lottie.compose) } \ No newline at end of file diff --git a/feature/areaverification/src/main/java/com/acon/acon/feature/areaverification/composable/AreaVerificationScreen.kt b/feature/onboarding/src/main/java/com/acon/feature/onboarding/area/composable/AreaVerificationScreen.kt similarity index 97% rename from feature/areaverification/src/main/java/com/acon/acon/feature/areaverification/composable/AreaVerificationScreen.kt rename to feature/onboarding/src/main/java/com/acon/feature/onboarding/area/composable/AreaVerificationScreen.kt index 0f0f8117a..ede5dc57a 100644 --- a/feature/areaverification/src/main/java/com/acon/acon/feature/areaverification/composable/AreaVerificationScreen.kt +++ b/feature/onboarding/src/main/java/com/acon/feature/onboarding/area/composable/AreaVerificationScreen.kt @@ -1,4 +1,4 @@ -package com.acon.acon.feature.areaverification.composable +package com.acon.feature.onboarding.area.composable import androidx.activity.compose.BackHandler import androidx.compose.animation.core.LinearEasing @@ -36,6 +36,7 @@ import com.acon.acon.core.designsystem.component.button.v2.AconFilledButton import com.acon.acon.core.designsystem.noRippleClickable import com.acon.acon.core.designsystem.theme.AconTheme import com.acon.acon.core.ui.compose.getScreenHeight +import com.acon.feature.onboarding.area.viewmodel.AreaVerificationUiState @Composable internal fun AreaVerificationScreen( diff --git a/feature/areaverification/src/main/java/com/acon/acon/feature/areaverification/composable/AreaVerificationScreenContainer.kt b/feature/onboarding/src/main/java/com/acon/feature/onboarding/area/composable/AreaVerificationScreenContainer.kt similarity index 92% rename from feature/areaverification/src/main/java/com/acon/acon/feature/areaverification/composable/AreaVerificationScreenContainer.kt rename to feature/onboarding/src/main/java/com/acon/feature/onboarding/area/composable/AreaVerificationScreenContainer.kt index 1582d12eb..9f7c3f871 100644 --- a/feature/areaverification/src/main/java/com/acon/acon/feature/areaverification/composable/AreaVerificationScreenContainer.kt +++ b/feature/onboarding/src/main/java/com/acon/feature/onboarding/area/composable/AreaVerificationScreenContainer.kt @@ -1,4 +1,4 @@ -package com.acon.acon.feature.areaverification.composable +package com.acon.feature.onboarding.area.composable import android.content.Intent import android.net.Uri @@ -11,6 +11,8 @@ import androidx.hilt.navigation.compose.hiltViewModel import com.acon.acon.core.ui.permission.checkLocationPermission import com.acon.acon.core.ui.android.showToast import com.acon.acon.core.ui.compose.LocalRequestLocationPermission +import com.acon.feature.onboarding.area.viewmodel.AreaVerificationSideEffect +import com.acon.feature.onboarding.area.viewmodel.AreaVerificationViewModel import org.orbitmvi.orbit.compose.collectAsState import org.orbitmvi.orbit.compose.collectSideEffect diff --git a/feature/areaverification/src/main/java/com/acon/acon/feature/areaverification/composable/LocationMapScreen.kt b/feature/onboarding/src/main/java/com/acon/feature/onboarding/area/composable/LocationMapScreen.kt similarity index 99% rename from feature/areaverification/src/main/java/com/acon/acon/feature/areaverification/composable/LocationMapScreen.kt rename to feature/onboarding/src/main/java/com/acon/feature/onboarding/area/composable/LocationMapScreen.kt index e93f35bcf..43159520b 100644 --- a/feature/areaverification/src/main/java/com/acon/acon/feature/areaverification/composable/LocationMapScreen.kt +++ b/feature/onboarding/src/main/java/com/acon/feature/onboarding/area/composable/LocationMapScreen.kt @@ -1,4 +1,4 @@ -package com.acon.acon.feature.areaverification.composable +package com.acon.feature.onboarding.area.composable import android.location.Location import androidx.compose.foundation.layout.Box diff --git a/feature/areaverification/src/main/java/com/acon/acon/feature/areaverification/composable/PreferenceMapScreen.kt b/feature/onboarding/src/main/java/com/acon/feature/onboarding/area/composable/PreferenceMapScreen.kt similarity index 96% rename from feature/areaverification/src/main/java/com/acon/acon/feature/areaverification/composable/PreferenceMapScreen.kt rename to feature/onboarding/src/main/java/com/acon/feature/onboarding/area/composable/PreferenceMapScreen.kt index 395713033..45ab97d56 100644 --- a/feature/areaverification/src/main/java/com/acon/acon/feature/areaverification/composable/PreferenceMapScreen.kt +++ b/feature/onboarding/src/main/java/com/acon/feature/onboarding/area/composable/PreferenceMapScreen.kt @@ -1,4 +1,4 @@ -package com.acon.acon.feature.areaverification.composable +package com.acon.feature.onboarding.area.composable import android.app.Activity import android.content.Intent @@ -31,6 +31,8 @@ import com.acon.acon.core.designsystem.R import com.acon.acon.core.designsystem.component.dialog.v2.AconDefaultDialog import com.acon.acon.core.designsystem.component.topbar.AconTopBar import com.acon.acon.core.designsystem.theme.AconTheme +import com.acon.feature.onboarding.area.viewmodel.AreaVerificationSideEffect +import com.acon.feature.onboarding.area.viewmodel.AreaVerificationViewModel import org.orbitmvi.orbit.compose.collectSideEffect @Composable diff --git a/feature/areaverification/src/main/java/com/acon/acon/feature/areaverification/composable/AreaVerificationViewModel.kt b/feature/onboarding/src/main/java/com/acon/feature/onboarding/area/viewmodel/AreaVerificationViewModel.kt similarity index 99% rename from feature/areaverification/src/main/java/com/acon/acon/feature/areaverification/composable/AreaVerificationViewModel.kt rename to feature/onboarding/src/main/java/com/acon/feature/onboarding/area/viewmodel/AreaVerificationViewModel.kt index 054933c52..c714a7662 100644 --- a/feature/areaverification/src/main/java/com/acon/acon/feature/areaverification/composable/AreaVerificationViewModel.kt +++ b/feature/onboarding/src/main/java/com/acon/feature/onboarding/area/viewmodel/AreaVerificationViewModel.kt @@ -1,4 +1,4 @@ -package com.acon.acon.feature.areaverification.composable +package com.acon.feature.onboarding.area.viewmodel import android.Manifest import android.app.Application diff --git a/settings.gradle.kts b/settings.gradle.kts index ac9478231..3f8e9319e 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -34,7 +34,6 @@ include( ) include( - ":feature:areaverification", ":feature:spot", ":feature:signin", ":feature:upload", From 9fc7d261dee4b97e24e0847db59c2f212dc61ed7 Mon Sep 17 00:00:00 2001 From: Thirfir Date: Sat, 30 Aug 2025 00:16:53 +0900 Subject: [PATCH 11/91] =?UTF-8?q?refactor:=20=EC=A7=80=EC=97=AD=EC=9D=B8?= =?UTF-8?q?=EC=A6=9D=20feature=20=EB=A6=AC=ED=8C=A9=ED=86=A0=EB=A7=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 네이밍 수정, 지역인증 진입점에 따른 건너뛰기 on/off 및 뒤로가기 활성화 로직 추가 --- .../com/acon/acon/ExampleInstrumentedTest.kt | 6 +- .../main/java/com/acon/acon/MainActivity.kt | 16 +- .../main/java/com/acon/acon/MainViewModel.kt | 1 - .../nested/AreaVerificationNavigation.kt | 81 ++++---- .../navigation/nested/ProfileNavigation.kt | 7 +- .../navigation/nested/SettingsNavigation.kt | 21 +- .../navigation/nested/SignInNavigation.kt | 7 +- .../acon/navigation/nested/SpotNavigation.kt | 13 +- .../data/api/remote/auth/OnboardingAuthApi.kt | 7 + .../data/api/remote/auth/ProfileAuthApi.kt | 6 - .../remote/OnboardingRemoteDataSource.kt | 13 ++ .../remote/ProfileRemoteDataSource.kt | 13 -- ...icationRequest.kt => VerifyAreaRequest.kt} | 2 +- .../repository/OnboardingRepositoryImpl.kt | 12 ++ .../data/repository/ProfileRepositoryImpl.kt | 11 -- .../src/main/res/values/strings.xml | 2 +- core/map/build.gradle.kts | 5 +- .../com/acon/{acon => }/core/map/MapUtils.kt | 24 +-- .../acon/core/map/composable/NaverMapView.kt | 63 ++++++ .../core/model/model/OnboardingPreferences.kt | 3 + .../acon/acon/core/model/model/spot/Spot.kt | 6 +- .../acon/core/model/model/spot/SpotDetail.kt | 2 +- .../acon/core/model/model/spot/SpotList.kt | 4 +- .../core/model/model/spot/SpotListRequest.kt | 8 +- .../model/spot/SpotNavigationParameter.kt | 4 +- .../core/model/type/LocalVerificationType.kt | 10 - .../navigation/route/AreaVerificationRoute.kt | 12 +- .../core/navigation/route/SettingsRoute.kt | 2 +- .../core/navigation/utils/NavigationUtils.kt | 26 ++- .../error/onboarding/VerifyAreaError.kt | 21 ++ .../domain/repository/OnboardingRepository.kt | 5 + .../domain/repository/ProfileRepository.kt | 5 - feature/onboarding/build.gradle.kts | 2 - .../area/composable/AreaVerificationScreen.kt | 71 ++++--- .../AreaVerificationScreenContainer.kt | 32 +-- .../area/composable/LocationMapScreen.kt | 170 ---------------- .../area/composable/PreferenceMapScreen.kt | 183 ------------------ .../area/composable/VerifyInMapScreen.kt | 124 ++++++++++++ .../composable/VerifyInMapScreenContainer.kt | 37 ++++ .../viewmodel/AreaVerificationViewModel.kt | 164 +++------------- .../area/viewmodel/VerifyInMapViewModel.kt | 53 +++++ .../settings/screen/SettingsViewModel.kt | 6 +- .../composable/SettingsScreenContainer.kt | 6 +- ...Model.kt => UserVerifiedAreasViewModel.kt} | 48 ++--- ...onScreen.kt => UserVerifiedAreasScreen.kt} | 19 +- ...kt => UserVerifiedAreasScreenContainer.kt} | 16 +- .../composable/SpotDetailScreenContainer.kt | 2 +- 47 files changed, 573 insertions(+), 778 deletions(-) rename core/data/src/main/kotlin/com/acon/core/data/dto/request/{AreaVerificationRequest.kt => VerifyAreaRequest.kt} (86%) rename core/map/src/main/java/com/acon/{acon => }/core/map/MapUtils.kt (59%) create mode 100644 core/map/src/main/java/com/acon/core/map/composable/NaverMapView.kt delete mode 100644 core/model/src/main/java/com/acon/acon/core/model/type/LocalVerificationType.kt create mode 100644 domain/src/main/java/com/acon/acon/domain/error/onboarding/VerifyAreaError.kt delete mode 100644 feature/onboarding/src/main/java/com/acon/feature/onboarding/area/composable/LocationMapScreen.kt delete mode 100644 feature/onboarding/src/main/java/com/acon/feature/onboarding/area/composable/PreferenceMapScreen.kt create mode 100644 feature/onboarding/src/main/java/com/acon/feature/onboarding/area/composable/VerifyInMapScreen.kt create mode 100644 feature/onboarding/src/main/java/com/acon/feature/onboarding/area/composable/VerifyInMapScreenContainer.kt create mode 100644 feature/onboarding/src/main/java/com/acon/feature/onboarding/area/viewmodel/VerifyInMapViewModel.kt rename feature/settings/src/main/java/com/acon/acon/feature/verification/screen/{LocalVerificationViewModel.kt => UserVerifiedAreasViewModel.kt} (72%) rename feature/settings/src/main/java/com/acon/acon/feature/verification/screen/composable/{LocalVerificationScreen.kt => UserVerifiedAreasScreen.kt} (94%) rename feature/settings/src/main/java/com/acon/acon/feature/verification/screen/composable/{LocalVerificationScreenContainer.kt => UserVerifiedAreasScreenContainer.kt} (77%) diff --git a/app/src/androidTest/java/com/acon/acon/ExampleInstrumentedTest.kt b/app/src/androidTest/java/com/acon/acon/ExampleInstrumentedTest.kt index 4cb637e97..dfa50cba8 100644 --- a/app/src/androidTest/java/com/acon/acon/ExampleInstrumentedTest.kt +++ b/app/src/androidTest/java/com/acon/acon/ExampleInstrumentedTest.kt @@ -1,13 +1,11 @@ package com.acon.acon -import androidx.test.platform.app.InstrumentationRegistry import androidx.test.ext.junit.runners.AndroidJUnit4 - +import androidx.test.platform.app.InstrumentationRegistry +import org.junit.Assert.assertEquals import org.junit.Test import org.junit.runner.RunWith -import org.junit.Assert.* - /** * Instrumented test, which will execute on an Android device. * diff --git a/app/src/main/java/com/acon/acon/MainActivity.kt b/app/src/main/java/com/acon/acon/MainActivity.kt index 451b66a32..1c16ae481 100644 --- a/app/src/main/java/com/acon/acon/MainActivity.kt +++ b/app/src/main/java/com/acon/acon/MainActivity.kt @@ -51,6 +51,7 @@ import com.acon.acon.core.designsystem.theme.AconTheme import com.acon.acon.core.navigation.LocalNavController import com.acon.acon.core.navigation.route.AreaVerificationRoute import com.acon.acon.core.navigation.route.SpotRoute +import com.acon.acon.core.navigation.utils.navigateAndClear import com.acon.acon.core.ui.android.launchPlayStore import com.acon.acon.core.ui.compose.LocalDeepLinkHandler import com.acon.acon.core.ui.compose.LocalLocation @@ -85,14 +86,12 @@ import kotlinx.coroutines.ExperimentalCoroutinesApi import kotlinx.coroutines.channels.awaitClose import kotlinx.coroutines.flow.MutableStateFlow import kotlinx.coroutines.flow.SharingStarted -import kotlinx.coroutines.flow.asStateFlow import kotlinx.coroutines.flow.callbackFlow import kotlinx.coroutines.flow.emitAll import kotlinx.coroutines.flow.filter import kotlinx.coroutines.flow.flatMapLatest import kotlinx.coroutines.flow.flow import kotlinx.coroutines.flow.stateIn -import kotlinx.coroutines.flow.transform import kotlinx.coroutines.launch import kotlinx.coroutines.tasks.await import timber.log.Timber @@ -353,16 +352,9 @@ class MainActivity : ComponentActivity() { } } } else { - navController.navigate( - AreaVerificationRoute.AreaVerification( - verifiedAreaId = null, - route = "onboarding" - ) - ) { - popUpTo(navController.graph.id) { - inclusive = true - } - } + navController.navigateAndClear( + AreaVerificationRoute.AreaVerification + ) } if (appState.propertyKey.isNotBlank()) { AconAmplitude.trackEvent( diff --git a/app/src/main/java/com/acon/acon/MainViewModel.kt b/app/src/main/java/com/acon/acon/MainViewModel.kt index 2048713ed..5d526745a 100644 --- a/app/src/main/java/com/acon/acon/MainViewModel.kt +++ b/app/src/main/java/com/acon/acon/MainViewModel.kt @@ -5,7 +5,6 @@ import androidx.compose.runtime.Immutable import androidx.lifecycle.ViewModel import androidx.lifecycle.viewModelScope import com.acon.acon.domain.repository.UserRepository -import com.acon.acon.core.model.type.UserType import dagger.hilt.android.lifecycle.HiltViewModel import kotlinx.coroutines.flow.MutableStateFlow import kotlinx.coroutines.flow.asStateFlow diff --git a/app/src/main/java/com/acon/acon/navigation/nested/AreaVerificationNavigation.kt b/app/src/main/java/com/acon/acon/navigation/nested/AreaVerificationNavigation.kt index f905750a5..42fec5ce7 100644 --- a/app/src/main/java/com/acon/acon/navigation/nested/AreaVerificationNavigation.kt +++ b/app/src/main/java/com/acon/acon/navigation/nested/AreaVerificationNavigation.kt @@ -1,74 +1,65 @@ package com.acon.acon.navigation.nested -import androidx.compose.foundation.background -import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.foundation.layout.statusBarsPadding import androidx.compose.ui.Modifier -import androidx.compose.ui.platform.LocalContext import androidx.navigation.NavGraphBuilder import androidx.navigation.NavHostController import androidx.navigation.compose.composable import androidx.navigation.compose.navigation -import androidx.navigation.toRoute -import com.acon.acon.core.designsystem.theme.AconTheme +import com.acon.acon.core.designsystem.effect.screenDefault +import com.acon.acon.core.navigation.LocalNavController import com.acon.acon.core.navigation.route.AreaVerificationRoute import com.acon.acon.core.navigation.route.OnboardingRoute import com.acon.acon.core.navigation.route.SettingsRoute import com.acon.acon.core.navigation.route.SpotRoute +import com.acon.acon.core.navigation.utils.contains +import com.acon.acon.core.navigation.utils.hasPreviousBackStackEntry import com.acon.acon.core.navigation.utils.navigateAndClear -import com.acon.acon.core.ui.android.showToast import com.acon.feature.onboarding.area.composable.AreaVerificationScreenContainer -import com.acon.feature.onboarding.area.composable.PreferenceMapScreen +import com.acon.feature.onboarding.area.composable.VerifyInMapScreenContainer fun NavGraphBuilder.areaVerificationNavigation( navController: NavHostController ) { navigation( - startDestination = AreaVerificationRoute.AreaVerification() + startDestination = AreaVerificationRoute.AreaVerification ) { - composable { backStackEntry -> - val routeData = backStackEntry.toRoute() - + composable { AreaVerificationScreenContainer( - modifier = Modifier.fillMaxSize().background(AconTheme.color.Gray900).statusBarsPadding(), - route = routeData.route ?: "onboarding", - onNextScreen = { latitude, longitude -> - navController.navigate( - AreaVerificationRoute.CheckInMap( - latitude = latitude, - longitude = longitude, - verifiedAreaId = routeData.verifiedAreaId ?: -1, - route = routeData.route - ) - ) - }, onNavigateToChooseDislikes = { navController.navigateAndClear(OnboardingRoute.Graph) }, - onNavigateToSpotList = { navController.navigateAndClear(SpotRoute.Graph) } + modifier = Modifier + .screenDefault() + .statusBarsPadding(), + onNavigateToVerifyInMap = { + navController.navigate(AreaVerificationRoute.VerifyInMap) + }, + backGestureEnabled = LocalNavController.current.hasPreviousBackStackEntry(), + onNavigateToChooseDislikes = { navController.navigateAndClear(OnboardingRoute.ChooseDislikes) }, ) } - composable { backStackEntry -> - val route = backStackEntry.toRoute() - val context = LocalContext.current - - PreferenceMapScreen( - latitude = route.latitude, - longitude = route.longitude, - previousVerifiedAreaId = route.verifiedAreaId, - onNavigateToNext = { didOnboarding -> - if (route.route == "settings") { - context.showToast("인증 되었습니다") - navController.popBackStack(route = SettingsRoute.LocalVerification, inclusive = false) - } else if (didOnboarding) { - navController.navigateAndClear(SpotRoute.Graph) - } else { - navController.navigate(OnboardingRoute.Graph) { - popUpTo(0) { inclusive = true } - } + composable { + VerifyInMapScreenContainer( + onNavigateToNextScreen = { + if (navController.contains()) { + navController.popBackStack( + route = SettingsRoute.UserVerifiedAreas, + inclusive = false + ) + } + else if (navController.contains()) { + navController.popBackStack( + route = SpotRoute.SpotList, + inclusive = false + ) + } + else { + navController.navigateAndClear(OnboardingRoute.ChooseDislikes) } }, - onBackClick = { - navController.popBackStack() - } + onNavigateBack = { navController.popBackStack() }, + modifier = Modifier + .screenDefault() + .statusBarsPadding() ) } } diff --git a/app/src/main/java/com/acon/acon/navigation/nested/ProfileNavigation.kt b/app/src/main/java/com/acon/acon/navigation/nested/ProfileNavigation.kt index 0c7169316..e86cce258 100644 --- a/app/src/main/java/com/acon/acon/navigation/nested/ProfileNavigation.kt +++ b/app/src/main/java/com/acon/acon/navigation/nested/ProfileNavigation.kt @@ -14,14 +14,13 @@ import androidx.navigation.NavHostController import androidx.navigation.compose.composable import androidx.navigation.compose.navigation import com.acon.acon.core.designsystem.theme.AconTheme -import com.acon.acon.core.navigation.route.SettingsRoute import com.acon.acon.core.navigation.route.ProfileRoute +import com.acon.acon.core.navigation.route.SettingsRoute +import com.acon.acon.core.navigation.route.SpotRoute +import com.acon.acon.core.navigation.route.UploadRoute import com.acon.acon.feature.profile.composable.screen.bookmark.composable.BookmarkScreenContainer import com.acon.acon.feature.profile.composable.screen.profile.composable.ProfileScreenContainer import com.acon.acon.feature.profile.composable.screen.profileMod.composable.ProfileModScreenContainer -import com.acon.acon.core.model.model.spot.SpotNavigationParameter -import com.acon.acon.core.navigation.route.SpotRoute -import com.acon.acon.core.navigation.route.UploadRoute internal fun NavGraphBuilder.profileNavigation( navController: NavHostController, diff --git a/app/src/main/java/com/acon/acon/navigation/nested/SettingsNavigation.kt b/app/src/main/java/com/acon/acon/navigation/nested/SettingsNavigation.kt index 4614d11f8..f7467bc71 100644 --- a/app/src/main/java/com/acon/acon/navigation/nested/SettingsNavigation.kt +++ b/app/src/main/java/com/acon/acon/navigation/nested/SettingsNavigation.kt @@ -9,13 +9,13 @@ import androidx.navigation.compose.composable import androidx.navigation.compose.navigation import com.acon.acon.BuildConfig import com.acon.acon.core.designsystem.theme.AconTheme -import com.acon.acon.core.navigation.route.SettingsRoute import com.acon.acon.core.navigation.route.AreaVerificationRoute import com.acon.acon.core.navigation.route.OnboardingRoute import com.acon.acon.core.navigation.route.ProfileRoute -import com.acon.acon.feature.settings.screen.composable.SettingsScreenContainer +import com.acon.acon.core.navigation.route.SettingsRoute import com.acon.acon.core.navigation.route.SignInRoute -import com.acon.acon.feature.verification.screen.composable.LocalVerificationScreenContainer +import com.acon.acon.feature.settings.screen.composable.SettingsScreenContainer +import com.acon.acon.feature.verification.screen.composable.UserVerifiedAreasScreenContainer import com.acon.acon.feature.withdraw.screen.composable.DeleteAccountScreenContainer internal fun NavGraphBuilder.settingsNavigation( @@ -40,8 +40,8 @@ internal fun NavGraphBuilder.settingsNavigation( onNavigateToOnboardingScreen = { navController.navigate(OnboardingRoute.Graph) }, - onNavigateLocalVerificationScreen = { - navController.navigate(SettingsRoute.LocalVerification) + onNavigateUserVerifiedAreasScreen = { + navController.navigate(SettingsRoute.UserVerifiedAreas) }, onNavigateToSignInScreen = { navController.navigate(SignInRoute.SignIn) { @@ -56,16 +56,13 @@ internal fun NavGraphBuilder.settingsNavigation( ) } - composable { - LocalVerificationScreenContainer( + composable { + UserVerifiedAreasScreenContainer( modifier = Modifier.fillMaxSize().background(AconTheme.color.Gray900), - navigateToSettingsScreen = { navController.popBackStack() }, + navigateToSettingsScreen = navController::popBackStack, navigateToAreaVerification = { navController.navigate( - AreaVerificationRoute.AreaVerification( - verifiedAreaId = it, - route = "settings" - ) + AreaVerificationRoute.AreaVerification ) } ) diff --git a/app/src/main/java/com/acon/acon/navigation/nested/SignInNavigation.kt b/app/src/main/java/com/acon/acon/navigation/nested/SignInNavigation.kt index ec952c445..8ab83b5d0 100644 --- a/app/src/main/java/com/acon/acon/navigation/nested/SignInNavigation.kt +++ b/app/src/main/java/com/acon/acon/navigation/nested/SignInNavigation.kt @@ -9,9 +9,9 @@ import androidx.navigation.compose.navigation import com.acon.acon.core.navigation.route.AreaVerificationRoute import com.acon.acon.core.navigation.route.OnboardingRoute import com.acon.acon.core.navigation.route.SignInRoute -import com.acon.acon.feature.signin.screen.SignInScreenContainer import com.acon.acon.core.navigation.route.SpotRoute import com.acon.acon.core.navigation.utils.navigateAndClear +import com.acon.acon.feature.signin.screen.SignInScreenContainer internal fun NavGraphBuilder.signInNavigation( navController: NavHostController, @@ -34,10 +34,7 @@ internal fun NavGraphBuilder.signInNavigation( }, navigateToAreaVerification = { navController.navigate( - AreaVerificationRoute.AreaVerification( - verifiedAreaId = null, - route = "onboarding" - ) + AreaVerificationRoute.AreaVerification ) { popUpTo(SignInRoute.Graph) { inclusive = true diff --git a/app/src/main/java/com/acon/acon/navigation/nested/SpotNavigation.kt b/app/src/main/java/com/acon/acon/navigation/nested/SpotNavigation.kt index 1707e8417..497281532 100644 --- a/app/src/main/java/com/acon/acon/navigation/nested/SpotNavigation.kt +++ b/app/src/main/java/com/acon/acon/navigation/nested/SpotNavigation.kt @@ -10,14 +10,14 @@ import androidx.navigation.NavHostController import androidx.navigation.compose.composable import androidx.navigation.navigation import com.acon.acon.core.designsystem.theme.AconTheme +import com.acon.acon.core.model.model.spot.SpotNavigationParameter import com.acon.acon.core.navigation.route.AreaVerificationRoute import com.acon.acon.core.navigation.route.ProfileRoute import com.acon.acon.core.navigation.route.SpotRoute -import com.acon.acon.feature.spot.screen.spotdetail.composable.SpotDetailScreenContainer -import com.acon.acon.feature.spot.screen.spotlist.composable.SpotListScreenContainer -import com.acon.acon.core.model.model.spot.SpotNavigationParameter import com.acon.acon.core.navigation.route.UploadRoute import com.acon.acon.core.navigation.type.spotNavigationParameterNavType +import com.acon.acon.feature.spot.screen.spotdetail.composable.SpotDetailScreenContainer +import com.acon.acon.feature.spot.screen.spotlist.composable.SpotListScreenContainer internal fun NavGraphBuilder.spotNavigation( navController: NavHostController @@ -55,12 +55,7 @@ internal fun NavGraphBuilder.spotNavigation( navController.navigate(SpotRoute.SpotDetail(spotNav)) }, onNavigateToAreaVerificationScreen = { lat, lon -> - navController.navigate(AreaVerificationRoute.CheckInMap( - latitude = lat, - longitude = lon, - verifiedAreaId = -1, - route = "spotlist" - )) + navController.navigate(AreaVerificationRoute.VerifyInMap) }, modifier = Modifier .fillMaxSize() diff --git a/core/data/src/main/kotlin/com/acon/core/data/api/remote/auth/OnboardingAuthApi.kt b/core/data/src/main/kotlin/com/acon/core/data/api/remote/auth/OnboardingAuthApi.kt index 60823684e..3db9425b9 100644 --- a/core/data/src/main/kotlin/com/acon/core/data/api/remote/auth/OnboardingAuthApi.kt +++ b/core/data/src/main/kotlin/com/acon/core/data/api/remote/auth/OnboardingAuthApi.kt @@ -1,7 +1,9 @@ package com.acon.core.data.api.remote.auth +import com.acon.core.data.dto.request.VerifyAreaRequest import com.acon.core.data.dto.request.TastePreferenceRequest import retrofit2.http.Body +import retrofit2.http.POST import retrofit2.http.PUT interface OnboardingAuthApi { @@ -10,4 +12,9 @@ interface OnboardingAuthApi { suspend fun submitTastePreferenceResult( @Body tastePreferenceRequest: TastePreferenceRequest ) + + @POST("/api/v1/verified-areas") + suspend fun verifyArea( + @Body request: VerifyAreaRequest + ) } \ No newline at end of file diff --git a/core/data/src/main/kotlin/com/acon/core/data/api/remote/auth/ProfileAuthApi.kt b/core/data/src/main/kotlin/com/acon/core/data/api/remote/auth/ProfileAuthApi.kt index 7b4c6a7c9..f4d14a6dd 100644 --- a/core/data/src/main/kotlin/com/acon/core/data/api/remote/auth/ProfileAuthApi.kt +++ b/core/data/src/main/kotlin/com/acon/core/data/api/remote/auth/ProfileAuthApi.kt @@ -1,6 +1,5 @@ package com.acon.core.data.api.remote.auth -import com.acon.core.data.dto.request.AreaVerificationRequest import com.acon.core.data.dto.request.ReplaceVerifiedAreaRequest import com.acon.core.data.dto.request.SaveSpotRequest import com.acon.core.data.dto.request.UpdateProfileRequest @@ -42,11 +41,6 @@ interface ProfileAuthApi { @Body saveSpotRequest: SaveSpotRequest ) - @POST("/api/v1/verified-areas") - suspend fun verifyArea( - @Body request: AreaVerificationRequest - ) - @GET("/api/v1/verified-areas") suspend fun fetchVerifiedAreaList() : VerifiedAreaListResponse diff --git a/core/data/src/main/kotlin/com/acon/core/data/datasource/remote/OnboardingRemoteDataSource.kt b/core/data/src/main/kotlin/com/acon/core/data/datasource/remote/OnboardingRemoteDataSource.kt index cd7c9388b..22537a7e0 100644 --- a/core/data/src/main/kotlin/com/acon/core/data/datasource/remote/OnboardingRemoteDataSource.kt +++ b/core/data/src/main/kotlin/com/acon/core/data/datasource/remote/OnboardingRemoteDataSource.kt @@ -2,6 +2,7 @@ package com.acon.core.data.datasource.remote import com.acon.core.data.dto.request.TastePreferenceRequest import com.acon.core.data.api.remote.auth.OnboardingAuthApi +import com.acon.core.data.dto.request.VerifyAreaRequest import javax.inject.Inject class OnboardingRemoteDataSource @Inject constructor( @@ -11,4 +12,16 @@ class OnboardingRemoteDataSource @Inject constructor( suspend fun submitTastePreferenceResult(request: TastePreferenceRequest) { return onboardingAuthApi.submitTastePreferenceResult(request) } + + suspend fun verifyArea( + latitude: Double, + longitude: Double + ) { + return onboardingAuthApi.verifyArea( + request = VerifyAreaRequest( + latitude = latitude, + longitude = longitude + ) + ) + } } \ No newline at end of file diff --git a/core/data/src/main/kotlin/com/acon/core/data/datasource/remote/ProfileRemoteDataSource.kt b/core/data/src/main/kotlin/com/acon/core/data/datasource/remote/ProfileRemoteDataSource.kt index fcfc25ea2..c0a0d047d 100644 --- a/core/data/src/main/kotlin/com/acon/core/data/datasource/remote/ProfileRemoteDataSource.kt +++ b/core/data/src/main/kotlin/com/acon/core/data/datasource/remote/ProfileRemoteDataSource.kt @@ -4,7 +4,6 @@ import com.acon.core.data.dto.request.UpdateProfileRequest import com.acon.core.data.dto.response.profile.PreSignedUrlResponse import com.acon.core.data.dto.response.profile.ProfileResponse import com.acon.core.data.api.remote.auth.ProfileAuthApi -import com.acon.core.data.dto.request.AreaVerificationRequest import com.acon.core.data.dto.request.ReplaceVerifiedAreaRequest import com.acon.core.data.dto.request.SaveSpotRequest import com.acon.core.data.dto.response.area.VerifiedAreaListResponse @@ -35,18 +34,6 @@ class ProfileRemoteDataSource @Inject constructor( suspend fun fetchSavedSpots() = profileAuthApi.fetchSavedSpots() suspend fun saveSpot(saveSpotRequest: SaveSpotRequest) = profileAuthApi.saveSpot(saveSpotRequest) - suspend fun verifyArea( - latitude: Double, - longitude: Double - ) { - return profileAuthApi.verifyArea( - request = AreaVerificationRequest( - latitude = latitude, - longitude = longitude - ) - ) - } - suspend fun fetchVerifiedAreaList() : VerifiedAreaListResponse { return profileAuthApi.fetchVerifiedAreaList() } diff --git a/core/data/src/main/kotlin/com/acon/core/data/dto/request/AreaVerificationRequest.kt b/core/data/src/main/kotlin/com/acon/core/data/dto/request/VerifyAreaRequest.kt similarity index 86% rename from core/data/src/main/kotlin/com/acon/core/data/dto/request/AreaVerificationRequest.kt rename to core/data/src/main/kotlin/com/acon/core/data/dto/request/VerifyAreaRequest.kt index ffabb04cb..839674850 100644 --- a/core/data/src/main/kotlin/com/acon/core/data/dto/request/AreaVerificationRequest.kt +++ b/core/data/src/main/kotlin/com/acon/core/data/dto/request/VerifyAreaRequest.kt @@ -4,7 +4,7 @@ import kotlinx.serialization.SerialName import kotlinx.serialization.Serializable @Serializable -data class AreaVerificationRequest( +data class VerifyAreaRequest( @SerialName("latitude") val latitude: Double, @SerialName("longitude") val longitude: Double ) diff --git a/core/data/src/main/kotlin/com/acon/core/data/repository/OnboardingRepositoryImpl.kt b/core/data/src/main/kotlin/com/acon/core/data/repository/OnboardingRepositoryImpl.kt index 5a5678b4b..f0c2fd68a 100644 --- a/core/data/src/main/kotlin/com/acon/core/data/repository/OnboardingRepositoryImpl.kt +++ b/core/data/src/main/kotlin/com/acon/core/data/repository/OnboardingRepositoryImpl.kt @@ -3,6 +3,7 @@ package com.acon.core.data.repository import com.acon.acon.core.model.model.OnboardingPreferences import com.acon.acon.core.model.type.FoodType import com.acon.acon.domain.error.onboarding.PostTastePreferenceResultError +import com.acon.acon.domain.error.onboarding.VerifyAreaError import com.acon.acon.domain.repository.OnboardingRepository import com.acon.core.data.datasource.local.OnboardingLocalDataSource import com.acon.core.data.datasource.remote.OnboardingRemoteDataSource @@ -25,6 +26,17 @@ class OnboardingRepositoryImpl @Inject constructor( } } + override suspend fun verifyArea( + latitude: Double, + longitude: Double + ): Result = runCatchingWith(VerifyAreaError()) { + onboardingRemoteDataSource.verifyArea( + latitude = latitude, + longitude = longitude + ) + onboardingLocalDataSource.updateHasVerifiedArea(true) + } + override suspend fun updateHasTastePreference(hasPreference: Boolean): Result { return runCatchingWith { onboardingLocalDataSource.updateHasPreference(hasPreference) diff --git a/core/data/src/main/kotlin/com/acon/core/data/repository/ProfileRepositoryImpl.kt b/core/data/src/main/kotlin/com/acon/core/data/repository/ProfileRepositoryImpl.kt index 5bcd00581..417cbaa37 100644 --- a/core/data/src/main/kotlin/com/acon/core/data/repository/ProfileRepositoryImpl.kt +++ b/core/data/src/main/kotlin/com/acon/core/data/repository/ProfileRepositoryImpl.kt @@ -100,17 +100,6 @@ class ProfileRepositoryImpl @Inject constructor( } } - override suspend fun verifyArea( - latitude: Double, - longitude: Double - ): Result = runCatchingWith() { - // TODO - 동네인증 API Error 처리 안됨 - profileRemoteDataSource.verifyArea( - latitude = latitude, - longitude = longitude - ) - } - override suspend fun fetchVerifiedAreaList(): Result> { // TODO - 인증 지역 조회 API Error 처리 안됨 return runCatchingWith() { diff --git a/core/designsystem/src/main/res/values/strings.xml b/core/designsystem/src/main/res/values/strings.xml index 8afcb9c87..5864ab3df 100644 --- a/core/designsystem/src/main/res/values/strings.xml +++ b/core/designsystem/src/main/res/values/strings.xml @@ -121,7 +121,7 @@ settings 지역인증 믿을 수 있는 리뷰를 위해\n지역인증이 필요해요 - 더 정확한 로컬맛집을 추천해드릴 수 있어요 + 내 지역에 남긴 리뷰는 추천 장소에 반영돼요 1초만에 인증하기 인증 지역은 프로필에서 수정 가능합니다. \'Acon\'에 대해 라이브러리\n읽기\/쓰기 권한이 없습니다. diff --git a/core/map/build.gradle.kts b/core/map/build.gradle.kts index a2e303d29..f5f47bc0f 100644 --- a/core/map/build.gradle.kts +++ b/core/map/build.gradle.kts @@ -11,7 +11,7 @@ val localProperties = Properties().apply { } android { - namespace = "com.acon.acon.core.map" + namespace = "com.acon.core.map" defaultConfig { buildConfigField("String", "NAVER_NCP_KEY_ID", "\"${localProperties["naver_ncp_key_id"]}\"") @@ -20,6 +20,7 @@ android { dependencies { - implementation(projects.core.ui) + implementation(projects.core.designsystem) + implementation(libs.play.services.location) } \ No newline at end of file diff --git a/core/map/src/main/java/com/acon/acon/core/map/MapUtils.kt b/core/map/src/main/java/com/acon/core/map/MapUtils.kt similarity index 59% rename from core/map/src/main/java/com/acon/acon/core/map/MapUtils.kt rename to core/map/src/main/java/com/acon/core/map/MapUtils.kt index 79ed47a82..00c959afc 100644 --- a/core/map/src/main/java/com/acon/acon/core/map/MapUtils.kt +++ b/core/map/src/main/java/com/acon/core/map/MapUtils.kt @@ -1,34 +1,12 @@ -package com.acon.acon.core.map +package com.acon.core.map import android.Manifest -import android.annotation.SuppressLint import android.content.Context import android.content.pm.PackageManager import android.location.Location -import androidx.compose.runtime.Composable -import androidx.compose.runtime.remember -import androidx.compose.ui.platform.LocalContext import androidx.core.app.ActivityCompat -import com.acon.acon.core.ui.permission.CheckAndRequestLocationPermission import com.google.android.gms.location.LocationServices -@Composable -@SuppressLint("MissingPermission") -fun ProceedWithLocation(onReady: (Location) -> Unit) { - val context = LocalContext.current - val locationProviderClient = remember { - LocationServices.getFusedLocationProviderClient(context) - } - - CheckAndRequestLocationPermission { - locationProviderClient.lastLocation.addOnSuccessListener { location -> - location?.let { - onReady(it) - } - } - } -} - fun Context.onLocationReady(onReady: (Location) -> Unit) { val locationProviderClient = LocationServices.getFusedLocationProviderClient(this) diff --git a/core/map/src/main/java/com/acon/core/map/composable/NaverMapView.kt b/core/map/src/main/java/com/acon/core/map/composable/NaverMapView.kt new file mode 100644 index 000000000..54dfd745f --- /dev/null +++ b/core/map/src/main/java/com/acon/core/map/composable/NaverMapView.kt @@ -0,0 +1,63 @@ +package com.acon.core.map.composable + +import androidx.compose.runtime.Composable +import androidx.compose.ui.Modifier +import androidx.compose.ui.platform.LocalContext +import androidx.compose.ui.viewinterop.AndroidView +import com.acon.acon.core.designsystem.R +import com.acon.core.map.BuildConfig +import com.naver.maps.geometry.LatLng +import com.naver.maps.map.CameraUpdate +import com.naver.maps.map.MapView +import com.naver.maps.map.NaverMap +import com.naver.maps.map.overlay.Marker +import com.naver.maps.map.overlay.OverlayImage + +private const val MARKER_WIDTH = 240 +private const val MARKER_HEIGHT = 240 + +@Composable +fun NaverMapView( + modifier: Modifier = Modifier, + latitude: Double, + longitude: Double, +) { + val context = LocalContext.current + val density = context.resources.displayMetrics.density + + AndroidView( + modifier = modifier, + factory = { context -> + MapView(context).apply { + getMapAsync { map -> + map.customStyleId = BuildConfig.NAVER_NCP_KEY_ID + map.uiSettings.apply { + isScrollGesturesEnabled = false + isZoomGesturesEnabled = false + isTiltGesturesEnabled = false + isRotateGesturesEnabled = false + isZoomControlEnabled = false + isCompassEnabled = false + isScaleBarEnabled = false + setLogoMargin((20 * density).toInt(), 0, 0, (100 * density).toInt()) + } + + val cameraUpdate = + CameraUpdate.scrollTo(LatLng(latitude, longitude)) + map.moveCamera(cameraUpdate) + createCustomMarker(map, latitude, longitude) + } + } + } + ) +} + +private fun createCustomMarker(map: NaverMap, latitude: Double, longitude: Double) { + Marker().apply { + position = LatLng(latitude, longitude) + width = MARKER_WIDTH + height = MARKER_HEIGHT + icon = OverlayImage.fromResource(R.drawable.ic_mark) + this.map = map + } +} diff --git a/core/model/src/main/java/com/acon/acon/core/model/model/OnboardingPreferences.kt b/core/model/src/main/java/com/acon/acon/core/model/model/OnboardingPreferences.kt index 2de1cfaa2..3dc15eb65 100644 --- a/core/model/src/main/java/com/acon/acon/core/model/model/OnboardingPreferences.kt +++ b/core/model/src/main/java/com/acon/acon/core/model/model/OnboardingPreferences.kt @@ -1,5 +1,8 @@ package com.acon.acon.core.model.model +import kotlinx.serialization.Serializable + +@Serializable data class OnboardingPreferences( val shouldShowIntroduce: Boolean, val hasTastePreference: Boolean, diff --git a/core/model/src/main/java/com/acon/acon/core/model/model/spot/Spot.kt b/core/model/src/main/java/com/acon/acon/core/model/model/spot/Spot.kt index 901a3a155..a3b1fceed 100644 --- a/core/model/src/main/java/com/acon/acon/core/model/model/spot/Spot.kt +++ b/core/model/src/main/java/com/acon/acon/core/model/model/spot/Spot.kt @@ -12,9 +12,9 @@ data class Spot( val name: String, val acorn: Int, val isOpen: Boolean, - @Serializable(with = com.acon.acon.core.model.serializer.LocalTimeSerializer::class) val closingTime: LocalTime, - @Serializable(with = com.acon.acon.core.model.serializer.LocalTimeSerializer::class) val nextOpening: LocalTime, - val tags: List, + @Serializable(with = LocalTimeSerializer::class) val closingTime: LocalTime, + @Serializable(with = LocalTimeSerializer::class) val nextOpening: LocalTime, + val tags: List, val eta: Int, val latitude: Double, val longitude: Double, diff --git a/core/model/src/main/java/com/acon/acon/core/model/model/spot/SpotDetail.kt b/core/model/src/main/java/com/acon/acon/core/model/model/spot/SpotDetail.kt index ac2264d05..c9c3e3a28 100644 --- a/core/model/src/main/java/com/acon/acon/core/model/model/spot/SpotDetail.kt +++ b/core/model/src/main/java/com/acon/acon/core/model/model/spot/SpotDetail.kt @@ -11,7 +11,7 @@ data class SpotDetail( val nextOpening: String, val hasMenuboardImage: Boolean, val isSaved: Boolean, - val signatureMenuList: List, + val signatureMenuList: List, val latitude: Double, val longitude: Double ) diff --git a/core/model/src/main/java/com/acon/acon/core/model/model/spot/SpotList.kt b/core/model/src/main/java/com/acon/acon/core/model/model/spot/SpotList.kt index 2fd158e59..7ab8cc505 100644 --- a/core/model/src/main/java/com/acon/acon/core/model/model/spot/SpotList.kt +++ b/core/model/src/main/java/com/acon/acon/core/model/model/spot/SpotList.kt @@ -3,6 +3,6 @@ package com.acon.acon.core.model.model.spot import com.acon.acon.core.model.type.TransportMode data class SpotList( - val transportMode: com.acon.acon.core.model.type.TransportMode, - val spots: List, + val transportMode: TransportMode, + val spots: List, ) \ No newline at end of file diff --git a/core/model/src/main/java/com/acon/acon/core/model/model/spot/SpotListRequest.kt b/core/model/src/main/java/com/acon/acon/core/model/model/spot/SpotListRequest.kt index 30e0ffab7..55ea073fc 100644 --- a/core/model/src/main/java/com/acon/acon/core/model/model/spot/SpotListRequest.kt +++ b/core/model/src/main/java/com/acon/acon/core/model/model/spot/SpotListRequest.kt @@ -5,11 +5,11 @@ import com.acon.acon.core.model.type.FilterType import com.acon.acon.core.model.type.SpotType data class Condition( - val spotType: com.acon.acon.core.model.type.SpotType, - val filterList: List?, + val spotType: SpotType, + val filterList: List?, ) data class Filter( - val category: com.acon.acon.core.model.type.CategoryType, - val optionList: List + val category: CategoryType, + val optionList: List ) \ No newline at end of file diff --git a/core/model/src/main/java/com/acon/acon/core/model/model/spot/SpotNavigationParameter.kt b/core/model/src/main/java/com/acon/acon/core/model/model/spot/SpotNavigationParameter.kt index d1b6138b9..ed689f163 100644 --- a/core/model/src/main/java/com/acon/acon/core/model/model/spot/SpotNavigationParameter.kt +++ b/core/model/src/main/java/com/acon/acon/core/model/model/spot/SpotNavigationParameter.kt @@ -7,8 +7,8 @@ import kotlinx.serialization.Serializable @Serializable data class SpotNavigationParameter( val spotId: Long, - val tags: List, - val transportMode: com.acon.acon.core.model.type.TransportMode?, + val tags: List, + val transportMode: TransportMode?, val eta: Int?, val isFromDeepLink: Boolean?, val navFromProfile: Boolean? diff --git a/core/model/src/main/java/com/acon/acon/core/model/type/LocalVerificationType.kt b/core/model/src/main/java/com/acon/acon/core/model/type/LocalVerificationType.kt deleted file mode 100644 index 549d561d9..000000000 --- a/core/model/src/main/java/com/acon/acon/core/model/type/LocalVerificationType.kt +++ /dev/null @@ -1,10 +0,0 @@ -package com.acon.acon.core.model.type - -sealed class VerificationState { - data object Loading : com.acon.acon.core.model.type.VerificationState() - data class Loaded(val type: com.acon.acon.core.model.type.LocalVerificationType) : com.acon.acon.core.model.type.VerificationState() -} - -enum class LocalVerificationType { - VERIFIED, NOT_VERIFIED -} diff --git a/core/navigation/src/main/java/com/acon/acon/core/navigation/route/AreaVerificationRoute.kt b/core/navigation/src/main/java/com/acon/acon/core/navigation/route/AreaVerificationRoute.kt index ad645018e..3f1dc8040 100644 --- a/core/navigation/src/main/java/com/acon/acon/core/navigation/route/AreaVerificationRoute.kt +++ b/core/navigation/src/main/java/com/acon/acon/core/navigation/route/AreaVerificationRoute.kt @@ -9,16 +9,8 @@ sealed interface AreaVerificationRoute { data object Graph : AreaVerificationRoute @Serializable - data class AreaVerification( - val verifiedAreaId: Long? = null, - val route: String? = null - ) : AreaVerificationRoute + data object AreaVerification : AreaVerificationRoute @Serializable - data class CheckInMap( - val latitude: Double, - val longitude: Double, - val verifiedAreaId: Long, - val route: String? = null, - ) : AreaVerificationRoute + data object VerifyInMap: AreaVerificationRoute } \ No newline at end of file diff --git a/core/navigation/src/main/java/com/acon/acon/core/navigation/route/SettingsRoute.kt b/core/navigation/src/main/java/com/acon/acon/core/navigation/route/SettingsRoute.kt index 98f2f765c..17899dfdb 100644 --- a/core/navigation/src/main/java/com/acon/acon/core/navigation/route/SettingsRoute.kt +++ b/core/navigation/src/main/java/com/acon/acon/core/navigation/route/SettingsRoute.kt @@ -10,7 +10,7 @@ interface SettingsRoute { data object Settings : SettingsRoute @Serializable - data object LocalVerification : SettingsRoute + data object UserVerifiedAreas : SettingsRoute @Serializable data object DeleteAccount : SettingsRoute diff --git a/core/navigation/src/main/java/com/acon/acon/core/navigation/utils/NavigationUtils.kt b/core/navigation/src/main/java/com/acon/acon/core/navigation/utils/NavigationUtils.kt index c7c949904..fb98b8599 100644 --- a/core/navigation/src/main/java/com/acon/acon/core/navigation/utils/NavigationUtils.kt +++ b/core/navigation/src/main/java/com/acon/acon/core/navigation/utils/NavigationUtils.kt @@ -5,10 +5,32 @@ import androidx.navigation.NavHostController /** * route로 이동하며 이전 화면들을 모두 제거 */ -fun NavHostController.navigateAndClear(route: T) { +fun NavHostController.navigateAndClear(route: T) { navigate(route = route) { popUpTo(graph.id) { inclusive = true } } -} \ No newline at end of file +} + +/** + * Navigation 백스택에 Route가 포함되어 있는지 검사합니다. + * + * ``` + * // Example + * navController.contains() + * ``` + */ +inline fun NavHostController.contains() : Boolean { + return try { + getBackStackEntry() + true + } catch (_: IllegalArgumentException) { + false + } +} + +/** + * 현재 Entry의 이전 화면이 있는지 검사합니다. + */ +fun NavHostController.hasPreviousBackStackEntry() = previousBackStackEntry != null \ No newline at end of file diff --git a/domain/src/main/java/com/acon/acon/domain/error/onboarding/VerifyAreaError.kt b/domain/src/main/java/com/acon/acon/domain/error/onboarding/VerifyAreaError.kt new file mode 100644 index 000000000..69c9aa91b --- /dev/null +++ b/domain/src/main/java/com/acon/acon/domain/error/onboarding/VerifyAreaError.kt @@ -0,0 +1,21 @@ +package com.acon.acon.domain.error.onboarding + +import com.acon.acon.domain.error.RootError + +open class VerifyAreaError : RootError() { + + class OutOfServiceArea : VerifyAreaError() { + override val code: Int = 40012 + } + + class ExceededVerifiedAreaLimit : VerifyAreaError() { + override val code: Int = 40032 + } + + final override fun createErrorInstances(): Array { + return arrayOf( + OutOfServiceArea(), + ExceededVerifiedAreaLimit() + ) + } +} \ No newline at end of file diff --git a/domain/src/main/java/com/acon/acon/domain/repository/OnboardingRepository.kt b/domain/src/main/java/com/acon/acon/domain/repository/OnboardingRepository.kt index 44067408d..dc3383e46 100644 --- a/domain/src/main/java/com/acon/acon/domain/repository/OnboardingRepository.kt +++ b/domain/src/main/java/com/acon/acon/domain/repository/OnboardingRepository.kt @@ -8,6 +8,11 @@ interface OnboardingRepository { dislikeFoods: List ): Result + suspend fun verifyArea( + latitude: Double, + longitude: Double + ): Result + suspend fun updateHasTastePreference(hasPreference: Boolean): Result suspend fun updateShouldShowIntroduce(shouldShow: Boolean): Result suspend fun updateHasVerifiedArea(hasVerifiedArea: Boolean): Result diff --git a/domain/src/main/java/com/acon/acon/domain/repository/ProfileRepository.kt b/domain/src/main/java/com/acon/acon/domain/repository/ProfileRepository.kt index ee251f75f..73f8d4a10 100644 --- a/domain/src/main/java/com/acon/acon/domain/repository/ProfileRepository.kt +++ b/domain/src/main/java/com/acon/acon/domain/repository/ProfileRepository.kt @@ -26,11 +26,6 @@ interface ProfileRepository { suspend fun saveSpot(spotId: Long): Result - suspend fun verifyArea( - latitude: Double, - longitude: Double - ): Result - suspend fun fetchVerifiedAreaList(): Result> suspend fun replaceVerifiedArea( diff --git a/feature/onboarding/build.gradle.kts b/feature/onboarding/build.gradle.kts index 074b63cfe..4f8ab9615 100644 --- a/feature/onboarding/build.gradle.kts +++ b/feature/onboarding/build.gradle.kts @@ -6,7 +6,6 @@ plugins { alias(libs.plugins.acon.android.library.orbit) alias(libs.plugins.acon.android.library.haze) alias(libs.plugins.acon.android.library.coil) - alias(libs.plugins.acon.android.library.naver.map) } android { @@ -17,6 +16,5 @@ dependencies { implementation(projects.core.map) - implementation(libs.play.services.location) implementation(libs.lottie.compose) } \ No newline at end of file diff --git a/feature/onboarding/src/main/java/com/acon/feature/onboarding/area/composable/AreaVerificationScreen.kt b/feature/onboarding/src/main/java/com/acon/feature/onboarding/area/composable/AreaVerificationScreen.kt index ede5dc57a..c65a0a4f3 100644 --- a/feature/onboarding/src/main/java/com/acon/feature/onboarding/area/composable/AreaVerificationScreen.kt +++ b/feature/onboarding/src/main/java/com/acon/feature/onboarding/area/composable/AreaVerificationScreen.kt @@ -1,6 +1,5 @@ package com.acon.feature.onboarding.area.composable -import androidx.activity.compose.BackHandler import androidx.compose.animation.core.LinearEasing import androidx.compose.animation.core.RepeatMode import androidx.compose.animation.core.animateFloat @@ -22,8 +21,8 @@ import androidx.compose.runtime.Composable import androidx.compose.runtime.getValue import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier -import androidx.compose.ui.draw.alpha import androidx.compose.ui.draw.paint +import androidx.compose.ui.graphics.graphicsLayer import androidx.compose.ui.layout.ContentScale import androidx.compose.ui.res.painterResource import androidx.compose.ui.res.stringResource @@ -36,21 +35,19 @@ import com.acon.acon.core.designsystem.component.button.v2.AconFilledButton import com.acon.acon.core.designsystem.noRippleClickable import com.acon.acon.core.designsystem.theme.AconTheme import com.acon.acon.core.ui.compose.getScreenHeight -import com.acon.feature.onboarding.area.viewmodel.AreaVerificationUiState +import com.acon.feature.onboarding.area.viewmodel.AreaVerificationState @Composable internal fun AreaVerificationScreen( - state: AreaVerificationUiState, - route: String, + state: AreaVerificationState, onNextButtonClick: () -> Unit, modifier: Modifier = Modifier, - onSkip: () -> Unit = {} + onSkipClick: () -> Unit = {} ) { val screenHeightDp = getScreenHeight() val offsetY = (screenHeightDp * 0.65f) val infiniteTransition = rememberInfiniteTransition(label = "infinite transition") - val skipAlertTextAlpha by infiniteTransition.animateFloat( initialValue = 1f, targetValue = 0f, @@ -60,8 +57,6 @@ internal fun AreaVerificationScreen( ), label = "alpha" ) - BackHandler { } - Box( modifier = modifier .paint( @@ -69,25 +64,37 @@ internal fun AreaVerificationScreen( contentScale = ContentScale.FillWidth ) ) { - Text( - text = stringResource(R.string.skip_area_verification), - style = AconTheme.typography.Body1, - color = AconTheme.color.White, - fontWeight = FontWeight.W400, - modifier = Modifier.align(Alignment.TopEnd).padding( - end = 16.dp, top = 10.dp - ).noRippleClickable { - onSkip() - }.padding(8.dp) - ) + if (state.shouldShowSkipButton) { + Text( + text = stringResource(R.string.skip_area_verification), + style = AconTheme.typography.Body1, + color = AconTheme.color.White, + fontWeight = FontWeight.W400, + modifier = Modifier + .align(Alignment.TopEnd) + .padding( + end = 16.dp, top = 10.dp + ) + .noRippleClickable { + onSkipClick() + } + .padding(8.dp) + ) + } + Text( text = stringResource(R.string.alert_about_skip_area_verification), style = AconTheme.typography.Body1, color = AconTheme.color.Gray500, fontWeight = FontWeight.W400, - modifier = Modifier.align(Alignment.TopCenter).padding( - top = 96.dp - ).alpha(skipAlertTextAlpha), + modifier = Modifier + .align(Alignment.TopCenter) + .padding( + top = 96.dp + ) + .graphicsLayer { + alpha = skipAlertTextAlpha + }, textAlign = TextAlign.Center ) Column( @@ -114,7 +121,7 @@ internal fun AreaVerificationScreen( Spacer(Modifier.weight(1f)) AconFilledButton( - onClick = { onNextButtonClick() }, + onClick = onNextButtonClick, modifier = Modifier .fillMaxWidth() .padding(top = 16.dp, bottom = 20.dp) @@ -134,12 +141,12 @@ internal fun AreaVerificationScreen( @Preview @Composable private fun AreaVerificationHomeScreenPreview() { - AconTheme { - AreaVerificationScreen( - modifier = Modifier.fillMaxSize().background(AconTheme.color.Gray900).statusBarsPadding(), - state = AreaVerificationUiState(), - route = "", - onNextButtonClick = {} - ) - } + AreaVerificationScreen( + modifier = Modifier + .fillMaxSize() + .background(AconTheme.color.Gray900) + .statusBarsPadding(), + onNextButtonClick = {}, + state = AreaVerificationState(shouldShowSkipButton = true) + ) } \ No newline at end of file diff --git a/feature/onboarding/src/main/java/com/acon/feature/onboarding/area/composable/AreaVerificationScreenContainer.kt b/feature/onboarding/src/main/java/com/acon/feature/onboarding/area/composable/AreaVerificationScreenContainer.kt index 9f7c3f871..dc5175a7e 100644 --- a/feature/onboarding/src/main/java/com/acon/feature/onboarding/area/composable/AreaVerificationScreenContainer.kt +++ b/feature/onboarding/src/main/java/com/acon/feature/onboarding/area/composable/AreaVerificationScreenContainer.kt @@ -3,14 +3,16 @@ package com.acon.feature.onboarding.area.composable import android.content.Intent import android.net.Uri import android.provider.Settings +import androidx.activity.compose.BackHandler import androidx.compose.runtime.Composable import androidx.compose.runtime.getValue import androidx.compose.ui.Modifier import androidx.compose.ui.platform.LocalContext import androidx.hilt.navigation.compose.hiltViewModel -import com.acon.acon.core.ui.permission.checkLocationPermission +import com.acon.acon.core.navigation.LocalNavController import com.acon.acon.core.ui.android.showToast import com.acon.acon.core.ui.compose.LocalRequestLocationPermission +import com.acon.acon.core.ui.permission.checkLocationPermission import com.acon.feature.onboarding.area.viewmodel.AreaVerificationSideEffect import com.acon.feature.onboarding.area.viewmodel.AreaVerificationViewModel import org.orbitmvi.orbit.compose.collectAsState @@ -18,20 +20,20 @@ import org.orbitmvi.orbit.compose.collectSideEffect @Composable fun AreaVerificationScreenContainer( - route: String, - onNextScreen: (Double, Double) -> Unit, + onNavigateToVerifyInMap: () -> Unit, onNavigateToChooseDislikes: () -> Unit, - onNavigateToSpotList: () -> Unit, + backGestureEnabled: Boolean, modifier: Modifier = Modifier, - viewModel: AreaVerificationViewModel = hiltViewModel() + viewModel: AreaVerificationViewModel = hiltViewModel(creationCallback = { factory: AreaVerificationViewModel.Factory -> + factory.create(shouldShowSkipButton = backGestureEnabled.not()) + }) ) { val context = LocalContext.current - val state by viewModel.collectAsState() val onRequestLocationPermission = LocalRequestLocationPermission.current + val state by viewModel.collectAsState() AreaVerificationScreen( state = state, - route = route, onNextButtonClick = { val hasPermission = context.checkLocationPermission() @@ -42,7 +44,7 @@ fun AreaVerificationScreenContainer( } }, modifier = modifier, - onSkip = viewModel::onSkipButtonClick + onSkipClick = viewModel::onSkipClicked ) viewModel.useLiveLocation() @@ -62,16 +64,22 @@ fun AreaVerificationScreenContainer( context.startActivity(intent) } - is AreaVerificationSideEffect.NavigateToNextScreen -> { - onNextScreen(it.latitude, it.longitude) + is AreaVerificationSideEffect.NavigateToVerifyInMap -> { + onNavigateToVerifyInMap() } is AreaVerificationSideEffect.ShowErrorToast -> { context.showToast(it.errorMessage) } - is AreaVerificationSideEffect.NavigateToOnboarding -> onNavigateToChooseDislikes() - is AreaVerificationSideEffect.NavigateToSpotList -> onNavigateToSpotList() + is AreaVerificationSideEffect.NavigateToChooseDislikes -> onNavigateToChooseDislikes() + } + } + + val navController = LocalNavController.current + BackHandler { + if (backGestureEnabled) { + navController.popBackStack() } } } \ No newline at end of file diff --git a/feature/onboarding/src/main/java/com/acon/feature/onboarding/area/composable/LocationMapScreen.kt b/feature/onboarding/src/main/java/com/acon/feature/onboarding/area/composable/LocationMapScreen.kt deleted file mode 100644 index 43159520b..000000000 --- a/feature/onboarding/src/main/java/com/acon/feature/onboarding/area/composable/LocationMapScreen.kt +++ /dev/null @@ -1,170 +0,0 @@ -package com.acon.feature.onboarding.area.composable - -import android.location.Location -import androidx.compose.foundation.layout.Box -import androidx.compose.foundation.layout.fillMaxWidth -import androidx.compose.foundation.layout.padding -import androidx.compose.material3.ButtonDefaults -import androidx.compose.material3.Text -import androidx.compose.runtime.Composable -import androidx.compose.runtime.getValue -import androidx.compose.runtime.mutableStateOf -import androidx.compose.runtime.remember -import androidx.compose.runtime.setValue -import androidx.compose.ui.Alignment -import androidx.compose.ui.Modifier -import androidx.compose.ui.platform.LocalContext -import androidx.compose.ui.res.stringResource -import androidx.compose.ui.text.font.FontWeight -import androidx.compose.ui.text.style.TextAlign -import androidx.compose.ui.unit.dp -import androidx.compose.ui.viewinterop.AndroidView -import com.acon.acon.core.designsystem.R -import com.acon.acon.core.designsystem.component.button.v2.AconFilledButton -import com.acon.acon.core.designsystem.component.popup.AconToastPopup -import com.acon.acon.core.designsystem.theme.AconTheme -import com.acon.acon.core.map.BuildConfig -import com.acon.acon.core.map.ProceedWithLocation -import com.naver.maps.geometry.LatLng -import com.naver.maps.map.CameraUpdate -import com.naver.maps.map.MapView -import com.naver.maps.map.NaverMap -import com.naver.maps.map.overlay.Marker -import com.naver.maps.map.overlay.OverlayImage - -private const val ZOOM = 20.0 -private const val MARKER_WIDTH = 240 -private const val MARKER_HEIGHT = 240 - -@Composable -internal fun LocationMapScreen( - onLocationObtained: (Double, Double) -> Unit, - modifier: Modifier = Modifier, - initialLatitude: Double = 0.0, - initialLongitude: Double = 0.0, - onClickConfirm: () -> Unit = {} -) { - val context = LocalContext.current - val density = context.resources.displayMetrics.density - - var naverMap: NaverMap? by remember { mutableStateOf(null) } - var currentLocation by remember { mutableStateOf(null) } - - fun createCustomMarker(map: NaverMap, latitude: Double, longitude: Double) { - Marker().apply { - position = LatLng(latitude, longitude) - width = MARKER_WIDTH - height = MARKER_HEIGHT - icon = OverlayImage.fromResource(R.drawable.ic_mark) - this.map = map - } - } - - if (initialLatitude != 0.0 && initialLongitude != 0.0) { - naverMap?.let { map -> - val cameraUpdate = CameraUpdate.scrollAndZoomTo( - LatLng(initialLatitude, initialLongitude), - ZOOM - ) - map.moveCamera(cameraUpdate) - createCustomMarker(map, initialLatitude, initialLongitude) - } - } else { - ProceedWithLocation( - onReady = { location -> - currentLocation = location - onLocationObtained(location.latitude, location.longitude) - naverMap?.let { map -> - val cameraUpdate = - CameraUpdate.scrollTo(LatLng(location.latitude, location.longitude)) - map.moveCamera(cameraUpdate) - createCustomMarker(map, location.latitude, location.longitude) - } - } - ) - } - - Box( - modifier = modifier - ) { - AndroidView( - factory = { context -> - MapView(context).apply { - getMapAsync { map -> - naverMap = map - map.customStyleId = BuildConfig.NAVER_NCP_KEY_ID - map.uiSettings.apply { - isScrollGesturesEnabled = false - isZoomGesturesEnabled = false - isTiltGesturesEnabled = false - isRotateGesturesEnabled = false - isZoomControlEnabled = false - isCompassEnabled = false - isScaleBarEnabled = false - setLogoMargin((20 * density).toInt(), 0, 0, (100 * density).toInt()) - } - - if (initialLatitude != 0.0 && initialLongitude != 0.0) { - val cameraUpdate = - CameraUpdate.scrollTo(LatLng(initialLatitude, initialLongitude)) - map.moveCamera(cameraUpdate) - createCustomMarker(map, initialLatitude, initialLongitude) - } else { - currentLocation?.let { location -> - val cameraUpdate = CameraUpdate.scrollTo( - LatLng( - location.latitude, - location.longitude - ) - ) - map.moveCamera(cameraUpdate) - createCustomMarker(map, location.latitude, location.longitude) - } - } - } - } - } - ) - - AconToastPopup( - modifier = Modifier - .align(Alignment.TopCenter) - .padding(top = 17.dp) - .padding(horizontal = 16.dp), - color = AconTheme.color.DimDefault.copy( - alpha = 0.8f - ), - content = { - Text( - text = stringResource(R.string.area_verification_popup), - color = AconTheme.color.White, - style = AconTheme.typography.Body1, - textAlign = TextAlign.Center, - modifier = Modifier - .padding(vertical = 13.dp) - ) - } - ) - - AconFilledButton( - onClick = { onClickConfirm() }, - modifier = Modifier - .align(Alignment.BottomCenter) - .fillMaxWidth() - .padding(vertical = 24.dp, horizontal = 16.dp), - colors = ButtonDefaults.buttonColors( - containerColor = AconTheme.color.DimDefault.copy( - alpha = 0.8f - ), - contentColor = AconTheme.color.White - ), - content = { - Text( - text = stringResource(R.string.area_verification_btn_content), - style = AconTheme.typography.Title4, - fontWeight = FontWeight.SemiBold - ) - } - ) - } -} \ No newline at end of file diff --git a/feature/onboarding/src/main/java/com/acon/feature/onboarding/area/composable/PreferenceMapScreen.kt b/feature/onboarding/src/main/java/com/acon/feature/onboarding/area/composable/PreferenceMapScreen.kt deleted file mode 100644 index 45ab97d56..000000000 --- a/feature/onboarding/src/main/java/com/acon/feature/onboarding/area/composable/PreferenceMapScreen.kt +++ /dev/null @@ -1,183 +0,0 @@ -package com.acon.feature.onboarding.area.composable - -import android.app.Activity -import android.content.Intent -import android.provider.Settings -import androidx.compose.foundation.background -import androidx.compose.foundation.layout.Box -import androidx.compose.foundation.layout.Column -import androidx.compose.foundation.layout.fillMaxSize -import androidx.compose.foundation.layout.navigationBarsPadding -import androidx.compose.foundation.layout.padding -import androidx.compose.foundation.layout.statusBarsPadding -import androidx.compose.material3.Icon -import androidx.compose.material3.IconButton -import androidx.compose.material3.Text -import androidx.compose.runtime.Composable -import androidx.compose.runtime.LaunchedEffect -import androidx.compose.runtime.collectAsState -import androidx.compose.runtime.getValue -import androidx.compose.runtime.mutableDoubleStateOf -import androidx.compose.runtime.remember -import androidx.compose.runtime.setValue -import androidx.compose.ui.Modifier -import androidx.compose.ui.graphics.vector.ImageVector -import androidx.compose.ui.platform.LocalContext -import androidx.compose.ui.res.stringResource -import androidx.compose.ui.res.vectorResource -import androidx.compose.ui.unit.dp -import androidx.hilt.navigation.compose.hiltViewModel -import com.acon.acon.core.designsystem.R -import com.acon.acon.core.designsystem.component.dialog.v2.AconDefaultDialog -import com.acon.acon.core.designsystem.component.topbar.AconTopBar -import com.acon.acon.core.designsystem.theme.AconTheme -import com.acon.feature.onboarding.area.viewmodel.AreaVerificationSideEffect -import com.acon.feature.onboarding.area.viewmodel.AreaVerificationViewModel -import org.orbitmvi.orbit.compose.collectSideEffect - -@Composable -fun PreferenceMapScreen( - latitude: Double, - longitude: Double, - previousVerifiedAreaId: Long, - modifier: Modifier = Modifier, - onBackClick: () -> Unit = {}, - onNavigateToNext: (didOnboarding: Boolean) -> Unit = {}, - viewModel: AreaVerificationViewModel = hiltViewModel() -) { - var currentLatitude by remember { mutableDoubleStateOf(latitude) } - var currentLongitude by remember { mutableDoubleStateOf(longitude) } - - val context = LocalContext.current - val state by viewModel.container.stateFlow.collectAsState() - - viewModel.collectSideEffect { effect -> - when (effect) { - is AreaVerificationSideEffect.NavigateToSystemLocationSettings -> { - val intent = Intent(Settings.ACTION_LOCATION_SOURCE_SETTINGS) - context.startActivity(intent) - } - - else -> {} - } - } - - LaunchedEffect(Unit) { - viewModel.checkDeviceGPSStatus() - viewModel.checkSupportLocation(context) - } - - LaunchedEffect(state.isGPSEnabled) { - viewModel.checkDeviceGPSStatus() - viewModel.checkSupportLocation(context) - } - - LaunchedEffect(state.isVerifySuccess) { - if (state.isVerifySuccess) { - onNavigateToNext(state.hasTastePreference) - } - } - - if (state.showDeviceGPSDialog) { - AconDefaultDialog( - title = stringResource(R.string.location_permission_denied_title), - action = stringResource(R.string.go_to_setting), - onAction = { - viewModel.onDeviceGPSSettingClick(context.packageName) - }, - onDismissRequest = {}, - content = { - Text( - text = stringResource(R.string.location_permission_denied_content), - style = AconTheme.typography.Title4, - color = AconTheme.color.White, - modifier = Modifier - .padding(horizontal = 16.dp) - .padding(bottom = 20.dp) - ) - } - ) - } - - if (state.showLocationDialog) { - AconDefaultDialog( - title = stringResource(R.string.location_unsupported_area_title), - action = stringResource(R.string.ok), - onDismissRequest = {}, - onAction = { (context as? Activity)?.finishAffinity() }, - content = { - Text( - text = stringResource(R.string.location_unsupported_area_content), - style = AconTheme.typography.Title4, - color = AconTheme.color.White, - modifier = Modifier - .padding(horizontal = 16.dp) - .padding(bottom = 20.dp) - ) - } - ) - } - - Column( - modifier = modifier - .background( - color = AconTheme.color.DimDefault.copy(alpha = 0.8f) - ) - .statusBarsPadding() - .navigationBarsPadding() - .fillMaxSize() - ) { - AconTopBar( - leadingIcon = { - IconButton( - onClick = { onBackClick() } - ) { - Icon( - imageVector = ImageVector.vectorResource(id = R.drawable.ic_topbar_arrow_left), - contentDescription = stringResource(R.string.back), - tint = AconTheme.color.Gray50 - ) - } - }, - content = { - Text( - text = stringResource(R.string.area_verification_topbar), - style = AconTheme.typography.Title4, - color = AconTheme.color.White - ) - }, - modifier = Modifier - .background( - color = AconTheme.color.DimDefault.copy(alpha = 0.8f) - ) - .padding(vertical = 14.dp) - ) - - Box( - modifier = Modifier - .weight(1f) - .fillMaxSize() - ) { - LocationMapScreen( - onLocationObtained = { lat, lng -> - currentLatitude = lat - currentLongitude = lng - }, - initialLatitude = latitude, - initialLongitude = longitude, - modifier = Modifier.fillMaxSize(), - onClickConfirm = { - if (previousVerifiedAreaId > (0).toLong()) { - viewModel.editVerifiedArea( - previousVerifiedAreaId = previousVerifiedAreaId, - latitude = currentLatitude, - longitude = currentLongitude - ) - } else { - viewModel.verifyArea(currentLatitude, currentLongitude) - } - } - ) - } - } -} \ No newline at end of file diff --git a/feature/onboarding/src/main/java/com/acon/feature/onboarding/area/composable/VerifyInMapScreen.kt b/feature/onboarding/src/main/java/com/acon/feature/onboarding/area/composable/VerifyInMapScreen.kt new file mode 100644 index 000000000..ed08978dc --- /dev/null +++ b/feature/onboarding/src/main/java/com/acon/feature/onboarding/area/composable/VerifyInMapScreen.kt @@ -0,0 +1,124 @@ +package com.acon.feature.onboarding.area.composable + +import androidx.compose.foundation.background +import androidx.compose.foundation.layout.Box +import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.fillMaxSize +import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.layout.navigationBarsPadding +import androidx.compose.foundation.layout.padding +import androidx.compose.material3.ButtonDefaults +import androidx.compose.material3.Icon +import androidx.compose.material3.IconButton +import androidx.compose.material3.Text +import androidx.compose.runtime.Composable +import androidx.compose.ui.Alignment +import androidx.compose.ui.Modifier +import androidx.compose.ui.graphics.vector.ImageVector +import androidx.compose.ui.res.stringResource +import androidx.compose.ui.res.vectorResource +import androidx.compose.ui.text.font.FontWeight +import androidx.compose.ui.text.style.TextAlign +import androidx.compose.ui.unit.dp +import com.acon.acon.core.designsystem.R +import com.acon.acon.core.designsystem.component.button.v2.AconFilledButton +import com.acon.acon.core.designsystem.component.popup.AconToastPopup +import com.acon.acon.core.designsystem.component.topbar.AconTopBar +import com.acon.acon.core.designsystem.theme.AconTheme +import com.acon.core.map.composable.NaverMapView +import com.acon.feature.onboarding.area.viewmodel.VerifyInMapState + +@Composable +internal fun VerifyInMapScreen( + state: VerifyInMapState, + onCompleteButtonClick: () -> Unit, + onBackIconClick: () -> Unit, + modifier: Modifier = Modifier +) { + + Column( + modifier = modifier + ) { + AconTopBar( + leadingIcon = { + IconButton( + onClick = onBackIconClick + ) { + Icon( + imageVector = ImageVector.vectorResource(id = R.drawable.ic_topbar_arrow_left), + contentDescription = stringResource(R.string.back), + tint = AconTheme.color.Gray50 + ) + } + }, + content = { + Text( + text = stringResource(R.string.area_verification_topbar), + style = AconTheme.typography.Title4, + color = AconTheme.color.White + ) + }, + modifier = Modifier + .background( + color = AconTheme.color.DimDefault.copy(alpha = 0.8f) + ) + .padding(vertical = 14.dp) + ) + + Box( + modifier = Modifier + .weight(1f) + .fillMaxSize() + ) { + + AconToastPopup( + modifier = Modifier + .align(Alignment.TopCenter) + .padding(top = 17.dp) + .padding(horizontal = 16.dp), + color = AconTheme.color.DimDefault.copy( + alpha = 0.8f + ), + content = { + Text( + text = stringResource(R.string.area_verification_popup), + color = AconTheme.color.White, + style = AconTheme.typography.Body1, + textAlign = TextAlign.Center, + modifier = Modifier + .padding(vertical = 13.dp) + ) + } + ) + + if (state.latitude != null && state.longitude != null) + NaverMapView( + latitude = state.latitude, + longitude = state.longitude, + modifier = Modifier.fillMaxSize(), + ) + + AconFilledButton( + onClick = onCompleteButtonClick, + modifier = Modifier + .align(Alignment.BottomCenter) + .fillMaxWidth() + .navigationBarsPadding() + .padding(vertical = 24.dp, horizontal = 16.dp), + colors = ButtonDefaults.buttonColors( + containerColor = AconTheme.color.DimDefault.copy( + alpha = 0.8f + ), + contentColor = AconTheme.color.White + ), + content = { + Text( + text = stringResource(R.string.area_verification_btn_content), + style = AconTheme.typography.Title4, + fontWeight = FontWeight.SemiBold + ) + } + ) + } + } +} \ No newline at end of file diff --git a/feature/onboarding/src/main/java/com/acon/feature/onboarding/area/composable/VerifyInMapScreenContainer.kt b/feature/onboarding/src/main/java/com/acon/feature/onboarding/area/composable/VerifyInMapScreenContainer.kt new file mode 100644 index 000000000..6686ff619 --- /dev/null +++ b/feature/onboarding/src/main/java/com/acon/feature/onboarding/area/composable/VerifyInMapScreenContainer.kt @@ -0,0 +1,37 @@ +package com.acon.feature.onboarding.area.composable + +import androidx.compose.runtime.Composable +import androidx.compose.runtime.getValue +import androidx.compose.ui.Modifier +import androidx.hilt.navigation.compose.hiltViewModel +import com.acon.acon.core.model.model.OnboardingPreferences +import com.acon.feature.onboarding.area.viewmodel.VerifyInMapSideEffect +import com.acon.feature.onboarding.area.viewmodel.VerifyInMapViewModel +import org.orbitmvi.orbit.compose.collectAsState +import org.orbitmvi.orbit.compose.collectSideEffect + +@Composable +fun VerifyInMapScreenContainer( + onNavigateToNextScreen: () -> Unit, + onNavigateBack: () -> Unit, + modifier: Modifier = Modifier, + viewModel: VerifyInMapViewModel = hiltViewModel() +) { + + val state by viewModel.collectAsState() + + VerifyInMapScreen( + state = state, + onCompleteButtonClick = viewModel::onCompleteButtonClicked, + onBackIconClick = viewModel::onBackIconClicked, + modifier = modifier + ) + + viewModel.useLiveLocation() + viewModel.collectSideEffect { sideEffect -> + when (sideEffect) { + is VerifyInMapSideEffect.NavigateToNextScreen -> onNavigateToNextScreen() + VerifyInMapSideEffect.NavigateBack -> onNavigateBack() + } + } +} \ No newline at end of file diff --git a/feature/onboarding/src/main/java/com/acon/feature/onboarding/area/viewmodel/AreaVerificationViewModel.kt b/feature/onboarding/src/main/java/com/acon/feature/onboarding/area/viewmodel/AreaVerificationViewModel.kt index c714a7662..b1fa14512 100644 --- a/feature/onboarding/src/main/java/com/acon/feature/onboarding/area/viewmodel/AreaVerificationViewModel.kt +++ b/feature/onboarding/src/main/java/com/acon/feature/onboarding/area/viewmodel/AreaVerificationViewModel.kt @@ -1,159 +1,45 @@ package com.acon.feature.onboarding.area.viewmodel -import android.Manifest -import android.app.Application -import android.content.Context -import android.content.pm.PackageManager -import android.location.LocationManager -import androidx.core.app.ActivityCompat -import com.acon.acon.core.model.model.area.Area import com.acon.acon.core.model.type.UserActionType import com.acon.acon.core.ui.base.BaseContainerHost -import com.acon.acon.domain.error.area.ReplaceVerifiedArea -import com.acon.acon.domain.repository.OnboardingRepository -import com.acon.acon.domain.repository.ProfileRepository import com.acon.acon.domain.repository.TimeRepository +import dagger.assisted.Assisted +import dagger.assisted.AssistedFactory +import dagger.assisted.AssistedInject import dagger.hilt.android.lifecycle.HiltViewModel import org.orbitmvi.orbit.viewmodel.container -import timber.log.Timber -import javax.inject.Inject -@HiltViewModel -class AreaVerificationViewModel @Inject constructor( - private val application: Application, - private val profileRepository: ProfileRepository, - private val onboardingRepository: OnboardingRepository, - private val timeRepository: TimeRepository -) : BaseContainerHost() { +@HiltViewModel(assistedFactory = AreaVerificationViewModel.Factory::class) +class AreaVerificationViewModel @AssistedInject constructor( + private val timeRepository: TimeRepository, + @Assisted private val shouldShowSkipButton: Boolean +) : BaseContainerHost() { - override val container = container( - AreaVerificationUiState() - ) { - checkDeviceGPSStatus() - } - - fun checkDeviceGPSStatus() = intent { - val locationManager = application.getSystemService(Context.LOCATION_SERVICE) as LocationManager - val isGPSEnabled = locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER) - - if (isGPSEnabled) { - reduce { state.copy(isGPSEnabled = true, showDeviceGPSDialog = false) } - } else { - reduce { state.copy(isGPSEnabled = false, showDeviceGPSDialog = true) } - } - } - - private fun showLocationDialog() = intent { - reduce { - state.copy(showLocationDialog = true) - } - } + override val container = container( + AreaVerificationState( + shouldShowSkipButton = shouldShowSkipButton + ) + ) fun onNextButtonClick() = intent { postSideEffect( - AreaVerificationSideEffect.NavigateToNextScreen( - state.latitude, - state.longitude - ) + AreaVerificationSideEffect.NavigateToVerifyInMap ) } - fun onSkipButtonClick() = intent { - onboardingRepository.getOnboardingPreferences().onSuccess { prefs -> - if (prefs.hasTastePreference) postSideEffect(AreaVerificationSideEffect.NavigateToSpotList) - else postSideEffect(AreaVerificationSideEffect.NavigateToOnboarding) - }.onFailure { postSideEffect(AreaVerificationSideEffect.NavigateToOnboarding) } + fun onSkipClicked() = intent { + postSideEffect(AreaVerificationSideEffect.NavigateToChooseDislikes) timeRepository.saveUserActionTime(UserActionType.SKIP_AREA_VERIFICATION, System.currentTimeMillis()) } - fun onDeviceGPSSettingClick(packageName: String) = intent { - postSideEffect( - AreaVerificationSideEffect.NavigateToSystemLocationSettings(packageName) - ) - reduce { - state.copy(showDeviceGPSDialog = false) - } - } - - fun editVerifiedArea(previousVerifiedAreaId: Long, latitude: Double, longitude: Double) = intent { - profileRepository.replaceVerifiedArea( - previousVerifiedAreaId = previousVerifiedAreaId, - latitude = latitude, - longitude = longitude - ).onSuccess { - reduce { - state.copy( - isVerifySuccess = true - ) - } - }.onFailure { error -> - when(error) { - is ReplaceVerifiedArea.OutOfServiceAreaError -> { - postSideEffect(AreaVerificationSideEffect.ShowErrorToast("서비스를 제공하지 않는 지역입니다.")) - } - is ReplaceVerifiedArea.InvalidVerifiedArea -> { - postSideEffect(AreaVerificationSideEffect.ShowErrorToast("유효하지 않은 인증 지역입니다.")) - } - is ReplaceVerifiedArea.VerifiedAreaNotFound -> { - postSideEffect(AreaVerificationSideEffect.ShowErrorToast("존재하지 않는 인증 지역입니다.")) - } - } - } - } - - fun checkSupportLocation(context: Context) = intent { - if (ActivityCompat.checkSelfPermission( - context, Manifest.permission.ACCESS_FINE_LOCATION - ) != PackageManager.PERMISSION_GRANTED - ) { - return@intent - } - - var isSupportLocation: Boolean - - getCurrentLocation().let { location -> - val latitude = location.latitude - val longitude = location.longitude - isSupportLocation = latitude in 33.1..38.6 && longitude in 124.6..131.9 - - if (!isSupportLocation) { - Timber.tag(TAG).d("GPS 불가 지역(해외)") - showLocationDialog() - } - } - } - - fun verifyArea(latitude: Double, longitude: Double) = intent { - val hasPreference = onboardingRepository.getOnboardingPreferences().getOrNull()?.hasTastePreference - - profileRepository.verifyArea(latitude, longitude) - .onSuccess { - reduce { - state.copy( - isVerifySuccess = true, - hasTastePreference = hasPreference == true - ) - } - } - .onFailure { - postSideEffect(AreaVerificationSideEffect.ShowErrorToast("지역인증에 실패했습니다. 다시 시도해주세요.")) - } - } - - companion object { - const val TAG = "AreaVerificationViewModel" + @AssistedFactory + interface Factory { + fun create(shouldShowSkipButton: Boolean): AreaVerificationViewModel } } -data class AreaVerificationUiState( - val isGPSEnabled: Boolean = false, - val showDeviceGPSDialog: Boolean = false, - val showLocationDialog: Boolean = false, - val latitude: Double = 0.0, - val longitude: Double = 0.0, - val isVerifySuccess: Boolean = false, - val verifiedAreaList: List = emptyList(), - val hasTastePreference: Boolean = false, +data class AreaVerificationState( + val shouldShowSkipButton: Boolean ) sealed interface AreaVerificationSideEffect { @@ -166,13 +52,9 @@ sealed interface AreaVerificationSideEffect { val packageName: String ) : AreaVerificationSideEffect - data class NavigateToNextScreen( - val latitude: Double, - val longitude: Double - ) : AreaVerificationSideEffect + data object NavigateToVerifyInMap: AreaVerificationSideEffect data class ShowErrorToast(val errorMessage: String) : AreaVerificationSideEffect - data object NavigateToOnboarding : AreaVerificationSideEffect - data object NavigateToSpotList: AreaVerificationSideEffect + data object NavigateToChooseDislikes : AreaVerificationSideEffect } \ No newline at end of file diff --git a/feature/onboarding/src/main/java/com/acon/feature/onboarding/area/viewmodel/VerifyInMapViewModel.kt b/feature/onboarding/src/main/java/com/acon/feature/onboarding/area/viewmodel/VerifyInMapViewModel.kt new file mode 100644 index 000000000..7632c38ae --- /dev/null +++ b/feature/onboarding/src/main/java/com/acon/feature/onboarding/area/viewmodel/VerifyInMapViewModel.kt @@ -0,0 +1,53 @@ +package com.acon.feature.onboarding.area.viewmodel + +import com.acon.acon.core.model.model.OnboardingPreferences +import com.acon.acon.core.ui.base.BaseContainerHost +import com.acon.acon.domain.repository.OnboardingRepository +import dagger.hilt.android.lifecycle.HiltViewModel +import org.orbitmvi.orbit.viewmodel.container +import timber.log.Timber +import javax.inject.Inject + +@HiltViewModel +class VerifyInMapViewModel @Inject constructor( + private val onboardingRepository: OnboardingRepository +) : BaseContainerHost() { + + override val container = container(VerifyInMapState()) { + val currentLocation = getCurrentLocation() + val verifyingLatitude = currentLocation.latitude + val verifyingLongitude = currentLocation.longitude + + reduce { + state.copy( + latitude = verifyingLatitude, + longitude = verifyingLongitude + ) + } + } + + fun onCompleteButtonClicked() = intent { + onboardingRepository.verifyArea( + latitude = state.latitude ?: error("latitude is null"), + longitude = state.longitude ?: error("longitude is null") + ).onSuccess { + postSideEffect(VerifyInMapSideEffect.NavigateToNextScreen) + }.onFailure { e -> + Timber.e(e) + } + } + + fun onBackIconClicked() = intent { + postSideEffect(VerifyInMapSideEffect.NavigateBack) + } +} + +data class VerifyInMapState( + val latitude: Double? = null, + val longitude: Double? = null +) + +sealed interface VerifyInMapSideEffect { + data object NavigateToNextScreen : VerifyInMapSideEffect + data object NavigateBack : VerifyInMapSideEffect +} \ No newline at end of file diff --git a/feature/settings/src/main/java/com/acon/acon/feature/settings/screen/SettingsViewModel.kt b/feature/settings/src/main/java/com/acon/acon/feature/settings/screen/SettingsViewModel.kt index f3e7a5c82..5f2638c44 100644 --- a/feature/settings/src/main/java/com/acon/acon/feature/settings/screen/SettingsViewModel.kt +++ b/feature/settings/src/main/java/com/acon/acon/feature/settings/screen/SettingsViewModel.kt @@ -63,8 +63,8 @@ class SettingsViewModel @Inject constructor( postSideEffect(SettingsSideEffect.NavigateToOnboarding) } - fun onNavigateToLocalVerification() = intent { - postSideEffect(SettingsSideEffect.NavigateToLocalVerification) + fun onNavigateToUserVerifiedAreas() = intent { + postSideEffect(SettingsSideEffect.NavigateToUserVerifiedAreas) } fun onDeleteAccount() = intent { @@ -88,6 +88,6 @@ sealed interface SettingsSideEffect { data object OpenTermOfUse : SettingsSideEffect data object OpenPrivatePolicy : SettingsSideEffect data object NavigateToOnboarding : SettingsSideEffect - data object NavigateToLocalVerification : SettingsSideEffect + data object NavigateToUserVerifiedAreas : SettingsSideEffect data object NavigateToDeleteAccount : SettingsSideEffect } \ No newline at end of file diff --git a/feature/settings/src/main/java/com/acon/acon/feature/settings/screen/composable/SettingsScreenContainer.kt b/feature/settings/src/main/java/com/acon/acon/feature/settings/screen/composable/SettingsScreenContainer.kt index 47adbf8ab..bf7db5aa6 100644 --- a/feature/settings/src/main/java/com/acon/acon/feature/settings/screen/composable/SettingsScreenContainer.kt +++ b/feature/settings/src/main/java/com/acon/acon/feature/settings/screen/composable/SettingsScreenContainer.kt @@ -23,7 +23,7 @@ fun SettingsScreenContainer( onNavigateToSignInScreen: () -> Unit = {}, onNavigateToProfileScreen: () -> Unit = {}, onNavigateToOnboardingScreen: () -> Unit = {}, - onNavigateLocalVerificationScreen: () -> Unit = {}, + onNavigateUserVerifiedAreasScreen: () -> Unit = {}, onNavigateToDeleteAccountScreen: () -> Unit = {}, viewModel: SettingsViewModel = hiltViewModel() ) { @@ -42,7 +42,7 @@ fun SettingsScreenContainer( onTermOfUse = viewModel::onTermOfUse, onPrivatePolicy = viewModel::onPrivatePolicy, onRetryOnBoarding = viewModel::onRetryOnBoarding, - onAreaVerification = viewModel::onNavigateToLocalVerification, + onAreaVerification = viewModel::onNavigateToUserVerifiedAreas, onUpdateVersion = viewModel::onUpdateVersion, onSignOut = viewModel::onSignOut, onDeleteAccountScreen = viewModel::onDeleteAccount, @@ -67,7 +67,7 @@ fun SettingsScreenContainer( context.startActivity(intent) } is SettingsSideEffect.NavigateToOnboarding -> onNavigateToOnboardingScreen() - is SettingsSideEffect.NavigateToLocalVerification -> onNavigateLocalVerificationScreen() + is SettingsSideEffect.NavigateToUserVerifiedAreas -> onNavigateUserVerifiedAreasScreen() is SettingsSideEffect.NavigateToDeleteAccount -> onNavigateToDeleteAccountScreen() } } diff --git a/feature/settings/src/main/java/com/acon/acon/feature/verification/screen/LocalVerificationViewModel.kt b/feature/settings/src/main/java/com/acon/acon/feature/verification/screen/UserVerifiedAreasViewModel.kt similarity index 72% rename from feature/settings/src/main/java/com/acon/acon/feature/verification/screen/LocalVerificationViewModel.kt rename to feature/settings/src/main/java/com/acon/acon/feature/verification/screen/UserVerifiedAreasViewModel.kt index 4f27250e8..598369cdd 100644 --- a/feature/settings/src/main/java/com/acon/acon/feature/verification/screen/LocalVerificationViewModel.kt +++ b/feature/settings/src/main/java/com/acon/acon/feature/verification/screen/UserVerifiedAreasViewModel.kt @@ -12,12 +12,12 @@ import javax.inject.Inject @OptIn(OrbitExperimental::class) @HiltViewModel -class LocalVerificationViewModel @Inject constructor( +class UserVerifiedAreasViewModel @Inject constructor( private val profileRepository: ProfileRepository -) : BaseContainerHost() { +) : BaseContainerHost() { - override val container: Container = - container(LocalVerificationUiState.Loading) { + override val container: Container = + container(UserVerifiedAreasUiState.Loading) { fetchVerifiedAreaList() } @@ -25,21 +25,21 @@ class LocalVerificationViewModel @Inject constructor( profileRepository.fetchVerifiedAreaList() .onSuccess { reduce { - LocalVerificationUiState.Success(verificationAreaList = it) + UserVerifiedAreasUiState.Success(verificationAreaList = it) } } .onFailure { - LocalVerificationUiState.LoadFailed + UserVerifiedAreasUiState.LoadFailed } } fun retry() = intent { - reduce { LocalVerificationUiState.Loading } + reduce { UserVerifiedAreasUiState.Loading } fetchVerifiedAreaList() } private fun showAreaDeleteFailDialog() = intent { - runOn { + runOn { reduce { state.copy(showAreaDeleteFailDialog = true) } @@ -47,7 +47,7 @@ class LocalVerificationViewModel @Inject constructor( } fun dismissAreaDeleteFailDialog() = intent { - runOn { + runOn { reduce { state.copy(showAreaDeleteFailDialog = false) } @@ -55,7 +55,7 @@ class LocalVerificationViewModel @Inject constructor( } fun showEditAreaDialog() = intent { - runOn { + runOn { reduce { state.copy(showEditAreaDialog = true) } @@ -63,7 +63,7 @@ class LocalVerificationViewModel @Inject constructor( } fun dismissEditAreaDialog() = intent { - runOn { + runOn { reduce { state.copy(showEditAreaDialog = false) } @@ -79,7 +79,7 @@ class LocalVerificationViewModel @Inject constructor( when (error) { is DeleteVerifiedAreaError.InvalidVerifiedArea -> { Timber.e(TAG, "유효하지 않은 인증 지역입니다.") - postSideEffect(LocalVerificationSideEffect.ShowUnKnownErrorToast) + postSideEffect(UserVerifiedAreasSideEffect.ShowUnKnownErrorToast) } is DeleteVerifiedAreaError.VerifiedAreaLimitViolation -> { @@ -94,23 +94,23 @@ class LocalVerificationViewModel @Inject constructor( is DeleteVerifiedAreaError.VerifiedAreaNotFound -> { Timber.e(TAG, "존재하지 않는 인증 동네입니다.") - postSideEffect(LocalVerificationSideEffect.ShowUnKnownErrorToast) + postSideEffect(UserVerifiedAreasSideEffect.ShowUnKnownErrorToast) } else -> { Timber.e(TAG, error.message) - postSideEffect(LocalVerificationSideEffect.ShowUnKnownErrorToast) + postSideEffect(UserVerifiedAreasSideEffect.ShowUnKnownErrorToast) } } } } fun onNavigateToSettingsScreen() = intent { - postSideEffect(LocalVerificationSideEffect.NavigateToSettingsScreen) + postSideEffect(UserVerifiedAreasSideEffect.NavigateToSettingsScreen) } fun onNavigateToAreaVerification(verifiedAreaId: Long) = intent { - postSideEffect(LocalVerificationSideEffect.NavigateToAreaVerification(verifiedAreaId)) + postSideEffect(UserVerifiedAreasSideEffect.NavigateToAreaVerification(verifiedAreaId)) } companion object { @@ -118,20 +118,20 @@ class LocalVerificationViewModel @Inject constructor( } } -sealed interface LocalVerificationUiState { +sealed interface UserVerifiedAreasUiState { data class Success( val selectedAreaId: Long? = null, val verificationAreaList: List, val showAreaDeleteFailDialog: Boolean = false, val showEditAreaDialog: Boolean = false - ) : LocalVerificationUiState + ) : UserVerifiedAreasUiState - data object Loading : LocalVerificationUiState - data object LoadFailed : LocalVerificationUiState + data object Loading : UserVerifiedAreasUiState + data object LoadFailed : UserVerifiedAreasUiState } -sealed interface LocalVerificationSideEffect { - data object ShowUnKnownErrorToast : LocalVerificationSideEffect - data object NavigateToSettingsScreen : LocalVerificationSideEffect - data class NavigateToAreaVerification(val verifiedAreaId: Long) : LocalVerificationSideEffect +sealed interface UserVerifiedAreasSideEffect { + data object ShowUnKnownErrorToast : UserVerifiedAreasSideEffect + data object NavigateToSettingsScreen : UserVerifiedAreasSideEffect + data class NavigateToAreaVerification(val verifiedAreaId: Long) : UserVerifiedAreasSideEffect } \ No newline at end of file diff --git a/feature/settings/src/main/java/com/acon/acon/feature/verification/screen/composable/LocalVerificationScreen.kt b/feature/settings/src/main/java/com/acon/acon/feature/verification/screen/composable/UserVerifiedAreasScreen.kt similarity index 94% rename from feature/settings/src/main/java/com/acon/acon/feature/verification/screen/composable/LocalVerificationScreen.kt rename to feature/settings/src/main/java/com/acon/acon/feature/verification/screen/composable/UserVerifiedAreasScreen.kt index 06d8aaae1..3eeb7fdaf 100644 --- a/feature/settings/src/main/java/com/acon/acon/feature/verification/screen/composable/LocalVerificationScreen.kt +++ b/feature/settings/src/main/java/com/acon/acon/feature/verification/screen/composable/UserVerifiedAreasScreen.kt @@ -30,12 +30,12 @@ import com.acon.acon.core.designsystem.component.error.NetworkErrorView import com.acon.acon.core.designsystem.component.topbar.AconTopBar import com.acon.acon.core.designsystem.theme.AconTheme import com.acon.acon.feature.verification.component.VerifiedAreaChipRow -import com.acon.acon.feature.verification.screen.LocalVerificationUiState +import com.acon.acon.feature.verification.screen.UserVerifiedAreasUiState import com.acon.acon.core.ui.compose.LocalOnRetry @Composable -fun LocalVerificationScreen( - state: LocalVerificationUiState, +fun UserVerifiedAreasScreen( + state: UserVerifiedAreasUiState, onNavigateBack: () -> Unit, onclickAreaVerification: (Long) -> Unit, onDeleteVerifiedAreaChip: (Long) -> Unit, @@ -45,7 +45,7 @@ fun LocalVerificationScreen( modifier: Modifier = Modifier ) { when (state) { - is LocalVerificationUiState.Success -> { + is UserVerifiedAreasUiState.Success -> { if (state.showAreaDeleteFailDialog) { AconDefaultDialog( title = stringResource(R.string.delete_area_dialog_fail_title), @@ -63,7 +63,6 @@ fun LocalVerificationScreen( ) } - if (state.showEditAreaDialog) { AconTwoActionDialog( title = stringResource(R.string.delete_area_dialog_fail_title), @@ -164,8 +163,8 @@ fun LocalVerificationScreen( } } - is LocalVerificationUiState.Loading -> {} - is LocalVerificationUiState.LoadFailed -> { + is UserVerifiedAreasUiState.Loading -> {} + is UserVerifiedAreasUiState.LoadFailed -> { NetworkErrorView( onRetry = LocalOnRetry.current, modifier = Modifier.fillMaxSize() @@ -176,10 +175,10 @@ fun LocalVerificationScreen( @Preview @Composable -fun LocalVerificationScreenPreview() { +fun UserVerifiedAreasScreenPreview() { AconTheme { - LocalVerificationScreen( - state = LocalVerificationUiState.Success( + UserVerifiedAreasScreen( + state = UserVerifiedAreasUiState.Success( verificationAreaList = emptyList() ), onNavigateBack = {}, diff --git a/feature/settings/src/main/java/com/acon/acon/feature/verification/screen/composable/LocalVerificationScreenContainer.kt b/feature/settings/src/main/java/com/acon/acon/feature/verification/screen/composable/UserVerifiedAreasScreenContainer.kt similarity index 77% rename from feature/settings/src/main/java/com/acon/acon/feature/verification/screen/composable/LocalVerificationScreenContainer.kt rename to feature/settings/src/main/java/com/acon/acon/feature/verification/screen/composable/UserVerifiedAreasScreenContainer.kt index 19ed2e5e1..b0bde6d82 100644 --- a/feature/settings/src/main/java/com/acon/acon/feature/verification/screen/composable/LocalVerificationScreenContainer.kt +++ b/feature/settings/src/main/java/com/acon/acon/feature/verification/screen/composable/UserVerifiedAreasScreenContainer.kt @@ -8,24 +8,24 @@ import androidx.compose.ui.platform.LocalContext import androidx.hilt.navigation.compose.hiltViewModel import com.acon.acon.core.designsystem.R import com.acon.acon.core.ui.android.showToast -import com.acon.acon.feature.verification.screen.LocalVerificationSideEffect -import com.acon.acon.feature.verification.screen.LocalVerificationViewModel +import com.acon.acon.feature.verification.screen.UserVerifiedAreasSideEffect +import com.acon.acon.feature.verification.screen.UserVerifiedAreasViewModel import com.acon.acon.core.ui.compose.LocalOnRetry import org.orbitmvi.orbit.compose.collectAsState import org.orbitmvi.orbit.compose.collectSideEffect @Composable -fun LocalVerificationScreenContainer( +fun UserVerifiedAreasScreenContainer( modifier: Modifier = Modifier, navigateToSettingsScreen: () -> Unit = {}, navigateToAreaVerification: (Long) -> Unit = {}, - viewModel: LocalVerificationViewModel = hiltViewModel() + viewModel: UserVerifiedAreasViewModel = hiltViewModel() ) { val context = LocalContext.current val state by viewModel.collectAsState() CompositionLocalProvider(LocalOnRetry provides viewModel::retry) { - LocalVerificationScreen( + UserVerifiedAreasScreen( state = state, modifier = modifier, onNavigateBack = viewModel::onNavigateToSettingsScreen, @@ -39,12 +39,12 @@ fun LocalVerificationScreenContainer( viewModel.collectSideEffect { when (it) { - is LocalVerificationSideEffect.ShowUnKnownErrorToast -> { + is UserVerifiedAreasSideEffect.ShowUnKnownErrorToast -> { context.showToast(R.string.unknown_error) } - is LocalVerificationSideEffect.NavigateToSettingsScreen -> navigateToSettingsScreen() - is LocalVerificationSideEffect.NavigateToAreaVerification-> navigateToAreaVerification( + is UserVerifiedAreasSideEffect.NavigateToSettingsScreen -> navigateToSettingsScreen() + is UserVerifiedAreasSideEffect.NavigateToAreaVerification-> navigateToAreaVerification( it.verifiedAreaId ) } diff --git a/feature/spot/src/main/java/com/acon/acon/feature/spot/screen/spotdetail/composable/SpotDetailScreenContainer.kt b/feature/spot/src/main/java/com/acon/acon/feature/spot/screen/spotdetail/composable/SpotDetailScreenContainer.kt index 61f31ba3e..1b68f8821 100644 --- a/feature/spot/src/main/java/com/acon/acon/feature/spot/screen/spotdetail/composable/SpotDetailScreenContainer.kt +++ b/feature/spot/src/main/java/com/acon/acon/feature/spot/screen/spotdetail/composable/SpotDetailScreenContainer.kt @@ -7,7 +7,7 @@ import androidx.compose.ui.Modifier import androidx.compose.ui.platform.LocalContext import androidx.hilt.navigation.compose.hiltViewModel import com.acon.acon.core.designsystem.R -import com.acon.acon.core.map.onLocationReady +import com.acon.core.map.onLocationReady import com.acon.acon.core.ui.android.showToast import com.acon.acon.core.ui.compose.LocalOnRetry import com.acon.acon.core.ui.android.openNaverMapNavigationWithMode From bb08a717eebc6032901703d95ec2b963f918641f Mon Sep 17 00:00:00 2001 From: Thirfir Date: Sat, 30 Aug 2025 00:23:12 +0900 Subject: [PATCH 12/91] =?UTF-8?q?chore:=20=EC=98=A8=EB=B3=B4=EB=94=A9=20?= =?UTF-8?q?=EB=AF=B8=EC=82=AC=EC=9A=A9=20=EB=A6=AC=EC=86=8C=EC=8A=A4=20?= =?UTF-8?q?=EC=A0=9C=EA=B1=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/res/drawable/food_american.png | Bin 22475 -> 0 bytes .../src/main/res/drawable/food_asian.png | Bin 21657 -> 0 bytes .../src/main/res/drawable/food_chinese.png | Bin 23284 -> 0 bytes .../src/main/res/drawable/food_img_1.png | Bin 25618 -> 0 bytes .../src/main/res/drawable/food_img_2.png | Bin 23571 -> 0 bytes .../src/main/res/drawable/food_img_3.png | Bin 24304 -> 0 bytes .../src/main/res/drawable/food_img_4.png | Bin 25036 -> 0 bytes .../src/main/res/drawable/food_img_5.png | Bin 25322 -> 0 bytes .../src/main/res/drawable/food_japanese.png | Bin 19782 -> 0 bytes .../src/main/res/drawable/food_korean.png | Bin 20867 -> 0 bytes .../src/main/res/drawable/food_street.png | Bin 25484 -> 0 bytes .../onboarding/src/main/res/drawable/ic_1.xml | 9 --------- .../onboarding/src/main/res/drawable/ic_2.xml | 9 --------- .../onboarding/src/main/res/drawable/ic_3.xml | 9 --------- .../onboarding/src/main/res/drawable/ic_4.xml | 9 --------- .../src/main/res/drawable/place_img_1.png | Bin 86951 -> 0 bytes .../src/main/res/drawable/place_img_2.png | Bin 80483 -> 0 bytes .../src/main/res/drawable/place_img_3.png | Bin 89937 -> 0 bytes .../src/main/res/drawable/place_img_4.png | Bin 93566 -> 0 bytes .../src/main/res/drawable/placetype_img_1.png | Bin 51558 -> 0 bytes .../src/main/res/drawable/placetype_img_2.png | Bin 55278 -> 0 bytes .../src/main/res/drawable/placetype_img_3.png | Bin 58461 -> 0 bytes .../src/main/res/drawable/placetype_img_4.png | Bin 54001 -> 0 bytes .../main/res/raw/loading_complete_lottie.json | 1 - .../src/main/res/raw/loading_lottie.json | 1 - .../onboarding/src/main/res/values/strings.xml | 14 -------------- 26 files changed, 52 deletions(-) delete mode 100644 feature/onboarding/src/main/res/drawable/food_american.png delete mode 100644 feature/onboarding/src/main/res/drawable/food_asian.png delete mode 100644 feature/onboarding/src/main/res/drawable/food_chinese.png delete mode 100644 feature/onboarding/src/main/res/drawable/food_img_1.png delete mode 100644 feature/onboarding/src/main/res/drawable/food_img_2.png delete mode 100644 feature/onboarding/src/main/res/drawable/food_img_3.png delete mode 100644 feature/onboarding/src/main/res/drawable/food_img_4.png delete mode 100644 feature/onboarding/src/main/res/drawable/food_img_5.png delete mode 100644 feature/onboarding/src/main/res/drawable/food_japanese.png delete mode 100644 feature/onboarding/src/main/res/drawable/food_korean.png delete mode 100644 feature/onboarding/src/main/res/drawable/food_street.png delete mode 100644 feature/onboarding/src/main/res/drawable/ic_1.xml delete mode 100644 feature/onboarding/src/main/res/drawable/ic_2.xml delete mode 100644 feature/onboarding/src/main/res/drawable/ic_3.xml delete mode 100644 feature/onboarding/src/main/res/drawable/ic_4.xml delete mode 100644 feature/onboarding/src/main/res/drawable/place_img_1.png delete mode 100644 feature/onboarding/src/main/res/drawable/place_img_2.png delete mode 100644 feature/onboarding/src/main/res/drawable/place_img_3.png delete mode 100644 feature/onboarding/src/main/res/drawable/place_img_4.png delete mode 100644 feature/onboarding/src/main/res/drawable/placetype_img_1.png delete mode 100644 feature/onboarding/src/main/res/drawable/placetype_img_2.png delete mode 100644 feature/onboarding/src/main/res/drawable/placetype_img_3.png delete mode 100644 feature/onboarding/src/main/res/drawable/placetype_img_4.png delete mode 100644 feature/onboarding/src/main/res/raw/loading_complete_lottie.json delete mode 100644 feature/onboarding/src/main/res/raw/loading_lottie.json delete mode 100644 feature/onboarding/src/main/res/values/strings.xml diff --git a/feature/onboarding/src/main/res/drawable/food_american.png b/feature/onboarding/src/main/res/drawable/food_american.png deleted file mode 100644 index 7b69191fc9f1e66f8a30657aaf9f628f20efb10c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 22475 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

-DqBhoY}+7TXwO-0y_5UsEjesF}}{N`87 zPj=X$pcG++Wm2NT;xZIx0|CrnZ=m<63Q{Op%=Dm5V8|ld``aB~A z|4;w&{m*-N=BUA=(9`noSFY>*<15!L{!#e!aQFJ%CB&Sc@qJ4`NZ==w5D2{guYda1 z31x&o_v~d4$pw~wG0*5NEER9)E1&a5>zU8=4IykK{4y(~3>yQHdHxw&{)hVS^1{dG z-?q6{RkVNp`WDX|(89n7gV(IkVS>N)p&G1fWZ+pV9oKvB+O>--`fYb^KX{6eLI#)X z4IWzq$;opr|I^p(&^Mm+5b-lFY-`pD8+^Vu>0{R$$oo0Q(Et0S?)`J|{1=0Z?+f)g zo*On0y*BTJ@$?^<MgNkWhbMD@H@CSVK z2Z7MS${0Mx(Br^Ot-c~eH}>Fj{R=mL4}JDO@Do;$hN2+>gfGZ{s&DQ=46)7MmamLJ zArurP1%y36xVVrfsxX6}z`AWCIP*SxU<~q_3k+SF6^bf2sR%FhyoDh04~*3+*q+_8 zc@qB+|9&ZjRD)+jmo*T0IE)Qlv@c+9D12E13l9ARxu7pp&l+54a6HPz_7L(Eum3(H zrI4H?T)D$BB*;0MFb7U<4&!;x7?9V)i8$o{xP#C2pATYL|8a0Ko*y*4fntN>Tkb$t zj{Pe(Kl?IZEPY5|A#Gdz7$Qb!Ju5_na**c>KjcmNpBH{)6xvrn|9c0aEAYa;E_`7J z7wY*R@Pa@35)R2GbX;G{17!?J1%r6+2Gr2@89R9o;!O+_+6Egf57nni+y1l{cgRdKegK*e$Js06{_`FjbR*3&z-y#FW_Rsve zImPP>EO@i=3b{bf2zcmAgRlty8WH;Z;JpKdTA|m&fF^uyVdZ*#ukdlj00dYe84YZ_ zf83D$Auh5*Z+wg`F9J6VJek#rb-4$SX~_Gy)p()=*05*FYF3+X`#Q8+hk) zH5L+S_&Jw zH{c$u!Y%EfSKddrxC^({fJP|WLA%vPG#2CWZFE{K#AsqYQ4k;7%t5vjfoIDvzb%mk zaucveX5sMH9-Bk7Fas+R8@g76LR1j%pI>-d{SX!YtQGRMlR0znJz=E+p{%Drk>Oed z!@|dN{(fGZ$8*BZ&~=0WKoH9{Lo|i29ZWT?`oLEAfXQ# zd{}|jz1xqxAtC#J_j8RqEbDNB>ch~G5}pZJp%dsUPAhBkUh#tN5+@%6- z%#J1yOQn&?r4dgi>39+4BYHfxCtkxZb{PIz1QOP%SCG2;eZ&fr`n;Tv>xUW}LD;sH zbTHS;=WXlxg7d7Qrvq;bgk;&i;`&N?j&_HR`@F{|m5IT7P8OAIChg9xpP+v43p9`R zvAx*xNb6`c4HSNn1Z@iRG#gOqgtUdT7(Kqm;5krOWe)hzJ4d zA!6}8|9nLFa(bc+31K3@uHp$>J*r%%;`l-|8pYgHjvy_=ycAO}0>Ob4c#e9Li>4Jr zZ|Xeq-}>8#63IOy3Qdba34jo2G2b^7>b-$NPNH?o&rR0d+Yi0xAq1TGz;mBJp$K@P zgdcb@VQlOEhiH8EXDDrLqfxFRH=2Q+8evF@U~^-SzXv#?C&)*|3Zt|b8oq`v5xT?Q zsAbgK@qt>@8eFF>xrW!?^EE^9o-%+6 z&msbxfQHYBi(wCuC%QWi(Ej}2;P~l%9Bpnf%rM-Hj3AlIQ4#xiy0(XU$3ugXt~S*t zj2BRtj$@AEN;0Q_Q~az1rLHI5U?CF3Vm(Js1ujrou3HknqY9x{L_O7sJXQsYQZ%Pn z#)E9*l_UYxlUj^J(O3dglX)aFDU*=-UeUM9_q1DGv@#PYeCPL&ojV)2gDOxD9vJ5k z)nfPSA+!7Zz*z95b>?w!pP;f`X(MO0F`G`BQ-J^c$I}dH1hv98ek*Bc~c4P)?gkf%sZ zWUc3W#PjkH-OK~CsaV53OIZA6!O^^ ztu{)*M3Km(5lLkf#?~uE)DI3AUSb+DlCV?jIsPI%x!L1^B}1+poZF^$Z^f^wW+NpcZT3DV~iX271uNd(Lx1Rlj+< zS0YFCH~$RlH*cWG+9NwTiN*N|eEP*hJlrU1vDfsB;H8d;^Rp!hUkp_hUQE+9$#|5n zy>jU+mM)w@ES_2&c;>J4K^)|-lPht5_#0`#`p~ z?{Vqshh(z z_*no@p z8`e23IVWK$I+L6fWB!Raj^-RGBAG;xonBNgv!rv#`h|!YJ9~#%_&a|esfoEh^%7<| z!Yyjy=`3FnruA)d zZShh^iZB*yR6?1EMZ%VNNRR(c(q)$OX}s~>w~-&oVC()(%)a&p3bScs(`0pNiS1TX zY4|b=PKogoi!YFzY@#r=q)aerV$IogN-DIVdX0o{DmKE_O5y zJ3EF{p5I5;v>CE1WGMC-kI(+_e8~O<=XaXNzQLkBoDQz#=s|#q(((Hhl*BkM9!* zL~-H2_(SrY(IMFyq-vw@KY=1(keYI&|KK0|5C6*mGhyN%da&8gV ze*eEiW_;R5KrR}kT@<%hP^QHmY?o-Eam=4RkI~ulM5HmakJp%-iO34fKgm%o_}az$ zSiSidgw>?@3)4hp53v5^F8{qpr4?B#%}{}?V$p@)HZhRspm_clYArRTPMmBBGV@0+$^o>L2ST^Pa<=>?m%b&a#4R&zak6b2u0p+sAE0*kQ>;ARK{T7ixzkhlm?3MY z*wPr=;rkoB__`>^FA&qTu+yms78d4k;iU^GKfQ}yGKR%>ejN+n`W`QiRC>268YeO; z6YADTLUwVudyGUnjq}&Og**l5HV>$jD3dMGSY{rL>JHIdkJcO`5-Olj7(r?8K6*1} zXmS~h&cA{*b4Qfmz##yzI>+eMcG!hX!>jC4QKJL|C59u0S>~)roUpc&LL?DKlDwS7 z??yU@^6Dx>(~*J}0ixn9Hj7A$4_Z`M>tLIIN7$mtqsE@isaM{@{a?P1{d+HA{KCt= z9Q&n-uYjH+HG$kFyqO9n5+)7JC#}B5r2j5ZIGm`w;yQYt|NnS$e~oR|7+$|}7GJR@ zS=+1YmkG+M_AHcm@`ARi{N52J@)vRuT)cXfU9|?De)bXaQxmxG>%WEE+#Dm#mXeQ> zGb+0qXf}wdszf%`29jiRuYT_bjQ2Iv_U;fKU!qbdU<$3W`92f$Q>4%SI!ka0u(6BW z;$_&ykxRH#GtS zTbI4|{ipXB;}6lSwMh_mNnDQO>U+P5`u=^CH@;-m&ZM7UOBVzHJ3qt0Q!01idoyZXKnJpH#d~aj#Gqw$$B00K9k4YiL_OM)Xhvca+ z&t18EeulUl>B$8eK?g-L4`Wx~!1%d~s1ZI^`ErBp17Q++(wAX7+HO^-v<-e8jq1r) zh%u*)#a(RvkzFtwMuhH2DkPI-o04AV40Kol+C{Rt{JKEU?+4n`-( z8Ovk%+2<=H6iIKuctw%QIAH!brl*WEIW7{lNRtUn$QDn2>EbzD`N40JTXJ-mp+#%l zxc@cQ?%mR2P&g*JNHKtkQ_BnyECvtOke@t<{NkH%x-1Gyx6!JwXHP+ucWx2=Ou=T- z_9#ft$uj&jDPanzevF%|cX5C74k?p@)DMY&h@WKmdItW6fBGGM{#N$TyZb(o);6Xm@~lUu@n=83 ziBhAZ461mEct%xv8dUfwL)MJrBF~DxGl_{ zS;WNrG-H1O2YY+kQ_qhvKWsjs$IPLy{B78sBef>i&LMaHU8GybD6W3M#|gFY=HU~( z|ML$pI+Dcn*^BsU;|u)g`J3o&2$Q&jY=JC}Bw-DzCW~at6dTNQ^{g_ZWqKz~$I1N2C#P;TW zBxh%stC}=i_Kb2VZ2k2gPt!Sn#_e{hBaLHuiIh?V|-+0lS6k4<2h3 zJ-N7qI}bLnzHjn~&?I$gqQ=lwcTGQJiIn*mYmgZ>kn&?WoO$Clq$hGX-nv5?WQSZ- zm!V1;T`}@w3m98q+|5m?4UCM$(Msg>WTMG&jGujv=gKfd)MSx5iKZu+526~s$L3zt zMpV19sM;@s6ioBIWfrD~cRt71rPmQaG2Ii9!zJIh!>_22BS*@l z-D=?Rz1wIv+dSWC<~dp`^GK`u5cS<@@_1Qf*aupA=@RzSPq2Dx6*eCyCZ^CMl~ZZg ziR_5Rq+cTWLGXmzB=wVGt>%(gjnU9DIQa5Ij9s{<9Zy4&gb=Rp9Ug)aqcG?1VR&9i zp1=853@Han;57&{_sRGk(mkXvLA0;Xw;_EID&<_70fxo(7?EUtEQ^^JE+R8IhSlqz zsUSNjOemAf5fKP)Tyf^A7=@GdUqf+z)Ya2ve z_u%ANg(qjxIJk>1m^+>_d5?^;+Rr-J+9S`EbTL9W+a9SfAGkPwj-JJ~Z?#v&XJ7sV zfBcglF zeFhs}U1#n{vG(a|Eu-~fgs6%Ni}3xePKTj0jl;D^496=d(CePb8Ud9hErX#hSU{kK zs`*}d2kypQtgam(n@wSY(*EqmineDf^q5i`n&72CoMcj;9m$f=qp*_+#Is3O=t(Mq zRdc&b4{NApH%YfgqGmWjxE?9YVrgQ0h9{v!Y$`;&#*lW>3=w+7F;t4xra`fno>(Af zMe2l!-60~&v~J@!Uc8EYK7kDud)8U$=T}G)mQdbGF*J5?eB8t4S_zXZ4hh4sy~UcP z^Cj|j7iXCBQlxgID|uKfBE_UUKC_I>*t{02y%r&P{Q#-#EN01GM`BT|u|MSP>|plN zi`ai~2Tp<4KzCtO)V$Y zUDBo}EYYG?Np}d^iaIh7*Hg6B@Pvk7VrM84VNXgcmHm$n!$h-QR_3@tdRypmiT}#H zil^{#gaO=+WmpJOuoDY9Z)Fn^1%cL+VY*J$pNfpCa$FLIwcW4KCP2uKUP0F$!3-<< zBn!d((%X2AA<60<@%#?((Zj#QLVf~8!qd-gtm|U5-7QUZ<{oku1??rAKgnRHD-2=&QLSj#wa53Sm_K))-d6Y@Nu=<+9}~U;fEADcn(U2&JjUke`d5s{MOt766D;_C z`PGW=S+0am2uN%b4qi-|4&hWGiU!@fMXyNY5*n7IT8|~8hN9q`9411Cni;3M$0I<5K5##W z5Pe3OTdZ!1h9iR@WR_VS?BDweGcUi5P!|k?E-uXc!BD$QJ;bj|)^Fp8mT-7f!}QW3 zw)cuSu6MK&m07KTE|_Ki;rtmUL}r*sOqkRds*NTs*<(zuAyr5l`bKoE?N$nSf)xLy z@A5*&)dOsQj8*c6M@49GW!=%Mm(V&s!un^Av3QC|?8P^D)(K=upF|l-B7)MS*=3Ee zsJ~1UwvC;wpW`O`B~MFV;L*JpCT8iuNa5N`vpk;`6;j8+KAUM{4ntBIx9>HHCjTG2 z`>iWzR}*-T2x%-PRR1>WJ6|(AW=X|gl@S@{Fj7XW_G`y&LgjJPsvBCPZEb9^+ernB z7sNfKZFC(9qlFBi%lF5aZ1PM2n_quyl%n#pffJNgq_3WS2=gV)7wwhLv`kFQf{gql(emJaE@={T~ZS#9R%6p29D zv#&5|j;ZTw=dixbN}ODfgbQg4qnEO9M;V_P$|RYl#!hQ(VF|3I z7fGYHU0K7*_9Oh&Opu**?PZOj7gF@j(k`&N8&pGv*616q}az-a8$7 zJgU5=I(ByNVKzTW9&1WTPazrwNm)86Nd>1nn3}V2=G;Dh@njtl=CEF^iPL8m2z`%{ zW)z57rjMi?8NJ2x5)9`(B$>OsZRvcnu$1Xyh*9tpJ{U0P6-m9((5r{+c& zOPkm`IM$dc^m|K)M!ubmK`g$&_&buLAZB&YV0&eY))Fx@y*!b_y<-%ZXVMH6f~HcV z^YoBO6?~((#*Sc_kds#5tf2kH$2dIyD#qu}D1wpX-ehCTr4Xg#XHz(l>?t#L+B!tn z5~veJeftAkfAA^({LVdi@j70+y2u1y#%qh?{M@dFpL)&1`fii?B+j-$LJc%Wfz?=h zN#VH4#GhmW-`Ls0Sg*)1T-CAG{N!0}k|ifDu~;OUBgB;o`P7+N?4F-P>4YiYU>l%qP&>5@ZPKqz8JF+oqu$QwVyq<-mFke@lt9FsSgpGxUS1M2cwI4L5n{Ia4U z>80!vV*cBI^B2fRXaue#)F~7_L3XU9*+6SW>3Nwp4h|U(-2@)pYBT(}s1OYighzI zKo{O4^^uBd-J=~v*L)aRetBiLgbKq{&Nf9*il88(=qklTxj>R|L@&f`mDszJ}kymOcNAm$z{1);bMy z5*1P}HmRpPLt;V)(9HOgte{zwk&dhMMJ(giPC* znl7N)+|^mG2^NNth$Lm;!QDgLe7w%@-otd3`GH|Go}R!O*?`0CO>%V0^v0<6)YqRr zAw_hC#bJ`cWrgQcSGvVwc+W_WpH>`WwcnHB@TghNA-UaiN9_~2w5F(X4>6P4s zqLv<$cWL`JW45VF%FH1VDo^4yX)G#c700{xiIC2*(4qzQN<491a4f6+j@07!3?gAc zX$G&U6ndb;o=SS`6n^K2e^0}LD5^(A9uk~1h!78W?hg}PxG@%SG@eeTg=V&=IjKYT z`13EGVwB|Liu36PL1xGpvNQ=goG7BVOsX&LQ0cs zY4@(aw@Ex--Xe!a>(3Sn^qM>?=rk3b=1G#rV%2UXrf99i9(K%B^5V)mK4_X$whG@; zQnV{3EqO~85eX{dzmM0x!s^i@%uFy0C3@K1uW4hc!7!8eWY}RF*IA?7Io!adbL{nx zN_b(_&GXzp<~fhssPkGDm#D<5gWrAUGESdzKSFp)m(8S^t+c=v_*>p*n3kpq8R<6p7$cxv~?s}SQqV#4(VEM6=Y2}1c0%eux zC9F>gB9VJ&tP1$D_lgme>yMrhH!)AWKEJApAlNgi|*M+(6nzc@k)BUKn< zql!?OFj?T`QL#zt{}N`;zo|VH8R;2XHo*62V)P8HAOxe=t}&AK)GI8@^vboS(ZT7q z7MUG-cuEWd$EYx`+`sGU;PuETkn9!+?+JR_dsv)W!26#(p_jIC?d?3~W=Ve>R&lUi z$M3v)3ZLwkuuen#@q;J$USb@lr>01`%rjh)wOFiS`M84hM|UwYHo?**LS#8k)`K7< z;-W)H(8w8CUAoYY6re_-3U9IiJu}`p!DL%UE4&9BOeV z6O6QJUAQCASa_l|Nj%{^qwE_95n#)-N6gVxS5gGVNahLFAE)(~#4GqEv*+I7g`CkE zMOvT&n}tB}$O5#gOweg|Bx6YpSE3*p==S(t?JCG{H;-j$V=1K}!gZ5ct7KT+A0M$n zMbvh%&E(p4**@^Fv2EkYN)^BQ)(Bp^bRKuNACOpO?xC}d5Czq47jcHyJC`J^UEM^D zg6q-%@2>2iUj6{TeVIk#(IM#>qNYlniTwgDTziu>&pO6uFA}-MFg?G>7;4V_5w5ZZ%SK6KyUAko^Aw9G3 zM!caw$SK65KwpV8@`cTsOnu1e-JZ^Cxza(D&K?CBC!9@_gIc)o9ue6^#`dHNSjSiy z=cP9;zk<{pQI>pG#^2>vh)4-&0syFN+b2!+G3yLc#^@byAj@v!f4ck%&UN#6b#7EC zbWdjzm{<>b*rvw|Uv}f}8usZWbSjdO3C!_0ugqpJGc$qi7|)Ba`R#8LCDvuGkA7D< z#u!7@#Ka6Ll@9LR-@@vHdyp~AF3%^*93$7~_`~59_GRo?M4Nr$+`4qsHOu+hZPyH6 zSY}M?naz7F?L1n89VXNi`EHr%VuG$2S@1wz<+Ws%tLfTGwq@eBPOi&Fi|ycVX|BTX*D)>7S0o%s%{_$f`0W`8Wl2;cKp0y#3d&hXT2=)Vfld!g=| zjIGM-qfCL&2(*t*$l4@Nwg2=M8l^pjo3WOS&0-a^Gdup4J1mm*D2Eg#EU)C!;i~ya)~sKWJ_03t`Ms_7cDu}3l_CX zG;#;ctf1p4i`qnENyji8FndIDPqMRapXER&MCcq)xgc8XYg(n6euw6GY%L8*ncT?)yH6FH6H=4KUd zEKOj&+F-u1QQEO_`w4U2Yy=zZgM6}4#ozr7m6O@$`K6I(Yj=m;$Kxs^2qVMp+I@nX zDhf0}^?Wwu5-cQz9hOR7{}aQeLL?nj8?IRZ>zU}%FA=Rly*LbseWKVS`zi5wl^w!Y z{UvLzhA%U68FgHQ#4Un(cnQ;!oA5+zqfs={*m6B}AId0u}q zP^?E2K9%J%jG1l3%!(iN4@vf{L0p1`F4>0SonNqM-6r)@HLI+M+HT)^!iJTNix-k; z6fR@p;&(CjAx*;m@y^@%!JtiYyymH(MWI zlOW;fxJl#$%$?8TUWJUo{aq~1U1m>Y470Nxl<8G9Cj3G!gVp=&$z1ytR{Ug-D`kee z8e(d2W(OsiToF5yJd%jZWIyxrQP(u|VO9?qkke1}0Rb7(jr6}s2aM87wvOuB9d!Mz z`6L#`6g`-=i1B=$ji3VNNzKa~ZG#si^on>*gY`h1K*1(oJn#P3%BEI7c*7jQ{GmCedrnj+L+r{Q)8?Cy9zb<@1R5pe71oK+OW+B+c z*;6^JuhuE#CR(J5#>Tp&n~K=l+~((PZFEV`sNJmb`5m2Ou9Aheb#W4NN~`B5cox4= zSJz|;5o*Uw^pSOwX41&t6w+tvBPS>6HMdC9hA-uaMyhqz6)EC)$3S86MMq_5)&VB? zns`GzEo339*M^y$(%}Ia8KQ6#WP`0>)sj#PPCzXLGl8BDfnBXnl=ao1ORr!>-y_A* zdip69@)^0S0%K?t?%@+$9cyC#VhfpwFbyUwdW5Bggoo499{VW_eS1fE?K|JXhc|EI zJU#lw3#V{z`xiLg5TaBzPGGVxP$115+Z4x0kX6pp&>XwOzDosja~T4WHXb}F;^nbj zhNKn>?5?&M1yW?cn^Z`aA+376jY4`3Rn~SfO^*~fL%PVz*7Cs2FQj6!KF2I6%#$hb z{5Ub_Dnj4qCwXhID-n@|EICjZ%#XyS+A-rTMvSs>ofaw6=Ic+kNigOyGMUp}iO?+K zmQoa@GX;`)`>L3Btw^t$Mlk8*x(KcHbIkGrnVKQdDD{uql>+R5h3pQF?|zBuy_+cX zw%FC=caS zFO5%*88j%Xm`T5Qp@l)VXGlr2%ud#~n2AU!Iij=(YcL);2wx`E4!443q(7TB^+CpF z5gCgG*+_?*T^V*J3hPi1Qe-yP4GB0-E-6hmI6FE;g-w|8BgR>wPi%#~vgpTrk=dld zc#cN|)nnnONnYSBA!zBr4cKfQxO=N;t*>EzlKqvuEI8^YdXq5dC=<=&c5I!y5(x-n zAlETTBPn-_IM^s7J5nQUUdF9Qe}#|levX~PLs~L{LVE-cAJoBiJQH;c>rL6Uf`#N> z6BE-Zw8~9wY{kjLR}MV#F2d`dYK|PHtkw|q!A8lVO2~>?X03*} zS0w7FmgV^f>6V_$J_+GrZfu-w)JYw}79o!@IYv@r=5e>9{T5qyhLgd9V-`>)cKeQ) zBx?+Fqw0mFU;Y_7w|%Wf0TE&%SnE--#zfmMqzX{81z*PuI zQxojnoMz6OAQR!@uRr+$$Gt;j2#LGhI0@IfE~hK)lNlJvusPMkgGV(ior+^(EQNbF z8=6-;Em_y^kcz3{C%?SG&g4Fe#W{>k&gza8ap|}B%<{X@*%|EKxS=x)G8rXpCEX~& zG2vAVy2eu9$rX%DynvY>Ob|u-Jz@-0W>L7pK}8d^p6wzEXUBDMf1EUQQkKGX$a@h2 zwu!b1lcSiqu!NCQWN^DBb@fOj#rHFzGC9kM$=VT8gN&nuvRxV7VREcjuu7|y>H1Oj z&F5bHbzRrk{`!xRUi|ahQ!YkkYHuK9gk3WIx{+gB+nUOJNI;4n{rG&a6 zgG{#&Sm?ZRx2q62lI8p22_Ji&@DvOUAo;G6DhR)#ba;%gPnMKPZ=fyhTF30-APCFO zWH9&ACBA)x7JtB;F-aotkY~*rh54k-ywEJ~@~}_o+BxlBw%8=9F+A;U?~^fRfj7TE z*!e9|B(&~d{+~$heuXh6+hoF4Z?uI5Pg;FoAhTlvt*uB#C+IyXp8TDQWOpMtEo_%! ztgDzWc0ST(n3E_dOYj?S{Wn+q);}YZUdP#G7LTkOGHe~Y#TG_#QCxcA6mH(y z=QR}Z)|n{2=%n$*T15vwWai+QC`y*vwQ5}yWuTDFJyc8VIF2z~CA16>gJl@d1-By8 zh)_?IrGzu7K`IRSsfj6=6~kur`>;~NLCv3H5#Ar83&@Xep;f6VkyfCU93FM`!0D(i zCS(4{X}A$(xE&Tv>>zrPJl1dh7|WNx4H;J`9d2tyUtls!jV&WjO8$^mwY&AlL@iN_ zk!?+l%%E}qPmy*vFGKr>+z_K!}?l43fb0i_rgJM=ns zM%hFYv5LJ267_^gl?fn5ml_qCo>???T7UR)u+eE~?hE}bk}UCM_R%x>J6I=l>oA#3 zFyZT$( znP!jh1eY(rrR=V-y3K>H8QPlYO}>lV-oHk|+GB{cbbv|}66{lHPSMthO1oP%1*Jbg z=-OlyXvK%5+}l%Q%Av)lUPWv3V;;vWhX9kfbTKpTBYf}e-`5!~IsWebA7f`_9l!U^ z-zHO{ z4Y#M8!}(o9-BZluSh1{9FM?6#xd2_+7#_@v1hkSrqd(|L627K$gt<)O8+$dpaAuqq z@91o-tp96}mJsgAqIIm^`4Y=ifX$QWH4iX<;WgYMa=QEJUt)oM=#jY>bs>&!PQ&6b zS(pa9T0$K#1w`}&v?ou+9A|!r%-SCzh6V+X&?e88zYnl*UL9jux)UCMNue-xlR_ai z(#x<;DQG9tsjnk8{}#F%Kc-&xsF0L~y$(an@xwnNIAOhGr;yCkkO)pB5{@l>ht@55 zFM{PO-^bj|4Ln&Z-ke|DP%=AmhjxQ+Uvf|W_s zi%;3Qogy&l8VZNUwAj{_)msUArqnpG)VKnHD1l9R=LR;PJZ7GIfmM7$SBxc-S!BI3 zre{xSw^KrKlx^`0LCy%N{2Z(QCV9Rz6Mbc41LY@A*tKOxk;b62cx(;GZb+$^A#|UT zWjOU~zs1Nv>PgB2+cX3%%kI~UcG!1@b|n;VS-eI}pGSTqO;4yXW+sqgc9XHn4AIDO z@mQBjTMQws$|gSi%O7dA8>Jw$cHnEh77IhI(u)kMIi4lMUc17_!e^NoVOMGTsD>6x zChfBn=*+L6bm@P_@$wH*9se$xiDkNelI*O5BlgfY4tscdWZ_Z0fZo_8_Ca2TJ@YEt z1#A=4H;6qC8I}YJr<5hoz6^7U=dYfMk6oZrlA1pI_T`*m4n zYyl5%TxU;zUKhp22xUhmCNarwr0i;;TOd;68()2`Bf1gxY($LGC`;3D9bH-Ap~&-Y zGjt{VX&4i${3YAgK=zS=5(eAl84dA-X3talc_OC?Cc-sc<2OS3qP|yB>nk3Kz{!n` zjghzK_0w0y4CU zOJA2crG*z!DDGotb%RuOl{`;@jh?EG2E};t2W+2CT|C2Lu*7pUU9m26&7DvG1ik8( zZVV75TAM!qeUgjpb#y8^LL~2Vq{l$vNihiDjamF4k~_uEZnB6yqdCD0eY@Jxl+xLg zMv=|9pC0k|OCiiWTp?6XB0Bk^cKHOx+jSOn4GKLusRXJ^&vfFGI$bX%o0Bn1z&rFL z87q}Njw1vZviz>ZyfMye*KI{8_yYU-veQLexHj92%k}6H5u&*^xwEHV-oR8Yq7;!d zC~C}Exrww2yW4KFif0!$mdBa17Ywl#xP~`K_Q4{QL8A9{(;uFIzh&jptB4iG36>^w zDYf)jCWL&HCKv_2ckeF$P9QxxgNa2mhPih8LsA&`XuWYHN0+hi^6z2vlVAiG&83oXVf29ZC<5X*)Xe@Tom3>C>F zj3Z9zt8!)ALVCnB=@WFBbk9L3_|JZ8?ngXGA9!i(y`V{Kpsn~)h=#M}WQ zMmon#4>qK64J$FK!`pJwUbm)}+9<7}ws#l#Q>8%}A&b)-EJdYR8p7j&E zgZ?ILp`So8c0ZIM4AIPba85a!f-ki^!~kDO!Rf_t4P8g zoxe(CHihj6A7bn4e}(eqb%n&*fs@_qDCCap2P|z-;nZZ}C0H&1?B8qfvm+n&4c;5YuH=;Qm6T)=#y50&^uCdNN+tF&7w=TdGr2# z#I)~IA^>uAiHMU->r_vK#HmZ=Zj?J1x%9Hx@ghK5w&m}SZ2M)HQIa~s5X}sFu)EM#( zH*b;pUe!D#Q<1%%&=#IrT!I&%e3qPSW)YFecWB`={w+6T5+-VH8o)$t7cMZ&9H6!K zSK3~PWT#*_bIT}?0!D+i3F#EstXSs(Y}?$NKz5{%eZaKcO^99F)`11xk%HhlHM*qA zZ8umrGL*GT>twxWNu!k6sjRRzSvB>VgybAi7!|a7>jt`{>4lDu$t(e{DarnPiV#@7 zQ+5sCuhPp|h>tIy*6j~vQLRyi$xFdrUuM%BQzY9bDartz>BgE?Q0UWhrq1XNJ(EkP z*bnHj(^h5sv_SkVaZ~mt*~7{&e?dBhZCjZ}6x&g$=Oy9>DBj8-~2$WAAbKu=AUQIyozi#t+YvX`*Y@phK3SZ%KhZ&7BaGg zLl(*M8>_o(INIE0osxnhY`9M3IIKU?8v42|DRdod(?-W%dP!llYzZ%|3sH=2v1>Vf zSRB$oXux}jE$&0I!OAbWsEJds_gEas0QL4E@~J2$$1*rLs_TSFyH?YXq*M2dy|MHt zW9yjW{}>h1B{a681#OLrUBnZzL_4Ens7^GaE4s{9v1W)uzOz?Z(~H&Dm@n+qJmK+y zAuDAsFX6OWhrHONl7238kd>M?i;2YYwTr&8DD>~ZnyYWTLjrM} z9|3O^kn3-1LEI*DTzbZqB%Tr^ zdq1(8dvw`;P6;L?T^|W~;X5}NZyDTP&$v_M-0LhV&tYcyluo_u@0Kx|jp5?rID`s| z%ar}YhuFOJm|-lby?K{{7@Iz?CnVmYIZIN3Y|2SQRYTfR?E;qzWgh3<(`&@oJbSap5N=tmf3X*bg|1fseU zI&^!(j-p88RjzVzZ8xq9jS>{9bXje(%)(4`szn@984rK{0l$;E=a?+9Y!SBB2NPGW5?Q8{9hYkrr8(m9suat3i63Tz8_s!JJemc$Mq{CSae4ha5BZVJ zU&NzD*VW%ZyjsR=tA*8vE9xvIc91lmY%?fY%|EmLS72?x8f;3pSh+wX7cY4mC1G=iTtusGS2wx^pHbc((RGP zk#RRCciwCnB7nDXpo@Ltp4l&7^Hze!{BJ)PFDBz-$thM|6!glZPR)V509}l zTTotXb*HQ+UViwP7gc2~kR?6VLpu@55K4SKAsbvN!#Lp?>BND}@mh5;>FJwwgw zA|l;sLUxcMlgt{XOWsU&q0lJIIs*yj5ND1FHm(zt0=qQ;P$`1q+Vw-7?pJ_<_BCO*r3X3GH3}jP5`9cIoTTjqt6@R#0W>P-@dvZvVO^ArM(<40Q zv>btffRGjqv_^$IEcOsTcZm%7wC)OPa)`+z5!PO|F7*g%+5x($=K$_$@Okt2^k8=?+6ZqP2F7VI?`K(=ZZBL@|P_b|2ot zlgH~C6)i&DQ8MI7hB1qsMp+aq?Pb~8Lue$a?wf7|kH`QwXO=N{W|>vLY{yROhOC9G zV3TF+QoATR3@Z9yCsx}EWeBb4PmCDB_mF^z@k3cq?^}Mn6Fo&|E}-)U^9i0@AyfJ3EP^{Z&#okBRrEw4f5gPln+lTWz=7zk^Wo-~m=i0X14pEWG$0lBCnc zBV{2|a%3Jk(n80(s}vfk7b~uWqtqla0#zzj@btk3N=M8qluwqldt3y^HikqB>9(fR zq=Q(Sw3t&G>?A(er()*Mu)+5NVROdcBVQC^lp>%;3SQd}**+s_hPtf)W0^qsKc4enCs2n}7Bf=wioO~}n>s%WqQmd(W2Le6SUBcrTQS7P$6?iV(9 z<}4}#Irn4(XIh@Lf`v7fTwC4NHnHRx@e0cyW7Q<>nma=1&Cg_UDC?feJ_WyjpVmLB z{d6A{$OfN2LGfb;_5j@%A zUVTR?a;Zy1;H{c$nO;*SKrSpr=0H}B!AmI;Ds6ns*GpJ9e*uZYlGZ`3@`f4xi6wP+ zBtdkE$Wx-J8x-Uwj~~M?-@i^Sk1Q|A(dp3?M&d%lx79nMva@R{WoUodMWQGBD@XD8 zkTCi5C4Sd=KUBqyhY)p{d?LJFOg&VG+Wnej$OrtHFBidH_rZ{gM`^U#}|Q7EM&_H@`?Opng#7U;4@ z-$~67qE@l;H~$9<*gVpc7cp}7`&3X1dk;TjQ*&2$8A^>zY1eb_36iC>chqpZ`pQ*@ENd zbqAw_dP&^RCqBg@an5?UUXY7A>_(j{zSG2RN{U2Vw-5Ic352wwk< zA7JP4XGC;+m^*y|Q%je1u-hhVc8L6Bn_49yg_D)pvfY~+uW8^|`}|KO1|mPbjFB_% zAu+OKI4_0_QP|%7PqkMfE1p}$9jvWvVRN1AFlmqJtc{TrnFbzH#&UI&9GSutxd?C9 zlba?uIIMQD-HT(Ius1(Gq1Posmo=Xca z=L-AxrTvob7MCW9nVXa~fwcBA`ykaiMhFrnGD%g=?qMA}_wVT4OG{-Jqb(`sM$j$_ z5QymLtWfc`wp=akg9s_Q{ooNk{@G7ynH^j>zr?QP64o9ILAs&^X>MeM&8r1X>`6l6 z!_~*Q{qYlePM3x6C|G5|Aqw=`Vti2+j&ZXtMne^A5E?**kaxXEN@jWy=U#nHdqa}A zwf-Ptl!PufU{i0A3O^e2A#kLx5Ig8L23=m?V~qF>0O)&4cyHp9`DAc^!V~Y&O4$sN z=?$D^g_Ud8WC(oi5zRF3F+@E0MDNXYTq>z@#7bpFaWWOtTBTZRQa7x=rDY&Dt6><3 z=2Ga;GnksNy1J_ab+WNdDxK7rEgNPEi6{_PHWz>tdQxRG{5`&Tow=utMqLImT8h?W zLNpCH-|}xN>JK9S7mOf=9xR;`82#0<{s_PT_J`xj1DX2 zIZ(NOyFh=sPdO&f)Decxa0kyz|733swVUt5+IvLY-(t;DMoqRV@49+X>10&Ljs#&z z&S^1jtAeD_#20inn6i_ZskSuC8a?eE_IzeQ&LfeCD?`v~Hpm*ZO_eNt54qV|JgWP8 zMPWd@gB(`n&72aRXSy$fPO333WzJ;L+pOHUhc{D@EM>L_J(irp5SpXc4;<1 zHn7$6*DY!jDWstKBUaJ(J_XrIg_Oso3XaGGIGwg`=_i88u}>rSFA=!eV)I3o>?!i{ z`zEIFf}$7^T9*;H#o{#BLc{C!{N48)ZN+N)-}X^WQ19rnJ@#^9vPGh!)QW(Iu6`Hm zbB3J?+uqU(apz8B`tnue#>ULGStdy)<xe2BuU9~XG<*HQANdKQO$IsSW$qh>nM8) zOPf7Qr&qkb5g7wh!EndJ#`Cn8~V<*GWCxjXkUy>PqcA$Rc##tEr2 zBa>#Y7@?ayfA3+bHFT*%Op|nZ9P&skS^)KV6iW+*3<0VCqE{vtyI~ zUFghm>HuxJTGrVxckhmv$~;K$;vJ$C+fV$#3R~MONwoVeU=0erpepHmjMsZzm!!$qq7J#SYnp#l$9wPgr7*5LU2XBty`5tHW6&e&!(g&&SJVoWv zZFKiG$e)ozW4AA9OTWX?0SVbQSJ$d`duI3!rl9S523DF-Y;M+UmW|6^05aT{gf%ja z)ck2=X2^j}OzScW*T1>55B^PPR<5l#uz0;GXhfS;qFlrL##B+7{Pn)WmLIYP^ojQ2 zePh)3_z~xs`_%^?Bspd9oDr@Qo@Nc_nt}YDuap3hY4gYrDSjxkd{pE5Ak@!KUDO^aMLawn&09sn~i&H5f|C;GEwZ$$Qu(cQ)U5EXD)md^m& zMu1ko&ciUL7{0-?H)y>Nd5Y~%c!!bJGs*}- zqFlQ#wLri|$hMEDBHF0(haZAu9w^1^ZPMRB)wVIX25%sIbNE1r{%r_KexgF>+Nt@#b7iU@oN*-!4_#2&;wZ`fPH`6i%c zjJNrS4F1L*mJgXRh@E<`cF(`xh~FpI{1UQtD~P+nSN3s8plv@?^j8IkY)GDW{WJ6{ z=pfOm5M8nI0aCOAgYw^F2Uf4ux}|f&mOtoV3P!(M==n+9?weo#Osu}aT74y0!F&A^ zw){aA&o_`@DZ3mg(if!n4RAR0djGmH>@{|953iuY5B&r)WO~WIb-KC+-cnd<@{U>%WbzxYikD@fjs zUuW397X=Eof)la&dBQ;OaAF@=OmO}KLKpt#O@nY27}vA?l#oIK#<-t1+`*R&d(Lof z847&^Q$gU8YP@pdT8UW(_2|hd*P;xqP6n7eI_s*aAmLhpGJ=GxJ01A|rT-PdYktgk zeFaOX)8~C<`!`WG$jZO*rN0xAQH*64!1@MdoiMci-+Fk@?BySduYLUGhqAy(Y+t6K zJ#tK4<$pH9i~BkMeK!bOC%s@Gc&~2(egEt?!%k?*Lf`WO#r9)s5GlN%S!U`C&;N|x ziq?_jZR?%k%=_KGkiEX;`wBsT00+m^-InB6Zi_AhdKd`B_9>daGA#5HwR({X&D?3V zFIXSmde$INT0;gH01@w*LeUFduNQhje6_V@Yl-JzPKe+N7NYApZ}gRF1mxivLJj`$tbyWW)-1T&j#-@@gh_MPJOcoXq5|PtCoD$a?F{mZW;eIj zU%RTv%y#-=wGZN87GDM^FQ8-s^3a6AK>+v9s-J(tI;SNI4AeV+t*9#l9g>av% zZ|9!(kFD$1pBC7IxX!1S5F{jT=(-2r9!3TF#GeZ~<)b0LTGmMre+fZ=l5GDj6GCw~j(=ZY|2f%MN9T1NQ&(s;9;&|0 zO?CX`2tl4wfd`RdVA*}Pqn{uGgZBn+>ubg{QN$Yn1M?Xx5atP)7=^e^`#s=UMGZ27}-hAm`5Ihhf z1O_43P(6cl4AvD6khRqhGeJnP{1B^CFR=Rx8BV2Me-79SrDGoi#$EMXYp=dnb1PlESH zy*|D-lpd~;;B{WR*X!cv5x*W62qX-A{eJui_u)x`zxQwtG2SEk?}WFYug7>3|IKT6 zI~~bpvJ!+ozOye8uEC%4i})P;EAKa#<9h<>b^Fq8wW> z-cCGO_7X0l*y2R|0$irw*BcLlP(Q>?5xkEV&`rX(MBSd=ko`RV|80tW4mTBZ^ZL4> z{7x=>1`Cwv)kM1Z4lJPrUa0ToYxt`!NCz9)>2~#D_?wH&jg-VTE!0Jh28+rM^Z9$d z9@fRzMbG9!6__r*hu7i)V}-^3!}ahpE*`&|g2GK`!qMD9^A-K_ek4iW`lfi#nFkA$;6-wY!Li@V-dQILNH3NU8CUP^mDJs4A9zHOaj(_%h zlw^}uZd3?O=;FJmbri-_2*oXSr`@r8#_P5Yv3?IyxMeL`h%Y z!_V<8R31Jj?>Ex55M6Kldl~Fq z@U<*9Tg@XS->HI1bQtKrlf+D7#yvEbHi^vi#?FlC;>GFW_I05GKUCog0^7jUB+`uX zepJ%Apm={Duj&2v`8<)DI0~>`BXJuRtA^M%ljOiHu$i|c?&)Hv%}&g$(QZhpW%1N1ul4qQQh#xLf-Gucpmpou>P)2s$G@|*BA{`2NtOywy-R9k&G zXIf0%Avw4}h8LxSsd?fmQUHAJ1~%POmu2^(i>VSHsJYUO!{SovAzJvmSq5G^P)lGYGk`Fu z>5L74_->sQJUEcU%f-;>5Q2<5yN=Dv7^?A1MSZ7gbXXbs25Ln&(G7yPkWRnj%!#K9 zq#x3Sj0V=&PZ1bBiD!#6&<+y~XClqH(hv2VSxC{EE`l=~bo2@UaDm~WoP6uWQ?fjj zlX~?Sh_4F(0CQR0laa6>+wH(Ko{OnS%ru3jId-NaRwNXwX6mMiEtFYAyx%il#ZBw+ zmOVT>*QwvP_2Gs)|4AWJ9O1x(ueuTI^Aq8D`nNV>?DZ>ewpjg?>nKUsSJI!G>RzoesOI|cu1QUI=CB|Bc@s5f~mue zGYbEr!A{5erDm+n3y^ho~=O+*EdZvP0T?2xFPhH zTr2wQe$NEOP?xW+K>e)e1l9qb(Cnb0g*3k4vJ+MK4*Dv(GAD$1r0Z_lVv+z~-T~gv zWvPY;0^$6LfU;RLi@Z@@Ea}JkkQTeZJO)k^#O!_wa~ZVpeSBzc^wM-$UcWph6_~Ad zt0^s-GCw2TUPnr$f{avXmm)bnJd!>heyEs{XXZ2V!Go3}FZ&e_G|v-5L-cR73>tSZ z2vl>OHDu(_VW1`_a;DGBS>l3c-%EkBr{MwvMSY#x;?QUhYnF*pixaD004_=3K!o{V zF%!$XR9q69rck~80kX2i=Iv4?eTPK&AxegBlrvMhVN_|uc^b9TH)(W@_li3BzM47u zA4-MB1azwS9zs{M|8~={3kJ)DocMWPuAZKi3v-Y_eAn@DUD}Pd+WQ!SFg#Mi>s{Ua zR>zloxgyPzx=Q@~cu6|FL_T=fv}Z}5?@IwKtwR!c4(7vj;aC0tL+(j_0*(O#c2Or zjFJ!?nL{6*J2l<7-|(&R|CVS>oB~pn`<`T zQ`P4JONPZ6kEDC2x&fC$7<33Pz8 ziR6iV$1m6i{6P?=0aHrF#D+qMI@HX@ro!pMtIrW{00c-usH4Ph{ymHDUYHw}@4m7m z&n^$EKvWN_a(r|o^=4Pv01GYniDJ1d%GxA7H5ERPQM=g?KVyE6CMyI`$rp3-`ZJR< zI-EB=6x+RKGywI@0+@oUxmAIr1~~JjkRG4Qh4h!c`M5YTc&ygMP^Hik_@1%}SqNU> ze5!I|N<+L@0yEX8bn(7nE^{Med@41g-BwS@vMv!HBz(A-m5XzEd4Hv& z^hRpF$Y~`?0x?3vViMscV!=10v8 zny*O=N^?W#6#0F8y#s$lXKl#BS4p6hDs|x)W`6IBm*?fxOOsN_z%k-8wGK1_4?^7E zX8ZxiUV_xeaaVGsAzh?AAn6gz+DR7=eNvMy?llMVlFbHi^tfJ-Rf%jPT3;LyIhf4J z!vllafnzUJ0E1A!w}bcfa7{{TryHs;a)B~Ra`wzrYK)b_XA@F>-b>@J*n**eAcRaY zgKUbPi+POow!qbbS4Ss_AwdcaHN6V~3C*#E>NC_Ks;!L`U4_o%P~Cbxi>MW@`UWA@ zd@(rmoIgs;=@~7bQ7KWP52hdt9M=O$sz8D#Dn)tq@|4V0=ulhI2J|?tH}v5<&9)p? z>+m1g*dUL;M^Z&Bvc0=42el^tePWW$I75smRI0-fpOxXF6ak~>#|nVU1u0^~3NSD2 zexMweYCNUXp-bO6XqrX}pGN7v1+p~b3Xi$Sd@h1rKeQ0R@pOdvo+CXO%g~vp!K6ZR z7rRiqm1Fa%-2Q;ve5rt=E(d84rfQOa*Q9~7t~?;D-% zSWgY2Vv`WX?x7KQbpEpwCHd}4^DU3`fibiO~v<8TK59lsKoZF|lViOKIr# z9E*xyrBYsAI9rjci)HDb97wkg$$>3yK`ZtTYjSU=FRKSVxwpC_>rbA@3A9G38jp51 zhg?WzU#=}jDZf%QUQdtBs$4At=B=2twSq{MHw3#moXr=FbiJ@ zva^FYh*}-Nr_c=3chTokXri{Q2dQ{fqQo4(AA18zN`p!YA(pT&7F;VoD7GfzVjFI5 zq8n%F1|l#6SBh5|z8MC=Wyd0%a6-(~ac%e=lrGmg|$>Kf)E zgjz066y=qxGcsBV4zUdEB4i))ASVzWtBQc`CUL_ z-mH>(aXg^cHMSWTSbKP-E<9tM`3#gkK39mKbhKD7^9bL?m}Yf#Ro2$lARFB%|e$cU1&lc2`FlgXT%S_q~{=`*<Xfn#UYh4f3V#L}en5ws5-&=_d|$<66mzmfF`W;Ov7#k-z(JRo;K^6WQI_G1HVUs4wWZI%;ZsN!)MI z8;xDQ-SPNFt$Sv|Jm2LzT#OaCtY4ZPRhGHOh#ZTEuO~FmsO=80L3t?;4@+sNERB;B z+1=ifqk{ukTskG=q~p)Nz~AXHr=g=^%UxYL?OrTf&vhR9{)LfsJVtfCB>Fek;?Y^WxM z5IBQHd-HNu&Mi$M%C5@^NW$XK5D-&SKG;s=um0wja_80;&@$NVd=b(L2i|QN<Ehtmv~)l)Cbsz6F7{X4oj2PnRfDVluQ8w&(6Y zNx>0`NBmg?%(s-YvkG``nA%-60lN4d%SES%XOkDI%Bt=t8bD7P-d=|^#)G9D(4XGa= z%dML?<;RTp6!U#dPj25mK?waQPBy&z{<*9nVp-L`MFug znmZJx<~+875YJGl33sgKPMHI&qi&>{wL~|u7h4`DRF>MTk*^GSr0Hl)g=lWWWxYK2 zu=-kJoKT{WGI6O|PXnP8k!7*_uU(l!YPO`Ba$G%-K452IbV?eHmfQuz{lSmkm(M@` zRQ-l=J}uP@PdCI@cuNFAq|%RFOyrD`=kg4a=4VpCKTs5yIJNs0)FuwP2Winl`b~)m zl6}qyME$#G^;cwTwKNFN-R#v>bMl1}v}P0=Q}BOIe)#ut^Rv$(eFax$6e(0p zd73UHhEz(F(%23~IdJR5e&AMAtK#HKd5qMrc*a4g$@LP)MpytBC6-A{yr)HRPZM;W zOHum{O_>JpH-ot%d`+n|qG+pHJC-l*-II&w&gup*m}Sr!B^F#Jkhn`X)V^*ulGW!$_pz!&gof z<@v?D^dV8Tqo(H1%VU#xUru)S59DJ6XaDw3|6JApH3RZc$m@qHv{oU*$h^(ULsvZa zltQpYGi@=4?l}tE6+At4?ul)LZJ{>^%&h*(?mck`PPJfwoh^&5rBYh{^CgWlvc%9H zw6}F~EO7xTg+f6;+d%qY1t8$e>C=NdA&-_g1jseZ23eOMa;&qM|BhYGMYEAk06b>~ z_=goGTC5XtheK68Pt_}n7{&7DkxE|Am18PW$a`{SaahhwW)b~1z}{A6s4@o52zg+eus0>XR_n2H?ZD_DkZU??v2M;+v80;a|@ zRy^1^X~_Kt4`g|1$tpY0;E8<~c3kyhky>fm?DmgH=IZuv|dOh0TlbNMOg|Qn?HgWSUS*hma z$3OcGHe}Ue96!+nPFl3rLGr27kL9Ueq{hxiN2Kl29h{M+1%Jsxjb{_szC65kU%5Pr407QAK=I~4#| znLsKb-r*vT<|)-MZ)6kTAiI&#A{xt3E2Bh)JRt=L3te59l05coez&1CI%-k?= z3v#|D)jGX+kl;(8@ln@uPGtF7;K|kj045M*>N6-g=?}1YsKs_|i}quS0g14fZwi4x zQwG2wd5vlS1#Ob5utXx|jl2NarCg5oI5I3?V6Em|iGCry4+3n4J zIXOO&qjnY{MdDgC=QKwhwpbZaAxBsZCZH!@LZ;Ljt3&3C3^3_)D-dG&Qc(uqOfBKU zXAz5Nc{?F@6b&jTeWxY-HDCl-;LZ&lhV=1G4QPwPI;iW?R8d~OFrsR^c7I*-A9qldBwI(@2?kxm09wV##C7tbQdtKjk-yw8^_7e=Le z+?G9jO}UiQq?zZ+dU}0JHc?AF&7b(LmcaQFF({qSSvl)djWKO{T3QfiSW=&#b0=0n$IG!l#H#b+6W#v~>(G)s(q7T;ZyJ9$TfuC3cY-)O1 z=CING+v`%sjW1oeB)QqE((s3{uxDgysw^8Y$9s_Mp^*^{=33CExur950lutTugY-^ zd3!L+$R5kX^@fxSK!-t7zWD4mH26p+$49gW#P>3?d)Sh%J~ty5Pgk5z^9H6&;i{`S zqxLd)u59q2297`nTAUFVxVl7}t3%)y(7D%+>kvwd=oRFUda)^!kOllAN6_K@ySU*m8uOU1nAE-FYaG2<6P5*tv`gZ+I)H>L4uspf{H0cg!8 zB--{GIJ6^twtigKg&L}i%ii9e<|Y*W!uA&+4NIp_$>={w4M5#9N=0xpYJk7J#Mg*F^!oaRKKQ9EfUZw&J%V{Sc2T~llV_CH?bwExoQcLG zLuG9I#fvgJIx6chSq1o$Oc9b>J(AkNo^A|diK*!+I2o|Z?XD_*oB17R)5PS2)Hc`U z{--yjTCZsk$e4#eKRkgH!a9skO-Z2$GX;(AbP}yfx%%uiX~OnA**XLO$f*Vw3K20DM4lWG-$aH5&NTzN#A1P4kB1saY2{O>-I ze&a~4z6eu@IH3e!vUqkGFuSV(@ci7U{KGr<<;`zgk=I{ZR&zI2DdRT_1ADAz)Y98D0EHsm5nD6ZZA*%KtA?p|Q+M0{5OwU8m5gZ{}C*q>rX52z&+hvc1 z<9GI&iQKrkB6TE&i1QU~sZ*yzdrD=CbC|hYMw!?i*kPJ2#v8jkTUON`$69$Z!m5*z zf|mTWvFQn-+NN^%vyd{@`tFQcGzd zV@YBc-FkuatDi%2O+YM+_Oa08_gIFFvd}u);(1`|a ziEGdtI7q|bL&Ign4r3ZmjEq(Q7^-sj<_&F|bpNztguYB^L`S|NH*{DW(RuA%s1-dw*L#ySc6lNBGRvnQYb@n4&b5 z0p-VYSigx@|E5i>`1$Vc9?bQ$lA0QBxb!*MblYepR>ai`X(yU%H?tbEJDczq`9oPi zpvZEc79PCOY^!5pg&^(y*l1ZQkoXgP`13~%#1?BBKjlJCzl#sh>pQdMIi^ocI_UH+ zJaYwFb|UvaTY_E+?MY1l z1?2X_w&ZF>#03{&0(WI|eFKYQ6iM1Kn2?8EV_nwydq( zhkqKA(WwbogOcoSZOA7d+?QhpnVzM*$zyr0Gg(~J;W;{}<3(04oQSJ>H0q`Xntyt7 z(&cMHR{&zse3-E|58t^1ZDtKJnifwBKSD1*Dl6L!DdNpN1c&@p$dfgOw8FHMhbywb zu>q6TP;>Ih${rlrq0${;=sB|miR#+TB`)>qX{ir34K}m&;Bz?ep3IF-N_})3nvuv! z?}kK2b*W`)a^y8-6vV>9!Ub8F9Fh_a(xE&1soSZuJjJ*z#1OUsM0h~HGqot;A~xycly z+U(2De${GXL(7j7kr7=eq37AnDXhz86rqsD$(KeY-#d{5#16I2V`+E?Fi+F6{kSdf zzx_z=-?%T=UVcIHVOcVboYY%DMc9Di_$(atIo!jZWQM0?VR2F9L}Y)fDsyMgDJp6p zb|M2i0-?HcWZP}PPqIFjH!o59M2>f>k{^2(_k>OFY(YTgWcBU} zq`M;*&dnnYQII!YJ+F*_B(94+wM>aMKBb&h))i^1yA%&9K@~(b$EHMhihVAfra~s&+)y_Mucu&-@HOL-eI}++H|n zXAIta^ZHv_WI&uuCk(WrK$bhJJBn!fq@{k~6GX!|ZmsA>WbuJrGkFXT`E?>m64wzPRk`{3{XtE1+LQ0Q9vn+{ zdJ1yVyv_jN_{KmN!C+8JShb=-qcdUZ{Jm6|T}QAB9F?qO{@jD3X#scdGy*wlS{pT~ z6wVyrMT&5=$L(0Q4~{jbtVEu;RJ)^uo+i>oYjRl}Ffuf(rtj$BP#(gm?maq@#rarX z{Km4}{bW-<`q=|nDlf^ErPF}HTXOFfeAkI>FuSuDwJ$Et%Q$$f8Xn{j(zm*@BA>ng zfhMaWENBt_FXNo??)JU}SlnEFMdnV=$ig`UkEJPS$4gQeTY|C-L+ghid?)Zxo7kkR z1PGq}UQLE8Bk(`V^4hn)DGkI=qevBe^YwF%<&Ks0Rl3Lx-m#Vj`V}{f$CWx+*wWW( zphT>9g`-Ba?3MjCu28V6vk0tSKzm(WdRR+rHN)rHR+%i?K1N)U?8(y7EFfZ6)1+O^ zsEKTD9T@6zIRpNR9F+Go#cEX~BS30&bjS5$O`rv?_uPZI*a4{c%6C1v`r3J^?>&^; zANA$>Kf10#<$Wa3{4C5H(9**4vQ*gI+5@l%dH@%J?BV+&1c@W0_O;%ONiaM}$LgSG zXMx(v4LN`18M$!vf;7M$1X%cX62D;es)~@4KqnjZax8}j@ZOn08+*@E%kK; z2`(i|NT@AoiNz|6Z>Gi&AB=j4SH`3VI{mflWAeqX)@AESLla6z)eTTNO_{tFOZhl2 zxfnh!0fNcFS(htP8S2Y%%ToYBE{hGW+9kzG9Iyy;vkLJr^Y~e41v-) z1Z$D^PGslSeHocvlB2a10EbCMKRqmNh^_`QqM&291hLoTkucS@6i4@s-CJ8?UGe zje~s5!d_<~#ThK}_y6(p^5ou4xqYiI%Zp%Cu`qLB5~P4c5|G)}Mo%)Mf$YQF6{4~_ zOHx2v2VFUR?kw^;%d&XxJeX`m=itFEUA`!}CbR)aaJuBnxeKS{nXg=uXP&zxGiNV> zbj;z}eHld{H!^!cgU=#NY7u|;;g@z1fbJpAId$!MY1W}`(Bwj{FZtm`>9%Te`{rHw zqyO{ga%z4=E?-^(ak=Z7a}y;M1Lop=Ytl6{WY&TU%!*4oahgRNB4mw23WeR6t;97f z(Qj*aKxhrU+O=>LchxoFU?KYTUz+@1D{UoD|?h(+L4XiQ5A!#~*L1NnV?WKu`y=?Jc{u-vAmuK?+_11NpBaPc=(!nJlJ15f4a*w29Co73 zIgjqG=;l^NGO{=~F8#yDl3NVq?&m9bUtYfZyUTL#SMSLBL0(Q@y#lJ_NcMMkfy(;w z;62#>3i36>U6`zSNZPEdKR|5LXv3EbDR&lQ5jwbb3y!miXuhO1V1WwHsdE>={)Te0 zenT#Q-?#b z{EPqXw{R`cJqxq)#v7OAgHP6_dU!k-F-0>PYGTZDeTy<^ywa{<))GWrt6t&y#+Jy^ z!tc;p$T=KB6M)<#YEQG#(nT$3Pl~6B{u~yx@8{*Hn^h^=h7{NFzO-*XN&i1FM{jLt z1{nz)TF|H>$e|&al}i_3b}p2#s1Iayy)WPY{nw?D*_Ds?p(SU|A)DF4hScH6BYERH zi!uoq+1>WF%;(YiWBL4(&t!TDsbdHVdm>lAxDDF=(4oIX3n&Pk>yZ58y$z{8dRGn} z-jK#I*yyn-nL2kxCPB$C&%)sZ3=WCo+lL3T_Sqd|Rp({;{A+5m$)HEA133ZH+c@0Q zjadNY|LV&ZKr_MbjFsj0fB(0Ts>r%|Vb<@NSS5s-p|s4F8%7Nx@(MHynbjp?t6^Fw zq2m}eZ64{^N9*s0S$yu=<+oT>?)e$ZC3kEVBqQ}|6FKmq5YNz+UwyJFhlf=o%tF`H z7I_v>4MJ0G3zf^`d0EK8?v5csUg%5Z^nt9r|48l~fdX0R%I44RO1*Ph{-;0uZ6)b; z0V00-!^g<^=j6=Uvg9BHjqO0oe7N{qPd1TCIL0P(_zswC1bZ#~Y_=>~wnUV~BDRS< zI4k%{)+D)GsdwobB zdf|k;{de!mr+2pH)KnH4pVtNa@n8SORnJGVd(d=s!d7A0ceToz!bq5%%`5oH=4>n> zt&z2sxJiPkfV=V}Ho*FUWp1@>wSz1l;}uQBaNt>hfDhTQCU$VG+L6oCd1E)l=4EM> zVeHB=8Ov`^a;A9LwfWM*iR1o5)9G>P`=+TN0Z+RLM4VLH*z9Dm>jLxjvx)M`gEk;|)gWHWg!qwyW&BPcm&k{+<+ ze_~@v^k3R0og}HxS6f;lD0s3fEnJ{>^hAdDOA_rN@H+%xDB|x>^L*5lDu?U9F1Kzz zlI%yjGQL=n>92epnZGSreeVmIn)Bp-%a>-ghx`Rh3j)~e(5OsLfac$;N&|vaLg2`B zOdt39+_ekxz5nzzAhJu6H10v_eJu8{)EV{%4(Fw>e4)G z@$SdgB%9{m(-w#*ve8wM%b#cqcfae#ZNcpE%UGN+QW;lm(bQ*T1!wHZ^T5`w0+FPX zR#U%{az2``cEJ(z(R;i5dIw}sIY6helgRNJ;to(3-NvEBFfAFdw+F|8tOIhk{`Qe9 zwn1wgJd*myb=e-BlgqDsOKyDlo*aOhC(WK69+7Tt3_h+e+Xw>f3h_W#z^ zG5MYEUz6FnoKzqF1R8NDV`txx$@7yE12VTjO7@VT3xT@GHt#-O0ogevIrx*za8{}t ztFrazft-5zyRvcnW2v0EBBjY$xs-){L{4Y@@v2Ntjv}jgtfjO}ZA6Kiz)D*I-x(yH zi&K1EKek@?baXEKMkaBZAQsoKmC?1ZGo{UmOsoQJcY0d38l1my_AMr`xW_qHO~~Kc zM$92%2yR$p_vqm&?0QY@qtgu{!kpiaK!)MAqqjAI>o8V0tIm3o$nAqYF z9I~M!B9p&I?X&cKf>O33+;^?hmYZ%A$JCZck1atklWgLi)^g~@YjvW9@P zJVN(J_he-GdGKrdQiV`a>+?WrtdTyoJO^_+FDrK+%ex;zfKEYpk!@XDKQSuaPbc|> z187T2Lg?LL2$5I^7-N(IKn!EAHu6$5e7&CK4L)ENPZ46IE1J@Em*kB~*=Y^^>3$U*g3ABL*m>9K`^8;ti>GO|1- za{1YFGJkqr&R#f;EM!~u9^6KZfzP+M^;vfj-&B^bNOfmZMsQy=N#o~Uz`Y}>clZcY z{*p4cYqvg^_00nWwd2Smm8E*rkox{6;Ic?%dO=PtP9o?Xl3&3GYWH~Jxe63FnL-m+ zmaQBIn_WZRDMe#6SEQW8l?X@avG7i@%@2oC2(lNcZ?|u38qFzR1J?1ci0350|QDj7IHE*oR^DG>xE`lE@Pp~ zL9G6X^b%q-8Oz7Ah(Pcen7$_1;zy9co^NT`A?<_5h7fK-D(6P?U<5Mq()F*)?DUuv z{JQ4r%j0uEI*6!iJ4pNP%g`+7`f?6*$~bN*meSNY;atetlP^HsKbEnJUp3fTWYg0e z0@_9Rn?q>RkW2!(J-qu+e)yA5Rw99%Nj(&H0N6wsHlJHsLS3N1RTQ#DKJri}Y3;U1An{_4w8jVt(f!DdnBQc3rnf6dtZDSpX?%4>W`~sw}2~!ej@};G{ed$gb`4}ilVq3HCqIp%d#0|of zbjW}OaYx|Z!J^14Oc<+UIzTCH{O*A+pF`kw7OBsdxd5Y)mV;93#;~BXg-Fdr8S%|7 z;@O(c^XnmFNyZhBl1Qmh$E$sX+&$cD?cfAv5#Iy)UDM!Tc-viYW*ts9LfW^BxQZJE ze+93O$bKD~z=8&t!s4jX>LarY03-Lc3AYQ#eE#Ah%sA4|$nOtNo&sG1#Ms!C7q3mq zPk!>L&Op{c&kqJ!M_m;+s*oC#FBDY^hN1ebf4+2TM4i0FC^m-6EwH%(Vy?i=#bI`n zqsHkw_ID2v-HvPSgH?)*>V4gio;sou(#A@|cqvtHw$g?z*>D4z6`~1dB}c|5q}sA7 zcg8;K5DP#~#!%^9WES%$uE>F@0c`MC!7x664Pdh;U|eLUA4-jZp~L!$3OQQcL*{Y} z>ECZWuf6&#TJ#H(a(L^fvVH3VId}d0Q0N-=;jDD#2YosU? zk5vX*WHJ0mDXZvg5^TWI)Ud4Xo($&ev&DnCCLK@Z6hMIk^C?|7c#M-4M#j%bb7vnC zKL+)SwO=uDRTxv#Gg29?0JGOr#nS0KHYN#+6B>VBvD3r=+vrllJkp9NfJDbCW?T0M7xK8|GO#Qil(XWd$_L_`->{ z*i9~%Wp86s=B`1j@hrt+MSlF3eZ&Zyl~rRJ;MnHIKwIHKs|@^N>%tBs7)-a-K|6lhO3rjBV62v19#r+@1T8w& zF@?s{1X}0n$v7EWcSwNNihEjQZ)VK1fi}$0u>(rSCgEZ&I5+mfvN@>Eij=8&N&eCA z$Vb<{D#wVj8Ra6Kg7*b73T=V;l@s`^4z-lkGO)vKrcZTht8F@~R9HCipZzz#C-X>5 zjZ97G6zv9B>8XoXaVt$JPA_YKSD3jdUU?4Yt0YHAqHV%yvw?OKnb7J!a`NR#8Jd_= za&T%HnMOcsQX@Cs|Bcov&?J9!b4%O)s2@>mMIr{P+<u}yfRnaKjxu;)+< z2weWeDg^DfBu}Yl22vzCvv`d$#`7<|D9^o&eEig;7QHdDZ)21GJXewTlOjWM8Op}; zxE07o*S_0hiyZPcM=(uwq(r-{N!E%Hkc5EnuU&ryns$ujl{GunHtxafm1OSRX)OzF z9c}_a)ucFeMxpEB=Dy~3P7Z52^*e)&JO9!vviSU0W$w~dHQ_TzJv02?-DJUeL#OS1 z_{js%L49rSvkJ+;%#|z1_FO90Moo#P4@m8VumZ$kT{q;88ZixRnLyT*YuoMjUEm!L z!U=W!EW>3a+3VUsWRj6hKvhm!V4zqA;?c!->NPVruTy|p9PdYn>)XhUoS$g%f}?&6 zNib+aDzprzceu9)NLtp4{e4L1`rrJG9PI5ttvj+ZF(J`OAVc_`Jov2bJQj6UGN58~PGfrmk@?G3LK+3Q z=SV6`Gg7Os>j38=IP>wzOE8C^ShnwgZ5~nhK7`EVhwpqW?|^`vo1a8XgcvImI8b9< z$CPLrk`TF>_mNI3VgPyS^ch)wcwZJKMgUy$%1BdN7`qf9Jm=;sI-a+7(ov)qyW(*Y zqUqp-(8^kT?Od%vimLku>ZDoR%}o)fMS6A#c5wz-JhtNLNbSk|mUk-M6kh5-J5y%{viKJAp90VRAcl>3|RO%SbiM;67IGNoizEp1pQPd{~Fo?Z=w?urmN6UC2ax zS!~#vo!KHf!>cenB%=_r4}SRzdFkwkjzrO}XVUd9=pHU&W9EkC_S%u0wAzXQjrsRA z#jIm^-~86~w^+i%(NQO?)8){yp^6-BuS;cO(y5-CPVHF`xc+2K%YL*kP_&y)+X9rW zbrUIUwqj2=uMKliJ876Lb;EgT&^C^j<$T9u&a7{7B6kTi{i+T<;Doy>9AqKOiW81W z7ac?XwU{`$9jdU3vM9CvZHby-8+tYHUi-3f^R}9c%rFAV%A|slb{F>^6k(nx zWb*VCu)d=@{j`C+$|3s}!Gnc`A-VC(w}Hfpa`w_idF73-%f$=Ra_{aMtcj~)VTS>y z39@=phexwd#?zKVcBJvy4-k}cPNt2_^|U}ea3!zw(*+0vn{*G4TaHik2b1-PVuS0~ zufIiXd|azqGbAO7$6|DvnpPbi8L{XI}$BM{Uurt{^QnViF;n9%UpBG$JTO zo|@Vqb}UCvn{TWQ?d-)%5QL^eVh&2+kbo9U7OOGKg}lx#S(=%a^`kmAA(XQVlX7+{ zmiK@89yDoGI@KMhdslw>laJ)y=Z|E#!1&|@Y2#JR7FLi(c<}3A$oTSU8JU@7VX(|1 z$Dhr>M1wwI-spIHO>$$)h*y^6=C6JZ7PuiLY}~_@75sfyUV7zOFbRp=zPoFSr@kf7 z6CJF+*fNe81jo<9Z+`ya`!YA=slbu_AV9Fn%B&k0LC}*&j2222XsjDq=@S3P;F3jo z!K<%*^(~sP12DzhWmYB9e-uV1Aw|17YDp=9z=qrCur^5f-p-CCnB43y+XN=?ZOD!u zNR!xrw`t(~%2-7M$qp8g$Zi-uV0V8XCUO|*RcjxhX3Y%2X+tf_YzXxY>D3Xubf9_H ziYKyh|A90-WJ#lAq#WA1Frxqv%@$kMKw=`uEd#vJsh98!O_<>b8#+ESjtu4kII|k) zmsLdk&@lMAusET?+vfdSa_7z-7O5-csag5>#;W}2=lA8?-@FEnEs>8tTgPT()NI93 zPfJgA>a2E@`ADi=kO`Rf&wuj^nMKg0q$Z#^Q@rBN@M7~4O&R?yLxduH;?{m$?AQ|< zD5nPyFdt7WI)MCa0{dCb71;#pPxB;?^ytLb`6qOXS+g zB881cwozKx9d-x}Scddz1qh_|gj|qcQ0V-4b4%f(+GlLU)cmY$t?bDb(z_9&x`Ub> z%Ekf78aCyr7j>`##Y&*<<0JEDWduB0d1P2RN4v6oc3PG$UesYf+$e1t2fcFPjqkw! zmZaZ8Qi_2lM;BHu%jS)DV77L_gPoS3G$W7heTHW}k~7aeFE?)7lMlZ*lK=d-U&5wt zS+*7Cg{>mJc2nm)@)~^|iw@rcxV?1ltbF|5Z)A47$bJ2*r@JR2rc24}Q% z=CqBypgnaZE@@yDyE0EEb4U;lR}geok2I0P_6ZV~NTJ9Cv?mA2Ie{Q_@Oub>7ipe; zY;%S^kcu=7v2PP5?zYDjBn)FSCJ_rvA=L{ksNKpJUV0vpbXNM!J*jWqkpk|0bnYxn zCD?#?N7^up)k6S{;VBS>J1S(w=`)(xdieQ=K;;>kK7CdWtGGTk@qhh;-;vi}UXqQ? zW4XJsh36Pj^G#aHcgHvxgP4^i#7cZ^XZ3;PL*I>b6j%J7CbnWV-{j?NN|*`l+4)g~ z4gP?Y*Y4nS-~fFEC!G>|H}C)@*gZPF`oWgc=H+r|+&|0$ON~w=c;l#A&S~l30rS3r zVWV9J!=Ipi$RBL)x^Wj)a&da;l-lKtk9_@3Pb`LIK^~JxZAf6C^~jwrhwX53MWoq0 z5`-Ub)#Y2uSkN3zX9qFGs+@V@HK}esl*z>lNI=ENr<_B4)kA>zA+#z4-?c0gXD@&Q z+Xv5Amt92Ln;ZBO>EGSGV?~~0OXs9GhM*7DU~(}JD*;~@<#ew8d!OtgRInZs29~0g zE1sgw%H)ikzj6(J?jK|dsE#qA`pq!b?gXw1>t(d^UPFhz`4^83wpkU#moLxDJGVBa z2{6O~2f;Vr{Ki}2O7scGSVvpMLN6?yl0CpH~el!^(=bk=tB_n^k)uvJ~VXA7Bf*~wC>#uw^ zQR1elXvN_Q0=;dSMSehiiaSJr0o0ib=XJL4*5(HCA$TuMn5zZj84Z2UQl5Gs4Bk&@ z+-zF!q@Kh;R7VHsCWtRjj>}YKTG|gb5Je+D4oxK*Z0a!{896^o8_f2&S(v6Jd35vF zGIwSkxr<5BG-v0IxAa+)Yfc^-7U_L!P z{bFN%Th_M^Wo>N_u$(9hz~|Ts5J^8}(=oN03J<_6oL83OFaFIR%WS2f6{2>!tF>lx z!I@Aa+~;?cVU4Io8pN}!IBvvJFTP5 zJBaid<+BH#l_5k?=}5j8UVKsZ5uJBIv$r`z#c@Fy-{w#D++^k4I7;Tf{Sqd6-91y ziwh>rxlt@c9hAztNhKDh7l1z6d!Y5g=PsW|P?^Y`wPU$+cLxg>0zkxa^x-4vA|4qX zEh{`HO+$&+4dKuN7i*A892%RFmtK8U-u}r?qzE$_2I-L?7CtbR(a*&3Afe@HsvQAy z-kMVBgxPS#=VeO%(n2JkJUn2W^3Auxz*3SrTB_60u}&;Bh)S z-O~wjk!}(j`nKuptdTU zHxW|p@DQe|DEA+2$&Y`9ocod=PcJo4cNK((vK@Wa@ zRKD@O@5z%#59Qv+@5tmxPM?X4d&0m{i?9Pp57x};aZ?%P`zv5i!N?&bE$XB5}xQv<*Aizyl8h|5M`a46UAP4S-{vn$pP> zgwTC=vZ-sav7%=_j&Gx3RhnD{q0Z+`=WfB=oIigCoK{t)Cx_+AwI%uWXB#@8j4hZ% z5K~j5I+*9mGfVItlX{@d;`v3~*NFJ6Jb|g&+OEszfYdwt9qrj9?7jtvo5iyCB6kK1t0q}f;JLZ0@GRw|Q2^9vvfM~V_U$GC{-HTjrpqmM(lepcX zFBZSLMt(-OnUrOXbO_IQWkSLpa_!Pql5}>msC2}|bJJK*V(wv`vz75%I%7pCpfHiW z?Jc?U=^bo-RxVzgm&sGhT6eIrvMs|vWvw_Xhb><|yR{~-ymDDiEzQ9n?#N&M)jQbi zF&Q5<_^ktOU@3A4Zu3BzhE6@r!F$+{=U#k8#>PkG-~I8w0u`UPR0hwPQEDkt&C=Ac z`!9&>s4Irp+zirAOlM~TgTGo-!GaJ5`2T=tM-GO4gZXs0&xAF?48KRh=*7{6`p{ZWsIUHV=Fw(=%ySV9VnGdZJC%D zla2i&P3y9zcalBgIwJS!dGQP|hhckPcB#lwqC1KkoaC|VhfqGTemjk&KK)838`F=YuKQ(XJ+L7<0JUZ7JN#};3(F&I8;`@ zqD{6$A(@g~e*PL&L)`WiQJ|AAX=6z8!v_A2{b{$(%5k*3g>z>M04Xv@;Jr zh$JWNKTT7CL(T9|N@5adGxM11Y6B{CQ6`YC{Q6hV%LgCdm+k$wVt=v(90jE(0(q`z zn!#JfPH@OV^EcN|WNo#k&R0uDNyb7L3MEVV_I0>3u8lb6>MO6x888?>_~Sp8A+HV2 z%GWX~olnf}tH4ZH?3z$@+`8CkDf&~oh@qj9wl6XuF1Rx=Pw>Kx2RmTU+q#|1zi{|N z@XhOQycN0AaWbx-f|NlAff{L-xehmgUXZN0t{p1t&(dqZ!b4(0LP=OP6NgqZA<`r6CO(44BQJ~_79 zVjvhj&Bu|a%qt|Z9SERhqZyYEVXalvbv7P3{9;+>4+pMon)Fdn8j)A8e_Ln5{Q1B6 z6B+i~Qp$RRfpVOu;(h73Lf%{7%?YE1a2U4lPSg%`-j|K&r9-cGV|nk^6WN2QX4t?r z%V@tn?(_Pa-+YTV$q&Z*(0v{K!4I;+j}0y4d#0zS^o$X{&IhjGMs?DIPO^3D!^_xUYdyU} z&1P4}=xQwFs@qwz6lM`!yR*O&cYc@-X7+4RDOkF}dJdQADSzJPQG`e@Uw!2@xpd`< z{PahEExT)X<Foz_EWZ>}E5 z)?Q5&fX9EZ5IhqY!i!u%N@xwdfvH>9j_F{>D*qfE8wW{vDD|Ub#0TJ=kZ?L&d7vaC z+b4LYm7aPMyVm2xjRH}B(bwYX1d;Rn!mJMOe1bG@0{}p^27;7zr@f^oPJ8Ld^Tc(B zB~Ad{5NI2i71;@KJo#I-ikqC(NM0*7-FNGJ``84IPJ*>-+UOa&)2yv1NHc@%5GHL> zK_2DhuYXMkzWv!B|4WfpO{Ru&gZTgq4%;2Z8*aWbAu!M)`&4YeP*&H&#^CxoFo^e; z)dSHy`TWs=>{U;6y|X$@$R9v%9af?Ai)Wf*g~@jG1o@rVon%@W9R_sV*BvCKK7sTw za|6Sp6LPo<-!fd$_#y)bRl|eu25sI~Wc?aW`l*^c^NJhOJl>ZFk2dTy)X1ug(*e$2 z8op?n*$uml%~YvP&IImMR?z}G&v9^RTfem$dN%D98|8;)F4F#y^p_o;hAbtA;oyCo zvwRx#`z$h*A0j8Re($afXTc_bCD6@fZM8esIGb_f+x7fkn{KCz8{2VCtU=&(z_c!m z$2wJ8J$VH9-E12pZifWvxpRuZJYU>Vhb{w2sb%4VHNda{&mGtj^&xhwHoQ zXyYV3D8Lp!9UH54Wf|YKM~500X%1UUd-CEtX-_NHt;{yjhqZz%o!MbW0J>u}cu!sZ zJF=e>({lOQt9lmKy*qd0H-G;VDZ@n0A@@(v!Bz(Dh0cKVtXoQ_aJWGZX`y1=v!kAD z(p}Hey0}6S@RpnLc)Mm1etNpMn8VlVQ3qx+?ifR@-u&9@ufCO@abthBQBg8k;`)>87dXv z>|*VI@q%>XY3gfip?%kgp(`E zBB-*q9Ofs(;OPW!t*!Gc*wnO$+H;8qCl{pS#_2E#b%)9$+LuE9<^&uO z;c%&(#{=f1UOSL>v!gXscJ4@I6)Rd@3CZzIy-8*3=p@DsK`alpJ92FK!GL}9bn~=Fv z3oyxJQa`TAof|h~cm1&p0pc!HU=6YvJ0nJHV|#9jot|c@2Q^!PHmRt-!hErTa=x8( zAu515^~W`!!rLqB8pGH?4$n;sSAEfENhIA&H|^V{(-nPX+%WvE4s+qrPkGh)m?vNJ zbWYxE5NH?DN$ps?`FWi!e2>%d;IP=U!s-k?OpJtD;?AuPEIUU!hE*wjovvV}=Ae$; zd#fzNL81i+<3ovj>)B~Au=Db8vkJ&~B=ttu+V>=O74E(kEa;4TR{m-6TCCGq7y?X&Y3S>5QU zAm5!F%N#qWeCGor8~KZaNm&(1pR%%1)xkosJK{ao^MVsM+um|l98jdD%=ZUFsWpW5 z&5eXSN-wKNr;64w`5OG$0bYjZ!F`p7af4l{9XF6}ZEDYb3@s|)_4;uY4>W5>iHjZi zq2u|eH1tzm?7Xl)7$;7);3jezU%N0O2?EkG$Ulxe@Ag`9?ewV3R9IZmlOrrZy%ozr zjdfqK&W=dlS?}x1q_p0({d@-UhRYLwH0+WD0EY zEC6Ihq$U>=JN261nAKBDd&XmVHiSUY8~Ht~9fR8@Hs#iXJ!CUm4*fkn(okGZUIN!P z;>9iwdwRl={##9)qoj0WljStorzrYksXJg(bpJU?baj20A)E~RO>K46KZ1s6Oq(a!p2J?OJiAS z^f)xZSOt!!W$y{+hA|E}uG_E!vYsr~;9TMyV=ZuJxnf{L26$XKoICloz;_*MeQ{+y zhJI|`y>WAyz(9o-Dt5FN+JaGcF0zFUJ)QWyx?7XYgA={C!2xeB&I-~xIOhv3t&x1` zEvZ?H)MSetZWCHoj1gtV4Z(K~Uk`YrnmUDbYI0NqS992&j<_m>u>crh zqXHSvbHi9?EHY69$(Zd)Dd@>?20>%Q2GE|-doj=b- zV{HH#aDA_5hb|M5(F&<=qhEs%-C8@qrW|W>PF&@^c#b&mtO+Pxci*k8g$vGyxS-b3 z1Lk9V&L`oFV9l3n@1C2Sz?mT&&Fbg`9vVj9!u}LivoJOpMTE~1qQm_Iea&~MNU@VM zGa50wBW%-?L78#0`rAa-4_jJxquEKqa|p)Cab36_?3*Ffq>0eN41OnR9u_1dq62O8 zHIk4St99l*8e$6ulQB*jO*L&gXw|7cDr4U`8;wK&YPMP_10Q<=;{f@tK+9JUrk7Ka?{?b(q{y7TVX!N|ociJQRSAfpCIWSOB& zHy<8p(@>tr)iTKz1j?jRia6gzrOQRmdY|~RLcypB7Xqu<6{F5n&Wj`f8PtYW^v2Kj zBb&HQ;UJYB>g=sP0=g~$hHWgjP%ArQJL4r2+D5Qir`NZVUXDvyJ7~%$_jbUM8IzrI zbzTbP#dRKdPiJZx)#492f@3itkRJCTuDe(T2SnV@#hDfbgJH_q+84O9Su`3qcnK~H z)Jv<~w3FCC@)Z!Puok(aN7&ljk+efeCyY9VHW4fO)=^CEBnIC0%2pE#o^wHzuWT(V zKuAOmgYu^2Y856=MWW_$43oAaFsl+<+h1Z5%}^reHkk2G0mv(lzvuOk(Y_Y$>FB_| z(KRE*jO9f7k(*fO>p?vk-|Ro3aGvaQDW{bwkC6L#uz6&M+c?vdp1M6CS-%`-1?k9i zJEl=LLMufB=iJT2rQ>n&->1PVue^L3FJHHuLohg9n;N3rjax{i%GpqghdKs-GXm44 z11kf@Gcow017%yec_}5YN2=>MM1!u88z{};Whtx7Urjht_6H7^3|)0N1E1T4n=OD% zps*YRU}(K0EjOK927+t{OM3&~sYzAem$WZFJw#NG^mW$4K!vY7n5GL- z9~8?!=g0pKu&s{+7hw`X+5Nex6G{q(x-sRFoua@T3ZXQyco|6{mI7q~k68gj=*VD^ ze#6K?lOQ|hHda5w)2+#vYO27U>-hQOW37r$7e%YqJ3SqxF@(T^BiTcDR39Nbzmw3M z3~jEEQ#7T{msGv72$mvz#V^&Pnj5vp!v#u8-?KL`i@4!vZ%3=>wHHGV zX|ZO19nbGrWK~-?I9V$|G8s2G#>~Y;$v2SEHDAPe`y6P^d`dqJ99a?4?iksaSgmeH z=Ss?el1V`Wt8OUmiK_|Fg>yqW4S+;0YBy9wYoVJ1Z~^-uch{?c{w?Xp>DiJg3!YBg zkO8G*+LIn2EiMLe{zRVMn>dq~xKoMLZTS9U&+opuzt0h-_=SzBzWeTbfAs2Wudd?F zr}3^C@eI4`LBo#VBZ6VMDIbQlw!=dsMycRJwQAj_w&MNT_m|i~$^4m~cpx?qK#`I6 zbh4;U+jB6o(T-$hqNKSIQWTNn&N!)oDOAxxGd6UYh%7yEw6D z5?*@LprlM!JOBh@C(!-^itw*nt=4~k|Ni4`zT^J`C%kqY0!o)-00000NkvXXu0mjf DyjXb7 diff --git a/feature/onboarding/src/main/res/drawable/food_img_1.png b/feature/onboarding/src/main/res/drawable/food_img_1.png deleted file mode 100644 index fe04b1436cbb59cb0787550af8d45c1005c2ec2a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 25618 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 diff --git a/feature/onboarding/src/main/res/drawable/food_img_2.png b/feature/onboarding/src/main/res/drawable/food_img_2.png deleted file mode 100644 index 87b9684630bfef78643fc2cfa6143546bf141a45..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 23571 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 diff --git a/feature/onboarding/src/main/res/drawable/food_img_4.png b/feature/onboarding/src/main/res/drawable/food_img_4.png deleted file mode 100644 index 73896143216a1edced50fb330842a8fd9dd28559..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 25036 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 diff --git a/feature/onboarding/src/main/res/drawable/ic_1.xml b/feature/onboarding/src/main/res/drawable/ic_1.xml deleted file mode 100644 index 42dc5a978..000000000 --- a/feature/onboarding/src/main/res/drawable/ic_1.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - diff --git a/feature/onboarding/src/main/res/drawable/ic_2.xml b/feature/onboarding/src/main/res/drawable/ic_2.xml deleted file mode 100644 index 0999fb038..000000000 --- a/feature/onboarding/src/main/res/drawable/ic_2.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - diff --git a/feature/onboarding/src/main/res/drawable/ic_3.xml b/feature/onboarding/src/main/res/drawable/ic_3.xml deleted file mode 100644 index c92830d4d..000000000 --- a/feature/onboarding/src/main/res/drawable/ic_3.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - diff --git a/feature/onboarding/src/main/res/drawable/ic_4.xml b/feature/onboarding/src/main/res/drawable/ic_4.xml deleted file mode 100644 index 3e4c96bd7..000000000 --- a/feature/onboarding/src/main/res/drawable/ic_4.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - diff --git a/feature/onboarding/src/main/res/drawable/place_img_1.png b/feature/onboarding/src/main/res/drawable/place_img_1.png deleted file mode 100644 index 9c9f74e95a37aae4a2743a83b8cc44d73e0b3c85..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 86951 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 RxYYmv002ovPDHLkV1kD%PWJ!+ diff --git a/feature/onboarding/src/main/res/drawable/place_img_3.png b/feature/onboarding/src/main/res/drawable/place_img_3.png deleted file mode 100644 index 298ebdf21d1cd3352c13e36d4a792f6148d6bca1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 89937 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 M07*qoM6N<$f@{NykpKVy diff --git a/feature/onboarding/src/main/res/drawable/place_img_4.png b/feature/onboarding/src/main/res/drawable/place_img_4.png deleted file mode 100644 index 49c1899dc16532ba0c9b1ae85dd5350f4f269ee4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 93566 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 BtLgv% diff --git a/feature/onboarding/src/main/res/drawable/placetype_img_1.png b/feature/onboarding/src/main/res/drawable/placetype_img_1.png deleted file mode 100644 index 71952018914e5fb2efdd48a5aeea483c9dcd2562..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 51558 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 diff --git a/feature/onboarding/src/main/res/drawable/placetype_img_2.png b/feature/onboarding/src/main/res/drawable/placetype_img_2.png deleted file mode 100644 index 7ddaa35f36d55d7eda173f97ed43562f76b2aeab..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 55278 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 Mdu+v1Vs@e->JXHfuSNQa&=LTpb*S@kGsHfc*%D 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