diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index b4935245..54c12998 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -78,15 +78,33 @@ android:name=".presentation.mypage.MyHoneyTipActivity" android:screenOrientation="portrait" android:exported="false" /> + + + + - + + + + + + + + + + (R.layout.activity_intro){ +class IntroActivity:BaseActivity(R.layout.activity_intro){ override fun initView() { - val handler= Handler(Looper.getMainLooper()) - handler.postDelayed({ - //activity 이름 알아오기 - //startActivity(Intent(this,MainActivity::class.java)) - },2000) + 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="다음" + } + } + }) + } + binding.introIndicator.attachTo(binding.introIntroVp) + + binding.introNextBtn.setOnClickListener { + if(binding.introIntroVp.currentItem==2) { + val spf=getSharedPreferences("first", MODE_PRIVATE) + val editor=spf.edit() + editor.putBoolean("firstRun",false) + editor.apply() + startActivity(Intent(this, LoginActivity::class.java)) + }else{ + binding.introIntroVp.currentItem++ + } + } } - override fun initObserver() { + + override fun onBackPressed() { + //super.onBackPressed() } - override fun onCreate(savedInstanceState: Bundle?) { - super.onCreate(savedInstanceState) + + override fun initObserver() { } } \ No newline at end of file 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 new file mode 100644 index 00000000..99c44ca2 --- /dev/null +++ b/app/src/main/java/com/umc/ttoklip/presentation/intro/IntroFragment.kt @@ -0,0 +1,31 @@ +package com.umc.ttoklip.presentation.intro + +import android.os.Bundle +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import androidx.fragment.app.Fragment +import com.umc.ttoklip.databinding.FragmentIntroBinding + +class IntroFragment(val position:Int): Fragment() { + private lateinit var binding: FragmentIntroBinding + override fun onCreateView( + inflater: LayoutInflater, + container: ViewGroup?, + savedInstanceState: Bundle? + ): View? { + binding=FragmentIntroBinding.inflate(inflater,container,false) + + when (position){ + 0->{binding.itemIntroTitleTv.text="우리, 꿀팁 공유해요!" + binding.itemIntroDescTv.text="독립생활을 하는데 어려운 점을 공유하고\n도움을 주며 해결해봐요" + /**인앱화면 연결 필요**/} + 1->{binding.itemIntroTitleTv.text="오늘은 또 어떤 정보가?" + binding.itemIntroDescTv.text="독립생활을 하는데 필요한 유용한\n정보들을 받아봐요"} + else->{binding.itemIntroTitleTv.text="우리 동네 안에서 서로서로" + binding.itemIntroDescTv.text="우리 동네 똑립이들과 친해지고, 공구하고,\n음식 배달비도 아껴봐요"} + } + + return binding.root + } +} \ No newline at end of file diff --git a/app/src/main/java/com/umc/ttoklip/presentation/intro/IntroVPAdapter.kt b/app/src/main/java/com/umc/ttoklip/presentation/intro/IntroVPAdapter.kt new file mode 100644 index 00000000..91738996 --- /dev/null +++ b/app/src/main/java/com/umc/ttoklip/presentation/intro/IntroVPAdapter.kt @@ -0,0 +1,10 @@ +package com.umc.ttoklip.presentation.intro + +import androidx.fragment.app.Fragment +import androidx.fragment.app.FragmentActivity +import androidx.viewpager2.adapter.FragmentStateAdapter + +class IntroVPAdapter(fa: FragmentActivity,private val count:Int) : FragmentStateAdapter(fa) { + override fun getItemCount(): Int = count + override fun createFragment(position: Int): Fragment=IntroFragment(position) +} \ No newline at end of file diff --git a/app/src/main/java/com/umc/ttoklip/presentation/intro/SplashActivity.kt b/app/src/main/java/com/umc/ttoklip/presentation/intro/SplashActivity.kt index 5d9d6820..5aea5ef0 100644 --- a/app/src/main/java/com/umc/ttoklip/presentation/intro/SplashActivity.kt +++ b/app/src/main/java/com/umc/ttoklip/presentation/intro/SplashActivity.kt @@ -1,13 +1,27 @@ package com.umc.ttoklip.presentation.intro +import android.content.Intent +import android.os.Handler +import android.os.Looper import com.umc.ttoklip.R import com.umc.ttoklip.databinding.ActivitySplashBinding +import com.umc.ttoklip.presentation.MainActivity import com.umc.ttoklip.presentation.base.BaseActivity +import com.umc.ttoklip.presentation.login.LoginActivity class SplashActivity:BaseActivity(R.layout.activity_splash) { override fun initView() { + val handler= Handler(Looper.getMainLooper()) + handler.postDelayed({ + val spf=getSharedPreferences("first", MODE_PRIVATE) + val firstRun=spf.getBoolean("firstRun",true) + if(firstRun){ + startActivity(Intent(this, IntroActivity::class.java)) + }else{ + startActivity(Intent(this, LoginActivity::class.java)) + } + },2000) } - override fun initObserver() { } } \ No newline at end of file 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 new file mode 100644 index 00000000..3c95448b --- /dev/null +++ b/app/src/main/java/com/umc/ttoklip/presentation/login/LoginActivity.kt @@ -0,0 +1,65 @@ +package com.umc.ttoklip.presentation.login + +import android.content.Intent +import android.content.SharedPreferences +import com.umc.ttoklip.R +import com.umc.ttoklip.databinding.ActivityLoginBinding +import com.umc.ttoklip.presentation.MainActivity +import com.umc.ttoklip.presentation.base.BaseActivity +import com.umc.ttoklip.presentation.signup.SignupActivity + +class LoginActivity:BaseActivity(R.layout.activity_login) { + + private var isSaveId:Boolean=false + + override fun initView() { + val spf=getSharedPreferences("id", MODE_PRIVATE) + loadSaveId(spf) + binding.loginLoginBtn.setOnClickListener { + setSaveId(isSaveId,spf) + startActivity(Intent(this, MainActivity::class.java)) + } + binding.loginSignupBtn.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() { + //super.onBackPressed() + } + + override fun initObserver() { + } + +} \ 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 new file mode 100644 index 00000000..ca657d08 --- /dev/null +++ b/app/src/main/java/com/umc/ttoklip/presentation/signup/SignupActivity.kt @@ -0,0 +1,28 @@ +package com.umc.ttoklip.presentation.signup + +import androidx.fragment.app.Fragment +import androidx.navigation.NavController +import androidx.navigation.Navigation +import androidx.navigation.fragment.NavHostFragment +import androidx.navigation.fragment.findNavController +import com.umc.ttoklip.R +import com.umc.ttoklip.databinding.ActivitySignupBinding +import com.umc.ttoklip.presentation.base.BaseActivity + +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 { + navController.popBackStack() + } + } + + override fun initObserver() { + } + + fun setTitle(title:String,step:Int){ + binding.loginTitleTv.text=title + binding.signupProgressbar.progress=step + } +} 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 new file mode 100644 index 00000000..9278c056 --- /dev/null +++ b/app/src/main/java/com/umc/ttoklip/presentation/signup/fragments/Signup1Fragment.kt @@ -0,0 +1,23 @@ +package com.umc.ttoklip.presentation.signup.fragments + +import android.content.Context +import androidx.activity.OnBackPressedCallback +import androidx.navigation.fragment.findNavController +import com.umc.ttoklip.R +import com.umc.ttoklip.databinding.FragmentSignup1Binding +import com.umc.ttoklip.presentation.base.BaseFragment +import com.umc.ttoklip.presentation.signup.SignupActivity + +class Signup1Fragment: BaseFragment(R.layout.fragment_signup1) { + + override fun initObserver() { + } + + override fun initView() { + val activity=activity as SignupActivity + activity?.setTitle("1단계 - 개인정보 입력",1) + binding.signup1NextBtn.setOnClickListener { + findNavController().navigate(R.id.action_signup1_fragment_to_signup2_fragment) + } + } +} \ 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 new file mode 100644 index 00000000..f2ecf49c --- /dev/null +++ b/app/src/main/java/com/umc/ttoklip/presentation/signup/fragments/Signup2Fragment.kt @@ -0,0 +1,26 @@ +package com.umc.ttoklip.presentation.signup.fragments + +import android.content.Context +import androidx.activity.OnBackPressedCallback +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 + +class Signup2Fragment: BaseFragment(R.layout.fragment_signup2) { + + private lateinit var callback:OnBackPressedCallback + + override fun initObserver() { + } + + override fun initView() { + val activity=activity as SignupActivity + activity?.setTitle("2단계 - 계정 설정",2) + binding.signup2NextBtn.setOnClickListener { + findNavController().navigate(R.id.action_signup2_fragment_to_signup3_fragment) + } + } +} \ 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 new file mode 100644 index 00000000..0131d4ff --- /dev/null +++ b/app/src/main/java/com/umc/ttoklip/presentation/signup/fragments/Signup3Fragment.kt @@ -0,0 +1,20 @@ +package com.umc.ttoklip.presentation.signup.fragments + +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) { + override fun initObserver() { + } + + override fun initView() { + val activity=activity as SignupActivity + activity?.setTitle("3단계 - 약관 동의",3) + binding.signup3NextBtn.setOnClickListener { + findNavController().navigate(R.id.action_signup3_fragment_to_signup4_fragment) + } + } +} \ 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 new file mode 100644 index 00000000..e1eca17b --- /dev/null +++ b/app/src/main/java/com/umc/ttoklip/presentation/signup/fragments/Signup4Fragment.kt @@ -0,0 +1,22 @@ +package com.umc.ttoklip.presentation.signup.fragments + +import android.content.Intent +import androidx.navigation.fragment.findNavController +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.signup.SignupActivity + +class Signup4Fragment: BaseFragment(R.layout.fragment_signup4) { + override fun initObserver() { + } + + override fun initView() { + val activity=activity as SignupActivity + activity?.setTitle("4단계 - 프로필 설정",4) + binding.signup4NextBtn.setOnClickListener { + startActivity(Intent(activity, MainActivity::class.java)) + } + } +} \ 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 4b25886a..74937332 100644 --- a/app/src/main/res/layout/activity_intro.xml +++ b/app/src/main/res/layout/activity_intro.xml @@ -2,13 +2,6 @@ - - - - - diff --git a/app/src/main/res/layout/activity_login.xml b/app/src/main/res/layout/activity_login.xml index e3d74079..0c02841d 100644 --- a/app/src/main/res/layout/activity_login.xml +++ b/app/src/main/res/layout/activity_login.xml @@ -1,205 +1,205 @@ - - - - - - + + - - + + - + android:orientation="vertical" + app:layout_constraintBottom_toTopOf="@id/login_signup_cl" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toBottomOf="@id/login_title_tv"> - - - + android:text="아이디" + android:textAppearance="@style/TextAppearance.App.14sp_700" /> + + + android:text="비밀번호" + android:textAppearance="@style/TextAppearance.App.14sp_700" /> - - + + android:id="@+id/login_saveId_cl" + android:layout_width="match_parent" + android:layout_height="wrap_content"> + - + app:layout_constraintTop_toTopOf="parent" /> - + - - + - + - + + + + + + + + + + + + + - - - + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintStart_toStartOf="parent"> - \ No newline at end of file + + + + + + + \ 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 9fbd0eb0..ad357886 100644 --- a/app/src/main/res/layout/activity_signup.xml +++ b/app/src/main/res/layout/activity_signup.xml @@ -1,70 +1,62 @@ - - + - + - + - + - + - \ No newline at end of file + + \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_intro.xml b/app/src/main/res/layout/fragment_intro.xml new file mode 100644 index 00000000..2a4d51e6 --- /dev/null +++ b/app/src/main/res/layout/fragment_intro.xml @@ -0,0 +1,43 @@ + + + + + + + + + + + + + \ 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 cc23fab3..1c272d1c 100644 --- a/app/src/main/res/layout/fragment_signup1.xml +++ b/app/src/main/res/layout/fragment_signup1.xml @@ -1,15 +1,17 @@ - + + + - \ No newline at end of file + + + + \ 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 35884f37..4b785fab 100644 --- a/app/src/main/res/layout/fragment_signup2.xml +++ b/app/src/main/res/layout/fragment_signup2.xml @@ -1,239 +1,269 @@ - - - - + - - - - - - + android:textSize="13sp" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toTopOf="parent" /> - - - - - + + + + + + + + + + + + android:text="사용이 가능한 아이디예요 :)" + android:textAppearance="@style/TextAppearance.App.12sp_500" + android:textColor="@color/blue" + android:textSize="11sp" + android:visibility="gone" + app:layout_constraintEnd_toEndOf="parent" /> + - + android:layout_marginTop="10dp" + android:text="중복된 아이디예요 ㅠㅠ" + android:textAppearance="@style/TextAppearance.App.12sp_500" + android:textColor="@color/orange" + android:textSize="11sp" + android:visibility="gone" + app:layout_constraintEnd_toEndOf="parent" /> + - + android:layout_marginTop="15dp" + android:text="비밀번호" + android:textAppearance="@style/TextAppearance.App.14sp_700" /> + + + + + + + + + + + + + + + + + + + + - + android:layout_marginTop="15dp" + android:text="비밀번호 확인" + android:textAppearance="@style/TextAppearance.App.14sp_700" /> - + - - - - + - - - - \ No newline at end of file + + + + + + + + \ 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 4b22ab55..c49b300e 100644 --- a/app/src/main/res/layout/fragment_signup3.xml +++ b/app/src/main/res/layout/fragment_signup3.xml @@ -1,175 +1,206 @@ - - - - - - + + - - - - - + + - - + + - + + + + + + + + + - - + + + + + + + + + + + + + + + android:layout_marginBottom="10dp"> + + + - - - - - - - - - - + + + + + - - - - \ No newline at end of file + android:layout_marginTop="10dp"> + + + + + + + + + + + \ 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 c1d6fbc9..6a944bbf 100644 --- a/app/src/main/res/layout/fragment_signup4.xml +++ b/app/src/main/res/layout/fragment_signup4.xml @@ -1,192 +1,234 @@ - - - - - - - - - - - - - - - + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toTopOf="parent"> - + android:layout_width="match_parent" + android:layout_height="match_parent"> + + + + android:id="@+id/signup4_profileImage_iv" + android:layout_width="95dp" + android:layout_height="95dp" + android:layout_marginTop="30dp" + android:src="@drawable/oval_fill_strok_1" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toBottomOf="@id/signup4_desc_tv" + app:tint="@color/gray40" /> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - \ No newline at end of file + + + \ No newline at end of file diff --git a/app/src/main/res/layout/item_intro.xml b/app/src/main/res/layout/item_intro.xml deleted file mode 100644 index 11ff2669..00000000 --- a/app/src/main/res/layout/item_intro.xml +++ /dev/null @@ -1,48 +0,0 @@ - - - - - - - - - - - \ 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 new file mode 100644 index 00000000..750f2fda --- /dev/null +++ b/app/src/main/res/navigation/signup_graph.xml @@ -0,0 +1,54 @@ + + + + + + + + + + + + + + + + + + + \ No newline at end of file