From cacb07ac9441fabce2dccadbfdaca66a18d90b0b Mon Sep 17 00:00:00 2001 From: bhindor Date: Tue, 17 Jun 2025 23:00:47 +0900 Subject: [PATCH 01/10] =?UTF-8?q?=E2=9A=A1=20::=20main=20view?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 메인 화면 UI 작성 --- .../res/drawable/block_btn_background.xml | 5 + .../drawable/gambling_prevent_info_box.xml | 7 + app/src/main/res/layout/activity_main.xml | 169 ++++++++++++++++-- app/src/main/res/values/colors.xml | 1 + app/src/main/res/values/strings.xml | 4 + 5 files changed, 167 insertions(+), 19 deletions(-) create mode 100644 app/src/main/res/drawable/block_btn_background.xml create mode 100644 app/src/main/res/drawable/gambling_prevent_info_box.xml diff --git a/app/src/main/res/drawable/block_btn_background.xml b/app/src/main/res/drawable/block_btn_background.xml new file mode 100644 index 0000000..2b18622 --- /dev/null +++ b/app/src/main/res/drawable/block_btn_background.xml @@ -0,0 +1,5 @@ + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/gambling_prevent_info_box.xml b/app/src/main/res/drawable/gambling_prevent_info_box.xml new file mode 100644 index 0000000..fa75c2f --- /dev/null +++ b/app/src/main/res/drawable/gambling_prevent_info_box.xml @@ -0,0 +1,7 @@ + + + + + + \ 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 4820839..cc6bde7 100644 --- a/app/src/main/res/layout/activity_main.xml +++ b/app/src/main/res/layout/activity_main.xml @@ -1,19 +1,150 @@ - - - - - - \ No newline at end of file + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/src/main/res/values/colors.xml b/app/src/main/res/values/colors.xml index a7aaeea..838b5fb 100644 --- a/app/src/main/res/values/colors.xml +++ b/app/src/main/res/values/colors.xml @@ -5,4 +5,5 @@ #BEBEBE #2F2F2F #FFFFFF + #0087C0 \ No newline at end of file diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index f3ac112..044035f 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -1,3 +1,7 @@ NoBet + Gambling Site Blocker + 클릭 한 번으로 안심할 수 있어요 + 365일 오전 9시 ~ 오후 10시까지 국번 없이 “1336” + 온라인 상담 바로가기 \ No newline at end of file From c012de0f7751d962c53c54faec61f8f45875e29f Mon Sep 17 00:00:00 2001 From: bhindor Date: Tue, 17 Jun 2025 23:01:39 +0900 Subject: [PATCH 02/10] =?UTF-8?q?=E2=9A=A1=20::=20file=20name=20modify?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 파일명 변경 --- app/src/main/AndroidManifest.xml | 2 +- .../{presentatoin => presentation}/screen/main/MainActivity.kt | 2 +- app/src/main/res/layout/activity_main.xml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) rename app/src/main/java/kr/hs/anu/nobet/{presentatoin => presentation}/screen/main/MainActivity.kt (94%) diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index f88e35f..a65934a 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -13,7 +13,7 @@ android:theme="@style/Theme.NoBet" tools:targetApi="31"> diff --git a/app/src/main/java/kr/hs/anu/nobet/presentatoin/screen/main/MainActivity.kt b/app/src/main/java/kr/hs/anu/nobet/presentation/screen/main/MainActivity.kt similarity index 94% rename from app/src/main/java/kr/hs/anu/nobet/presentatoin/screen/main/MainActivity.kt rename to app/src/main/java/kr/hs/anu/nobet/presentation/screen/main/MainActivity.kt index b88bdb5..dea25dc 100644 --- a/app/src/main/java/kr/hs/anu/nobet/presentatoin/screen/main/MainActivity.kt +++ b/app/src/main/java/kr/hs/anu/nobet/presentation/screen/main/MainActivity.kt @@ -1,4 +1,4 @@ -package kr.hs.anu.nobet.presentatoin.screen.main +package kr.hs.anu.nobet.presentation.screen.main import android.os.Bundle import androidx.activity.enableEdgeToEdge diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml index cc6bde7..061053e 100644 --- a/app/src/main/res/layout/activity_main.xml +++ b/app/src/main/res/layout/activity_main.xml @@ -5,7 +5,7 @@ android:id="@+id/main" android:layout_width="match_parent" android:layout_height="match_parent" - tools:context=".presentatoin.screen.main.MainActivity"> + tools:context=".presentation.screen.main.MainActivity"> Date: Tue, 8 Jul 2025 13:46:46 +0900 Subject: [PATCH 03/10] =?UTF-8?q?=E2=9A=A1=EF=B8=8F=20::=20MainViewModel?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 메인 뷰 모델 세팅 --- .../presentation/screen/main/MainViewModel.kt | 17 +++++++++++++++++ app/src/main/res/drawable/block_btn_on.xml | 4 ++++ 2 files changed, 21 insertions(+) create mode 100644 app/src/main/java/kr/hs/anu/nobet/presentation/screen/main/MainViewModel.kt create mode 100644 app/src/main/res/drawable/block_btn_on.xml diff --git a/app/src/main/java/kr/hs/anu/nobet/presentation/screen/main/MainViewModel.kt b/app/src/main/java/kr/hs/anu/nobet/presentation/screen/main/MainViewModel.kt new file mode 100644 index 0000000..e0778e3 --- /dev/null +++ b/app/src/main/java/kr/hs/anu/nobet/presentation/screen/main/MainViewModel.kt @@ -0,0 +1,17 @@ +package kr.hs.anu.nobet.presentation.screen.main + +import androidx.lifecycle.LiveData +import androidx.lifecycle.MutableLiveData +import androidx.lifecycle.ViewModel + +class MainViewModel : ViewModel() { + + //버튼 상태 + private val _btnState = MutableLiveData(false) + val btnState : LiveData = _btnState + + //버튼 상태 관리 + fun toggle() { + _btnState.value = !(_btnState.value ?: false) + } +} \ No newline at end of file diff --git a/app/src/main/res/drawable/block_btn_on.xml b/app/src/main/res/drawable/block_btn_on.xml new file mode 100644 index 0000000..e5d6be9 --- /dev/null +++ b/app/src/main/res/drawable/block_btn_on.xml @@ -0,0 +1,4 @@ + + + + \ No newline at end of file From 0a0ba44febf3787d306b5c8d9ab1b2e4b4fbcc55 Mon Sep 17 00:00:00 2001 From: bhindor Date: Tue, 8 Jul 2025 13:47:54 +0900 Subject: [PATCH 04/10] =?UTF-8?q?=E2=9A=A1=EF=B8=8F=20::=20power=5Fstate?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 메인 버튼 상태 관리 및 상태에 따른 UI 변화 --- .../presentation/screen/main/MainActivity.kt | 25 +++++++++++++++++++ app/src/main/res/drawable/block_btn_on.xml | 5 ++-- app/src/main/res/values/strings.xml | 1 + 3 files changed, 29 insertions(+), 2 deletions(-) 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 dea25dc..5995ec7 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,14 +1,19 @@ package kr.hs.anu.nobet.presentation.screen.main +import android.graphics.PorterDuff import android.os.Bundle import androidx.activity.enableEdgeToEdge +import androidx.activity.viewModels import androidx.appcompat.app.AppCompatActivity +import androidx.core.content.ContextCompat import androidx.core.view.ViewCompat import androidx.core.view.WindowInsetsCompat import kr.hs.anu.nobet.R import kr.hs.anu.nobet.databinding.ActivityMainBinding class MainActivity : AppCompatActivity() { + + private val viewModel : MainViewModel by viewModels() private lateinit var binding: ActivityMainBinding override fun onCreate(savedInstanceState: Bundle?) { @@ -21,5 +26,25 @@ class MainActivity : AppCompatActivity() { v.setPadding(systemBars.left, systemBars.top, systemBars.right, systemBars.bottom) insets } + + //버튼 상태값 읽고 값에 따라 상태 바꾸기 + viewModel.btnState.observe(this) { btnState -> + //차단 전원 버튼 색 변경 + binding.layoutBlockBtn.setBackgroundResource ( + if(btnState) R.drawable.block_btn_on else R.drawable.block_btn_background + ) + + //차단된 사이트 수 텍스트 색 변경 + val block_txt_color = ContextCompat.getColor(this, if (btnState) R.color.red else R.color.gray) + binding.tvBlockNum.setTextColor(block_txt_color) + + //차단 전원 버튼 아이콘 색 변경 + val power_icon_color = ContextCompat.getColor(this, if(btnState) R.color.white else R.color.black) + binding.ivPower.setColorFilter(power_icon_color, PorterDuff.Mode.SRC_IN) + } + + binding.layoutBlockBtn.setOnClickListener { + viewModel.toggle() + } } } diff --git a/app/src/main/res/drawable/block_btn_on.xml b/app/src/main/res/drawable/block_btn_on.xml index e5d6be9..abc1a8d 100644 --- a/app/src/main/res/drawable/block_btn_on.xml +++ b/app/src/main/res/drawable/block_btn_on.xml @@ -1,4 +1,5 @@ - - + + \ No newline at end of file diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 044035f..94658ee 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -2,6 +2,7 @@ NoBet Gambling Site Blocker 클릭 한 번으로 안심할 수 있어요 + 안전하게 방어중이에요! 365일 오전 9시 ~ 오후 10시까지 국번 없이 “1336” 온라인 상담 바로가기 \ No newline at end of file From 618619c9c3db004e0c49fec52b2d28e555274770 Mon Sep 17 00:00:00 2001 From: bhindor Date: Tue, 8 Jul 2025 14:05:25 +0900 Subject: [PATCH 05/10] =?UTF-8?q?=E2=9A=A1=EF=B8=8F=20::=20block=5Ftitle?= =?UTF-8?q?=5Fstate=20change?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 방어 문구 상태에 따른 변경 & 코드 정리 --- .../presentation/screen/main/MainActivity.kt | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) 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 5995ec7..3b7469f 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 @@ -13,7 +13,7 @@ import kr.hs.anu.nobet.databinding.ActivityMainBinding class MainActivity : AppCompatActivity() { - private val viewModel : MainViewModel by viewModels() + private val viewModel: MainViewModel by viewModels() private lateinit var binding: ActivityMainBinding override fun onCreate(savedInstanceState: Bundle?) { @@ -30,17 +30,25 @@ class MainActivity : AppCompatActivity() { //버튼 상태값 읽고 값에 따라 상태 바꾸기 viewModel.btnState.observe(this) { btnState -> //차단 전원 버튼 색 변경 - binding.layoutBlockBtn.setBackgroundResource ( - if(btnState) R.drawable.block_btn_on else R.drawable.block_btn_background + binding.layoutBlockBtn.setBackgroundResource( + if (btnState) R.drawable.block_btn_on else R.drawable.block_btn_background ) //차단된 사이트 수 텍스트 색 변경 - val block_txt_color = ContextCompat.getColor(this, if (btnState) R.color.red else R.color.gray) + val block_txt_color = + ContextCompat.getColor(this, if (btnState) R.color.red else R.color.gray) binding.tvBlockNum.setTextColor(block_txt_color) //차단 전원 버튼 아이콘 색 변경 - val power_icon_color = ContextCompat.getColor(this, if(btnState) R.color.white else R.color.black) + val power_icon_color = + ContextCompat.getColor(this, if (btnState) R.color.white else R.color.black) binding.ivPower.setColorFilter(power_icon_color, PorterDuff.Mode.SRC_IN) + + //TODO 상담 정보 박스 색 변경 + + //방어중 타이틀 텍스트 변경 + binding.tvViewTitle.text = + getString(if (btnState) R.string.on_view_title else R.string.off_view_title) } binding.layoutBlockBtn.setOnClickListener { From 80221b5146aa01c0b597cdd1e88e4f6984fb5a5d Mon Sep 17 00:00:00 2001 From: bhindor Date: Tue, 8 Jul 2025 14:32:12 +0900 Subject: [PATCH 06/10] =?UTF-8?q?=E2=9A=A1=EF=B8=8F=20::=20info=5Fbox=20st?= =?UTF-8?q?ate?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 정보 박스 상태 관리 및 UI 변경 --- .../hs/anu/nobet/presentation/screen/main/MainActivity.kt | 5 ++++- app/src/main/res/drawable/gambling_prevent_info_box_on.xml | 7 +++++++ 2 files changed, 11 insertions(+), 1 deletion(-) create mode 100644 app/src/main/res/drawable/gambling_prevent_info_box_on.xml 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 3b7469f..f044d28 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 @@ -44,7 +44,10 @@ class MainActivity : AppCompatActivity() { ContextCompat.getColor(this, if (btnState) R.color.white else R.color.black) binding.ivPower.setColorFilter(power_icon_color, PorterDuff.Mode.SRC_IN) - //TODO 상담 정보 박스 색 변경 + //상담 정보 박스 색 변경 + binding.layoutGamblingPreventInfoBox.setBackgroundResource( + if (btnState) R.drawable.gambling_prevent_info_box_on else R.drawable.gambling_prevent_info_box + ) //방어중 타이틀 텍스트 변경 binding.tvViewTitle.text = diff --git a/app/src/main/res/drawable/gambling_prevent_info_box_on.xml b/app/src/main/res/drawable/gambling_prevent_info_box_on.xml new file mode 100644 index 0000000..f405916 --- /dev/null +++ b/app/src/main/res/drawable/gambling_prevent_info_box_on.xml @@ -0,0 +1,7 @@ + + + + + + \ No newline at end of file From a8857798352acc956271d021dc5efd444f9a9e28 Mon Sep 17 00:00:00 2001 From: bhindor Date: Tue, 8 Jul 2025 17:05:02 +0900 Subject: [PATCH 07/10] =?UTF-8?q?=E2=9A=A1=EF=B8=8F=20::=20menu=20UI?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 메뉴 UI 제작 --- app/src/main/res/drawable/menu_background.xml | 9 ++ .../main/res/drawable/menu_box_background.xml | 8 + app/src/main/res/layout/popup_menu.xml | 149 ++++++++++++++++++ 3 files changed, 166 insertions(+) create mode 100644 app/src/main/res/drawable/menu_background.xml create mode 100644 app/src/main/res/drawable/menu_box_background.xml create mode 100644 app/src/main/res/layout/popup_menu.xml diff --git a/app/src/main/res/drawable/menu_background.xml b/app/src/main/res/drawable/menu_background.xml new file mode 100644 index 0000000..5d45ec4 --- /dev/null +++ b/app/src/main/res/drawable/menu_background.xml @@ -0,0 +1,9 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/menu_box_background.xml b/app/src/main/res/drawable/menu_box_background.xml new file mode 100644 index 0000000..303b8ac --- /dev/null +++ b/app/src/main/res/drawable/menu_box_background.xml @@ -0,0 +1,8 @@ + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/popup_menu.xml b/app/src/main/res/layout/popup_menu.xml new file mode 100644 index 0000000..48fe542 --- /dev/null +++ b/app/src/main/res/layout/popup_menu.xml @@ -0,0 +1,149 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file From aa7c96ef49db4869b9a1aafe08d4f51e2abdde31 Mon Sep 17 00:00:00 2001 From: bhindor Date: Tue, 8 Jul 2025 17:40:48 +0900 Subject: [PATCH 08/10] =?UTF-8?q?=E2=9A=A1=EF=B8=8F=20::=20menu=20to=20mai?= =?UTF-8?q?n?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 메뉴 메인에 연결 화면 이동 로직 x ⚡️ :: private & todo 함수 private으로 변경 & 코드 내에 todo 처리 --- .../presentation/screen/main/MainActivity.kt | 42 +++++++++++++++++++ 1 file changed, 42 insertions(+) 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 f044d28..a0b65e4 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,15 +1,24 @@ package kr.hs.anu.nobet.presentation.screen.main +import android.graphics.Color import android.graphics.PorterDuff +import android.graphics.drawable.ColorDrawable import android.os.Bundle +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.PopupWindow +import android.widget.Toast import androidx.activity.enableEdgeToEdge import androidx.activity.viewModels import androidx.appcompat.app.AppCompatActivity +import androidx.constraintlayout.widget.ConstraintLayout import androidx.core.content.ContextCompat import androidx.core.view.ViewCompat import androidx.core.view.WindowInsetsCompat import kr.hs.anu.nobet.R import kr.hs.anu.nobet.databinding.ActivityMainBinding +import androidx.core.graphics.drawable.toDrawable class MainActivity : AppCompatActivity() { @@ -54,8 +63,41 @@ class MainActivity : AppCompatActivity() { getString(if (btnState) R.string.on_view_title else R.string.off_view_title) } + //전원 버튼 클릭했을때 상태변화 함수 뷰 모델에서 호출 binding.layoutBlockBtn.setOnClickListener { viewModel.toggle() } + + //메뉴 + binding.ivMenu.setOnClickListener { + showMenu(it) + } + } + + //메뉴 커스텀 함수 + private fun showMenu(anchor: View) { + val popupMenu = LayoutInflater.from(anchor.context).inflate(R.layout.popup_menu, null) + + val popupWindow = PopupWindow( + popupMenu, + ViewGroup.LayoutParams.MATCH_PARENT, + ViewGroup.LayoutParams.WRAP_CONTENT, + true + ) + + popupWindow.isOutsideTouchable = true + popupWindow.elevation = 10f + + popupWindow.setBackgroundDrawable(Color.TRANSPARENT.toDrawable()) + + popupWindow.showAsDropDown(anchor, 0, 30) + + popupMenu.findViewById(R.id.menu_login).setOnClickListener { + //TODO 로그인 화면으로 이동 + Toast.makeText(anchor.context, "로그인 클릭됨", Toast.LENGTH_SHORT).show() + popupWindow.dismiss() + } + + //TODO 다른 메뉴도 클릭시 동작 추가 } } From 11a465033bb6bbc309eb9625bcf2281b3d778fc6 Mon Sep 17 00:00:00 2001 From: bhindor Date: Wed, 9 Jul 2025 10:20:14 +0900 Subject: [PATCH 09/10] =?UTF-8?q?=E2=9A=A1=EF=B8=8F=20::=20other=20menu=20?= =?UTF-8?q?toast?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 다른 메뉴들도 토스트로 동작 로직 추가 & 주석 --- .../presentation/screen/main/MainActivity.kt | 22 +++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) 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 a0b65e4..77bc531 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 @@ -85,19 +85,37 @@ class MainActivity : AppCompatActivity() { true ) + + //다른 영역 클릭시 닫힘 popupWindow.isOutsideTouchable = true popupWindow.elevation = 10f + //popupWindow를 감싸는 배경, 배경이 있어야 다른 영역 클릭시 닫힘 popupWindow.setBackgroundDrawable(Color.TRANSPARENT.toDrawable()) + //기존 뷰 아래에 띄우기 popupWindow.showAsDropDown(anchor, 0, 30) + //TODO 이동 처리는 다음 branch 에서 화면 만들고 거기서 이어줄 예정 popupMenu.findViewById(R.id.menu_login).setOnClickListener { //TODO 로그인 화면으로 이동 Toast.makeText(anchor.context, "로그인 클릭됨", Toast.LENGTH_SHORT).show() popupWindow.dismiss() } - - //TODO 다른 메뉴도 클릭시 동작 추가 + + popupMenu.findViewById(R.id.menu_block_pass).setOnClickListener { + Toast.makeText(anchor.context, "차단 제외 하기", Toast.LENGTH_SHORT).show() + popupWindow.dismiss() + } + + popupMenu.findViewById(R.id.menu_log).setOnClickListener { + Toast.makeText(anchor.context, "필터링 로그", Toast.LENGTH_SHORT).show() + popupWindow.dismiss() + } + + popupMenu.findViewById(R.id.menu_report).setOnClickListener { + Toast.makeText(anchor.context, "문제 신고", Toast.LENGTH_SHORT).show() + popupWindow.dismiss() + } } } From 09456364d9963522b2bbfbf834176b84171c6fd2 Mon Sep 17 00:00:00 2001 From: bhindor Date: Wed, 9 Jul 2025 10:33:39 +0900 Subject: [PATCH 10/10] =?UTF-8?q?=F0=9F=8E=A8=20::=20ktlint?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ktlint --- .../presentation/screen/main/MainActivity.kt | 34 +++++++++---------- .../presentation/screen/main/MainViewModel.kt | 8 ++--- 2 files changed, 20 insertions(+), 22 deletions(-) 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 77bc531..2b8f746 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 @@ -2,7 +2,6 @@ package kr.hs.anu.nobet.presentation.screen.main import android.graphics.Color import android.graphics.PorterDuff -import android.graphics.drawable.ColorDrawable import android.os.Bundle import android.view.LayoutInflater import android.view.View @@ -14,11 +13,11 @@ import androidx.activity.viewModels import androidx.appcompat.app.AppCompatActivity import androidx.constraintlayout.widget.ConstraintLayout import androidx.core.content.ContextCompat +import androidx.core.graphics.drawable.toDrawable import androidx.core.view.ViewCompat import androidx.core.view.WindowInsetsCompat import kr.hs.anu.nobet.R import kr.hs.anu.nobet.databinding.ActivityMainBinding -import androidx.core.graphics.drawable.toDrawable class MainActivity : AppCompatActivity() { @@ -36,45 +35,45 @@ class MainActivity : AppCompatActivity() { insets } - //버튼 상태값 읽고 값에 따라 상태 바꾸기 + // 버튼 상태값 읽고 값에 따라 상태 바꾸기 viewModel.btnState.observe(this) { btnState -> - //차단 전원 버튼 색 변경 + // 차단 전원 버튼 색 변경 binding.layoutBlockBtn.setBackgroundResource( if (btnState) R.drawable.block_btn_on else R.drawable.block_btn_background ) - //차단된 사이트 수 텍스트 색 변경 + // 차단된 사이트 수 텍스트 색 변경 val block_txt_color = ContextCompat.getColor(this, if (btnState) R.color.red else R.color.gray) binding.tvBlockNum.setTextColor(block_txt_color) - //차단 전원 버튼 아이콘 색 변경 + // 차단 전원 버튼 아이콘 색 변경 val power_icon_color = ContextCompat.getColor(this, if (btnState) R.color.white else R.color.black) binding.ivPower.setColorFilter(power_icon_color, PorterDuff.Mode.SRC_IN) - //상담 정보 박스 색 변경 + // 상담 정보 박스 색 변경 binding.layoutGamblingPreventInfoBox.setBackgroundResource( if (btnState) R.drawable.gambling_prevent_info_box_on else R.drawable.gambling_prevent_info_box ) - //방어중 타이틀 텍스트 변경 + // 방어중 타이틀 텍스트 변경 binding.tvViewTitle.text = getString(if (btnState) R.string.on_view_title else R.string.off_view_title) } - //전원 버튼 클릭했을때 상태변화 함수 뷰 모델에서 호출 + // 전원 버튼 클릭했을때 상태변화 함수 뷰 모델에서 호출 binding.layoutBlockBtn.setOnClickListener { viewModel.toggle() } - //메뉴 - binding.ivMenu.setOnClickListener { + // 메뉴 + binding.ivMenu.setOnClickListener { showMenu(it) } } - //메뉴 커스텀 함수 + // 메뉴 커스텀 함수 private fun showMenu(anchor: View) { val popupMenu = LayoutInflater.from(anchor.context).inflate(R.layout.popup_menu, null) @@ -85,20 +84,19 @@ class MainActivity : AppCompatActivity() { true ) - - //다른 영역 클릭시 닫힘 + // 다른 영역 클릭시 닫힘 popupWindow.isOutsideTouchable = true popupWindow.elevation = 10f - //popupWindow를 감싸는 배경, 배경이 있어야 다른 영역 클릭시 닫힘 + // popupWindow를 감싸는 배경, 배경이 있어야 다른 영역 클릭시 닫힘 popupWindow.setBackgroundDrawable(Color.TRANSPARENT.toDrawable()) - //기존 뷰 아래에 띄우기 + // 기존 뷰 아래에 띄우기 popupWindow.showAsDropDown(anchor, 0, 30) - //TODO 이동 처리는 다음 branch 에서 화면 만들고 거기서 이어줄 예정 + // TODO 이동 처리는 다음 branch 에서 화면 만들고 거기서 이어줄 예정 popupMenu.findViewById(R.id.menu_login).setOnClickListener { - //TODO 로그인 화면으로 이동 + // TODO 로그인 화면으로 이동 Toast.makeText(anchor.context, "로그인 클릭됨", Toast.LENGTH_SHORT).show() popupWindow.dismiss() } diff --git a/app/src/main/java/kr/hs/anu/nobet/presentation/screen/main/MainViewModel.kt b/app/src/main/java/kr/hs/anu/nobet/presentation/screen/main/MainViewModel.kt index e0778e3..55a5211 100644 --- a/app/src/main/java/kr/hs/anu/nobet/presentation/screen/main/MainViewModel.kt +++ b/app/src/main/java/kr/hs/anu/nobet/presentation/screen/main/MainViewModel.kt @@ -6,12 +6,12 @@ import androidx.lifecycle.ViewModel class MainViewModel : ViewModel() { - //버튼 상태 + // 버튼 상태 private val _btnState = MutableLiveData(false) - val btnState : LiveData = _btnState + val btnState: LiveData = _btnState - //버튼 상태 관리 + // 버튼 상태 관리 fun toggle() { _btnState.value = !(_btnState.value ?: false) } -} \ No newline at end of file +}