From fc34efa6ad965636b3aba0383f69f03f267692f9 Mon Sep 17 00:00:00 2001 From: unam Date: Tue, 7 Nov 2023 09:45:50 +0900 Subject: [PATCH 1/6] =?UTF-8?q?[MOD]=20#258=20=EC=9E=A5=EC=86=8C=20?= =?UTF-8?q?=EA=B2=80=EC=83=89=20item=20=ED=84=B0=EC=B9=98=20=ED=95=A8?= =?UTF-8?q?=EC=88=98=EB=AA=85=20=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit SearchActivity에서 유사한 기능을 수행하는 함수들과 이름에 통일성을 부여하기 위함 --- .../java/com/runnect/runnect/util/callback/OnSearchClick.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/java/com/runnect/runnect/util/callback/OnSearchClick.kt b/app/src/main/java/com/runnect/runnect/util/callback/OnSearchClick.kt index ec73cfa7c..16987554d 100644 --- a/app/src/main/java/com/runnect/runnect/util/callback/OnSearchClick.kt +++ b/app/src/main/java/com/runnect/runnect/util/callback/OnSearchClick.kt @@ -3,5 +3,5 @@ package com.runnect.runnect.util.callback import com.runnect.runnect.data.dto.SearchResultEntity interface OnSearchClick { - fun selectItem(item: SearchResultEntity) + fun startSearchLocation(item: SearchResultEntity) } \ No newline at end of file From cdf5b8cc58c9533d1c530c58a51fe3fe2021d28f Mon Sep 17 00:00:00 2001 From: unam Date: Tue, 7 Nov 2023 09:46:25 +0900 Subject: [PATCH 2/6] =?UTF-8?q?[MOD]=20#258=20=EA=B0=99=EC=9D=80=20data=20?= =?UTF-8?q?type=EC=9D=84=20=EB=B0=9B=EB=8A=94=20bind=20=ED=95=A8=EC=88=98?= =?UTF-8?q?=20=ED=95=98=EB=82=98=EB=A1=9C=20=ED=86=B5=EC=9D=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../runnect/presentation/search/adapter/SearchAdapter.kt | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/app/src/main/java/com/runnect/runnect/presentation/search/adapter/SearchAdapter.kt b/app/src/main/java/com/runnect/runnect/presentation/search/adapter/SearchAdapter.kt index 274e80fec..578602ba9 100644 --- a/app/src/main/java/com/runnect/runnect/presentation/search/adapter/SearchAdapter.kt +++ b/app/src/main/java/com/runnect/runnect/presentation/search/adapter/SearchAdapter.kt @@ -18,11 +18,9 @@ class SearchAdapter(private val searchClickListener: OnSearchClick) : fun bindData(data: SearchResultEntity) { binding.searchResultEntity = data - } //여기도 dto 구독해서 ui 바인딩 하는 목적이라 낭비임. - fun bindViews(data: SearchResultEntity) { binding.root.setOnClickListener { - searchClickListener.selectItem(data) //data는 넣었고 구체적인 동작은 오버라이드할 때 + searchClickListener.startSearchLocation(data) } } @@ -35,7 +33,6 @@ class SearchAdapter(private val searchClickListener: OnSearchClick) : override fun onBindViewHolder(holder: SearchResultItemViewHolder, position: Int) { holder.bindData(currentList[position]) - holder.bindViews(currentList[position]) } class Differ : DiffUtil.ItemCallback() { From f14f3b33d401f0c84abe382292002b5d9bd747f7 Mon Sep 17 00:00:00 2001 From: unam Date: Tue, 7 Nov 2023 09:47:02 +0900 Subject: [PATCH 3/6] =?UTF-8?q?[MOD]=20#258=20SearchResultEntity=EC=97=90?= =?UTF-8?q?=EC=84=9C=20mode=20=EC=A0=9C=EA=B1=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../runnect/data/dto/SearchResultEntity.kt | 1 - .../runnect/presentation/draw/DrawActivity.kt | 20 +++++++++---- .../presentation/search/SearchActivity.kt | 30 +++++++++++-------- 3 files changed, 32 insertions(+), 19 deletions(-) diff --git a/app/src/main/java/com/runnect/runnect/data/dto/SearchResultEntity.kt b/app/src/main/java/com/runnect/runnect/data/dto/SearchResultEntity.kt index 76279cc67..38671873c 100644 --- a/app/src/main/java/com/runnect/runnect/data/dto/SearchResultEntity.kt +++ b/app/src/main/java/com/runnect/runnect/data/dto/SearchResultEntity.kt @@ -9,5 +9,4 @@ data class SearchResultEntity( val fullAddress: String, val name: String, val locationLatLng: LatLng?, - val mode: String ) : Parcelable diff --git a/app/src/main/java/com/runnect/runnect/presentation/draw/DrawActivity.kt b/app/src/main/java/com/runnect/runnect/presentation/draw/DrawActivity.kt index 835bd0ebc..641b43cf7 100644 --- a/app/src/main/java/com/runnect/runnect/presentation/draw/DrawActivity.kt +++ b/app/src/main/java/com/runnect/runnect/presentation/draw/DrawActivity.kt @@ -43,9 +43,10 @@ import com.runnect.runnect.databinding.BottomsheetRequireCourseNameBinding import com.runnect.runnect.presentation.MainActivity import com.runnect.runnect.presentation.countdown.CountDownActivity import com.runnect.runnect.presentation.login.LoginActivity +import com.runnect.runnect.presentation.search.SearchActivity.Companion.EXTRA_DEPARTURE_SET_MODE import com.runnect.runnect.presentation.state.UiState -import com.runnect.runnect.util.multipart.ContentUriRequestBody import com.runnect.runnect.util.extension.setActivityDialog +import com.runnect.runnect.util.multipart.ContentUriRequestBody import dagger.hilt.android.AndroidEntryPoint import kotlinx.android.synthetic.main.custom_dialog_make_course.view.btn_run import kotlinx.android.synthetic.main.custom_dialog_make_course.view.btn_storage @@ -77,6 +78,7 @@ class DrawActivity : private lateinit var animDown: Animation private lateinit var animUp: Animation private lateinit var searchResult: SearchResultEntity + private lateinit var departureSetMode: String private lateinit var captureUri: Uri private val coords = mutableListOf() @@ -108,7 +110,10 @@ class DrawActivity : private fun getSearchIntent() { searchResult = - intent.getParcelableExtra(EXTRA_SEARCH_RESULT) ?: throw Exception("데이터가 존재하지 않습니다.") + intent.getParcelableExtra(EXTRA_SEARCH_RESULT) + ?: throw Exception("unknown-search-result") + departureSetMode = intent.getStringExtra(EXTRA_DEPARTURE_SET_MODE) + ?: throw Exception("unknown-departure-set-mode") } private fun initMapView() { @@ -135,17 +140,19 @@ class DrawActivity : setLocationChangedListener() setCameraFinishedListener() } + private fun initMode() { - when (searchResult.mode) { + when (departureSetMode) { "searchLocation" -> initSearchLocationMode() "currentLocation" -> initCurrentLocationMode() "customLocation" -> initCustomLocationMode() } } + private fun initSearchLocationMode() { isSearchLocationMode = true - with(binding){ + with(binding) { tvGuide.isVisible = false btnDraw.text = CREATE_COURSE } @@ -168,6 +175,7 @@ class DrawActivity : } } } + private fun initCurrentLocationMode() { isCurrentLocationMode = true isMarkerAvailable = true @@ -180,6 +188,7 @@ class DrawActivity : hideDeparture() showDrawCourse() } + private fun initCustomLocationMode() { isCustomLocationMode = true @@ -245,6 +254,7 @@ class DrawActivity : val cameraPosition = naverMap.cameraPosition return cameraPosition.target // 중심 좌표 } + private fun setLocationChangedListener() { naverMap.addOnLocationChangeListener { location -> currentLocation = LatLng(location.latitude, location.longitude) @@ -256,7 +266,7 @@ class DrawActivity : //같은 scope 안에 넣었으니 setDepartureLatLng 다음에 drawCourse가 실행되는 것이 보장됨 //이때 isFirstInit의 초기값을 true로 줘서 최초 1회는 실행되게 하고 이후 drawCourse 내에서 isFirstInit 값을 false로 바꿔줌 //뒤의 조건을 안 달아주면 다른 mode에서는 버튼을 클릭하기도 전에 drawCourse()가 돌 거라 안 됨. - if(isFirstInit && isCurrentLocationMode){ + if (isFirstInit && isCurrentLocationMode) { drawCourse(departureLatLng = departureLatLng) } } diff --git a/app/src/main/java/com/runnect/runnect/presentation/search/SearchActivity.kt b/app/src/main/java/com/runnect/runnect/presentation/search/SearchActivity.kt index 335e3d1ea..10b1f0742 100644 --- a/app/src/main/java/com/runnect/runnect/presentation/search/SearchActivity.kt +++ b/app/src/main/java/com/runnect/runnect/presentation/search/SearchActivity.kt @@ -81,15 +81,6 @@ class SearchActivity : binding.recyclerViewSearch.adapter = searchAdapter } - override fun selectItem(item: SearchResultEntity) { - startActivity( - Intent(this, DrawActivity::class.java).apply { - addFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION) - putExtra(EXTRA_SEARCH_RESULT, item) //mode == "searchLocation" - } - ) - } - private fun showEmptyView() { with(binding) { ivNoSearchResult.isVisible = true @@ -187,26 +178,38 @@ class SearchActivity : } } - fun startCurrentLocation() { + override fun startSearchLocation(item: SearchResultEntity) { + startActivity( + Intent(this, DrawActivity::class.java).apply { + addFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION) + putExtra(EXTRA_SEARCH_RESULT, item) + putExtra(EXTRA_DEPARTURE_SET_MODE, "searchLocation") + } + ) + } + + private fun startCurrentLocation() { startActivity( Intent(this, DrawActivity::class.java).apply { addFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION) putExtra( EXTRA_SEARCH_RESULT, - SearchResultEntity(fullAddress = "", name = "", locationLatLng = null, mode = "currentLocation") + SearchResultEntity(fullAddress = "", name = "", locationLatLng = null) ) + putExtra(EXTRA_DEPARTURE_SET_MODE, "currentLocation") } ) } - fun startCustomLocation() { + private fun startCustomLocation() { startActivity( Intent(this, DrawActivity::class.java).apply { addFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION) putExtra( EXTRA_SEARCH_RESULT, - SearchResultEntity(fullAddress = "", name = "", locationLatLng = null, mode = "customLocation") + SearchResultEntity(fullAddress = "", name = "", locationLatLng = null) ) + putExtra(EXTRA_DEPARTURE_SET_MODE, "customLocation") } ) } @@ -228,6 +231,7 @@ class SearchActivity : companion object { const val EXTRA_SEARCH_RESULT = "searchResult" + const val EXTRA_DEPARTURE_SET_MODE = "departureSetMode" } } \ No newline at end of file From b1123b51a22153194e94cdfaab3f73a0c9608405 Mon Sep 17 00:00:00 2001 From: unam Date: Tue, 7 Nov 2023 09:53:24 +0900 Subject: [PATCH 4/6] =?UTF-8?q?[REFACTOR]=20#258=20startActivity=20?= =?UTF-8?q?=EA=B4=80=EB=A0=A8=20=EC=A4=91=EB=B3=B5=20=EC=BD=94=EB=93=9C=20?= =?UTF-8?q?=ED=95=98=EB=82=98=EC=9D=98=20=ED=95=A8=EC=88=98=EB=A1=9C=20?= =?UTF-8?q?=EB=8B=A8=EC=9D=BC=ED=99=94?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../presentation/search/SearchActivity.kt | 32 ++++++------------- 1 file changed, 10 insertions(+), 22 deletions(-) diff --git a/app/src/main/java/com/runnect/runnect/presentation/search/SearchActivity.kt b/app/src/main/java/com/runnect/runnect/presentation/search/SearchActivity.kt index 10b1f0742..654c6ae00 100644 --- a/app/src/main/java/com/runnect/runnect/presentation/search/SearchActivity.kt +++ b/app/src/main/java/com/runnect/runnect/presentation/search/SearchActivity.kt @@ -178,40 +178,28 @@ class SearchActivity : } } - override fun startSearchLocation(item: SearchResultEntity) { + private fun setDeparture(mode: String, item: SearchResultEntity) { startActivity( Intent(this, DrawActivity::class.java).apply { addFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION) putExtra(EXTRA_SEARCH_RESULT, item) - putExtra(EXTRA_DEPARTURE_SET_MODE, "searchLocation") + putExtra(EXTRA_DEPARTURE_SET_MODE, mode) } ) } + override fun startSearchLocation(item: SearchResultEntity) { + setDeparture("searchLocation", item) + } + private fun startCurrentLocation() { - startActivity( - Intent(this, DrawActivity::class.java).apply { - addFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION) - putExtra( - EXTRA_SEARCH_RESULT, - SearchResultEntity(fullAddress = "", name = "", locationLatLng = null) - ) - putExtra(EXTRA_DEPARTURE_SET_MODE, "currentLocation") - } - ) + val emptyItem = SearchResultEntity(fullAddress = "", name = "", locationLatLng = null) + setDeparture("currentLocation", emptyItem) } private fun startCustomLocation() { - startActivity( - Intent(this, DrawActivity::class.java).apply { - addFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION) - putExtra( - EXTRA_SEARCH_RESULT, - SearchResultEntity(fullAddress = "", name = "", locationLatLng = null) - ) - putExtra(EXTRA_DEPARTURE_SET_MODE, "customLocation") - } - ) + val emptyItem = SearchResultEntity(fullAddress = "", name = "", locationLatLng = null) + setDeparture("customLocation", emptyItem) } //키보드 밖 터치 시, 키보드 내림 From ebe7eb6ecdf5720eea50594622885ee2d85ba9bd Mon Sep 17 00:00:00 2001 From: unam Date: Tue, 7 Nov 2023 10:08:39 +0900 Subject: [PATCH 5/6] =?UTF-8?q?[MOD]=20#258=20RepositoryImpl=EC=97=90=20da?= =?UTF-8?q?ta=20class=20=EC=88=98=EC=A0=95=EC=82=AC=ED=95=AD=20=EB=B0=98?= =?UTF-8?q?=EC=98=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../runnect/data/repository/DepartureSearchRepositoryImpl.kt | 1 - 1 file changed, 1 deletion(-) diff --git a/app/src/main/java/com/runnect/runnect/data/repository/DepartureSearchRepositoryImpl.kt b/app/src/main/java/com/runnect/runnect/data/repository/DepartureSearchRepositoryImpl.kt index 93f2801e5..5692ca2aa 100644 --- a/app/src/main/java/com/runnect/runnect/data/repository/DepartureSearchRepositoryImpl.kt +++ b/app/src/main/java/com/runnect/runnect/data/repository/DepartureSearchRepositoryImpl.kt @@ -22,7 +22,6 @@ class DepartureSearchRepositoryImpl @Inject constructor(private val departureSou fullAddress = makeMainAddress(it), name = it.name ?: "", locationLatLng = LatLng(it.noorLat.toDouble(), it.noorLon.toDouble()), - mode = "searchLocation" //현위치, 지도에서 출발과 구분하기 위한 식별자 ) } return changedData From 363283f01f69f4448ed699f5608fc7fbdd526086 Mon Sep 17 00:00:00 2001 From: unam Date: Thu, 16 Nov 2023 16:12:48 +0900 Subject: [PATCH 6/6] =?UTF-8?q?[MOD]=20#258=20=ED=95=A8=EC=88=98=20?= =?UTF-8?q?=EB=A7=A4=EA=B0=9C=EB=B3=80=EC=88=98=20=EA=B8=B0=EB=B3=B8?= =?UTF-8?q?=EA=B0=92=20=EC=A7=80=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../runnect/presentation/search/SearchActivity.kt | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/app/src/main/java/com/runnect/runnect/presentation/search/SearchActivity.kt b/app/src/main/java/com/runnect/runnect/presentation/search/SearchActivity.kt index 654c6ae00..098814066 100644 --- a/app/src/main/java/com/runnect/runnect/presentation/search/SearchActivity.kt +++ b/app/src/main/java/com/runnect/runnect/presentation/search/SearchActivity.kt @@ -178,28 +178,26 @@ class SearchActivity : } } - private fun setDeparture(mode: String, item: SearchResultEntity) { + private fun navigateToCourseDrawScreen(mode: String, searchResult: SearchResultEntity? = null) { startActivity( Intent(this, DrawActivity::class.java).apply { addFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION) - putExtra(EXTRA_SEARCH_RESULT, item) + putExtra(EXTRA_SEARCH_RESULT, searchResult) putExtra(EXTRA_DEPARTURE_SET_MODE, mode) } ) } - override fun startSearchLocation(item: SearchResultEntity) { - setDeparture("searchLocation", item) + override fun startSearchLocation(data: SearchResultEntity) { + navigateToCourseDrawScreen(mode = "searchLocation", searchResult = data) } private fun startCurrentLocation() { - val emptyItem = SearchResultEntity(fullAddress = "", name = "", locationLatLng = null) - setDeparture("currentLocation", emptyItem) + navigateToCourseDrawScreen(mode = "currentLocation") } private fun startCustomLocation() { - val emptyItem = SearchResultEntity(fullAddress = "", name = "", locationLatLng = null) - setDeparture("customLocation", emptyItem) + navigateToCourseDrawScreen(mode = "customLocation") } //키보드 밖 터치 시, 키보드 내림