Skip to content

Commit b06374a

Browse files
committed
[MOD] #293 코스 생성 !! 제거 후 null 처리 대체값 대신 토스트
- 사용자가 의도하지 않은 CourseData라면 아예 다음 Activity로 안 넘어가는 게 낫겠단 판단 하에 대체값 대신 toast를 띄우는 방향으로 수정 - 관련 dto 이름 수정
1 parent 08f494d commit b06374a

File tree

7 files changed

+44
-35
lines changed

7 files changed

+44
-35
lines changed

app/src/main/java/com/runnect/runnect/data/dto/CourseData.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,8 @@ data class CourseData(
1111
val publicCourseId: Int?,
1212
val touchList: ArrayList<LatLng>,
1313
val startLatLng: LatLng,
14-
val departure: String,
15-
val distance: Float,
14+
val departure: String?,
15+
val distance: Float?,
1616
val image: String,
1717
val dataFrom: String
1818
) : Parcelable

app/src/main/java/com/runnect/runnect/data/dto/response/ResponsePostCourseDTO.kt renamed to app/src/main/java/com/runnect/runnect/data/dto/response/ResponsePostMyDrawCourse.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ import kotlinx.serialization.SerialName
55
import kotlinx.serialization.Serializable
66

77
@Serializable
8-
data class ResponsePostCourseDTO(
8+
data class ResponsePostMyDrawCourse(
99
@SerialName("data")
1010
val data: Data,
1111
@SerialName("message")

app/src/main/java/com/runnect/runnect/data/repository/CourseRepositoryImpl.kt

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,23 @@
11
package com.runnect.runnect.data.repository
22

3-
import com.runnect.runnect.domain.entity.CourseDetail
43
import com.runnect.runnect.data.dto.CourseLoadInfoDTO
54
import com.runnect.runnect.data.dto.CourseSearchDTO
65
import com.runnect.runnect.data.dto.RecommendCourseDTO
76
import com.runnect.runnect.data.dto.request.RequestCourseScrap
7+
import com.runnect.runnect.data.dto.request.RequestPatchPublicCourseDto
88
import com.runnect.runnect.data.dto.request.RequestPostRecordDTO
99
import com.runnect.runnect.data.dto.request.RequestPutMyDrawDTO
10-
import com.runnect.runnect.data.dto.request.RequestPatchPublicCourseDto
1110
import com.runnect.runnect.data.dto.request.RequestUploadMyCourse
1211
import com.runnect.runnect.data.dto.response.PublicCourse
1312
import com.runnect.runnect.data.dto.response.ResponseCourseScrap
1413
import com.runnect.runnect.data.dto.response.ResponseGetMyDrawDetailDTO
15-
import com.runnect.runnect.data.dto.response.ResponsePostCourseDTO
14+
import com.runnect.runnect.data.dto.response.ResponsePostMyDrawCourse
1615
import com.runnect.runnect.data.dto.response.ResponsePostRecordDTO
1716
import com.runnect.runnect.data.dto.response.ResponsePutMyDrawDTO
1817
import com.runnect.runnect.data.dto.response.ResponseUploadMyCourse
1918
import com.runnect.runnect.data.source.remote.RemoteCourseDataSource
2019
import com.runnect.runnect.domain.CourseRepository
20+
import com.runnect.runnect.domain.entity.CourseDetail
2121
import com.runnect.runnect.util.extension.toData
2222
import okhttp3.MultipartBody
2323
import okhttp3.RequestBody
@@ -78,7 +78,10 @@ class CourseRepositoryImpl @Inject constructor(private val remoteCourseDataSourc
7878
override suspend fun uploadCourse(
7979
image: MultipartBody.Part,
8080
courseCreateRequestDto: RequestBody
81-
): Response<ResponsePostCourseDTO> {
82-
return remoteCourseDataSource.uploadCourse(image = image, courseCreateRequestDto = courseCreateRequestDto)
81+
): Response<ResponsePostMyDrawCourse> {
82+
return remoteCourseDataSource.uploadCourse(
83+
image = image,
84+
courseCreateRequestDto = courseCreateRequestDto
85+
)
8386
}
8487
}

app/src/main/java/com/runnect/runnect/data/service/CourseService.kt

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
package com.runnect.runnect.data.service
22

33
import com.runnect.runnect.data.dto.request.RequestCourseScrap
4+
import com.runnect.runnect.data.dto.request.RequestPatchPublicCourseDto
45
import com.runnect.runnect.data.dto.request.RequestPostRecordDTO
56
import com.runnect.runnect.data.dto.request.RequestPutMyDrawDTO
6-
import com.runnect.runnect.data.dto.request.RequestPatchPublicCourseDto
77
import com.runnect.runnect.data.dto.request.RequestUploadMyCourse
88
import com.runnect.runnect.data.dto.response.*
99
import com.runnect.runnect.data.dto.response.base.BaseResponse
@@ -17,7 +17,7 @@ interface CourseService {
1717
@GET("/api/public-course")
1818
suspend fun getRecommendCourse(
1919
@Query("pageNo") pageNo: String?,
20-
): ResponseRecommendCourse
20+
): ResponseRecommendCourse
2121

2222
@POST("/api/scrap")
2323
suspend fun postCourseScrap(
@@ -49,7 +49,6 @@ interface CourseService {
4949
@Body requestPatchPublicCourseDto: RequestPatchPublicCourseDto
5050
): BaseResponse<ResponsePatchPublicCourseDto>
5151

52-
//스크랩 - 지훈이랑 나랑 타입 통일이 안 돼있음. 일단 DataSource 통일부터하고 나중에 여기 타입 맞춰줘서 스크랩 함수 둘 중 하나 삭제해야 함.
5352
@POST("/api/scrap")
5453
suspend fun postScrap(
5554
@Body requestCourseScrap: RequestCourseScrap,
@@ -90,5 +89,5 @@ interface CourseService {
9089
suspend fun uploadCourse(
9190
@Part image: MultipartBody.Part,
9291
@Part("courseCreateRequestDto") courseCreateRequestDto: RequestBody,
93-
): Response<ResponsePostCourseDTO>
92+
): Response<ResponsePostMyDrawCourse>
9493
}

app/src/main/java/com/runnect/runnect/domain/CourseRepository.kt

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,21 @@
11
package com.runnect.runnect.domain
22

3-
import com.runnect.runnect.domain.entity.CourseDetail
43
import com.runnect.runnect.data.dto.CourseLoadInfoDTO
54
import com.runnect.runnect.data.dto.CourseSearchDTO
65
import com.runnect.runnect.data.dto.RecommendCourseDTO
76
import com.runnect.runnect.data.dto.request.RequestCourseScrap
7+
import com.runnect.runnect.data.dto.request.RequestPatchPublicCourseDto
88
import com.runnect.runnect.data.dto.request.RequestPostRecordDTO
99
import com.runnect.runnect.data.dto.request.RequestPutMyDrawDTO
10-
import com.runnect.runnect.data.dto.request.RequestPatchPublicCourseDto
1110
import com.runnect.runnect.data.dto.request.RequestUploadMyCourse
1211
import com.runnect.runnect.data.dto.response.PublicCourse
1312
import com.runnect.runnect.data.dto.response.ResponseCourseScrap
1413
import com.runnect.runnect.data.dto.response.ResponseGetMyDrawDetailDTO
15-
import com.runnect.runnect.data.dto.response.ResponsePostCourseDTO
14+
import com.runnect.runnect.data.dto.response.ResponsePostMyDrawCourse
1615
import com.runnect.runnect.data.dto.response.ResponsePostRecordDTO
1716
import com.runnect.runnect.data.dto.response.ResponsePutMyDrawDTO
18-
import com.runnect.runnect.data.dto.response.ResponsePatchPublicCourseDto
1917
import com.runnect.runnect.data.dto.response.ResponseUploadMyCourse
18+
import com.runnect.runnect.domain.entity.CourseDetail
2019
import okhttp3.MultipartBody
2120
import okhttp3.RequestBody
2221
import retrofit2.Response
@@ -47,5 +46,5 @@ interface CourseRepository {
4746

4847
suspend fun uploadCourse(
4948
image: MultipartBody.Part, courseCreateRequestDto: RequestBody
50-
): Response<ResponsePostCourseDTO>
49+
): Response<ResponsePostMyDrawCourse>
5150
}

app/src/main/java/com/runnect/runnect/presentation/draw/DrawActivity.kt

Lines changed: 24 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -92,7 +92,6 @@ class DrawActivity :
9292

9393
var isFirstInit: Boolean = true
9494

95-
private lateinit var bottomSheetBinding: BottomsheetRequireCourseNameBinding // Bottom Sheet 바인딩
9695
override fun onCreate(savedInstanceState: Bundle?) {
9796
super.onCreate(savedInstanceState)
9897

@@ -287,7 +286,7 @@ class DrawActivity :
287286
}
288287

289288
private fun requireCourseNameDialog(): BottomSheetDialog {
290-
bottomSheetBinding = BottomsheetRequireCourseNameBinding.inflate(layoutInflater)
289+
val bottomSheetBinding = BottomsheetRequireCourseNameBinding.inflate(layoutInflater)
291290
val bottomSheetView = bottomSheetBinding.root
292291
val etCourseName = bottomSheetBinding.etCourseName
293292
val btnCreateCourse = bottomSheetBinding.btnCreateCourse
@@ -449,21 +448,28 @@ class DrawActivity :
449448

450449
with(dialogLayout) {
451450
this.btn_run.setOnClickListener {
452-
val intent = Intent(this@DrawActivity, CountDownActivity::class.java).apply {
453-
putExtra(
454-
EXTRA_COURSE_DATA, CourseData(
455-
courseId = viewModel.uploadResult.value!!.data.id,
456-
publicCourseId = null,
457-
touchList = touchList,
458-
startLatLng = departureLatLng,
459-
departure = viewModel.departureName.value!!,
460-
distance = viewModel.distanceSum.value!!,
461-
image = captureUri.toString(),
462-
dataFrom = "fromDrawCourse"
463-
)
464-
)
451+
val courseData = CourseData(
452+
courseId = viewModel.uploadResult.value?.data?.id,
453+
publicCourseId = null,
454+
touchList = touchList,
455+
startLatLng = departureLatLng,
456+
departure = viewModel.departureName.value,
457+
distance = viewModel.distanceSum.value,
458+
image = captureUri.toString(),
459+
dataFrom = "fromDrawCourse"
460+
)
461+
if (courseData.courseId == null || courseData.departure == null || courseData.distance == null) {
462+
Toast.makeText(
463+
this@DrawActivity,
464+
ERROR_COURSE_NULL,
465+
Toast.LENGTH_LONG
466+
).show()
467+
} else {
468+
val intent = Intent(this@DrawActivity, CountDownActivity::class.java).apply {
469+
putExtra(EXTRA_COURSE_DATA, courseData)
470+
}
471+
startActivity(intent)
465472
}
466-
startActivity(intent)
467473
dialog.dismiss()
468474
}
469475

@@ -746,5 +752,7 @@ class DrawActivity :
746752
const val EXTRA_FRAGMENT_REPLACEMENT_DIRECTION = "fragmentReplacementDirection"
747753
const val CUSTOM_DEPARTURE = "내가 설정한 출발지"
748754
const val NOTIFY_LIMIT_MARKER_NUM = "마커는 20개까지 생성 가능합니다"
755+
756+
const val ERROR_COURSE_NULL = "Error: Course data is incomplete"
749757
}
750758
}

app/src/main/java/com/runnect/runnect/presentation/run/RunActivity.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -241,12 +241,12 @@ class RunActivity :
241241

242242
courseId = courseData.courseId
243243
publicCourseId = courseData.publicCourseId
244-
departure = courseData.departure
244+
departure = courseData.departure ?: ""
245245
startLatLng = courseData.startLatLng
246246
touchList = courseData.touchList
247247
captureUri = courseData.image
248248
dataFrom = courseData.dataFrom
249-
distanceSum = courseData.distance.toDouble().round(1)
249+
distanceSum = courseData.distance?.toDouble()?.round(1) ?: 0.0
250250

251251
viewModel.distanceSum.value = distanceSum
252252
}

0 commit comments

Comments
 (0)