Skip to content

Commit

Permalink
fix : getParcelable 분리 #2
Browse files Browse the repository at this point in the history
  • Loading branch information
SeonHwan-Kim committed Apr 13, 2023
1 parent f2a8a64 commit e583d0b
Show file tree
Hide file tree
Showing 5 changed files with 28 additions and 22 deletions.
2 changes: 1 addition & 1 deletion app/src/main/java/org/android/go/sopt/data/User.kt
Original file line number Diff line number Diff line change
Expand Up @@ -9,4 +9,4 @@ data class User(
val password: String? = "",
val name: String? = "",
val specialty: String? = "",
): Parcelable
) : Parcelable
Original file line number Diff line number Diff line change
Expand Up @@ -12,9 +12,7 @@ import org.android.go.sopt.data.User
import org.android.go.sopt.presentation.main.MainActivity
import org.android.go.sopt.presentation.signup.SignUpActivity
import org.android.go.sopt.databinding.ActivityLoginBinding
import org.android.go.sopt.util.hideKeyboard
import org.android.go.sopt.util.showShortSnackbar
import org.android.go.sopt.util.showShortToast
import org.android.go.sopt.util.*


class LoginActivity : AppCompatActivity() {
Expand All @@ -40,7 +38,7 @@ class LoginActivity : AppCompatActivity() {
btMainLogin.setOnClickListener {
if (user !== null && user?.id == etMainId.text.toString() && user?.password == etMainPassword.text.toString()) {
val intent = Intent(this@LoginActivity, MainActivity::class.java)
intent.putExtra("user", user)
intent.putExtra(IntentKey.USER_DATA, user)
startActivity(intent)
showShortToast(getString(R.string.login_success_login_msg))
if (!isFinishing) finish()
Expand All @@ -56,11 +54,7 @@ class LoginActivity : AppCompatActivity() {
ActivityResultContracts.StartActivityForResult()
) { result: ActivityResult ->
if (result.resultCode == RESULT_OK) {
user = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) {
result.data?.getParcelableExtra("user", User::class.java)
} else {
result.data?.getParcelableExtra("user")
}
user = result.data?.getParcelable(IntentKey.USER_DATA, User::class.java)
Log.d("user", "---------\n$user")
showShortSnackbar(binding.root, getString(R.string.login_success_sign_up_msg))
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,8 @@ import org.android.go.sopt.R
import org.android.go.sopt.SearchFragment
import org.android.go.sopt.data.User
import org.android.go.sopt.databinding.ActivityMainBinding
import org.android.go.sopt.util.IntentKey
import org.android.go.sopt.util.getParcelable


class MainActivity : AppCompatActivity() {
Expand Down Expand Up @@ -45,11 +47,7 @@ class MainActivity : AppCompatActivity() {
}

private fun getUserData() {
val user: User? = if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU){
intent.getParcelableExtra("user", User::class.java)
} else{
intent.getParcelableExtra("user")
}
val user: User? = intent.getParcelable(IntentKey.USER_DATA, User::class.java)
binding.tvMainName.text = "이름 : ${user?.name}"
binding.tvMainSpecialty.text = "특기 : ${user?.specialty}"
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ import org.android.go.sopt.R
import org.android.go.sopt.data.User
import org.android.go.sopt.databinding.ActivitySignUpBinding
import org.android.go.sopt.presentation.login.LoginActivity
import org.android.go.sopt.util.IntentKey
import org.android.go.sopt.util.hideKeyboard
import org.android.go.sopt.util.showShortToast

Expand Down Expand Up @@ -44,15 +45,17 @@ class SignUpActivity : AppCompatActivity() {
showShortToast(getString(R.string.sign_up_specialty_err_msg))
} else {
val intent = Intent(this@SignUpActivity, LoginActivity::class.java)
intent.putExtra("user",User(
id.toString(),
password.toString(),
name.toString(),
specialty.toString()
))
intent.putExtra(
IntentKey.USER_DATA, User(
id.toString(),
password.toString(),
name.toString(),
specialty.toString()
)
)
setResult(RESULT_OK, intent)
// 만약 종료가 되지 않았다면 종료시키기
if(!isFinishing) finish()
if (!isFinishing) finish()
}
}
}
Expand Down
11 changes: 11 additions & 0 deletions app/src/main/java/org/android/go/sopt/util/IntentExtension.kt
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
package org.android.go.sopt.util

import android.content.Intent
import android.os.Build.VERSION.SDK_INT
import android.os.Build.VERSION_CODES.TIRAMISU
import android.os.Parcelable

fun <T : Parcelable?> Intent.getParcelable(key: String, clazz: Class<T>): T? = when {
SDK_INT >= TIRAMISU -> getParcelableExtra(key, clazz)
else -> getParcelableExtra(key) as? T
}

0 comments on commit e583d0b

Please sign in to comment.