diff --git a/app/build.gradle.kts b/app/build.gradle.kts
index e609cb456..b5005ed02 100644
--- a/app/build.gradle.kts
+++ b/app/build.gradle.kts
@@ -17,8 +17,15 @@ android {
namespace = "com.eatssu.android"
compileSdk = 35
- // S8: API 28
- // S21: API 33
+ /**
+ * 현재 팀 내 안드로이드 OS 버전
+ * 진 S8: 9 (sdk 28)
+ * 진 S21: 14 (sdk 33)
+ * 윤소: 9
+ * 유리: 10
+ * 제훈: 14
+ */
+
defaultConfig {
applicationId = "com.eatssu.android"
minSdk = 28
@@ -124,6 +131,27 @@ dependencies {
implementation(libs.androidx.activity.ktx)
implementation(libs.androidx.fragment.ktx)
+ // Compose
+ implementation(libs.androidx.activity.compose)
+ implementation(libs.androidx.compose.animation)
+ implementation(libs.androidx.compose.ui.tooling)
+ implementation(libs.androidx.compose.lifecycle.viewmodel)
+ implementation(libs.androidx.compose.lifecycle.runtime)
+ implementation(platform(libs.androidx.compose.bom))
+ implementation(libs.androidx.compose.ui)
+ implementation(libs.androidx.compose.ui.graphics)
+ implementation(libs.androidx.compose.ui.tooling.preview)
+ implementation(libs.androidx.compose.material3)
+ implementation(libs.compose.theme.adapter)
+ implementation(libs.accompanist.appcompat.theme)
+ androidTestImplementation(libs.androidx.compose.bom)
+ debugImplementation(libs.androidx.compose.ui.test.manifest)
+
+ // navigation
+ implementation(libs.androidx.navigation.fragment)
+ implementation(libs.androidx.navigation.ui)
+ implementation(libs.androidx.navigation.compose)
+
//glance
implementation(libs.androidx.glance)
implementation(libs.androidx.glance.preview)
@@ -151,6 +179,9 @@ dependencies {
implementation(libs.glide)
kapt(libs.glide.compiler)
+ //coil: 이미지 로딩
+ implementation(libs.coil.compose)
+
//compressor: 이미지 압축
implementation(libs.compressor)
@@ -168,6 +199,7 @@ dependencies {
kapt(libs.androidx.hilt.compiler)
implementation(libs.androidx.hilt.common)
implementation(libs.androidx.hilt.work)
+ implementation(libs.hilt.navigation.compose)
// ViewModel and LiveData
implementation(libs.androidx.lifecycle.viewmodel.ktx)
@@ -188,26 +220,6 @@ dependencies {
// OSS
implementation(libs.oss.licenses)
- // Compose
- implementation(libs.androidx.activity.compose)
- implementation(libs.androidx.compose.animation)
- implementation(libs.androidx.compose.ui.tooling)
- implementation(libs.androidx.compose.lifecycle.viewmodel)
- implementation(libs.androidx.compose.lifecycle.runtime)
- implementation(platform(libs.androidx.compose.bom))
- implementation(libs.androidx.compose.ui)
- implementation(libs.androidx.compose.ui.graphics)
- implementation(libs.androidx.compose.ui.tooling.preview)
- implementation(libs.androidx.compose.material3)
- implementation(libs.compose.theme.adapter)
- implementation(libs.accompanist.appcompat.theme)
- androidTestImplementation(libs.androidx.compose.bom)
- debugImplementation(libs.androidx.compose.ui.test.manifest)
-
- // navigation
- implementation(libs.androidx.navigation.fragment)
- implementation(libs.androidx.navigation.ui)
-
// worker (Kotlin + coroutines)
implementation(libs.androidx.work.runtime.ktx)
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 8f1a8100e..93237e2b2 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -156,15 +156,12 @@
-
@@ -187,8 +184,8 @@
android:value="" />
+ android:name=".presentation.error.ServerErrorActivity"
+ android:exported="false" />
@@ -212,14 +209,7 @@
android:value="" />
-
-
-
-
-
-
\ No newline at end of file
diff --git a/app/src/main/java/com/eatssu/android/data/remote/dto/request/ModifyReviewRequest.kt b/app/src/main/java/com/eatssu/android/data/remote/dto/request/ModifyReviewRequest.kt
index 26cbae6e0..3ed94c53f 100644
--- a/app/src/main/java/com/eatssu/android/data/remote/dto/request/ModifyReviewRequest.kt
+++ b/app/src/main/java/com/eatssu/android/data/remote/dto/request/ModifyReviewRequest.kt
@@ -3,8 +3,14 @@ package com.eatssu.android.data.remote.dto.request
import com.google.gson.annotations.SerializedName
data class ModifyReviewRequest(
- @SerializedName("mainRating") var mainRating: Int? = null,
- @SerializedName("amountRating") var amountRating: Int? = null,
- @SerializedName("tasteRating") var tasteRating: Int? = null,
- @SerializedName("content") var content: String? = null,
-)
\ No newline at end of file
+ @SerializedName("rating") val rating: Int? = null,
+ @SerializedName("menuLikes") val menuLikes: List = arrayListOf(),
+ @SerializedName("content") val content: String? = null
+) {
+ data class MenuLikes(
+
+ @SerializedName("menuId") val menuId: Long? = null,
+ @SerializedName("isLike") val isLike: Boolean? = null
+
+ )
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/eatssu/android/data/remote/dto/request/WriteMealReviewRequest.kt b/app/src/main/java/com/eatssu/android/data/remote/dto/request/WriteMealReviewRequest.kt
new file mode 100644
index 000000000..608c8c64e
--- /dev/null
+++ b/app/src/main/java/com/eatssu/android/data/remote/dto/request/WriteMealReviewRequest.kt
@@ -0,0 +1,17 @@
+package com.eatssu.android.data.remote.dto.request
+
+import com.google.gson.annotations.SerializedName
+
+//별점은 필수 값 나머지는 옵션
+data class WriteMealReviewRequest(
+ @SerializedName("mealId") val mealId: Long,
+ @SerializedName("rating") val rating: Int,
+ @SerializedName("menuLikes") val menuLikes: List?,
+ @SerializedName("content") val content: String,
+ @SerializedName("imageUrls") val imageUrls: List
+) {
+ data class MenuLikes(
+ @SerializedName("menuId") val menuId: Long,
+ @SerializedName("isLike") val isLike: Boolean
+ )
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/eatssu/android/data/remote/dto/request/WriteMenuReviewRequest.kt b/app/src/main/java/com/eatssu/android/data/remote/dto/request/WriteMenuReviewRequest.kt
new file mode 100644
index 000000000..d0f269f59
--- /dev/null
+++ b/app/src/main/java/com/eatssu/android/data/remote/dto/request/WriteMenuReviewRequest.kt
@@ -0,0 +1,16 @@
+package com.eatssu.android.data.remote.dto.request
+
+import com.google.gson.annotations.SerializedName
+
+//별점은 필수 값 나머지는 옵션
+data class WriteMenuReviewRequest(
+ @SerializedName("rating") val rating: Int,
+ @SerializedName("menuLike") val menuLike: MenuLike?,
+ @SerializedName("content") val content: String,
+ @SerializedName("imageUrls") val imageUrls: List,
+) {
+ data class MenuLike(
+ @SerializedName("menuId") val menuId: Long,
+ @SerializedName("isLike") val isLike: Boolean
+ )
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/eatssu/android/data/remote/dto/request/WriteReviewRequest.kt b/app/src/main/java/com/eatssu/android/data/remote/dto/request/WriteReviewRequest.kt
deleted file mode 100644
index a6dabadae..000000000
--- a/app/src/main/java/com/eatssu/android/data/remote/dto/request/WriteReviewRequest.kt
+++ /dev/null
@@ -1,13 +0,0 @@
-package com.eatssu.android.data.remote.dto.request
-
-import com.google.gson.annotations.SerializedName
-
-data class WriteReviewRequest(
-
- @SerializedName("mainRating") var mainRating: Int? = null,
- @SerializedName("amountRating") var amountRating: Int? = null,
- @SerializedName("tasteRating") var tasteRating: Int? = null,
- @SerializedName("content") var content: String? = null,
- @SerializedName("imageUrl") var imageUrl: String? = null,
-
- )
\ No newline at end of file
diff --git a/app/src/main/java/com/eatssu/android/data/remote/dto/response/ImageResponse.kt b/app/src/main/java/com/eatssu/android/data/remote/dto/response/ImageResponse.kt
index c394db0f8..6b7b9d7f8 100644
--- a/app/src/main/java/com/eatssu/android/data/remote/dto/response/ImageResponse.kt
+++ b/app/src/main/java/com/eatssu/android/data/remote/dto/response/ImageResponse.kt
@@ -3,5 +3,5 @@ package com.eatssu.android.data.remote.dto.response
import com.google.gson.annotations.SerializedName
data class ImageResponse(
- @SerializedName("url") var url: String? = null,
+ @SerializedName("url") val url: String? = null,
)
\ No newline at end of file
diff --git a/app/src/main/java/com/eatssu/android/data/remote/dto/response/MealResponse.kt b/app/src/main/java/com/eatssu/android/data/remote/dto/response/MealResponse.kt
index b113fd4b5..bdd797f96 100644
--- a/app/src/main/java/com/eatssu/android/data/remote/dto/response/MealResponse.kt
+++ b/app/src/main/java/com/eatssu/android/data/remote/dto/response/MealResponse.kt
@@ -4,7 +4,6 @@ import com.eatssu.android.domain.model.Menu
import com.google.gson.annotations.SerializedName
data class GetMealResponse(
-
@SerializedName("mealId") var mealId: Long? = null,
@SerializedName("price") var price: Int? = null,
@SerializedName("rating") var rating: Double? = null,
@@ -12,11 +11,9 @@ data class GetMealResponse(
)
data class MenusInformationList(
-
@SerializedName("menuId") var menuId: Long? = null,
@SerializedName("name") var name: String? = null,
-
- )
+)
fun List.mapTodayMenuResponseToMenu(): List