From 678f09907e28ef7879855229a78079cbae3c294c Mon Sep 17 00:00:00 2001 From: bmsk Date: Wed, 15 Nov 2023 00:04:34 +0900 Subject: [PATCH] =?UTF-8?q?[Refact]=20gradle=20=EC=84=A4=EC=A0=95=20?= =?UTF-8?q?=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/build.gradle.kts | 119 ++++++----- .../{cazait_android => }/CaZaItApplication.kt | 6 +- .../cazait/{cazait_android => }/Constants.kt | 4 +- .../cazait/cazait_android/data/Resource.kt | 7 - .../cazait_android/data/model/CafeMenus.kt | 5 - .../data/model/CafeRatingReview.kt | 6 - .../cazait/cazait_android/data/model/Cafes.kt | 5 - .../cazait_android/data/model/ReviewDatas.kt | 5 - .../data/model/local/AppDatabase.kt | 9 - .../datasource/CafeInfoRemoteDataSource.kt | 14 -- .../remote/datasource/CafeRemoteDataSource.kt | 15 -- .../remote/datasource/UserRemoteDataSource.kt | 16 -- .../model/remote/request/ReviewRequest.kt | 5 - .../model/remote/request/SignUpRequest.kt | 7 - .../data/repository/DataRepository.kt | 22 -- .../cazait/cazait_android/di/DataModule.kt | 24 --- .../cazait_android/di/DatabaseModule.kt | 32 --- .../ui/base/RecyclerItemListener.kt | 7 - .../cafelist/info/util/OnMapTouchListener.kt | 5 - .../ui/viewmodel/CafeInfoImgViewModel.kt | 12 -- .../ui/viewmodel/CafeRecentViewModel.kt | 47 ----- .../ui/viewmodel/MainViewModel.kt | 9 - .../cazait_android/ui/viewmodel/ViewModel.kt | 5 - .../usecase/errors/ErrorUseCase.kt | 7 - .../data/InterestCheckStatus.kt | 2 +- app/src/main/java/org/cazait/data/Resource.kt | 7 + .../data/api/CafeService.kt | 35 ++-- .../data/api/UserService.kt | 18 +- .../{cazait_android => }/data/error/Error.kt | 4 +- .../data/error/mapper/ErrorMapper.kt | 17 +- .../data/error/mapper/ErrorMapperSource.kt | 4 +- .../{cazait_android => }/data/model/Cafe.kt | 8 +- .../data/model/CafeImageRes.kt | 6 +- .../data/model/CafeInfo.kt | 6 +- .../data/model/CafeMenu.kt | 4 +- .../java/org/cazait/data/model/CafeMenus.kt | 5 + .../org/cazait/data/model/CafeRatingReview.kt | 6 + .../main/java/org/cazait/data/model/Cafes.kt | 5 + .../data/model/ReviewData.kt | 6 +- .../java/org/cazait/data/model/ReviewDatas.kt | 5 + .../{cazait_android => }/data/model/User.kt | 4 +- .../cazait/data/model/local/AppDatabase.kt | 6 + .../data/model/local/LocalData.kt | 14 +- .../data/model/local/Log.kt | 4 +- .../data/model/local/LogDao.kt | 13 +- .../data/model/local/SignUpDBHelper.kt | 4 +- .../data/model/remote/ServiceGenerator.kt | 28 +-- .../remote/datasource/CafeInfoRemoteData.kt | 30 +-- .../datasource/CafeInfoRemoteDataSource.kt | 18 ++ .../model/remote/datasource/CafeRemoteData.kt | 51 ++--- .../remote/datasource/CafeRemoteDataSource.kt | 15 ++ .../model/remote/datasource/UserRemoteData.kt | 51 +++-- .../remote/datasource/UserRemoteDataSource.kt | 18 ++ .../model/remote/request/CafeListRequest.kt | 6 +- .../data/model/remote/request/LoginRequest.kt | 4 +- .../data/model/remote/request/MenuRequest.kt | 6 +- .../model/remote/request/ReviewEditRequest.kt | 4 +- .../model/remote/request/ReviewRequest.kt | 5 + .../model/remote/request/SignUpRequest.kt | 7 + .../model/remote/response/CafeListResponse.kt | 8 +- .../response/DeleteInterestCafeResponse.kt | 4 +- .../remote/response/InterestCafesResponse.kt | 9 +- .../response/IsDuplicateEmailResponse.kt | 4 +- .../model/remote/response/LoginResponse.kt | 8 +- .../model/remote/response/MenuResponse.kt | 10 +- .../response/PostInterestCafeResponse.kt | 6 +- .../remote/response/ReviewEditResponse.kt | 8 +- .../model/remote/response/ReviewResponse.kt | 14 +- .../model/remote/response/SignUpResponse.kt | 6 +- .../model/remote/response/TokenResponse.kt | 6 +- .../cazait/data/repository/DataRepository.kt | 33 +++ .../data/repository/DataRepositoryImpl.kt | 34 ++-- .../data/repository/UserRepository.kt | 16 +- .../data/repository/UserRepositoryImpl.kt | 28 +-- .../{cazait_android => }/di/AppModule.kt | 10 +- app/src/main/java/org/cazait/di/DataModule.kt | 24 +++ .../main/java/org/cazait/di/DatabaseModule.kt | 32 +++ .../{cazait_android => }/di/ErrorModule.kt | 12 +- .../usecase => }/errors/ErrorManager.kt | 8 +- .../java/org/cazait/errors/ErrorUseCase.kt | 7 + .../{cazait_android => }/network/Network.kt | 4 +- .../network/NetworkConnectivity.kt | 4 +- .../ui/adapter/CafeImgAdapter.kt | 8 +- .../ui/adapter/CafeInfoMenuAdapter.kt | 16 +- .../ui/adapter/CafeInfoReviewAdapter.kt | 16 +- .../ui/adapter/CafeInterestAdapter.kt | 18 +- .../ui/adapter/CafeListItemAdapter.kt | 16 +- .../ui/adapter/CafeRecentlyAdapter.kt | 12 +- .../ui/adapter/GridSpacingItemDecoration.kt | 9 +- .../ui/adapter/MarginItemDecoration.kt | 4 +- .../ui/adapter/binding/ViewBinding.kt | 8 +- .../ui/adapter/holder/CafesViewHolder.kt | 23 +-- .../ui/adapter/holder/MenusViewHolder.kt | 8 +- .../ui/adapter/holder/ReviewsViewHolder.kt | 8 +- .../ui/base/BaseActivity.kt | 6 +- .../ui/base/BaseFragment.kt | 14 +- .../ui/base/BaseViewModel.kt | 4 +- .../cazait/ui/base/RecyclerItemListener.kt | 7 + .../ui/util/SingleEvent.kt | 4 +- .../ui/util/extension/ArchComponentExt.kt | 9 +- .../ui/util/extension/UnitExt.kt | 3 +- .../ui/util/extension/ViewExt.kt | 44 ++-- .../ui/view/MainActivity.kt | 33 +-- .../ui/view/cafelist/CafeListFragment.kt | 47 +++-- .../cafelist/info/CafeInformationActivity.kt | 64 +++--- .../info/inner/CafeLocTransFragment.kt | 39 ++-- .../cafelist/info/inner/CafeMenuFragment.kt | 37 ++-- .../inner/CafeRatingReviewEditActivity.kt | 28 +-- .../info/inner/CafeRatingReviewFragment.kt | 38 ++-- .../cafelist/info/inner/ImageSlideFragment.kt | 14 +- .../cafelist/info/util/OnMapTouchListener.kt | 5 + .../cafelist/info/util/TouchableWrapper.kt | 6 +- .../ui/view/interest/CafeInterestFragment.kt | 67 +++--- .../ui/view/login/LoginActivity.kt | 32 +-- .../ui/view/mypage/MyPageFragment.kt | 23 +-- .../view/mypage/recent/CafeRecentActivity.kt | 14 +- .../ui/view/signup/CheckTextWatcher.kt | 4 +- .../ui/view/signup/SignUpActivity.kt | 56 +++--- .../ui/view/viewmore/ViewMoreFragment.kt | 15 +- .../ui/viewmodel/CafeInfoImgViewModel.kt | 10 + .../ui/viewmodel/CafeInfoLocTransViewModel.kt | 15 +- .../ui/viewmodel/CafeInfoMenuViewModel.kt | 18 +- .../viewmodel/CafeInfoReviewEditViewModel.kt | 26 +-- .../ui/viewmodel/CafeInfoReviewViewModel.kt | 19 +- .../ui/viewmodel/CafeInfoViewModel.kt | 17 +- .../ui/viewmodel/CafeInterestViewModel.kt | 43 ++-- .../ui/viewmodel/CafeListViewModel.kt | 38 ++-- .../ui/viewmodel/CafeRecentViewModel.kt | 190 ++++++++++++++++++ .../ui/viewmodel/LoginViewModel.kt | 16 +- .../org/cazait/ui/viewmodel/MainViewModel.kt | 8 + .../ui/viewmodel/MyPageViewModel.kt | 13 +- .../ui/viewmodel/SignUpViewModel.kt | 21 +- .../java/org/cazait/ui/viewmodel/ViewModel.kt | 5 + .../ui/viewmodel/ext/ViewModelScopeExt.kt | 10 +- .../res/layout/activity_cafe_information.xml | 2 +- app/src/main/res/layout/activity_login.xml | 2 +- app/src/main/res/layout/activity_main.xml | 2 +- app/src/main/res/layout/activity_sign_up.xml | 2 +- .../main/res/layout/fragment_cafe_list.xml | 2 +- .../res/layout/fragment_cafe_loc_trans.xml | 8 +- .../main/res/layout/item_cafe_info_menu.xml | 2 +- .../layout/item_cafe_info_rating_review.xml | 2 +- .../main/res/layout/item_cafe_interest.xml | 2 +- app/src/main/res/layout/item_cafe_main.xml | 2 +- app/src/main/res/layout/item_cafe_recent.xml | 2 +- build.gradle | 66 ------ build.gradle.kts | 18 ++ gradle/libs.versions.toml | 88 +++++++- gradle/wrapper/gradle-wrapper.properties | 6 +- settings.gradle => settings.gradle.kts | 12 +- 150 files changed, 1387 insertions(+), 1153 deletions(-) rename app/src/main/java/org/cazait/{cazait_android => }/CaZaItApplication.kt (78%) rename app/src/main/java/org/cazait/{cazait_android => }/Constants.kt (88%) delete mode 100644 app/src/main/java/org/cazait/cazait_android/data/Resource.kt delete mode 100644 app/src/main/java/org/cazait/cazait_android/data/model/CafeMenus.kt delete mode 100644 app/src/main/java/org/cazait/cazait_android/data/model/CafeRatingReview.kt delete mode 100644 app/src/main/java/org/cazait/cazait_android/data/model/Cafes.kt delete mode 100644 app/src/main/java/org/cazait/cazait_android/data/model/ReviewDatas.kt delete mode 100644 app/src/main/java/org/cazait/cazait_android/data/model/local/AppDatabase.kt delete mode 100644 app/src/main/java/org/cazait/cazait_android/data/model/remote/datasource/CafeInfoRemoteDataSource.kt delete mode 100644 app/src/main/java/org/cazait/cazait_android/data/model/remote/datasource/CafeRemoteDataSource.kt delete mode 100644 app/src/main/java/org/cazait/cazait_android/data/model/remote/datasource/UserRemoteDataSource.kt delete mode 100644 app/src/main/java/org/cazait/cazait_android/data/model/remote/request/ReviewRequest.kt delete mode 100644 app/src/main/java/org/cazait/cazait_android/data/model/remote/request/SignUpRequest.kt delete mode 100644 app/src/main/java/org/cazait/cazait_android/data/repository/DataRepository.kt delete mode 100644 app/src/main/java/org/cazait/cazait_android/di/DataModule.kt delete mode 100644 app/src/main/java/org/cazait/cazait_android/di/DatabaseModule.kt delete mode 100644 app/src/main/java/org/cazait/cazait_android/ui/base/RecyclerItemListener.kt delete mode 100644 app/src/main/java/org/cazait/cazait_android/ui/view/cafelist/info/util/OnMapTouchListener.kt delete mode 100644 app/src/main/java/org/cazait/cazait_android/ui/viewmodel/CafeInfoImgViewModel.kt delete mode 100644 app/src/main/java/org/cazait/cazait_android/ui/viewmodel/CafeRecentViewModel.kt delete mode 100644 app/src/main/java/org/cazait/cazait_android/ui/viewmodel/MainViewModel.kt delete mode 100644 app/src/main/java/org/cazait/cazait_android/ui/viewmodel/ViewModel.kt delete mode 100644 app/src/main/java/org/cazait/cazait_android/usecase/errors/ErrorUseCase.kt rename app/src/main/java/org/cazait/{cazait_android => }/data/InterestCheckStatus.kt (65%) create mode 100644 app/src/main/java/org/cazait/data/Resource.kt rename app/src/main/java/org/cazait/{cazait_android => }/data/api/CafeService.kt (55%) rename app/src/main/java/org/cazait/{cazait_android => }/data/api/UserService.kt (58%) rename app/src/main/java/org/cazait/{cazait_android => }/data/error/Error.kt (83%) rename app/src/main/java/org/cazait/{cazait_android => }/data/error/mapper/ErrorMapper.kt (69%) rename app/src/main/java/org/cazait/{cazait_android => }/data/error/mapper/ErrorMapperSource.kt (67%) rename app/src/main/java/org/cazait/{cazait_android => }/data/model/Cafe.kt (89%) rename app/src/main/java/org/cazait/{cazait_android => }/data/model/CafeImageRes.kt (60%) rename app/src/main/java/org/cazait/{cazait_android => }/data/model/CafeInfo.kt (50%) rename app/src/main/java/org/cazait/{cazait_android => }/data/model/CafeMenu.kt (66%) create mode 100644 app/src/main/java/org/cazait/data/model/CafeMenus.kt create mode 100644 app/src/main/java/org/cazait/data/model/CafeRatingReview.kt create mode 100644 app/src/main/java/org/cazait/data/model/Cafes.kt rename app/src/main/java/org/cazait/{cazait_android => }/data/model/ReviewData.kt (69%) create mode 100644 app/src/main/java/org/cazait/data/model/ReviewDatas.kt rename app/src/main/java/org/cazait/{cazait_android => }/data/model/User.kt (52%) create mode 100644 app/src/main/java/org/cazait/data/model/local/AppDatabase.kt rename app/src/main/java/org/cazait/{cazait_android => }/data/model/local/LocalData.kt (88%) rename app/src/main/java/org/cazait/{cazait_android => }/data/model/local/Log.kt (79%) rename app/src/main/java/org/cazait/{cazait_android => }/data/model/local/LogDao.kt (66%) rename app/src/main/java/org/cazait/{cazait_android => }/data/model/local/SignUpDBHelper.kt (94%) rename app/src/main/java/org/cazait/{cazait_android => }/data/model/remote/ServiceGenerator.kt (82%) rename app/src/main/java/org/cazait/{cazait_android => }/data/model/remote/datasource/CafeInfoRemoteData.kt (72%) create mode 100644 app/src/main/java/org/cazait/data/model/remote/datasource/CafeInfoRemoteDataSource.kt rename app/src/main/java/org/cazait/{cazait_android => }/data/model/remote/datasource/CafeRemoteData.kt (70%) create mode 100644 app/src/main/java/org/cazait/data/model/remote/datasource/CafeRemoteDataSource.kt rename app/src/main/java/org/cazait/{cazait_android => }/data/model/remote/datasource/UserRemoteData.kt (56%) create mode 100644 app/src/main/java/org/cazait/data/model/remote/datasource/UserRemoteDataSource.kt rename app/src/main/java/org/cazait/{cazait_android => }/data/model/remote/request/CafeListRequest.kt (56%) rename app/src/main/java/org/cazait/{cazait_android => }/data/model/remote/request/LoginRequest.kt (65%) rename app/src/main/java/org/cazait/{cazait_android => }/data/model/remote/request/MenuRequest.kt (56%) rename app/src/main/java/org/cazait/{cazait_android => }/data/model/remote/request/ReviewEditRequest.kt (56%) create mode 100644 app/src/main/java/org/cazait/data/model/remote/request/ReviewRequest.kt create mode 100644 app/src/main/java/org/cazait/data/model/remote/request/SignUpRequest.kt rename app/src/main/java/org/cazait/{cazait_android => }/data/model/remote/response/CafeListResponse.kt (75%) rename app/src/main/java/org/cazait/{cazait_android => }/data/model/remote/response/DeleteInterestCafeResponse.kt (69%) rename app/src/main/java/org/cazait/{cazait_android => }/data/model/remote/response/InterestCafesResponse.kt (67%) rename app/src/main/java/org/cazait/{cazait_android => }/data/model/remote/response/IsDuplicateEmailResponse.kt (56%) rename app/src/main/java/org/cazait/{cazait_android => }/data/model/remote/response/LoginResponse.kt (80%) rename app/src/main/java/org/cazait/{cazait_android => }/data/model/remote/response/MenuResponse.kt (64%) rename app/src/main/java/org/cazait/{cazait_android => }/data/model/remote/response/PostInterestCafeResponse.kt (57%) rename app/src/main/java/org/cazait/{cazait_android => }/data/model/remote/response/ReviewEditResponse.kt (76%) rename app/src/main/java/org/cazait/{cazait_android => }/data/model/remote/response/ReviewResponse.kt (66%) rename app/src/main/java/org/cazait/{cazait_android => }/data/model/remote/response/SignUpResponse.kt (73%) rename app/src/main/java/org/cazait/{cazait_android => }/data/model/remote/response/TokenResponse.kt (70%) create mode 100644 app/src/main/java/org/cazait/data/repository/DataRepository.kt rename app/src/main/java/org/cazait/{cazait_android => }/data/repository/DataRepositoryImpl.kt (66%) rename app/src/main/java/org/cazait/{cazait_android => }/data/repository/UserRepository.kt (55%) rename app/src/main/java/org/cazait/{cazait_android => }/data/repository/UserRepositoryImpl.kt (74%) rename app/src/main/java/org/cazait/{cazait_android => }/di/AppModule.kt (87%) create mode 100644 app/src/main/java/org/cazait/di/DataModule.kt create mode 100644 app/src/main/java/org/cazait/di/DatabaseModule.kt rename app/src/main/java/org/cazait/{cazait_android => }/di/ErrorModule.kt (60%) rename app/src/main/java/org/cazait/{cazait_android/usecase => }/errors/ErrorManager.kt (62%) create mode 100644 app/src/main/java/org/cazait/errors/ErrorUseCase.kt rename app/src/main/java/org/cazait/{cazait_android => }/network/Network.kt (92%) rename app/src/main/java/org/cazait/{cazait_android => }/network/NetworkConnectivity.kt (75%) rename app/src/main/java/org/cazait/{cazait_android => }/ui/adapter/CafeImgAdapter.kt (88%) rename app/src/main/java/org/cazait/{cazait_android => }/ui/adapter/CafeInfoMenuAdapter.kt (72%) rename app/src/main/java/org/cazait/{cazait_android => }/ui/adapter/CafeInfoReviewAdapter.kt (74%) rename app/src/main/java/org/cazait/{cazait_android => }/ui/adapter/CafeInterestAdapter.kt (72%) rename app/src/main/java/org/cazait/{cazait_android => }/ui/adapter/CafeListItemAdapter.kt (70%) rename app/src/main/java/org/cazait/{cazait_android => }/ui/adapter/CafeRecentlyAdapter.kt (86%) rename app/src/main/java/org/cazait/{cazait_android => }/ui/adapter/GridSpacingItemDecoration.kt (76%) rename app/src/main/java/org/cazait/{cazait_android => }/ui/adapter/MarginItemDecoration.kt (93%) rename app/src/main/java/org/cazait/{cazait_android => }/ui/adapter/binding/ViewBinding.kt (75%) rename app/src/main/java/org/cazait/{cazait_android => }/ui/adapter/holder/CafesViewHolder.kt (82%) rename app/src/main/java/org/cazait/{cazait_android => }/ui/adapter/holder/MenusViewHolder.kt (55%) rename app/src/main/java/org/cazait/{cazait_android => }/ui/adapter/holder/ReviewsViewHolder.kt (56%) rename app/src/main/java/org/cazait/{cazait_android => }/ui/base/BaseActivity.kt (96%) rename app/src/main/java/org/cazait/{cazait_android => }/ui/base/BaseFragment.kt (76%) rename app/src/main/java/org/cazait/{cazait_android => }/ui/base/BaseViewModel.kt (61%) create mode 100644 app/src/main/java/org/cazait/ui/base/RecyclerItemListener.kt rename app/src/main/java/org/cazait/{cazait_android => }/ui/util/SingleEvent.kt (92%) rename app/src/main/java/org/cazait/{cazait_android => }/ui/util/extension/ArchComponentExt.kt (60%) rename app/src/main/java/org/cazait/{cazait_android => }/ui/util/extension/UnitExt.kt (83%) rename app/src/main/java/org/cazait/{cazait_android => }/ui/util/extension/ViewExt.kt (70%) rename app/src/main/java/org/cazait/{cazait_android => }/ui/view/MainActivity.kt (81%) rename app/src/main/java/org/cazait/{cazait_android => }/ui/view/cafelist/CafeListFragment.kt (82%) rename app/src/main/java/org/cazait/{cazait_android => }/ui/view/cafelist/info/CafeInformationActivity.kt (73%) rename app/src/main/java/org/cazait/{cazait_android => }/ui/view/cafelist/info/inner/CafeLocTransFragment.kt (75%) rename app/src/main/java/org/cazait/{cazait_android => }/ui/view/cafelist/info/inner/CafeMenuFragment.kt (77%) rename app/src/main/java/org/cazait/{cazait_android => }/ui/view/cafelist/info/inner/CafeRatingReviewEditActivity.kt (73%) rename app/src/main/java/org/cazait/{cazait_android => }/ui/view/cafelist/info/inner/CafeRatingReviewFragment.kt (80%) rename app/src/main/java/org/cazait/{cazait_android => }/ui/view/cafelist/info/inner/ImageSlideFragment.kt (65%) create mode 100644 app/src/main/java/org/cazait/ui/view/cafelist/info/util/OnMapTouchListener.kt rename app/src/main/java/org/cazait/{cazait_android => }/ui/view/cafelist/info/util/TouchableWrapper.kt (82%) rename app/src/main/java/org/cazait/{cazait_android => }/ui/view/interest/CafeInterestFragment.kt (76%) rename app/src/main/java/org/cazait/{cazait_android => }/ui/view/login/LoginActivity.kt (77%) rename app/src/main/java/org/cazait/{cazait_android => }/ui/view/mypage/MyPageFragment.kt (70%) rename app/src/main/java/org/cazait/{cazait_android => }/ui/view/mypage/recent/CafeRecentActivity.kt (80%) rename app/src/main/java/org/cazait/{cazait_android => }/ui/view/signup/CheckTextWatcher.kt (91%) rename app/src/main/java/org/cazait/{cazait_android => }/ui/view/signup/SignUpActivity.kt (88%) rename app/src/main/java/org/cazait/{cazait_android => }/ui/view/viewmore/ViewMoreFragment.kt (63%) create mode 100644 app/src/main/java/org/cazait/ui/viewmodel/CafeInfoImgViewModel.kt rename app/src/main/java/org/cazait/{cazait_android => }/ui/viewmodel/CafeInfoLocTransViewModel.kt (71%) rename app/src/main/java/org/cazait/{cazait_android => }/ui/viewmodel/CafeInfoMenuViewModel.kt (73%) rename app/src/main/java/org/cazait/{cazait_android => }/ui/viewmodel/CafeInfoReviewEditViewModel.kt (58%) rename app/src/main/java/org/cazait/{cazait_android => }/ui/viewmodel/CafeInfoReviewViewModel.kt (65%) rename app/src/main/java/org/cazait/{cazait_android => }/ui/viewmodel/CafeInfoViewModel.kt (84%) rename app/src/main/java/org/cazait/{cazait_android => }/ui/viewmodel/CafeInterestViewModel.kt (68%) rename app/src/main/java/org/cazait/{cazait_android => }/ui/viewmodel/CafeListViewModel.kt (83%) create mode 100644 app/src/main/java/org/cazait/ui/viewmodel/CafeRecentViewModel.kt rename app/src/main/java/org/cazait/{cazait_android => }/ui/viewmodel/LoginViewModel.kt (83%) create mode 100644 app/src/main/java/org/cazait/ui/viewmodel/MainViewModel.kt rename app/src/main/java/org/cazait/{cazait_android => }/ui/viewmodel/MyPageViewModel.kt (67%) rename app/src/main/java/org/cazait/{cazait_android => }/ui/viewmodel/SignUpViewModel.kt (69%) create mode 100644 app/src/main/java/org/cazait/ui/viewmodel/ViewModel.kt rename app/src/main/java/org/cazait/{cazait_android => }/ui/viewmodel/ext/ViewModelScopeExt.kt (67%) delete mode 100644 build.gradle create mode 100644 build.gradle.kts rename settings.gradle => settings.gradle.kts (69%) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 5a2ec63..5288240 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -2,19 +2,17 @@ plugins { id("com.android.application") id("kotlin-android") id("kotlin-parcelize") - id("kotlin-platform-android") - id("kotlin-kapt") + kotlin("kapt") id("dagger.hilt.android.plugin") - id("com.google.devtools.ksp") version ("1.8.0-1.0.9") id("org.jetbrains.kotlin.android") } android { - namespace = "org.cazait.app" - compileSdk = 33 + namespace = "org.cazait" + compileSdk = 34 defaultConfig { - applicationId = "org.cazait.cazait" + applicationId = "org.cazait" minSdk = 28 versionCode = 1 versionName = "1.0" @@ -25,7 +23,7 @@ android { isMinifyEnabled = false proguardFiles( getDefaultProguardFile("proguard-android-optimize.txt"), - "proguard-rules.pro" + "proguard-rules.pro", ) } } @@ -42,88 +40,85 @@ android { } dependencies { - //AndroidX - implementation("androidx.core:core-ktx:1.9.0") - implementation("androidx.appcompat:appcompat:1.6.0") - implementation("androidx.constraintlayout:constraintlayout:2.1.4") + // AndroidX + implementation(libs.androidx.core.ktx) + implementation(libs.androidx.appcompat) + implementation(libs.androidx.constraintlayout) - //retrofit - implementation("com.squareup.retrofit2:retrofit:2.9.0") - implementation("com.squareup.retrofit2:converter-moshi:2.9.0") - implementation("com.squareup.retrofit2:adapter-rxjava2:2.9.0") + // retrofit + implementation(libs.retrofit) + implementation(libs.converter.moshi) // Add Coroutines - implementation("org.jetbrains.kotlinx:kotlinx-coroutines-android:1.6.4") - implementation("org.jetbrains.kotlinx:kotlinx-coroutines-core:1.6.4") - implementation("org.jetbrains.kotlinx:kotlinx-coroutines-core-common:1.3.8") - implementation("org.jetbrains.kotlinx:kotlinx-coroutines-play-services:1.6.4") - - //okHttp - implementation("com.squareup.okhttp3:logging-interceptor:5.0.0-alpha.11") - implementation("com.squareup.okhttp3:okhttp:5.0.0-alpha.11") - - //lifecycle - implementation("androidx.legacy:legacy-support-v4:1.0.0") - implementation("androidx.databinding:databinding-runtime:7.4.0") - implementation("com.android.car.ui:car-ui-lib:2.3.0") - implementation("androidx.fragment:fragment-ktx:1.5.5") - implementation("androidx.lifecycle:lifecycle-viewmodel-ktx:2.5.1") + implementation(libs.kotlinx.coroutines.android) + implementation(libs.kotlinx.coroutines.core) + implementation(libs.kotlinx.coroutines.core.common) + implementation(libs.kotlinx.coroutines.play.services) + + // okHttp + implementation(libs.logging.interceptor) + implementation(libs.okhttp) + + // lifecycle + implementation(libs.androidx.legacy.support.v4) + implementation(libs.androidx.databinding.runtime) + implementation(libs.car.ui.lib) + implementation(libs.androidx.fragment.ktx) + implementation(libs.androidx.lifecycle.viewmodel.ktx) // splash - implementation("androidx.core:core-splashscreen:1.0.0") + implementation(libs.androidx.core.splashscreen) - //room - implementation("androidx.room:room-ktx:2.5.0") - implementation("androidx.room:room-runtime:2.5.0") - annotationProcessor("androidx.room:room-compiler:2.5.0") - testImplementation("androidx.room:room-testing:2.5.0") - kapt("androidx.room:room-compiler:2.5.0") + // room + implementation(libs.androidx.room.ktx) + implementation(libs.androidx.room.runtime) + annotationProcessor(libs.androidx.room.compiler) + testImplementation(libs.androidx.room.testing) + kapt("androidx.room:room-compiler:2.6.0") // Preferences DataStore - implementation("androidx.datastore:datastore-preferences:1.0.0") + implementation(libs.androidx.datastore.preferences) // viewpager2 - implementation("androidx.viewpager2:viewpager2:1.0.0") - + implementation(libs.androidx.viewpager2) /* Third Party Library */ - //expandable layout - implementation("com.github.skydoves:expandablelayout:1.0.7") + // expandable layout + implementation(libs.expandablelayout) // hilt - implementation("com.google.dagger:hilt-android:2.44.2") - kapt("com.google.dagger:hilt-compiler:2.44.2") - kapt("androidx.hilt:hilt-compiler:1.0.0") - implementation("androidx.hilt:hilt-navigation-compose:1.0.0") + implementation(libs.hilt.android) + kapt(libs.hilt.android.compiler) + kaptAndroidTest(libs.hilt.android.compiler) - //naver maps - implementation("com.naver.maps:map-sdk:3.16.2") + // naver maps + implementation(libs.map.sdk) - //location request - implementation("com.google.android.gms:play-services-location:17.0.0") + // location request + implementation(libs.play.services.location) - //swipe refresh - implementation("androidx.swiperefreshlayout:swiperefreshlayout:1.1.0") + // swipe refresh + implementation(libs.androidx.swiperefreshlayout) // Moshi - implementation("com.squareup.moshi:moshi:1.14.0") + implementation(libs.moshi) // Gson - implementation("com.squareup.retrofit2:converter-gson:2.9.0") + implementation(libs.converter.gson) // Dot Indicator - implementation("com.tbuonomo:dotsindicator:4.3") + implementation(libs.dotsindicator) // Glide - implementation("com.github.bumptech.glide:glide:4.14.2") - annotationProcessor("com.github.bumptech.glide:compiler:4.14.2") + implementation(libs.glide) + annotationProcessor(libs.compiler) - implementation("com.google.android.material:material:1.9.0-alpha01") - testImplementation("junit:junit:4.13.2") - androidTestImplementation("androidx.test.ext:junit:1.1.5") - androidTestImplementation("androidx.test.espresso:espresso-core:3.5.1") + implementation(libs.material) + testImplementation(libs.junit) + androidTestImplementation(libs.androidx.junit) + androidTestImplementation(libs.androidx.espresso.core) } kapt { correctErrorTypes = true -} \ No newline at end of file +} diff --git a/app/src/main/java/org/cazait/cazait_android/CaZaItApplication.kt b/app/src/main/java/org/cazait/CaZaItApplication.kt similarity index 78% rename from app/src/main/java/org/cazait/cazait_android/CaZaItApplication.kt rename to app/src/main/java/org/cazait/CaZaItApplication.kt index f7533fc..af6ff06 100644 --- a/app/src/main/java/org/cazait/cazait_android/CaZaItApplication.kt +++ b/app/src/main/java/org/cazait/CaZaItApplication.kt @@ -1,13 +1,13 @@ -package org.cazait.cazait_android +package org.cazait import android.app.Application import androidx.appcompat.app.AppCompatDelegate import dagger.hilt.android.HiltAndroidApp @HiltAndroidApp -class CaZaItApplication: Application() { +class CaZaItApplication : Application() { override fun onCreate() { super.onCreate() AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_NO) } -} \ No newline at end of file +} diff --git a/app/src/main/java/org/cazait/cazait_android/Constants.kt b/app/src/main/java/org/cazait/Constants.kt similarity index 88% rename from app/src/main/java/org/cazait/cazait_android/Constants.kt rename to app/src/main/java/org/cazait/Constants.kt index b51c2a5..0ac5493 100644 --- a/app/src/main/java/org/cazait/cazait_android/Constants.kt +++ b/app/src/main/java/org/cazait/Constants.kt @@ -1,4 +1,4 @@ -package org.cazait.cazait_android +package org.cazait import androidx.datastore.preferences.core.booleanPreferencesKey import androidx.datastore.preferences.core.longPreferencesKey @@ -15,4 +15,4 @@ val EMAIL = stringPreferencesKey("email") val USER_ID = longPreferencesKey("user_id") val ACCESS_TOKEN = stringPreferencesKey("access_token") val REFRESH_TOKEN = stringPreferencesKey("refresh_token") -val LOGIN_CHECK = booleanPreferencesKey("login_check") \ No newline at end of file +val LOGIN_CHECK = booleanPreferencesKey("login_check") diff --git a/app/src/main/java/org/cazait/cazait_android/data/Resource.kt b/app/src/main/java/org/cazait/cazait_android/data/Resource.kt deleted file mode 100644 index e618bf6..0000000 --- a/app/src/main/java/org/cazait/cazait_android/data/Resource.kt +++ /dev/null @@ -1,7 +0,0 @@ -package org.cazait.cazait_android.data - -sealed class Resource { - data class Loading(var data: T? = null): Resource() - data class Success(var data: T): Resource() - data class Error(var message: String?, var data: T? = null): Resource() -} \ No newline at end of file diff --git a/app/src/main/java/org/cazait/cazait_android/data/model/CafeMenus.kt b/app/src/main/java/org/cazait/cazait_android/data/model/CafeMenus.kt deleted file mode 100644 index 5bde72f..0000000 --- a/app/src/main/java/org/cazait/cazait_android/data/model/CafeMenus.kt +++ /dev/null @@ -1,5 +0,0 @@ -package org.cazait.cazait_android.data.model - -data class CafeMenus( - val menus: ArrayList -) diff --git a/app/src/main/java/org/cazait/cazait_android/data/model/CafeRatingReview.kt b/app/src/main/java/org/cazait/cazait_android/data/model/CafeRatingReview.kt deleted file mode 100644 index 65c23b7..0000000 --- a/app/src/main/java/org/cazait/cazait_android/data/model/CafeRatingReview.kt +++ /dev/null @@ -1,6 +0,0 @@ -package org.cazait.cazait_android.data.model - -data class CafeRatingReview( - val rating: Float, - val review: String -) \ No newline at end of file diff --git a/app/src/main/java/org/cazait/cazait_android/data/model/Cafes.kt b/app/src/main/java/org/cazait/cazait_android/data/model/Cafes.kt deleted file mode 100644 index 4796d9d..0000000 --- a/app/src/main/java/org/cazait/cazait_android/data/model/Cafes.kt +++ /dev/null @@ -1,5 +0,0 @@ -package org.cazait.cazait_android.data.model - -data class Cafes( - val cafesList: ArrayList -) diff --git a/app/src/main/java/org/cazait/cazait_android/data/model/ReviewDatas.kt b/app/src/main/java/org/cazait/cazait_android/data/model/ReviewDatas.kt deleted file mode 100644 index 5326e14..0000000 --- a/app/src/main/java/org/cazait/cazait_android/data/model/ReviewDatas.kt +++ /dev/null @@ -1,5 +0,0 @@ -package org.cazait.cazait_android.data.model - -data class ReviewDatas( - val reviews: ArrayList -) diff --git a/app/src/main/java/org/cazait/cazait_android/data/model/local/AppDatabase.kt b/app/src/main/java/org/cazait/cazait_android/data/model/local/AppDatabase.kt deleted file mode 100644 index 6fad851..0000000 --- a/app/src/main/java/org/cazait/cazait_android/data/model/local/AppDatabase.kt +++ /dev/null @@ -1,9 +0,0 @@ -package org.cazait.cazait_android.data.model.local - -import androidx.room.Database -import androidx.room.RoomDatabase - -//@Database(entities = [Log::class], version = 1, exportSchema = false) -//abstract class AppDatabase : RoomDatabase() { -// abstract fun logDao(): LogDao -//} \ No newline at end of file diff --git a/app/src/main/java/org/cazait/cazait_android/data/model/remote/datasource/CafeInfoRemoteDataSource.kt b/app/src/main/java/org/cazait/cazait_android/data/model/remote/datasource/CafeInfoRemoteDataSource.kt deleted file mode 100644 index fe27507..0000000 --- a/app/src/main/java/org/cazait/cazait_android/data/model/remote/datasource/CafeInfoRemoteDataSource.kt +++ /dev/null @@ -1,14 +0,0 @@ -package org.cazait.cazait_android.data.model.remote.datasource - -import org.cazait.cazait_android.data.Resource -import org.cazait.cazait_android.data.model.remote.request.ReviewEditRequest -import org.cazait.cazait_android.data.model.remote.request.ReviewRequest -import org.cazait.cazait_android.data.model.remote.response.MenuResponse -import org.cazait.cazait_android.data.model.remote.response.ReviewEditResponse -import org.cazait.cazait_android.data.model.remote.response.ReviewResponse - -interface CafeInfoRemoteDataSource { - fun getMenus(cafeId: Long): Resource - fun getReviews(cafeId: Long, body: ReviewRequest): Resource - fun postReview(userId:Long, cafeId: Long, body: ReviewEditRequest): Resource -} \ No newline at end of file diff --git a/app/src/main/java/org/cazait/cazait_android/data/model/remote/datasource/CafeRemoteDataSource.kt b/app/src/main/java/org/cazait/cazait_android/data/model/remote/datasource/CafeRemoteDataSource.kt deleted file mode 100644 index 882b043..0000000 --- a/app/src/main/java/org/cazait/cazait_android/data/model/remote/datasource/CafeRemoteDataSource.kt +++ /dev/null @@ -1,15 +0,0 @@ -package org.cazait.cazait_android.data.model.remote.datasource - -import org.cazait.cazait_android.data.Resource -import org.cazait.cazait_android.data.model.remote.request.CafeListRequest -import org.cazait.cazait_android.data.model.remote.response.CafeListResponse -import org.cazait.cazait_android.data.model.remote.response.DeleteInterestCafeResponse -import org.cazait.cazait_android.data.model.remote.response.InterestCafesResponse -import org.cazait.cazait_android.data.model.remote.response.PostInterestCafeResponse - -interface CafeRemoteDataSource { - fun getCafeList(userId: Long, query: CafeListRequest): Resource - fun getInterestCafes(userId: Long): Resource - fun postInterestCafe(cafeId:Long, userId: Long): Resource - fun deleteInterestCafe(favoritesId: Long): Resource -} \ No newline at end of file diff --git a/app/src/main/java/org/cazait/cazait_android/data/model/remote/datasource/UserRemoteDataSource.kt b/app/src/main/java/org/cazait/cazait_android/data/model/remote/datasource/UserRemoteDataSource.kt deleted file mode 100644 index 5f744ff..0000000 --- a/app/src/main/java/org/cazait/cazait_android/data/model/remote/datasource/UserRemoteDataSource.kt +++ /dev/null @@ -1,16 +0,0 @@ -package org.cazait.cazait_android.data.model.remote.datasource - -import org.cazait.cazait_android.data.Resource -import org.cazait.cazait_android.data.model.remote.request.CafeListRequest -import org.cazait.cazait_android.data.model.remote.request.LoginRequest -import org.cazait.cazait_android.data.model.remote.request.SignUpRequest -import org.cazait.cazait_android.data.model.remote.response.LoginResponse -import org.cazait.cazait_android.data.model.remote.response.SignUpResponse -import org.cazait.cazait_android.data.model.remote.response.TokenResponse -import retrofit2.Call - -interface UserRemoteDataSource { - fun postSignUp(body: SignUpRequest): Resource - fun postLogin(body: LoginRequest): Resource - fun postToken(userId: Long, accessTokenHeader: Map, refreshTokenHeader: Map): Resource -} \ No newline at end of file diff --git a/app/src/main/java/org/cazait/cazait_android/data/model/remote/request/ReviewRequest.kt b/app/src/main/java/org/cazait/cazait_android/data/model/remote/request/ReviewRequest.kt deleted file mode 100644 index 60c3211..0000000 --- a/app/src/main/java/org/cazait/cazait_android/data/model/remote/request/ReviewRequest.kt +++ /dev/null @@ -1,5 +0,0 @@ -package org.cazait.cazait_android.data.model.remote.request - -data class ReviewRequest( - val sortBy: String -) diff --git a/app/src/main/java/org/cazait/cazait_android/data/model/remote/request/SignUpRequest.kt b/app/src/main/java/org/cazait/cazait_android/data/model/remote/request/SignUpRequest.kt deleted file mode 100644 index c781bf4..0000000 --- a/app/src/main/java/org/cazait/cazait_android/data/model/remote/request/SignUpRequest.kt +++ /dev/null @@ -1,7 +0,0 @@ -package org.cazait.cazait_android.data.model.remote.request - -data class SignUpRequest( - val email: String, - val nickname: String, - val password: String -) diff --git a/app/src/main/java/org/cazait/cazait_android/data/repository/DataRepository.kt b/app/src/main/java/org/cazait/cazait_android/data/repository/DataRepository.kt deleted file mode 100644 index 74c9de0..0000000 --- a/app/src/main/java/org/cazait/cazait_android/data/repository/DataRepository.kt +++ /dev/null @@ -1,22 +0,0 @@ -package org.cazait.cazait_android.data.repository - -import kotlinx.coroutines.flow.Flow -import org.cazait.cazait_android.data.Resource -import org.cazait.cazait_android.data.model.remote.request.CafeListRequest -import org.cazait.cazait_android.data.model.remote.request.ReviewEditRequest -import org.cazait.cazait_android.data.model.remote.request.ReviewRequest -import org.cazait.cazait_android.data.model.remote.response.* - -interface DataRepository { - suspend fun getCafes(userId: Long, query: CafeListRequest): Flow> - suspend fun getMenus(cafeId: Long): Flow> - suspend fun getReviews(cafeId: Long, query: ReviewRequest): Flow> - suspend fun getInterestCafes(userId: Long): Flow> - suspend fun postReview( - userId: Long, - cafeId: Long, - body: ReviewEditRequest - ): Flow> - suspend fun postInterestCafe(userId: Long, cafeId: Long): Flow> - suspend fun deleteInterestCafe(favoritesId: Long): Flow> -} \ No newline at end of file diff --git a/app/src/main/java/org/cazait/cazait_android/di/DataModule.kt b/app/src/main/java/org/cazait/cazait_android/di/DataModule.kt deleted file mode 100644 index 79141ae..0000000 --- a/app/src/main/java/org/cazait/cazait_android/di/DataModule.kt +++ /dev/null @@ -1,24 +0,0 @@ -package org.cazait.cazait_android.di - -import dagger.Binds -import dagger.Module -import dagger.hilt.InstallIn -import dagger.hilt.components.SingletonComponent -import org.cazait.cazait_android.data.repository.DataRepository -import org.cazait.cazait_android.data.repository.DataRepositoryImpl -import org.cazait.cazait_android.data.repository.UserRepository -import org.cazait.cazait_android.data.repository.UserRepositoryImpl - -@Module -@InstallIn(SingletonComponent::class) -interface DataModule { - @Binds - fun provideDataRepository( - dataRepositoryImpl: DataRepositoryImpl - ): DataRepository - - @Binds - fun provideUserRepository( - userRepositoryImpl: UserRepositoryImpl - ): UserRepository -} \ No newline at end of file diff --git a/app/src/main/java/org/cazait/cazait_android/di/DatabaseModule.kt b/app/src/main/java/org/cazait/cazait_android/di/DatabaseModule.kt deleted file mode 100644 index 94f19c7..0000000 --- a/app/src/main/java/org/cazait/cazait_android/di/DatabaseModule.kt +++ /dev/null @@ -1,32 +0,0 @@ -package org.cazait.cazait_android.di - -//import android.content.Context -//import androidx.room.Room -//import dagger.Module -//import dagger.Provides -//import dagger.hilt.InstallIn -//import dagger.hilt.android.qualifiers.ApplicationContext -//import dagger.hilt.components.SingletonComponent -//import org.cazait.cazait_android.data.model.local.AppDatabase -//import org.cazait.cazait_android.data.model.local.LogDao -//import javax.inject.Singleton - -//@Module -//@InstallIn(SingletonComponent::class) -//object DatabaseModule { -// -// @Provides -// @Singleton -// fun provideDatabase(@ApplicationContext appContext: Context): AppDatabase { -// return Room.databaseBuilder( -// appContext, -// AppDatabase::class.java, -// "logging.db" -// ).build() -// } -// -// @Provides -// fun provideLogDao(database: AppDatabase): LogDao { -// return database.logDao() -// } -//} \ No newline at end of file diff --git a/app/src/main/java/org/cazait/cazait_android/ui/base/RecyclerItemListener.kt b/app/src/main/java/org/cazait/cazait_android/ui/base/RecyclerItemListener.kt deleted file mode 100644 index 95d22cc..0000000 --- a/app/src/main/java/org/cazait/cazait_android/ui/base/RecyclerItemListener.kt +++ /dev/null @@ -1,7 +0,0 @@ -package org.cazait.cazait_android.ui.base - -import org.cazait.cazait_android.data.model.Cafe - -interface RecyclerItemListener { - fun onItemSelected(cafe: Cafe) -} \ No newline at end of file diff --git a/app/src/main/java/org/cazait/cazait_android/ui/view/cafelist/info/util/OnMapTouchListener.kt b/app/src/main/java/org/cazait/cazait_android/ui/view/cafelist/info/util/OnMapTouchListener.kt deleted file mode 100644 index 59d2651..0000000 --- a/app/src/main/java/org/cazait/cazait_android/ui/view/cafelist/info/util/OnMapTouchListener.kt +++ /dev/null @@ -1,5 +0,0 @@ -package org.cazait.cazait_android.ui.view.cafelist.info.util - -interface OnMapTouchListener { - fun onTouch() -} \ No newline at end of file diff --git a/app/src/main/java/org/cazait/cazait_android/ui/viewmodel/CafeInfoImgViewModel.kt b/app/src/main/java/org/cazait/cazait_android/ui/viewmodel/CafeInfoImgViewModel.kt deleted file mode 100644 index 96bcb8b..0000000 --- a/app/src/main/java/org/cazait/cazait_android/ui/viewmodel/CafeInfoImgViewModel.kt +++ /dev/null @@ -1,12 +0,0 @@ -package org.cazait.cazait_android.ui.viewmodel - -import dagger.hilt.android.lifecycle.HiltViewModel -import org.cazait.cazait_android.data.repository.DataRepository -import org.cazait.cazait_android.data.repository.DataRepositoryImpl -import org.cazait.cazait_android.ui.base.BaseViewModel -import javax.inject.Inject - -@HiltViewModel -class CafeInfoImgViewModel @Inject constructor(private val dataRepository: DataRepository) : - BaseViewModel() { -} \ No newline at end of file diff --git a/app/src/main/java/org/cazait/cazait_android/ui/viewmodel/CafeRecentViewModel.kt b/app/src/main/java/org/cazait/cazait_android/ui/viewmodel/CafeRecentViewModel.kt deleted file mode 100644 index 624a891..0000000 --- a/app/src/main/java/org/cazait/cazait_android/ui/viewmodel/CafeRecentViewModel.kt +++ /dev/null @@ -1,47 +0,0 @@ -package org.cazait.cazait_android.ui.viewmodel - -import androidx.lifecycle.LiveData -import androidx.lifecycle.MutableLiveData -import dagger.hilt.android.lifecycle.HiltViewModel -import org.cazait.cazait_android.data.model.Cafe -import org.cazait.cazait_android.data.repository.DataRepository -import org.cazait.cazait_android.ui.base.BaseViewModel -import javax.inject.Inject - -@HiltViewModel -open class CafeRecentViewModel @Inject constructor(private val dataRepository: DataRepository) : - BaseViewModel() { - - private val list = arrayListOf() - private val _cafeRecentlyList = MutableLiveData>() - val cafeRecentlyList: LiveData> - get() = _cafeRecentlyList - - init { - initDataSet() - } - - private fun initDataSet() { - val dataList = arrayListOf( - Cafe(1, "카페 범쿤", 100, "서울시 광진구 능동 239 - 26", "보통",false, 0, listOf(),"111.11","111.11"), - Cafe(2, "눈물", 200, "서울시 광진구 xxxx - xxxxxx", "혼잡",false, 0, listOf(),"111.11","111.11"), - Cafe(3, "눙물", 300, "서울시 광진구 xxxx - xxxxxx", "보통",false,0, listOf(),"111.11","111.11"), - Cafe(4, "국물", 400, "서울시 광진구 xxxx - xxxxxx", "여유",false,0, listOf(),"111.11","111.11"), - Cafe(5, "물논", 1200, "서울시 광진구 xxxx - xxxxxx", "보통",false,0, listOf(),"111.11","111.11"), - Cafe(6, "물론", 400, "서울시 광진구 xxxx - xxxxxx", "보통",false,0, listOf(),"111.11","111.11"), - Cafe(7,"투썸플레이스 삼호가든사거리점",500, "서울 서초구 서초중앙로 238 가든리체프라자 2층 252호", "혼잡",false,0, listOf(),"111.11","111.11"), - Cafe(8, "골목", 600, "서울시 광진구 xxxx - xxxxxx", "보통",false,0, listOf(),"111.11","111.11"), - Cafe(9, "눔룬", 700, "서울시 광진구 xxxx - xxxxxx", "보통",false,0, listOf(),"111.11","111.11"), - Cafe(1, "엔제리너스카페24시", 800, "서울시 광진구 xxxx - xxxxxx", "보통",false,0, listOf(),"111.11","111.11"), - Cafe(11, "제주몰빵", 900, "서울시 광진구 xxxx - xxxxxx", "보통",false,0,listOf(),"111.11","111.11"), - Cafe(12, "카페 딕셔너리", 1000, "서울시 xxxx - xxxxxx", "보통",false,0,listOf(),"111.11","111.11"), - Cafe(13, "카페베네", 1100, "서울시 광진구 xxxx - xxxxxx", "보통",false,0,listOf(),"111.11","111.11") - ) - setCafeRecentlyList(dataList) - } - - private fun setCafeRecentlyList(dataset: ArrayList) { - list.addAll(dataset) - _cafeRecentlyList.postValue(dataset) - } -} \ No newline at end of file diff --git a/app/src/main/java/org/cazait/cazait_android/ui/viewmodel/MainViewModel.kt b/app/src/main/java/org/cazait/cazait_android/ui/viewmodel/MainViewModel.kt deleted file mode 100644 index 18df847..0000000 --- a/app/src/main/java/org/cazait/cazait_android/ui/viewmodel/MainViewModel.kt +++ /dev/null @@ -1,9 +0,0 @@ -package org.cazait.cazait_android.ui.viewmodel - -import dagger.hilt.android.lifecycle.HiltViewModel -import org.cazait.cazait_android.ui.base.BaseViewModel -import javax.inject.Inject - -@HiltViewModel -class MainViewModel @Inject constructor( -) : BaseViewModel() \ No newline at end of file diff --git a/app/src/main/java/org/cazait/cazait_android/ui/viewmodel/ViewModel.kt b/app/src/main/java/org/cazait/cazait_android/ui/viewmodel/ViewModel.kt deleted file mode 100644 index ab1eb8f..0000000 --- a/app/src/main/java/org/cazait/cazait_android/ui/viewmodel/ViewModel.kt +++ /dev/null @@ -1,5 +0,0 @@ -package org.cazait.cazait_android.ui.viewmodel - -import org.cazait.cazait_android.ui.base.BaseViewModel - -class ViewModel : BaseViewModel() {} \ No newline at end of file diff --git a/app/src/main/java/org/cazait/cazait_android/usecase/errors/ErrorUseCase.kt b/app/src/main/java/org/cazait/cazait_android/usecase/errors/ErrorUseCase.kt deleted file mode 100644 index 0e0a5ef..0000000 --- a/app/src/main/java/org/cazait/cazait_android/usecase/errors/ErrorUseCase.kt +++ /dev/null @@ -1,7 +0,0 @@ -package org.cazait.cazait_android.usecase.errors - -import org.cazait.cazait_android.data.error.Error - -interface ErrorUseCase { - fun getError(errorCode: Int): Error -} \ No newline at end of file diff --git a/app/src/main/java/org/cazait/cazait_android/data/InterestCheckStatus.kt b/app/src/main/java/org/cazait/data/InterestCheckStatus.kt similarity index 65% rename from app/src/main/java/org/cazait/cazait_android/data/InterestCheckStatus.kt rename to app/src/main/java/org/cazait/data/InterestCheckStatus.kt index e702539..5d28d5a 100644 --- a/app/src/main/java/org/cazait/cazait_android/data/InterestCheckStatus.kt +++ b/app/src/main/java/org/cazait/data/InterestCheckStatus.kt @@ -1,3 +1,3 @@ -package org.cazait.cazait_android.data +package org.cazait.data data class InterestCheckStatus(val position: Int, var isChecked: Boolean) diff --git a/app/src/main/java/org/cazait/data/Resource.kt b/app/src/main/java/org/cazait/data/Resource.kt new file mode 100644 index 0000000..5f6fc15 --- /dev/null +++ b/app/src/main/java/org/cazait/data/Resource.kt @@ -0,0 +1,7 @@ +package org.cazait.data + +sealed class Resource { + data class Loading(var data: T? = null) : Resource() + data class Success(var data: T) : Resource() + data class Error(var message: String?, var data: T? = null) : Resource() +} diff --git a/app/src/main/java/org/cazait/cazait_android/data/api/CafeService.kt b/app/src/main/java/org/cazait/data/api/CafeService.kt similarity index 55% rename from app/src/main/java/org/cazait/cazait_android/data/api/CafeService.kt rename to app/src/main/java/org/cazait/data/api/CafeService.kt index 893914c..0f0615c 100644 --- a/app/src/main/java/org/cazait/cazait_android/data/api/CafeService.kt +++ b/app/src/main/java/org/cazait/data/api/CafeService.kt @@ -1,9 +1,14 @@ -package org.cazait.cazait_android.data.api - -import org.cazait.cazait_android.data.model.remote.request.CafeListRequest -import org.cazait.cazait_android.data.model.remote.request.ReviewEditRequest -import org.cazait.cazait_android.data.model.remote.response.* - +package org.cazait.data.api + +import org.cazait.data.model.remote.response.* +import org.cazait.data.model.remote.request.ReviewEditRequest +import org.cazait.data.model.remote.response.CafeListResponse +import org.cazait.data.model.remote.response.DeleteInterestCafeResponse +import org.cazait.data.model.remote.response.InterestCafesResponse +import org.cazait.data.model.remote.response.MenuResponse +import org.cazait.data.model.remote.response.PostInterestCafeResponse +import org.cazait.data.model.remote.response.ReviewEditResponse +import org.cazait.data.model.remote.response.ReviewResponse import retrofit2.Call import retrofit2.http.* @@ -17,40 +22,40 @@ interface CafeService { @Query("longitude") longitude: String, @Query("latitude") latitude: String, @Query("sort") sort: String, - @Query("limit") limit: String + @Query("limit") limit: String, ): Call @GET("/api/menus/cafe/{cafeId}") fun getMenus( - @Path("cafeId") cafeId: Long + @Path("cafeId") cafeId: Long, ): Call @GET("/api/reviews/{cafeId}/all") fun getReviews( @Path("cafeId") cafeId: Long, - @Query("sortBy") sortBy: String + @Query("sortBy") sortBy: String, ): Call @GET("/api/favorites/user/{userId}") fun getInterestCafes( - @Path("userId") userId: Long + @Path("userId") userId: Long, ): Call @POST("/api/reviews/user/{userId}/cafe/{cafeId}") fun postReview( @Path("userId") userId: Long, @Path("cafeId") cafeId: Long, - @Body reviewEditRequest: ReviewEditRequest - ):Call + @Body reviewEditRequest: ReviewEditRequest, + ): Call @POST("/api/favorites/user/{userId}/cafe/{cafeId}") fun postInterestCafe( @Path("userId") userId: Long, - @Path("cafeId") cafeId: Long + @Path("cafeId") cafeId: Long, ): Call @DELETE("/api/favorites/delete/{favoritesId}") fun deleteInterestCafe( - @Path("favoritesId") cafeId: Long + @Path("favoritesId") cafeId: Long, ): Call -} \ No newline at end of file +} diff --git a/app/src/main/java/org/cazait/cazait_android/data/api/UserService.kt b/app/src/main/java/org/cazait/data/api/UserService.kt similarity index 58% rename from app/src/main/java/org/cazait/cazait_android/data/api/UserService.kt rename to app/src/main/java/org/cazait/data/api/UserService.kt index 27d5411..1b03465 100644 --- a/app/src/main/java/org/cazait/cazait_android/data/api/UserService.kt +++ b/app/src/main/java/org/cazait/data/api/UserService.kt @@ -1,11 +1,11 @@ -package org.cazait.cazait_android.data.api +package org.cazait.data.api -import org.cazait.cazait_android.data.model.remote.request.LoginRequest -import org.cazait.cazait_android.data.model.remote.request.SignUpRequest -import org.cazait.cazait_android.data.model.remote.response.IsDuplicateEmailResponse -import org.cazait.cazait_android.data.model.remote.response.LoginResponse -import org.cazait.cazait_android.data.model.remote.response.SignUpResponse -import org.cazait.cazait_android.data.model.remote.response.TokenResponse +import org.cazait.data.model.remote.request.LoginRequest +import org.cazait.data.model.remote.request.SignUpRequest +import org.cazait.data.model.remote.response.IsDuplicateEmailResponse +import org.cazait.data.model.remote.response.LoginResponse +import org.cazait.data.model.remote.response.SignUpResponse +import org.cazait.data.model.remote.response.TokenResponse import retrofit2.Call import retrofit2.http.* @@ -25,7 +25,7 @@ interface UserService { @Path("userId") userId: Long, @Query("role") role: String = "user", @HeaderMap accessToken: Map, - @HeaderMap refreshToken: Map + @HeaderMap refreshToken: Map, ): Call /** @@ -39,4 +39,4 @@ interface UserService { fun getIsDuplicateEmail( @Query("email") email: String = "", ): Call -} \ No newline at end of file +} diff --git a/app/src/main/java/org/cazait/cazait_android/data/error/Error.kt b/app/src/main/java/org/cazait/data/error/Error.kt similarity index 83% rename from app/src/main/java/org/cazait/cazait_android/data/error/Error.kt rename to app/src/main/java/org/cazait/data/error/Error.kt index b254860..caaf4c4 100644 --- a/app/src/main/java/org/cazait/cazait_android/data/error/Error.kt +++ b/app/src/main/java/org/cazait/data/error/Error.kt @@ -1,9 +1,9 @@ -package org.cazait.cazait_android.data.error +package org.cazait.data.error class Error(val code: Int, val description: String) { constructor(exception: Exception) : this( code = DEFAULT_ERROR, - description = exception.message ?: "" + description = exception.message ?: "", ) } diff --git a/app/src/main/java/org/cazait/cazait_android/data/error/mapper/ErrorMapper.kt b/app/src/main/java/org/cazait/data/error/mapper/ErrorMapper.kt similarity index 69% rename from app/src/main/java/org/cazait/cazait_android/data/error/mapper/ErrorMapper.kt rename to app/src/main/java/org/cazait/data/error/mapper/ErrorMapper.kt index e69cae0..e898a9b 100644 --- a/app/src/main/java/org/cazait/cazait_android/data/error/mapper/ErrorMapper.kt +++ b/app/src/main/java/org/cazait/data/error/mapper/ErrorMapper.kt @@ -1,9 +1,16 @@ -package org.cazait.cazait_android.data.error.mapper +package org.cazait.data.error.mapper import android.content.Context import dagger.hilt.android.qualifiers.ApplicationContext -import org.cazait.cazait_android.R -import org.cazait.cazait_android.data.error.* +import org.cazait.R +import org.cazait.data.error.EMAIL_ERROR +import org.cazait.data.error.EMAIL_OR_PASSWORD_ERROR +import org.cazait.data.error.EXPIRED_ACCESS_TOKEN +import org.cazait.data.error.EXPIRED_REFRESH_TOKEN +import org.cazait.data.error.INVALID_ACCESS_TOKEN +import org.cazait.data.error.NETWORK_ERROR +import org.cazait.data.error.NO_INTERNET_CONNECTION +import org.cazait.data.error.PASSWORD_ERROR import javax.inject.Inject class ErrorMapper @Inject constructor(@ApplicationContext val context: Context) : @@ -17,8 +24,8 @@ class ErrorMapper @Inject constructor(@ApplicationContext val context: Context) EMAIL_OR_PASSWORD_ERROR to getErrorString(R.string.invalid_email_or_password), EXPIRED_ACCESS_TOKEN to getErrorString(R.string.expired_access_token), INVALID_ACCESS_TOKEN to getErrorString(R.string.invalid_access_token), - EXPIRED_REFRESH_TOKEN to getErrorString(R.string.expired_refresh_token) + EXPIRED_REFRESH_TOKEN to getErrorString(R.string.expired_refresh_token), ).withDefault { getErrorString(R.string.network_error) } override fun getErrorString(errorId: Int): String = context.getString(errorId) -} \ No newline at end of file +} diff --git a/app/src/main/java/org/cazait/cazait_android/data/error/mapper/ErrorMapperSource.kt b/app/src/main/java/org/cazait/data/error/mapper/ErrorMapperSource.kt similarity index 67% rename from app/src/main/java/org/cazait/cazait_android/data/error/mapper/ErrorMapperSource.kt rename to app/src/main/java/org/cazait/data/error/mapper/ErrorMapperSource.kt index 0a400a8..27b83de 100644 --- a/app/src/main/java/org/cazait/cazait_android/data/error/mapper/ErrorMapperSource.kt +++ b/app/src/main/java/org/cazait/data/error/mapper/ErrorMapperSource.kt @@ -1,6 +1,6 @@ -package org.cazait.cazait_android.data.error.mapper +package org.cazait.data.error.mapper interface ErrorMapperSource { fun getErrorString(errorId: Int): String val errorsMap: Map -} \ No newline at end of file +} diff --git a/app/src/main/java/org/cazait/cazait_android/data/model/Cafe.kt b/app/src/main/java/org/cazait/data/model/Cafe.kt similarity index 89% rename from app/src/main/java/org/cazait/cazait_android/data/model/Cafe.kt rename to app/src/main/java/org/cazait/data/model/Cafe.kt index 059f857..5e43651 100644 --- a/app/src/main/java/org/cazait/cazait_android/data/model/Cafe.kt +++ b/app/src/main/java/org/cazait/data/model/Cafe.kt @@ -1,4 +1,4 @@ -package org.cazait.cazait_android.data.model +package org.cazait.data.model import android.os.Parcelable import com.google.gson.annotations.SerializedName @@ -11,7 +11,7 @@ data class Cafe( val distance: Int, val address: String, val state: String, - var favorite: Boolean = false, // 좋아요 버튼을 위해 var로 설정 + var favorite: Boolean = false, // 좋아요 버튼을 위해 var로 설정 val favoritesId: Long = -1, @SerializedName("getCafeImageRes") val cafeImageRes: List, val latitude: String, @@ -26,7 +26,7 @@ val stateMapper: Map "FREE" to "여유", "NORMAL" to "보통", "CROWDED" to "혼잡", - "VERY_CROWDED" to "매우 혼잡" + "VERY_CROWDED" to "매우 혼잡", ).withDefault { "보통" } /** @@ -36,4 +36,4 @@ val stateMapper: Map * The implementation should include methods to write the class data to a Parcel object and to read the class data from a Parcel object. * * Ex) putExtra() - */ \ No newline at end of file + */ diff --git a/app/src/main/java/org/cazait/cazait_android/data/model/CafeImageRes.kt b/app/src/main/java/org/cazait/data/model/CafeImageRes.kt similarity index 60% rename from app/src/main/java/org/cazait/cazait_android/data/model/CafeImageRes.kt rename to app/src/main/java/org/cazait/data/model/CafeImageRes.kt index 7592448..04ec514 100644 --- a/app/src/main/java/org/cazait/cazait_android/data/model/CafeImageRes.kt +++ b/app/src/main/java/org/cazait/data/model/CafeImageRes.kt @@ -1,4 +1,4 @@ -package org.cazait.cazait_android.data.model +package org.cazait.data.model import android.os.Parcelable import kotlinx.parcelize.Parcelize @@ -6,5 +6,5 @@ import kotlinx.parcelize.Parcelize @Parcelize data class CafeImageRes( val cafeImageId: Long, - val imageUrl: String -): Parcelable + val imageUrl: String, +) : Parcelable diff --git a/app/src/main/java/org/cazait/cazait_android/data/model/CafeInfo.kt b/app/src/main/java/org/cazait/data/model/CafeInfo.kt similarity index 50% rename from app/src/main/java/org/cazait/cazait_android/data/model/CafeInfo.kt rename to app/src/main/java/org/cazait/data/model/CafeInfo.kt index 864148b..62c5518 100644 --- a/app/src/main/java/org/cazait/cazait_android/data/model/CafeInfo.kt +++ b/app/src/main/java/org/cazait/data/model/CafeInfo.kt @@ -1,7 +1,7 @@ -package org.cazait.cazait_android.data.model +package org.cazait.data.model data class CafeInfo( val cafeId: String, val cafeName: String, - val cafeAdmin: String -) \ No newline at end of file + val cafeAdmin: String, +) diff --git a/app/src/main/java/org/cazait/cazait_android/data/model/CafeMenu.kt b/app/src/main/java/org/cazait/data/model/CafeMenu.kt similarity index 66% rename from app/src/main/java/org/cazait/cazait_android/data/model/CafeMenu.kt rename to app/src/main/java/org/cazait/data/model/CafeMenu.kt index dd1d968..99a8988 100644 --- a/app/src/main/java/org/cazait/cazait_android/data/model/CafeMenu.kt +++ b/app/src/main/java/org/cazait/data/model/CafeMenu.kt @@ -1,10 +1,10 @@ -package org.cazait.cazait_android.data.model +package org.cazait.data.model data class CafeMenu( val desc: String, val name: String, val price: Int, - val image: String + val image: String, ) { fun getStringPrice() = price.toString() } diff --git a/app/src/main/java/org/cazait/data/model/CafeMenus.kt b/app/src/main/java/org/cazait/data/model/CafeMenus.kt new file mode 100644 index 0000000..4026cba --- /dev/null +++ b/app/src/main/java/org/cazait/data/model/CafeMenus.kt @@ -0,0 +1,5 @@ +package org.cazait.data.model + +data class CafeMenus( + val menus: ArrayList, +) diff --git a/app/src/main/java/org/cazait/data/model/CafeRatingReview.kt b/app/src/main/java/org/cazait/data/model/CafeRatingReview.kt new file mode 100644 index 0000000..f393000 --- /dev/null +++ b/app/src/main/java/org/cazait/data/model/CafeRatingReview.kt @@ -0,0 +1,6 @@ +package org.cazait.data.model + +data class CafeRatingReview( + val rating: Float, + val review: String, +) diff --git a/app/src/main/java/org/cazait/data/model/Cafes.kt b/app/src/main/java/org/cazait/data/model/Cafes.kt new file mode 100644 index 0000000..804ce73 --- /dev/null +++ b/app/src/main/java/org/cazait/data/model/Cafes.kt @@ -0,0 +1,5 @@ +package org.cazait.data.model + +data class Cafes( + val cafesList: ArrayList, +) diff --git a/app/src/main/java/org/cazait/cazait_android/data/model/ReviewData.kt b/app/src/main/java/org/cazait/data/model/ReviewData.kt similarity index 69% rename from app/src/main/java/org/cazait/cazait_android/data/model/ReviewData.kt rename to app/src/main/java/org/cazait/data/model/ReviewData.kt index 99a97b7..5ab5a04 100644 --- a/app/src/main/java/org/cazait/cazait_android/data/model/ReviewData.kt +++ b/app/src/main/java/org/cazait/data/model/ReviewData.kt @@ -1,11 +1,11 @@ -package org.cazait.cazait_android.data.model +package org.cazait.data.model data class ReviewData( val score: Int, val town: String, val nickName: String, val time: String, - val mainText: String + val mainText: String, ) { fun getStringScore() = score.toString() -} \ No newline at end of file +} diff --git a/app/src/main/java/org/cazait/data/model/ReviewDatas.kt b/app/src/main/java/org/cazait/data/model/ReviewDatas.kt new file mode 100644 index 0000000..f72c142 --- /dev/null +++ b/app/src/main/java/org/cazait/data/model/ReviewDatas.kt @@ -0,0 +1,5 @@ +package org.cazait.data.model + +data class ReviewDatas( + val reviews: ArrayList, +) diff --git a/app/src/main/java/org/cazait/cazait_android/data/model/User.kt b/app/src/main/java/org/cazait/data/model/User.kt similarity index 52% rename from app/src/main/java/org/cazait/cazait_android/data/model/User.kt rename to app/src/main/java/org/cazait/data/model/User.kt index cf84e2c..947d713 100644 --- a/app/src/main/java/org/cazait/cazait_android/data/model/User.kt +++ b/app/src/main/java/org/cazait/data/model/User.kt @@ -1,7 +1,7 @@ -package org.cazait.cazait_android.data.model +package org.cazait.data.model data class User( val email: String, val nickname: String? = null, - val password: String + val password: String, ) diff --git a/app/src/main/java/org/cazait/data/model/local/AppDatabase.kt b/app/src/main/java/org/cazait/data/model/local/AppDatabase.kt new file mode 100644 index 0000000..ebe0421 --- /dev/null +++ b/app/src/main/java/org/cazait/data/model/local/AppDatabase.kt @@ -0,0 +1,6 @@ +package org.cazait.data.model.local + +// @Database(entities = [Log::class], version = 1, exportSchema = false) +// abstract class AppDatabase : RoomDatabase() { +// abstract fun logDao(): LogDao +// } diff --git a/app/src/main/java/org/cazait/cazait_android/data/model/local/LocalData.kt b/app/src/main/java/org/cazait/data/model/local/LocalData.kt similarity index 88% rename from app/src/main/java/org/cazait/cazait_android/data/model/local/LocalData.kt rename to app/src/main/java/org/cazait/data/model/local/LocalData.kt index 7d9003f..698929b 100644 --- a/app/src/main/java/org/cazait/cazait_android/data/model/local/LocalData.kt +++ b/app/src/main/java/org/cazait/data/model/local/LocalData.kt @@ -1,4 +1,4 @@ -package org.cazait.cazait_android.data.model.local +package org.cazait.data.model.local import android.content.Context import androidx.datastore.preferences.core.edit @@ -7,7 +7,14 @@ import androidx.datastore.preferences.preferencesDataStore import kotlinx.coroutines.flow.Flow import kotlinx.coroutines.flow.catch import kotlinx.coroutines.flow.map -import org.cazait.cazait_android.* +import org.cazait.ACCESS_TOKEN +import org.cazait.EMAIL +import org.cazait.LOGIN_CHECK +import org.cazait.LOGIN_CHECK_DATASTORE +import org.cazait.REFRESH_TOKEN +import org.cazait.TOKEN_DATASTORE +import org.cazait.USER_DATASTORE +import org.cazait.USER_ID import java.io.IOException import javax.inject.Inject @@ -69,7 +76,7 @@ class LocalData @Inject constructor(val context: Context) { } suspend fun saveUserId(id: Long) { - context.userDataStore.edit {prefs -> + context.userDataStore.edit { prefs -> prefs[USER_ID] = id } } @@ -86,4 +93,3 @@ class LocalData @Inject constructor(val context: Context) { } } } - diff --git a/app/src/main/java/org/cazait/cazait_android/data/model/local/Log.kt b/app/src/main/java/org/cazait/data/model/local/Log.kt similarity index 79% rename from app/src/main/java/org/cazait/cazait_android/data/model/local/Log.kt rename to app/src/main/java/org/cazait/data/model/local/Log.kt index 0bf508a..f68a5c7 100644 --- a/app/src/main/java/org/cazait/cazait_android/data/model/local/Log.kt +++ b/app/src/main/java/org/cazait/data/model/local/Log.kt @@ -1,4 +1,4 @@ -package org.cazait.cazait_android.data.model.local +package org.cazait.data.model.local import androidx.room.Entity import androidx.room.PrimaryKey @@ -7,4 +7,4 @@ import androidx.room.PrimaryKey data class Log(val msg: String, val timestamp: Long) { @PrimaryKey(autoGenerate = true) var id: Long = 0 -} \ No newline at end of file +} diff --git a/app/src/main/java/org/cazait/cazait_android/data/model/local/LogDao.kt b/app/src/main/java/org/cazait/data/model/local/LogDao.kt similarity index 66% rename from app/src/main/java/org/cazait/cazait_android/data/model/local/LogDao.kt rename to app/src/main/java/org/cazait/data/model/local/LogDao.kt index 7e0856f..4fc569b 100644 --- a/app/src/main/java/org/cazait/cazait_android/data/model/local/LogDao.kt +++ b/app/src/main/java/org/cazait/data/model/local/LogDao.kt @@ -1,12 +1,7 @@ -package org.cazait.cazait_android.data.model.local +package org.cazait.data.model.local -import android.database.Cursor -import androidx.room.Dao -import androidx.room.Insert -import androidx.room.Query - -//@Dao -//interface LogDao { +// @Dao +// interface LogDao { // @Query("SELECT * FROM logs ODER BY id DESC") // fun getAll(): List // @@ -21,4 +16,4 @@ import androidx.room.Query // // @Query("SELECT * FROM logs WHERE id = :id") // fun selectLogById(id: Long): Cursor? -//} \ No newline at end of file +// } diff --git a/app/src/main/java/org/cazait/cazait_android/data/model/local/SignUpDBHelper.kt b/app/src/main/java/org/cazait/data/model/local/SignUpDBHelper.kt similarity index 94% rename from app/src/main/java/org/cazait/cazait_android/data/model/local/SignUpDBHelper.kt rename to app/src/main/java/org/cazait/data/model/local/SignUpDBHelper.kt index 19862ec..d8e999a 100644 --- a/app/src/main/java/org/cazait/cazait_android/data/model/local/SignUpDBHelper.kt +++ b/app/src/main/java/org/cazait/data/model/local/SignUpDBHelper.kt @@ -1,4 +1,4 @@ -package org.cazait.cazait_android.data.model.local +package org.cazait.data.model.local import android.content.ContentValues import android.content.Context @@ -37,7 +37,7 @@ class SignUpDBHelper(context: Context?) : var res = true val cursor = myDB.rawQuery( "Select * from users where username = ? and password = ?", - arrayOf(userName, password) + arrayOf(userName, password), ) if (cursor.count <= 0) res = false return res diff --git a/app/src/main/java/org/cazait/cazait_android/data/model/remote/ServiceGenerator.kt b/app/src/main/java/org/cazait/data/model/remote/ServiceGenerator.kt similarity index 82% rename from app/src/main/java/org/cazait/cazait_android/data/model/remote/ServiceGenerator.kt rename to app/src/main/java/org/cazait/data/model/remote/ServiceGenerator.kt index b083ad2..88b3b3f 100644 --- a/app/src/main/java/org/cazait/cazait_android/data/model/remote/ServiceGenerator.kt +++ b/app/src/main/java/org/cazait/data/model/remote/ServiceGenerator.kt @@ -1,4 +1,4 @@ -package org.cazait.cazait_android.data.model.remote +package org.cazait.data.model.remote import android.content.Context import androidx.datastore.preferences.core.emptyPreferences @@ -9,9 +9,8 @@ import kotlinx.coroutines.runBlocking import okhttp3.Interceptor import okhttp3.OkHttpClient import okhttp3.logging.HttpLoggingInterceptor -import org.cazait.cazait_android.BuildConfig -import org.cazait.cazait_android.baseURL -import org.cazait.cazait_android.data.model.local.tokenDataStore +import org.cazait.baseURL +import org.cazait.data.model.local.tokenDataStore import retrofit2.Retrofit import retrofit2.converter.gson.GsonConverterFactory import java.io.IOException @@ -19,15 +18,15 @@ import java.util.concurrent.TimeUnit import javax.inject.Inject import javax.inject.Singleton -private const val timeoutRead = 30 //In seconds +private const val timeoutRead = 30 // In seconds private const val contentType = "Content-Type" private const val contentTypeValue = "application/json" private const val accessToken = "Authorization" -private const val timeoutConnect = 30 //In seconds +private const val timeoutConnect = 30 // In seconds @Singleton class ServiceGenerator @Inject constructor( - @ApplicationContext private val context: Context + @ApplicationContext private val context: Context, ) { private val okHttpBuilder: OkHttpClient.Builder = OkHttpClient.Builder() private val retrofit: Retrofit @@ -51,9 +50,9 @@ class ServiceGenerator @Inject constructor( private val logger: HttpLoggingInterceptor get() { val loggingInterceptor = HttpLoggingInterceptor() - if(BuildConfig.DEBUG) { - loggingInterceptor.apply { level = HttpLoggingInterceptor.Level.BODY } - } +// if (BuildConfig.DEBUG) { +// loggingInterceptor.apply { level = HttpLoggingInterceptor.Level.BODY } +// } return loggingInterceptor } @@ -78,8 +77,11 @@ class ServiceGenerator @Inject constructor( val tokenFlow = fetchTokenInDataStore() val tokenList = tokenFlow.first() - return if(tokenList.isEmpty()) "" - else tokenList.first() + return if (tokenList.isEmpty()) { + "" + } else { + tokenList.first() + } } private suspend fun fetchTokenInDataStore(): Flow> { @@ -96,4 +98,4 @@ class ServiceGenerator @Inject constructor( } } } -} \ No newline at end of file +} diff --git a/app/src/main/java/org/cazait/cazait_android/data/model/remote/datasource/CafeInfoRemoteData.kt b/app/src/main/java/org/cazait/data/model/remote/datasource/CafeInfoRemoteData.kt similarity index 72% rename from app/src/main/java/org/cazait/cazait_android/data/model/remote/datasource/CafeInfoRemoteData.kt rename to app/src/main/java/org/cazait/data/model/remote/datasource/CafeInfoRemoteData.kt index dbc1af9..5ff383b 100644 --- a/app/src/main/java/org/cazait/cazait_android/data/model/remote/datasource/CafeInfoRemoteData.kt +++ b/app/src/main/java/org/cazait/data/model/remote/datasource/CafeInfoRemoteData.kt @@ -1,23 +1,23 @@ -package org.cazait.cazait_android.data.model.remote.datasource +package org.cazait.data.model.remote.datasource -import org.cazait.cazait_android.data.Resource -import org.cazait.cazait_android.data.api.CafeService -import org.cazait.cazait_android.data.error.NO_INTERNET_CONNECTION -import org.cazait.cazait_android.data.model.remote.ServiceGenerator -import org.cazait.cazait_android.data.model.remote.request.ReviewEditRequest -import org.cazait.cazait_android.data.model.remote.request.ReviewRequest -import org.cazait.cazait_android.data.model.remote.response.MenuResponse -import org.cazait.cazait_android.data.model.remote.response.ReviewEditResponse -import org.cazait.cazait_android.data.model.remote.response.ReviewResponse -import org.cazait.cazait_android.network.NetworkConnectivity -import org.cazait.cazait_android.usecase.errors.ErrorManager +import org.cazait.data.Resource +import org.cazait.data.api.CafeService +import org.cazait.data.error.NO_INTERNET_CONNECTION +import org.cazait.data.model.remote.ServiceGenerator +import org.cazait.data.model.remote.request.ReviewEditRequest +import org.cazait.data.model.remote.request.ReviewRequest +import org.cazait.data.model.remote.response.MenuResponse +import org.cazait.data.model.remote.response.ReviewEditResponse +import org.cazait.data.model.remote.response.ReviewResponse +import org.cazait.errors.ErrorManager +import org.cazait.network.NetworkConnectivity import java.io.IOException import javax.inject.Inject class CafeInfoRemoteData @Inject constructor( private val serviceGenerator: ServiceGenerator, private val networkConnectivity: NetworkConnectivity, - private val errorManager: ErrorManager + private val errorManager: ErrorManager, ) : CafeInfoRemoteDataSource { private val cafeService = serviceGenerator.createService(CafeService::class.java) @@ -58,7 +58,7 @@ class CafeInfoRemoteData @Inject constructor( override fun postReview( userId: Long, cafeId: Long, - body: ReviewEditRequest + body: ReviewEditRequest, ): Resource { if (!networkConnectivity.isConnected()) { return Resource.Error(errorManager.getError(NO_INTERNET_CONNECTION).description) @@ -77,4 +77,4 @@ class CafeInfoRemoteData @Inject constructor( Resource.Error(e.message, null) } } -} \ No newline at end of file +} diff --git a/app/src/main/java/org/cazait/data/model/remote/datasource/CafeInfoRemoteDataSource.kt b/app/src/main/java/org/cazait/data/model/remote/datasource/CafeInfoRemoteDataSource.kt new file mode 100644 index 0000000..3230860 --- /dev/null +++ b/app/src/main/java/org/cazait/data/model/remote/datasource/CafeInfoRemoteDataSource.kt @@ -0,0 +1,18 @@ +package org.cazait.data.model.remote.datasource + +import org.cazait.data.Resource +import org.cazait.data.model.remote.request.ReviewEditRequest +import org.cazait.data.model.remote.request.ReviewRequest +import org.cazait.data.model.remote.response.MenuResponse +import org.cazait.data.model.remote.response.ReviewEditResponse +import org.cazait.data.model.remote.response.ReviewResponse + +interface CafeInfoRemoteDataSource { + fun getMenus(cafeId: Long): Resource + fun getReviews(cafeId: Long, body: ReviewRequest): Resource + fun postReview( + userId: Long, + cafeId: Long, + body: ReviewEditRequest, + ): Resource +} diff --git a/app/src/main/java/org/cazait/cazait_android/data/model/remote/datasource/CafeRemoteData.kt b/app/src/main/java/org/cazait/data/model/remote/datasource/CafeRemoteData.kt similarity index 70% rename from app/src/main/java/org/cazait/cazait_android/data/model/remote/datasource/CafeRemoteData.kt rename to app/src/main/java/org/cazait/data/model/remote/datasource/CafeRemoteData.kt index 1ddb464..1892c93 100644 --- a/app/src/main/java/org/cazait/cazait_android/data/model/remote/datasource/CafeRemoteData.kt +++ b/app/src/main/java/org/cazait/data/model/remote/datasource/CafeRemoteData.kt @@ -1,17 +1,17 @@ -package org.cazait.cazait_android.data.model.remote.datasource - -import org.cazait.cazait_android.data.Resource -import org.cazait.cazait_android.data.api.CafeService -import org.cazait.cazait_android.data.error.NETWORK_ERROR -import org.cazait.cazait_android.data.error.NO_INTERNET_CONNECTION -import org.cazait.cazait_android.data.model.remote.ServiceGenerator -import org.cazait.cazait_android.data.model.remote.request.CafeListRequest -import org.cazait.cazait_android.data.model.remote.response.CafeListResponse -import org.cazait.cazait_android.data.model.remote.response.DeleteInterestCafeResponse -import org.cazait.cazait_android.data.model.remote.response.InterestCafesResponse -import org.cazait.cazait_android.data.model.remote.response.PostInterestCafeResponse -import org.cazait.cazait_android.network.NetworkConnectivity -import org.cazait.cazait_android.usecase.errors.ErrorManager +package org.cazait.data.model.remote.datasource + +import org.cazait.data.Resource +import org.cazait.data.api.CafeService +import org.cazait.data.error.NETWORK_ERROR +import org.cazait.data.error.NO_INTERNET_CONNECTION +import org.cazait.data.model.remote.ServiceGenerator +import org.cazait.data.model.remote.request.CafeListRequest +import org.cazait.data.model.remote.response.CafeListResponse +import org.cazait.data.model.remote.response.DeleteInterestCafeResponse +import org.cazait.data.model.remote.response.InterestCafesResponse +import org.cazait.data.model.remote.response.PostInterestCafeResponse +import org.cazait.errors.ErrorManager +import org.cazait.network.NetworkConnectivity import retrofit2.Response import java.io.IOException import javax.inject.Inject @@ -19,7 +19,7 @@ import javax.inject.Inject class CafeRemoteData @Inject constructor( private val serviceGenerator: ServiceGenerator, private val networkConnectivity: NetworkConnectivity, - private val errorManager: ErrorManager + private val errorManager: ErrorManager, ) : CafeRemoteDataSource { private val cafeService = serviceGenerator.createService(CafeService::class.java) @@ -34,7 +34,7 @@ class CafeRemoteData @Inject constructor( latitude = query.latitude, longitude = query.longitude, limit = query.limit, - sort = query.sort + sort = query.sort, ).execute() if (response.isSuccessful) { @@ -48,14 +48,14 @@ class CafeRemoteData @Inject constructor( } override fun getInterestCafes(userId: Long): Resource { - if(!networkConnectivity.isConnected()) { + if (!networkConnectivity.isConnected()) { return Resource.Error(errorManager.getError(NO_INTERNET_CONNECTION).description) } return try { val response = cafeService.getInterestCafes(userId).execute() - if(response.isSuccessful) { + if (response.isSuccessful) { Resource.Success(response.body()!!) } else { Resource.Error(response.message()) @@ -66,14 +66,14 @@ class CafeRemoteData @Inject constructor( } override fun postInterestCafe(cafeId: Long, userId: Long): Resource { - if(!networkConnectivity.isConnected()) { + if (!networkConnectivity.isConnected()) { return Resource.Error(errorManager.getError(NO_INTERNET_CONNECTION).description) } return try { val response = cafeService.postInterestCafe(userId = userId, cafeId = cafeId).execute() - if(response.isSuccessful) { + if (response.isSuccessful) { Resource.Success(response.body()!!) } else { Resource.Error(response.message()) @@ -84,14 +84,14 @@ class CafeRemoteData @Inject constructor( } override fun deleteInterestCafe(favoritesId: Long): Resource { - if(!networkConnectivity.isConnected()) { + if (!networkConnectivity.isConnected()) { return Resource.Error(errorManager.getError(NO_INTERNET_CONNECTION).description) } return try { val response = cafeService.deleteInterestCafe(favoritesId).execute() - if(response.isSuccessful) { + if (response.isSuccessful) { Resource.Success(response.body()!!) } else { Resource.Error(response.message()) @@ -102,13 +102,14 @@ class CafeRemoteData @Inject constructor( } private suspend fun processCall(responseCall: suspend () -> Response<*>): Any? { - if(!networkConnectivity.isConnected()) + if (!networkConnectivity.isConnected()) { return NO_INTERNET_CONNECTION + } return try { val response = responseCall.invoke() val responseCode = response.code() - if(response.isSuccessful) { + if (response.isSuccessful) { response.body() } else { responseCode @@ -117,4 +118,4 @@ class CafeRemoteData @Inject constructor( NETWORK_ERROR } } -} \ No newline at end of file +} diff --git a/app/src/main/java/org/cazait/data/model/remote/datasource/CafeRemoteDataSource.kt b/app/src/main/java/org/cazait/data/model/remote/datasource/CafeRemoteDataSource.kt new file mode 100644 index 0000000..913fe29 --- /dev/null +++ b/app/src/main/java/org/cazait/data/model/remote/datasource/CafeRemoteDataSource.kt @@ -0,0 +1,15 @@ +package org.cazait.data.model.remote.datasource + +import org.cazait.data.Resource +import org.cazait.data.model.remote.request.CafeListRequest +import org.cazait.data.model.remote.response.CafeListResponse +import org.cazait.data.model.remote.response.DeleteInterestCafeResponse +import org.cazait.data.model.remote.response.InterestCafesResponse +import org.cazait.data.model.remote.response.PostInterestCafeResponse + +interface CafeRemoteDataSource { + fun getCafeList(userId: Long, query: CafeListRequest): Resource + fun getInterestCafes(userId: Long): Resource + fun postInterestCafe(cafeId: Long, userId: Long): Resource + fun deleteInterestCafe(favoritesId: Long): Resource +} diff --git a/app/src/main/java/org/cazait/cazait_android/data/model/remote/datasource/UserRemoteData.kt b/app/src/main/java/org/cazait/data/model/remote/datasource/UserRemoteData.kt similarity index 56% rename from app/src/main/java/org/cazait/cazait_android/data/model/remote/datasource/UserRemoteData.kt rename to app/src/main/java/org/cazait/data/model/remote/datasource/UserRemoteData.kt index 5b70f18..c4f16cb 100644 --- a/app/src/main/java/org/cazait/cazait_android/data/model/remote/datasource/UserRemoteData.kt +++ b/app/src/main/java/org/cazait/data/model/remote/datasource/UserRemoteData.kt @@ -1,23 +1,23 @@ -package org.cazait.cazait_android.data.model.remote.datasource +package org.cazait.data.model.remote.datasource -import org.cazait.cazait_android.data.Resource -import org.cazait.cazait_android.data.api.UserService -import org.cazait.cazait_android.data.error.NO_INTERNET_CONNECTION -import org.cazait.cazait_android.data.model.remote.ServiceGenerator -import org.cazait.cazait_android.data.model.remote.request.LoginRequest -import org.cazait.cazait_android.data.model.remote.request.SignUpRequest -import org.cazait.cazait_android.data.model.remote.response.LoginResponse -import org.cazait.cazait_android.data.model.remote.response.SignUpResponse -import org.cazait.cazait_android.data.model.remote.response.TokenResponse -import org.cazait.cazait_android.network.NetworkConnectivity -import org.cazait.cazait_android.usecase.errors.ErrorManager +import org.cazait.data.Resource +import org.cazait.data.api.UserService +import org.cazait.data.error.NO_INTERNET_CONNECTION +import org.cazait.data.model.remote.ServiceGenerator +import org.cazait.data.model.remote.request.LoginRequest +import org.cazait.data.model.remote.request.SignUpRequest +import org.cazait.data.model.remote.response.LoginResponse +import org.cazait.data.model.remote.response.SignUpResponse +import org.cazait.data.model.remote.response.TokenResponse +import org.cazait.errors.ErrorManager +import org.cazait.network.NetworkConnectivity import java.io.IOException import javax.inject.Inject class UserRemoteData @Inject constructor( private val serviceGenerator: ServiceGenerator, private val networkConnectivity: NetworkConnectivity, - private val errorManager: ErrorManager + private val errorManager: ErrorManager, ) : UserRemoteDataSource { private val userService = serviceGenerator.createService(UserService::class.java) @@ -38,15 +38,24 @@ class UserRemoteData @Inject constructor( } } - override fun postToken(userId: Long, accessTokenHeader: Map, refreshTokenHeader: Map): Resource { - if(!networkConnectivity.isConnected()) + override fun postToken( + userId: Long, + accessTokenHeader: Map, + refreshTokenHeader: Map, + ): Resource { + if (!networkConnectivity.isConnected()) { return Resource.Error(errorManager.getError(NO_INTERNET_CONNECTION).description) + } return try { - val response = userService.postRefreshToken(userId = userId, accessToken = accessTokenHeader, refreshToken = refreshTokenHeader).execute() - if(response.isSuccessful) + val response = userService.postRefreshToken( + userId = userId, + accessToken = accessTokenHeader, + refreshToken = refreshTokenHeader, + ).execute() + if (response.isSuccessful) { Resource.Success(response.body()!!) - else { + } else { Resource.Error(response.message()) } } catch (e: IOException) { @@ -55,15 +64,15 @@ class UserRemoteData @Inject constructor( } override fun postSignUp(body: SignUpRequest): Resource { - if(!networkConnectivity.isConnected()) { + if (!networkConnectivity.isConnected()) { return Resource.Error(errorManager.getError(NO_INTERNET_CONNECTION).description) } return try { val response = userService.postSignUp(body).execute() - if(response.isSuccessful) + if (response.isSuccessful) { Resource.Success(response.body()!!) - else { + } else { Resource.Error(response.message()) } } catch (e: IOException) { diff --git a/app/src/main/java/org/cazait/data/model/remote/datasource/UserRemoteDataSource.kt b/app/src/main/java/org/cazait/data/model/remote/datasource/UserRemoteDataSource.kt new file mode 100644 index 0000000..7be0bf4 --- /dev/null +++ b/app/src/main/java/org/cazait/data/model/remote/datasource/UserRemoteDataSource.kt @@ -0,0 +1,18 @@ +package org.cazait.data.model.remote.datasource + +import org.cazait.data.Resource +import org.cazait.data.model.remote.request.LoginRequest +import org.cazait.data.model.remote.request.SignUpRequest +import org.cazait.data.model.remote.response.LoginResponse +import org.cazait.data.model.remote.response.SignUpResponse +import org.cazait.data.model.remote.response.TokenResponse + +interface UserRemoteDataSource { + fun postSignUp(body: SignUpRequest): Resource + fun postLogin(body: LoginRequest): Resource + fun postToken( + userId: Long, + accessTokenHeader: Map, + refreshTokenHeader: Map, + ): Resource +} diff --git a/app/src/main/java/org/cazait/cazait_android/data/model/remote/request/CafeListRequest.kt b/app/src/main/java/org/cazait/data/model/remote/request/CafeListRequest.kt similarity index 56% rename from app/src/main/java/org/cazait/cazait_android/data/model/remote/request/CafeListRequest.kt rename to app/src/main/java/org/cazait/data/model/remote/request/CafeListRequest.kt index 6ca2572..f3b3ad1 100644 --- a/app/src/main/java/org/cazait/cazait_android/data/model/remote/request/CafeListRequest.kt +++ b/app/src/main/java/org/cazait/data/model/remote/request/CafeListRequest.kt @@ -1,8 +1,8 @@ -package org.cazait.cazait_android.data.model.remote.request +package org.cazait.data.model.remote.request data class CafeListRequest( val latitude: String, val longitude: String, val limit: String, - val sort: String -) \ No newline at end of file + val sort: String, +) diff --git a/app/src/main/java/org/cazait/cazait_android/data/model/remote/request/LoginRequest.kt b/app/src/main/java/org/cazait/data/model/remote/request/LoginRequest.kt similarity index 65% rename from app/src/main/java/org/cazait/cazait_android/data/model/remote/request/LoginRequest.kt rename to app/src/main/java/org/cazait/data/model/remote/request/LoginRequest.kt index 7a75af6..7726732 100644 --- a/app/src/main/java/org/cazait/cazait_android/data/model/remote/request/LoginRequest.kt +++ b/app/src/main/java/org/cazait/data/model/remote/request/LoginRequest.kt @@ -1,4 +1,4 @@ -package org.cazait.cazait_android.data.model.remote.request +package org.cazait.data.model.remote.request import com.google.gson.annotations.SerializedName @@ -6,5 +6,5 @@ data class LoginRequest( @SerializedName("email") val email: String, @SerializedName("password") - val password: String + val password: String, ) diff --git a/app/src/main/java/org/cazait/cazait_android/data/model/remote/request/MenuRequest.kt b/app/src/main/java/org/cazait/data/model/remote/request/MenuRequest.kt similarity index 56% rename from app/src/main/java/org/cazait/cazait_android/data/model/remote/request/MenuRequest.kt rename to app/src/main/java/org/cazait/data/model/remote/request/MenuRequest.kt index 37fcfe5..1c908c8 100644 --- a/app/src/main/java/org/cazait/cazait_android/data/model/remote/request/MenuRequest.kt +++ b/app/src/main/java/org/cazait/data/model/remote/request/MenuRequest.kt @@ -1,8 +1,8 @@ -package org.cazait.cazait_android.data.model.remote.request +package org.cazait.data.model.remote.request import com.google.gson.annotations.SerializedName data class MenuRequest( @SerializedName("cafeId") - val cafeId: Long -) \ No newline at end of file + val cafeId: Long, +) diff --git a/app/src/main/java/org/cazait/cazait_android/data/model/remote/request/ReviewEditRequest.kt b/app/src/main/java/org/cazait/data/model/remote/request/ReviewEditRequest.kt similarity index 56% rename from app/src/main/java/org/cazait/cazait_android/data/model/remote/request/ReviewEditRequest.kt rename to app/src/main/java/org/cazait/data/model/remote/request/ReviewEditRequest.kt index 89a1f57..2957a56 100644 --- a/app/src/main/java/org/cazait/cazait_android/data/model/remote/request/ReviewEditRequest.kt +++ b/app/src/main/java/org/cazait/data/model/remote/request/ReviewEditRequest.kt @@ -1,8 +1,8 @@ -package org.cazait.cazait_android.data.model.remote.request +package org.cazait.data.model.remote.request import com.google.gson.annotations.SerializedName data class ReviewEditRequest( @SerializedName("content") val content: String, - @SerializedName("score") val score: Int + @SerializedName("score") val score: Int, ) diff --git a/app/src/main/java/org/cazait/data/model/remote/request/ReviewRequest.kt b/app/src/main/java/org/cazait/data/model/remote/request/ReviewRequest.kt new file mode 100644 index 0000000..3d9736b --- /dev/null +++ b/app/src/main/java/org/cazait/data/model/remote/request/ReviewRequest.kt @@ -0,0 +1,5 @@ +package org.cazait.data.model.remote.request + +data class ReviewRequest( + val sortBy: String, +) diff --git a/app/src/main/java/org/cazait/data/model/remote/request/SignUpRequest.kt b/app/src/main/java/org/cazait/data/model/remote/request/SignUpRequest.kt new file mode 100644 index 0000000..f6cedd9 --- /dev/null +++ b/app/src/main/java/org/cazait/data/model/remote/request/SignUpRequest.kt @@ -0,0 +1,7 @@ +package org.cazait.data.model.remote.request + +data class SignUpRequest( + val email: String, + val nickname: String, + val password: String, +) diff --git a/app/src/main/java/org/cazait/cazait_android/data/model/remote/response/CafeListResponse.kt b/app/src/main/java/org/cazait/data/model/remote/response/CafeListResponse.kt similarity index 75% rename from app/src/main/java/org/cazait/cazait_android/data/model/remote/response/CafeListResponse.kt rename to app/src/main/java/org/cazait/data/model/remote/response/CafeListResponse.kt index b537b4b..423af0b 100644 --- a/app/src/main/java/org/cazait/cazait_android/data/model/remote/response/CafeListResponse.kt +++ b/app/src/main/java/org/cazait/data/model/remote/response/CafeListResponse.kt @@ -1,13 +1,13 @@ -package org.cazait.cazait_android.data.model.remote.response +package org.cazait.data.model.remote.response import com.google.gson.annotations.SerializedName -import org.cazait.cazait_android.data.model.CafeImageRes +import org.cazait.data.model.CafeImageRes data class CafeListResponse( @SerializedName("code") val code: Int, @SerializedName("data") val data: List>, @SerializedName("message") val message: String, - @SerializedName("result") val result: String + @SerializedName("result") val result: String, ) { data class Data( val address: String, @@ -18,6 +18,6 @@ data class CafeListResponse( @SerializedName("getCafeImageRes") val cafeImageRes: List, val latitude: String, val longitude: String, - val name: String + val name: String, ) } diff --git a/app/src/main/java/org/cazait/cazait_android/data/model/remote/response/DeleteInterestCafeResponse.kt b/app/src/main/java/org/cazait/data/model/remote/response/DeleteInterestCafeResponse.kt similarity index 69% rename from app/src/main/java/org/cazait/cazait_android/data/model/remote/response/DeleteInterestCafeResponse.kt rename to app/src/main/java/org/cazait/data/model/remote/response/DeleteInterestCafeResponse.kt index a88edcd..18e872c 100644 --- a/app/src/main/java/org/cazait/cazait_android/data/model/remote/response/DeleteInterestCafeResponse.kt +++ b/app/src/main/java/org/cazait/data/model/remote/response/DeleteInterestCafeResponse.kt @@ -1,4 +1,4 @@ -package org.cazait.cazait_android.data.model.remote.response +package org.cazait.data.model.remote.response import com.google.gson.annotations.SerializedName @@ -6,5 +6,5 @@ data class DeleteInterestCafeResponse( val code: Int, @SerializedName("data") val deleteMessage: String, val message: String, - val result: String + val result: String, ) diff --git a/app/src/main/java/org/cazait/cazait_android/data/model/remote/response/InterestCafesResponse.kt b/app/src/main/java/org/cazait/data/model/remote/response/InterestCafesResponse.kt similarity index 67% rename from app/src/main/java/org/cazait/cazait_android/data/model/remote/response/InterestCafesResponse.kt rename to app/src/main/java/org/cazait/data/model/remote/response/InterestCafesResponse.kt index d216054..17b591d 100644 --- a/app/src/main/java/org/cazait/cazait_android/data/model/remote/response/InterestCafesResponse.kt +++ b/app/src/main/java/org/cazait/data/model/remote/response/InterestCafesResponse.kt @@ -1,13 +1,12 @@ -package org.cazait.cazait_android.data.model.remote.response +package org.cazait.data.model.remote.response import com.google.gson.annotations.SerializedName -import org.cazait.cazait_android.data.model.CafeImageRes data class InterestCafesResponse( val code: Int, val result: String, val message: String, - val data: List + val data: List, ) { data class Data( val address: String, @@ -17,6 +16,6 @@ data class InterestCafesResponse( val imageUrl: List, val latitude: String, val longitude: String, - @SerializedName("name") val cafeName: String + @SerializedName("name") val cafeName: String, ) -} \ No newline at end of file +} diff --git a/app/src/main/java/org/cazait/cazait_android/data/model/remote/response/IsDuplicateEmailResponse.kt b/app/src/main/java/org/cazait/data/model/remote/response/IsDuplicateEmailResponse.kt similarity index 56% rename from app/src/main/java/org/cazait/cazait_android/data/model/remote/response/IsDuplicateEmailResponse.kt rename to app/src/main/java/org/cazait/data/model/remote/response/IsDuplicateEmailResponse.kt index ceb074d..58c7c0e 100644 --- a/app/src/main/java/org/cazait/cazait_android/data/model/remote/response/IsDuplicateEmailResponse.kt +++ b/app/src/main/java/org/cazait/data/model/remote/response/IsDuplicateEmailResponse.kt @@ -1,8 +1,8 @@ -package org.cazait.cazait_android.data.model.remote.response +package org.cazait.data.model.remote.response data class IsDuplicateEmailResponse( val code: Int, val result: String, val message: String, - val data: String + val data: String, ) diff --git a/app/src/main/java/org/cazait/cazait_android/data/model/remote/response/LoginResponse.kt b/app/src/main/java/org/cazait/data/model/remote/response/LoginResponse.kt similarity index 80% rename from app/src/main/java/org/cazait/cazait_android/data/model/remote/response/LoginResponse.kt rename to app/src/main/java/org/cazait/data/model/remote/response/LoginResponse.kt index 9a77f24..4e4d763 100644 --- a/app/src/main/java/org/cazait/cazait_android/data/model/remote/response/LoginResponse.kt +++ b/app/src/main/java/org/cazait/data/model/remote/response/LoginResponse.kt @@ -1,4 +1,4 @@ -package org.cazait.cazait_android.data.model.remote.response +package org.cazait.data.model.remote.response import com.google.gson.annotations.SerializedName @@ -6,12 +6,12 @@ data class LoginResponse( @SerializedName("code") val code: Int, @SerializedName("data") val data: Data, @SerializedName("message") val message: String, - @SerializedName("result") val result: String + @SerializedName("result") val result: String, ) { data class Data( @SerializedName("email") val email: String, @SerializedName("id") val id: Long, @SerializedName("jwtToken") val jwtToken: String, - @SerializedName("refreshToken") val refreshToken: String + @SerializedName("refreshToken") val refreshToken: String, ) -} \ No newline at end of file +} diff --git a/app/src/main/java/org/cazait/cazait_android/data/model/remote/response/MenuResponse.kt b/app/src/main/java/org/cazait/data/model/remote/response/MenuResponse.kt similarity index 64% rename from app/src/main/java/org/cazait/cazait_android/data/model/remote/response/MenuResponse.kt rename to app/src/main/java/org/cazait/data/model/remote/response/MenuResponse.kt index 3b708af..6c01774 100644 --- a/app/src/main/java/org/cazait/cazait_android/data/model/remote/response/MenuResponse.kt +++ b/app/src/main/java/org/cazait/data/model/remote/response/MenuResponse.kt @@ -1,18 +1,18 @@ -package org.cazait.cazait_android.data.model.remote.response +package org.cazait.data.model.remote.response import com.google.gson.annotations.SerializedName data class MenuResponse( - @SerializedName("code") val code : Int, + @SerializedName("code") val code: Int, @SerializedName("data") val data: List, @SerializedName("message") val message: String, - @SerializedName("result") val result: String + @SerializedName("result") val result: String, ) { data class Data( val cafeMenuId: Int, val description: String, val imageUrl: String, val name: String, - val price: Int + val price: Int, ) -} \ No newline at end of file +} diff --git a/app/src/main/java/org/cazait/cazait_android/data/model/remote/response/PostInterestCafeResponse.kt b/app/src/main/java/org/cazait/data/model/remote/response/PostInterestCafeResponse.kt similarity index 57% rename from app/src/main/java/org/cazait/cazait_android/data/model/remote/response/PostInterestCafeResponse.kt rename to app/src/main/java/org/cazait/data/model/remote/response/PostInterestCafeResponse.kt index d22ba7a..1651a9a 100644 --- a/app/src/main/java/org/cazait/cazait_android/data/model/remote/response/PostInterestCafeResponse.kt +++ b/app/src/main/java/org/cazait/data/model/remote/response/PostInterestCafeResponse.kt @@ -1,4 +1,4 @@ -package org.cazait.cazait_android.data.model.remote.response +package org.cazait.data.model.remote.response import com.google.gson.annotations.SerializedName @@ -6,9 +6,9 @@ data class PostInterestCafeResponse( val code: Int, val data: Data, val message: String, - val result: String + val result: String, ) { data class Data( - @SerializedName("id") val favoritesId: Long + @SerializedName("id") val favoritesId: Long, ) } diff --git a/app/src/main/java/org/cazait/cazait_android/data/model/remote/response/ReviewEditResponse.kt b/app/src/main/java/org/cazait/data/model/remote/response/ReviewEditResponse.kt similarity index 76% rename from app/src/main/java/org/cazait/cazait_android/data/model/remote/response/ReviewEditResponse.kt rename to app/src/main/java/org/cazait/data/model/remote/response/ReviewEditResponse.kt index 872993a..87488b7 100644 --- a/app/src/main/java/org/cazait/cazait_android/data/model/remote/response/ReviewEditResponse.kt +++ b/app/src/main/java/org/cazait/data/model/remote/response/ReviewEditResponse.kt @@ -1,4 +1,4 @@ -package org.cazait.cazait_android.data.model.remote.response +package org.cazait.data.model.remote.response import com.google.gson.annotations.SerializedName @@ -6,14 +6,14 @@ data class ReviewEditResponse( @SerializedName("code") val code: Int, @SerializedName("data") val data: Data, @SerializedName("message") val message: String, - @SerializedName("result") val result: String -){ + @SerializedName("result") val result: String, +) { data class Data( @SerializedName("cafeId") val cafeId: Long, @SerializedName("content") val content: String, @SerializedName("createdAt") val createdAt: String, @SerializedName("reviewId") val reviewId: Long, @SerializedName("score") val score: Int, - @SerializedName("userId") val userId: Long + @SerializedName("userId") val userId: Long, ) } diff --git a/app/src/main/java/org/cazait/cazait_android/data/model/remote/response/ReviewResponse.kt b/app/src/main/java/org/cazait/data/model/remote/response/ReviewResponse.kt similarity index 66% rename from app/src/main/java/org/cazait/cazait_android/data/model/remote/response/ReviewResponse.kt rename to app/src/main/java/org/cazait/data/model/remote/response/ReviewResponse.kt index c243c22..2d8337b 100644 --- a/app/src/main/java/org/cazait/cazait_android/data/model/remote/response/ReviewResponse.kt +++ b/app/src/main/java/org/cazait/data/model/remote/response/ReviewResponse.kt @@ -1,23 +1,23 @@ -package org.cazait.cazait_android.data.model.remote.response +package org.cazait.data.model.remote.response import com.google.gson.annotations.SerializedName data class ReviewResponse( - @SerializedName("code") val code : Int, + @SerializedName("code") val code: Int, @SerializedName("data") val data: Data, @SerializedName("message") val message: String, - @SerializedName("result") val result: String + @SerializedName("result") val result: String, ) { data class Data( @SerializedName("reviewResponses") val reviewResponses: List, @SerializedName("totalElements") val totalElement: Int, - @SerializedName("nextCursor") val nextCursor: Int - ){ + @SerializedName("nextCursor") val nextCursor: Int, + ) { data class ReviewItem( val cafeId: Int, val content: String, val score: Int, - val userId: Int + val userId: Int, ) } -} \ No newline at end of file +} diff --git a/app/src/main/java/org/cazait/cazait_android/data/model/remote/response/SignUpResponse.kt b/app/src/main/java/org/cazait/data/model/remote/response/SignUpResponse.kt similarity index 73% rename from app/src/main/java/org/cazait/cazait_android/data/model/remote/response/SignUpResponse.kt rename to app/src/main/java/org/cazait/data/model/remote/response/SignUpResponse.kt index 095741f..5a11d10 100644 --- a/app/src/main/java/org/cazait/cazait_android/data/model/remote/response/SignUpResponse.kt +++ b/app/src/main/java/org/cazait/data/model/remote/response/SignUpResponse.kt @@ -1,4 +1,4 @@ -package org.cazait.cazait_android.data.model.remote.response +package org.cazait.data.model.remote.response import com.google.gson.annotations.SerializedName @@ -7,12 +7,12 @@ data class SignUpResponse( @SerializedName("data") val data: Data, val message: String, - val result: String + val result: String, ) { data class Data( val email: String, val id: Long, val nickname: String, - val password: String + val password: String, ) } diff --git a/app/src/main/java/org/cazait/cazait_android/data/model/remote/response/TokenResponse.kt b/app/src/main/java/org/cazait/data/model/remote/response/TokenResponse.kt similarity index 70% rename from app/src/main/java/org/cazait/cazait_android/data/model/remote/response/TokenResponse.kt rename to app/src/main/java/org/cazait/data/model/remote/response/TokenResponse.kt index faa11b9..affa0c8 100644 --- a/app/src/main/java/org/cazait/cazait_android/data/model/remote/response/TokenResponse.kt +++ b/app/src/main/java/org/cazait/data/model/remote/response/TokenResponse.kt @@ -1,4 +1,4 @@ -package org.cazait.cazait_android.data.model.remote.response +package org.cazait.data.model.remote.response import com.google.gson.annotations.SerializedName @@ -6,12 +6,12 @@ data class TokenResponse( @SerializedName("code") val code: Int, val data: Data, val message: String, - val result: String + val result: String, ) { data class Data( val email: String, val id: Long, val jwtToken: String, - val refreshToken: String + val refreshToken: String, ) } diff --git a/app/src/main/java/org/cazait/data/repository/DataRepository.kt b/app/src/main/java/org/cazait/data/repository/DataRepository.kt new file mode 100644 index 0000000..2eb53c9 --- /dev/null +++ b/app/src/main/java/org/cazait/data/repository/DataRepository.kt @@ -0,0 +1,33 @@ +package org.cazait.data.repository + +import kotlinx.coroutines.flow.Flow +import org.cazait.data.Resource +import org.cazait.data.model.remote.request.CafeListRequest +import org.cazait.data.model.remote.request.ReviewEditRequest +import org.cazait.data.model.remote.request.ReviewRequest +import org.cazait.data.model.remote.response.CafeListResponse +import org.cazait.data.model.remote.response.DeleteInterestCafeResponse +import org.cazait.data.model.remote.response.InterestCafesResponse +import org.cazait.data.model.remote.response.MenuResponse +import org.cazait.data.model.remote.response.PostInterestCafeResponse +import org.cazait.data.model.remote.response.ReviewEditResponse +import org.cazait.data.model.remote.response.ReviewResponse + +interface DataRepository { + suspend fun getCafes(userId: Long, query: CafeListRequest): Flow> + suspend fun getMenus(cafeId: Long): Flow> + suspend fun getReviews(cafeId: Long, query: ReviewRequest): Flow> + suspend fun getInterestCafes(userId: Long): Flow> + suspend fun postReview( + userId: Long, + cafeId: Long, + body: ReviewEditRequest, + ): Flow> + + suspend fun postInterestCafe( + userId: Long, + cafeId: Long, + ): Flow> + + suspend fun deleteInterestCafe(favoritesId: Long): Flow> +} diff --git a/app/src/main/java/org/cazait/cazait_android/data/repository/DataRepositoryImpl.kt b/app/src/main/java/org/cazait/data/repository/DataRepositoryImpl.kt similarity index 66% rename from app/src/main/java/org/cazait/cazait_android/data/repository/DataRepositoryImpl.kt rename to app/src/main/java/org/cazait/data/repository/DataRepositoryImpl.kt index 1764233..31e7ea5 100644 --- a/app/src/main/java/org/cazait/cazait_android/data/repository/DataRepositoryImpl.kt +++ b/app/src/main/java/org/cazait/data/repository/DataRepositoryImpl.kt @@ -1,15 +1,21 @@ -package org.cazait.cazait_android.data.repository +package org.cazait.data.repository import kotlinx.coroutines.flow.Flow import kotlinx.coroutines.flow.flow import kotlinx.coroutines.flow.flowOn -import org.cazait.cazait_android.data.Resource -import org.cazait.cazait_android.data.model.remote.datasource.CafeInfoRemoteData -import org.cazait.cazait_android.data.model.remote.datasource.CafeRemoteData -import org.cazait.cazait_android.data.model.remote.request.CafeListRequest -import org.cazait.cazait_android.data.model.remote.request.ReviewEditRequest -import org.cazait.cazait_android.data.model.remote.request.ReviewRequest -import org.cazait.cazait_android.data.model.remote.response.* +import org.cazait.data.Resource +import org.cazait.data.model.remote.datasource.CafeInfoRemoteData +import org.cazait.data.model.remote.datasource.CafeRemoteData +import org.cazait.data.model.remote.request.CafeListRequest +import org.cazait.data.model.remote.request.ReviewEditRequest +import org.cazait.data.model.remote.request.ReviewRequest +import org.cazait.data.model.remote.response.CafeListResponse +import org.cazait.data.model.remote.response.DeleteInterestCafeResponse +import org.cazait.data.model.remote.response.InterestCafesResponse +import org.cazait.data.model.remote.response.MenuResponse +import org.cazait.data.model.remote.response.PostInterestCafeResponse +import org.cazait.data.model.remote.response.ReviewEditResponse +import org.cazait.data.model.remote.response.ReviewResponse import javax.inject.Inject import kotlin.coroutines.CoroutineContext @@ -21,7 +27,7 @@ class DataRepositoryImpl @Inject constructor( override suspend fun getCafes( userId: Long, - query: CafeListRequest + query: CafeListRequest, ): Flow> { return flow { emit(remoteData.getCafeList(userId, query)) @@ -29,7 +35,7 @@ class DataRepositoryImpl @Inject constructor( } override suspend fun getMenus( - cafeId: Long + cafeId: Long, ): Flow> { return flow { emit(infoRemoteData.getMenus(cafeId)) @@ -38,7 +44,7 @@ class DataRepositoryImpl @Inject constructor( override suspend fun getReviews( cafeId: Long, - query: ReviewRequest + query: ReviewRequest, ): Flow> { return flow { emit(infoRemoteData.getReviews(cafeId, query)) @@ -54,7 +60,7 @@ class DataRepositoryImpl @Inject constructor( override suspend fun postReview( userId: Long, cafeId: Long, - body: ReviewEditRequest + body: ReviewEditRequest, ): Flow> { return flow { emit(infoRemoteData.postReview(userId, cafeId, body)) @@ -63,7 +69,7 @@ class DataRepositoryImpl @Inject constructor( override suspend fun postInterestCafe( userId: Long, - cafeId: Long + cafeId: Long, ): Flow> { return flow { emit(remoteData.postInterestCafe(userId = userId, cafeId = cafeId)) @@ -75,4 +81,4 @@ class DataRepositoryImpl @Inject constructor( emit(remoteData.deleteInterestCafe(favoritesId)) }.flowOn(ioDispatcher) } -} \ No newline at end of file +} diff --git a/app/src/main/java/org/cazait/cazait_android/data/repository/UserRepository.kt b/app/src/main/java/org/cazait/data/repository/UserRepository.kt similarity index 55% rename from app/src/main/java/org/cazait/cazait_android/data/repository/UserRepository.kt rename to app/src/main/java/org/cazait/data/repository/UserRepository.kt index efcdeb2..5738f3b 100644 --- a/app/src/main/java/org/cazait/cazait_android/data/repository/UserRepository.kt +++ b/app/src/main/java/org/cazait/data/repository/UserRepository.kt @@ -1,12 +1,12 @@ -package org.cazait.cazait_android.data.repository +package org.cazait.data.repository import kotlinx.coroutines.flow.Flow -import org.cazait.cazait_android.data.Resource -import org.cazait.cazait_android.data.model.remote.request.LoginRequest -import org.cazait.cazait_android.data.model.remote.request.SignUpRequest -import org.cazait.cazait_android.data.model.remote.response.LoginResponse -import org.cazait.cazait_android.data.model.remote.response.SignUpResponse -import org.cazait.cazait_android.data.model.remote.response.TokenResponse +import org.cazait.data.Resource +import org.cazait.data.model.remote.request.LoginRequest +import org.cazait.data.model.remote.request.SignUpRequest +import org.cazait.data.model.remote.response.LoginResponse +import org.cazait.data.model.remote.response.SignUpResponse +import org.cazait.data.model.remote.response.TokenResponse interface UserRepository { suspend fun signUp(body: SignUpRequest): Flow> @@ -19,4 +19,4 @@ interface UserRepository { suspend fun fetchUserIdInDataStore(): Flow suspend fun postToken(): Flow> suspend fun logout() -} \ No newline at end of file +} diff --git a/app/src/main/java/org/cazait/cazait_android/data/repository/UserRepositoryImpl.kt b/app/src/main/java/org/cazait/data/repository/UserRepositoryImpl.kt similarity index 74% rename from app/src/main/java/org/cazait/cazait_android/data/repository/UserRepositoryImpl.kt rename to app/src/main/java/org/cazait/data/repository/UserRepositoryImpl.kt index ef61211..d20ab92 100644 --- a/app/src/main/java/org/cazait/cazait_android/data/repository/UserRepositoryImpl.kt +++ b/app/src/main/java/org/cazait/data/repository/UserRepositoryImpl.kt @@ -1,16 +1,14 @@ -package org.cazait.cazait_android.data.repository +package org.cazait.data.repository -import android.util.Log import kotlinx.coroutines.flow.* -import kotlinx.coroutines.runBlocking -import org.cazait.cazait_android.data.Resource -import org.cazait.cazait_android.data.model.local.LocalData -import org.cazait.cazait_android.data.model.remote.datasource.UserRemoteData -import org.cazait.cazait_android.data.model.remote.request.LoginRequest -import org.cazait.cazait_android.data.model.remote.request.SignUpRequest -import org.cazait.cazait_android.data.model.remote.response.LoginResponse -import org.cazait.cazait_android.data.model.remote.response.SignUpResponse -import org.cazait.cazait_android.data.model.remote.response.TokenResponse +import org.cazait.data.Resource +import org.cazait.data.model.local.LocalData +import org.cazait.data.model.remote.datasource.UserRemoteData +import org.cazait.data.model.remote.request.LoginRequest +import org.cazait.data.model.remote.request.SignUpRequest +import org.cazait.data.model.remote.response.LoginResponse +import org.cazait.data.model.remote.response.SignUpResponse +import org.cazait.data.model.remote.response.TokenResponse import javax.inject.Inject import kotlin.coroutines.CoroutineContext @@ -51,9 +49,11 @@ class UserRepositoryImpl @Inject constructor( override suspend fun fetchUserIdInDataStore(): Flow { return localData.fetchUserIdInDataStore() } + override suspend fun isLoggedIn(): Flow { return localData.isLoggedIn() } + // `postToken`으로 인해 앞 단계에 UseCase 추가 하면 더 좋을 것 같음 override suspend fun postToken(): Flow> { val tokens = fetchTokenInDataStore().first() @@ -64,8 +64,8 @@ class UserRepositoryImpl @Inject constructor( remoteData.postToken( userId = userId, accessTokenHeader = mapOf("X-ACCESS-TOKEN" to tokens.first()), - refreshTokenHeader = mapOf("REFRESH-TOKEN" to tokens.last()) - ) + refreshTokenHeader = mapOf("REFRESH-TOKEN" to tokens.last()), + ), ) }.flowOn(ioDispatcher) } @@ -77,4 +77,4 @@ class UserRepositoryImpl @Inject constructor( private suspend fun clearDataStore() { localData.clearDataStore() } -} \ No newline at end of file +} diff --git a/app/src/main/java/org/cazait/cazait_android/di/AppModule.kt b/app/src/main/java/org/cazait/di/AppModule.kt similarity index 87% rename from app/src/main/java/org/cazait/cazait_android/di/AppModule.kt rename to app/src/main/java/org/cazait/di/AppModule.kt index a655e61..eed543b 100644 --- a/app/src/main/java/org/cazait/cazait_android/di/AppModule.kt +++ b/app/src/main/java/org/cazait/di/AppModule.kt @@ -1,4 +1,4 @@ -package org.cazait.cazait_android.di +package org.cazait.di import android.app.Application import android.content.Context @@ -12,9 +12,9 @@ import dagger.hilt.InstallIn import dagger.hilt.android.qualifiers.ApplicationContext import dagger.hilt.components.SingletonComponent import kotlinx.coroutines.Dispatchers -import org.cazait.cazait_android.data.model.local.LocalData -import org.cazait.cazait_android.network.Network -import org.cazait.cazait_android.network.NetworkConnectivity +import org.cazait.data.model.local.LocalData +import org.cazait.network.Network +import org.cazait.network.NetworkConnectivity import javax.inject.Singleton import kotlin.coroutines.CoroutineContext @@ -51,4 +51,4 @@ class AppModule { @Provides @Singleton fun provideGeocoder(application: Application) = Geocoder(application) -} \ No newline at end of file +} diff --git a/app/src/main/java/org/cazait/di/DataModule.kt b/app/src/main/java/org/cazait/di/DataModule.kt new file mode 100644 index 0000000..b9d6557 --- /dev/null +++ b/app/src/main/java/org/cazait/di/DataModule.kt @@ -0,0 +1,24 @@ +package org.cazait.di + +import dagger.Binds +import dagger.Module +import dagger.hilt.InstallIn +import dagger.hilt.components.SingletonComponent +import org.cazait.data.repository.DataRepository +import org.cazait.data.repository.DataRepositoryImpl +import org.cazait.data.repository.UserRepository +import org.cazait.data.repository.UserRepositoryImpl + +@Module +@InstallIn(SingletonComponent::class) +interface DataModule { + @Binds + fun provideDataRepository( + dataRepositoryImpl: DataRepositoryImpl, + ): DataRepository + + @Binds + fun provideUserRepository( + userRepositoryImpl: UserRepositoryImpl, + ): UserRepository +} diff --git a/app/src/main/java/org/cazait/di/DatabaseModule.kt b/app/src/main/java/org/cazait/di/DatabaseModule.kt new file mode 100644 index 0000000..a1c37b6 --- /dev/null +++ b/app/src/main/java/org/cazait/di/DatabaseModule.kt @@ -0,0 +1,32 @@ +package org.cazait.di + +// import android.content.Context +// import androidx.room.Room +// import dagger.Module +// import dagger.Provides +// import dagger.hilt.InstallIn +// import dagger.hilt.android.qualifiers.ApplicationContext +// import dagger.hilt.components.SingletonComponent +// import org.cazait.cazait_android.data.model.local.AppDatabase +// import org.cazait.cazait_android.data.model.local.LogDao +// import javax.inject.Singleton + +// @Module +// @InstallIn(SingletonComponent::class) +// object DatabaseModule { +// +// @Provides +// @Singleton +// fun provideDatabase(@ApplicationContext appContext: Context): AppDatabase { +// return Room.databaseBuilder( +// appContext, +// AppDatabase::class.java, +// "logging.db" +// ).build() +// } +// +// @Provides +// fun provideLogDao(database: AppDatabase): LogDao { +// return database.logDao() +// } +// } diff --git a/app/src/main/java/org/cazait/cazait_android/di/ErrorModule.kt b/app/src/main/java/org/cazait/di/ErrorModule.kt similarity index 60% rename from app/src/main/java/org/cazait/cazait_android/di/ErrorModule.kt rename to app/src/main/java/org/cazait/di/ErrorModule.kt index 3f018aa..58592f0 100644 --- a/app/src/main/java/org/cazait/cazait_android/di/ErrorModule.kt +++ b/app/src/main/java/org/cazait/di/ErrorModule.kt @@ -1,13 +1,13 @@ -package org.cazait.cazait_android.di +package org.cazait.di import dagger.Binds import dagger.Module import dagger.hilt.InstallIn import dagger.hilt.components.SingletonComponent -import org.cazait.cazait_android.data.error.mapper.ErrorMapper -import org.cazait.cazait_android.data.error.mapper.ErrorMapperSource -import org.cazait.cazait_android.usecase.errors.ErrorManager -import org.cazait.cazait_android.usecase.errors.ErrorUseCase +import org.cazait.data.error.mapper.ErrorMapper +import org.cazait.data.error.mapper.ErrorMapperSource +import org.cazait.errors.ErrorManager +import org.cazait.errors.ErrorUseCase import javax.inject.Singleton @Module @@ -20,4 +20,4 @@ abstract class ErrorModule { @Binds @Singleton abstract fun provideErrorMapper(errorMapper: ErrorMapper): ErrorMapperSource -} \ No newline at end of file +} diff --git a/app/src/main/java/org/cazait/cazait_android/usecase/errors/ErrorManager.kt b/app/src/main/java/org/cazait/errors/ErrorManager.kt similarity index 62% rename from app/src/main/java/org/cazait/cazait_android/usecase/errors/ErrorManager.kt rename to app/src/main/java/org/cazait/errors/ErrorManager.kt index 641f05d..841b0e5 100644 --- a/app/src/main/java/org/cazait/cazait_android/usecase/errors/ErrorManager.kt +++ b/app/src/main/java/org/cazait/errors/ErrorManager.kt @@ -1,11 +1,11 @@ -package org.cazait.cazait_android.usecase.errors +package org.cazait.errors -import org.cazait.cazait_android.data.error.Error -import org.cazait.cazait_android.data.error.mapper.ErrorMapper +import org.cazait.data.error.Error +import org.cazait.data.error.mapper.ErrorMapper import javax.inject.Inject class ErrorManager @Inject constructor(private val errorMapper: ErrorMapper) : ErrorUseCase { override fun getError(errorCode: Int): Error { return Error(code = errorCode, description = errorMapper.errorsMap.getValue(errorCode)) } -} \ No newline at end of file +} diff --git a/app/src/main/java/org/cazait/errors/ErrorUseCase.kt b/app/src/main/java/org/cazait/errors/ErrorUseCase.kt new file mode 100644 index 0000000..5849871 --- /dev/null +++ b/app/src/main/java/org/cazait/errors/ErrorUseCase.kt @@ -0,0 +1,7 @@ +package org.cazait.errors + +import org.cazait.data.error.Error + +interface ErrorUseCase { + fun getError(errorCode: Int): Error +} diff --git a/app/src/main/java/org/cazait/cazait_android/network/Network.kt b/app/src/main/java/org/cazait/network/Network.kt similarity index 92% rename from app/src/main/java/org/cazait/cazait_android/network/Network.kt rename to app/src/main/java/org/cazait/network/Network.kt index 4a430cb..80233bd 100644 --- a/app/src/main/java/org/cazait/cazait_android/network/Network.kt +++ b/app/src/main/java/org/cazait/network/Network.kt @@ -1,4 +1,4 @@ -package org.cazait.cazait_android.network +package org.cazait.network import android.content.Context import android.net.ConnectivityManager @@ -15,4 +15,4 @@ class Network @Inject constructor(val context: Context) : NetworkConnectivity { val info = getNetworkInfo() return info != null && info.isConnected } -} \ No newline at end of file +} diff --git a/app/src/main/java/org/cazait/cazait_android/network/NetworkConnectivity.kt b/app/src/main/java/org/cazait/network/NetworkConnectivity.kt similarity index 75% rename from app/src/main/java/org/cazait/cazait_android/network/NetworkConnectivity.kt rename to app/src/main/java/org/cazait/network/NetworkConnectivity.kt index 794c60c..cc442d6 100644 --- a/app/src/main/java/org/cazait/cazait_android/network/NetworkConnectivity.kt +++ b/app/src/main/java/org/cazait/network/NetworkConnectivity.kt @@ -1,8 +1,8 @@ -package org.cazait.cazait_android.network +package org.cazait.network import android.net.NetworkInfo interface NetworkConnectivity { fun getNetworkInfo(): NetworkInfo? fun isConnected(): Boolean -} \ No newline at end of file +} diff --git a/app/src/main/java/org/cazait/cazait_android/ui/adapter/CafeImgAdapter.kt b/app/src/main/java/org/cazait/ui/adapter/CafeImgAdapter.kt similarity index 88% rename from app/src/main/java/org/cazait/cazait_android/ui/adapter/CafeImgAdapter.kt rename to app/src/main/java/org/cazait/ui/adapter/CafeImgAdapter.kt index ef01054..07c6110 100644 --- a/app/src/main/java/org/cazait/cazait_android/ui/adapter/CafeImgAdapter.kt +++ b/app/src/main/java/org/cazait/ui/adapter/CafeImgAdapter.kt @@ -1,4 +1,4 @@ -package org.cazait.cazait_android.ui.adapter +package org.cazait.ui.adapter import android.content.Context import android.view.LayoutInflater @@ -7,8 +7,8 @@ import android.view.ViewGroup import android.widget.ImageView import androidx.recyclerview.widget.RecyclerView import com.bumptech.glide.Glide -import org.cazait.cazait_android.R -import org.cazait.cazait_android.data.model.CafeImageRes +import org.cazait.R +import org.cazait.data.model.CafeImageRes class CafeImgAdapter(private val context: Context, private val cafeImg: List) : RecyclerView.Adapter() { @@ -27,4 +27,4 @@ class CafeImgAdapter(private val context: Context, private val cafeImg: List + private val menus: List, ) : RecyclerView.Adapter() { override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): MenusViewHolder { @@ -36,4 +36,4 @@ class CafeInfoMenuAdapter( override fun getItemViewType(position: Int): Int { return position } -} \ No newline at end of file +} diff --git a/app/src/main/java/org/cazait/cazait_android/ui/adapter/CafeInfoReviewAdapter.kt b/app/src/main/java/org/cazait/ui/adapter/CafeInfoReviewAdapter.kt similarity index 74% rename from app/src/main/java/org/cazait/cazait_android/ui/adapter/CafeInfoReviewAdapter.kt rename to app/src/main/java/org/cazait/ui/adapter/CafeInfoReviewAdapter.kt index c345983..3610cab 100644 --- a/app/src/main/java/org/cazait/cazait_android/ui/adapter/CafeInfoReviewAdapter.kt +++ b/app/src/main/java/org/cazait/ui/adapter/CafeInfoReviewAdapter.kt @@ -1,17 +1,17 @@ -package org.cazait.cazait_android.ui.adapter +package org.cazait.ui.adapter import android.view.LayoutInflater import android.view.ViewGroup import androidx.recyclerview.widget.RecyclerView -import org.cazait.cazait_android.data.model.ReviewData -import org.cazait.cazait_android.databinding.ItemCafeInfoRatingReviewBinding -import org.cazait.cazait_android.ui.adapter.holder.ReviewsViewHolder -import org.cazait.cazait_android.ui.viewmodel.CafeInfoReviewViewModel +import org.cazait.databinding.ItemCafeInfoRatingReviewBinding +import org.cazait.data.model.ReviewData +import org.cazait.ui.adapter.holder.ReviewsViewHolder +import org.cazait.ui.viewmodel.CafeInfoReviewViewModel class CafeInfoReviewAdapter( private val cafeInfoReviewViewModel: CafeInfoReviewViewModel, - private val reviews: List -): RecyclerView.Adapter() { + private val reviews: List, +) : RecyclerView.Adapter() { override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ReviewsViewHolder { val inflater = LayoutInflater.from(parent.context) @@ -38,4 +38,4 @@ class CafeInfoReviewAdapter( // binding.review = reviewData // } // } -} \ No newline at end of file +} diff --git a/app/src/main/java/org/cazait/cazait_android/ui/adapter/CafeInterestAdapter.kt b/app/src/main/java/org/cazait/ui/adapter/CafeInterestAdapter.kt similarity index 72% rename from app/src/main/java/org/cazait/cazait_android/ui/adapter/CafeInterestAdapter.kt rename to app/src/main/java/org/cazait/ui/adapter/CafeInterestAdapter.kt index 47b004c..7f434df 100644 --- a/app/src/main/java/org/cazait/cazait_android/ui/adapter/CafeInterestAdapter.kt +++ b/app/src/main/java/org/cazait/ui/adapter/CafeInterestAdapter.kt @@ -1,19 +1,17 @@ -package org.cazait.cazait_android.ui.adapter - +package org.cazait.ui.adapter import android.view.LayoutInflater import android.view.ViewGroup import androidx.recyclerview.widget.RecyclerView -import org.cazait.cazait_android.data.model.Cafe -import org.cazait.cazait_android.databinding.ItemCafeInterestBinding -import org.cazait.cazait_android.ui.adapter.holder.CafesViewHolder -import org.cazait.cazait_android.ui.base.RecyclerItemListener -import org.cazait.cazait_android.ui.viewmodel.CafeInterestViewModel - +import org.cazait.databinding.ItemCafeInterestBinding +import org.cazait.data.model.Cafe +import org.cazait.ui.adapter.holder.CafesViewHolder +import org.cazait.ui.base.RecyclerItemListener +import org.cazait.ui.viewmodel.CafeInterestViewModel class CafeInterestAdapter( private val cafeInterestViewModel: CafeInterestViewModel, - private var cafes: List + private var cafes: List, ) : RecyclerView.Adapter() { private val onItemClickListener: RecyclerItemListener = object : RecyclerItemListener { @@ -39,4 +37,4 @@ class CafeInterestAdapter( override fun onBindViewHolder(holder: CafesViewHolder, position: Int) { holder.bindForInterestPage(cafes[position], onItemClickListener) } -} \ No newline at end of file +} diff --git a/app/src/main/java/org/cazait/cazait_android/ui/adapter/CafeListItemAdapter.kt b/app/src/main/java/org/cazait/ui/adapter/CafeListItemAdapter.kt similarity index 70% rename from app/src/main/java/org/cazait/cazait_android/ui/adapter/CafeListItemAdapter.kt rename to app/src/main/java/org/cazait/ui/adapter/CafeListItemAdapter.kt index 4cca73f..8f5cf40 100644 --- a/app/src/main/java/org/cazait/cazait_android/ui/adapter/CafeListItemAdapter.kt +++ b/app/src/main/java/org/cazait/ui/adapter/CafeListItemAdapter.kt @@ -1,17 +1,17 @@ -package org.cazait.cazait_android.ui.adapter +package org.cazait.ui.adapter import android.view.LayoutInflater import android.view.ViewGroup import androidx.recyclerview.widget.RecyclerView -import org.cazait.cazait_android.data.model.Cafe -import org.cazait.cazait_android.databinding.ItemCafeMainBinding -import org.cazait.cazait_android.ui.adapter.holder.CafesViewHolder -import org.cazait.cazait_android.ui.base.RecyclerItemListener -import org.cazait.cazait_android.ui.viewmodel.CafeListViewModel +import org.cazait.databinding.ItemCafeMainBinding +import org.cazait.data.model.Cafe +import org.cazait.ui.adapter.holder.CafesViewHolder +import org.cazait.ui.base.RecyclerItemListener +import org.cazait.ui.viewmodel.CafeListViewModel class CafeListItemAdapter( private val cafeListViewModel: CafeListViewModel, - private val cafes: List + private val cafes: List, ) : RecyclerView.Adapter() { private val onItemClickListener: RecyclerItemListener = object : RecyclerItemListener { @@ -32,4 +32,4 @@ class CafeListItemAdapter( override fun onBindViewHolder(holder: CafesViewHolder, position: Int) { holder.bindForCafeListPage(cafes[position], onItemClickListener) } -} \ No newline at end of file +} diff --git a/app/src/main/java/org/cazait/cazait_android/ui/adapter/CafeRecentlyAdapter.kt b/app/src/main/java/org/cazait/ui/adapter/CafeRecentlyAdapter.kt similarity index 86% rename from app/src/main/java/org/cazait/cazait_android/ui/adapter/CafeRecentlyAdapter.kt rename to app/src/main/java/org/cazait/ui/adapter/CafeRecentlyAdapter.kt index 43b4b5b..26fb02d 100644 --- a/app/src/main/java/org/cazait/cazait_android/ui/adapter/CafeRecentlyAdapter.kt +++ b/app/src/main/java/org/cazait/ui/adapter/CafeRecentlyAdapter.kt @@ -1,10 +1,10 @@ -package org.cazait.cazait_android.ui.adapter +package org.cazait.ui.adapter import android.view.LayoutInflater import android.view.ViewGroup import androidx.recyclerview.widget.RecyclerView -import org.cazait.cazait_android.data.model.Cafe -import org.cazait.cazait_android.databinding.ItemCafeRecentBinding +import org.cazait.databinding.ItemCafeRecentBinding +import org.cazait.data.model.Cafe class CafeRecentlyAdapter : RecyclerView.Adapter() { @@ -24,13 +24,11 @@ class CafeRecentlyAdapter : return CafeRecentlyViewHolder(recentlyItemBinding) } - override fun onBindViewHolder( holder: CafeRecentlyViewHolder, - position: Int + position: Int, ) { holder.bind(_recently[position]) - } override fun getItemCount() = _recently.size @@ -45,4 +43,4 @@ class CafeRecentlyAdapter : binding.cafe = cafe } } -} \ No newline at end of file +} diff --git a/app/src/main/java/org/cazait/cazait_android/ui/adapter/GridSpacingItemDecoration.kt b/app/src/main/java/org/cazait/ui/adapter/GridSpacingItemDecoration.kt similarity index 76% rename from app/src/main/java/org/cazait/cazait_android/ui/adapter/GridSpacingItemDecoration.kt rename to app/src/main/java/org/cazait/ui/adapter/GridSpacingItemDecoration.kt index b784379..a00131c 100644 --- a/app/src/main/java/org/cazait/cazait_android/ui/adapter/GridSpacingItemDecoration.kt +++ b/app/src/main/java/org/cazait/ui/adapter/GridSpacingItemDecoration.kt @@ -1,4 +1,4 @@ -package org.cazait.cazait_android.ui.adapter +package org.cazait.ui.adapter import android.graphics.Rect import android.view.View @@ -6,7 +6,12 @@ import androidx.recyclerview.widget.RecyclerView class GridSpacingItemDecoration(private val dpSpace: Int) : RecyclerView.ItemDecoration() { - override fun getItemOffsets(outRect: Rect, view: View, parent: RecyclerView, state: RecyclerView.State) { + override fun getItemOffsets( + outRect: Rect, + view: View, + parent: RecyclerView, + state: RecyclerView.State, + ) { val position = parent.getChildAdapterPosition(view) // item position val column = position % 2 // item column diff --git a/app/src/main/java/org/cazait/cazait_android/ui/adapter/MarginItemDecoration.kt b/app/src/main/java/org/cazait/ui/adapter/MarginItemDecoration.kt similarity index 93% rename from app/src/main/java/org/cazait/cazait_android/ui/adapter/MarginItemDecoration.kt rename to app/src/main/java/org/cazait/ui/adapter/MarginItemDecoration.kt index 9038d78..2332e4d 100644 --- a/app/src/main/java/org/cazait/cazait_android/ui/adapter/MarginItemDecoration.kt +++ b/app/src/main/java/org/cazait/ui/adapter/MarginItemDecoration.kt @@ -7,11 +7,11 @@ class MarginItemDecoration(private val bottomDPSpace: Int) : RecyclerView.ItemDe outRect: Rect, view: View, parent: RecyclerView, - state: RecyclerView.State + state: RecyclerView.State, ) { // val displayMetrics = DisplayMetrics() // val px = // bottomDPSpace * (displayMetrics.densityDpi.toFloat() / DisplayMetrics.DENSITY_DEFAULT) outRect.bottom = bottomDPSpace } -} \ No newline at end of file +} diff --git a/app/src/main/java/org/cazait/cazait_android/ui/adapter/binding/ViewBinding.kt b/app/src/main/java/org/cazait/ui/adapter/binding/ViewBinding.kt similarity index 75% rename from app/src/main/java/org/cazait/cazait_android/ui/adapter/binding/ViewBinding.kt rename to app/src/main/java/org/cazait/ui/adapter/binding/ViewBinding.kt index caa3a00..fb28ef9 100644 --- a/app/src/main/java/org/cazait/cazait_android/ui/adapter/binding/ViewBinding.kt +++ b/app/src/main/java/org/cazait/ui/adapter/binding/ViewBinding.kt @@ -1,11 +1,9 @@ -package org.cazait.cazait_android.ui.adapter.binding +package org.cazait.ui.adapter.binding import android.widget.TextView -import androidx.appcompat.widget.AppCompatCheckBox import androidx.core.content.ContextCompat import androidx.databinding.BindingAdapter -import com.tbuonomo.viewpagerdotsindicator.setBackgroundCompat -import org.cazait.cazait_android.R +import org.cazait.R object ViewBinding { @BindingAdapter("stateColor") @@ -20,4 +18,4 @@ object ViewBinding { } setTextColor(ContextCompat.getColor(context, colorRes)) } -} \ No newline at end of file +} diff --git a/app/src/main/java/org/cazait/cazait_android/ui/adapter/holder/CafesViewHolder.kt b/app/src/main/java/org/cazait/ui/adapter/holder/CafesViewHolder.kt similarity index 82% rename from app/src/main/java/org/cazait/cazait_android/ui/adapter/holder/CafesViewHolder.kt rename to app/src/main/java/org/cazait/ui/adapter/holder/CafesViewHolder.kt index 01cca60..4d344ba 100644 --- a/app/src/main/java/org/cazait/cazait_android/ui/adapter/holder/CafesViewHolder.kt +++ b/app/src/main/java/org/cazait/ui/adapter/holder/CafesViewHolder.kt @@ -1,21 +1,20 @@ -package org.cazait.cazait_android.ui.adapter.holder +package org.cazait.ui.adapter.holder import androidx.databinding.ViewDataBinding import androidx.lifecycle.ViewModel import androidx.recyclerview.widget.RecyclerView import com.bumptech.glide.Glide -import org.cazait.cazait_android.R -import org.cazait.cazait_android.data.model.Cafe -import org.cazait.cazait_android.databinding.ItemCafeInterestBinding -import org.cazait.cazait_android.databinding.ItemCafeMainBinding -import org.cazait.cazait_android.ui.base.RecyclerItemListener -import org.cazait.cazait_android.ui.viewmodel.CafeInterestViewModel -import org.cazait.cazait_android.ui.viewmodel.CafeListViewModel -import kotlin.contracts.contract +import org.cazait.R +import org.cazait.databinding.ItemCafeInterestBinding +import org.cazait.databinding.ItemCafeMainBinding +import org.cazait.data.model.Cafe +import org.cazait.ui.base.RecyclerItemListener +import org.cazait.ui.viewmodel.CafeInterestViewModel +import org.cazait.ui.viewmodel.CafeListViewModel class CafesViewHolder( val binding: ViewDataBinding, - val viewModel: ViewModel? = null + val viewModel: ViewModel? = null, ) : RecyclerView.ViewHolder(binding.root) { fun bindForCafeListPage(item: Cafe, recyclerItemListener: RecyclerItemListener) { require(binding is ItemCafeMainBinding) @@ -40,7 +39,7 @@ class CafesViewHolder( if (item.favorite) { viewModel.likeCafe( userId = viewModel.userIdLiveData.value!!, - cafeId = item.id + cafeId = item.id, ) } else /* !item.favorite */ { viewModel.dislikeCafe(item.id) @@ -73,4 +72,4 @@ class CafesViewHolder( } binding.root.setOnClickListener { recyclerItemListener.onItemSelected(item) } } -} \ No newline at end of file +} diff --git a/app/src/main/java/org/cazait/cazait_android/ui/adapter/holder/MenusViewHolder.kt b/app/src/main/java/org/cazait/ui/adapter/holder/MenusViewHolder.kt similarity index 55% rename from app/src/main/java/org/cazait/cazait_android/ui/adapter/holder/MenusViewHolder.kt rename to app/src/main/java/org/cazait/ui/adapter/holder/MenusViewHolder.kt index 5c0b3c1..a5947ac 100644 --- a/app/src/main/java/org/cazait/cazait_android/ui/adapter/holder/MenusViewHolder.kt +++ b/app/src/main/java/org/cazait/ui/adapter/holder/MenusViewHolder.kt @@ -1,12 +1,12 @@ -package org.cazait.cazait_android.ui.adapter.holder +package org.cazait.ui.adapter.holder import androidx.recyclerview.widget.RecyclerView -import org.cazait.cazait_android.data.model.CafeMenu -import org.cazait.cazait_android.databinding.ItemCafeInfoMenuBinding +import org.cazait.databinding.ItemCafeInfoMenuBinding +import org.cazait.data.model.CafeMenu class MenusViewHolder(val binding: ItemCafeInfoMenuBinding) : RecyclerView.ViewHolder(binding.root) { fun bind(item: CafeMenu) { binding.menu = item } -} \ No newline at end of file +} diff --git a/app/src/main/java/org/cazait/cazait_android/ui/adapter/holder/ReviewsViewHolder.kt b/app/src/main/java/org/cazait/ui/adapter/holder/ReviewsViewHolder.kt similarity index 56% rename from app/src/main/java/org/cazait/cazait_android/ui/adapter/holder/ReviewsViewHolder.kt rename to app/src/main/java/org/cazait/ui/adapter/holder/ReviewsViewHolder.kt index 74fd303..79a9d00 100644 --- a/app/src/main/java/org/cazait/cazait_android/ui/adapter/holder/ReviewsViewHolder.kt +++ b/app/src/main/java/org/cazait/ui/adapter/holder/ReviewsViewHolder.kt @@ -1,12 +1,12 @@ -package org.cazait.cazait_android.ui.adapter.holder +package org.cazait.ui.adapter.holder import androidx.recyclerview.widget.RecyclerView -import org.cazait.cazait_android.data.model.ReviewData -import org.cazait.cazait_android.databinding.ItemCafeInfoRatingReviewBinding +import org.cazait.databinding.ItemCafeInfoRatingReviewBinding +import org.cazait.data.model.ReviewData class ReviewsViewHolder(val binding: ItemCafeInfoRatingReviewBinding) : RecyclerView.ViewHolder(binding.root) { fun bind(item: ReviewData) { binding.review = item } -} \ No newline at end of file +} diff --git a/app/src/main/java/org/cazait/cazait_android/ui/base/BaseActivity.kt b/app/src/main/java/org/cazait/ui/base/BaseActivity.kt similarity index 96% rename from app/src/main/java/org/cazait/cazait_android/ui/base/BaseActivity.kt rename to app/src/main/java/org/cazait/ui/base/BaseActivity.kt index f2b4181..f205017 100644 --- a/app/src/main/java/org/cazait/cazait_android/ui/base/BaseActivity.kt +++ b/app/src/main/java/org/cazait/ui/base/BaseActivity.kt @@ -1,4 +1,4 @@ -package org.cazait.cazait_android.ui.base +package org.cazait.ui.base import android.graphics.Rect import android.os.Bundle @@ -9,7 +9,7 @@ import androidx.appcompat.app.AppCompatActivity import androidx.databinding.DataBindingUtil import androidx.databinding.ViewDataBinding -abstract class BaseActivity : AppCompatActivity(){ +abstract class BaseActivity : AppCompatActivity() { lateinit var binding: T abstract val layoutResourceId: Int @@ -59,4 +59,4 @@ abstract class BaseActivity : AppCompatA initView() initAfterBinding() } -} \ No newline at end of file +} diff --git a/app/src/main/java/org/cazait/cazait_android/ui/base/BaseFragment.kt b/app/src/main/java/org/cazait/ui/base/BaseFragment.kt similarity index 76% rename from app/src/main/java/org/cazait/cazait_android/ui/base/BaseFragment.kt rename to app/src/main/java/org/cazait/ui/base/BaseFragment.kt index 43bd8ca..a84372b 100644 --- a/app/src/main/java/org/cazait/cazait_android/ui/base/BaseFragment.kt +++ b/app/src/main/java/org/cazait/ui/base/BaseFragment.kt @@ -1,4 +1,4 @@ -package org.cazait.cazait_android.ui.base +package org.cazait.ui.base import android.os.Bundle import android.view.LayoutInflater @@ -8,7 +8,7 @@ import androidx.databinding.DataBindingUtil import androidx.databinding.ViewDataBinding import androidx.fragment.app.Fragment -abstract class BaseFragment : Fragment(){ +abstract class BaseFragment : Fragment() { lateinit var binding: T abstract val layoutResourceId: Int @@ -37,8 +37,12 @@ abstract class BaseFragment : Fragment() initAfterBinding() } - override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? { - binding = DataBindingUtil.inflate(inflater,layoutResourceId, container, false) + override fun onCreateView( + inflater: LayoutInflater, + container: ViewGroup?, + savedInstanceState: Bundle?, + ): View? { + binding = DataBindingUtil.inflate(inflater, layoutResourceId, container, false) return binding.root } -} \ No newline at end of file +} diff --git a/app/src/main/java/org/cazait/cazait_android/ui/base/BaseViewModel.kt b/app/src/main/java/org/cazait/ui/base/BaseViewModel.kt similarity index 61% rename from app/src/main/java/org/cazait/cazait_android/ui/base/BaseViewModel.kt rename to app/src/main/java/org/cazait/ui/base/BaseViewModel.kt index 430d830..2377b39 100644 --- a/app/src/main/java/org/cazait/cazait_android/ui/base/BaseViewModel.kt +++ b/app/src/main/java/org/cazait/ui/base/BaseViewModel.kt @@ -1,7 +1,7 @@ -package org.cazait.cazait_android.ui.base +package org.cazait.ui.base import androidx.lifecycle.ViewModel -import org.cazait.cazait_android.usecase.errors.ErrorManager +import org.cazait.errors.ErrorManager import javax.inject.Inject open class BaseViewModel : ViewModel() { diff --git a/app/src/main/java/org/cazait/ui/base/RecyclerItemListener.kt b/app/src/main/java/org/cazait/ui/base/RecyclerItemListener.kt new file mode 100644 index 0000000..2695ffc --- /dev/null +++ b/app/src/main/java/org/cazait/ui/base/RecyclerItemListener.kt @@ -0,0 +1,7 @@ +package org.cazait.ui.base + +import org.cazait.data.model.Cafe + +interface RecyclerItemListener { + fun onItemSelected(cafe: Cafe) +} diff --git a/app/src/main/java/org/cazait/cazait_android/ui/util/SingleEvent.kt b/app/src/main/java/org/cazait/ui/util/SingleEvent.kt similarity index 92% rename from app/src/main/java/org/cazait/cazait_android/ui/util/SingleEvent.kt rename to app/src/main/java/org/cazait/ui/util/SingleEvent.kt index b1ca4a3..039e121 100644 --- a/app/src/main/java/org/cazait/cazait_android/ui/util/SingleEvent.kt +++ b/app/src/main/java/org/cazait/ui/util/SingleEvent.kt @@ -1,4 +1,4 @@ -package org.cazait.cazait_android.ui.util +package org.cazait.ui.util open class SingleEvent(private val content: T) { var hasBeenHandled = false @@ -20,4 +20,4 @@ open class SingleEvent(private val content: T) { * Returns the content, even if it's already been handled */ fun peekContent(): T = content -} \ No newline at end of file +} diff --git a/app/src/main/java/org/cazait/cazait_android/ui/util/extension/ArchComponentExt.kt b/app/src/main/java/org/cazait/ui/util/extension/ArchComponentExt.kt similarity index 60% rename from app/src/main/java/org/cazait/cazait_android/ui/util/extension/ArchComponentExt.kt rename to app/src/main/java/org/cazait/ui/util/extension/ArchComponentExt.kt index fa41843..3b31bfb 100644 --- a/app/src/main/java/org/cazait/cazait_android/ui/util/extension/ArchComponentExt.kt +++ b/app/src/main/java/org/cazait/ui/util/extension/ArchComponentExt.kt @@ -1,14 +1,17 @@ -package org.cazait.cazait_android.ui.util.extension +package org.cazait.ui.util.extension import androidx.lifecycle.LifecycleOwner import androidx.lifecycle.LiveData import androidx.lifecycle.Observer -import org.cazait.cazait_android.ui.util.SingleEvent +import org.cazait.ui.util.SingleEvent fun LifecycleOwner.observe(liveData: LiveData, action: (t: T) -> Unit) { liveData.observe(this, Observer { it?.let { t -> action(t) } }) } -fun LifecycleOwner.observeEvent(liveData: LiveData>, action: (t: SingleEvent) -> Unit) { +fun LifecycleOwner.observeEvent( + liveData: LiveData>, + action: (t: SingleEvent) -> Unit, +) { liveData.observe(this, Observer { it?.let { t -> action(t) } }) } diff --git a/app/src/main/java/org/cazait/cazait_android/ui/util/extension/UnitExt.kt b/app/src/main/java/org/cazait/ui/util/extension/UnitExt.kt similarity index 83% rename from app/src/main/java/org/cazait/cazait_android/ui/util/extension/UnitExt.kt rename to app/src/main/java/org/cazait/ui/util/extension/UnitExt.kt index c0fac15..873baaa 100644 --- a/app/src/main/java/org/cazait/cazait_android/ui/util/extension/UnitExt.kt +++ b/app/src/main/java/org/cazait/ui/util/extension/UnitExt.kt @@ -1,4 +1,4 @@ -package org.cazait.cazait_android.ui.util.extension +package org.cazait.ui.util.extension import android.content.res.Resources import kotlin.math.roundToInt @@ -8,4 +8,3 @@ val Int.dp: Int val Float.dp: Int get() = (this * Resources.getSystem().displayMetrics.density).roundToInt() - diff --git a/app/src/main/java/org/cazait/cazait_android/ui/util/extension/ViewExt.kt b/app/src/main/java/org/cazait/ui/util/extension/ViewExt.kt similarity index 70% rename from app/src/main/java/org/cazait/cazait_android/ui/util/extension/ViewExt.kt rename to app/src/main/java/org/cazait/ui/util/extension/ViewExt.kt index 27d9a54..9af9ff0 100644 --- a/app/src/main/java/org/cazait/cazait_android/ui/util/extension/ViewExt.kt +++ b/app/src/main/java/org/cazait/ui/util/extension/ViewExt.kt @@ -1,4 +1,4 @@ -package org.cazait.cazait_android.ui.util.extension +package org.cazait.ui.util.extension import android.app.Service import android.text.Editable @@ -6,9 +6,7 @@ import android.text.TextWatcher import android.view.View import android.view.inputmethod.InputMethodManager import android.widget.EditText -import android.widget.ImageView import android.widget.Toast -import androidx.annotation.DrawableRes import androidx.annotation.IdRes import androidx.appcompat.app.AppCompatActivity import androidx.appcompat.widget.AppCompatEditText @@ -19,8 +17,7 @@ import androidx.fragment.app.Fragment import androidx.lifecycle.LifecycleOwner import androidx.lifecycle.LiveData import androidx.lifecycle.Observer -import com.google.android.material.snackbar.Snackbar -import org.cazait.cazait_android.ui.util.SingleEvent +import org.cazait.ui.util.SingleEvent fun AppCompatActivity.replace(@IdRes frameId: Int, fragment: Fragment) { supportFragmentManager.beginTransaction().replace(frameId, fragment, null).commit() @@ -29,7 +26,7 @@ fun AppCompatActivity.replace(@IdRes frameId: Int, fragment: Fragment) { fun View.showKeyboard() { (this.context.getSystemService(Service.INPUT_METHOD_SERVICE) as? InputMethodManager)?.showSoftInput( this, - 0 + 0, ) } @@ -43,26 +40,31 @@ fun View.toVisible() { fun View.hideKeyboard() { (this.context.getSystemService(Service.INPUT_METHOD_SERVICE) as? InputMethodManager)?.hideSoftInputFromWindow( - this.windowToken, 0 + this.windowToken, + 0, ) } fun View.showToast( lifecycleOwner: LifecycleOwner, ToastEvent: LiveData>, - timeLength: Int + timeLength: Int, ) { + ToastEvent.observe( + lifecycleOwner, + Observer { event -> + event.getContentIfNotHandled()?.let { + when (it) { + is String -> Toast.makeText(this.context, it, timeLength).show() + is Int -> Toast.makeText(this.context, this.context.getString(it), timeLength) + .show() - ToastEvent.observe(lifecycleOwner, Observer { event -> - event.getContentIfNotHandled()?.let { - when (it) { - is String -> Toast.makeText(this.context, it, timeLength).show() - is Int -> Toast.makeText(this.context, this.context.getString(it), timeLength).show() - else -> { + else -> { + } } } - } - }) + }, + ) } /** @@ -80,19 +82,19 @@ fun EditText.afterTextChanged(afterTextChanged: (String) -> Unit) { }) } -//fun ImageView.loadImage(@DrawableRes resId: Int) = Picasso.get().load(resId).into(this) -//fun ImageView.loadImage(url: String) = Picasso.get().load(url).placeholder(R.drawable.ic_healthy_food).error(R.drawable.ic_healthy_food).into(this) +// fun ImageView.loadImage(@DrawableRes resId: Int) = Picasso.get().load(resId).into(this) +// fun ImageView.loadImage(url: String) = Picasso.get().load(url).placeholder(R.drawable.ic_healthy_food).error(R.drawable.ic_healthy_food).into(this) fun AppCompatTextView.setTextFutureExt(text: String) = setTextFuture( PrecomputedTextCompat.getTextFuture( text, TextViewCompat.getTextMetricsParams(this), - null - ) + null, + ), ) fun AppCompatEditText.setTextFutureExt(text: String) = setText( - PrecomputedTextCompat.create(text, TextViewCompat.getTextMetricsParams(this)) + PrecomputedTextCompat.create(text, TextViewCompat.getTextMetricsParams(this)), ) diff --git a/app/src/main/java/org/cazait/cazait_android/ui/view/MainActivity.kt b/app/src/main/java/org/cazait/ui/view/MainActivity.kt similarity index 81% rename from app/src/main/java/org/cazait/cazait_android/ui/view/MainActivity.kt rename to app/src/main/java/org/cazait/ui/view/MainActivity.kt index eee91d0..c414c6b 100644 --- a/app/src/main/java/org/cazait/cazait_android/ui/view/MainActivity.kt +++ b/app/src/main/java/org/cazait/ui/view/MainActivity.kt @@ -1,18 +1,18 @@ -package org.cazait.cazait_android.ui.view +package org.cazait.ui.view import android.widget.Toast import androidx.activity.OnBackPressedCallback import androidx.activity.viewModels import dagger.hilt.android.AndroidEntryPoint -import org.cazait.cazait_android.R -import org.cazait.cazait_android.databinding.ActivityMainBinding -import org.cazait.cazait_android.ui.base.BaseActivity -import org.cazait.cazait_android.ui.util.extension.replace -import org.cazait.cazait_android.ui.view.cafelist.CafeListFragment -import org.cazait.cazait_android.ui.view.interest.CafeInterestFragment -import org.cazait.cazait_android.ui.view.mypage.MyPageFragment -import org.cazait.cazait_android.ui.view.viewmore.ViewMoreFragment -import org.cazait.cazait_android.ui.viewmodel.MainViewModel +import org.cazait.R +import org.cazait.databinding.ActivityMainBinding +import org.cazait.ui.base.BaseActivity +import org.cazait.ui.util.extension.replace +import org.cazait.ui.view.cafelist.CafeListFragment +import org.cazait.ui.view.interest.CafeInterestFragment +import org.cazait.ui.view.mypage.MyPageFragment +import org.cazait.ui.view.viewmore.ViewMoreFragment +import org.cazait.ui.viewmodel.MainViewModel @AndroidEntryPoint class MainActivity : BaseActivity() { @@ -46,13 +46,18 @@ class MainActivity : BaseActivity() { if (backButtonPressedTime + backButtonThreshold > currentTime) { finish() } else { - Toast.makeText(this@MainActivity, R.string.press_back_again_to_exit, Toast.LENGTH_SHORT).show() + Toast.makeText( + this@MainActivity, + R.string.press_back_again_to_exit, + Toast.LENGTH_SHORT, + ).show() } backButtonPressedTime = currentTime } } onBackPressedDispatcher.addCallback(this, callback) } + private fun initBottomNavigation() { binding.bnvMain.itemIconTintList = null binding.bnvMain.setOnItemSelectedListener { @@ -61,18 +66,22 @@ class MainActivity : BaseActivity() { replaceCafeListFragment() return@setOnItemSelectedListener true } + R.id.menu_cafe_interest -> { replaceCafeInterestFragment() return@setOnItemSelectedListener true } + R.id.menu_my_page -> { replaceMyPageFragment() return@setOnItemSelectedListener true } + R.id.menu_view_more -> { replaceViewMoreFragment() return@setOnItemSelectedListener true } + else -> return@setOnItemSelectedListener false } } @@ -97,4 +106,4 @@ class MainActivity : BaseActivity() { supportFragmentManager.popBackStack() replace(R.id.container_main, viewMoreFragment) } -} \ No newline at end of file +} diff --git a/app/src/main/java/org/cazait/cazait_android/ui/view/cafelist/CafeListFragment.kt b/app/src/main/java/org/cazait/ui/view/cafelist/CafeListFragment.kt similarity index 82% rename from app/src/main/java/org/cazait/cazait_android/ui/view/cafelist/CafeListFragment.kt rename to app/src/main/java/org/cazait/ui/view/cafelist/CafeListFragment.kt index 6bbff03..e3250f9 100644 --- a/app/src/main/java/org/cazait/cazait_android/ui/view/cafelist/CafeListFragment.kt +++ b/app/src/main/java/org/cazait/ui/view/cafelist/CafeListFragment.kt @@ -1,4 +1,4 @@ -package org.cazait.cazait_android.ui.view.cafelist +package org.cazait.ui.view.cafelist import MarginItemDecoration import android.Manifest @@ -10,25 +10,24 @@ import android.view.View.GONE import android.view.View.VISIBLE import androidx.activity.result.contract.ActivityResultContracts import androidx.core.content.ContextCompat -import androidx.fragment.app.viewModels import androidx.lifecycle.ViewModelProvider import dagger.hilt.android.AndroidEntryPoint -import org.cazait.cazait_android.CAFE_ITEM_KEY -import org.cazait.cazait_android.R -import org.cazait.cazait_android.data.Resource -import org.cazait.cazait_android.data.model.Cafe -import org.cazait.cazait_android.data.model.Cafes -import org.cazait.cazait_android.data.model.remote.response.CafeListResponse -import org.cazait.cazait_android.databinding.FragmentCafeListBinding -import org.cazait.cazait_android.ui.adapter.CafeListItemAdapter -import org.cazait.cazait_android.ui.base.BaseFragment -import org.cazait.cazait_android.ui.util.SingleEvent -import org.cazait.cazait_android.ui.util.extension.observe -import org.cazait.cazait_android.ui.util.extension.observeEvent -import org.cazait.cazait_android.ui.util.extension.toGone -import org.cazait.cazait_android.ui.util.extension.toVisible -import org.cazait.cazait_android.ui.view.cafelist.info.CafeInformationActivity -import org.cazait.cazait_android.ui.viewmodel.CafeListViewModel +import org.cazait.CAFE_ITEM_KEY +import org.cazait.R +import org.cazait.databinding.FragmentCafeListBinding +import org.cazait.data.Resource +import org.cazait.data.model.Cafe +import org.cazait.data.model.Cafes +import org.cazait.data.model.remote.response.CafeListResponse +import org.cazait.ui.adapter.CafeListItemAdapter +import org.cazait.ui.base.BaseFragment +import org.cazait.ui.util.SingleEvent +import org.cazait.ui.util.extension.observe +import org.cazait.ui.util.extension.observeEvent +import org.cazait.ui.util.extension.toGone +import org.cazait.ui.util.extension.toVisible +import org.cazait.ui.view.cafelist.info.CafeInformationActivity +import org.cazait.ui.viewmodel.CafeListViewModel import kotlin.math.* @AndroidEntryPoint @@ -69,7 +68,7 @@ class CafeListFragment : BaseFragment { viewModel.refreshCafeList() } } } + is Resource.Error -> { showDataView(false) status.message.let { @@ -167,7 +168,7 @@ class CafeListFragment : BaseFragment(), +class CafeInformationActivity : + BaseActivity(), OnMapTouchListener { override val layoutResourceId: Int get() = R.layout.activity_cafe_information @@ -42,20 +47,21 @@ class CafeInformationActivity : BaseActivity return super.onOptionsItemSelected(item) } } override fun initBeforeBinding() { - } + override fun initAfterBinding() { observeViewModel() } - private fun observeViewModel(){ + private fun observeViewModel() { observe(viewModel.cafeIdData, ::handleCafeId) - observe(viewModel.locationData,::handleLocation) + observe(viewModel.locationData, ::handleLocation) } override fun initView() { @@ -65,14 +71,14 @@ class CafeInformationActivity : BaseActivity){ + private fun handleLocation(status: List) { return } -} \ No newline at end of file +} diff --git a/app/src/main/java/org/cazait/cazait_android/ui/view/cafelist/info/inner/CafeLocTransFragment.kt b/app/src/main/java/org/cazait/ui/view/cafelist/info/inner/CafeLocTransFragment.kt similarity index 75% rename from app/src/main/java/org/cazait/cazait_android/ui/view/cafelist/info/inner/CafeLocTransFragment.kt rename to app/src/main/java/org/cazait/ui/view/cafelist/info/inner/CafeLocTransFragment.kt index a97c11e..92b7b89 100644 --- a/app/src/main/java/org/cazait/cazait_android/ui/view/cafelist/info/inner/CafeLocTransFragment.kt +++ b/app/src/main/java/org/cazait/ui/view/cafelist/info/inner/CafeLocTransFragment.kt @@ -1,4 +1,4 @@ -package org.cazait.cazait_android.ui.view.cafelist.info.inner +package org.cazait.ui.view.cafelist.info.inner import android.content.Context import android.util.Log @@ -6,20 +6,25 @@ import android.view.ViewGroup import androidx.core.content.ContextCompat import androidx.fragment.app.viewModels import com.naver.maps.geometry.LatLng -import com.naver.maps.map.* +import com.naver.maps.map.CameraAnimation +import com.naver.maps.map.CameraUpdate +import com.naver.maps.map.MapFragment +import com.naver.maps.map.NaverMap +import com.naver.maps.map.OnMapReadyCallback import com.naver.maps.map.overlay.Marker import com.naver.maps.map.util.FusedLocationSource import dagger.hilt.android.AndroidEntryPoint -import org.cazait.cazait_android.R -import org.cazait.cazait_android.REQUEST_LOCATION_PERMISSION -import org.cazait.cazait_android.databinding.FragmentCafeLocTransBinding -import org.cazait.cazait_android.ui.base.BaseFragment -import org.cazait.cazait_android.ui.view.cafelist.info.util.OnMapTouchListener -import org.cazait.cazait_android.ui.view.cafelist.info.util.TouchableWrapper -import org.cazait.cazait_android.ui.viewmodel.CafeInfoLocTransViewModel +import org.cazait.R +import org.cazait.REQUEST_LOCATION_PERMISSION +import org.cazait.databinding.FragmentCafeLocTransBinding +import org.cazait.ui.base.BaseFragment +import org.cazait.ui.view.cafelist.info.util.OnMapTouchListener +import org.cazait.ui.view.cafelist.info.util.TouchableWrapper +import org.cazait.ui.viewmodel.CafeInfoLocTransViewModel @AndroidEntryPoint -class CafeLocTransFragment : BaseFragment(), +class CafeLocTransFragment : + BaseFragment(), OnMapReadyCallback { override val layoutResourceId: Int get() = R.layout.fragment_cafe_loc_trans @@ -29,7 +34,7 @@ class CafeLocTransFragment : BaseFragment status.data.let { binding.pbMenuLoaderView.toGone() when (status.data.result) { - "SUCCESS" -> { // 여기서 it은 response + "SUCCESS" -> { // 여기서 it은 response Log.d("handleMenuResult", "성공!") - Log.d("ResponseData", "${status.data.data}") // null + Log.d("ResponseData", "${status.data.data}") // null val menus = convertMenuResponseToCafeMenu(it) bindRVCafeMenuListData(menus = menus) } + else -> { Log.d("handleMenuResult", "실패!") } } } + is Resource.Error -> { Log.d("handleMenuResult", "실패!") binding.pbMenuLoaderView.toGone() @@ -86,7 +87,7 @@ class CafeMenuFragment : BaseFragment Log.d("ReviewEdit", "리뷰 작성 실패!") } } + is Resource.Error -> { binding.pbEditLoaderView.toGone() Log.d("ReviewEdit", "리뷰 작성 실패!") diff --git a/app/src/main/java/org/cazait/cazait_android/ui/view/cafelist/info/inner/CafeRatingReviewFragment.kt b/app/src/main/java/org/cazait/ui/view/cafelist/info/inner/CafeRatingReviewFragment.kt similarity index 80% rename from app/src/main/java/org/cazait/cazait_android/ui/view/cafelist/info/inner/CafeRatingReviewFragment.kt rename to app/src/main/java/org/cazait/ui/view/cafelist/info/inner/CafeRatingReviewFragment.kt index 2d6cdee..f61fa96 100644 --- a/app/src/main/java/org/cazait/cazait_android/ui/view/cafelist/info/inner/CafeRatingReviewFragment.kt +++ b/app/src/main/java/org/cazait/ui/view/cafelist/info/inner/CafeRatingReviewFragment.kt @@ -1,4 +1,4 @@ -package org.cazait.cazait_android.ui.view.cafelist.info.inner +package org.cazait.ui.view.cafelist.info.inner import MarginItemDecoration import android.util.Log @@ -6,18 +6,18 @@ import android.view.View.GONE import android.view.View.VISIBLE import androidx.fragment.app.viewModels import dagger.hilt.android.AndroidEntryPoint -import org.cazait.cazait_android.R -import org.cazait.cazait_android.data.Resource -import org.cazait.cazait_android.data.model.ReviewData -import org.cazait.cazait_android.data.model.ReviewDatas -import org.cazait.cazait_android.data.model.remote.response.ReviewResponse -import org.cazait.cazait_android.databinding.FragmentCafeRatingReviewBinding -import org.cazait.cazait_android.ui.adapter.CafeInfoReviewAdapter -import org.cazait.cazait_android.ui.base.BaseFragment -import org.cazait.cazait_android.ui.util.extension.observe -import org.cazait.cazait_android.ui.util.extension.toGone -import org.cazait.cazait_android.ui.util.extension.toVisible -import org.cazait.cazait_android.ui.viewmodel.CafeInfoReviewViewModel +import org.cazait.R +import org.cazait.databinding.FragmentCafeRatingReviewBinding +import org.cazait.data.Resource +import org.cazait.data.model.ReviewData +import org.cazait.data.model.ReviewDatas +import org.cazait.data.model.remote.response.ReviewResponse +import org.cazait.ui.adapter.CafeInfoReviewAdapter +import org.cazait.ui.base.BaseFragment +import org.cazait.ui.util.extension.observe +import org.cazait.ui.util.extension.toGone +import org.cazait.ui.util.extension.toVisible +import org.cazait.ui.viewmodel.CafeInfoReviewViewModel import kotlin.math.roundToInt @AndroidEntryPoint @@ -66,22 +66,24 @@ class CafeRatingReviewFragment : Log.d("handleReviewResult", "성공!") Log.d("ResponseData - Review", "${status.data.data}") if (status.data.code == 200) { - Log.d("Review","Yes Review") + Log.d("Review", "Yes Review") binding.noReview.toGone() val reviews = convertReviewResponseToReviewData(it.data.reviewResponses) Log.d("convert complete?", "넘어왔나?") bindRVReviewDataListData(reviews = reviews) Log.d("convert complete?", "그럼 여기는?") } else { - Log.d("Review","No Review") + Log.d("Review", "No Review") binding.noReview.toVisible() } } + else -> { Log.d("handleReviewResult", "실패!") } } } + is Resource.Error -> { Log.d("handleReviewResult", "실패!") binding.pbReviewLoaderView.toGone() @@ -91,7 +93,7 @@ class CafeRatingReviewFragment : private fun bindRVReviewDataListData(reviews: ReviewDatas) { val spaceDecoration = MarginItemDecoration( - resources.getDimension(R.dimen.cafe_info_menu_bottom_space).roundToInt() + resources.getDimension(R.dimen.cafe_info_menu_bottom_space).roundToInt(), ) if (reviews.reviews.isNotEmpty()) { adapter = CafeInfoReviewAdapter(viewModel, reviews.reviews) @@ -115,9 +117,9 @@ class CafeRatingReviewFragment : "화양동", it.userId.toString(), "3시간 전", - it.content + it.content, ) }.toList() return ReviewDatas(ArrayList(reviewList)) } -} \ No newline at end of file +} diff --git a/app/src/main/java/org/cazait/cazait_android/ui/view/cafelist/info/inner/ImageSlideFragment.kt b/app/src/main/java/org/cazait/ui/view/cafelist/info/inner/ImageSlideFragment.kt similarity index 65% rename from app/src/main/java/org/cazait/cazait_android/ui/view/cafelist/info/inner/ImageSlideFragment.kt rename to app/src/main/java/org/cazait/ui/view/cafelist/info/inner/ImageSlideFragment.kt index 92b8603..8737f90 100644 --- a/app/src/main/java/org/cazait/cazait_android/ui/view/cafelist/info/inner/ImageSlideFragment.kt +++ b/app/src/main/java/org/cazait/ui/view/cafelist/info/inner/ImageSlideFragment.kt @@ -1,11 +1,11 @@ -package org.cazait.cazait_android.ui.view.cafelist.info.inner +package org.cazait.ui.view.cafelist.info.inner import androidx.fragment.app.viewModels import dagger.hilt.android.AndroidEntryPoint -import org.cazait.cazait_android.R -import org.cazait.cazait_android.databinding.FragmentImageSlideBinding -import org.cazait.cazait_android.ui.base.BaseFragment -import org.cazait.cazait_android.ui.viewmodel.CafeInfoImgViewModel +import org.cazait.R +import org.cazait.databinding.FragmentImageSlideBinding +import org.cazait.ui.base.BaseFragment +import org.cazait.ui.viewmodel.CafeInfoImgViewModel @AndroidEntryPoint class ImageSlideFragment(val image: Int) : @@ -19,10 +19,8 @@ class ImageSlideFragment(val image: Int) : } override fun initBeforeBinding() { - } override fun initAfterBinding() { - } -} \ No newline at end of file +} diff --git a/app/src/main/java/org/cazait/ui/view/cafelist/info/util/OnMapTouchListener.kt b/app/src/main/java/org/cazait/ui/view/cafelist/info/util/OnMapTouchListener.kt new file mode 100644 index 0000000..4d628a0 --- /dev/null +++ b/app/src/main/java/org/cazait/ui/view/cafelist/info/util/OnMapTouchListener.kt @@ -0,0 +1,5 @@ +package org.cazait.ui.view.cafelist.info.util + +interface OnMapTouchListener { + fun onTouch() +} diff --git a/app/src/main/java/org/cazait/cazait_android/ui/view/cafelist/info/util/TouchableWrapper.kt b/app/src/main/java/org/cazait/ui/view/cafelist/info/util/TouchableWrapper.kt similarity index 82% rename from app/src/main/java/org/cazait/cazait_android/ui/view/cafelist/info/util/TouchableWrapper.kt rename to app/src/main/java/org/cazait/ui/view/cafelist/info/util/TouchableWrapper.kt index a75896b..db77d49 100644 --- a/app/src/main/java/org/cazait/cazait_android/ui/view/cafelist/info/util/TouchableWrapper.kt +++ b/app/src/main/java/org/cazait/ui/view/cafelist/info/util/TouchableWrapper.kt @@ -1,4 +1,4 @@ -package org.cazait.cazait_android.ui.view.cafelist.info.util +package org.cazait.ui.view.cafelist.info.util import android.content.Context import android.util.AttributeSet @@ -9,7 +9,7 @@ class TouchableWrapper( context: Context, attrs: AttributeSet? = null, defStyleAttr: Int = 0, - private val onTouchListener: OnMapTouchListener? = null + private val onTouchListener: OnMapTouchListener? = null, ) : FrameLayout(context, attrs, defStyleAttr) { override fun dispatchTouchEvent(event: MotionEvent): Boolean { @@ -19,4 +19,4 @@ class TouchableWrapper( } return super.dispatchTouchEvent(event) } -} \ No newline at end of file +} diff --git a/app/src/main/java/org/cazait/cazait_android/ui/view/interest/CafeInterestFragment.kt b/app/src/main/java/org/cazait/ui/view/interest/CafeInterestFragment.kt similarity index 76% rename from app/src/main/java/org/cazait/cazait_android/ui/view/interest/CafeInterestFragment.kt rename to app/src/main/java/org/cazait/ui/view/interest/CafeInterestFragment.kt index a175d3d..cd88bb6 100644 --- a/app/src/main/java/org/cazait/cazait_android/ui/view/interest/CafeInterestFragment.kt +++ b/app/src/main/java/org/cazait/ui/view/interest/CafeInterestFragment.kt @@ -1,4 +1,4 @@ -package org.cazait.cazait_android.ui.view.interest +package org.cazait.ui.view.interest import MarginItemDecoration import android.content.Intent @@ -7,24 +7,24 @@ import android.view.View.VISIBLE import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.GridLayoutManager import dagger.hilt.android.AndroidEntryPoint -import org.cazait.cazait_android.CAFE_ITEM_KEY -import org.cazait.cazait_android.R -import org.cazait.cazait_android.data.Resource -import org.cazait.cazait_android.data.model.Cafe -import org.cazait.cazait_android.data.model.CafeImageRes -import org.cazait.cazait_android.data.model.Cafes -import org.cazait.cazait_android.data.model.remote.response.InterestCafesResponse -import org.cazait.cazait_android.databinding.FragmentCafeInterestBinding -import org.cazait.cazait_android.ui.adapter.CafeInterestAdapter -import org.cazait.cazait_android.ui.adapter.GridSpacingItemDecoration -import org.cazait.cazait_android.ui.base.BaseFragment -import org.cazait.cazait_android.ui.util.SingleEvent -import org.cazait.cazait_android.ui.util.extension.observe -import org.cazait.cazait_android.ui.util.extension.observeEvent -import org.cazait.cazait_android.ui.util.extension.toGone -import org.cazait.cazait_android.ui.util.extension.toVisible -import org.cazait.cazait_android.ui.view.cafelist.info.CafeInformationActivity -import org.cazait.cazait_android.ui.viewmodel.CafeInterestViewModel +import org.cazait.CAFE_ITEM_KEY +import org.cazait.R +import org.cazait.databinding.FragmentCafeInterestBinding +import org.cazait.data.Resource +import org.cazait.data.model.Cafe +import org.cazait.data.model.CafeImageRes +import org.cazait.data.model.Cafes +import org.cazait.data.model.remote.response.InterestCafesResponse +import org.cazait.ui.adapter.CafeInterestAdapter +import org.cazait.ui.adapter.GridSpacingItemDecoration +import org.cazait.ui.base.BaseFragment +import org.cazait.ui.util.SingleEvent +import org.cazait.ui.util.extension.observe +import org.cazait.ui.util.extension.observeEvent +import org.cazait.ui.util.extension.toGone +import org.cazait.ui.util.extension.toVisible +import org.cazait.ui.view.cafelist.info.CafeInformationActivity +import org.cazait.ui.viewmodel.CafeInterestViewModel import kotlin.math.roundToInt @AndroidEntryPoint @@ -65,17 +65,19 @@ class CafeInterestFragment : BaseFragment { val cafes = convertInterestCafesToCafes(it) - if (binding.rvInterestCafes.adapter == null) + if (binding.rvInterestCafes.adapter == null) { bindRVInterestCafesData(cafes = cafes) - else { + } else { updateRVInterestCafesData(cafes = cafes) } } + "FAIL" -> { viewModel.refreshInterestCafeList() } } } + is Resource.Error -> { showDataView(false) status.message.let { @@ -118,14 +120,18 @@ class CafeInterestFragment : BaseFragment() { @@ -73,9 +72,11 @@ class LoginActivity : BaseActivity() { startActivity(intent) finish() } + "FAIL" -> viewModel.showToastMessage(EMAIL_OR_PASSWORD_ERROR) } } + is Resource.Error -> { binding.pbLoginLoaderView.toGone() status.message.let { @@ -100,7 +101,8 @@ class LoginActivity : BaseActivity() { private fun doLogin() { viewModel.doLogin( - binding.etLoginUserName.text.toString(), binding.etLoginPassword.text.toString() + binding.etLoginUserName.text.toString(), + binding.etLoginPassword.text.toString(), ) } diff --git a/app/src/main/java/org/cazait/cazait_android/ui/view/mypage/MyPageFragment.kt b/app/src/main/java/org/cazait/ui/view/mypage/MyPageFragment.kt similarity index 70% rename from app/src/main/java/org/cazait/cazait_android/ui/view/mypage/MyPageFragment.kt rename to app/src/main/java/org/cazait/ui/view/mypage/MyPageFragment.kt index 6f03edf..c269900 100644 --- a/app/src/main/java/org/cazait/cazait_android/ui/view/mypage/MyPageFragment.kt +++ b/app/src/main/java/org/cazait/ui/view/mypage/MyPageFragment.kt @@ -1,19 +1,15 @@ -package org.cazait.cazait_android.ui.view.mypage +package org.cazait.ui.view.mypage import android.content.Intent import androidx.fragment.app.viewModels -import androidx.lifecycle.lifecycleScope import dagger.hilt.android.AndroidEntryPoint -import kotlinx.coroutines.launch -import org.cazait.cazait_android.R -import org.cazait.cazait_android.data.Resource -import org.cazait.cazait_android.databinding.FragmentMyPageBinding -import org.cazait.cazait_android.ui.base.BaseFragment -import org.cazait.cazait_android.ui.base.BaseViewModel -import org.cazait.cazait_android.ui.util.extension.observe -import org.cazait.cazait_android.ui.view.login.LoginActivity -import org.cazait.cazait_android.ui.view.mypage.recent.CafeRecentActivity -import org.cazait.cazait_android.ui.viewmodel.MyPageViewModel +import org.cazait.R +import org.cazait.databinding.FragmentMyPageBinding +import org.cazait.ui.base.BaseFragment +import org.cazait.ui.util.extension.observe +import org.cazait.ui.view.login.LoginActivity +import org.cazait.ui.view.mypage.recent.CafeRecentActivity +import org.cazait.ui.viewmodel.MyPageViewModel @AndroidEntryPoint class MyPageFragment : BaseFragment() { @@ -26,7 +22,6 @@ class MyPageFragment : BaseFragment() { override fun initBeforeBinding() {} - override fun initView() { initButtons() observeViewModel() @@ -67,5 +62,3 @@ class MyPageFragment : BaseFragment() { } } } - - diff --git a/app/src/main/java/org/cazait/cazait_android/ui/view/mypage/recent/CafeRecentActivity.kt b/app/src/main/java/org/cazait/ui/view/mypage/recent/CafeRecentActivity.kt similarity index 80% rename from app/src/main/java/org/cazait/cazait_android/ui/view/mypage/recent/CafeRecentActivity.kt rename to app/src/main/java/org/cazait/ui/view/mypage/recent/CafeRecentActivity.kt index e929dd0..4f23ede 100644 --- a/app/src/main/java/org/cazait/cazait_android/ui/view/mypage/recent/CafeRecentActivity.kt +++ b/app/src/main/java/org/cazait/ui/view/mypage/recent/CafeRecentActivity.kt @@ -1,15 +1,15 @@ -package org.cazait.cazait_android.ui.view.mypage.recent +package org.cazait.ui.view.mypage.recent import MarginItemDecoration import androidx.activity.viewModels import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.RecyclerView import dagger.hilt.android.AndroidEntryPoint -import org.cazait.cazait_android.R -import org.cazait.cazait_android.databinding.ActivityCafeRecentBinding -import org.cazait.cazait_android.ui.adapter.CafeRecentlyAdapter -import org.cazait.cazait_android.ui.base.BaseActivity -import org.cazait.cazait_android.ui.viewmodel.CafeRecentViewModel +import org.cazait.R +import org.cazait.databinding.ActivityCafeRecentBinding +import org.cazait.ui.adapter.CafeRecentlyAdapter +import org.cazait.ui.base.BaseActivity +import org.cazait.ui.viewmodel.CafeRecentViewModel import kotlin.math.roundToInt @AndroidEntryPoint @@ -21,7 +21,6 @@ class CafeRecentActivity : BaseActivity() { @@ -98,9 +95,11 @@ class SignUpActivity : BaseActivity() { startActivity(nextScreenIntent) finish() } + "FAIL" -> viewModel.showToastMessage(status.data.message) } } + is Resource.Error -> { binding.pbSignUpLoaderView.toGone() viewModel.showToastMessage(status.message) @@ -126,27 +125,26 @@ class SignUpActivity : BaseActivity() { val repw = binding.etSignUpPasswordInsertMore.editText?.text.toString() val nickname = binding.etSignUpNickNameExample.editText?.text.toString() - if (email == "" || pw == "" || repw == "" || nickname == "") + if (email == "" || pw == "" || repw == "" || nickname == "") { viewModel.showToastMessage("회원정보를 전부 입력하세요") - else if (pw == repw) { + } else if (pw == repw) { viewModel.showToastMessage("가입되었습니다") viewModel.signUp(email, pw, nickname) - } else + } else { viewModel.showToastMessage("비밀번호가 일치하지 않습니다") + } } } private fun nicknameRegex(id: String): Boolean = id.matches("^[가-힣a-zA-Z|d]{3,15}$".toRegex()) - private fun passwordRegex(password: String): Boolean = password.matches("^(?=.*[A-Za-z])(?=.*[0-9])(?=.*[\$@\$!%*#?&.])[A-Za-z[0-9]\$@\$!%*#?&.]{8,16}\$".toRegex()) private fun passwordCheckRegex(passwordCheck: String): Boolean = passwordCheck.matches("^(?=.*[A-Za-z])(?=.*[0-9])(?=.*[\$@\$!%*#?&.])[A-Za-z[0-9]\$@\$!%*#?&.]{8,16}\$".toRegex()) - private fun emailRegex(email: String): Boolean { val regexEmail = """^([a-zA-Z0-9_\-\.]+)@([a-zA-Z0-9_\-\.]+)\.([a-zA-Z]{2,5})${'$'}""".toRegex() @@ -168,10 +166,12 @@ class SignUpActivity : BaseActivity() { binding.etSignUpEmailExample.error = "이메일을 입력해주세요." emailFlag = false } + !emailRegex(email) -> { binding.etSignUpEmailExample.error = "이메일 양식이 맞지 않습니다" emailFlag = false } + else -> { binding.etSignUpEmailExample.error = null emailFlag = true @@ -185,10 +185,12 @@ class SignUpActivity : BaseActivity() { binding.etSignUpNickNameExample.error = "닉네임을 입력해주세요." nickNameFlag = false } + !nicknameRegex(nickName) -> { binding.etSignUpNickNameExample.error = "한글 또는 영어로 3~15자로 조합해 주세요" nickNameFlag = false } + else -> { binding.etSignUpNickNameExample.error = null nickNameFlag = true @@ -202,14 +204,17 @@ class SignUpActivity : BaseActivity() { binding.etSignUpPasswordInsert.error = "비밀번호를 입력해주세요." passwordFlag = false } + !passwordRegex(password) -> { binding.etSignUpPasswordInsert.error = "영문/숫자/특수문자(공백 제외)으로 8~16자로 조합" passwordFlag = false } + !passwordCheckRegex(password) -> { binding.etSignUpPasswordInsertMore.error = "영문/숫자/특수문자(공백 제외)으로 8~16자로 조합" passwordCheckFlag = false } + password.isNotEmpty() -> { binding.etSignUpPasswordInsert.error = null passwordFlag = true @@ -232,20 +237,23 @@ class SignUpActivity : BaseActivity() { binding.etSignUpPasswordInsertMore.error = "비밀번호를 입력해주세요." passwordFlag = false } + !passwordCheckRegex(password) -> { binding.etSignUpPasswordInsertMore.error = "영문/숫자/특수문자(공백 제외)으로 8~16자로 조합" passwordCheckFlag = false } + password.isNotEmpty() -> { binding.etSignUpPasswordInsertMore.error = null passwordFlag = true when { - binding.etSignUpPasswordInsertMore.editText?.text.toString() != "" - && binding.etSignUpPasswordInsertMore.editText?.text.toString() != binding.etSignUpPasswordInsert.editText?.text.toString() -> { + binding.etSignUpPasswordInsertMore.editText?.text.toString() != "" && + binding.etSignUpPasswordInsertMore.editText?.text.toString() != binding.etSignUpPasswordInsert.editText?.text.toString() -> { binding.etSignUpPasswordInsertMore.error = "비밀번호가 일치하지 않습니다" passwordCheckFlag = false passwordFlag = true } + else -> { binding.etSignUpPasswordInsertMore.error = null passwordCheckFlag = true diff --git a/app/src/main/java/org/cazait/cazait_android/ui/view/viewmore/ViewMoreFragment.kt b/app/src/main/java/org/cazait/ui/view/viewmore/ViewMoreFragment.kt similarity index 63% rename from app/src/main/java/org/cazait/cazait_android/ui/view/viewmore/ViewMoreFragment.kt rename to app/src/main/java/org/cazait/ui/view/viewmore/ViewMoreFragment.kt index 1125a4f..ba5ecbd 100644 --- a/app/src/main/java/org/cazait/cazait_android/ui/view/viewmore/ViewMoreFragment.kt +++ b/app/src/main/java/org/cazait/ui/view/viewmore/ViewMoreFragment.kt @@ -1,11 +1,11 @@ -package org.cazait.cazait_android.ui.view.viewmore +package org.cazait.ui.view.viewmore import androidx.fragment.app.viewModels import dagger.hilt.android.AndroidEntryPoint -import org.cazait.cazait_android.R -import org.cazait.cazait_android.databinding.FragmentViewMoreBinding -import org.cazait.cazait_android.ui.base.BaseFragment -import org.cazait.cazait_android.ui.base.BaseViewModel +import org.cazait.R +import org.cazait.databinding.FragmentViewMoreBinding +import org.cazait.ui.base.BaseFragment +import org.cazait.ui.base.BaseViewModel @AndroidEntryPoint class ViewMoreFragment : BaseFragment() { @@ -15,14 +15,11 @@ class ViewMoreFragment : BaseFragment() override val viewModel: BaseViewModel by viewModels() override fun initAfterBinding() { - } override fun initBeforeBinding() { - } override fun initView() { - } -} \ No newline at end of file +} diff --git a/app/src/main/java/org/cazait/ui/viewmodel/CafeInfoImgViewModel.kt b/app/src/main/java/org/cazait/ui/viewmodel/CafeInfoImgViewModel.kt new file mode 100644 index 0000000..a19f6c9 --- /dev/null +++ b/app/src/main/java/org/cazait/ui/viewmodel/CafeInfoImgViewModel.kt @@ -0,0 +1,10 @@ +package org.cazait.ui.viewmodel + +import dagger.hilt.android.lifecycle.HiltViewModel +import org.cazait.data.repository.DataRepository +import org.cazait.ui.base.BaseViewModel +import javax.inject.Inject + +@HiltViewModel +class CafeInfoImgViewModel @Inject constructor(private val dataRepository: DataRepository) : + BaseViewModel() diff --git a/app/src/main/java/org/cazait/cazait_android/ui/viewmodel/CafeInfoLocTransViewModel.kt b/app/src/main/java/org/cazait/ui/viewmodel/CafeInfoLocTransViewModel.kt similarity index 71% rename from app/src/main/java/org/cazait/cazait_android/ui/viewmodel/CafeInfoLocTransViewModel.kt rename to app/src/main/java/org/cazait/ui/viewmodel/CafeInfoLocTransViewModel.kt index e0186fd..8b72a79 100644 --- a/app/src/main/java/org/cazait/cazait_android/ui/viewmodel/CafeInfoLocTransViewModel.kt +++ b/app/src/main/java/org/cazait/ui/viewmodel/CafeInfoLocTransViewModel.kt @@ -1,22 +1,19 @@ -package org.cazait.cazait_android.ui.viewmodel +package org.cazait.ui.viewmodel -import android.annotation.SuppressLint import android.location.Location -import android.util.Log import androidx.lifecycle.LiveData import androidx.lifecycle.MutableLiveData import com.google.android.gms.location.FusedLocationProviderClient import dagger.hilt.android.lifecycle.HiltViewModel -import org.cazait.cazait_android.ui.base.BaseViewModel -import org.cazait.cazait_android.ui.util.SingleEvent +import org.cazait.ui.base.BaseViewModel +import org.cazait.ui.util.SingleEvent import javax.inject.Inject + @HiltViewModel class CafeInfoLocTransViewModel @Inject constructor( - private val fusedLocationProviderClient: FusedLocationProviderClient + private val fusedLocationProviderClient: FusedLocationProviderClient, ) : BaseViewModel() { private val _userLocation = MutableLiveData>() val userLocation: LiveData> get() = _userLocation - - -} \ No newline at end of file +} diff --git a/app/src/main/java/org/cazait/cazait_android/ui/viewmodel/CafeInfoMenuViewModel.kt b/app/src/main/java/org/cazait/ui/viewmodel/CafeInfoMenuViewModel.kt similarity index 73% rename from app/src/main/java/org/cazait/cazait_android/ui/viewmodel/CafeInfoMenuViewModel.kt rename to app/src/main/java/org/cazait/ui/viewmodel/CafeInfoMenuViewModel.kt index 6ec610d..ba3a911 100644 --- a/app/src/main/java/org/cazait/cazait_android/ui/viewmodel/CafeInfoMenuViewModel.kt +++ b/app/src/main/java/org/cazait/ui/viewmodel/CafeInfoMenuViewModel.kt @@ -1,17 +1,15 @@ -package org.cazait.cazait_android.ui.viewmodel +package org.cazait.ui.viewmodel import androidx.lifecycle.LiveData import androidx.lifecycle.MutableLiveData import androidx.lifecycle.viewModelScope import dagger.hilt.android.lifecycle.HiltViewModel -import kotlinx.coroutines.flow.collect import kotlinx.coroutines.launch -import org.cazait.cazait_android.data.Resource -import org.cazait.cazait_android.data.model.CafeMenu -import org.cazait.cazait_android.data.model.remote.response.MenuResponse -import org.cazait.cazait_android.data.repository.DataRepository -import org.cazait.cazait_android.data.repository.DataRepositoryImpl -import org.cazait.cazait_android.ui.base.BaseViewModel +import org.cazait.data.Resource +import org.cazait.data.model.CafeMenu +import org.cazait.data.model.remote.response.MenuResponse +import org.cazait.data.repository.DataRepository +import org.cazait.ui.base.BaseViewModel import javax.inject.Inject @HiltViewModel @@ -28,7 +26,6 @@ open class CafeInfoMenuViewModel @Inject constructor(private val dataRepository: } private fun initDataSet() { - // 테스트용으로 값을 넣어주고 있음 // val dataList = arrayListOf( // CafeMenu( @@ -37,7 +34,6 @@ open class CafeInfoMenuViewModel @Inject constructor(private val dataRepository: // 1500 // ) // ) - } fun getMenus(cafeId: Long) { @@ -48,4 +44,4 @@ open class CafeInfoMenuViewModel @Inject constructor(private val dataRepository: } } } -} \ No newline at end of file +} diff --git a/app/src/main/java/org/cazait/cazait_android/ui/viewmodel/CafeInfoReviewEditViewModel.kt b/app/src/main/java/org/cazait/ui/viewmodel/CafeInfoReviewEditViewModel.kt similarity index 58% rename from app/src/main/java/org/cazait/cazait_android/ui/viewmodel/CafeInfoReviewEditViewModel.kt rename to app/src/main/java/org/cazait/ui/viewmodel/CafeInfoReviewEditViewModel.kt index c8d8128..dd74867 100644 --- a/app/src/main/java/org/cazait/cazait_android/ui/viewmodel/CafeInfoReviewEditViewModel.kt +++ b/app/src/main/java/org/cazait/ui/viewmodel/CafeInfoReviewEditViewModel.kt @@ -1,24 +1,23 @@ -package org.cazait.cazait_android.ui.viewmodel +package org.cazait.ui.viewmodel import androidx.lifecycle.LiveData import androidx.lifecycle.MutableLiveData import androidx.lifecycle.viewModelScope import dagger.hilt.android.lifecycle.HiltViewModel -import kotlinx.coroutines.flow.collect import kotlinx.coroutines.flow.first import kotlinx.coroutines.launch -import org.cazait.cazait_android.data.Resource -import org.cazait.cazait_android.data.model.remote.request.ReviewEditRequest -import org.cazait.cazait_android.data.model.remote.response.ReviewEditResponse -import org.cazait.cazait_android.data.repository.DataRepository -import org.cazait.cazait_android.data.repository.UserRepository -import org.cazait.cazait_android.ui.base.BaseViewModel +import org.cazait.data.Resource +import org.cazait.data.model.remote.request.ReviewEditRequest +import org.cazait.data.model.remote.response.ReviewEditResponse +import org.cazait.data.repository.DataRepository +import org.cazait.data.repository.UserRepository +import org.cazait.ui.base.BaseViewModel import javax.inject.Inject @HiltViewModel class CafeInfoReviewEditViewModel @Inject constructor( private val dataRepository: DataRepository, - private val userRepository: UserRepository + private val userRepository: UserRepository, ) : BaseViewModel() { private val _editProcess = MutableLiveData>() val editProcess: LiveData> @@ -28,9 +27,10 @@ class CafeInfoReviewEditViewModel @Inject constructor( viewModelScope.launch { val userId = userRepository.fetchUserIdInDataStore().first() _editProcess.value = Resource.Loading() - dataRepository.postReview(userId, cafeId, body = ReviewEditRequest(content, score)).collect { - _editProcess.value = it - } + dataRepository.postReview(userId, cafeId, body = ReviewEditRequest(content, score)) + .collect { + _editProcess.value = it + } } } -} \ No newline at end of file +} diff --git a/app/src/main/java/org/cazait/cazait_android/ui/viewmodel/CafeInfoReviewViewModel.kt b/app/src/main/java/org/cazait/ui/viewmodel/CafeInfoReviewViewModel.kt similarity index 65% rename from app/src/main/java/org/cazait/cazait_android/ui/viewmodel/CafeInfoReviewViewModel.kt rename to app/src/main/java/org/cazait/ui/viewmodel/CafeInfoReviewViewModel.kt index 2d0321d..e7d589b 100644 --- a/app/src/main/java/org/cazait/cazait_android/ui/viewmodel/CafeInfoReviewViewModel.kt +++ b/app/src/main/java/org/cazait/ui/viewmodel/CafeInfoReviewViewModel.kt @@ -1,22 +1,18 @@ -package org.cazait.cazait_android.ui.viewmodel +package org.cazait.ui.viewmodel import android.util.Log import androidx.lifecycle.LiveData import androidx.lifecycle.MutableLiveData import androidx.lifecycle.viewModelScope import dagger.hilt.android.lifecycle.HiltViewModel -import kotlinx.coroutines.flow.collect import kotlinx.coroutines.launch -import org.cazait.cazait_android.data.Resource -import org.cazait.cazait_android.data.model.ReviewData -import org.cazait.cazait_android.data.model.remote.request.ReviewRequest -import org.cazait.cazait_android.data.model.remote.response.ReviewResponse -import org.cazait.cazait_android.data.repository.DataRepository -import org.cazait.cazait_android.data.repository.DataRepositoryImpl -import org.cazait.cazait_android.ui.base.BaseViewModel +import org.cazait.data.Resource +import org.cazait.data.model.remote.request.ReviewRequest +import org.cazait.data.model.remote.response.ReviewResponse +import org.cazait.data.repository.DataRepository +import org.cazait.ui.base.BaseViewModel import javax.inject.Inject - @HiltViewModel class CafeInfoReviewViewModel @Inject constructor(private val dataRepository: DataRepository) : BaseViewModel() { @@ -29,7 +25,6 @@ class CafeInfoReviewViewModel @Inject constructor(private val dataRepository: Da } private fun initDataSet() { - } fun getReviews(cafeId: Long) { @@ -42,4 +37,4 @@ class CafeInfoReviewViewModel @Inject constructor(private val dataRepository: Da } } } -} \ No newline at end of file +} diff --git a/app/src/main/java/org/cazait/cazait_android/ui/viewmodel/CafeInfoViewModel.kt b/app/src/main/java/org/cazait/ui/viewmodel/CafeInfoViewModel.kt similarity index 84% rename from app/src/main/java/org/cazait/cazait_android/ui/viewmodel/CafeInfoViewModel.kt rename to app/src/main/java/org/cazait/ui/viewmodel/CafeInfoViewModel.kt index adfe6f1..835c913 100644 --- a/app/src/main/java/org/cazait/cazait_android/ui/viewmodel/CafeInfoViewModel.kt +++ b/app/src/main/java/org/cazait/ui/viewmodel/CafeInfoViewModel.kt @@ -1,18 +1,17 @@ -package org.cazait.cazait_android.ui.viewmodel +package org.cazait.ui.viewmodel -import android.os.Bundle import androidx.lifecycle.LiveData import androidx.lifecycle.MutableLiveData import dagger.hilt.android.lifecycle.HiltViewModel -import org.cazait.cazait_android.data.model.Cafe -import org.cazait.cazait_android.data.model.CafeImageRes -import org.cazait.cazait_android.data.repository.DataRepository -import org.cazait.cazait_android.ui.base.BaseViewModel +import org.cazait.data.model.Cafe +import org.cazait.data.model.CafeImageRes +import org.cazait.data.repository.DataRepository +import org.cazait.ui.base.BaseViewModel import javax.inject.Inject @HiltViewModel class CafeInfoViewModel @Inject constructor( - private val dataRepository: DataRepository + private val dataRepository: DataRepository, ) : BaseViewModel() { // private val _locationData = MutableLiveData>() @@ -48,7 +47,7 @@ class CafeInfoViewModel @Inject constructor( // bundle?.putString("cafeLong", cafe.longitude) _cafeIdData.value = cafe.id - _locationData.value = arrayListOf(cafe.latitude,cafe.longitude) + _locationData.value = arrayListOf(cafe.latitude, cafe.longitude) cafeId = cafe.id name = cafe.name @@ -76,4 +75,4 @@ class CafeInfoViewModel @Inject constructor( // cafeImgList.addAll(cafe.cafeImageRes) // return cafeImgList // } -} \ No newline at end of file +} diff --git a/app/src/main/java/org/cazait/cazait_android/ui/viewmodel/CafeInterestViewModel.kt b/app/src/main/java/org/cazait/ui/viewmodel/CafeInterestViewModel.kt similarity index 68% rename from app/src/main/java/org/cazait/cazait_android/ui/viewmodel/CafeInterestViewModel.kt rename to app/src/main/java/org/cazait/ui/viewmodel/CafeInterestViewModel.kt index c301b9c..cde22f2 100644 --- a/app/src/main/java/org/cazait/cazait_android/ui/viewmodel/CafeInterestViewModel.kt +++ b/app/src/main/java/org/cazait/ui/viewmodel/CafeInterestViewModel.kt @@ -1,4 +1,4 @@ -package org.cazait.cazait_android.ui.viewmodel +package org.cazait.ui.viewmodel import androidx.lifecycle.LiveData import androidx.lifecycle.MutableLiveData @@ -8,21 +8,21 @@ import kotlinx.coroutines.Job import kotlinx.coroutines.flow.collect import kotlinx.coroutines.flow.first import kotlinx.coroutines.launch -import org.cazait.cazait_android.data.Resource -import org.cazait.cazait_android.data.error.EXPIRED_ACCESS_TOKEN -import org.cazait.cazait_android.data.model.Cafe -import org.cazait.cazait_android.data.model.remote.response.InterestCafesResponse -import org.cazait.cazait_android.data.repository.DataRepository -import org.cazait.cazait_android.data.repository.UserRepository -import org.cazait.cazait_android.ui.base.BaseViewModel -import org.cazait.cazait_android.ui.util.SingleEvent -import org.cazait.cazait_android.ui.viewmodel.ext.onMain +import org.cazait.data.Resource +import org.cazait.data.error.EXPIRED_ACCESS_TOKEN +import org.cazait.data.model.Cafe +import org.cazait.data.model.remote.response.InterestCafesResponse +import org.cazait.data.repository.DataRepository +import org.cazait.data.repository.UserRepository +import org.cazait.ui.base.BaseViewModel +import org.cazait.ui.util.SingleEvent +import org.cazait.ui.viewmodel.ext.onMain import javax.inject.Inject @HiltViewModel open class CafeInterestViewModel @Inject constructor( private val dataRepository: DataRepository, - private val userRepository: UserRepository + private val userRepository: UserRepository, ) : BaseViewModel() { private val _showToast = MutableLiveData>() @@ -68,7 +68,6 @@ open class CafeInterestViewModel @Inject constructor( } fun likeCafe(userId: Long, cafeId: Long) { - } fun dislikeCafe(favoritesId: Long) { @@ -79,19 +78,21 @@ open class CafeInterestViewModel @Inject constructor( } private fun isExpiredToken(response: Resource): Boolean { - return response is Resource.Success - && response.data.result == "FAIL" - && response.data.message == errorManager.getError(EXPIRED_ACCESS_TOKEN).description + return response is Resource.Success && + response.data.result == "FAIL" && + response.data.message == errorManager.getError(EXPIRED_ACCESS_TOKEN).description } private suspend fun refreshTokens() { val tokenResponse = userRepository.postToken().first() - if (tokenResponse is Resource.Success) userRepository.saveToken( - listOf( - tokenResponse.data.data.jwtToken, - tokenResponse.data.data.refreshToken + if (tokenResponse is Resource.Success) { + userRepository.saveToken( + listOf( + tokenResponse.data.data.jwtToken, + tokenResponse.data.data.refreshToken, + ), ) - ) + } } -} \ No newline at end of file +} diff --git a/app/src/main/java/org/cazait/cazait_android/ui/viewmodel/CafeListViewModel.kt b/app/src/main/java/org/cazait/ui/viewmodel/CafeListViewModel.kt similarity index 83% rename from app/src/main/java/org/cazait/cazait_android/ui/viewmodel/CafeListViewModel.kt rename to app/src/main/java/org/cazait/ui/viewmodel/CafeListViewModel.kt index bbfcc1a..51e6ca1 100644 --- a/app/src/main/java/org/cazait/cazait_android/ui/viewmodel/CafeListViewModel.kt +++ b/app/src/main/java/org/cazait/ui/viewmodel/CafeListViewModel.kt @@ -1,4 +1,4 @@ -package org.cazait.cazait_android.ui.viewmodel +package org.cazait.ui.viewmodel import android.annotation.SuppressLint import android.location.Location @@ -11,15 +11,15 @@ import dagger.hilt.android.lifecycle.HiltViewModel import kotlinx.coroutines.flow.collect import kotlinx.coroutines.flow.first import kotlinx.coroutines.launch -import org.cazait.cazait_android.data.Resource -import org.cazait.cazait_android.data.error.EXPIRED_ACCESS_TOKEN -import org.cazait.cazait_android.data.model.Cafe -import org.cazait.cazait_android.data.model.remote.request.CafeListRequest -import org.cazait.cazait_android.data.model.remote.response.CafeListResponse -import org.cazait.cazait_android.data.repository.DataRepository -import org.cazait.cazait_android.data.repository.UserRepository -import org.cazait.cazait_android.ui.base.BaseViewModel -import org.cazait.cazait_android.ui.util.SingleEvent +import org.cazait.data.Resource +import org.cazait.data.error.EXPIRED_ACCESS_TOKEN +import org.cazait.data.model.Cafe +import org.cazait.data.model.remote.request.CafeListRequest +import org.cazait.data.model.remote.response.CafeListResponse +import org.cazait.data.repository.DataRepository +import org.cazait.data.repository.UserRepository +import org.cazait.ui.base.BaseViewModel +import org.cazait.ui.util.SingleEvent import javax.inject.Inject @HiltViewModel @@ -48,7 +48,6 @@ open class CafeListViewModel @Inject constructor( val userLocation: LiveData> get() = _userLocation - /** * 카페 목록을 새로 고침 한다. * 즉, user의 위치에 기반하여 새로운 request를 보낸다. @@ -66,10 +65,11 @@ open class CafeListViewModel @Inject constructor( userLocation.value!!.peekContent().latitude.toString(), userLocation.value!!.peekContent().longitude.toString(), "0", - testSort + testSort, ) - } else + } else { CafeListRequest(testLatitude, testLongitude, testLimit, testSort) + } Log.d("CafeListViewModel", "선택된 것은... ${request.latitude}, ${request.longitude}") viewModelScope.launch { @@ -127,9 +127,9 @@ open class CafeListViewModel @Inject constructor( } private fun isExpiredToken(response: Resource): Boolean { - if (response is Resource.Success - && response.data.result == "FAIL" - && response.data.message == errorManager.getError(EXPIRED_ACCESS_TOKEN).description + if (response is Resource.Success && + response.data.result == "FAIL" && + response.data.message == errorManager.getError(EXPIRED_ACCESS_TOKEN).description ) { return true } @@ -142,9 +142,9 @@ open class CafeListViewModel @Inject constructor( userRepository.saveToken( listOf( tokenResponse.data.data.jwtToken, - tokenResponse.data.data.refreshToken - ) + tokenResponse.data.data.refreshToken, + ), ) } } -} \ No newline at end of file +} diff --git a/app/src/main/java/org/cazait/ui/viewmodel/CafeRecentViewModel.kt b/app/src/main/java/org/cazait/ui/viewmodel/CafeRecentViewModel.kt new file mode 100644 index 0000000..b78b8ac --- /dev/null +++ b/app/src/main/java/org/cazait/ui/viewmodel/CafeRecentViewModel.kt @@ -0,0 +1,190 @@ +package org.cazait.ui.viewmodel + +import androidx.lifecycle.LiveData +import androidx.lifecycle.MutableLiveData +import dagger.hilt.android.lifecycle.HiltViewModel +import org.cazait.data.model.Cafe +import org.cazait.data.repository.DataRepository +import org.cazait.ui.base.BaseViewModel +import javax.inject.Inject + +@HiltViewModel +open class CafeRecentViewModel @Inject constructor(private val dataRepository: DataRepository) : + BaseViewModel() { + + private val list = arrayListOf() + private val _cafeRecentlyList = MutableLiveData>() + val cafeRecentlyList: LiveData> + get() = _cafeRecentlyList + + init { + initDataSet() + } + + private fun initDataSet() { + val dataList = arrayListOf( + Cafe( + 1, + "카페 범쿤", + 100, + "서울시 광진구 능동 239 - 26", + "보통", + false, + 0, + listOf(), + "111.11", + "111.11", + ), + Cafe( + 2, + "눈물", + 200, + "서울시 광진구 xxxx - xxxxxx", + "혼잡", + false, + 0, + listOf(), + "111.11", + "111.11", + ), + Cafe( + 3, + "눙물", + 300, + "서울시 광진구 xxxx - xxxxxx", + "보통", + false, + 0, + listOf(), + "111.11", + "111.11", + ), + Cafe( + 4, + "국물", + 400, + "서울시 광진구 xxxx - xxxxxx", + "여유", + false, + 0, + listOf(), + "111.11", + "111.11", + ), + Cafe( + 5, + "물논", + 1200, + "서울시 광진구 xxxx - xxxxxx", + "보통", + false, + 0, + listOf(), + "111.11", + "111.11", + ), + Cafe( + 6, + "물론", + 400, + "서울시 광진구 xxxx - xxxxxx", + "보통", + false, + 0, + listOf(), + "111.11", + "111.11", + ), + Cafe( + 7, + "투썸플레이스 삼호가든사거리점", + 500, + "서울 서초구 서초중앙로 238 가든리체프라자 2층 252호", + "혼잡", + false, + 0, + listOf(), + "111.11", + "111.11", + ), + Cafe( + 8, + "골목", + 600, + "서울시 광진구 xxxx - xxxxxx", + "보통", + false, + 0, + listOf(), + "111.11", + "111.11", + ), + Cafe( + 9, + "눔룬", + 700, + "서울시 광진구 xxxx - xxxxxx", + "보통", + false, + 0, + listOf(), + "111.11", + "111.11", + ), + Cafe( + 1, + "엔제리너스카페24시", + 800, + "서울시 광진구 xxxx - xxxxxx", + "보통", + false, + 0, + listOf(), + "111.11", + "111.11", + ), + Cafe( + 11, + "제주몰빵", + 900, + "서울시 광진구 xxxx - xxxxxx", + "보통", + false, + 0, + listOf(), + "111.11", + "111.11", + ), + Cafe( + 12, + "카페 딕셔너리", + 1000, + "서울시 xxxx - xxxxxx", + "보통", + false, + 0, + listOf(), + "111.11", + "111.11", + ), + Cafe( + 13, + "카페베네", + 1100, + "서울시 광진구 xxxx - xxxxxx", + "보통", + false, + 0, + listOf(), + "111.11", + "111.11", + ), + ) + setCafeRecentlyList(dataList) + } + + private fun setCafeRecentlyList(dataset: ArrayList) { + list.addAll(dataset) + _cafeRecentlyList.postValue(dataset) + } +} diff --git a/app/src/main/java/org/cazait/cazait_android/ui/viewmodel/LoginViewModel.kt b/app/src/main/java/org/cazait/ui/viewmodel/LoginViewModel.kt similarity index 83% rename from app/src/main/java/org/cazait/cazait_android/ui/viewmodel/LoginViewModel.kt rename to app/src/main/java/org/cazait/ui/viewmodel/LoginViewModel.kt index e048abc..e9336fc 100644 --- a/app/src/main/java/org/cazait/cazait_android/ui/viewmodel/LoginViewModel.kt +++ b/app/src/main/java/org/cazait/ui/viewmodel/LoginViewModel.kt @@ -1,4 +1,4 @@ -package org.cazait.cazait_android.ui.viewmodel +package org.cazait.ui.viewmodel import android.util.Log import androidx.lifecycle.LiveData @@ -6,12 +6,12 @@ import androidx.lifecycle.MutableLiveData import androidx.lifecycle.viewModelScope import dagger.hilt.android.lifecycle.HiltViewModel import kotlinx.coroutines.launch -import org.cazait.cazait_android.data.Resource -import org.cazait.cazait_android.data.model.remote.request.LoginRequest -import org.cazait.cazait_android.data.model.remote.response.LoginResponse -import org.cazait.cazait_android.data.repository.UserRepository -import org.cazait.cazait_android.ui.base.BaseViewModel -import org.cazait.cazait_android.ui.util.SingleEvent +import org.cazait.data.Resource +import org.cazait.data.model.remote.request.LoginRequest +import org.cazait.data.model.remote.response.LoginResponse +import org.cazait.data.repository.UserRepository +import org.cazait.ui.base.BaseViewModel +import org.cazait.ui.util.SingleEvent import javax.inject.Inject @HiltViewModel @@ -71,4 +71,4 @@ class LoginViewModel @Inject constructor( userRepository.saveUserId(id) } } -} \ No newline at end of file +} diff --git a/app/src/main/java/org/cazait/ui/viewmodel/MainViewModel.kt b/app/src/main/java/org/cazait/ui/viewmodel/MainViewModel.kt new file mode 100644 index 0000000..6e22457 --- /dev/null +++ b/app/src/main/java/org/cazait/ui/viewmodel/MainViewModel.kt @@ -0,0 +1,8 @@ +package org.cazait.ui.viewmodel + +import dagger.hilt.android.lifecycle.HiltViewModel +import org.cazait.ui.base.BaseViewModel +import javax.inject.Inject + +@HiltViewModel +class MainViewModel @Inject constructor() : BaseViewModel() diff --git a/app/src/main/java/org/cazait/cazait_android/ui/viewmodel/MyPageViewModel.kt b/app/src/main/java/org/cazait/ui/viewmodel/MyPageViewModel.kt similarity index 67% rename from app/src/main/java/org/cazait/cazait_android/ui/viewmodel/MyPageViewModel.kt rename to app/src/main/java/org/cazait/ui/viewmodel/MyPageViewModel.kt index 341ec06..9bc9d48 100644 --- a/app/src/main/java/org/cazait/cazait_android/ui/viewmodel/MyPageViewModel.kt +++ b/app/src/main/java/org/cazait/ui/viewmodel/MyPageViewModel.kt @@ -1,22 +1,19 @@ -package org.cazait.cazait_android.ui.viewmodel +package org.cazait.ui.viewmodel import androidx.lifecycle.LiveData import androidx.lifecycle.MutableLiveData import androidx.lifecycle.viewModelScope import dagger.hilt.android.lifecycle.HiltViewModel -import kotlinx.coroutines.CoroutineDispatcher -import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.launch -import kotlinx.coroutines.withContext -import org.cazait.cazait_android.data.repository.UserRepository -import org.cazait.cazait_android.ui.base.BaseViewModel +import org.cazait.data.repository.UserRepository +import org.cazait.ui.base.BaseViewModel import javax.inject.Inject import kotlin.coroutines.CoroutineContext @HiltViewModel class MyPageViewModel @Inject constructor( private val userRepository: UserRepository, - private val ioDispatcher: CoroutineContext + private val ioDispatcher: CoroutineContext, ) : BaseViewModel() { private val _logoutCompleted = MutableLiveData() @@ -29,4 +26,4 @@ class MyPageViewModel @Inject constructor( _logoutCompleted.postValue(true) } } -} \ No newline at end of file +} diff --git a/app/src/main/java/org/cazait/cazait_android/ui/viewmodel/SignUpViewModel.kt b/app/src/main/java/org/cazait/ui/viewmodel/SignUpViewModel.kt similarity index 69% rename from app/src/main/java/org/cazait/cazait_android/ui/viewmodel/SignUpViewModel.kt rename to app/src/main/java/org/cazait/ui/viewmodel/SignUpViewModel.kt index a6cf5fd..6a87e6a 100644 --- a/app/src/main/java/org/cazait/cazait_android/ui/viewmodel/SignUpViewModel.kt +++ b/app/src/main/java/org/cazait/ui/viewmodel/SignUpViewModel.kt @@ -1,30 +1,27 @@ -package org.cazait.cazait_android.ui.viewmodel +package org.cazait.ui.viewmodel import androidx.lifecycle.LiveData import androidx.lifecycle.MutableLiveData import androidx.lifecycle.viewModelScope import dagger.hilt.android.lifecycle.HiltViewModel -import kotlinx.coroutines.flow.collect -import kotlinx.coroutines.flow.onCompletion import kotlinx.coroutines.launch -import org.cazait.cazait_android.data.Resource -import org.cazait.cazait_android.data.model.remote.request.SignUpRequest -import org.cazait.cazait_android.data.model.remote.response.SignUpResponse -import org.cazait.cazait_android.data.repository.UserRepository -import org.cazait.cazait_android.ui.base.BaseViewModel -import org.cazait.cazait_android.ui.util.SingleEvent +import org.cazait.data.Resource +import org.cazait.data.model.remote.request.SignUpRequest +import org.cazait.data.model.remote.response.SignUpResponse +import org.cazait.data.repository.UserRepository +import org.cazait.ui.base.BaseViewModel +import org.cazait.ui.util.SingleEvent import javax.inject.Inject @HiltViewModel class SignUpViewModel @Inject constructor( - private val userRepository: UserRepository + private val userRepository: UserRepository, ) : BaseViewModel() { private val _signUpProcess = MutableLiveData>() val signUpProcess: LiveData> get() = _signUpProcess - private val _showToast = MutableLiveData>() val showToast: LiveData> get() = _showToast @@ -47,4 +44,4 @@ class SignUpViewModel @Inject constructor( if (errorMessage == null) return _showToast.value = SingleEvent(errorMessage) } -} \ No newline at end of file +} diff --git a/app/src/main/java/org/cazait/ui/viewmodel/ViewModel.kt b/app/src/main/java/org/cazait/ui/viewmodel/ViewModel.kt new file mode 100644 index 0000000..b37c288 --- /dev/null +++ b/app/src/main/java/org/cazait/ui/viewmodel/ViewModel.kt @@ -0,0 +1,5 @@ +package org.cazait.ui.viewmodel + +import org.cazait.ui.base.BaseViewModel + +class ViewModel : BaseViewModel() diff --git a/app/src/main/java/org/cazait/cazait_android/ui/viewmodel/ext/ViewModelScopeExt.kt b/app/src/main/java/org/cazait/ui/viewmodel/ext/ViewModelScopeExt.kt similarity index 67% rename from app/src/main/java/org/cazait/cazait_android/ui/viewmodel/ext/ViewModelScopeExt.kt rename to app/src/main/java/org/cazait/ui/viewmodel/ext/ViewModelScopeExt.kt index 039b5bc..5d259d8 100644 --- a/app/src/main/java/org/cazait/cazait_android/ui/viewmodel/ext/ViewModelScopeExt.kt +++ b/app/src/main/java/org/cazait/ui/viewmodel/ext/ViewModelScopeExt.kt @@ -1,4 +1,4 @@ -package org.cazait.cazait_android.ui.viewmodel.ext +package org.cazait.ui.viewmodel.ext import androidx.lifecycle.ViewModel import androidx.lifecycle.viewModelScope @@ -7,19 +7,19 @@ import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.launch inline fun ViewModel.onMain( - crossinline body: suspend CoroutineScope.() -> Unit + crossinline body: suspend CoroutineScope.() -> Unit, ) = viewModelScope.launch { body(this) } inline fun ViewModel.onIO( - crossinline body: suspend CoroutineScope.() -> Unit + crossinline body: suspend CoroutineScope.() -> Unit, ) = viewModelScope.launch(Dispatchers.IO) { body(this) } inline fun ViewModel.onDefault( - crossinline body: suspend CoroutineScope.() -> Unit + crossinline body: suspend CoroutineScope.() -> Unit, ) = viewModelScope.launch(Dispatchers.Default) { body(this) -} \ No newline at end of file +} diff --git a/app/src/main/res/layout/activity_cafe_information.xml b/app/src/main/res/layout/activity_cafe_information.xml index 57b639e..b8ae49b 100644 --- a/app/src/main/res/layout/activity_cafe_information.xml +++ b/app/src/main/res/layout/activity_cafe_information.xml @@ -190,7 +190,7 @@ + type="org.cazait.data.model.User" /> + type="org.cazait.ui.view.signup.SignUpActivity" /> + type="org.cazait.ui.viewmodel.CafeListViewModel" /> + android:layout_height="match_parent"> + app:navermap_zoomControlEnabled="true" /> diff --git a/app/src/main/res/layout/item_cafe_info_menu.xml b/app/src/main/res/layout/item_cafe_info_menu.xml index 1e864ed..c298cdd 100644 --- a/app/src/main/res/layout/item_cafe_info_menu.xml +++ b/app/src/main/res/layout/item_cafe_info_menu.xml @@ -6,7 +6,7 @@ + type="org.cazait.data.model.CafeMenu" /> + type="org.cazait.data.model.ReviewData" /> + type="org.cazait.data.model.Cafe" /> + type="org.cazait.data.model.Cafe" /> + type="org.cazait.data.model.Cafe" />