From 862a4def07b616138ce772d9ae4e104faae1f5c4 Mon Sep 17 00:00:00 2001
From: 40food <40food@naver.com>
Date: Tue, 6 Feb 2024 13:12:08 +0900
Subject: [PATCH] =?UTF-8?q?chore:=20=EC=9D=B8=ED=8A=B8=EB=A1=9C,=20?=
=?UTF-8?q?=EB=A1=9C=EA=B7=B8=EC=9D=B8,=20=ED=9A=8C=EC=9B=90=EA=B0=80?=
=?UTF-8?q?=EC=9E=85=20=EC=88=98=EC=A0=95?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
app/build.gradle | 3 +-
app/src/main/AndroidManifest.xml | 18 +-
.../java/com/umc/ttoklip/data/api/KakaoApi.kt | 16 +
.../umc/ttoklip/data/model/KakaoResponse.kt | 15 +
.../main/java/com/umc/ttoklip/di/appModul.kt | 30 ++
.../presentation/intro/IntroActivity.kt | 18 +-
.../presentation/intro/IntroFragment.kt | 19 +-
.../presentation/login/LoginActivity.kt | 42 +--
.../signup/DirectLocationActivity.kt | 45 +++
.../signup/DirectLocationRVAdapter.kt | 27 ++
.../presentation/signup/LocationActivity.kt | 179 +++++++++++
.../presentation/signup/SignupActivity.kt | 22 +-
.../signup/fragments/Signup1Fragment.kt | 57 +++-
.../signup/fragments/Signup2Fragment.kt | 95 +++++-
.../signup/fragments/Signup3Fragment.kt | 109 ++++++-
.../signup/fragments/Signup4Fragment.kt | 92 +++++-
.../signup/fragments/Signup5Fragment.kt | 101 +++++++
.../signup/fragments/SignupTermFragment.kt | 25 ++
.../main/res/drawable/ic_checkpre_off_16.xml | 2 +-
.../main/res/drawable/ic_checkpre_on_16.xml | 2 +-
app/src/main/res/drawable/ic_kakaotalk_18.xml | 10 +
app/src/main/res/drawable/ic_kakaotalk_46.xml | 24 --
app/src/main/res/drawable/ic_naver_16.xml | 9 +
app/src/main/res/drawable/ic_naver_46.xml | 12 -
app/src/main/res/drawable/ic_ttoklip1_78.xml | 10 +
app/src/main/res/drawable/ic_ttoklip1_81.xml | 10 -
app/src/main/res/drawable/ic_ttoklip2_63.xml | 19 ++
app/src/main/res/drawable/ic_ttoklip2_64.xml | 10 -
app/src/main/res/drawable/item_camera.xml | 14 +
.../main/res/drawable/item_pwcheck_off.xml | 9 +
app/src/main/res/drawable/item_pwcheck_on.xml | 9 +
app/src/main/res/drawable/oval_double.xml | 28 ++
...val_fill_strok_1.xml => oval_stroke_1.xml} | 4 +-
.../drawable/rectangle_corner_100_black.xml | 6 +
.../drawable/rectangle_corner_10_yellow.xml | 6 +
.../rectangle_corner_20_stroke_1_gray20.xml | 6 +
.../res/layout/activity_direct_location.xml | 70 +++++
app/src/main/res/layout/activity_intro.xml | 22 +-
app/src/main/res/layout/activity_location.xml | 282 ++++++++++--------
app/src/main/res/layout/activity_login.xml | 243 ++++-----------
app/src/main/res/layout/activity_signup.xml | 36 ++-
app/src/main/res/layout/activity_splash.xml | 4 +-
app/src/main/res/layout/fragment_intro.xml | 26 +-
app/src/main/res/layout/fragment_signup1.xml | 159 +++++-----
app/src/main/res/layout/fragment_signup2.xml | 231 +++++++-------
app/src/main/res/layout/fragment_signup3.xml | 167 ++++++-----
app/src/main/res/layout/fragment_signup4.xml | 249 +++++++++-------
app/src/main/res/layout/fragment_signup5.xml | 201 +++++++++++++
.../main/res/layout/fragment_signup_term.xml | 54 ++++
app/src/main/res/layout/item_address.xml | 31 ++
app/src/main/res/navigation/signup_graph.xml | 54 ++--
app/src/main/res/values/colors.xml | 3 +
app/src/main/res/values/strings.xml | 8 +
app/src/main/res/values/style.xml | 20 ++
54 files changed, 2076 insertions(+), 887 deletions(-)
create mode 100644 app/src/main/java/com/umc/ttoklip/data/api/KakaoApi.kt
create mode 100644 app/src/main/java/com/umc/ttoklip/data/model/KakaoResponse.kt
create mode 100644 app/src/main/java/com/umc/ttoklip/presentation/signup/DirectLocationActivity.kt
create mode 100644 app/src/main/java/com/umc/ttoklip/presentation/signup/DirectLocationRVAdapter.kt
create mode 100644 app/src/main/java/com/umc/ttoklip/presentation/signup/LocationActivity.kt
create mode 100644 app/src/main/java/com/umc/ttoklip/presentation/signup/fragments/Signup5Fragment.kt
create mode 100644 app/src/main/java/com/umc/ttoklip/presentation/signup/fragments/SignupTermFragment.kt
create mode 100644 app/src/main/res/drawable/ic_kakaotalk_18.xml
delete mode 100644 app/src/main/res/drawable/ic_kakaotalk_46.xml
create mode 100644 app/src/main/res/drawable/ic_naver_16.xml
delete mode 100644 app/src/main/res/drawable/ic_naver_46.xml
create mode 100644 app/src/main/res/drawable/ic_ttoklip1_78.xml
delete mode 100644 app/src/main/res/drawable/ic_ttoklip1_81.xml
create mode 100644 app/src/main/res/drawable/ic_ttoklip2_63.xml
delete mode 100644 app/src/main/res/drawable/ic_ttoklip2_64.xml
create mode 100644 app/src/main/res/drawable/item_camera.xml
create mode 100644 app/src/main/res/drawable/item_pwcheck_off.xml
create mode 100644 app/src/main/res/drawable/item_pwcheck_on.xml
create mode 100644 app/src/main/res/drawable/oval_double.xml
rename app/src/main/res/drawable/{oval_fill_strok_1.xml => oval_stroke_1.xml} (66%)
create mode 100644 app/src/main/res/drawable/rectangle_corner_100_black.xml
create mode 100644 app/src/main/res/drawable/rectangle_corner_10_yellow.xml
create mode 100644 app/src/main/res/drawable/rectangle_corner_20_stroke_1_gray20.xml
create mode 100644 app/src/main/res/layout/activity_direct_location.xml
create mode 100644 app/src/main/res/layout/fragment_signup5.xml
create mode 100644 app/src/main/res/layout/fragment_signup_term.xml
create mode 100644 app/src/main/res/layout/item_address.xml
diff --git a/app/build.gradle b/app/build.gradle
index be10f12a..73b3aed4 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -107,7 +107,8 @@ dependencies {
implementation 'com.google.android.flexbox:flexbox:3.0.0'
//naver map
- //implementation "com.naver.maps:map-sdk:3.16.2"
+ implementation "com.naver.maps:map-sdk:3.17.0"
+ implementation "com.google.android.gms:play-services-location:21.1.0"
}
kapt {
correctErrorTypes true
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 54c12998..b812a4a0 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -7,6 +7,7 @@
+
+
+
+
+
-
-
-
-
-
-
-
-
-
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/umc/ttoklip/data/model/KakaoResponse.kt b/app/src/main/java/com/umc/ttoklip/data/model/KakaoResponse.kt
new file mode 100644
index 00000000..3974d967
--- /dev/null
+++ b/app/src/main/java/com/umc/ttoklip/data/model/KakaoResponse.kt
@@ -0,0 +1,15 @@
+package com.umc.ttoklip.data.model
+
+class KakaoResponse{
+ data class ResultSearchKeyword(
+ var documents: List // 검색 결과
+ )
+ data class Place(
+ var id: String, // 장소 ID
+ var place_name: String, // 장소명, 업체명
+ var address_name: String, // 전체 지번 주소
+ var road_address_name: String, // 전체 도로명 주소
+ var x: String, // X 좌표값 혹은 longitude
+ var y: String // Y 좌표값 혹은 latitude
+ )
+}
diff --git a/app/src/main/java/com/umc/ttoklip/di/appModul.kt b/app/src/main/java/com/umc/ttoklip/di/appModul.kt
index 9739ad39..034f2d17 100644
--- a/app/src/main/java/com/umc/ttoklip/di/appModul.kt
+++ b/app/src/main/java/com/umc/ttoklip/di/appModul.kt
@@ -1,2 +1,32 @@
package com.umc.ttoklip.di
+import com.umc.ttoklip.R
+import com.umc.ttoklip.data.api.KakaoApi
+import dagger.Module
+import dagger.hilt.InstallIn
+import dagger.hilt.components.SingletonComponent
+import retrofit2.Retrofit
+import retrofit2.converter.gson.GsonConverterFactory
+import retrofit2.create
+
+@Module
+@InstallIn(SingletonComponent::class)
+object appModul {
+ class kakaoAddress {
+ companion object {
+ var BASE_URL = R.string.kakao.toString()
+ var API_KEY = R.string.kakao_api_key.toString()
+ }
+
+ object kakaoApiRetrofitClient {
+ private val retrofit: Retrofit.Builder by lazy {
+ Retrofit.Builder()
+ .baseUrl(BASE_URL)
+ .addConverterFactory(GsonConverterFactory.create())
+ }
+ val apiService: KakaoApi by lazy {
+ retrofit.build().create(KakaoApi::class.java)
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/umc/ttoklip/presentation/intro/IntroActivity.kt b/app/src/main/java/com/umc/ttoklip/presentation/intro/IntroActivity.kt
index 1e0a190a..47226c05 100644
--- a/app/src/main/java/com/umc/ttoklip/presentation/intro/IntroActivity.kt
+++ b/app/src/main/java/com/umc/ttoklip/presentation/intro/IntroActivity.kt
@@ -11,15 +11,15 @@ class IntroActivity:BaseActivity(R.layout.activity_intro){
override fun initView() {
binding.introIntroVp.apply {
adapter=IntroVPAdapter(this@IntroActivity,3)
- registerOnPageChangeCallback(object:ViewPager2.OnPageChangeCallback(){
- override fun onPageSelected(position: Int) {
- super.onPageSelected(position)
- when(position){
- 2->binding.introNextBtn.text="똑립 시작하기"
- else->binding.introNextBtn.text="다음"
- }
- }
- })
+// registerOnPageChangeCallback(object:ViewPager2.OnPageChangeCallback(){
+// override fun onPageSelected(position: Int) {
+// super.onPageSelected(position)
+// when(position){
+// 2->binding.introNextBtn.text="똑립 시작하기"
+// else->binding.introNextBtn.text="다음"
+// }
+// }
+// })
}
binding.introIndicator.attachTo(binding.introIntroVp)
diff --git a/app/src/main/java/com/umc/ttoklip/presentation/intro/IntroFragment.kt b/app/src/main/java/com/umc/ttoklip/presentation/intro/IntroFragment.kt
index 99c44ca2..5dde2a69 100644
--- a/app/src/main/java/com/umc/ttoklip/presentation/intro/IntroFragment.kt
+++ b/app/src/main/java/com/umc/ttoklip/presentation/intro/IntroFragment.kt
@@ -1,6 +1,10 @@
package com.umc.ttoklip.presentation.intro
+import android.graphics.Typeface
import android.os.Bundle
+import android.text.Spannable
+import android.text.SpannableStringBuilder
+import android.text.style.StyleSpan
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
@@ -17,13 +21,16 @@ class IntroFragment(val position:Int): Fragment() {
binding=FragmentIntroBinding.inflate(inflater,container,false)
when (position){
- 0->{binding.itemIntroTitleTv.text="우리, 꿀팁 공유해요!"
- binding.itemIntroDescTv.text="독립생활을 하는데 어려운 점을 공유하고\n도움을 주며 해결해봐요"
+ 0->{val spannable=SpannableStringBuilder("어려움과 도움을 함께\n독립생활의 꿀팁공유")
+ spannable.setSpan(StyleSpan(Typeface.BOLD),11,22, Spannable.SPAN_EXCLUSIVE_INCLUSIVE)
+ binding.itemIntroTitleTv.text=spannable
/**인앱화면 연결 필요**/}
- 1->{binding.itemIntroTitleTv.text="오늘은 또 어떤 정보가?"
- binding.itemIntroDescTv.text="독립생활을 하는데 필요한 유용한\n정보들을 받아봐요"}
- else->{binding.itemIntroTitleTv.text="우리 동네 안에서 서로서로"
- binding.itemIntroDescTv.text="우리 동네 똑립이들과 친해지고, 공구하고,\n음식 배달비도 아껴봐요"}
+ 1->{val spannable=SpannableStringBuilder("자취에 도움되는\n최신뉴스를 한눈에")
+ spannable.setSpan(StyleSpan(Typeface.BOLD),8,13, Spannable.SPAN_EXCLUSIVE_INCLUSIVE)
+ binding.itemIntroTitleTv.text=spannable}
+ else->{val spannable=SpannableStringBuilder("혼자서는 비싸,\n동네친구들과 함께")
+ spannable.setSpan(StyleSpan(Typeface.BOLD),15,18, Spannable.SPAN_EXCLUSIVE_INCLUSIVE)
+ binding.itemIntroTitleTv.text=spannable}
}
return binding.root
diff --git a/app/src/main/java/com/umc/ttoklip/presentation/login/LoginActivity.kt b/app/src/main/java/com/umc/ttoklip/presentation/login/LoginActivity.kt
index 3c95448b..68ee4e9f 100644
--- a/app/src/main/java/com/umc/ttoklip/presentation/login/LoginActivity.kt
+++ b/app/src/main/java/com/umc/ttoklip/presentation/login/LoginActivity.kt
@@ -2,6 +2,8 @@ package com.umc.ttoklip.presentation.login
import android.content.Intent
import android.content.SharedPreferences
+import android.text.InputType
+import android.view.View
import com.umc.ttoklip.R
import com.umc.ttoklip.databinding.ActivityLoginBinding
import com.umc.ttoklip.presentation.MainActivity
@@ -11,48 +13,16 @@ import com.umc.ttoklip.presentation.signup.SignupActivity
class LoginActivity:BaseActivity(R.layout.activity_login) {
private var isSaveId:Boolean=false
+ private var isShowPw:Boolean=false
override fun initView() {
- val spf=getSharedPreferences("id", MODE_PRIVATE)
- loadSaveId(spf)
- binding.loginLoginBtn.setOnClickListener {
- setSaveId(isSaveId,spf)
+ binding.loginNaverBtn.setOnClickListener {
+ //임시로 연결
startActivity(Intent(this, MainActivity::class.java))
}
- binding.loginSignupBtn.setOnClickListener {
+ binding.loginKakaoBtn.setOnClickListener {
startActivity(Intent(this, SignupActivity::class.java))
}
- binding.loginSaveIdIv.setOnClickListener {
- setSaveIdStatus(!isSaveId)
- }
- }
-
- private fun loadSaveId(spf: SharedPreferences) {
- isSaveId=spf.getBoolean("saveIdCheck",false)
- setSaveIdStatus(isSaveId)
- binding.loginIdEt.setText(spf.getString("idString",""))
- }
- private fun setSaveId(isSaveId: Boolean, spf: SharedPreferences){
- val editor=spf.edit()
- if (isSaveId){//나중에 로그인 ok도 조건으로 달기
- editor.putBoolean("saveIdCheck",true)
- editor.putString("idString",binding.loginIdEt.text.toString().trim())
- editor.apply()
- }else{
- editor.putBoolean("saveIdCheck",false)
- editor.remove("idString")
- editor.apply()
- }
- }
-
- private fun setSaveIdStatus(isSaveId: Boolean) {
- if(isSaveId){
- this.isSaveId=true
- binding.loginSaveIdIv.setImageResource(R.drawable.ic_check_on_20)
- }else{
- this.isSaveId=false
- binding.loginSaveIdIv.setImageResource(R.drawable.ic_check_off_20)
- }
}
override fun onBackPressed() {
diff --git a/app/src/main/java/com/umc/ttoklip/presentation/signup/DirectLocationActivity.kt b/app/src/main/java/com/umc/ttoklip/presentation/signup/DirectLocationActivity.kt
new file mode 100644
index 00000000..642b157a
--- /dev/null
+++ b/app/src/main/java/com/umc/ttoklip/presentation/signup/DirectLocationActivity.kt
@@ -0,0 +1,45 @@
+package com.umc.ttoklip.presentation.signup
+
+import android.util.Log
+import androidx.lifecycle.MutableLiveData
+import com.umc.ttoklip.R
+import com.umc.ttoklip.data.model.KakaoResponse
+import com.umc.ttoklip.databinding.ActivityDirectLocationBinding
+import com.umc.ttoklip.di.appModul
+import com.umc.ttoklip.presentation.base.BaseActivity
+import retrofit2.Call
+import retrofit2.Response
+
+class DirectLocationActivity :
+ BaseActivity(R.layout.activity_direct_location) {
+ private val kakaoInfo = appModul.kakaoAddress.Companion
+ private val kakaoApi = appModul.kakaoAddress.kakaoApiRetrofitClient.apiService
+
+ override fun initView() {
+ callKakaoSearch("서울시 관악구 조원로12길 28")
+ }
+
+ fun callKakaoSearch(address: String) {
+ val kakao = MutableLiveData()
+ kakaoApi.getSearchKeyword(kakaoInfo.API_KEY, query = address)
+ .enqueue(object : retrofit2.Callback {
+ override fun onResponse(
+ call: Call,
+ response: Response
+ ) {
+ kakao.value = response.body()
+ Log.i("kakao", "${kakao.value!!.documents[0].address_name}")
+ }
+
+ override fun onFailure(
+ call: Call,
+ t: Throwable
+ ) {
+ t.printStackTrace()
+ }
+ })
+ }
+
+ override fun initObserver() {
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/umc/ttoklip/presentation/signup/DirectLocationRVAdapter.kt b/app/src/main/java/com/umc/ttoklip/presentation/signup/DirectLocationRVAdapter.kt
new file mode 100644
index 00000000..83913cd2
--- /dev/null
+++ b/app/src/main/java/com/umc/ttoklip/presentation/signup/DirectLocationRVAdapter.kt
@@ -0,0 +1,27 @@
+package com.umc.ttoklip.presentation.signup
+
+import android.view.LayoutInflater
+import android.view.ViewGroup
+import androidx.recyclerview.widget.RecyclerView
+import com.umc.ttoklip.data.model.KakaoResponse
+import com.umc.ttoklip.databinding.ItemAddressBinding
+
+class DirectLocationRVAdapter(private val addressList:List):RecyclerView.Adapter() {
+ inner class ViewHolder(val binding:ItemAddressBinding):RecyclerView.ViewHolder(binding.root){
+ fun bind(place:KakaoResponse.Place){
+ binding.itemAddressTitleTv.text=place.place_name
+ binding.itemAddressDetailTv.text=place.address_name
+ }
+ }
+
+ override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolder {
+ val binding:ItemAddressBinding=ItemAddressBinding.inflate(LayoutInflater.from(parent.context),parent,false)
+ return ViewHolder(binding)
+ }
+
+ override fun getItemCount(): Int=addressList.size
+
+ override fun onBindViewHolder(holder: ViewHolder, position: Int) {
+ holder.bind(addressList[position])
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/umc/ttoklip/presentation/signup/LocationActivity.kt b/app/src/main/java/com/umc/ttoklip/presentation/signup/LocationActivity.kt
new file mode 100644
index 00000000..c3c81e16
--- /dev/null
+++ b/app/src/main/java/com/umc/ttoklip/presentation/signup/LocationActivity.kt
@@ -0,0 +1,179 @@
+package com.umc.ttoklip.presentation.signup
+
+import android.Manifest
+import android.content.pm.PackageManager
+import android.location.Address
+import android.location.Geocoder
+import android.os.Build
+import android.widget.SeekBar
+import androidx.core.app.ActivityCompat
+import androidx.core.content.ContextCompat
+import com.naver.maps.map.LocationTrackingMode
+import com.naver.maps.map.MapFragment
+import com.naver.maps.map.NaverMap
+import com.naver.maps.map.OnMapReadyCallback
+import com.naver.maps.map.UiSettings
+import com.naver.maps.map.overlay.OverlayImage
+import com.naver.maps.map.util.FusedLocationSource
+import com.umc.ttoklip.R
+import com.umc.ttoklip.databinding.ActivityLocationBinding
+import com.umc.ttoklip.presentation.base.BaseActivity
+import java.util.Locale
+
+class LocationActivity :
+ BaseActivity(R.layout.activity_location),
+ OnMapReadyCallback {
+
+ private lateinit var naverMap: NaverMap
+ private lateinit var locationSource: FusedLocationSource
+ private lateinit var uiSetting: UiSettings
+ private lateinit var address: String
+ private val LOCATION_PERMISSION_REQUEST_CODE: Int = 5000
+ private val PERMISSIONS = arrayOf(
+ Manifest.permission.ACCESS_FINE_LOCATION,
+ Manifest.permission.ACCESS_COARSE_LOCATION
+ )
+
+ private lateinit var range: String
+
+
+ override fun initView() {
+ if (!hasPermission()) {
+ ActivityCompat.requestPermissions(this, PERMISSIONS, LOCATION_PERMISSION_REQUEST_CODE)
+ }
+ initMapView()
+
+ range = getString(R.string.range_500m)
+ binding.locationRangeDescTv.text =
+ getString(R.string.range_setting_format, range)
+
+ binding.locationRange1Tv.setOnClickListener { setRange500m() }
+ binding.locationRange2Tv.setOnClickListener { setRange1km() }
+ binding.locationRange3Tv.setOnClickListener { setRange15km() }
+
+ binding.locationRangeBar.setOnSeekBarChangeListener(object :
+ SeekBar.OnSeekBarChangeListener {
+ override fun onProgressChanged(seekBar: SeekBar?, progress: Int, fromUser: Boolean) {
+ if (progress <= RANGE_500M_PROGRESS) {
+ setRange500m()
+ } else if (progress <= RANGE_1KM_PROGRESS) {
+ setRange1km()
+ } else {
+ setRange15km()
+ }
+ }
+
+ override fun onStartTrackingTouch(seekBar: SeekBar?) = Unit
+ override fun onStopTrackingTouch(seekBar: SeekBar?) {
+ seekBar?.let {
+ if (it.progress <= RANGE_500M_PROGRESS) {
+ it.progress = RANGE_500M_PROGRESS
+ setRange500m()
+ } else if (it.progress <= RANGE_1KM_PROGRESS) {
+ it.progress = RANGE_1KM_PROGRESS
+ setRange1km()
+ } else {
+ it.progress = RANGE_15kM_PROGRESS
+ setRange15km()
+ }
+ }
+ }
+ })
+ }
+
+ override fun onMapReady(p0: NaverMap) {
+ this.naverMap = p0
+ uiSetting = naverMap.uiSettings
+ uiSetting.isLocationButtonEnabled = false
+ binding.locationNowLocation.map = naverMap
+
+ naverMap.locationSource = locationSource
+ naverMap.uiSettings.isLocationButtonEnabled = true
+ naverMap.locationTrackingMode = LocationTrackingMode.Follow
+ naverMap.locationOverlay.subIcon =
+ OverlayImage.fromResource(com.naver.maps.map.R.drawable.navermap_location_overlay_icon)
+
+ naverMap.addOnLocationChangeListener {
+ getAddress(
+ it.latitude,
+ it.longitude
+ )
+ }
+ }
+
+ private fun hasPermission(): Boolean {
+ for (permission in PERMISSIONS) {
+ if (ContextCompat.checkSelfPermission(this, permission)
+ != PackageManager.PERMISSION_GRANTED
+ ) {
+ return false
+ }
+ }
+ return true
+ }
+
+ private fun initMapView() {
+ val fm = supportFragmentManager
+ val mapFragment = fm.findFragmentById(R.id.location_map) as MapFragment?
+ ?: MapFragment.newInstance().also {
+ fm.beginTransaction().add(R.id.location_map, it).commit()
+ }
+ mapFragment.getMapAsync(this)
+ locationSource = FusedLocationSource(this, LOCATION_PERMISSION_REQUEST_CODE)
+ }
+
+ private fun getAddress(latitude: Double, longitude: Double) {
+ val geocoder = Geocoder(applicationContext, Locale.KOREAN)
+ if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) {
+ val addressList: List? = geocoder.getFromLocation(latitude, longitude, 1)
+ if (addressList != null && addressList.isNotEmpty()) {
+ val address: Address = addressList[0]
+ val spliteAddr = address.getAddressLine(0).split(" ")
+ this.address = spliteAddr[1] + " " + spliteAddr[2] + " " + spliteAddr[3]
+ }
+ } else {
+ val addresses = geocoder.getFromLocation(latitude, longitude, 1)
+ if (addresses != null) {
+ val spliteAddr = addresses[0].getAddressLine(0).split(" ")
+ this.address = spliteAddr[1] + " " + spliteAddr[2] + " " + spliteAddr[3]
+ }
+ }
+ binding.locationMytownDetailTv.text = address
+ }
+
+ override fun initObserver() {
+ }
+
+ private fun setRange15km() {
+ range = getString(R.string.range_1_5km)
+ binding.locationRangeBar.progress = RANGE_15kM_PROGRESS
+ binding.locationRange1Tv.setTextColor(ContextCompat.getColor(this, R.color.gray40))
+ binding.locationRange2Tv.setTextColor(ContextCompat.getColor(this, R.color.gray40))
+ binding.locationRange3Tv.setTextColor(ContextCompat.getColor(this, R.color.black))
+ binding.locationRangeDescTv.text = getString(R.string.range_setting_format, range)
+ }
+
+ private fun setRange1km() {
+ range = getString(R.string.range_1km)
+ binding.locationRangeBar.progress = RANGE_1KM_PROGRESS
+ binding.locationRange1Tv.setTextColor(ContextCompat.getColor(this, R.color.gray40))
+ binding.locationRange2Tv.setTextColor(ContextCompat.getColor(this, R.color.black))
+ binding.locationRange3Tv.setTextColor(ContextCompat.getColor(this, R.color.gray40))
+ binding.locationRangeDescTv.text = getString(R.string.range_setting_format, range)
+ }
+
+ private fun setRange500m() {
+ range = getString(R.string.range_500m)
+ binding.locationRangeBar.progress = RANGE_500M_PROGRESS
+ binding.locationRange1Tv.setTextColor(ContextCompat.getColor(this, R.color.black))
+ binding.locationRange2Tv.setTextColor(ContextCompat.getColor(this, R.color.gray40))
+ binding.locationRange3Tv.setTextColor(ContextCompat.getColor(this, R.color.gray40))
+ binding.locationRangeDescTv.text = getString(R.string.range_setting_format, range)
+ }
+
+ companion object {
+ private const val RANGE_500M_PROGRESS = 33
+ private const val RANGE_1KM_PROGRESS = 67
+ private const val RANGE_15kM_PROGRESS = 100
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/umc/ttoklip/presentation/signup/SignupActivity.kt b/app/src/main/java/com/umc/ttoklip/presentation/signup/SignupActivity.kt
index ca657d08..01cab99f 100644
--- a/app/src/main/java/com/umc/ttoklip/presentation/signup/SignupActivity.kt
+++ b/app/src/main/java/com/umc/ttoklip/presentation/signup/SignupActivity.kt
@@ -1,5 +1,6 @@
package com.umc.ttoklip.presentation.signup
+import android.view.View
import androidx.fragment.app.Fragment
import androidx.navigation.NavController
import androidx.navigation.Navigation
@@ -8,21 +9,32 @@ import androidx.navigation.fragment.findNavController
import com.umc.ttoklip.R
import com.umc.ttoklip.databinding.ActivitySignupBinding
import com.umc.ttoklip.presentation.base.BaseActivity
+import com.umc.ttoklip.presentation.mypage.InputIndependentCareerDialogFragment
+import dagger.hilt.EntryPoint
+import dagger.hilt.android.AndroidEntryPoint
+@AndroidEntryPoint
class SignupActivity:BaseActivity(R.layout.activity_signup) {
override fun initView() {
val navHostFragment = supportFragmentManager.findFragmentById(R.id.signup_frm)as NavHostFragment
var navController=navHostFragment.findNavController()
- binding.loginBackIb.setOnClickListener {
+ binding.signupBackIb.setOnClickListener {
+ navController.popBackStack()
+ }
+ binding.signupCancelIb.setOnClickListener {
+ binding.signupBackIb.visibility= View.VISIBLE
+ binding.signupBackIb.visibility= View.GONE
navController.popBackStack()
}
}
- override fun initObserver() {
- }
+ override fun initObserver()=Unit
- fun setTitle(title:String,step:Int){
- binding.loginTitleTv.text=title
+ fun setProg(step:Int){
binding.signupProgressbar.progress=step
}
+ fun updateButtonForTerm(){
+ binding.signupBackIb.visibility= View.GONE
+ binding.signupBackIb.visibility= View.VISIBLE
+ }
}
diff --git a/app/src/main/java/com/umc/ttoklip/presentation/signup/fragments/Signup1Fragment.kt b/app/src/main/java/com/umc/ttoklip/presentation/signup/fragments/Signup1Fragment.kt
index 9278c056..2011c5ec 100644
--- a/app/src/main/java/com/umc/ttoklip/presentation/signup/fragments/Signup1Fragment.kt
+++ b/app/src/main/java/com/umc/ttoklip/presentation/signup/fragments/Signup1Fragment.kt
@@ -1,23 +1,72 @@
package com.umc.ttoklip.presentation.signup.fragments
-import android.content.Context
-import androidx.activity.OnBackPressedCallback
+import android.graphics.Color
+import android.os.Bundle
+import android.view.View
+import androidx.core.content.ContextCompat
+import androidx.core.widget.addTextChangedListener
+import androidx.fragment.app.viewModels
import androidx.navigation.fragment.findNavController
import com.umc.ttoklip.R
import com.umc.ttoklip.databinding.FragmentSignup1Binding
+import com.umc.ttoklip.generated.callback.OnClickListener
import com.umc.ttoklip.presentation.base.BaseFragment
import com.umc.ttoklip.presentation.signup.SignupActivity
class Signup1Fragment: BaseFragment(R.layout.fragment_signup1) {
+ var sendbutton:Boolean=false
+ var nextbutton:Boolean=false
+
override fun initObserver() {
}
override fun initView() {
val activity=activity as SignupActivity
- activity?.setTitle("1단계 - 개인정보 입력",1)
+ activity?.setProg(1)
+ binding.signup1EmailEt.addTextChangedListener {
+ val pattern=android.util.Patterns.EMAIL_ADDRESS;
+ if(pattern.matcher(it).matches()){
+ sendbutton=true
+ binding.signup1CertSendButton.setBackgroundResource(R.drawable.rectangle_corner_10_yellow)
+ binding.signup1CertSendButton.setTextAppearance(R.style.TextAppearance_App_14sp_500)
+ }else{
+ sendbutton=false
+ binding.signup1CertSendButton.setBackgroundResource(R.drawable.rectangle_corner_10_strok_1_black)
+ binding.signup1CertSendButton.setTextAppearance(R.style.TextAppearance_App_14sp_400)
+ }
+ }
+ binding.signup1CertSendButton.setOnClickListener {
+ //인증 보내는 로직
+ if(sendbutton){
+ binding.signup1CertsendTv.visibility=View.VISIBLE
+ binding.signup1CertSendButton.text="인증번호 재발송"
+ }
+ }
+ binding.signup1CertEt.addTextChangedListener {
+ if(it.toString().equals("111")){
+ //인증 확인 로직
+ binding.signup1CertnotokTv.visibility=View.GONE
+ binding.signup1CertokTv.visibility= View.VISIBLE
+ nextbutton=true
+ binding.signup1NextBtn.setBackgroundResource(R.drawable.rectangle_corner_10_yellow)
+ binding.signup1NextBtn.setTextAppearance(R.style.TextAppearance_App_16sp_700)
+ }else{
+ binding.signup1CertokTv.visibility= View.GONE
+ binding.signup1CertnotokTv.visibility=View.VISIBLE
+ nextbutton=false
+ binding.signup1NextBtn.setBackgroundResource(R.drawable.rectangle_corner_10_strok_1_black)
+ binding.signup1NextBtn.setTextAppearance(R.style.TextAppearance_App_16sp_500)
+ }
+ }
binding.signup1NextBtn.setOnClickListener {
- findNavController().navigate(R.id.action_signup1_fragment_to_signup2_fragment)
+ if(nextbutton){
+ val bundle= Bundle()
+ bundle.putString("userName",binding.signup1NameEt.text.toString())
+ bundle.putString("userBirth",binding.signup1BirthEt.text.toString())
+ bundle.putString("userEmail",binding.signup1EmailEt.text.toString())
+// findNavController().navigate(R.id.action_signup1_fragment_to_signup2_fragment,bundle)
+ }
}
}
}
\ No newline at end of file
diff --git a/app/src/main/java/com/umc/ttoklip/presentation/signup/fragments/Signup2Fragment.kt b/app/src/main/java/com/umc/ttoklip/presentation/signup/fragments/Signup2Fragment.kt
index f2ecf49c..838d813e 100644
--- a/app/src/main/java/com/umc/ttoklip/presentation/signup/fragments/Signup2Fragment.kt
+++ b/app/src/main/java/com/umc/ttoklip/presentation/signup/fragments/Signup2Fragment.kt
@@ -1,26 +1,115 @@
package com.umc.ttoklip.presentation.signup.fragments
import android.content.Context
+import android.os.Bundle
+import android.view.View
import androidx.activity.OnBackPressedCallback
+import androidx.appcompat.app.AppCompatActivity
+import androidx.core.content.ContextCompat
+import androidx.core.widget.addTextChangedListener
import androidx.navigation.fragment.findNavController
import com.umc.ttoklip.R
import com.umc.ttoklip.databinding.FragmentSignup1Binding
import com.umc.ttoklip.databinding.FragmentSignup2Binding
import com.umc.ttoklip.presentation.base.BaseFragment
import com.umc.ttoklip.presentation.signup.SignupActivity
+import java.util.regex.Pattern
class Signup2Fragment: BaseFragment(R.layout.fragment_signup2) {
- private lateinit var callback:OnBackPressedCallback
+ var idok:Boolean=false
+ var pwok:Boolean=false
+
+ val num="([0-9].*)"
+ val symbol="([-_.;!?@#,$%^&*].*)"
+ val eng="([a-z].*)"
+ val pattern_num= Pattern.compile(num)
+ val pattern_symbol= Pattern.compile(symbol)
+ val pattern_eng= Pattern.compile(eng)
override fun initObserver() {
}
override fun initView() {
val activity=activity as SignupActivity
- activity?.setTitle("2단계 - 계정 설정",2)
+ activity?.setProg(2)
+ binding.signup2IdEt.addTextChangedListener {
+ if(it.toString().isNotEmpty()){
+ binding.signup2IdcheckButton.setBackgroundResource(R.drawable.rectangle_corner_10_yellow)
+ binding.signup2IdcheckButton.setTextAppearance(R.style.TextAppearance_App_14sp_700)
+ }else{
+ binding.signup2IdcheckButton.setBackgroundResource(R.drawable.rectangle_corner_10_strok_1_black)
+ binding.signup2IdcheckButton.setTextAppearance(R.style.TextAppearance_App_14sp_500)
+ }
+ }
+ binding.signup2IdcheckButton.setOnClickListener {
+ if(binding.signup2IdEt.text.toString().equals("aa")){
+ //아이디 중복 확인 체크 로직
+ idok=true
+ binding.signup2IdnotokTv.visibility=View.GONE
+ binding.signup2IdokTv.visibility= View.VISIBLE
+ }else{
+ idok=false
+ binding.signup2IdnotokTv.visibility=View.VISIBLE
+ binding.signup2IdokTv.visibility= View.GONE
+ }
+ nextOk()
+ }
+ binding.signup2PwEt.addTextChangedListener {
+ val matcher_num=pattern_num.matcher(it.toString())
+ val matcher_symbol=pattern_symbol.matcher(it.toString())
+ val matcher_eng=pattern_eng.matcher(it.toString())
+ if(matcher_eng.find()){
+ binding.signup2PwengIv.setImageResource(R.drawable.item_pwcheck_on)
+ binding.signup2PwengTv.setTextColor(ContextCompat.getColor(activity,R.color.black))
+ }else{
+ binding.signup2PwengIv.setImageResource(R.drawable.item_pwcheck_off)
+ binding.signup2PwengTv.setTextColor(ContextCompat.getColor(activity,R.color.gray60))
+ }
+ if(matcher_symbol.find()){
+ binding.signup2PwspeIv.setImageResource(R.drawable.item_pwcheck_on)
+ binding.signup2PwspeTv.setTextColor(ContextCompat.getColor(activity,R.color.black))
+ }else{
+ binding.signup2PwspeIv.setImageResource(R.drawable.item_pwcheck_off)
+ binding.signup2PwspeTv.setTextColor(ContextCompat.getColor(activity,R.color.gray60))
+ }
+ if(matcher_num.find()){
+ binding.signup2PwnumIv.setImageResource(R.drawable.item_pwcheck_on)
+ binding.signup2PwnumTv.setTextColor(ContextCompat.getColor(activity,R.color.black))
+ }else{
+ binding.signup2PwnumIv.setImageResource(R.drawable.item_pwcheck_off)
+ binding.signup2PwnumTv.setTextColor(ContextCompat.getColor(activity,R.color.gray60))
+ }
+ }
+ binding.signup2PwcheckEt.addTextChangedListener {
+ if(it.toString().equals(binding.signup2PwEt.text.toString())){
+ pwok=true
+ binding.signupPwokTv.visibility=View.VISIBLE
+ binding.signupPwnotokTv.visibility=View.GONE
+ }else{
+ pwok=false
+ binding.signupPwokTv.visibility=View.GONE
+ binding.signupPwnotokTv.visibility=View.VISIBLE
+ }
+ nextOk()
+ }
binding.signup2NextBtn.setOnClickListener {
- findNavController().navigate(R.id.action_signup2_fragment_to_signup3_fragment)
+ if(idok&&pwok){
+ val bundle=Bundle()
+// findNavController().navigate(R.id.action_signup2_fragment_to_signup3_fragment)
+ }
+ }
+ }
+
+ private fun nextOk(){
+ if(idok&&pwok){
+ binding.signup2NextBtn.isClickable=true
+ binding.signup2NextBtn.setBackgroundResource(R.drawable.rectangle_corner_10_yellow)
+ binding.signup2NextBtn.setTextAppearance(R.style.TextAppearance_App_16sp_700)
+ }else{
+ binding.signup2NextBtn.isClickable=false
+ binding.signup2NextBtn.setBackgroundResource(R.drawable.rectangle_corner_10_strok_1_black)
+ binding.signup2NextBtn.setTextAppearance(R.style.TextAppearance_App_16sp_500)
}
}
}
\ No newline at end of file
diff --git a/app/src/main/java/com/umc/ttoklip/presentation/signup/fragments/Signup3Fragment.kt b/app/src/main/java/com/umc/ttoklip/presentation/signup/fragments/Signup3Fragment.kt
index 0131d4ff..f9b0fd32 100644
--- a/app/src/main/java/com/umc/ttoklip/presentation/signup/fragments/Signup3Fragment.kt
+++ b/app/src/main/java/com/umc/ttoklip/presentation/signup/fragments/Signup3Fragment.kt
@@ -1,20 +1,121 @@
package com.umc.ttoklip.presentation.signup.fragments
+import androidx.core.os.bundleOf
import androidx.navigation.fragment.findNavController
import com.umc.ttoklip.R
import com.umc.ttoklip.databinding.FragmentSignup3Binding
import com.umc.ttoklip.presentation.base.BaseFragment
import com.umc.ttoklip.presentation.signup.SignupActivity
-class Signup3Fragment: BaseFragment(R.layout.fragment_signup3) {
+class Signup3Fragment : BaseFragment(R.layout.fragment_signup3) {
+
+ var allAgree: Boolean = false
+ var serviceAgree: Boolean = false
+ var privacyAgree: Boolean = false
+ var locationAgree: Boolean = false
+
override fun initObserver() {
}
override fun initView() {
- val activity=activity as SignupActivity
- activity?.setTitle("3단계 - 약관 동의",3)
+ val activity = activity as SignupActivity
+ activity?.setProg(1)
+
+ binding.signup3AgreeAllIv.setOnClickListener {
+ if (allAgree) {
+ binding.signup3AgreeServiceIv.setImageResource(R.drawable.oval_stroke_1)
+ binding.signup3AgreePrivacyIv.setImageResource(R.drawable.oval_stroke_1)
+ binding.signup3AgreeLocationIv.setImageResource(R.drawable.oval_stroke_1)
+ serviceAgree = false
+ privacyAgree = false
+ locationAgree = false
+ } else {
+ binding.signup3AgreeServiceIv.setImageResource(R.drawable.oval_double)
+ binding.signup3AgreePrivacyIv.setImageResource(R.drawable.oval_double)
+ binding.signup3AgreeLocationIv.setImageResource(R.drawable.oval_double)
+ serviceAgree = true
+ privacyAgree = true
+ locationAgree = true
+ }
+ allAgreeCheck()
+ nextok()
+ }
+
+ binding.signup3AgreeServiceIv.setOnClickListener {
+ if(serviceAgree){
+ serviceAgree=false
+ binding.signup3AgreeServiceIv.setImageResource(R.drawable.oval_stroke_1)
+ }else{
+ serviceAgree=true
+ binding.signup3AgreeServiceIv.setImageResource(R.drawable.oval_double)
+ }
+ allAgreeCheck()
+ nextok()
+ }
+ binding.signup3AgreeServiceBtn.setOnClickListener {
+ activity.updateButtonForTerm()
+ findNavController().navigate(R.id.action_signup3_fragment_to_signupTerm_fragment,
+ bundleOf("termType" to "service"))
+ }
+
+ binding.signup3AgreePrivacyIv.setOnClickListener {
+ if(privacyAgree){
+ privacyAgree=false
+ binding.signup3AgreePrivacyIv.setImageResource(R.drawable.oval_stroke_1)
+ }else{
+ privacyAgree=true
+ binding.signup3AgreePrivacyIv.setImageResource(R.drawable.oval_double)
+ }
+ allAgreeCheck()
+ nextok()
+ }
+ binding.signup3AgreePrivacyBtn.setOnClickListener {
+ activity.updateButtonForTerm()
+ findNavController().navigate(R.id.action_signup3_fragment_to_signupTerm_fragment,
+ bundleOf("termType" to "privacy"))
+ }
+
+ binding.signup3AgreeLocationIv.setOnClickListener {
+ if(locationAgree){
+ locationAgree=false
+ binding.signup3AgreeLocationIv.setImageResource(R.drawable.oval_stroke_1)
+ }else{
+ locationAgree=true
+ binding.signup3AgreeLocationIv.setImageResource(R.drawable.oval_double)
+ }
+ allAgreeCheck()
+ }
+
+ binding.signup3AgreeLocationBtn.setOnClickListener {
+ activity.updateButtonForTerm()
+ findNavController().navigate(R.id.action_signup3_fragment_to_signupTerm_fragment,
+ bundleOf("termType" to "location"))
+ }
+
binding.signup3NextBtn.setOnClickListener {
- findNavController().navigate(R.id.action_signup3_fragment_to_signup4_fragment)
+ if (serviceAgree && privacyAgree) {
+ findNavController().navigate(R.id.action_signup3_fragment_to_signup4_fragment)
+ }
+ }
+ }
+ private fun allAgreeCheck() {
+ if (serviceAgree && privacyAgree && locationAgree) {
+ allAgree = true
+ binding.signup3AgreeAllIv.setImageResource(R.drawable.oval_double)
+ } else {
+ allAgree = false
+ binding.signup3AgreeAllIv.setImageResource(R.drawable.oval_stroke_1)
+ }
+ }
+ private fun nextok(){
+ if(serviceAgree&&privacyAgree){
+ binding.signup3NextBtn.isClickable=true
+ binding.signup3NextBtn.setBackgroundResource(R.drawable.rectangle_corner_10_yellow)
+ binding.signup3NextBtn.setTextAppearance(R.style.TextAppearance_App_16sp_700)
+ }else{
+ binding.signup3NextBtn.isClickable=false
+ binding.signup3NextBtn.setBackgroundResource(R.drawable.rectangle_corner_10_strok_1_black)
+ binding.signup3NextBtn.setTextAppearance(R.style.TextAppearance_App_16sp_500)
}
}
}
\ No newline at end of file
diff --git a/app/src/main/java/com/umc/ttoklip/presentation/signup/fragments/Signup4Fragment.kt b/app/src/main/java/com/umc/ttoklip/presentation/signup/fragments/Signup4Fragment.kt
index e1eca17b..9b679303 100644
--- a/app/src/main/java/com/umc/ttoklip/presentation/signup/fragments/Signup4Fragment.kt
+++ b/app/src/main/java/com/umc/ttoklip/presentation/signup/fragments/Signup4Fragment.kt
@@ -1,22 +1,102 @@
package com.umc.ttoklip.presentation.signup.fragments
-import android.content.Intent
+import android.view.View
+import androidx.core.content.ContextCompat
import androidx.navigation.fragment.findNavController
+import com.google.android.material.chip.Chip
import com.umc.ttoklip.R
import com.umc.ttoklip.databinding.FragmentSignup4Binding
-import com.umc.ttoklip.presentation.MainActivity
import com.umc.ttoklip.presentation.base.BaseFragment
+import com.umc.ttoklip.presentation.mypage.ChooseMainInterestDialogFragment
+import com.umc.ttoklip.presentation.mypage.InputIndependentCareerDialogFragment
import com.umc.ttoklip.presentation.signup.SignupActivity
-class Signup4Fragment: BaseFragment(R.layout.fragment_signup4) {
+class Signup4Fragment : BaseFragment(R.layout.fragment_signup4) {
+ private var independentCareerYear:Int? =null
+ private var independentCareerMonth: Int? =null
+
override fun initObserver() {
}
override fun initView() {
- val activity=activity as SignupActivity
- activity?.setTitle("4단계 - 프로필 설정",4)
+ val activity = activity as SignupActivity
+ activity?.setProg(2)
+
+ if(independentCareerYear!=null||independentCareerMonth!=null){
+ if (independentCareerYear != ZERO_CAREER && independentCareerMonth != ZERO_CAREER) {
+ binding.signup4IndependenceEt.text =
+ getString(R.string.my_independent_career_base_format, independentCareerYear, independentCareerMonth)
+ } else if (independentCareerYear != ZERO_CAREER) {
+ binding.signup4IndependenceEt.text =
+ getString(R.string.my_independent_career_year_format, independentCareerYear)
+ } else if (independentCareerMonth != ZERO_CAREER) {
+ binding.signup4IndependenceEt.text =
+ getString(R.string.my_independent_career_month_format, independentCareerMonth)
+ } else {
+ binding.signup4IndependenceEt.text =
+ getString(R.string.my_independent_career_month_format, ZERO_CAREER)
+ }
+ binding.signup4IndependenceEt.setTextColor(ContextCompat.getColor(activity,R.color.black))
+ }
+
+ binding.signup4NickcheckButton.setOnClickListener {
+ //닉네임 확인 로직
+ if (binding.signup4NicknameEt.text.toString().equals("aa")) {
+ binding.signup4NickokTv.visibility = View.VISIBLE
+ binding.signup4NicknotokTv.visibility = View.GONE
+ } else {
+ binding.signup4NickokTv.visibility = View.GONE
+ binding.signup4NicknotokTv.visibility = View.VISIBLE
+ }
+ }
+
+ binding.signup4IndependenceEt.setOnClickListener {
+ val bottomSheet = InputIndependentCareerDialogFragment { year, month ->
+ if (year != ZERO_CAREER && month != ZERO_CAREER) {
+ binding.signup4IndependenceEt.text =
+ getString(R.string.my_independent_career_base_format, year, month)
+ } else if (year != ZERO_CAREER) {
+ binding.signup4IndependenceEt.text =
+ getString(R.string.my_independent_career_year_format, year)
+ } else if (month != ZERO_CAREER) {
+ binding.signup4IndependenceEt.text =
+ getString(R.string.my_independent_career_month_format, month)
+ } else {
+ binding.signup4IndependenceEt.text =
+ getString(R.string.my_independent_career_month_format, ZERO_CAREER)
+ }
+ independentCareerYear=year
+ independentCareerMonth=month
+ }
+ bottomSheet.show(activity.supportFragmentManager, bottomSheet.tag)
+ binding.signup4IndependenceEt.setTextColor(ContextCompat.getColor(activity,R.color.black)
+ )
+ }
+
+ binding.signup4InterestGroup.setOnClickListener {
+ binding.signup4InterestDescTv.visibility = View.GONE
+ binding.signup4InterestIconIv.visibility = View.GONE
+ val bottomSheet = ChooseMainInterestDialogFragment { interests ->
+ binding.signup4InterestGroup.removeAllViews()
+ interests.forEach { interest ->
+ val chip = Chip(activity)
+ chip.text = interest
+ chip.setTextAppearance(R.style.TextAppearance_App_12sp_700)
+ chip.setTextColor(ContextCompat.getColor(activity, R.color.black))
+ chip.setChipBackgroundColorResource(R.color.yellow)
+ chip.setChipStrokeColorResource(R.color.yellow)
+ binding.signup4InterestGroup.addView(chip)
+ }
+ }
+ bottomSheet.show(activity.supportFragmentManager, bottomSheet.tag)
+ }
+
binding.signup4NextBtn.setOnClickListener {
- startActivity(Intent(activity, MainActivity::class.java))
+ findNavController().navigate(R.id.action_signup4_fragment_to_signup5_fragment)
}
}
+
+ companion object {
+ private const val ZERO_CAREER = 0
+ }
}
\ No newline at end of file
diff --git a/app/src/main/java/com/umc/ttoklip/presentation/signup/fragments/Signup5Fragment.kt b/app/src/main/java/com/umc/ttoklip/presentation/signup/fragments/Signup5Fragment.kt
new file mode 100644
index 00000000..cf2d6bdb
--- /dev/null
+++ b/app/src/main/java/com/umc/ttoklip/presentation/signup/fragments/Signup5Fragment.kt
@@ -0,0 +1,101 @@
+package com.umc.ttoklip.presentation.signup.fragments
+
+import android.content.Intent
+import android.widget.SeekBar
+import androidx.core.content.ContextCompat
+import com.umc.ttoklip.R
+import com.umc.ttoklip.databinding.FragmentSignup5Binding
+import com.umc.ttoklip.presentation.MainActivity
+import com.umc.ttoklip.presentation.base.BaseFragment
+import com.umc.ttoklip.presentation.signup.DirectLocationActivity
+import com.umc.ttoklip.presentation.signup.LocationActivity
+import com.umc.ttoklip.presentation.signup.SignupActivity
+
+class Signup5Fragment: BaseFragment(R.layout.fragment_signup5) {
+ private lateinit var range: String
+
+ override fun initObserver() {
+ }
+
+ override fun initView() {
+ val activity=activity as SignupActivity
+ activity.setProg(3)
+
+ range = getString(R.string.range_500m)
+ binding.rangeSettingExplainTv.text =
+ getString(R.string.range_setting_format, range)
+
+ binding.range500mTv.setOnClickListener { setRange500m(activity) }
+ binding.range1kmTv.setOnClickListener { setRange1km(activity) }
+ binding.range15kmTv.setOnClickListener { setRange15km(activity) }
+
+ binding.rangeBar.setOnSeekBarChangeListener(object : SeekBar.OnSeekBarChangeListener {
+ override fun onProgressChanged(seekBar: SeekBar?, progress: Int, fromUser: Boolean) {
+ if (progress <= RANGE_500M_PROGRESS) { setRange500m(activity)
+ } else if (progress <= RANGE_1KM_PROGRESS) { setRange1km(activity)
+ } else { setRange15km(activity)
+ }
+ }
+
+ override fun onStartTrackingTouch(seekBar: SeekBar?) = Unit
+ override fun onStopTrackingTouch(seekBar: SeekBar?) {
+ seekBar?.let {
+ if (it.progress <= RANGE_500M_PROGRESS) {
+ it.progress = RANGE_500M_PROGRESS
+ setRange500m(activity)
+ } else if (it.progress <= RANGE_1KM_PROGRESS) {
+ it.progress = RANGE_1KM_PROGRESS
+ setRange1km(activity)
+ } else {
+ it.progress = RANGE_15kM_PROGRESS
+ setRange15km(activity)
+ }
+ }
+ }
+
+ })
+
+ binding.signup5LocationBtn.setOnClickListener {
+ startActivity(Intent(activity, LocationActivity::class.java))
+ }
+ binding.signup5LocationDirectEt.setOnClickListener {
+ startActivity(Intent(activity, DirectLocationActivity::class.java))
+ }
+ binding.signup5NextBtn.setOnClickListener {
+ startActivity(Intent(activity, MainActivity::class.java))
+ }
+ }
+
+ private fun setRange15km(activity: SignupActivity) {
+ range = getString(R.string.range_1_5km)
+ binding.rangeBar.progress = RANGE_15kM_PROGRESS
+ binding.range500mTv.setTextColor(ContextCompat.getColor(activity,R.color.gray40))
+ binding.range1kmTv.setTextColor(ContextCompat.getColor(activity,R.color.gray40))
+ binding.range15kmTv.setTextColor(ContextCompat.getColor(activity,R.color.black))
+ binding.rangeSettingExplainTv.text = getString(R.string.range_setting_format, range)
+ }
+
+ private fun setRange1km(activity: SignupActivity) {
+ range = getString(R.string.range_1km)
+ binding.rangeBar.progress = RANGE_1KM_PROGRESS
+ binding.range500mTv.setTextColor(ContextCompat.getColor(activity,R.color.gray40))
+ binding.range1kmTv.setTextColor(ContextCompat.getColor(activity,R.color.black))
+ binding.range15kmTv.setTextColor(ContextCompat.getColor(activity,R.color.gray40))
+ binding.rangeSettingExplainTv.text = getString(R.string.range_setting_format, range)
+ }
+
+ private fun setRange500m(activity: SignupActivity) {
+ range = getString(R.string.range_500m)
+ binding.rangeBar.progress = RANGE_500M_PROGRESS
+ binding.range500mTv.setTextColor(ContextCompat.getColor(activity,R.color.black))
+ binding.range1kmTv.setTextColor(ContextCompat.getColor(activity,R.color.gray40))
+ binding.range15kmTv.setTextColor(ContextCompat.getColor(activity,R.color.gray40))
+ binding.rangeSettingExplainTv.text = getString(R.string.range_setting_format, range)
+ }
+
+ companion object {
+ private const val RANGE_500M_PROGRESS = 33
+ private const val RANGE_1KM_PROGRESS = 67
+ private const val RANGE_15kM_PROGRESS = 100
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/umc/ttoklip/presentation/signup/fragments/SignupTermFragment.kt b/app/src/main/java/com/umc/ttoklip/presentation/signup/fragments/SignupTermFragment.kt
new file mode 100644
index 00000000..6896f33f
--- /dev/null
+++ b/app/src/main/java/com/umc/ttoklip/presentation/signup/fragments/SignupTermFragment.kt
@@ -0,0 +1,25 @@
+package com.umc.ttoklip.presentation.signup.fragments
+
+import com.umc.ttoklip.R
+import com.umc.ttoklip.databinding.FragmentSignup5Binding
+import com.umc.ttoklip.databinding.FragmentSignupTermBinding
+import com.umc.ttoklip.presentation.base.BaseFragment
+
+class SignupTermFragment : BaseFragment(R.layout.fragment_signup_term) {
+ override fun initObserver() {
+ }
+
+ override fun initView() {
+ var termType = requireArguments().getString("termType")
+ if (termType.toString().equals("service")) {
+ binding.signupTermTitleTv.text = getString(R.string.service_term)
+ binding.signupTermDetailTv.text = getString(R.string.service_term_detail)
+ } else if (termType.toString().equals("privacy")) {
+ binding.signupTermTitleTv.text = getString(R.string.privacy_term)
+ binding.signupTermDetailTv.text = getString(R.string.privacy_term_detail)
+ } else {
+ binding.signupTermTitleTv.text = getString(R.string.location_term)
+ binding.signupTermDetailTv.text = getString(R.string.location_term_detail)
+ }
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/res/drawable/ic_checkpre_off_16.xml b/app/src/main/res/drawable/ic_checkpre_off_16.xml
index 97a09f8f..531b982a 100644
--- a/app/src/main/res/drawable/ic_checkpre_off_16.xml
+++ b/app/src/main/res/drawable/ic_checkpre_off_16.xml
@@ -8,6 +8,6 @@
android:pathData="M0,0h16v16h-16z"/>
+ android:fillColor="@color/gray40"/>
diff --git a/app/src/main/res/drawable/ic_checkpre_on_16.xml b/app/src/main/res/drawable/ic_checkpre_on_16.xml
index 5acc1030..0d4108cd 100644
--- a/app/src/main/res/drawable/ic_checkpre_on_16.xml
+++ b/app/src/main/res/drawable/ic_checkpre_on_16.xml
@@ -8,6 +8,6 @@
android:pathData="M0,0h16v16h-16z"/>
+ android:fillColor="@color/black"/>
diff --git a/app/src/main/res/drawable/ic_kakaotalk_18.xml b/app/src/main/res/drawable/ic_kakaotalk_18.xml
new file mode 100644
index 00000000..68acb6c0
--- /dev/null
+++ b/app/src/main/res/drawable/ic_kakaotalk_18.xml
@@ -0,0 +1,10 @@
+
+
+
diff --git a/app/src/main/res/drawable/ic_kakaotalk_46.xml b/app/src/main/res/drawable/ic_kakaotalk_46.xml
deleted file mode 100644
index dd4746d9..00000000
--- a/app/src/main/res/drawable/ic_kakaotalk_46.xml
+++ /dev/null
@@ -1,24 +0,0 @@
-
-
-
-
-
-
-
-
diff --git a/app/src/main/res/drawable/ic_naver_16.xml b/app/src/main/res/drawable/ic_naver_16.xml
new file mode 100644
index 00000000..43566362
--- /dev/null
+++ b/app/src/main/res/drawable/ic_naver_16.xml
@@ -0,0 +1,9 @@
+
+
+
diff --git a/app/src/main/res/drawable/ic_naver_46.xml b/app/src/main/res/drawable/ic_naver_46.xml
deleted file mode 100644
index 214e5d45..00000000
--- a/app/src/main/res/drawable/ic_naver_46.xml
+++ /dev/null
@@ -1,12 +0,0 @@
-
-
-
-
diff --git a/app/src/main/res/drawable/ic_ttoklip1_78.xml b/app/src/main/res/drawable/ic_ttoklip1_78.xml
new file mode 100644
index 00000000..06e1047f
--- /dev/null
+++ b/app/src/main/res/drawable/ic_ttoklip1_78.xml
@@ -0,0 +1,10 @@
+
+
+
diff --git a/app/src/main/res/drawable/ic_ttoklip1_81.xml b/app/src/main/res/drawable/ic_ttoklip1_81.xml
deleted file mode 100644
index 16b17ed1..00000000
--- a/app/src/main/res/drawable/ic_ttoklip1_81.xml
+++ /dev/null
@@ -1,10 +0,0 @@
-
-
-
diff --git a/app/src/main/res/drawable/ic_ttoklip2_63.xml b/app/src/main/res/drawable/ic_ttoklip2_63.xml
new file mode 100644
index 00000000..4b43c0c6
--- /dev/null
+++ b/app/src/main/res/drawable/ic_ttoklip2_63.xml
@@ -0,0 +1,19 @@
+
+
+
+
+
+
diff --git a/app/src/main/res/drawable/ic_ttoklip2_64.xml b/app/src/main/res/drawable/ic_ttoklip2_64.xml
deleted file mode 100644
index 8ea07f7c..00000000
--- a/app/src/main/res/drawable/ic_ttoklip2_64.xml
+++ /dev/null
@@ -1,10 +0,0 @@
-
-
-
diff --git a/app/src/main/res/drawable/item_camera.xml b/app/src/main/res/drawable/item_camera.xml
new file mode 100644
index 00000000..43efcf63
--- /dev/null
+++ b/app/src/main/res/drawable/item_camera.xml
@@ -0,0 +1,14 @@
+
+
+ -
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable/item_pwcheck_off.xml b/app/src/main/res/drawable/item_pwcheck_off.xml
new file mode 100644
index 00000000..00bf5985
--- /dev/null
+++ b/app/src/main/res/drawable/item_pwcheck_off.xml
@@ -0,0 +1,9 @@
+
+
+ -
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable/item_pwcheck_on.xml b/app/src/main/res/drawable/item_pwcheck_on.xml
new file mode 100644
index 00000000..a92eae24
--- /dev/null
+++ b/app/src/main/res/drawable/item_pwcheck_on.xml
@@ -0,0 +1,9 @@
+
+
+ -
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable/oval_double.xml b/app/src/main/res/drawable/oval_double.xml
new file mode 100644
index 00000000..fa5fd424
--- /dev/null
+++ b/app/src/main/res/drawable/oval_double.xml
@@ -0,0 +1,28 @@
+
+
+
+ -
+
+
+
+
+
+ -
+
+
+
+
+
+
diff --git a/app/src/main/res/drawable/oval_fill_strok_1.xml b/app/src/main/res/drawable/oval_stroke_1.xml
similarity index 66%
rename from app/src/main/res/drawable/oval_fill_strok_1.xml
rename to app/src/main/res/drawable/oval_stroke_1.xml
index 69b65967..25afd6b1 100644
--- a/app/src/main/res/drawable/oval_fill_strok_1.xml
+++ b/app/src/main/res/drawable/oval_stroke_1.xml
@@ -1,9 +1,7 @@
-
+ android:color="@color/black"/>
\ No newline at end of file
diff --git a/app/src/main/res/drawable/rectangle_corner_100_black.xml b/app/src/main/res/drawable/rectangle_corner_100_black.xml
new file mode 100644
index 00000000..adbeb96c
--- /dev/null
+++ b/app/src/main/res/drawable/rectangle_corner_100_black.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable/rectangle_corner_10_yellow.xml b/app/src/main/res/drawable/rectangle_corner_10_yellow.xml
new file mode 100644
index 00000000..83252ed6
--- /dev/null
+++ b/app/src/main/res/drawable/rectangle_corner_10_yellow.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable/rectangle_corner_20_stroke_1_gray20.xml b/app/src/main/res/drawable/rectangle_corner_20_stroke_1_gray20.xml
new file mode 100644
index 00000000..4bf4e014
--- /dev/null
+++ b/app/src/main/res/drawable/rectangle_corner_20_stroke_1_gray20.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_direct_location.xml b/app/src/main/res/layout/activity_direct_location.xml
new file mode 100644
index 00000000..f0441c87
--- /dev/null
+++ b/app/src/main/res/layout/activity_direct_location.xml
@@ -0,0 +1,70 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_intro.xml b/app/src/main/res/layout/activity_intro.xml
index 74937332..11e592c2 100644
--- a/app/src/main/res/layout/activity_intro.xml
+++ b/app/src/main/res/layout/activity_intro.xml
@@ -10,38 +10,38 @@
android:id="@+id/intro_intro_vp"
android:layout_width="match_parent"
android:layout_height="wrap_content"
- android:layout_marginTop="60dp"
+ android:layout_marginTop="20dp"
app:layout_constraintStart_toStartOf="parent"
- app:layout_constraintTop_toTopOf="parent" />
+ app:layout_constraintTop_toBottomOf="@id/intro_indicator" />
+ app:selectedDotColor="@color/yellow"
+ app:dotsWidthFactor="1"/>
-
-
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_location.xml b/app/src/main/res/layout/activity_location.xml
index 40d14d4a..6f515ca8 100644
--- a/app/src/main/res/layout/activity_location.xml
+++ b/app/src/main/res/layout/activity_location.xml
@@ -1,134 +1,180 @@
-
-
-
-
-
-
-
+
+
-
-
+ android:background="#00000000"
+ android:scaleType="centerCrop"
+ android:src="@drawable/ic_arrow_back_24"
+ app:layout_constraintStart_toStartOf="parent"
+ app:layout_constraintTop_toTopOf="parent" />
+
+
+
-
-
+
+
-
-
-
-
-
\ No newline at end of file
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_login.xml b/app/src/main/res/layout/activity_login.xml
index 0c02841d..4fa31b16 100644
--- a/app/src/main/res/layout/activity_login.xml
+++ b/app/src/main/res/layout/activity_login.xml
@@ -7,199 +7,82 @@
android:layout_width="match_parent"
android:layout_height="match_parent">
-
-
-
-
-
+ app:layout_constraintTop_toTopOf="parent">
-
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+ android:layout_marginTop="20dp"
+ android:gravity="center"
+ android:text="지금 가입하고,\n다양한 독립 정보를 나눠봐요"
+ android:textAppearance="@style/TextAppearance.App.16sp_700"
+ app:layout_constraintEnd_toEndOf="parent"
+ app:layout_constraintStart_toStartOf="parent"
+ app:layout_constraintTop_toBottomOf="@id/login_logo_iv" />
-
-
+
-
+
+
+
-
-
-
-
-
+ app:layout_constraintStart_toStartOf="parent" />
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_signup.xml b/app/src/main/res/layout/activity_signup.xml
index ad357886..a2e41c41 100644
--- a/app/src/main/res/layout/activity_signup.xml
+++ b/app/src/main/res/layout/activity_signup.xml
@@ -7,35 +7,39 @@
android:layout_height="match_parent">
+ app:layout_constraintTop_toTopOf="parent"
+ android:visibility="visible"/>
-
+ app:layout_constraintTop_toTopOf="parent"
+ android:visibility="gone"/>
+ app:layout_constraintTop_toBottomOf="@id/signup_back_ib" />
+ android:src="@drawable/ic_ttoklip1_78"/>
+ android:src="@drawable/ic_ttoklip2_63"/>
-
-
+ app:layout_constraintTop_toTopOf="parent" />
+ app:layout_constraintTop_toBottomOf="@id/item_intro_title_tv" />
\ No newline at end of file
diff --git a/app/src/main/res/layout/fragment_signup1.xml b/app/src/main/res/layout/fragment_signup1.xml
index 1c272d1c..fcfccd72 100644
--- a/app/src/main/res/layout/fragment_signup1.xml
+++ b/app/src/main/res/layout/fragment_signup1.xml
@@ -7,42 +7,59 @@
android:layout_width="match_parent"
android:layout_height="match_parent">
-
-
+
+
+
+
+
+
+ android:textAppearance="@style/TextAppearance.App.14sp_700"
+ android:layout_marginTop="15dp"/>
@@ -55,13 +72,12 @@
android:layout_marginTop="15dp"/>
@@ -72,74 +88,80 @@
android:text="이메일"
android:textAppearance="@style/TextAppearance.App.14sp_700"
android:layout_marginTop="15dp"/>
+
+
-
-
+ app:layout_constraintTop_toTopOf="parent"
+ app:layout_constraintStart_toStartOf="parent"/>
+
+
+ android:layout_marginTop="5dp"
+ app:layout_constraintTop_toBottomOf="@id/signup1_certSend_button"
+ app:layout_constraintEnd_toEndOf="parent"/>
+
+
+
+
+
-
+ android:textAppearance="@style/TextAppearance.App.12sp_400"
+ app:layout_constraintTop_toTopOf="parent"
+ app:layout_constraintStart_toStartOf="parent"
+ app:layout_constraintEnd_toEndOf="parent"/>
+
-
+ app:layout_constraintBottom_toBottomOf="parent"/>
\ No newline at end of file
diff --git a/app/src/main/res/layout/fragment_signup2.xml b/app/src/main/res/layout/fragment_signup2.xml
index 4b785fab..f653555e 100644
--- a/app/src/main/res/layout/fragment_signup2.xml
+++ b/app/src/main/res/layout/fragment_signup2.xml
@@ -6,31 +6,49 @@
android:layout_width="match_parent"
android:layout_height="match_parent">
-
-
+ app:layout_constraintTop_toTopOf="parent">
+
+
+
+
+
+
@@ -41,33 +59,31 @@
+ android:textAppearance="@style/TextAppearance.App.14sp_500"
+ android:textColor="@color/black"
+ android:layout_marginStart="10dp"
+ app:layout_constraintStart_toEndOf="@id/signup2_id_et"
+ app:layout_constraintTop_toTopOf="@id/signup2_id_et"
+ app:layout_constraintBottom_toBottomOf="@id/signup2_id_et"/>
-
+ app:layout_constraintTop_toTopOf="parent"
+ app:passwordToggleEnabled="true">
-
+
+
+ app:layout_constraintTop_toBottomOf="@id/signup2_pw_tl" />
@@ -171,6 +188,7 @@
android:layout_height="wrap_content"
android:layout_marginStart="5dp"
android:text="숫자"
+ android:textAppearance="@style/TextAppearance.App.10sp_400"
android:textColor="@color/gray60"
android:textSize="10sp"
app:layout_constraintBottom_toBottomOf="@id/signup2_pweng_iv"
@@ -182,7 +200,7 @@
android:layout_width="13dp"
android:layout_height="13dp"
android:layout_marginStart="10dp"
- android:src="@drawable/ic_checkpre_off_16"
+ android:src="@drawable/item_pwcheck_off"
app:layout_constraintBottom_toBottomOf="@id/signup2_pweng_iv"
app:layout_constraintStart_toEndOf="@id/signup2_pwnum_tv"
app:layout_constraintTop_toTopOf="@id/signup2_pweng_iv" />
@@ -193,6 +211,7 @@
android:layout_height="wrap_content"
android:layout_marginStart="5dp"
android:text="특수문자"
+ android:textAppearance="@style/TextAppearance.App.10sp_400"
android:textColor="@color/gray60"
android:textSize="10sp"
app:layout_constraintBottom_toBottomOf="@id/signup2_pweng_iv"
@@ -207,63 +226,71 @@
android:layout_marginTop="15dp"
android:text="비밀번호 확인"
android:textAppearance="@style/TextAppearance.App.14sp_700" />
+
+
+
+
-
-
-
-
-
-
+
+
+
-
+ app:layout_constraintBottom_toBottomOf="parent" />
\ No newline at end of file
diff --git a/app/src/main/res/layout/fragment_signup3.xml b/app/src/main/res/layout/fragment_signup3.xml
index c49b300e..3f9f6d0d 100644
--- a/app/src/main/res/layout/fragment_signup3.xml
+++ b/app/src/main/res/layout/fragment_signup3.xml
@@ -6,39 +6,57 @@
android:layout_width="match_parent"
android:layout_height="match_parent">
-
-
+ app:layout_constraintTop_toTopOf="parent">
+
+
+
+
+
+
+ android:layout_marginTop="20dp">
+ app:layout_constraintTop_toTopOf="parent"
+ app:layout_constraintBottom_toBottomOf="parent"/>
+ app:layout_constraintTop_toTopOf="parent" />
+
+ android:layout_marginTop="20dp"
+ android:background="@color/gray20" />
@@ -79,48 +106,19 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="10dp"
- android:text="서비스 이용약관 동의 (필수)"
- android:textAppearance="@style/TextAppearance.App.14sp_600"
- android:textSize="13dp"
+ android:text="서비스 이용약관 (필수)"
+ android:textAppearance="@style/TextAppearance.App.14sp_400"
app:layout_constraintBottom_toBottomOf="@id/signup3_agreeService_iv"
app:layout_constraintStart_toEndOf="@id/signup3_agreeService_iv"
app:layout_constraintTop_toTopOf="@id/signup3_agreeService_iv" />
-
-
-
-
-
-
-
+ app:layout_constraintTop_toTopOf="parent"
+ app:layout_constraintBottom_toBottomOf="parent"/>
@@ -142,23 +140,19 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="10dp"
- android:text="개인정보 처리 방침 (필수)"
- android:textAppearance="@style/TextAppearance.App.14sp_600"
- android:textSize="13dp"
+ android:text="개인정보 처리방침 (필수)"
+ android:textAppearance="@style/TextAppearance.App.14sp_400"
app:layout_constraintBottom_toBottomOf="@id/signup3_agreePrivacy_iv"
app:layout_constraintStart_toEndOf="@id/signup3_agreePrivacy_iv"
app:layout_constraintTop_toTopOf="@id/signup3_agreePrivacy_iv" />
-
-
+ app:layout_constraintTop_toTopOf="parent"
+ app:layout_constraintBottom_toBottomOf="parent"/>
@@ -179,28 +173,33 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="10dp"
- android:text="위치서비스 이용 동의 (선택)"
- android:textAppearance="@style/TextAppearance.App.14sp_600"
- android:textSize="13dp"
+ android:text="위치서비스 이용약관 (선택)"
+ android:textAppearance="@style/TextAppearance.App.14sp_400"
app:layout_constraintBottom_toBottomOf="@id/signup3_agreeLocation_iv"
app:layout_constraintStart_toEndOf="@id/signup3_agreeLocation_iv"
app:layout_constraintTop_toTopOf="@id/signup3_agreeLocation_iv" />
+
+ app:layout_constraintBottom_toBottomOf="parent" />
\ No newline at end of file
diff --git a/app/src/main/res/layout/fragment_signup4.xml b/app/src/main/res/layout/fragment_signup4.xml
index 6a944bbf..233a39b2 100644
--- a/app/src/main/res/layout/fragment_signup4.xml
+++ b/app/src/main/res/layout/fragment_signup4.xml
@@ -15,78 +15,111 @@
android:layout_width="match_parent"
android:layout_height="match_parent">
-
-
-
-
+ app:layout_constraintTop_toTopOf="parent">
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
@@ -191,42 +182,68 @@
android:text="고민거리 선택"
android:textAppearance="@style/TextAppearance.App.14sp_700" />
-
+ android:paddingHorizontal="16dp"
+ app:layout_constraintTop_toBottomOf="@id/main_interest_title_tv">
-
+
+
+
+
+
+
+
+
+
+
+ app:layout_constraintStart_toStartOf="parent" />
diff --git a/app/src/main/res/layout/fragment_signup5.xml b/app/src/main/res/layout/fragment_signup5.xml
new file mode 100644
index 00000000..ceed83a5
--- /dev/null
+++ b/app/src/main/res/layout/fragment_signup5.xml
@@ -0,0 +1,201 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/fragment_signup_term.xml b/app/src/main/res/layout/fragment_signup_term.xml
new file mode 100644
index 00000000..f67c2fd8
--- /dev/null
+++ b/app/src/main/res/layout/fragment_signup_term.xml
@@ -0,0 +1,54 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/item_address.xml b/app/src/main/res/layout/item_address.xml
new file mode 100644
index 00000000..3e310ce5
--- /dev/null
+++ b/app/src/main/res/layout/item_address.xml
@@ -0,0 +1,31 @@
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/navigation/signup_graph.xml b/app/src/main/res/navigation/signup_graph.xml
index 750f2fda..578ecc58 100644
--- a/app/src/main/res/navigation/signup_graph.xml
+++ b/app/src/main/res/navigation/signup_graph.xml
@@ -3,30 +3,8 @@
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/signup_graph"
- app:startDestination="@id/signup1_fragment">
+ app:startDestination="@id/signup3_fragment">
-
-
-
-
-
-
-
+ android:id="@+id/action_signup3_fragment_to_signupTerm_fragment"
+ app:destination="@id/signupTerm_fragment" />
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/values/colors.xml b/app/src/main/res/values/colors.xml
index 3408ab7a..b17077fe 100644
--- a/app/src/main/res/values/colors.xml
+++ b/app/src/main/res/values/colors.xml
@@ -7,9 +7,12 @@
#FFCACACA
#FFAEAEAE
#FF7A7A7A
+ #030303
#FFFFE600
#FFFFF8B4
#FF0075FF
#FFFE5E00
#EFEFEF
+ #03C75A
+ #FEE500
\ No newline at end of file
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 458eb585..e0b58228 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -97,4 +97,12 @@
전체삭제
+
+ 서비스 이용약관
+ 서비스 이용약관 상세 내용
+ 개인정보 수집 • 이용 동의
+ 개인정보 수집 및 이용 동의 상세 내용
+ 위치서비스 이용약관
+ 위치서비스 이용약관 상세 내용
+
\ No newline at end of file
diff --git a/app/src/main/res/values/style.xml b/app/src/main/res/values/style.xml
index 6851f943..f7918797 100644
--- a/app/src/main/res/values/style.xml
+++ b/app/src/main/res/values/style.xml
@@ -31,6 +31,11 @@
- @font/pretendard_bold
+
+
+
+
+
+
+
+