From 5afb74b976503aba32a3a8d0b866c493a2c0aa01 Mon Sep 17 00:00:00 2001 From: bhindor Date: Thu, 17 Jul 2025 10:23:57 +0900 Subject: [PATCH 1/8] =?UTF-8?q?=E2=9A=A1=EF=B8=8F=20::=20add=20report=20ac?= =?UTF-8?q?tivity?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 신고하기 추가 --- app/src/main/AndroidManifest.xml | 3 +++ .../screen/report/ReportActivity.kt | 26 +++++++++++++++++++ app/src/main/res/layout/activity_report.xml | 10 +++++++ 3 files changed, 39 insertions(+) create mode 100644 app/src/main/java/kr/hs/anu/nobet/presentation/screen/report/ReportActivity.kt create mode 100644 app/src/main/res/layout/activity_report.xml diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index d1a5da8..9feb3e9 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/report/ReportActivity.kt b/app/src/main/java/kr/hs/anu/nobet/presentation/screen/report/ReportActivity.kt new file mode 100644 index 0000000..0e68af4 --- /dev/null +++ b/app/src/main/java/kr/hs/anu/nobet/presentation/screen/report/ReportActivity.kt @@ -0,0 +1,26 @@ +package kr.hs.anu.nobet.presentation.screen.report + +import android.os.Bundle +import androidx.activity.enableEdgeToEdge +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.ActivityReportBinding + +class ReportActivity : AppCompatActivity() { + + private lateinit var binding: ActivityReportBinding + + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + enableEdgeToEdge() + binding = ActivityReportBinding.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 + } + } +} \ No newline at end of file diff --git a/app/src/main/res/layout/activity_report.xml b/app/src/main/res/layout/activity_report.xml new file mode 100644 index 0000000..7142658 --- /dev/null +++ b/app/src/main/res/layout/activity_report.xml @@ -0,0 +1,10 @@ + + + + \ No newline at end of file From 21a1d927f5639ab9695983bb21e28d44d5a72fee Mon Sep 17 00:00:00 2001 From: bhindor Date: Thu, 17 Jul 2025 10:25:26 +0900 Subject: [PATCH 2/8] =?UTF-8?q?=E2=9A=A1=EF=B8=8F=20::=20top=20bar?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../screen/report/ReportActivity.kt | 5 +++++ app/src/main/res/layout/activity_report.xml | 20 +++++++++++++++++++ 2 files changed, 25 insertions(+) diff --git a/app/src/main/java/kr/hs/anu/nobet/presentation/screen/report/ReportActivity.kt b/app/src/main/java/kr/hs/anu/nobet/presentation/screen/report/ReportActivity.kt index 0e68af4..780c06a 100644 --- a/app/src/main/java/kr/hs/anu/nobet/presentation/screen/report/ReportActivity.kt +++ b/app/src/main/java/kr/hs/anu/nobet/presentation/screen/report/ReportActivity.kt @@ -22,5 +22,10 @@ class ReportActivity : AppCompatActivity() { v.setPadding(systemBars.left, systemBars.top, systemBars.right, systemBars.bottom) insets } + + //로고 클릭시 메인으로 + binding.ivTopbarLogo.setOnClickListener { + finish() + } } } \ No newline at end of file diff --git a/app/src/main/res/layout/activity_report.xml b/app/src/main/res/layout/activity_report.xml index 7142658..4dae52f 100644 --- a/app/src/main/res/layout/activity_report.xml +++ b/app/src/main/res/layout/activity_report.xml @@ -7,4 +7,24 @@ android:layout_height="match_parent" tools:context=".presentation.screen.report.ReportActivity"> + + + + + + \ No newline at end of file From 8c388f338a85b875bf3bf193a420e63f9835e82f Mon Sep 17 00:00:00 2001 From: bhindor Date: Thu, 17 Jul 2025 13:50:03 +0900 Subject: [PATCH 3/8] =?UTF-8?q?=E2=9A=A1=EF=B8=8F=20::=20report=20UI?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 신고하기 UI 작업 --- app/src/main/res/drawable/ic_down_arrow.xml | 13 ++ .../main/res/drawable/report_background.xml | 9 + .../res/drawable/report_btn_background.xml | 6 + app/src/main/res/layout/activity_report.xml | 196 ++++++++++++++++++ 4 files changed, 224 insertions(+) create mode 100644 app/src/main/res/drawable/ic_down_arrow.xml create mode 100644 app/src/main/res/drawable/report_background.xml create mode 100644 app/src/main/res/drawable/report_btn_background.xml diff --git a/app/src/main/res/drawable/ic_down_arrow.xml b/app/src/main/res/drawable/ic_down_arrow.xml new file mode 100644 index 0000000..6958979 --- /dev/null +++ b/app/src/main/res/drawable/ic_down_arrow.xml @@ -0,0 +1,13 @@ + + + + + + diff --git a/app/src/main/res/drawable/report_background.xml b/app/src/main/res/drawable/report_background.xml new file mode 100644 index 0000000..304f1eb --- /dev/null +++ b/app/src/main/res/drawable/report_background.xml @@ -0,0 +1,9 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/report_btn_background.xml b/app/src/main/res/drawable/report_btn_background.xml new file mode 100644 index 0000000..9aecf37 --- /dev/null +++ b/app/src/main/res/drawable/report_btn_background.xml @@ -0,0 +1,6 @@ + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/activity_report.xml b/app/src/main/res/layout/activity_report.xml index 4dae52f..eac5b48 100644 --- a/app/src/main/res/layout/activity_report.xml +++ b/app/src/main/res/layout/activity_report.xml @@ -5,6 +5,7 @@ android:id="@+id/main" android:layout_width="match_parent" android:layout_height="match_parent" + android:background="@color/white" tools:context=".presentation.screen.report.ReportActivity"> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file From fd2c243f4511de2d69862acd89277ae17d3348db Mon Sep 17 00:00:00 2001 From: bhindor Date: Thu, 17 Jul 2025 13:50:42 +0900 Subject: [PATCH 4/8] =?UTF-8?q?=E2=9A=A1=EF=B8=8F=20::=20online=20counsel?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 온라인 상담 연결 --- .../anu/nobet/presentation/screen/report/ReportActivity.kt | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/app/src/main/java/kr/hs/anu/nobet/presentation/screen/report/ReportActivity.kt b/app/src/main/java/kr/hs/anu/nobet/presentation/screen/report/ReportActivity.kt index 780c06a..62a7dd2 100644 --- a/app/src/main/java/kr/hs/anu/nobet/presentation/screen/report/ReportActivity.kt +++ b/app/src/main/java/kr/hs/anu/nobet/presentation/screen/report/ReportActivity.kt @@ -7,6 +7,7 @@ import androidx.core.view.ViewCompat import androidx.core.view.WindowInsetsCompat import kr.hs.anu.nobet.R import kr.hs.anu.nobet.databinding.ActivityReportBinding +import kr.hs.anu.nobet.utils.openPage class ReportActivity : AppCompatActivity() { @@ -27,5 +28,10 @@ class ReportActivity : AppCompatActivity() { binding.ivTopbarLogo.setOnClickListener { finish() } + + //온라인 상담 + binding.tvMobile.setOnClickListener { + this.openPage() + } } } \ No newline at end of file From 6aed414b497e5132e13b22e94f7ac81b6970f459 Mon Sep 17 00:00:00 2001 From: bhindor Date: Thu, 17 Jul 2025 14:19:05 +0900 Subject: [PATCH 5/8] =?UTF-8?q?=E2=9A=A1=EF=B8=8F=20::=20add=20report=20hi?= =?UTF-8?q?nt?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 신고 내용 힌트 추가 --- app/src/main/res/layout/activity_report.xml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/app/src/main/res/layout/activity_report.xml b/app/src/main/res/layout/activity_report.xml index eac5b48..509ea54 100644 --- a/app/src/main/res/layout/activity_report.xml +++ b/app/src/main/res/layout/activity_report.xml @@ -151,7 +151,13 @@ android:layout_marginTop="5dp" android:layout_marginBottom="39dp" android:background="@drawable/report_background" + android:fontFamily="@font/pretendard_regular" android:gravity="top" + android:hint="문제를 설명해주세요" + android:paddingHorizontal="20dp" + android:paddingVertical="10dp" + android:textColor="@color/black" + android:textSize="@dimen/body_5" app:layout_constraintBottom_toTopOf="@id/btn_report" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" From 631316988d84e4974745dd7d3291f4fa675207d3 Mon Sep 17 00:00:00 2001 From: bhindor Date: Sat, 19 Jul 2025 16:04:41 +0900 Subject: [PATCH 6/8] =?UTF-8?q?=E2=9A=A1=EF=B8=8F=20::=20report=20menu?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 신고 유형 spinner 처럼 작업 --- .../presentation/screen/main/MainActivity.kt | 4 +- .../screen/report/ReportActivity.kt | 18 +++++++ .../screen/report/ReportViewModel.kt | 17 ++++++ app/src/main/res/layout/activity_report.xml | 53 +++++++++++++++++++ 4 files changed, 91 insertions(+), 1 deletion(-) create mode 100644 app/src/main/java/kr/hs/anu/nobet/presentation/screen/report/ReportViewModel.kt 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 3505b9c..f39ee62 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 @@ -22,6 +22,7 @@ import kr.hs.anu.nobet.databinding.ActivityMainBinding import kr.hs.anu.nobet.presentation.screen.allow.AllowActivity import kr.hs.anu.nobet.presentation.screen.blockList.BlockListActivity import kr.hs.anu.nobet.presentation.screen.login.LoginActivity +import kr.hs.anu.nobet.presentation.screen.report.ReportActivity import kr.hs.anu.nobet.utils.openPage class MainActivity : AppCompatActivity() { @@ -124,7 +125,8 @@ class MainActivity : AppCompatActivity() { } popupMenu.findViewById(R.id.menu_report).setOnClickListener { - Toast.makeText(anchor.context, "문제 신고", Toast.LENGTH_SHORT).show() + val intent = Intent(this, ReportActivity::class.java) + startActivity(intent) popupWindow.dismiss() } } diff --git a/app/src/main/java/kr/hs/anu/nobet/presentation/screen/report/ReportActivity.kt b/app/src/main/java/kr/hs/anu/nobet/presentation/screen/report/ReportActivity.kt index 62a7dd2..5f2f14a 100644 --- a/app/src/main/java/kr/hs/anu/nobet/presentation/screen/report/ReportActivity.kt +++ b/app/src/main/java/kr/hs/anu/nobet/presentation/screen/report/ReportActivity.kt @@ -1,16 +1,20 @@ package kr.hs.anu.nobet.presentation.screen.report import android.os.Bundle +import android.view.View import androidx.activity.enableEdgeToEdge +import androidx.activity.viewModels import androidx.appcompat.app.AppCompatActivity import androidx.core.view.ViewCompat import androidx.core.view.WindowInsetsCompat +import androidx.transition.Visibility import kr.hs.anu.nobet.R import kr.hs.anu.nobet.databinding.ActivityReportBinding import kr.hs.anu.nobet.utils.openPage class ReportActivity : AppCompatActivity() { + private val viewModel: ReportViewModel by viewModels() private lateinit var binding: ActivityReportBinding override fun onCreate(savedInstanceState: Bundle?) { @@ -24,6 +28,10 @@ class ReportActivity : AppCompatActivity() { insets } + viewModel.spinnerState.observe(this) { spinnerState -> + binding.layoutReportMenu.visibility = if (spinnerState) View.VISIBLE else View.INVISIBLE + } + //로고 클릭시 메인으로 binding.ivTopbarLogo.setOnClickListener { finish() @@ -33,5 +41,15 @@ class ReportActivity : AppCompatActivity() { binding.tvMobile.setOnClickListener { this.openPage() } + + binding.layoutSpinner.setOnClickListener { + viewModel.toggle() + } + + binding.ivDrop.setOnClickListener { + viewModel.toggle() + } + + //TODO menu 값 클릭했을때 선택값으로 텍스트 변경 및 데이터 처리 } } \ No newline at end of file diff --git a/app/src/main/java/kr/hs/anu/nobet/presentation/screen/report/ReportViewModel.kt b/app/src/main/java/kr/hs/anu/nobet/presentation/screen/report/ReportViewModel.kt new file mode 100644 index 0000000..0835090 --- /dev/null +++ b/app/src/main/java/kr/hs/anu/nobet/presentation/screen/report/ReportViewModel.kt @@ -0,0 +1,17 @@ +package kr.hs.anu.nobet.presentation.screen.report + +import androidx.lifecycle.LiveData +import androidx.lifecycle.MutableLiveData +import androidx.lifecycle.ViewModel + +class ReportViewModel : ViewModel() { + + // spinner 상태 + private val _spinnerState = MutableLiveData(false) + val spinnerState: LiveData = _spinnerState + + // spinner 상태 관리 + fun toggle() { + _spinnerState.value = !(_spinnerState.value ?: false) + } +} \ No newline at end of file diff --git a/app/src/main/res/layout/activity_report.xml b/app/src/main/res/layout/activity_report.xml index 509ea54..4f9363b 100644 --- a/app/src/main/res/layout/activity_report.xml +++ b/app/src/main/res/layout/activity_report.xml @@ -103,6 +103,59 @@ + + + + + + + + + Date: Sat, 19 Jul 2025 16:07:02 +0900 Subject: [PATCH 7/8] =?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 --- .../anu/nobet/presentation/screen/main/MainActivity.kt | 1 - .../nobet/presentation/screen/report/ReportActivity.kt | 9 ++++----- .../nobet/presentation/screen/report/ReportViewModel.kt | 2 +- 3 files changed, 5 insertions(+), 7 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 f39ee62..7a5db66 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 @@ -8,7 +8,6 @@ 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 diff --git a/app/src/main/java/kr/hs/anu/nobet/presentation/screen/report/ReportActivity.kt b/app/src/main/java/kr/hs/anu/nobet/presentation/screen/report/ReportActivity.kt index 5f2f14a..1f7aa9b 100644 --- a/app/src/main/java/kr/hs/anu/nobet/presentation/screen/report/ReportActivity.kt +++ b/app/src/main/java/kr/hs/anu/nobet/presentation/screen/report/ReportActivity.kt @@ -7,7 +7,6 @@ import androidx.activity.viewModels import androidx.appcompat.app.AppCompatActivity import androidx.core.view.ViewCompat import androidx.core.view.WindowInsetsCompat -import androidx.transition.Visibility import kr.hs.anu.nobet.R import kr.hs.anu.nobet.databinding.ActivityReportBinding import kr.hs.anu.nobet.utils.openPage @@ -32,12 +31,12 @@ class ReportActivity : AppCompatActivity() { binding.layoutReportMenu.visibility = if (spinnerState) View.VISIBLE else View.INVISIBLE } - //로고 클릭시 메인으로 + // 로고 클릭시 메인으로 binding.ivTopbarLogo.setOnClickListener { finish() } - //온라인 상담 + // 온라인 상담 binding.tvMobile.setOnClickListener { this.openPage() } @@ -50,6 +49,6 @@ class ReportActivity : AppCompatActivity() { viewModel.toggle() } - //TODO menu 값 클릭했을때 선택값으로 텍스트 변경 및 데이터 처리 + // TODO menu 값 클릭했을때 선택값으로 텍스트 변경 및 데이터 처리 } -} \ No newline at end of file +} diff --git a/app/src/main/java/kr/hs/anu/nobet/presentation/screen/report/ReportViewModel.kt b/app/src/main/java/kr/hs/anu/nobet/presentation/screen/report/ReportViewModel.kt index 0835090..bfe4d7e 100644 --- a/app/src/main/java/kr/hs/anu/nobet/presentation/screen/report/ReportViewModel.kt +++ b/app/src/main/java/kr/hs/anu/nobet/presentation/screen/report/ReportViewModel.kt @@ -14,4 +14,4 @@ class ReportViewModel : ViewModel() { fun toggle() { _spinnerState.value = !(_spinnerState.value ?: false) } -} \ No newline at end of file +} From 1e36fcd5a1cd8191d3b898622ce8c1dfceb5d1c8 Mon Sep 17 00:00:00 2001 From: bhindor Date: Sat, 19 Jul 2025 17:10:55 +0900 Subject: [PATCH 8/8] =?UTF-8?q?=E2=9A=A1=EF=B8=8F=20::=20splash=20activity?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit splash activity --- app/build.gradle.kts | 3 ++ app/src/main/AndroidManifest.xml | 17 ++++++----- .../screen/splash/SplashActivity.kt | 28 ++++++++++++++++++ app/src/main/res/drawable/logo.png | Bin 0 -> 11397 bytes app/src/main/res/layout/activity_splash.xml | 21 +++++++++++++ app/src/main/res/values-v31/themes.xml | 14 +++++++++ app/src/main/res/values/themes.xml | 3 ++ gradle/libs.versions.toml | 2 ++ 8 files changed, 81 insertions(+), 7 deletions(-) create mode 100644 app/src/main/java/kr/hs/anu/nobet/presentation/screen/splash/SplashActivity.kt create mode 100644 app/src/main/res/drawable/logo.png create mode 100644 app/src/main/res/layout/activity_splash.xml create mode 100644 app/src/main/res/values-v31/themes.xml diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 3ca7183..562e154 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -49,4 +49,7 @@ dependencies { testImplementation(libs.junit) androidTestImplementation(libs.androidx.junit) androidTestImplementation(libs.androidx.espresso.core) + + // 스플래시 + implementation(libs.androidx.core.splashscreen) } diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 9feb3e9..7ce6462 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -12,6 +12,15 @@ android:supportsRtl="true" android:theme="@style/Theme.NoBet" tools:targetApi="31"> + + + + + + + @@ -26,13 +35,7 @@ android:exported="false" /> - - - - - - + android:exported="false" /> \ No newline at end of file diff --git a/app/src/main/java/kr/hs/anu/nobet/presentation/screen/splash/SplashActivity.kt b/app/src/main/java/kr/hs/anu/nobet/presentation/screen/splash/SplashActivity.kt new file mode 100644 index 0000000..1bb0b9c --- /dev/null +++ b/app/src/main/java/kr/hs/anu/nobet/presentation/screen/splash/SplashActivity.kt @@ -0,0 +1,28 @@ +package kr.hs.anu.nobet.presentation.screen.splash + +import android.content.Intent +import android.os.Build +import android.os.Bundle +import android.os.Handler +import android.os.Looper +import androidx.appcompat.app.AppCompatActivity +import androidx.core.splashscreen.SplashScreen.Companion.installSplashScreen +import kr.hs.anu.nobet.R +import kr.hs.anu.nobet.presentation.screen.main.MainActivity + +class SplashActivity : AppCompatActivity() { + override fun onCreate(savedInstanceState: Bundle?) { + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) { + installSplashScreen().setKeepOnScreenCondition { false } + } + + super.onCreate(savedInstanceState) + setContentView(R.layout.activity_splash) + + // 딜레이 후 메인으로 이동 + Handler(Looper.getMainLooper()).postDelayed({ + startActivity(Intent(this, MainActivity::class.java)) + finish() + }, 1500) + } +} diff --git a/app/src/main/res/drawable/logo.png b/app/src/main/res/drawable/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..8bc579b8bd045fa78b5ae636e257c65aa6d8b5af GIT binary patch literal 11397 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 OqiCq;D%UAO!u}uE*bGJh literal 0 HcmV?d00001 diff --git a/app/src/main/res/layout/activity_splash.xml b/app/src/main/res/layout/activity_splash.xml new file mode 100644 index 0000000..e243887 --- /dev/null +++ b/app/src/main/res/layout/activity_splash.xml @@ -0,0 +1,21 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/res/values-v31/themes.xml b/app/src/main/res/values-v31/themes.xml new file mode 100644 index 0000000..ba33dae --- /dev/null +++ b/app/src/main/res/values-v31/themes.xml @@ -0,0 +1,14 @@ + + + + + \ No newline at end of file diff --git a/app/src/main/res/values/themes.xml b/app/src/main/res/values/themes.xml index 8c06691..f1b64d4 100644 --- a/app/src/main/res/values/themes.xml +++ b/app/src/main/res/values/themes.xml @@ -3,7 +3,10 @@