Skip to content

Commit

Permalink
feat: 회원가입에서 로그인 화면으로 id, pw 전달하는 기능을 DataBinding으로 변경
Browse files Browse the repository at this point in the history
refactor: 패키지 이름이 소문자로 시작하게 명명
  • Loading branch information
rlaxodud214 committed Mar 28, 2024
1 parent fe5c38c commit 8d32a52
Show file tree
Hide file tree
Showing 11 changed files with 327 additions and 326 deletions.
12 changes: 0 additions & 12 deletions .idea/deploymentTargetDropDown.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

7 changes: 7 additions & 0 deletions .idea/misc.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

3 changes: 3 additions & 0 deletions app/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,9 @@ android {
kotlinOptions {
jvmTarget = "1.8"
}
buildFeatures {
dataBinding = true
}
}

dependencies {
Expand Down
3 changes: 2 additions & 1 deletion app/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
<manifest
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools">

<application
Expand Down
34 changes: 10 additions & 24 deletions app/src/main/java/com/example/introduce/SignInActivity.kt
Original file line number Diff line number Diff line change
Expand Up @@ -2,24 +2,18 @@ package com.example.introduce

import android.app.Activity
import android.content.Intent
import android.os.Build
import android.os.Bundle
import android.util.Log
import android.widget.Button
import android.widget.EditText
import android.widget.Toast
import androidx.activity.result.contract.ActivityResultContracts
import androidx.annotation.RequiresApi
import androidx.appcompat.app.AppCompatActivity
import com.example.introduce.Domain.UserData
import androidx.databinding.DataBindingUtil
import com.example.introduce.domain.UserData
import com.example.introduce.databinding.ActivitySignInBinding

class SignInActivity : AppCompatActivity() {
private val editTextID by lazy { findViewById<EditText>(R.id.et_id) }
private val editTextPW by lazy { findViewById<EditText>(R.id.et_pw) }
private val signInButton by lazy { findViewById<Button>(R.id.btn_signIn) }
private val signUpButton by lazy { findViewById<Button>(R.id.btn_signUp) }

private lateinit var userData: UserData
private lateinit var binding: ActivitySignInBinding

/* ref: https://android-developer.tistory.com/7
startActivityForResult는 Deprecated되고, 대체로 registerForActivityResult를 사용함
Expand All @@ -44,44 +38,36 @@ class SignInActivity : AppCompatActivity() {
// userData = result.data?.getSerializableExtra("userData", UserData::class.java)!!
userData = result.data?.getSerializableExtra("userData") as UserData

if (this::userData.isInitialized) {
userData.run {
editTextID.setText(id)
editTextPW.setText(password)
Log.d("Debuging userID", id)
Log.d("Debuging userPW", password)
}

}
binding.user = userData
}
}

override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_sign_in)
binding = DataBindingUtil.setContentView(this, R.layout.activity_sign_in)

initSignInButton()
initSignUpButton()
}

private fun initSignInButton() {
signInButton.setOnClickListener {
if (isEmpty(editTextID) || isEmpty(editTextPW)) {
binding.btnSignIn.setOnClickListener {
if (isEmpty(binding.etId) || isEmpty(binding.etPw)) {
Toast.makeText(this, "아이디/비밀번호를 확인해주세요", Toast.LENGTH_LONG).show()
return@setOnClickListener
}
Toast.makeText(this, "로그인 성공", Toast.LENGTH_SHORT).show()

val intent = Intent(this, HomeActivity::class.java)
intent.putExtra("userID", editTextID.text.toString()) // userID
intent.putExtra("userID", binding.etId.text.toString()) // userID
startActivity(intent)
}
}

private fun isEmpty(editText: EditText) = editText.text.isEmpty()

private fun initSignUpButton() {
signUpButton.setOnClickListener {
binding.btnSignUp.setOnClickListener {
val intent = Intent(this, SignUpActivity::class.java)

resultLauncher.launch(intent)
Expand Down
4 changes: 2 additions & 2 deletions app/src/main/java/com/example/introduce/SignUpActivity.kt
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,8 @@ import android.widget.EditText
import android.widget.Toast
import androidx.appcompat.app.AppCompatActivity
import androidx.lifecycle.ViewModelProvider
import com.example.introduce.ViewModel.UserDataViewModel
import com.example.introduce.Domain.UserData
import com.example.introduce.viewModel.UserDataViewModel
import com.example.introduce.domain.UserData

class SignUpActivity : AppCompatActivity() {
private val editTextName by lazy { findViewById<EditText>(R.id.et_name) }
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.example.introduce.Domain
package com.example.introduce.domain

import java.io.Serializable

Expand Down
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
package com.example.introduce.ViewModel
package com.example.introduce.viewModel

import android.util.Log
import androidx.lifecycle.LiveData
import androidx.lifecycle.MutableLiveData
import androidx.lifecycle.ViewModel
import com.example.introduce.Domain.UserData
import com.example.introduce.domain.UserData
import java.util.regex.Pattern

class UserDataViewModel : ViewModel() {
Expand Down
135 changes: 70 additions & 65 deletions app/src/main/res/layout/activity_home.xml
Original file line number Diff line number Diff line change
@@ -1,82 +1,87 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/Home"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:weightSum="4.0"
android:padding="24dp"
android:background="@color/white"
tools:context=".SignInActivity">

<ImageView
android:id="@+id/iv_profileImg"
android:layout_width="match_parent"
android:layout_height="0dp"
android:src="@drawable/ic_intj"
android:layout_weight="1.0" />
<layout>

<LinearLayout
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/Home"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_height="match_parent"
android:orientation="vertical"
android:layout_weight="2"
android:layout_marginTop="24dp">
android:weightSum="4.0"
android:padding="24dp"
android:background="@color/white"
tools:context=".SignInActivity">

<TextView
android:id="@+id/tv_user_id"
<ImageView
android:id="@+id/iv_profileImg"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center_horizontal"
style="@style/textStyle_Bold16"
android:text="아이디 : "/>
android:layout_height="0dp"
android:src="@drawable/ic_intj"
android:layout_weight="1.0" />

<TextView
android:id="@+id/tv_user_name"
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center_horizontal"
android:layout_marginTop="32dp"
style="@style/textStyle_Bold16"
android:text="이름 : "/>
android:layout_height="0dp"
android:orientation="vertical"
android:layout_weight="2"
android:layout_marginTop="24dp">

<TextView
android:id="@+id/tv_user_age"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center_horizontal"
android:layout_marginTop="32dp"
style="@style/textStyle_Bold16"
android:text="나이 : "/>
<TextView
android:id="@+id/tv_user_id"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center_horizontal"
style="@style/textStyle_Bold16"
android:text="아이디 : "/>

<TextView
android:id="@+id/tv_user_mbti"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center_horizontal"
android:layout_marginTop="32dp"
style="@style/textStyle_Bold16"
android:text="MBTI : "/>
</LinearLayout>
<TextView
android:id="@+id/tv_user_name"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center_horizontal"
android:layout_marginTop="32dp"
style="@style/textStyle_Bold16"
android:text="이름 : "/>

<LinearLayout
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:gravity="bottom"
android:layout_marginTop="24dp">
<TextView
android:id="@+id/tv_user_age"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center_horizontal"
android:layout_marginTop="32dp"
style="@style/textStyle_Bold16"
android:text="나이 : "/>

<TextView
android:id="@+id/tv_user_mbti"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center_horizontal"
android:layout_marginTop="32dp"
style="@style/textStyle_Bold16"
android:text="MBTI : "/>
</LinearLayout>

<Button
android:id="@+id/btn_exit"
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="8dp"
android:text="@string/exit"
style="@style/textStyle_Bold16"
android:textColor="@color/white"/>
android:layout_height="0dp"
android:layout_weight="1"
android:gravity="bottom"
android:layout_marginTop="24dp">

<Button
android:id="@+id/btn_exit"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="8dp"
android:text="@string/exit"
style="@style/textStyle_Bold16"
android:textColor="@color/white"/>

</LinearLayout>

</LinearLayout>

</LinearLayout>
</layout>
Loading

0 comments on commit 8d32a52

Please sign in to comment.