From d74b255822dbc5da65c60af72855b327f7a00102 Mon Sep 17 00:00:00 2001 From: Ray Jang Date: Tue, 16 Jan 2024 23:35:35 +0900 Subject: [PATCH] Initial commit Initial commit --- .github/workflows/readme.yml | 44 ------------------- README.md | 9 +--- README_TEMPLATE.md | 37 ---------------- app/build.gradle.kts | 8 ++-- app/src/debug/AndroidManifest.xml | 4 +- .../android/BookkeepingDebugApplication.kt} | 4 +- app/src/main/AndroidManifest.xml | 4 +- .../android/BookkeepingApplication.kt} | 4 +- app/src/main/res/values/strings.xml | 4 +- common/build.gradle.kts | 2 +- .../android}/common/BooleanUtil.kt | 4 +- .../bookkeeping/android}/common/BundleUtil.kt | 4 +- .../bookkeeping/android}/common/NumberUtil.kt | 2 +- .../bookkeeping/android}/common/StringUtil.kt | 4 +- data/build.gradle.kts | 2 +- .../data/remote/network/di/KtorDebugModule.kt | 2 +- .../android/data/di/RepositoryModule.kt | 27 ++++++++++++ .../remote/local/SharedPreferencesManager.kt | 6 +-- .../data/remote/local/di/LocalModule.kt | 4 +- .../android/data/remote/mapper/DataMapper.kt | 5 +++ .../remote/network/api/AuthenticationApi.kt | 14 +++--- .../remote/network/api/BookkeepingApi.kt} | 16 +++---- .../data/remote/network/di/ApiModule.kt | 14 +++--- .../network/di/KtorDebugLinkingModule.kt | 2 +- .../data/remote/network/di/KtorModule.kt | 4 +- .../network/di/NetworkEnvironmentModule.kt | 10 ++--- .../network/environment/BaseUrlProvider.kt | 4 +- .../network/environment/ErrorMessageMapper.kt | 6 +-- .../model/authentication/GetAccessTokenReq.kt | 2 +- .../model/authentication/GetAccessTokenRes.kt | 2 +- .../remote/network/model/error/ErrorRes.kt | 2 +- .../model/sample/SampleInformationRes.kt | 14 +++--- .../data/remote/network/util/NetworkUtil.kt | 14 +++--- .../MockAuthenticationRepository.kt | 6 +-- .../RealAuthenticationRepository.kt | 8 ++-- .../bookkeeping/MockBookkeepingRepository.kt | 15 +++++++ .../bookkeeping/RealBookkeepingRepository.kt | 23 ++++++++++ .../ray/template/data/di/RepositoryModule.kt | 27 ------------ .../template/data/remote/mapper/DataMapper.kt | 5 --- .../repository/sample/MockSampleRepository.kt | 15 ------- .../repository/sample/RealSampleRepository.kt | 23 ---------- domain/build.gradle.kts | 2 +- .../bookkeeping/BookkeepingInformation.kt | 6 +++ .../model/error/BadRequestServerException.kt | 2 +- .../model/error/InternalServerException.kt | 2 +- .../error/InvalidStandardResponseException.kt | 2 +- .../domain/model/error/ServerException.kt | 2 +- .../model/error/UndefinedKeyException.kt | 2 +- .../repository/AuthenticationRepository.kt | 2 +- .../repository/BookkeepingRepository.kt | 11 +++++ .../GetBookkeepingInformationUseCase.kt | 17 +++++++ .../domain/model/sample/SampleInformation.kt | 6 --- .../domain/repository/SampleRepository.kt | 11 ----- .../sample/GetSampleInformationUseCase.kt | 17 ------- presentation/build.gradle.kts | 2 +- presentation/src/main/AndroidManifest.xml | 4 +- .../android}/presentation/common/Constants.kt | 2 +- .../presentation/common/base/BaseActivity.kt | 4 +- .../common/base/BaseBottomSheet.kt | 4 +- .../common/base/BaseDialogFragment.kt | 4 +- .../presentation/common/base/BaseFragment.kt | 4 +- .../presentation/common/base/BaseViewModel.kt | 8 ++-- .../presentation/common/base/ErrorEvent.kt | 5 +++ .../common/util/RecyclerViewUtil.kt | 2 +- .../presentation/common/util/TextViewUtil.kt | 2 +- .../presentation/common/util/ViewUtil.kt | 2 +- .../common/util/coroutine/CoroutineUtil.kt | 2 +- .../common/util/coroutine/event/EventFlow.kt | 2 +- .../util/coroutine/event/EventFlowSlot.kt | 2 +- .../util/coroutine/event/MutableEventFlow.kt | 2 +- .../BookkeepingInformationModel.kt | 15 +++++++ .../presentation/ui/home/HomeFragment.kt | 8 ++-- .../presentation/ui/home/HomeState.kt | 2 +- .../presentation/ui/home/HomeViewEvent.kt | 2 +- .../presentation/ui/home/HomeViewModel.kt | 10 ++--- .../presentation/ui/main/MainActivity.kt | 6 +-- .../presentation/ui/main/MainViewModel.kt | 4 +- .../presentation/common/base/ErrorEvent.kt | 5 --- .../model/SampleInformationModel.kt | 15 ------- .../src/main/res/layout/activity_main.xml | 2 +- .../src/main/res/layout/fragment_home.xml | 2 +- .../src/main/res/navigation/nav_main.xml | 2 +- presentation/src/main/res/values/theme.xml | 6 +-- settings.gradle.kts | 2 +- 84 files changed, 267 insertions(+), 353 deletions(-) delete mode 100644 .github/workflows/readme.yml delete mode 100644 README_TEMPLATE.md rename app/src/debug/kotlin/{com/ray/template/TemplateDebugApplication.kt => ac/dnd/bookkeeping/android/BookkeepingDebugApplication.kt} (57%) rename app/src/main/kotlin/{com/ray/template/TemplateApplication.kt => ac/dnd/bookkeeping/android/BookkeepingApplication.kt} (51%) rename common/src/main/kotlin/{com/ray/template => ac/dnd/bookkeeping/android}/common/BooleanUtil.kt (73%) rename common/src/main/kotlin/{com/ray/template => ac/dnd/bookkeeping/android}/common/BundleUtil.kt (97%) rename common/src/main/kotlin/{com/ray/template => ac/dnd/bookkeeping/android}/common/NumberUtil.kt (96%) rename common/src/main/kotlin/{com/ray/template => ac/dnd/bookkeeping/android}/common/StringUtil.kt (58%) rename data/src/debug/kotlin/{com/ray/template => ac/dnd/bookkeeping/android}/data/remote/network/di/KtorDebugModule.kt (90%) create mode 100644 data/src/main/kotlin/ac/dnd/bookkeeping/android/data/di/RepositoryModule.kt rename data/src/main/kotlin/{com/ray/template => ac/dnd/bookkeeping/android}/data/remote/local/SharedPreferencesManager.kt (93%) rename data/src/main/kotlin/{com/ray/template => ac/dnd/bookkeeping/android}/data/remote/local/di/LocalModule.kt (79%) create mode 100644 data/src/main/kotlin/ac/dnd/bookkeeping/android/data/remote/mapper/DataMapper.kt rename data/src/main/kotlin/{com/ray/template => ac/dnd/bookkeeping/android}/data/remote/network/api/AuthenticationApi.kt (56%) rename data/src/main/kotlin/{com/ray/template/data/remote/network/api/SampleApi.kt => ac/dnd/bookkeeping/android/data/remote/network/api/BookkeepingApi.kt} (55%) rename data/src/main/kotlin/{com/ray/template => ac/dnd/bookkeeping/android}/data/remote/network/di/ApiModule.kt (56%) rename data/src/main/kotlin/{com/ray/template => ac/dnd/bookkeeping/android}/data/remote/network/di/KtorDebugLinkingModule.kt (88%) rename data/src/main/kotlin/{com/ray/template => ac/dnd/bookkeeping/android}/data/remote/network/di/KtorModule.kt (96%) rename data/src/main/kotlin/{com/ray/template => ac/dnd/bookkeeping/android}/data/remote/network/di/NetworkEnvironmentModule.kt (65%) rename data/src/main/kotlin/{com/ray/template => ac/dnd/bookkeeping/android}/data/remote/network/environment/BaseUrlProvider.kt (77%) rename data/src/main/kotlin/{com/ray/template => ac/dnd/bookkeeping/android}/data/remote/network/environment/ErrorMessageMapper.kt (76%) rename data/src/main/kotlin/{com/ray/template => ac/dnd/bookkeeping/android}/data/remote/network/model/authentication/GetAccessTokenReq.kt (71%) rename data/src/main/kotlin/{com/ray/template => ac/dnd/bookkeeping/android}/data/remote/network/model/authentication/GetAccessTokenRes.kt (71%) rename data/src/main/kotlin/{com/ray/template => ac/dnd/bookkeeping/android}/data/remote/network/model/error/ErrorRes.kt (76%) rename data/src/main/kotlin/{com/ray/template => ac/dnd/bookkeeping/android}/data/remote/network/model/sample/SampleInformationRes.kt (64%) rename data/src/main/kotlin/{com/ray/template => ac/dnd/bookkeeping/android}/data/remote/network/util/NetworkUtil.kt (76%) rename data/src/main/kotlin/{com/ray/template => ac/dnd/bookkeeping/android}/data/repository/authentication/MockAuthenticationRepository.kt (83%) rename data/src/main/kotlin/{com/ray/template => ac/dnd/bookkeeping/android}/data/repository/authentication/RealAuthenticationRepository.kt (77%) create mode 100644 data/src/main/kotlin/ac/dnd/bookkeeping/android/data/repository/bookkeeping/MockBookkeepingRepository.kt create mode 100644 data/src/main/kotlin/ac/dnd/bookkeeping/android/data/repository/bookkeeping/RealBookkeepingRepository.kt delete mode 100644 data/src/main/kotlin/com/ray/template/data/di/RepositoryModule.kt delete mode 100644 data/src/main/kotlin/com/ray/template/data/remote/mapper/DataMapper.kt delete mode 100644 data/src/main/kotlin/com/ray/template/data/repository/sample/MockSampleRepository.kt delete mode 100644 data/src/main/kotlin/com/ray/template/data/repository/sample/RealSampleRepository.kt create mode 100644 domain/src/main/kotlin/ac/dnd/bookkeeping/android/domain/model/bookkeeping/BookkeepingInformation.kt rename domain/src/main/kotlin/{com/ray/template => ac/dnd/bookkeeping/android}/domain/model/error/BadRequestServerException.kt (70%) rename domain/src/main/kotlin/{com/ray/template => ac/dnd/bookkeeping/android}/domain/model/error/InternalServerException.kt (70%) rename domain/src/main/kotlin/{com/ray/template => ac/dnd/bookkeeping/android}/domain/model/error/InvalidStandardResponseException.kt (64%) rename domain/src/main/kotlin/{com/ray/template => ac/dnd/bookkeeping/android}/domain/model/error/ServerException.kt (67%) rename domain/src/main/kotlin/{com/ray/template => ac/dnd/bookkeeping/android}/domain/model/error/UndefinedKeyException.kt (61%) rename domain/src/main/kotlin/{com/ray/template => ac/dnd/bookkeeping/android}/domain/repository/AuthenticationRepository.kt (77%) create mode 100644 domain/src/main/kotlin/ac/dnd/bookkeeping/android/domain/repository/BookkeepingRepository.kt create mode 100644 domain/src/main/kotlin/ac/dnd/bookkeeping/android/domain/usecase/sample/GetBookkeepingInformationUseCase.kt delete mode 100644 domain/src/main/kotlin/com/ray/template/domain/model/sample/SampleInformation.kt delete mode 100644 domain/src/main/kotlin/com/ray/template/domain/repository/SampleRepository.kt delete mode 100644 domain/src/main/kotlin/com/ray/template/domain/usecase/sample/GetSampleInformationUseCase.kt rename presentation/src/main/kotlin/{com/ray/template => ac/dnd/bookkeeping/android}/presentation/common/Constants.kt (58%) rename presentation/src/main/kotlin/{com/ray/template => ac/dnd/bookkeeping/android}/presentation/common/base/BaseActivity.kt (96%) rename presentation/src/main/kotlin/{com/ray/template => ac/dnd/bookkeeping/android}/presentation/common/base/BaseBottomSheet.kt (96%) rename presentation/src/main/kotlin/{com/ray/template => ac/dnd/bookkeeping/android}/presentation/common/base/BaseDialogFragment.kt (97%) rename presentation/src/main/kotlin/{com/ray/template => ac/dnd/bookkeeping/android}/presentation/common/base/BaseFragment.kt (96%) rename presentation/src/main/kotlin/{com/ray/template => ac/dnd/bookkeeping/android}/presentation/common/base/BaseViewModel.kt (77%) create mode 100644 presentation/src/main/kotlin/ac/dnd/bookkeeping/android/presentation/common/base/ErrorEvent.kt rename presentation/src/main/kotlin/{com/ray/template => ac/dnd/bookkeeping/android}/presentation/common/util/RecyclerViewUtil.kt (83%) rename presentation/src/main/kotlin/{com/ray/template => ac/dnd/bookkeeping/android}/presentation/common/util/TextViewUtil.kt (93%) rename presentation/src/main/kotlin/{com/ray/template => ac/dnd/bookkeeping/android}/presentation/common/util/ViewUtil.kt (95%) rename presentation/src/main/kotlin/{com/ray/template => ac/dnd/bookkeeping/android}/presentation/common/util/coroutine/CoroutineUtil.kt (87%) rename presentation/src/main/kotlin/{com/ray/template => ac/dnd/bookkeeping/android}/presentation/common/util/coroutine/event/EventFlow.kt (87%) rename presentation/src/main/kotlin/{com/ray/template => ac/dnd/bookkeeping/android}/presentation/common/util/coroutine/event/EventFlowSlot.kt (83%) rename presentation/src/main/kotlin/{com/ray/template => ac/dnd/bookkeeping/android}/presentation/common/util/coroutine/event/MutableEventFlow.kt (91%) create mode 100644 presentation/src/main/kotlin/ac/dnd/bookkeeping/android/presentation/model/bookkeeping/BookkeepingInformationModel.kt rename presentation/src/main/kotlin/{com/ray/template => ac/dnd/bookkeeping/android}/presentation/ui/home/HomeFragment.kt (72%) rename presentation/src/main/kotlin/{com/ray/template => ac/dnd/bookkeeping/android}/presentation/ui/home/HomeState.kt (52%) rename presentation/src/main/kotlin/{com/ray/template => ac/dnd/bookkeeping/android}/presentation/ui/home/HomeViewEvent.kt (56%) rename presentation/src/main/kotlin/{com/ray/template => ac/dnd/bookkeeping/android}/presentation/ui/home/HomeViewModel.kt (63%) rename presentation/src/main/kotlin/{com/ray/template => ac/dnd/bookkeeping/android}/presentation/ui/main/MainActivity.kt (65%) rename presentation/src/main/kotlin/{com/ray/template => ac/dnd/bookkeeping/android}/presentation/ui/main/MainViewModel.kt (54%) delete mode 100644 presentation/src/main/kotlin/com/ray/template/presentation/common/base/ErrorEvent.kt delete mode 100644 presentation/src/main/kotlin/com/ray/template/presentation/model/SampleInformationModel.kt diff --git a/.github/workflows/readme.yml b/.github/workflows/readme.yml deleted file mode 100644 index 5fe6e7c3..00000000 --- a/.github/workflows/readme.yml +++ /dev/null @@ -1,44 +0,0 @@ -name: Update README - -on: - push: - branches: [ "main" ] - -jobs: - update-readme: - runs-on: ubuntu-latest - - steps: - - name: Checkout - uses: actions/checkout@v3 - - - name: Get versions - id: versions - run: | - echo "GRADLE_VERSION=$(grep distributionUrl gradle/wrapper/gradle-wrapper.properties | sed -E 's/.*\/gradle-([0-9]+\.[0-9]+(\.[0-9]+)?)-bin.*/\1/;s/.*-([0-9]+\.[0-9]+\.[0-9]+)\.zip/\1/')" >> $GITHUB_ENV - echo "KOTLIN_VERSION=$(grep 'kotlin = ' gradle/libs.versions.toml | grep -oP 'kotlin = "\K[^"]+')" >> $GITHUB_ENV - echo "PLUGIN_GRADLE_VERSION=$(grep 'plugin-gradle = ' gradle/libs.versions.toml | grep -oP 'plugin-gradle = "\K[^"]+')" >> $GITHUB_ENV - shell: bash - - - name: Update README - run: | - cat README_TEMPLATE.md | envsubst > README.md - - - name: Commit changes - run: | - git config user.name "${{ github.actor }}" - git config user.email "${{ github.actor }}@users.noreply.github.com" - - if [[ -n "$(git diff --exit-code README.md)" ]]; then - git add README.md - git commit -m "Update README with latest versions [skip ci]" - else - echo "No changes in README.md. Skipping commit." - exit 0 - fi - - - name: Push changes - uses: ad-m/github-push-action@v0.8.0 - with: - branch: main - github_token: ${{ secrets.GITHUB_TOKEN }} diff --git a/README.md b/README.md index 144e9e2b..52682367 100644 --- a/README.md +++ b/README.md @@ -1,11 +1,6 @@ -# Android-Template +# 장부 관리 앱 -[![Android CI](https://github.com/ajou4095/template-android/actions/workflows/android.yml/badge.svg?branch=main)](https://github.com/ajou4095/template-android/actions/workflows/android.yml) - -## Description - -Android 개발 시 사용하는 template repository 입니다. -복사 후 template 단어를 전체 검색해, 프로젝트 명으로 변경해주세요. (대소문자 주의해서 폴더까지 변경 부탁드립니다.) +[![Android CI](https://github.com/dnd-side-project/dnd-10th-8-android/actions/workflows/android.yml/badge.svg?branch=main)](https://github.com/dnd-side-project/dnd-10th-8-android/actions/workflows/android.yml) ### Build diff --git a/README_TEMPLATE.md b/README_TEMPLATE.md deleted file mode 100644 index eb5cbca0..00000000 --- a/README_TEMPLATE.md +++ /dev/null @@ -1,37 +0,0 @@ -# Android-Template - -[![Android CI](https://github.com/ajou4095/template-android/actions/workflows/android.yml/badge.svg?branch=main)](https://github.com/ajou4095/template-android/actions/workflows/android.yml) - -## Description - -Android 개발 시 사용하는 template repository 입니다. -복사 후 template 단어를 전체 검색해, 프로젝트 명으로 변경해주세요. (대소문자 주의해서 폴더까지 변경 부탁드립니다.) - -### Build - -- Gradle ${GRADLE_VERSION} -- AGP ${PLUGIN_GRADLE_VERSION} -- Kotlin ${KOTLIN_VERSION} -- JDK 17 -- Kotlin DSL -- Version Catalog - -### Library - -- KotlinX - - Coroutines - - Serialization - - DateTime -- AndroidX - - Room - - Paging - - NavigationUI -- Dagger Hilt -- Ktor -- Glide -- Lottie -- Debug & Log - - OkHttp3 Logging Interceptor (App Inspection) - - Leak Canary 2 - - Timber - - Sentry diff --git a/app/build.gradle.kts b/app/build.gradle.kts index cc7f2f9e..c03b66cd 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -10,11 +10,11 @@ plugins { } android { - namespace = "com.ray.template" + namespace = "ac.dnd.bookkeeping.android" compileSdk = libs.versions.sdk.compile.get().toInt() defaultConfig { - applicationId = "com.ray.template" + applicationId = "ac.dnd.bookkeeping.android" minSdk = libs.versions.sdk.min.get().toInt() targetSdk = libs.versions.sdk.target.get().toInt() versionCode = libs.versions.app.versioncode.get().toInt() @@ -62,10 +62,10 @@ sentry { debug = false // The slug of the Sentry organization to use for uploading proguard mappings/source contexts. - org = "ray-sample" + org = "dnd108-72" // The slug of the Sentry project to use for uploading proguard mappings/source contexts. - projectName = "ray-sample-android" + projectName = "android" // The authentication token to use for uploading proguard mappings/source contexts. // WARNING: Do not expose this token in your build.gradle files, but rather set an environment diff --git a/app/src/debug/AndroidManifest.xml b/app/src/debug/AndroidManifest.xml index 5fa56353..282c38b0 100644 --- a/app/src/debug/AndroidManifest.xml +++ b/app/src/debug/AndroidManifest.xml @@ -3,9 +3,9 @@ xmlns:tools="http://schemas.android.com/tools"> - \ No newline at end of file + diff --git a/app/src/debug/kotlin/com/ray/template/TemplateDebugApplication.kt b/app/src/debug/kotlin/ac/dnd/bookkeeping/android/BookkeepingDebugApplication.kt similarity index 57% rename from app/src/debug/kotlin/com/ray/template/TemplateDebugApplication.kt rename to app/src/debug/kotlin/ac/dnd/bookkeeping/android/BookkeepingDebugApplication.kt index 3a92f0eb..0c01bd26 100644 --- a/app/src/debug/kotlin/com/ray/template/TemplateDebugApplication.kt +++ b/app/src/debug/kotlin/ac/dnd/bookkeeping/android/BookkeepingDebugApplication.kt @@ -1,8 +1,8 @@ -package com.ray.template +package ac.dnd.bookkeeping.android import timber.log.Timber -class TemplateDebugApplication : TemplateApplication() { +class BookkeepingDebugApplication : BookkeepingApplication() { override fun onCreate() { super.onCreate() Timber.plant(Timber.DebugTree()) diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 10d69de6..313b2e38 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -5,12 +5,12 @@ + android:theme="@style/Bookkeeping"> diff --git a/app/src/main/kotlin/com/ray/template/TemplateApplication.kt b/app/src/main/kotlin/ac/dnd/bookkeeping/android/BookkeepingApplication.kt similarity index 51% rename from app/src/main/kotlin/com/ray/template/TemplateApplication.kt rename to app/src/main/kotlin/ac/dnd/bookkeeping/android/BookkeepingApplication.kt index c4d9262b..eac52453 100644 --- a/app/src/main/kotlin/com/ray/template/TemplateApplication.kt +++ b/app/src/main/kotlin/ac/dnd/bookkeeping/android/BookkeepingApplication.kt @@ -1,7 +1,7 @@ -package com.ray.template +package ac.dnd.bookkeeping.android import android.app.Application import dagger.hilt.android.HiltAndroidApp @HiltAndroidApp -open class TemplateApplication : Application() \ No newline at end of file +open class BookkeepingApplication : Application() diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 556543c1..2d26097d 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -1,4 +1,4 @@ - template - \ No newline at end of file + 장부 관리 앱 + diff --git a/common/build.gradle.kts b/common/build.gradle.kts index e2f3ff1f..093075b1 100644 --- a/common/build.gradle.kts +++ b/common/build.gradle.kts @@ -5,7 +5,7 @@ plugins { } android { - namespace = "com.ray.template.common" + namespace = "ac.dnd.bookkeeping.android.common" compileSdk = libs.versions.sdk.compile.get().toInt() defaultConfig { diff --git a/common/src/main/kotlin/com/ray/template/common/BooleanUtil.kt b/common/src/main/kotlin/ac/dnd/bookkeeping/android/common/BooleanUtil.kt similarity index 73% rename from common/src/main/kotlin/com/ray/template/common/BooleanUtil.kt rename to common/src/main/kotlin/ac/dnd/bookkeeping/android/common/BooleanUtil.kt index 57e2baba..7fad7090 100644 --- a/common/src/main/kotlin/com/ray/template/common/BooleanUtil.kt +++ b/common/src/main/kotlin/ac/dnd/bookkeeping/android/common/BooleanUtil.kt @@ -1,4 +1,4 @@ -package com.ray.template.common +package ac.dnd.bookkeeping.android.common fun Boolean?.orFalse(): Boolean { return this ?: false @@ -6,4 +6,4 @@ fun Boolean?.orFalse(): Boolean { fun Boolean?.orTrue(): Boolean { return this ?: true -} \ No newline at end of file +} diff --git a/common/src/main/kotlin/com/ray/template/common/BundleUtil.kt b/common/src/main/kotlin/ac/dnd/bookkeeping/android/common/BundleUtil.kt similarity index 97% rename from common/src/main/kotlin/com/ray/template/common/BundleUtil.kt rename to common/src/main/kotlin/ac/dnd/bookkeeping/android/common/BundleUtil.kt index 8819544e..d4458653 100644 --- a/common/src/main/kotlin/com/ray/template/common/BundleUtil.kt +++ b/common/src/main/kotlin/ac/dnd/bookkeeping/android/common/BundleUtil.kt @@ -1,4 +1,4 @@ -package com.ray.template.common +package ac.dnd.bookkeeping.android.common import android.os.Bundle import androidx.lifecycle.SavedStateHandle @@ -70,4 +70,4 @@ fun Bundle?.getStringOrDefault( defaultValue: String? = null ): String { return (this?.getString(key) ?: defaultValue).orEmpty() -} \ No newline at end of file +} diff --git a/common/src/main/kotlin/com/ray/template/common/NumberUtil.kt b/common/src/main/kotlin/ac/dnd/bookkeeping/android/common/NumberUtil.kt similarity index 96% rename from common/src/main/kotlin/com/ray/template/common/NumberUtil.kt rename to common/src/main/kotlin/ac/dnd/bookkeeping/android/common/NumberUtil.kt index fc808f9e..c9230adc 100644 --- a/common/src/main/kotlin/com/ray/template/common/NumberUtil.kt +++ b/common/src/main/kotlin/ac/dnd/bookkeeping/android/common/NumberUtil.kt @@ -1,4 +1,4 @@ -package com.ray.template.common +package ac.dnd.bookkeeping.android.common fun Double?.orZero(): Double { return this ?: 0.0 diff --git a/common/src/main/kotlin/com/ray/template/common/StringUtil.kt b/common/src/main/kotlin/ac/dnd/bookkeeping/android/common/StringUtil.kt similarity index 58% rename from common/src/main/kotlin/com/ray/template/common/StringUtil.kt rename to common/src/main/kotlin/ac/dnd/bookkeeping/android/common/StringUtil.kt index e5318ca9..0945e23d 100644 --- a/common/src/main/kotlin/com/ray/template/common/StringUtil.kt +++ b/common/src/main/kotlin/ac/dnd/bookkeeping/android/common/StringUtil.kt @@ -1,5 +1,5 @@ -package com.ray.template.common +package ac.dnd.bookkeeping.android.common fun Char?.orEmpty(): Char { return this ?: Char.MIN_VALUE -} \ No newline at end of file +} diff --git a/data/build.gradle.kts b/data/build.gradle.kts index 659e539d..589ba10b 100644 --- a/data/build.gradle.kts +++ b/data/build.gradle.kts @@ -10,7 +10,7 @@ plugins { } android { - namespace = "com.ray.template.data" + namespace = "ac.dnd.bookkeeping.android.data" compileSdk = libs.versions.sdk.compile.get().toInt() defaultConfig { diff --git a/data/src/debug/kotlin/com/ray/template/data/remote/network/di/KtorDebugModule.kt b/data/src/debug/kotlin/ac/dnd/bookkeeping/android/data/remote/network/di/KtorDebugModule.kt similarity index 90% rename from data/src/debug/kotlin/com/ray/template/data/remote/network/di/KtorDebugModule.kt rename to data/src/debug/kotlin/ac/dnd/bookkeeping/android/data/remote/network/di/KtorDebugModule.kt index 51b3153c..701a9c97 100644 --- a/data/src/debug/kotlin/com/ray/template/data/remote/network/di/KtorDebugModule.kt +++ b/data/src/debug/kotlin/ac/dnd/bookkeeping/android/data/remote/network/di/KtorDebugModule.kt @@ -1,4 +1,4 @@ -package com.ray.template.data.remote.network.di +package ac.dnd.bookkeeping.android.data.remote.network.di import dagger.Module import dagger.Provides diff --git a/data/src/main/kotlin/ac/dnd/bookkeeping/android/data/di/RepositoryModule.kt b/data/src/main/kotlin/ac/dnd/bookkeeping/android/data/di/RepositoryModule.kt new file mode 100644 index 00000000..dedd54ab --- /dev/null +++ b/data/src/main/kotlin/ac/dnd/bookkeeping/android/data/di/RepositoryModule.kt @@ -0,0 +1,27 @@ +package ac.dnd.bookkeeping.android.data.di + +import ac.dnd.bookkeeping.android.data.repository.bookkeeping.MockBookkeepingRepository +import ac.dnd.bookkeeping.android.data.repository.authentication.MockAuthenticationRepository +import ac.dnd.bookkeeping.android.domain.repository.AuthenticationRepository +import ac.dnd.bookkeeping.android.domain.repository.BookkeepingRepository +import dagger.Binds +import dagger.Module +import dagger.hilt.InstallIn +import dagger.hilt.components.SingletonComponent +import javax.inject.Singleton + +@Module +@InstallIn(SingletonComponent::class) +internal abstract class RepositoryModule { + @Binds + @Singleton + abstract fun bindsBookkeepingRepository( + mockBookkeepingRepository: MockBookkeepingRepository + ): BookkeepingRepository + + @Binds + @Singleton + abstract fun bindsAuthenticationRepository( + authenticationRepository: MockAuthenticationRepository + ): AuthenticationRepository +} diff --git a/data/src/main/kotlin/com/ray/template/data/remote/local/SharedPreferencesManager.kt b/data/src/main/kotlin/ac/dnd/bookkeeping/android/data/remote/local/SharedPreferencesManager.kt similarity index 93% rename from data/src/main/kotlin/com/ray/template/data/remote/local/SharedPreferencesManager.kt rename to data/src/main/kotlin/ac/dnd/bookkeeping/android/data/remote/local/SharedPreferencesManager.kt index 08063f21..d6cac602 100644 --- a/data/src/main/kotlin/com/ray/template/data/remote/local/SharedPreferencesManager.kt +++ b/data/src/main/kotlin/ac/dnd/bookkeeping/android/data/remote/local/SharedPreferencesManager.kt @@ -1,4 +1,4 @@ -package com.ray.template.data.remote.local +package ac.dnd.bookkeeping.android.data.remote.local import android.content.Context import androidx.core.content.edit @@ -96,6 +96,6 @@ class SharedPreferencesManager(context: Context) { } companion object { - const val SHARED_PREFERENCE_FILE_NAME = "com.ray.template.prefs" + const val SHARED_PREFERENCE_FILE_NAME = "ac.dnd.bookkeeping.android.prefs" } -} \ No newline at end of file +} diff --git a/data/src/main/kotlin/com/ray/template/data/remote/local/di/LocalModule.kt b/data/src/main/kotlin/ac/dnd/bookkeeping/android/data/remote/local/di/LocalModule.kt similarity index 79% rename from data/src/main/kotlin/com/ray/template/data/remote/local/di/LocalModule.kt rename to data/src/main/kotlin/ac/dnd/bookkeeping/android/data/remote/local/di/LocalModule.kt index 12db7587..0a4e81a9 100644 --- a/data/src/main/kotlin/com/ray/template/data/remote/local/di/LocalModule.kt +++ b/data/src/main/kotlin/ac/dnd/bookkeeping/android/data/remote/local/di/LocalModule.kt @@ -1,7 +1,7 @@ -package com.ray.template.data.remote.local.di +package ac.dnd.bookkeeping.android.data.remote.local.di import android.content.Context -import com.ray.template.data.remote.local.SharedPreferencesManager +import ac.dnd.bookkeeping.android.data.remote.local.SharedPreferencesManager import dagger.Module import dagger.Provides import dagger.hilt.InstallIn diff --git a/data/src/main/kotlin/ac/dnd/bookkeeping/android/data/remote/mapper/DataMapper.kt b/data/src/main/kotlin/ac/dnd/bookkeeping/android/data/remote/mapper/DataMapper.kt new file mode 100644 index 00000000..33d7e739 --- /dev/null +++ b/data/src/main/kotlin/ac/dnd/bookkeeping/android/data/remote/mapper/DataMapper.kt @@ -0,0 +1,5 @@ +package ac.dnd.bookkeeping.android.data.remote.mapper + +interface DataMapper { + fun toDomain(): D +} diff --git a/data/src/main/kotlin/com/ray/template/data/remote/network/api/AuthenticationApi.kt b/data/src/main/kotlin/ac/dnd/bookkeeping/android/data/remote/network/api/AuthenticationApi.kt similarity index 56% rename from data/src/main/kotlin/com/ray/template/data/remote/network/api/AuthenticationApi.kt rename to data/src/main/kotlin/ac/dnd/bookkeeping/android/data/remote/network/api/AuthenticationApi.kt index ff1f668f..af43920c 100644 --- a/data/src/main/kotlin/com/ray/template/data/remote/network/api/AuthenticationApi.kt +++ b/data/src/main/kotlin/ac/dnd/bookkeeping/android/data/remote/network/api/AuthenticationApi.kt @@ -1,11 +1,11 @@ -package com.ray.template.data.remote.network.api +package ac.dnd.bookkeeping.android.data.remote.network.api -import com.ray.template.data.remote.network.di.NoAuthHttpClient -import com.ray.template.data.remote.network.environment.BaseUrlProvider -import com.ray.template.data.remote.network.environment.ErrorMessageMapper -import com.ray.template.data.remote.network.model.authentication.GetAccessTokenReq -import com.ray.template.data.remote.network.model.authentication.GetAccessTokenRes -import com.ray.template.data.remote.network.util.convert +import ac.dnd.bookkeeping.android.data.remote.network.di.NoAuthHttpClient +import ac.dnd.bookkeeping.android.data.remote.network.environment.BaseUrlProvider +import ac.dnd.bookkeeping.android.data.remote.network.environment.ErrorMessageMapper +import ac.dnd.bookkeeping.android.data.remote.network.model.authentication.GetAccessTokenReq +import ac.dnd.bookkeeping.android.data.remote.network.model.authentication.GetAccessTokenRes +import ac.dnd.bookkeeping.android.data.remote.network.util.convert import io.ktor.client.HttpClient import io.ktor.client.request.post import io.ktor.client.request.setBody diff --git a/data/src/main/kotlin/com/ray/template/data/remote/network/api/SampleApi.kt b/data/src/main/kotlin/ac/dnd/bookkeeping/android/data/remote/network/api/BookkeepingApi.kt similarity index 55% rename from data/src/main/kotlin/com/ray/template/data/remote/network/api/SampleApi.kt rename to data/src/main/kotlin/ac/dnd/bookkeeping/android/data/remote/network/api/BookkeepingApi.kt index ff2b2c9f..c154085b 100644 --- a/data/src/main/kotlin/com/ray/template/data/remote/network/api/SampleApi.kt +++ b/data/src/main/kotlin/ac/dnd/bookkeeping/android/data/remote/network/api/BookkeepingApi.kt @@ -1,15 +1,15 @@ -package com.ray.template.data.remote.network.api +package ac.dnd.bookkeeping.android.data.remote.network.api -import com.ray.template.data.remote.network.di.AuthHttpClient -import com.ray.template.data.remote.network.environment.BaseUrlProvider -import com.ray.template.data.remote.network.environment.ErrorMessageMapper -import com.ray.template.data.remote.network.model.sample.SampleInformationRes -import com.ray.template.data.remote.network.util.convert +import ac.dnd.bookkeeping.android.data.remote.network.di.AuthHttpClient +import ac.dnd.bookkeeping.android.data.remote.network.environment.BaseUrlProvider +import ac.dnd.bookkeeping.android.data.remote.network.environment.ErrorMessageMapper +import ac.dnd.bookkeeping.android.data.remote.network.model.bookkeeping.BookkeepingInformationRes +import ac.dnd.bookkeeping.android.data.remote.network.util.convert import io.ktor.client.HttpClient import io.ktor.client.request.get import io.ktor.client.request.parameter -class SampleApi( +class BookkeepingApi( @AuthHttpClient private val client: HttpClient, private val baseUrlProvider: BaseUrlProvider, private val errorMessageMapper: ErrorMessageMapper @@ -21,7 +21,7 @@ class SampleApi( apiKey: String, title: String, artist: String - ): Result { + ): Result { return client.get("$baseUrl/ws/1.1") { parameter("api_key", apiKey) parameter("q_track", title) diff --git a/data/src/main/kotlin/com/ray/template/data/remote/network/di/ApiModule.kt b/data/src/main/kotlin/ac/dnd/bookkeeping/android/data/remote/network/di/ApiModule.kt similarity index 56% rename from data/src/main/kotlin/com/ray/template/data/remote/network/di/ApiModule.kt rename to data/src/main/kotlin/ac/dnd/bookkeeping/android/data/remote/network/di/ApiModule.kt index dc22abed..2f0118b5 100644 --- a/data/src/main/kotlin/com/ray/template/data/remote/network/di/ApiModule.kt +++ b/data/src/main/kotlin/ac/dnd/bookkeeping/android/data/remote/network/di/ApiModule.kt @@ -1,8 +1,8 @@ -package com.ray.template.data.remote.network.di +package ac.dnd.bookkeeping.android.data.remote.network.di -import com.ray.template.data.remote.network.environment.ErrorMessageMapper -import com.ray.template.data.remote.network.api.SampleApi -import com.ray.template.data.remote.network.environment.BaseUrlProvider +import ac.dnd.bookkeeping.android.data.remote.network.environment.ErrorMessageMapper +import ac.dnd.bookkeeping.android.data.remote.network.api.BookkeepingApi +import ac.dnd.bookkeeping.android.data.remote.network.environment.BaseUrlProvider import dagger.Module import dagger.Provides import dagger.hilt.InstallIn @@ -16,12 +16,12 @@ internal object ApiModule { @Provides @Singleton - fun provideSampleApi( + fun provideBookkeepingApi( client: HttpClient, baseUrlProvider: BaseUrlProvider, errorMessageMapper: ErrorMessageMapper - ): SampleApi { - return SampleApi( + ): BookkeepingApi { + return BookkeepingApi( client, baseUrlProvider, errorMessageMapper diff --git a/data/src/main/kotlin/com/ray/template/data/remote/network/di/KtorDebugLinkingModule.kt b/data/src/main/kotlin/ac/dnd/bookkeeping/android/data/remote/network/di/KtorDebugLinkingModule.kt similarity index 88% rename from data/src/main/kotlin/com/ray/template/data/remote/network/di/KtorDebugLinkingModule.kt rename to data/src/main/kotlin/ac/dnd/bookkeeping/android/data/remote/network/di/KtorDebugLinkingModule.kt index 50772eec..cf8723eb 100644 --- a/data/src/main/kotlin/com/ray/template/data/remote/network/di/KtorDebugLinkingModule.kt +++ b/data/src/main/kotlin/ac/dnd/bookkeeping/android/data/remote/network/di/KtorDebugLinkingModule.kt @@ -1,4 +1,4 @@ -package com.ray.template.data.remote.network.di +package ac.dnd.bookkeeping.android.data.remote.network.di import dagger.BindsOptionalOf import dagger.Module diff --git a/data/src/main/kotlin/com/ray/template/data/remote/network/di/KtorModule.kt b/data/src/main/kotlin/ac/dnd/bookkeeping/android/data/remote/network/di/KtorModule.kt similarity index 96% rename from data/src/main/kotlin/com/ray/template/data/remote/network/di/KtorModule.kt rename to data/src/main/kotlin/ac/dnd/bookkeeping/android/data/remote/network/di/KtorModule.kt index af5aef3a..114f5b49 100644 --- a/data/src/main/kotlin/com/ray/template/data/remote/network/di/KtorModule.kt +++ b/data/src/main/kotlin/ac/dnd/bookkeeping/android/data/remote/network/di/KtorModule.kt @@ -1,8 +1,8 @@ -package com.ray.template.data.remote.network.di +package ac.dnd.bookkeeping.android.data.remote.network.di import android.content.Context import android.content.pm.ApplicationInfo -import com.ray.template.domain.repository.AuthenticationRepository +import ac.dnd.bookkeeping.android.domain.repository.AuthenticationRepository import dagger.Module import dagger.Provides import dagger.hilt.InstallIn diff --git a/data/src/main/kotlin/com/ray/template/data/remote/network/di/NetworkEnvironmentModule.kt b/data/src/main/kotlin/ac/dnd/bookkeeping/android/data/remote/network/di/NetworkEnvironmentModule.kt similarity index 65% rename from data/src/main/kotlin/com/ray/template/data/remote/network/di/NetworkEnvironmentModule.kt rename to data/src/main/kotlin/ac/dnd/bookkeeping/android/data/remote/network/di/NetworkEnvironmentModule.kt index 8783d5be..65d29807 100644 --- a/data/src/main/kotlin/com/ray/template/data/remote/network/di/NetworkEnvironmentModule.kt +++ b/data/src/main/kotlin/ac/dnd/bookkeeping/android/data/remote/network/di/NetworkEnvironmentModule.kt @@ -1,10 +1,10 @@ -package com.ray.template.data.remote.network.di +package ac.dnd.bookkeeping.android.data.remote.network.di import android.content.Context -import com.ray.template.data.remote.local.SharedPreferencesManager -import com.ray.template.data.remote.network.environment.BaseUrlProvider -import com.ray.template.data.remote.network.environment.ErrorMessageMapper -import com.ray.template.domain.repository.AuthenticationRepository +import ac.dnd.bookkeeping.android.data.remote.local.SharedPreferencesManager +import ac.dnd.bookkeeping.android.data.remote.network.environment.BaseUrlProvider +import ac.dnd.bookkeeping.android.data.remote.network.environment.ErrorMessageMapper +import ac.dnd.bookkeeping.android.domain.repository.AuthenticationRepository import dagger.Module import dagger.Provides import dagger.hilt.InstallIn diff --git a/data/src/main/kotlin/com/ray/template/data/remote/network/environment/BaseUrlProvider.kt b/data/src/main/kotlin/ac/dnd/bookkeeping/android/data/remote/network/environment/BaseUrlProvider.kt similarity index 77% rename from data/src/main/kotlin/com/ray/template/data/remote/network/environment/BaseUrlProvider.kt rename to data/src/main/kotlin/ac/dnd/bookkeeping/android/data/remote/network/environment/BaseUrlProvider.kt index 851ddb3a..c3193d30 100644 --- a/data/src/main/kotlin/com/ray/template/data/remote/network/environment/BaseUrlProvider.kt +++ b/data/src/main/kotlin/ac/dnd/bookkeeping/android/data/remote/network/environment/BaseUrlProvider.kt @@ -1,6 +1,6 @@ -package com.ray.template.data.remote.network.environment +package ac.dnd.bookkeeping.android.data.remote.network.environment -import com.ray.template.data.remote.local.SharedPreferencesManager +import ac.dnd.bookkeeping.android.data.remote.local.SharedPreferencesManager class BaseUrlProvider( private val sharedPreferencesManager: SharedPreferencesManager diff --git a/data/src/main/kotlin/com/ray/template/data/remote/network/environment/ErrorMessageMapper.kt b/data/src/main/kotlin/ac/dnd/bookkeeping/android/data/remote/network/environment/ErrorMessageMapper.kt similarity index 76% rename from data/src/main/kotlin/com/ray/template/data/remote/network/environment/ErrorMessageMapper.kt rename to data/src/main/kotlin/ac/dnd/bookkeeping/android/data/remote/network/environment/ErrorMessageMapper.kt index fae1035d..1ca9cbe2 100644 --- a/data/src/main/kotlin/com/ray/template/data/remote/network/environment/ErrorMessageMapper.kt +++ b/data/src/main/kotlin/ac/dnd/bookkeeping/android/data/remote/network/environment/ErrorMessageMapper.kt @@ -1,8 +1,8 @@ -package com.ray.template.data.remote.network.environment +package ac.dnd.bookkeeping.android.data.remote.network.environment import android.content.Context -import com.ray.template.data.R -import com.ray.template.domain.model.error.UndefinedKeyException +import ac.dnd.bookkeeping.android.data.R +import ac.dnd.bookkeeping.android.domain.model.error.UndefinedKeyException import timber.log.Timber class ErrorMessageMapper( diff --git a/data/src/main/kotlin/com/ray/template/data/remote/network/model/authentication/GetAccessTokenReq.kt b/data/src/main/kotlin/ac/dnd/bookkeeping/android/data/remote/network/model/authentication/GetAccessTokenReq.kt similarity index 71% rename from data/src/main/kotlin/com/ray/template/data/remote/network/model/authentication/GetAccessTokenReq.kt rename to data/src/main/kotlin/ac/dnd/bookkeeping/android/data/remote/network/model/authentication/GetAccessTokenReq.kt index 32c77af5..7d528508 100644 --- a/data/src/main/kotlin/com/ray/template/data/remote/network/model/authentication/GetAccessTokenReq.kt +++ b/data/src/main/kotlin/ac/dnd/bookkeeping/android/data/remote/network/model/authentication/GetAccessTokenReq.kt @@ -1,4 +1,4 @@ -package com.ray.template.data.remote.network.model.authentication +package ac.dnd.bookkeeping.android.data.remote.network.model.authentication import kotlinx.serialization.SerialName import kotlinx.serialization.Serializable diff --git a/data/src/main/kotlin/com/ray/template/data/remote/network/model/authentication/GetAccessTokenRes.kt b/data/src/main/kotlin/ac/dnd/bookkeeping/android/data/remote/network/model/authentication/GetAccessTokenRes.kt similarity index 71% rename from data/src/main/kotlin/com/ray/template/data/remote/network/model/authentication/GetAccessTokenRes.kt rename to data/src/main/kotlin/ac/dnd/bookkeeping/android/data/remote/network/model/authentication/GetAccessTokenRes.kt index 815ac9f3..2aaa0cf1 100644 --- a/data/src/main/kotlin/com/ray/template/data/remote/network/model/authentication/GetAccessTokenRes.kt +++ b/data/src/main/kotlin/ac/dnd/bookkeeping/android/data/remote/network/model/authentication/GetAccessTokenRes.kt @@ -1,4 +1,4 @@ -package com.ray.template.data.remote.network.model.authentication +package ac.dnd.bookkeeping.android.data.remote.network.model.authentication import kotlinx.serialization.SerialName import kotlinx.serialization.Serializable diff --git a/data/src/main/kotlin/com/ray/template/data/remote/network/model/error/ErrorRes.kt b/data/src/main/kotlin/ac/dnd/bookkeeping/android/data/remote/network/model/error/ErrorRes.kt similarity index 76% rename from data/src/main/kotlin/com/ray/template/data/remote/network/model/error/ErrorRes.kt rename to data/src/main/kotlin/ac/dnd/bookkeeping/android/data/remote/network/model/error/ErrorRes.kt index 2c23c76d..179b35b5 100644 --- a/data/src/main/kotlin/com/ray/template/data/remote/network/model/error/ErrorRes.kt +++ b/data/src/main/kotlin/ac/dnd/bookkeeping/android/data/remote/network/model/error/ErrorRes.kt @@ -1,4 +1,4 @@ -package com.ray.template.data.remote.network.model.error +package ac.dnd.bookkeeping.android.data.remote.network.model.error import kotlinx.serialization.SerialName import kotlinx.serialization.Serializable diff --git a/data/src/main/kotlin/com/ray/template/data/remote/network/model/sample/SampleInformationRes.kt b/data/src/main/kotlin/ac/dnd/bookkeeping/android/data/remote/network/model/sample/SampleInformationRes.kt similarity index 64% rename from data/src/main/kotlin/com/ray/template/data/remote/network/model/sample/SampleInformationRes.kt rename to data/src/main/kotlin/ac/dnd/bookkeeping/android/data/remote/network/model/sample/SampleInformationRes.kt index faaa4ecf..486a94ff 100644 --- a/data/src/main/kotlin/com/ray/template/data/remote/network/model/sample/SampleInformationRes.kt +++ b/data/src/main/kotlin/ac/dnd/bookkeeping/android/data/remote/network/model/sample/SampleInformationRes.kt @@ -1,17 +1,17 @@ -package com.ray.template.data.remote.network.model.sample +package ac.dnd.bookkeeping.android.data.remote.network.model.bookkeeping -import com.ray.template.data.remote.mapper.DataMapper -import com.ray.template.domain.model.sample.SampleInformation +import ac.dnd.bookkeeping.android.data.remote.mapper.DataMapper +import ac.dnd.bookkeeping.android.domain.model.bookkeeping.BookkeepingInformation import kotlinx.serialization.SerialName import kotlinx.serialization.Serializable @Serializable -data class SampleInformationRes( +data class BookkeepingInformationRes( @SerialName("message") val message: LyricsResMessage = LyricsResMessage() -) : DataMapper { - override fun toDomain(): SampleInformation { - return SampleInformation( +) : DataMapper { + override fun toDomain(): BookkeepingInformation { + return BookkeepingInformation( lyricsId = message.body.lyrics.lyricsId, lyricsBody = message.body.lyrics.lyricsBody ) diff --git a/data/src/main/kotlin/com/ray/template/data/remote/network/util/NetworkUtil.kt b/data/src/main/kotlin/ac/dnd/bookkeeping/android/data/remote/network/util/NetworkUtil.kt similarity index 76% rename from data/src/main/kotlin/com/ray/template/data/remote/network/util/NetworkUtil.kt rename to data/src/main/kotlin/ac/dnd/bookkeeping/android/data/remote/network/util/NetworkUtil.kt index 98bd21b2..ebd5b81f 100644 --- a/data/src/main/kotlin/com/ray/template/data/remote/network/util/NetworkUtil.kt +++ b/data/src/main/kotlin/ac/dnd/bookkeeping/android/data/remote/network/util/NetworkUtil.kt @@ -1,11 +1,11 @@ -package com.ray.template.data.remote.network.util +package ac.dnd.bookkeeping.android.data.remote.network.util -import com.ray.template.data.remote.mapper.DataMapper -import com.ray.template.data.remote.network.environment.ErrorMessageMapper -import com.ray.template.data.remote.network.model.error.ErrorRes -import com.ray.template.domain.model.error.BadRequestServerException -import com.ray.template.domain.model.error.InternalServerException -import com.ray.template.domain.model.error.InvalidStandardResponseException +import ac.dnd.bookkeeping.android.data.remote.mapper.DataMapper +import ac.dnd.bookkeeping.android.data.remote.network.environment.ErrorMessageMapper +import ac.dnd.bookkeeping.android.data.remote.network.model.error.ErrorRes +import ac.dnd.bookkeeping.android.domain.model.error.BadRequestServerException +import ac.dnd.bookkeeping.android.domain.model.error.InternalServerException +import ac.dnd.bookkeeping.android.domain.model.error.InvalidStandardResponseException import io.ktor.client.call.body import io.ktor.client.statement.HttpResponse import io.sentry.Sentry diff --git a/data/src/main/kotlin/com/ray/template/data/repository/authentication/MockAuthenticationRepository.kt b/data/src/main/kotlin/ac/dnd/bookkeeping/android/data/repository/authentication/MockAuthenticationRepository.kt similarity index 83% rename from data/src/main/kotlin/com/ray/template/data/repository/authentication/MockAuthenticationRepository.kt rename to data/src/main/kotlin/ac/dnd/bookkeeping/android/data/repository/authentication/MockAuthenticationRepository.kt index 67519b96..180eb1f0 100644 --- a/data/src/main/kotlin/com/ray/template/data/repository/authentication/MockAuthenticationRepository.kt +++ b/data/src/main/kotlin/ac/dnd/bookkeeping/android/data/repository/authentication/MockAuthenticationRepository.kt @@ -1,7 +1,7 @@ -package com.ray.template.data.repository.authentication +package ac.dnd.bookkeeping.android.data.repository.authentication -import com.ray.template.data.remote.local.SharedPreferencesManager -import com.ray.template.domain.repository.AuthenticationRepository +import ac.dnd.bookkeeping.android.data.remote.local.SharedPreferencesManager +import ac.dnd.bookkeeping.android.domain.repository.AuthenticationRepository import kotlinx.coroutines.delay import javax.inject.Inject diff --git a/data/src/main/kotlin/com/ray/template/data/repository/authentication/RealAuthenticationRepository.kt b/data/src/main/kotlin/ac/dnd/bookkeeping/android/data/repository/authentication/RealAuthenticationRepository.kt similarity index 77% rename from data/src/main/kotlin/com/ray/template/data/repository/authentication/RealAuthenticationRepository.kt rename to data/src/main/kotlin/ac/dnd/bookkeeping/android/data/repository/authentication/RealAuthenticationRepository.kt index 912c429b..b90dec37 100644 --- a/data/src/main/kotlin/com/ray/template/data/repository/authentication/RealAuthenticationRepository.kt +++ b/data/src/main/kotlin/ac/dnd/bookkeeping/android/data/repository/authentication/RealAuthenticationRepository.kt @@ -1,8 +1,8 @@ -package com.ray.template.data.repository.authentication +package ac.dnd.bookkeeping.android.data.repository.authentication -import com.ray.template.data.remote.local.SharedPreferencesManager -import com.ray.template.data.remote.network.api.AuthenticationApi -import com.ray.template.domain.repository.AuthenticationRepository +import ac.dnd.bookkeeping.android.data.remote.local.SharedPreferencesManager +import ac.dnd.bookkeeping.android.data.remote.network.api.AuthenticationApi +import ac.dnd.bookkeeping.android.domain.repository.AuthenticationRepository import javax.inject.Inject class RealAuthenticationRepository @Inject constructor( diff --git a/data/src/main/kotlin/ac/dnd/bookkeeping/android/data/repository/bookkeeping/MockBookkeepingRepository.kt b/data/src/main/kotlin/ac/dnd/bookkeeping/android/data/repository/bookkeeping/MockBookkeepingRepository.kt new file mode 100644 index 00000000..8adb3ccc --- /dev/null +++ b/data/src/main/kotlin/ac/dnd/bookkeeping/android/data/repository/bookkeeping/MockBookkeepingRepository.kt @@ -0,0 +1,15 @@ +package ac.dnd.bookkeeping.android.data.repository.bookkeeping + +import ac.dnd.bookkeeping.android.domain.model.bookkeeping.BookkeepingInformation +import ac.dnd.bookkeeping.android.domain.repository.BookkeepingRepository +import javax.inject.Inject + +class MockBookkeepingRepository @Inject constructor() : BookkeepingRepository { + override suspend fun getBookkeepingInformation( + apiKey: String, + title: String, + artist: String + ): Result { + return Result.success(BookkeepingInformation()) + } +} diff --git a/data/src/main/kotlin/ac/dnd/bookkeeping/android/data/repository/bookkeeping/RealBookkeepingRepository.kt b/data/src/main/kotlin/ac/dnd/bookkeeping/android/data/repository/bookkeeping/RealBookkeepingRepository.kt new file mode 100644 index 00000000..8a4d8deb --- /dev/null +++ b/data/src/main/kotlin/ac/dnd/bookkeeping/android/data/repository/bookkeeping/RealBookkeepingRepository.kt @@ -0,0 +1,23 @@ +package ac.dnd.bookkeeping.android.data.repository.bookkeeping + +import ac.dnd.bookkeeping.android.data.remote.network.api.BookkeepingApi +import ac.dnd.bookkeeping.android.data.remote.network.util.toDomain +import ac.dnd.bookkeeping.android.domain.model.bookkeeping.BookkeepingInformation +import ac.dnd.bookkeeping.android.domain.repository.BookkeepingRepository +import javax.inject.Inject + +class RealBookkeepingRepository @Inject constructor( + private val bookkeepingApi: BookkeepingApi +) : BookkeepingRepository { + override suspend fun getBookkeepingInformation( + apiKey: String, + title: String, + artist: String + ): Result { + return bookkeepingApi.getLyrics( + apiKey = apiKey, + title = title, + artist = artist + ).toDomain() + } +} diff --git a/data/src/main/kotlin/com/ray/template/data/di/RepositoryModule.kt b/data/src/main/kotlin/com/ray/template/data/di/RepositoryModule.kt deleted file mode 100644 index 520610fb..00000000 --- a/data/src/main/kotlin/com/ray/template/data/di/RepositoryModule.kt +++ /dev/null @@ -1,27 +0,0 @@ -package com.ray.template.data.di - -import com.ray.template.data.repository.sample.MockSampleRepository -import com.ray.template.data.repository.authentication.MockAuthenticationRepository -import com.ray.template.domain.repository.AuthenticationRepository -import com.ray.template.domain.repository.SampleRepository -import dagger.Binds -import dagger.Module -import dagger.hilt.InstallIn -import dagger.hilt.components.SingletonComponent -import javax.inject.Singleton - -@Module -@InstallIn(SingletonComponent::class) -internal abstract class RepositoryModule { - @Binds - @Singleton - abstract fun bindsSampleRepository( - mockSampleRepository: MockSampleRepository - ): SampleRepository - - @Binds - @Singleton - abstract fun bindsAuthenticationRepository( - authenticationRepository: MockAuthenticationRepository - ): AuthenticationRepository -} diff --git a/data/src/main/kotlin/com/ray/template/data/remote/mapper/DataMapper.kt b/data/src/main/kotlin/com/ray/template/data/remote/mapper/DataMapper.kt deleted file mode 100644 index 47ed0a84..00000000 --- a/data/src/main/kotlin/com/ray/template/data/remote/mapper/DataMapper.kt +++ /dev/null @@ -1,5 +0,0 @@ -package com.ray.template.data.remote.mapper - -interface DataMapper { - fun toDomain(): D -} diff --git a/data/src/main/kotlin/com/ray/template/data/repository/sample/MockSampleRepository.kt b/data/src/main/kotlin/com/ray/template/data/repository/sample/MockSampleRepository.kt deleted file mode 100644 index 9a4177c4..00000000 --- a/data/src/main/kotlin/com/ray/template/data/repository/sample/MockSampleRepository.kt +++ /dev/null @@ -1,15 +0,0 @@ -package com.ray.template.data.repository.sample - -import com.ray.template.domain.model.sample.SampleInformation -import com.ray.template.domain.repository.SampleRepository -import javax.inject.Inject - -class MockSampleRepository @Inject constructor() : SampleRepository { - override suspend fun getSampleInformation( - apiKey: String, - title: String, - artist: String - ): Result { - return Result.success(SampleInformation()) - } -} diff --git a/data/src/main/kotlin/com/ray/template/data/repository/sample/RealSampleRepository.kt b/data/src/main/kotlin/com/ray/template/data/repository/sample/RealSampleRepository.kt deleted file mode 100644 index 3e2851fb..00000000 --- a/data/src/main/kotlin/com/ray/template/data/repository/sample/RealSampleRepository.kt +++ /dev/null @@ -1,23 +0,0 @@ -package com.ray.template.data.repository.sample - -import com.ray.template.data.remote.network.api.SampleApi -import com.ray.template.data.remote.network.util.toDomain -import com.ray.template.domain.model.sample.SampleInformation -import com.ray.template.domain.repository.SampleRepository -import javax.inject.Inject - -class RealSampleRepository @Inject constructor( - private val sampleApi: SampleApi -) : SampleRepository { - override suspend fun getSampleInformation( - apiKey: String, - title: String, - artist: String - ): Result { - return sampleApi.getLyrics( - apiKey = apiKey, - title = title, - artist = artist - ).toDomain() - } -} diff --git a/domain/build.gradle.kts b/domain/build.gradle.kts index 0b99e8f5..6138904a 100644 --- a/domain/build.gradle.kts +++ b/domain/build.gradle.kts @@ -10,7 +10,7 @@ plugins { // TODO : Android 종속성 제거 android { - namespace = "com.ray.template.domain" + namespace = "ac.dnd.bookkeeping.android.domain" compileSdk = libs.versions.sdk.compile.get().toInt() defaultConfig { diff --git a/domain/src/main/kotlin/ac/dnd/bookkeeping/android/domain/model/bookkeeping/BookkeepingInformation.kt b/domain/src/main/kotlin/ac/dnd/bookkeeping/android/domain/model/bookkeeping/BookkeepingInformation.kt new file mode 100644 index 00000000..389ce35d --- /dev/null +++ b/domain/src/main/kotlin/ac/dnd/bookkeeping/android/domain/model/bookkeeping/BookkeepingInformation.kt @@ -0,0 +1,6 @@ +package ac.dnd.bookkeeping.android.domain.model.bookkeeping + +data class BookkeepingInformation( + val lyricsId: Int = 0, + val lyricsBody: String = "" +) diff --git a/domain/src/main/kotlin/com/ray/template/domain/model/error/BadRequestServerException.kt b/domain/src/main/kotlin/ac/dnd/bookkeeping/android/domain/model/error/BadRequestServerException.kt similarity index 70% rename from domain/src/main/kotlin/com/ray/template/domain/model/error/BadRequestServerException.kt rename to domain/src/main/kotlin/ac/dnd/bookkeeping/android/domain/model/error/BadRequestServerException.kt index bc7fbdee..4ffb95df 100644 --- a/domain/src/main/kotlin/com/ray/template/domain/model/error/BadRequestServerException.kt +++ b/domain/src/main/kotlin/ac/dnd/bookkeeping/android/domain/model/error/BadRequestServerException.kt @@ -1,4 +1,4 @@ -package com.ray.template.domain.model.error +package ac.dnd.bookkeeping.android.domain.model.error class BadRequestServerException( override val id: String, diff --git a/domain/src/main/kotlin/com/ray/template/domain/model/error/InternalServerException.kt b/domain/src/main/kotlin/ac/dnd/bookkeeping/android/domain/model/error/InternalServerException.kt similarity index 70% rename from domain/src/main/kotlin/com/ray/template/domain/model/error/InternalServerException.kt rename to domain/src/main/kotlin/ac/dnd/bookkeeping/android/domain/model/error/InternalServerException.kt index db409d3c..dd4ed8c5 100644 --- a/domain/src/main/kotlin/com/ray/template/domain/model/error/InternalServerException.kt +++ b/domain/src/main/kotlin/ac/dnd/bookkeeping/android/domain/model/error/InternalServerException.kt @@ -1,4 +1,4 @@ -package com.ray.template.domain.model.error +package ac.dnd.bookkeeping.android.domain.model.error class InternalServerException( override val id: String, diff --git a/domain/src/main/kotlin/com/ray/template/domain/model/error/InvalidStandardResponseException.kt b/domain/src/main/kotlin/ac/dnd/bookkeeping/android/domain/model/error/InvalidStandardResponseException.kt similarity index 64% rename from domain/src/main/kotlin/com/ray/template/domain/model/error/InvalidStandardResponseException.kt rename to domain/src/main/kotlin/ac/dnd/bookkeeping/android/domain/model/error/InvalidStandardResponseException.kt index 10537eb7..49cca0fd 100644 --- a/domain/src/main/kotlin/com/ray/template/domain/model/error/InvalidStandardResponseException.kt +++ b/domain/src/main/kotlin/ac/dnd/bookkeeping/android/domain/model/error/InvalidStandardResponseException.kt @@ -1,4 +1,4 @@ -package com.ray.template.domain.model.error +package ac.dnd.bookkeeping.android.domain.model.error class InvalidStandardResponseException( override val message: String diff --git a/domain/src/main/kotlin/com/ray/template/domain/model/error/ServerException.kt b/domain/src/main/kotlin/ac/dnd/bookkeeping/android/domain/model/error/ServerException.kt similarity index 67% rename from domain/src/main/kotlin/com/ray/template/domain/model/error/ServerException.kt rename to domain/src/main/kotlin/ac/dnd/bookkeeping/android/domain/model/error/ServerException.kt index acbcc5ef..9f60d4c7 100644 --- a/domain/src/main/kotlin/com/ray/template/domain/model/error/ServerException.kt +++ b/domain/src/main/kotlin/ac/dnd/bookkeeping/android/domain/model/error/ServerException.kt @@ -1,4 +1,4 @@ -package com.ray.template.domain.model.error +package ac.dnd.bookkeeping.android.domain.model.error open class ServerException( open val id: String, diff --git a/domain/src/main/kotlin/com/ray/template/domain/model/error/UndefinedKeyException.kt b/domain/src/main/kotlin/ac/dnd/bookkeeping/android/domain/model/error/UndefinedKeyException.kt similarity index 61% rename from domain/src/main/kotlin/com/ray/template/domain/model/error/UndefinedKeyException.kt rename to domain/src/main/kotlin/ac/dnd/bookkeeping/android/domain/model/error/UndefinedKeyException.kt index 5ab711d8..8b9b3615 100644 --- a/domain/src/main/kotlin/com/ray/template/domain/model/error/UndefinedKeyException.kt +++ b/domain/src/main/kotlin/ac/dnd/bookkeeping/android/domain/model/error/UndefinedKeyException.kt @@ -1,4 +1,4 @@ -package com.ray.template.domain.model.error +package ac.dnd.bookkeeping.android.domain.model.error class UndefinedKeyException( override val message: String diff --git a/domain/src/main/kotlin/com/ray/template/domain/repository/AuthenticationRepository.kt b/domain/src/main/kotlin/ac/dnd/bookkeeping/android/domain/repository/AuthenticationRepository.kt similarity index 77% rename from domain/src/main/kotlin/com/ray/template/domain/repository/AuthenticationRepository.kt rename to domain/src/main/kotlin/ac/dnd/bookkeeping/android/domain/repository/AuthenticationRepository.kt index 4a6c98a9..241c457d 100644 --- a/domain/src/main/kotlin/com/ray/template/domain/repository/AuthenticationRepository.kt +++ b/domain/src/main/kotlin/ac/dnd/bookkeeping/android/domain/repository/AuthenticationRepository.kt @@ -1,4 +1,4 @@ -package com.ray.template.domain.repository +package ac.dnd.bookkeeping.android.domain.repository interface AuthenticationRepository { diff --git a/domain/src/main/kotlin/ac/dnd/bookkeeping/android/domain/repository/BookkeepingRepository.kt b/domain/src/main/kotlin/ac/dnd/bookkeeping/android/domain/repository/BookkeepingRepository.kt new file mode 100644 index 00000000..bc114b7a --- /dev/null +++ b/domain/src/main/kotlin/ac/dnd/bookkeeping/android/domain/repository/BookkeepingRepository.kt @@ -0,0 +1,11 @@ +package ac.dnd.bookkeeping.android.domain.repository + +import ac.dnd.bookkeeping.android.domain.model.bookkeeping.BookkeepingInformation + +interface BookkeepingRepository { + suspend fun getBookkeepingInformation( + apiKey: String, + title: String, + artist: String + ): Result +} diff --git a/domain/src/main/kotlin/ac/dnd/bookkeeping/android/domain/usecase/sample/GetBookkeepingInformationUseCase.kt b/domain/src/main/kotlin/ac/dnd/bookkeeping/android/domain/usecase/sample/GetBookkeepingInformationUseCase.kt new file mode 100644 index 00000000..9bb60c5b --- /dev/null +++ b/domain/src/main/kotlin/ac/dnd/bookkeeping/android/domain/usecase/sample/GetBookkeepingInformationUseCase.kt @@ -0,0 +1,17 @@ +package ac.dnd.bookkeeping.android.domain.usecase.bookkeeping + +import ac.dnd.bookkeeping.android.domain.model.bookkeeping.BookkeepingInformation +import ac.dnd.bookkeeping.android.domain.repository.BookkeepingRepository +import javax.inject.Inject + +class GetBookkeepingInformationUseCase @Inject constructor( + private val bookkeepingRepository: BookkeepingRepository +) { + suspend operator fun invoke(): Result { + return bookkeepingRepository.getBookkeepingInformation( + apiKey = "", + title = "", + artist = "" + ) + } +} diff --git a/domain/src/main/kotlin/com/ray/template/domain/model/sample/SampleInformation.kt b/domain/src/main/kotlin/com/ray/template/domain/model/sample/SampleInformation.kt deleted file mode 100644 index 66e2f1c7..00000000 --- a/domain/src/main/kotlin/com/ray/template/domain/model/sample/SampleInformation.kt +++ /dev/null @@ -1,6 +0,0 @@ -package com.ray.template.domain.model.sample - -data class SampleInformation( - val lyricsId: Int = 0, - val lyricsBody: String = "" -) diff --git a/domain/src/main/kotlin/com/ray/template/domain/repository/SampleRepository.kt b/domain/src/main/kotlin/com/ray/template/domain/repository/SampleRepository.kt deleted file mode 100644 index 5d497c01..00000000 --- a/domain/src/main/kotlin/com/ray/template/domain/repository/SampleRepository.kt +++ /dev/null @@ -1,11 +0,0 @@ -package com.ray.template.domain.repository - -import com.ray.template.domain.model.sample.SampleInformation - -interface SampleRepository { - suspend fun getSampleInformation( - apiKey: String, - title: String, - artist: String - ): Result -} diff --git a/domain/src/main/kotlin/com/ray/template/domain/usecase/sample/GetSampleInformationUseCase.kt b/domain/src/main/kotlin/com/ray/template/domain/usecase/sample/GetSampleInformationUseCase.kt deleted file mode 100644 index 4e9825fa..00000000 --- a/domain/src/main/kotlin/com/ray/template/domain/usecase/sample/GetSampleInformationUseCase.kt +++ /dev/null @@ -1,17 +0,0 @@ -package com.ray.template.domain.usecase.sample - -import com.ray.template.domain.model.sample.SampleInformation -import com.ray.template.domain.repository.SampleRepository -import javax.inject.Inject - -class GetSampleInformationUseCase @Inject constructor( - private val sampleRepository: SampleRepository -) { - suspend operator fun invoke(): Result { - return sampleRepository.getSampleInformation( - apiKey = "", - title = "", - artist = "" - ) - } -} diff --git a/presentation/build.gradle.kts b/presentation/build.gradle.kts index f50bc7ae..764e9d70 100644 --- a/presentation/build.gradle.kts +++ b/presentation/build.gradle.kts @@ -11,7 +11,7 @@ plugins { } android { - namespace = "com.ray.template.presentation" + namespace = "ac.dnd.bookkeeping.android.presentation" compileSdk = libs.versions.sdk.compile.get().toInt() defaultConfig { diff --git a/presentation/src/main/AndroidManifest.xml b/presentation/src/main/AndroidManifest.xml index da46d53b..6f2d9fea 100644 --- a/presentation/src/main/AndroidManifest.xml +++ b/presentation/src/main/AndroidManifest.xml @@ -1,7 +1,7 @@ - + @@ -12,4 +12,4 @@ - \ No newline at end of file + diff --git a/presentation/src/main/kotlin/com/ray/template/presentation/common/Constants.kt b/presentation/src/main/kotlin/ac/dnd/bookkeeping/android/presentation/common/Constants.kt similarity index 58% rename from presentation/src/main/kotlin/com/ray/template/presentation/common/Constants.kt rename to presentation/src/main/kotlin/ac/dnd/bookkeeping/android/presentation/common/Constants.kt index 2bf81aaf..55378fed 100644 --- a/presentation/src/main/kotlin/com/ray/template/presentation/common/Constants.kt +++ b/presentation/src/main/kotlin/ac/dnd/bookkeeping/android/presentation/common/Constants.kt @@ -1,3 +1,3 @@ -package com.ray.template.presentation.common +package ac.dnd.bookkeeping.android.presentation.common const val REGEX_EMAIL = "^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,6}$" diff --git a/presentation/src/main/kotlin/com/ray/template/presentation/common/base/BaseActivity.kt b/presentation/src/main/kotlin/ac/dnd/bookkeeping/android/presentation/common/base/BaseActivity.kt similarity index 96% rename from presentation/src/main/kotlin/com/ray/template/presentation/common/base/BaseActivity.kt rename to presentation/src/main/kotlin/ac/dnd/bookkeeping/android/presentation/common/base/BaseActivity.kt index 0d136b9c..3c4bb3df 100644 --- a/presentation/src/main/kotlin/com/ray/template/presentation/common/base/BaseActivity.kt +++ b/presentation/src/main/kotlin/ac/dnd/bookkeeping/android/presentation/common/base/BaseActivity.kt @@ -1,4 +1,4 @@ -package com.ray.template.presentation.common.base +package ac.dnd.bookkeeping.android.presentation.common.base import android.os.Bundle import android.view.LayoutInflater @@ -15,7 +15,7 @@ import androidx.lifecycle.viewModelScope import com.ray.rds.window.alert.AlertDialogFragmentProvider import com.ray.rds.window.loading.LoadingDialogFragmentProvider import com.ray.rds.window.snackbar.MessageSnackBar -import com.ray.template.presentation.common.util.coroutine.event.eventObserve +import ac.dnd.bookkeeping.android.presentation.common.util.coroutine.event.eventObserve import kotlinx.coroutines.CoroutineExceptionHandler import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.launch diff --git a/presentation/src/main/kotlin/com/ray/template/presentation/common/base/BaseBottomSheet.kt b/presentation/src/main/kotlin/ac/dnd/bookkeeping/android/presentation/common/base/BaseBottomSheet.kt similarity index 96% rename from presentation/src/main/kotlin/com/ray/template/presentation/common/base/BaseBottomSheet.kt rename to presentation/src/main/kotlin/ac/dnd/bookkeeping/android/presentation/common/base/BaseBottomSheet.kt index 14321b9a..83890d74 100644 --- a/presentation/src/main/kotlin/com/ray/template/presentation/common/base/BaseBottomSheet.kt +++ b/presentation/src/main/kotlin/ac/dnd/bookkeeping/android/presentation/common/base/BaseBottomSheet.kt @@ -1,4 +1,4 @@ -package com.ray.template.presentation.common.base +package ac.dnd.bookkeeping.android.presentation.common.base import android.os.Bundle import android.view.LayoutInflater @@ -15,7 +15,7 @@ import com.google.android.material.bottomsheet.BottomSheetDialogFragment import com.ray.rds.window.alert.AlertDialogFragmentProvider import com.ray.rds.window.loading.LoadingDialogFragmentProvider import com.ray.rds.window.snackbar.MessageSnackBar -import com.ray.template.presentation.common.util.coroutine.event.eventObserve +import ac.dnd.bookkeeping.android.presentation.common.util.coroutine.event.eventObserve import kotlinx.coroutines.CoroutineExceptionHandler import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.launch diff --git a/presentation/src/main/kotlin/com/ray/template/presentation/common/base/BaseDialogFragment.kt b/presentation/src/main/kotlin/ac/dnd/bookkeeping/android/presentation/common/base/BaseDialogFragment.kt similarity index 97% rename from presentation/src/main/kotlin/com/ray/template/presentation/common/base/BaseDialogFragment.kt rename to presentation/src/main/kotlin/ac/dnd/bookkeeping/android/presentation/common/base/BaseDialogFragment.kt index 7201956c..0df34c30 100644 --- a/presentation/src/main/kotlin/com/ray/template/presentation/common/base/BaseDialogFragment.kt +++ b/presentation/src/main/kotlin/ac/dnd/bookkeeping/android/presentation/common/base/BaseDialogFragment.kt @@ -1,4 +1,4 @@ -package com.ray.template.presentation.common.base +package ac.dnd.bookkeeping.android.presentation.common.base import android.os.Bundle import android.view.LayoutInflater @@ -16,7 +16,7 @@ import com.ray.rds.util.getDisplayWidth import com.ray.rds.window.alert.AlertDialogFragmentProvider import com.ray.rds.window.loading.LoadingDialogFragmentProvider import com.ray.rds.window.snackbar.MessageSnackBar -import com.ray.template.presentation.common.util.coroutine.event.eventObserve +import ac.dnd.bookkeeping.android.presentation.common.util.coroutine.event.eventObserve import kotlinx.coroutines.CoroutineExceptionHandler import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.launch diff --git a/presentation/src/main/kotlin/com/ray/template/presentation/common/base/BaseFragment.kt b/presentation/src/main/kotlin/ac/dnd/bookkeeping/android/presentation/common/base/BaseFragment.kt similarity index 96% rename from presentation/src/main/kotlin/com/ray/template/presentation/common/base/BaseFragment.kt rename to presentation/src/main/kotlin/ac/dnd/bookkeeping/android/presentation/common/base/BaseFragment.kt index 225fa913..317bf9a8 100644 --- a/presentation/src/main/kotlin/com/ray/template/presentation/common/base/BaseFragment.kt +++ b/presentation/src/main/kotlin/ac/dnd/bookkeeping/android/presentation/common/base/BaseFragment.kt @@ -1,4 +1,4 @@ -package com.ray.template.presentation.common.base +package ac.dnd.bookkeeping.android.presentation.common.base import android.os.Bundle import android.view.LayoutInflater @@ -15,7 +15,7 @@ import androidx.lifecycle.viewModelScope import com.ray.rds.window.alert.AlertDialogFragmentProvider import com.ray.rds.window.loading.LoadingDialogFragmentProvider import com.ray.rds.window.snackbar.MessageSnackBar -import com.ray.template.presentation.common.util.coroutine.event.eventObserve +import ac.dnd.bookkeeping.android.presentation.common.util.coroutine.event.eventObserve import kotlinx.coroutines.CoroutineExceptionHandler import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.launch diff --git a/presentation/src/main/kotlin/com/ray/template/presentation/common/base/BaseViewModel.kt b/presentation/src/main/kotlin/ac/dnd/bookkeeping/android/presentation/common/base/BaseViewModel.kt similarity index 77% rename from presentation/src/main/kotlin/com/ray/template/presentation/common/base/BaseViewModel.kt rename to presentation/src/main/kotlin/ac/dnd/bookkeeping/android/presentation/common/base/BaseViewModel.kt index 4f5b92b3..d2862ab7 100644 --- a/presentation/src/main/kotlin/com/ray/template/presentation/common/base/BaseViewModel.kt +++ b/presentation/src/main/kotlin/ac/dnd/bookkeeping/android/presentation/common/base/BaseViewModel.kt @@ -1,10 +1,10 @@ -package com.ray.template.presentation.common.base +package ac.dnd.bookkeeping.android.presentation.common.base import androidx.lifecycle.ViewModel import androidx.lifecycle.viewModelScope -import com.ray.template.presentation.common.util.coroutine.event.EventFlow -import com.ray.template.presentation.common.util.coroutine.event.MutableEventFlow -import com.ray.template.presentation.common.util.coroutine.event.asEventFlow +import ac.dnd.bookkeeping.android.presentation.common.util.coroutine.event.EventFlow +import ac.dnd.bookkeeping.android.presentation.common.util.coroutine.event.MutableEventFlow +import ac.dnd.bookkeeping.android.presentation.common.util.coroutine.event.asEventFlow import kotlinx.coroutines.CoroutineExceptionHandler import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.flow.SharingStarted diff --git a/presentation/src/main/kotlin/ac/dnd/bookkeeping/android/presentation/common/base/ErrorEvent.kt b/presentation/src/main/kotlin/ac/dnd/bookkeeping/android/presentation/common/base/ErrorEvent.kt new file mode 100644 index 00000000..176b0d8c --- /dev/null +++ b/presentation/src/main/kotlin/ac/dnd/bookkeeping/android/presentation/common/base/ErrorEvent.kt @@ -0,0 +1,5 @@ +package ac.dnd.bookkeeping.android.presentation.common.base + +data class ErrorEvent( + val throwable: Throwable +) diff --git a/presentation/src/main/kotlin/com/ray/template/presentation/common/util/RecyclerViewUtil.kt b/presentation/src/main/kotlin/ac/dnd/bookkeeping/android/presentation/common/util/RecyclerViewUtil.kt similarity index 83% rename from presentation/src/main/kotlin/com/ray/template/presentation/common/util/RecyclerViewUtil.kt rename to presentation/src/main/kotlin/ac/dnd/bookkeeping/android/presentation/common/util/RecyclerViewUtil.kt index dbea12f4..c9fee9b6 100644 --- a/presentation/src/main/kotlin/com/ray/template/presentation/common/util/RecyclerViewUtil.kt +++ b/presentation/src/main/kotlin/ac/dnd/bookkeeping/android/presentation/common/util/RecyclerViewUtil.kt @@ -1,4 +1,4 @@ -package com.ray.template.presentation.common.util +package ac.dnd.bookkeeping.android.presentation.common.util import androidx.databinding.BindingAdapter import androidx.recyclerview.widget.ListAdapter diff --git a/presentation/src/main/kotlin/com/ray/template/presentation/common/util/TextViewUtil.kt b/presentation/src/main/kotlin/ac/dnd/bookkeeping/android/presentation/common/util/TextViewUtil.kt similarity index 93% rename from presentation/src/main/kotlin/com/ray/template/presentation/common/util/TextViewUtil.kt rename to presentation/src/main/kotlin/ac/dnd/bookkeeping/android/presentation/common/util/TextViewUtil.kt index 8f303b0e..d2d8db51 100644 --- a/presentation/src/main/kotlin/com/ray/template/presentation/common/util/TextViewUtil.kt +++ b/presentation/src/main/kotlin/ac/dnd/bookkeeping/android/presentation/common/util/TextViewUtil.kt @@ -1,4 +1,4 @@ -package com.ray.template.presentation.common.util +package ac.dnd.bookkeeping.android.presentation.common.util import android.graphics.Paint import android.view.inputmethod.InputMethodManager diff --git a/presentation/src/main/kotlin/com/ray/template/presentation/common/util/ViewUtil.kt b/presentation/src/main/kotlin/ac/dnd/bookkeeping/android/presentation/common/util/ViewUtil.kt similarity index 95% rename from presentation/src/main/kotlin/com/ray/template/presentation/common/util/ViewUtil.kt rename to presentation/src/main/kotlin/ac/dnd/bookkeeping/android/presentation/common/util/ViewUtil.kt index 85b046ca..f4f8482f 100644 --- a/presentation/src/main/kotlin/com/ray/template/presentation/common/util/ViewUtil.kt +++ b/presentation/src/main/kotlin/ac/dnd/bookkeeping/android/presentation/common/util/ViewUtil.kt @@ -1,4 +1,4 @@ -package com.ray.template.presentation.common.util +package ac.dnd.bookkeeping.android.presentation.common.util import android.content.res.ColorStateList import android.content.res.TypedArray diff --git a/presentation/src/main/kotlin/com/ray/template/presentation/common/util/coroutine/CoroutineUtil.kt b/presentation/src/main/kotlin/ac/dnd/bookkeeping/android/presentation/common/util/coroutine/CoroutineUtil.kt similarity index 87% rename from presentation/src/main/kotlin/com/ray/template/presentation/common/util/coroutine/CoroutineUtil.kt rename to presentation/src/main/kotlin/ac/dnd/bookkeeping/android/presentation/common/util/coroutine/CoroutineUtil.kt index a778821a..bc5f87bb 100644 --- a/presentation/src/main/kotlin/com/ray/template/presentation/common/util/coroutine/CoroutineUtil.kt +++ b/presentation/src/main/kotlin/ac/dnd/bookkeeping/android/presentation/common/util/coroutine/CoroutineUtil.kt @@ -1,4 +1,4 @@ -package com.ray.template.presentation.common.util.coroutine +package ac.dnd.bookkeeping.android.presentation.common.util.coroutine import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.async diff --git a/presentation/src/main/kotlin/com/ray/template/presentation/common/util/coroutine/event/EventFlow.kt b/presentation/src/main/kotlin/ac/dnd/bookkeeping/android/presentation/common/util/coroutine/event/EventFlow.kt similarity index 87% rename from presentation/src/main/kotlin/com/ray/template/presentation/common/util/coroutine/event/EventFlow.kt rename to presentation/src/main/kotlin/ac/dnd/bookkeeping/android/presentation/common/util/coroutine/event/EventFlow.kt index 14e3b8d0..8039c968 100644 --- a/presentation/src/main/kotlin/com/ray/template/presentation/common/util/coroutine/event/EventFlow.kt +++ b/presentation/src/main/kotlin/ac/dnd/bookkeeping/android/presentation/common/util/coroutine/event/EventFlow.kt @@ -1,4 +1,4 @@ -package com.ray.template.presentation.common.util.coroutine.event +package ac.dnd.bookkeeping.android.presentation.common.util.coroutine.event import kotlinx.coroutines.flow.Flow diff --git a/presentation/src/main/kotlin/com/ray/template/presentation/common/util/coroutine/event/EventFlowSlot.kt b/presentation/src/main/kotlin/ac/dnd/bookkeeping/android/presentation/common/util/coroutine/event/EventFlowSlot.kt similarity index 83% rename from presentation/src/main/kotlin/com/ray/template/presentation/common/util/coroutine/event/EventFlowSlot.kt rename to presentation/src/main/kotlin/ac/dnd/bookkeeping/android/presentation/common/util/coroutine/event/EventFlowSlot.kt index 03b2cfa2..a6ecef94 100644 --- a/presentation/src/main/kotlin/com/ray/template/presentation/common/util/coroutine/event/EventFlowSlot.kt +++ b/presentation/src/main/kotlin/ac/dnd/bookkeeping/android/presentation/common/util/coroutine/event/EventFlowSlot.kt @@ -1,4 +1,4 @@ -package com.ray.template.presentation.common.util.coroutine.event +package ac.dnd.bookkeeping.android.presentation.common.util.coroutine.event import java.util.concurrent.atomic.AtomicBoolean diff --git a/presentation/src/main/kotlin/com/ray/template/presentation/common/util/coroutine/event/MutableEventFlow.kt b/presentation/src/main/kotlin/ac/dnd/bookkeeping/android/presentation/common/util/coroutine/event/MutableEventFlow.kt similarity index 91% rename from presentation/src/main/kotlin/com/ray/template/presentation/common/util/coroutine/event/MutableEventFlow.kt rename to presentation/src/main/kotlin/ac/dnd/bookkeeping/android/presentation/common/util/coroutine/event/MutableEventFlow.kt index d40409fd..f13615d5 100644 --- a/presentation/src/main/kotlin/com/ray/template/presentation/common/util/coroutine/event/MutableEventFlow.kt +++ b/presentation/src/main/kotlin/ac/dnd/bookkeeping/android/presentation/common/util/coroutine/event/MutableEventFlow.kt @@ -1,4 +1,4 @@ -package com.ray.template.presentation.common.util.coroutine.event +package ac.dnd.bookkeeping.android.presentation.common.util.coroutine.event import kotlinx.coroutines.InternalCoroutinesApi import kotlinx.coroutines.flow.FlowCollector diff --git a/presentation/src/main/kotlin/ac/dnd/bookkeeping/android/presentation/model/bookkeeping/BookkeepingInformationModel.kt b/presentation/src/main/kotlin/ac/dnd/bookkeeping/android/presentation/model/bookkeeping/BookkeepingInformationModel.kt new file mode 100644 index 00000000..a1ddc04f --- /dev/null +++ b/presentation/src/main/kotlin/ac/dnd/bookkeeping/android/presentation/model/bookkeeping/BookkeepingInformationModel.kt @@ -0,0 +1,15 @@ +package ac.dnd.bookkeeping.android.presentation.model.bookkeeping + +import android.os.Parcelable +import ac.dnd.bookkeeping.android.domain.model.bookkeeping.BookkeepingInformation +import kotlinx.parcelize.Parcelize + +@Parcelize +data class BookkeepingInformationModel( + val lyricsId: Int = 0, + val lyricsBody: String = "" +) : Parcelable + +fun BookkeepingInformation.toUiModel(): BookkeepingInformationModel { + return BookkeepingInformationModel(lyricsId, lyricsBody) +} diff --git a/presentation/src/main/kotlin/com/ray/template/presentation/ui/home/HomeFragment.kt b/presentation/src/main/kotlin/ac/dnd/bookkeeping/android/presentation/ui/home/HomeFragment.kt similarity index 72% rename from presentation/src/main/kotlin/com/ray/template/presentation/ui/home/HomeFragment.kt rename to presentation/src/main/kotlin/ac/dnd/bookkeeping/android/presentation/ui/home/HomeFragment.kt index b312336f..896b90e6 100644 --- a/presentation/src/main/kotlin/com/ray/template/presentation/ui/home/HomeFragment.kt +++ b/presentation/src/main/kotlin/ac/dnd/bookkeeping/android/presentation/ui/home/HomeFragment.kt @@ -1,9 +1,9 @@ -package com.ray.template.presentation.ui.home +package ac.dnd.bookkeeping.android.presentation.ui.home import androidx.fragment.app.viewModels -import com.ray.template.presentation.databinding.FragmentHomeBinding -import com.ray.template.presentation.common.base.BaseFragment -import com.ray.template.presentation.common.util.coroutine.event.eventObserve +import ac.dnd.bookkeeping.android.presentation.databinding.FragmentHomeBinding +import ac.dnd.bookkeeping.android.presentation.common.base.BaseFragment +import ac.dnd.bookkeeping.android.presentation.common.util.coroutine.event.eventObserve import dagger.hilt.android.AndroidEntryPoint @AndroidEntryPoint diff --git a/presentation/src/main/kotlin/com/ray/template/presentation/ui/home/HomeState.kt b/presentation/src/main/kotlin/ac/dnd/bookkeeping/android/presentation/ui/home/HomeState.kt similarity index 52% rename from presentation/src/main/kotlin/com/ray/template/presentation/ui/home/HomeState.kt rename to presentation/src/main/kotlin/ac/dnd/bookkeeping/android/presentation/ui/home/HomeState.kt index 162cf6ed..a30c16b5 100644 --- a/presentation/src/main/kotlin/com/ray/template/presentation/ui/home/HomeState.kt +++ b/presentation/src/main/kotlin/ac/dnd/bookkeeping/android/presentation/ui/home/HomeState.kt @@ -1,4 +1,4 @@ -package com.ray.template.presentation.ui.home +package ac.dnd.bookkeeping.android.presentation.ui.home sealed class HomeState { data object Init : HomeState() diff --git a/presentation/src/main/kotlin/com/ray/template/presentation/ui/home/HomeViewEvent.kt b/presentation/src/main/kotlin/ac/dnd/bookkeeping/android/presentation/ui/home/HomeViewEvent.kt similarity index 56% rename from presentation/src/main/kotlin/com/ray/template/presentation/ui/home/HomeViewEvent.kt rename to presentation/src/main/kotlin/ac/dnd/bookkeeping/android/presentation/ui/home/HomeViewEvent.kt index d8785e04..1fde61a1 100644 --- a/presentation/src/main/kotlin/com/ray/template/presentation/ui/home/HomeViewEvent.kt +++ b/presentation/src/main/kotlin/ac/dnd/bookkeeping/android/presentation/ui/home/HomeViewEvent.kt @@ -1,4 +1,4 @@ -package com.ray.template.presentation.ui.home +package ac.dnd.bookkeeping.android.presentation.ui.home sealed class HomeViewEvent { data object Confirm : HomeViewEvent() diff --git a/presentation/src/main/kotlin/com/ray/template/presentation/ui/home/HomeViewModel.kt b/presentation/src/main/kotlin/ac/dnd/bookkeeping/android/presentation/ui/home/HomeViewModel.kt similarity index 63% rename from presentation/src/main/kotlin/com/ray/template/presentation/ui/home/HomeViewModel.kt rename to presentation/src/main/kotlin/ac/dnd/bookkeeping/android/presentation/ui/home/HomeViewModel.kt index f7850328..cd0c6b7c 100644 --- a/presentation/src/main/kotlin/com/ray/template/presentation/ui/home/HomeViewModel.kt +++ b/presentation/src/main/kotlin/ac/dnd/bookkeeping/android/presentation/ui/home/HomeViewModel.kt @@ -1,9 +1,9 @@ -package com.ray.template.presentation.ui.home +package ac.dnd.bookkeeping.android.presentation.ui.home -import com.ray.template.presentation.common.base.BaseViewModel -import com.ray.template.presentation.common.util.coroutine.event.EventFlow -import com.ray.template.presentation.common.util.coroutine.event.MutableEventFlow -import com.ray.template.presentation.common.util.coroutine.event.asEventFlow +import ac.dnd.bookkeeping.android.presentation.common.base.BaseViewModel +import ac.dnd.bookkeeping.android.presentation.common.util.coroutine.event.EventFlow +import ac.dnd.bookkeeping.android.presentation.common.util.coroutine.event.MutableEventFlow +import ac.dnd.bookkeeping.android.presentation.common.util.coroutine.event.asEventFlow import dagger.hilt.android.lifecycle.HiltViewModel import javax.inject.Inject import kotlinx.coroutines.flow.MutableStateFlow diff --git a/presentation/src/main/kotlin/com/ray/template/presentation/ui/main/MainActivity.kt b/presentation/src/main/kotlin/ac/dnd/bookkeeping/android/presentation/ui/main/MainActivity.kt similarity index 65% rename from presentation/src/main/kotlin/com/ray/template/presentation/ui/main/MainActivity.kt rename to presentation/src/main/kotlin/ac/dnd/bookkeeping/android/presentation/ui/main/MainActivity.kt index fa4fac66..b6a1e2dd 100644 --- a/presentation/src/main/kotlin/com/ray/template/presentation/ui/main/MainActivity.kt +++ b/presentation/src/main/kotlin/ac/dnd/bookkeeping/android/presentation/ui/main/MainActivity.kt @@ -1,8 +1,8 @@ -package com.ray.template.presentation.ui.main +package ac.dnd.bookkeeping.android.presentation.ui.main import androidx.activity.viewModels -import com.ray.template.presentation.databinding.ActivityMainBinding -import com.ray.template.presentation.common.base.BaseActivity +import ac.dnd.bookkeeping.android.presentation.databinding.ActivityMainBinding +import ac.dnd.bookkeeping.android.presentation.common.base.BaseActivity import dagger.hilt.android.AndroidEntryPoint @AndroidEntryPoint diff --git a/presentation/src/main/kotlin/com/ray/template/presentation/ui/main/MainViewModel.kt b/presentation/src/main/kotlin/ac/dnd/bookkeeping/android/presentation/ui/main/MainViewModel.kt similarity index 54% rename from presentation/src/main/kotlin/com/ray/template/presentation/ui/main/MainViewModel.kt rename to presentation/src/main/kotlin/ac/dnd/bookkeeping/android/presentation/ui/main/MainViewModel.kt index 54d530d6..e432aebd 100644 --- a/presentation/src/main/kotlin/com/ray/template/presentation/ui/main/MainViewModel.kt +++ b/presentation/src/main/kotlin/ac/dnd/bookkeeping/android/presentation/ui/main/MainViewModel.kt @@ -1,6 +1,6 @@ -package com.ray.template.presentation.ui.main +package ac.dnd.bookkeeping.android.presentation.ui.main -import com.ray.template.presentation.common.base.BaseViewModel +import ac.dnd.bookkeeping.android.presentation.common.base.BaseViewModel import dagger.hilt.android.lifecycle.HiltViewModel import javax.inject.Inject diff --git a/presentation/src/main/kotlin/com/ray/template/presentation/common/base/ErrorEvent.kt b/presentation/src/main/kotlin/com/ray/template/presentation/common/base/ErrorEvent.kt deleted file mode 100644 index 16ce4350..00000000 --- a/presentation/src/main/kotlin/com/ray/template/presentation/common/base/ErrorEvent.kt +++ /dev/null @@ -1,5 +0,0 @@ -package com.ray.template.presentation.common.base - -data class ErrorEvent( - val throwable: Throwable -) diff --git a/presentation/src/main/kotlin/com/ray/template/presentation/model/SampleInformationModel.kt b/presentation/src/main/kotlin/com/ray/template/presentation/model/SampleInformationModel.kt deleted file mode 100644 index f924a21c..00000000 --- a/presentation/src/main/kotlin/com/ray/template/presentation/model/SampleInformationModel.kt +++ /dev/null @@ -1,15 +0,0 @@ -package com.ray.template.presentation.model - -import android.os.Parcelable -import com.ray.template.domain.model.sample.SampleInformation -import kotlinx.parcelize.Parcelize - -@Parcelize -data class SampleInformationModel( - val lyricsId: Int = 0, - val lyricsBody: String = "" -) : Parcelable - -fun SampleInformation.toUiModel(): SampleInformationModel { - return SampleInformationModel(lyricsId, lyricsBody) -} diff --git a/presentation/src/main/res/layout/activity_main.xml b/presentation/src/main/res/layout/activity_main.xml index 975e950a..7b06d467 100644 --- a/presentation/src/main/res/layout/activity_main.xml +++ b/presentation/src/main/res/layout/activity_main.xml @@ -6,7 +6,7 @@ + type="ac.dnd.bookkeeping.android.presentation.ui.main.MainViewModel" /> + type="ac.dnd.bookkeeping.android.presentation.ui.home.HomeViewModel" /> diff --git a/presentation/src/main/res/values/theme.xml b/presentation/src/main/res/values/theme.xml index 7b5b1e26..7e890d18 100644 --- a/presentation/src/main/res/values/theme.xml +++ b/presentation/src/main/res/values/theme.xml @@ -1,11 +1,11 @@ - - diff --git a/settings.gradle.kts b/settings.gradle.kts index cd90835a..ab7358d3 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -17,7 +17,7 @@ dependencyResolutionManagement { } } -rootProject.name = "template" +rootProject.name = "bookkeeping" include(":app") include(":common") include(":presentation")