Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions app/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,9 @@
android:supportsRtl="true"
android:theme="@style/Theme.NoBet"
tools:targetApi="31">
<activity
android:name=".presentation.screen.login.LoginActivity"
android:exported="false" />
<activity
android:name=".presentation.screen.main.MainActivity"
android:exported="true">
Expand Down
Original file line number Diff line number Diff line change
@@ -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()
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
package kr.hs.anu.nobet.presentation.screen.login

import androidx.lifecycle.ViewModel

class LoginViewModel : ViewModel() {
// TODO 로그인 로직 + 데이터 처리

fun do_login() {
// TODO 로그인 로직 (카카오)
}
}
Original file line number Diff line number Diff line change
@@ -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
Expand All @@ -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() {

Expand Down Expand Up @@ -96,8 +98,8 @@ class MainActivity : AppCompatActivity() {

// TODO 이동 처리는 다음 branch 에서 화면 만들고 거기서 이어줄 예정
popupMenu.findViewById<ConstraintLayout>(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()
}

Expand Down
17 changes: 17 additions & 0 deletions app/src/main/java/kr/hs/anu/nobet/utils/IntentExtensions.kt
Original file line number Diff line number Diff line change
@@ -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()
}
}
6 changes: 6 additions & 0 deletions app/src/main/res/drawable/login_btn_background.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<solid android:color="#FEE500" />
<corners android:radius="@dimen/radius_1" />
</shape>
166 changes: 166 additions & 0 deletions app/src/main/res/layout/activity_login.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,166 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout 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/main"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".presentation.screen.login.LoginActivity">

<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/layout_topBar"
android:layout_width="match_parent"
android:layout_height="54dp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent">

<ImageView
android:id="@+id/iv_topbar_logo"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="20dp"
android:src="@drawable/top_bar_logo"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />

</androidx.constraintlayout.widget.ConstraintLayout>

<TextView
android:id="@+id/tv_top_title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="60dp"
android:fontFamily="@font/pretendard_regular"
android:text="@string/top_title"
android:textColor="@color/gray"
android:textSize="@dimen/body_5"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/layout_topBar" />

<ImageView
android:id="@+id/iv_person"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="75dp"
android:src="@drawable/ic_person"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/tv_top_title" />

<TextView
android:id="@+id/tv_title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:fontFamily="@font/pretendard_medium"
android:text="로그인"
android:textColor="@color/black"
android:textSize="@dimen/body_2"
app:layout_constraintEnd_toEndOf="@id/iv_person"
app:layout_constraintStart_toStartOf="@id/iv_person"
app:layout_constraintTop_toBottomOf="@id/iv_person" />

<TextView
android:id="@+id/tv_sub_title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="5dp"
android:fontFamily="@font/pretendard_regular"
android:text="간편하게 로그인하고 서비스를 이용하세요"
android:textColor="@color/gray"
android:textSize="@dimen/body_5"
app:layout_constraintEnd_toEndOf="@id/iv_person"
app:layout_constraintStart_toStartOf="@id/iv_person"
app:layout_constraintTop_toBottomOf="@id/tv_title" />

<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/btn_login"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginHorizontal="20dp"
android:layout_marginTop="145dp"
android:background="@drawable/login_btn_background"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/tv_sub_title">

<ImageView
android:id="@+id/iv_chat"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="86dp"
android:paddingVertical="15dp"
android:src="@drawable/ic_chat"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />

<TextView
android:id="@+id/tv_login"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="10dp"
android:fontFamily="@font/pretendard_medium"
android:text="카카오톡으로 계속하기"
android:textColor="@color/black"
android:textSize="@dimen/body_4"
app:layout_constraintBottom_toBottomOf="@id/iv_chat"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="@id/iv_chat" />
</androidx.constraintlayout.widget.ConstraintLayout>

<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/layout_gambling_prevent_info_box"
android:layout_width="0dp"
android:layout_height="30dp"
android:layout_marginHorizontal="20dp"
android:layout_marginBottom="20dp"
android:background="@drawable/gambling_prevent_info_box"
android:paddingHorizontal="10dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent">

<TextView
android:id="@+id/tv_num_info"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="10dp"
android:fontFamily="@font/pretendard_medium"
android:text="@string/num_info"
android:textColor="@color/black"
android:textSize="@dimen/body_6"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />

<TextView
android:id="@+id/line"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="|"
android:textColor="@color/gray"
android:textSize="@dimen/body_5"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toStartOf="@id/tv_mobile"
app:layout_constraintStart_toEndOf="@id/tv_num_info"
app:layout_constraintTop_toTopOf="parent" />

<TextView
android:id="@+id/tv_mobile"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="10dp"
android:fontFamily="@font/pretendard_medium"
android:text="@string/mobile_info"
android:textColor="@color/blue"
android:textSize="@dimen/body_6"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
1 change: 1 addition & 0 deletions app/src/main/res/layout/activity_main.xml
Original file line number Diff line number Diff line change
Expand Up @@ -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"
Expand Down