Skip to content

Commit 335437a

Browse files
committed
[ADD/#50] PhoneActivity 설정 및 intent 연결
1 parent d881273 commit 335437a

File tree

6 files changed

+140
-44
lines changed

6 files changed

+140
-44
lines changed

app/src/main/AndroidManifest.xml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -117,6 +117,11 @@
117117
android:exported="false"
118118
android:screenOrientation="portrait" />
119119

120+
<activity
121+
android:name="co.orange.presentation.auth.phone.PhoneActivity"
122+
android:exported="false"
123+
android:screenOrientation="portrait" />
124+
120125
<activity
121126
android:name="co.orange.presentation.auth.phone.SmsAuthActivity"
122127
android:exported="false"
Lines changed: 40 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -1,46 +1,47 @@
11
<!DOCTYPE html>
22
<html>
3-
<head>
4-
<meta charset="utf-8"/>
5-
<meta name="viewport" content="width=device-width, initial-scale=1.0">
3+
<head>
4+
<meta charset="utf-8"/>
5+
<meta name="viewport" content="width=device-width, initial-scale=1.0">
66

7-
<!-- jQuery -->
8-
<script type="text/javascript" src="https://code.jquery.com/jquery-latest.min.js"></script>
9-
<!-- iamport.payment.js -->
10-
<script type="text/javascript" src="https://cdn.iamport.kr/js/iamport.payment-1.2.0.js"></script>
11-
</head>
7+
<!-- jQuery -->
8+
<script type="text/javascript" src="https://code.jquery.com/jquery-latest.min.js"></script>
9+
<!-- iamport.payment.js -->
10+
<script type="text/javascript"
11+
src="https://cdn.iamport.kr/js/iamport.payment-1.2.0.js"></script>
12+
</head>
1213

13-
<body>
14-
<script type="text/javascript">
15-
document.addEventListener("DOMContentLoaded", function() {
16-
IMP.init("imp24882465");
14+
<body>
15+
<script type="text/javascript">
16+
document.addEventListener("DOMContentLoaded", function() {
17+
IMP.init("imp24882465");
1718

18-
IMP.certification(
19-
{
20-
merchant_uid: "MIIddanzi1",
21-
m_redirect_url: "{리디렉션 될 URL}",
22-
popup: false,
23-
},
24-
function (rsp) {
25-
if (rsp.success) {
26-
jQuery.ajax({
27-
url: "{서버의 인증 정보를 받는 endpoint}",
28-
method: "POST",
29-
headers: { "Content-Type": "application/json" },
30-
data: JSON.stringify({ imp_uid: rsp.imp_uid }),
31-
success: function(response) {
32-
window.AndroidBridge.resultAuth('success', rsp.imp_uid);
33-
},
34-
error: function(xhr, status, error) {
35-
window.AndroidBridge.resultAuth('failure');
36-
}
37-
});
38-
} else {
39-
alert("인증에 실패하였습니다. 에러 내용: " + rsp.error_msg);
19+
IMP.certification(
20+
{
21+
merchant_uid: "MIIddanzi1",
22+
m_redirect_url: "{리디렉션 될 URL}",
23+
popup: false,
24+
},
25+
function (rsp) {
26+
if (rsp.success) {
27+
jQuery.ajax({
28+
url: "{서버의 인증 정보를 받는 endpoint}",
29+
method: "POST",
30+
headers: { "Content-Type": "application/json" },
31+
data: JSON.stringify({ imp_uid: rsp.imp_uid }),
32+
success: function(response) {
33+
window.AndroidBridge.resultAuth(true, rsp.imp_uid);
34+
},
35+
error: function(xhr, status, error) {
36+
window.AndroidBridge.resultAuth(false);
4037
}
41-
}
42-
);
43-
});
44-
</script>
45-
</body>
38+
});
39+
} else {
40+
alert("인증에 실패하였습니다. 에러 내용: " + rsp.error_msg);
41+
}
42+
}
43+
);
44+
});
45+
</script>
46+
</body>
4647
</html>
Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
package co.orange.presentation.auth.phone
2+
3+
import android.content.Intent
4+
import android.os.Bundle
5+
import co.orange.core.base.BaseActivity
6+
import co.orange.core.extension.setOnSingleClickListener
7+
import co.orange.core.extension.toast
8+
import dagger.hilt.android.AndroidEntryPoint
9+
import kr.genti.presentation.R
10+
import kr.genti.presentation.databinding.ActivityPhoneBinding
11+
12+
@AndroidEntryPoint
13+
class PhoneActivity : BaseActivity<ActivityPhoneBinding>(R.layout.activity_phone) {
14+
override fun onCreate(savedInstanceState: Bundle?) {
15+
super.onCreate(savedInstanceState)
16+
17+
initAuthBtnListener()
18+
}
19+
20+
private fun initAuthBtnListener() {
21+
binding.btnPhoneAuth.setOnSingleClickListener {
22+
SmsAuthActivity.createIntent(this).apply {
23+
startActivityForResult(this, SMS_AUTH_REQ_CODE)
24+
}
25+
}
26+
}
27+
28+
override fun onActivityResult(
29+
requestCode: Int,
30+
resultCode: Int,
31+
data: Intent?,
32+
) {
33+
super.onActivityResult(requestCode, resultCode, data)
34+
35+
if (requestCode == SMS_AUTH_REQ_CODE) {
36+
data?.let {
37+
toast("${it.getStringExtra(EXTRA_IMP_UID)}")
38+
}
39+
}
40+
}
41+
42+
companion object {
43+
const val SMS_AUTH_REQ_CODE = 202
44+
45+
const val EXTRA_IS_SUCCESS = "EXTRA_IS_SUCCESS"
46+
const val EXTRA_IMP_UID = "EXTRA_IMP_UID"
47+
}
48+
}

presentation/src/main/java/co/orange/presentation/auth/phone/SmsAuthActivity.kt

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
package co.orange.presentation.auth.phone
22

3+
import android.content.Context
4+
import android.content.Intent
35
import android.os.Bundle
46
import android.view.KeyEvent
57
import android.view.View
@@ -57,5 +59,11 @@ class SmsAuthActivity : BaseActivity<ActivitySmsAuthBinding>(R.layout.activity_s
5759

5860
companion object {
5961
const val ANDROID_BRIDGE = "AndroidBridge"
62+
63+
@JvmStatic
64+
fun createIntent(context: Context): Intent =
65+
Intent(context, SmsAuthFactory::class.java).apply {
66+
flags = Intent.FLAG_ACTIVITY_SINGLE_TOP
67+
}
6068
}
6169
}

presentation/src/main/java/co/orange/presentation/auth/phone/SmsAuthFactory.kt

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,22 +4,24 @@ import android.app.Activity
44
import android.app.Activity.RESULT_OK
55
import android.content.Intent
66
import android.webkit.JavascriptInterface
7+
import co.orange.presentation.auth.phone.PhoneActivity.Companion.EXTRA_IMP_UID
8+
import co.orange.presentation.auth.phone.PhoneActivity.Companion.EXTRA_IS_SUCCESS
79

810
class SmsAuthFactory(private val activity: Activity) {
911
@JavascriptInterface
1012
fun resultAuth(
11-
message: String,
13+
isSuccess: Boolean,
1214
impUid: String?,
1315
) {
1416
val intent = Intent()
1517

16-
if (message == "success" && impUid != null) {
17-
intent.putExtra("result", "success")
18-
intent.putExtra("imp_uid", impUid)
18+
if (isSuccess && impUid != null) {
19+
intent.putExtra(EXTRA_IS_SUCCESS, true)
20+
intent.putExtra(EXTRA_IMP_UID, impUid)
1921
activity.setResult(RESULT_OK, intent)
2022
activity.finish()
2123
} else {
22-
intent.putExtra("result", "failure")
24+
intent.putExtra(EXTRA_IS_SUCCESS, false)
2325
activity.setResult(RESULT_OK, intent)
2426
activity.finish()
2527
}
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<layout xmlns:android="http://schemas.android.com/apk/res/android"
3+
xmlns:app="http://schemas.android.com/apk/res-auto">
4+
5+
<data>
6+
7+
</data>
8+
9+
<androidx.constraintlayout.widget.ConstraintLayout
10+
android:layout_width="match_parent"
11+
android:layout_height="match_parent">
12+
13+
<TextView
14+
android:id="@+id/btn_phone_auth"
15+
style="@style/TextAppearance.DDanzi.Body3"
16+
android:layout_width="0dp"
17+
android:layout_height="wrap_content"
18+
android:layout_marginHorizontal="22dp"
19+
android:layout_marginBottom="30dp"
20+
android:background="@drawable/shape_black_fill_10_rect"
21+
android:gravity="center"
22+
android:paddingVertical="16dp"
23+
android:text="본인 인증하기"
24+
android:textColor="@color/white"
25+
app:layout_constraintBottom_toBottomOf="parent"
26+
app:layout_constraintEnd_toEndOf="parent"
27+
app:layout_constraintStart_toStartOf="parent"
28+
app:layout_constraintTop_toTopOf="parent" />
29+
30+
31+
</androidx.constraintlayout.widget.ConstraintLayout>
32+
</layout>

0 commit comments

Comments
 (0)