diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index a65934a..8004036 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -12,6 +12,9 @@ android:supportsRtl="true" android:theme="@style/Theme.NoBet" tools:targetApi="31"> + diff --git a/app/src/main/java/kr/hs/anu/nobet/presentation/screen/login/LoginActivity.kt b/app/src/main/java/kr/hs/anu/nobet/presentation/screen/login/LoginActivity.kt new file mode 100644 index 0000000..60bb619 --- /dev/null +++ b/app/src/main/java/kr/hs/anu/nobet/presentation/screen/login/LoginActivity.kt @@ -0,0 +1,44 @@ +package kr.hs.anu.nobet.presentation.screen.login + +import android.os.Bundle +import androidx.activity.enableEdgeToEdge +import androidx.activity.viewModels +import androidx.appcompat.app.AppCompatActivity +import androidx.core.view.ViewCompat +import androidx.core.view.WindowInsetsCompat +import kr.hs.anu.nobet.R +import kr.hs.anu.nobet.databinding.ActivityLoginBinding +import kr.hs.anu.nobet.utils.openPage + +class LoginActivity : AppCompatActivity() { + + private val viewModel: LoginViewModel by viewModels() + private lateinit var binding: ActivityLoginBinding + + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + enableEdgeToEdge() + binding = ActivityLoginBinding.inflate(layoutInflater) + setContentView(binding.root) + ViewCompat.setOnApplyWindowInsetsListener(findViewById(R.id.main)) { v, insets -> + val systemBars = insets.getInsets(WindowInsetsCompat.Type.systemBars()) + v.setPadding(systemBars.left, systemBars.top, systemBars.right, systemBars.bottom) + insets + } + + // logo 누르면 홈으로 이동 + binding.ivTopbarLogo.setOnClickListener { + finish() + } + + // 로그인 -> 처리는 viewModel + binding.btnLogin.setOnClickListener { + viewModel.do_login() + } + + // 온라인 상담 바로가기 + binding.tvMobile.setOnClickListener { + this.openPage() + } + } +} diff --git a/app/src/main/java/kr/hs/anu/nobet/presentation/screen/login/LoginViewModel.kt b/app/src/main/java/kr/hs/anu/nobet/presentation/screen/login/LoginViewModel.kt new file mode 100644 index 0000000..61e5d0e --- /dev/null +++ b/app/src/main/java/kr/hs/anu/nobet/presentation/screen/login/LoginViewModel.kt @@ -0,0 +1,11 @@ +package kr.hs.anu.nobet.presentation.screen.login + +import androidx.lifecycle.ViewModel + +class LoginViewModel : ViewModel() { + // TODO 로그인 로직 + 데이터 처리 + + fun do_login() { + // TODO 로그인 로직 (카카오) + } +} diff --git a/app/src/main/java/kr/hs/anu/nobet/presentation/screen/main/MainActivity.kt b/app/src/main/java/kr/hs/anu/nobet/presentation/screen/main/MainActivity.kt index 2b8f746..86cc5cb 100644 --- a/app/src/main/java/kr/hs/anu/nobet/presentation/screen/main/MainActivity.kt +++ b/app/src/main/java/kr/hs/anu/nobet/presentation/screen/main/MainActivity.kt @@ -1,5 +1,6 @@ package kr.hs.anu.nobet.presentation.screen.main +import android.content.Intent import android.graphics.Color import android.graphics.PorterDuff import android.os.Bundle @@ -18,6 +19,7 @@ import androidx.core.view.ViewCompat import androidx.core.view.WindowInsetsCompat import kr.hs.anu.nobet.R import kr.hs.anu.nobet.databinding.ActivityMainBinding +import kr.hs.anu.nobet.presentation.screen.login.LoginActivity class MainActivity : AppCompatActivity() { @@ -96,8 +98,8 @@ class MainActivity : AppCompatActivity() { // TODO 이동 처리는 다음 branch 에서 화면 만들고 거기서 이어줄 예정 popupMenu.findViewById(R.id.menu_login).setOnClickListener { - // TODO 로그인 화면으로 이동 - Toast.makeText(anchor.context, "로그인 클릭됨", Toast.LENGTH_SHORT).show() + val intent = Intent(this, LoginActivity::class.java) + startActivity(intent) popupWindow.dismiss() } diff --git a/app/src/main/java/kr/hs/anu/nobet/utils/IntentExtensions.kt b/app/src/main/java/kr/hs/anu/nobet/utils/IntentExtensions.kt new file mode 100644 index 0000000..e472a01 --- /dev/null +++ b/app/src/main/java/kr/hs/anu/nobet/utils/IntentExtensions.kt @@ -0,0 +1,17 @@ +package kr.hs.anu.nobet.utils + +import android.content.Context +import android.content.Intent +import android.widget.Toast +import androidx.core.net.toUri + +// 온라인 상담 바로가기 구현 +fun Context.openPage() { + val url = "https://www.kcgp.or.kr/portal/main/main.do" + try { + val intent = Intent(Intent.ACTION_VIEW, url.toUri()) + startActivity(intent) + } catch (e: Exception) { + Toast.makeText(this, "페이지를 열 수 없습니다.", Toast.LENGTH_SHORT).show() + } +} diff --git a/app/src/main/res/drawable/login_btn_background.xml b/app/src/main/res/drawable/login_btn_background.xml new file mode 100644 index 0000000..1e4d8c8 --- /dev/null +++ b/app/src/main/res/drawable/login_btn_background.xml @@ -0,0 +1,6 @@ + + + + + \ 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 new file mode 100644 index 0000000..162f212 --- /dev/null +++ b/app/src/main/res/layout/activity_login.xml @@ -0,0 +1,166 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml index 061053e..dd6deed 100644 --- a/app/src/main/res/layout/activity_main.xml +++ b/app/src/main/res/layout/activity_main.xml @@ -91,6 +91,7 @@ android:layout_marginTop="5dp" android:fontFamily="@font/pretendard_medium" android:text="@string/off_view_title" + android:textColor="@color/black" android:textSize="@dimen/body_2" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent"