From 253823916c2a6f639f9810a1e3f6ee12e3a8e563 Mon Sep 17 00:00:00 2001 From: kangyuri1114 Date: Tue, 24 Oct 2023 18:16:35 +0900 Subject: [PATCH 1/8] =?UTF-8?q?[MOD/#8]=20=ED=94=84=EB=9E=98=EA=B7=B8?= =?UTF-8?q?=EB=A8=BC=ED=8A=B8=20newInstance()=20=ED=95=A8=EC=88=98=20?= =?UTF-8?q?=EC=A0=81=EC=9A=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../presentation/BnvActivity.kt | 22 +++++++------------ .../presentation/DoAndroidFragment.kt | 5 +++++ .../presentation/HomeFragment.kt | 7 +++++- .../presentation/MypageFragment.kt | 11 ++++++++++ 4 files changed, 30 insertions(+), 15 deletions(-) diff --git a/app/src/main/java/org/sopt/dosopttemplate/presentation/BnvActivity.kt b/app/src/main/java/org/sopt/dosopttemplate/presentation/BnvActivity.kt index 332be40..9b2867b 100644 --- a/app/src/main/java/org/sopt/dosopttemplate/presentation/BnvActivity.kt +++ b/app/src/main/java/org/sopt/dosopttemplate/presentation/BnvActivity.kt @@ -31,30 +31,24 @@ class BnvActivity : AppCompatActivity() { binding.bnvHome.setOnItemSelectedListener { when (it.itemId) { R.id.menu_home -> { - replaceFragment(HomeFragment()) + val fragment = HomeFragment.newInstance() + replaceFragment(fragment) true } R.id.menu_do_android -> { - replaceFragment(DoAndroidFragment()) + val fragment = DoAndroidFragment.newInstance() + replaceFragment(fragment) true } R.id.menu_mypage -> { - val fragment = MypageFragment() - - val getId = intent.getStringExtra("ID") - val getNickname = intent.getStringExtra("Nickname") - val getAge = intent.getStringExtra("Age") + val getId = intent.getStringExtra("ID")!! + val getNickname = intent.getStringExtra("Nickname")!! + val getAge = intent.getStringExtra("Age")!! // 자동 로그인이 아닌 경우 프래그먼트로 유저 정보 전달 - val bundle = Bundle().apply { - putString("userId", getId) - putString("userNickname", getNickname) - putString("userAge", getAge) - } - - fragment.arguments = bundle + val fragment = MypageFragment.newInstance(getId, getNickname, getAge) replaceFragment(fragment) true diff --git a/app/src/main/java/org/sopt/dosopttemplate/presentation/DoAndroidFragment.kt b/app/src/main/java/org/sopt/dosopttemplate/presentation/DoAndroidFragment.kt index 6ae4580..e5ad336 100644 --- a/app/src/main/java/org/sopt/dosopttemplate/presentation/DoAndroidFragment.kt +++ b/app/src/main/java/org/sopt/dosopttemplate/presentation/DoAndroidFragment.kt @@ -8,6 +8,11 @@ import androidx.fragment.app.Fragment import org.sopt.dosopttemplate.databinding.FragmentDoAndroidBinding class DoAndroidFragment : Fragment() { + companion object { + fun newInstance(): DoAndroidFragment { + return DoAndroidFragment() + } + } private var _binding: FragmentDoAndroidBinding? = null private val binding: FragmentDoAndroidBinding diff --git a/app/src/main/java/org/sopt/dosopttemplate/presentation/HomeFragment.kt b/app/src/main/java/org/sopt/dosopttemplate/presentation/HomeFragment.kt index 5fcdc8e..72e6283 100644 --- a/app/src/main/java/org/sopt/dosopttemplate/presentation/HomeFragment.kt +++ b/app/src/main/java/org/sopt/dosopttemplate/presentation/HomeFragment.kt @@ -10,6 +10,11 @@ import org.sopt.dosopttemplate.databinding.FragmentHomeBinding import org.sopt.dosopttemplate.presentation.adapter.FriendsSealedAdapter class HomeFragment : Fragment() { + companion object { + fun newInstance(): HomeFragment { + return HomeFragment() + } + } private var _binding: FragmentHomeBinding? = null private val binding: FragmentHomeBinding @@ -28,7 +33,7 @@ class HomeFragment : Fragment() { override fun onViewCreated(view: View, savedInstanceState: Bundle?) { super.onViewCreated(view, savedInstanceState) - var friendsSealedAdapter = FriendsSealedAdapter(requireContext()) + val friendsSealedAdapter = FriendsSealedAdapter(requireContext()) binding.rvFriends.adapter = friendsSealedAdapter friendsSealedAdapter.addFriendsData(ArrayList(DummyFriendsData.dummyFriendList)) } diff --git a/app/src/main/java/org/sopt/dosopttemplate/presentation/MypageFragment.kt b/app/src/main/java/org/sopt/dosopttemplate/presentation/MypageFragment.kt index 5098a01..c80bdbc 100644 --- a/app/src/main/java/org/sopt/dosopttemplate/presentation/MypageFragment.kt +++ b/app/src/main/java/org/sopt/dosopttemplate/presentation/MypageFragment.kt @@ -12,6 +12,17 @@ import org.sopt.dosopttemplate.di.UserSharedPreferences import org.sopt.dosopttemplate.presentation.auth.LoginActivity class MypageFragment : Fragment() { + companion object { + fun newInstance(userId: String, userNickname: String, userAge: String): MypageFragment { + val fragment = MypageFragment() + val args = Bundle() + args.putString("userId", userId) + args.putString("userNickname", userNickname) + args.putString("userAge", userAge) + fragment.arguments = args + return fragment + } + } private var _binding: FragmentMypageBinding? = null private val binding: FragmentMypageBinding From 57aeaa663f7d088bfd0229beb293007276c19d94 Mon Sep 17 00:00:00 2001 From: kangyuri1114 Date: Tue, 24 Oct 2023 18:26:56 +0900 Subject: [PATCH 2/8] =?UTF-8?q?[MOD/#8]=20=ED=94=84=EB=9E=98=EA=B7=B8?= =?UTF-8?q?=EB=A8=BC=ED=8A=B8=20=EC=B4=88=EA=B8=B0=ED=99=94=20=ED=95=A8?= =?UTF-8?q?=EC=88=98=20=EC=83=9D=EC=84=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../presentation/BnvActivity.kt | 20 +++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/app/src/main/java/org/sopt/dosopttemplate/presentation/BnvActivity.kt b/app/src/main/java/org/sopt/dosopttemplate/presentation/BnvActivity.kt index 9b2867b..9867913 100644 --- a/app/src/main/java/org/sopt/dosopttemplate/presentation/BnvActivity.kt +++ b/app/src/main/java/org/sopt/dosopttemplate/presentation/BnvActivity.kt @@ -15,14 +15,7 @@ class BnvActivity : AppCompatActivity() { binding = ActivityBnvBinding.inflate(layoutInflater) setContentView(binding.root) - // 처음에 보여주어야 하는 프래그먼트를 변수로 - val currentFragment = supportFragmentManager.findFragmentById(R.id.fcv_home) - // 만약 프래그먼트가 끼워지지 않았다면 프래그먼트메이저를 사용하여 끼워보기 - if (currentFragment == null) { - supportFragmentManager.beginTransaction() - .add(R.id.fcv_home, HomeFragment()) - .commit() - } // Fragment의 재생성과 newInstance() 알아보기 + initialFragment(R.id.fcv_home, HomeFragment()) clickBnv() } @@ -69,4 +62,15 @@ class BnvActivity : AppCompatActivity() { .replace(R.id.fcv_home, fragment) .commit() } + + // 프래그먼트 초기화 함수 + private fun initialFragment(containerViewId: Int, fragment: Fragment) { + val currentFragment = supportFragmentManager.findFragmentById(containerViewId) + + if (currentFragment == null) { + supportFragmentManager.beginTransaction() + .add(containerViewId, Fragment()) + .commit() + } + } } From f05fd0b37d0f73ad4463b338ac0b207ce6eb36b3 Mon Sep 17 00:00:00 2001 From: kangyuri1114 Date: Tue, 24 Oct 2023 18:27:21 +0900 Subject: [PATCH 3/8] =?UTF-8?q?[MOD/#8]=20=ED=94=84=EB=9E=98=EA=B7=B8?= =?UTF-8?q?=EB=A8=BC=ED=8A=B8=20=EC=B4=88=EA=B8=B0=ED=99=94=20=ED=95=A8?= =?UTF-8?q?=EC=88=98=20=EC=83=9D=EC=84=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/org/sopt/dosopttemplate/presentation/BnvActivity.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/java/org/sopt/dosopttemplate/presentation/BnvActivity.kt b/app/src/main/java/org/sopt/dosopttemplate/presentation/BnvActivity.kt index 9867913..91237fe 100644 --- a/app/src/main/java/org/sopt/dosopttemplate/presentation/BnvActivity.kt +++ b/app/src/main/java/org/sopt/dosopttemplate/presentation/BnvActivity.kt @@ -69,7 +69,7 @@ class BnvActivity : AppCompatActivity() { if (currentFragment == null) { supportFragmentManager.beginTransaction() - .add(containerViewId, Fragment()) + .add(containerViewId, fragment) .commit() } } From e95612d47de2172f60a1021dbb8afe0fba7b84db Mon Sep 17 00:00:00 2001 From: kangyuri1114 Date: Tue, 24 Oct 2023 18:32:00 +0900 Subject: [PATCH 4/8] =?UTF-8?q?[RENAME/#8]=20=ED=95=A8=EC=88=98=20?= =?UTF-8?q?=EC=9D=B4=EB=A6=84=20=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dosopttemplate/presentation/adapter/FriendsSealedAdapter.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/java/org/sopt/dosopttemplate/presentation/adapter/FriendsSealedAdapter.kt b/app/src/main/java/org/sopt/dosopttemplate/presentation/adapter/FriendsSealedAdapter.kt index 7c1f72d..2bf463e 100644 --- a/app/src/main/java/org/sopt/dosopttemplate/presentation/adapter/FriendsSealedAdapter.kt +++ b/app/src/main/java/org/sopt/dosopttemplate/presentation/adapter/FriendsSealedAdapter.kt @@ -15,7 +15,7 @@ class FriendsSealedAdapter(context: Context) : RecyclerView.Adapter = ArrayList() - fun addFriendsData(list: ArrayList) { + fun setFriendsData(list: ArrayList) { friendList.clear() friendList.addAll(list) } From 75f01df5b0f56b7ec43d47403d1ac66fecd8a0d8 Mon Sep 17 00:00:00 2001 From: kangyuri1114 Date: Wed, 25 Oct 2023 02:44:23 +0900 Subject: [PATCH 5/8] =?UTF-8?q?[FEAT/#8]=20=EB=A6=AC=EC=82=AC=EC=9D=B4?= =?UTF-8?q?=ED=81=B4=EB=9F=AC=EB=B7=B0=20=EC=B5=9C=EC=83=81=EB=8B=A8?= =?UTF-8?q?=EC=9C=BC=EB=A1=9C=20=EC=9D=B4=EB=8F=99=EC=9D=84=20=EC=8B=9C?= =?UTF-8?q?=EB=8F=84..?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../org/sopt/dosopttemplate/presentation/BnvActivity.kt | 9 +++++++++ .../org/sopt/dosopttemplate/presentation/HomeFragment.kt | 2 +- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/org/sopt/dosopttemplate/presentation/BnvActivity.kt b/app/src/main/java/org/sopt/dosopttemplate/presentation/BnvActivity.kt index 91237fe..252461d 100644 --- a/app/src/main/java/org/sopt/dosopttemplate/presentation/BnvActivity.kt +++ b/app/src/main/java/org/sopt/dosopttemplate/presentation/BnvActivity.kt @@ -3,6 +3,7 @@ package org.sopt.dosopttemplate.presentation import android.os.Bundle import androidx.appcompat.app.AppCompatActivity import androidx.fragment.app.Fragment +import androidx.recyclerview.widget.RecyclerView import org.sopt.dosopttemplate.R import org.sopt.dosopttemplate.databinding.ActivityBnvBinding import org.sopt.dosopttemplate.util.BackPressedUtil @@ -18,6 +19,8 @@ class BnvActivity : AppCompatActivity() { initialFragment(R.id.fcv_home, HomeFragment()) clickBnv() + + updown_Listener(RecyclerView(this)) } private fun clickBnv() { @@ -56,6 +59,12 @@ class BnvActivity : AppCompatActivity() { backPressedUtil.BackButton() } + fun updown_Listener(view: RecyclerView?) { + binding.bnvHome.setOnClickListener { + view?.smoothScrollToPosition(0) + } + } + private fun replaceFragment(fragment: Fragment) { supportFragmentManager .beginTransaction() diff --git a/app/src/main/java/org/sopt/dosopttemplate/presentation/HomeFragment.kt b/app/src/main/java/org/sopt/dosopttemplate/presentation/HomeFragment.kt index 72e6283..679b998 100644 --- a/app/src/main/java/org/sopt/dosopttemplate/presentation/HomeFragment.kt +++ b/app/src/main/java/org/sopt/dosopttemplate/presentation/HomeFragment.kt @@ -35,7 +35,7 @@ class HomeFragment : Fragment() { val friendsSealedAdapter = FriendsSealedAdapter(requireContext()) binding.rvFriends.adapter = friendsSealedAdapter - friendsSealedAdapter.addFriendsData(ArrayList(DummyFriendsData.dummyFriendList)) + friendsSealedAdapter.setFriendsData(ArrayList(DummyFriendsData.dummyFriendList)) } override fun onDestroyView() { From 419daad97d6986714fda5ae464c6ff894269910f Mon Sep 17 00:00:00 2001 From: kangyuri1114 Date: Wed, 25 Oct 2023 03:04:33 +0900 Subject: [PATCH 6/8] =?UTF-8?q?[RENAME/#8]=20=EB=AA=A8=EC=A2=85=EC=9D=98?= =?UTF-8?q?=20=EC=9D=B4=EC=9C=A0=EB=A1=9C..=20DummyFriendsData=EB=A5=BC=20?= =?UTF-8?q?=EC=9E=84=ED=8F=AC=ED=8A=B8=20=EB=AA=BB=ED=95=B4=EC=84=9C..=20?= =?UTF-8?q?=EB=A6=AC=EB=84=A4=EC=9E=84=ED=95=B4=EB=B4=A4=EB=8A=94=EB=8D=B0?= =?UTF-8?q?....=20=EC=9E=98=20=EB=90=98=EB=8A=94=20=EA=B1=B4=EC=97=90=20?= =?UTF-8?q?=EB=8C=80=ED=95=98=EC=97=AC..?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../data/{DummyFriendsData.kt => DummyFriendData.kt} | 2 +- .../java/org/sopt/dosopttemplate/presentation/HomeFragment.kt | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) rename app/src/main/java/org/sopt/dosopttemplate/data/{DummyFriendsData.kt => DummyFriendData.kt} (99%) diff --git a/app/src/main/java/org/sopt/dosopttemplate/data/DummyFriendsData.kt b/app/src/main/java/org/sopt/dosopttemplate/data/DummyFriendData.kt similarity index 99% rename from app/src/main/java/org/sopt/dosopttemplate/data/DummyFriendsData.kt rename to app/src/main/java/org/sopt/dosopttemplate/data/DummyFriendData.kt index 9eda54c..e13fed8 100644 --- a/app/src/main/java/org/sopt/dosopttemplate/data/DummyFriendsData.kt +++ b/app/src/main/java/org/sopt/dosopttemplate/data/DummyFriendData.kt @@ -2,7 +2,7 @@ package org.sopt.dosopttemplate.data import org.sopt.dosopttemplate.R -object DummyFriendsData { +object DummyFriendData { val dummyFriendList = listOf( FriendsSealed.FriendsMe( profileImage = R.drawable.img_main_profile, diff --git a/app/src/main/java/org/sopt/dosopttemplate/presentation/HomeFragment.kt b/app/src/main/java/org/sopt/dosopttemplate/presentation/HomeFragment.kt index 679b998..ee7d638 100644 --- a/app/src/main/java/org/sopt/dosopttemplate/presentation/HomeFragment.kt +++ b/app/src/main/java/org/sopt/dosopttemplate/presentation/HomeFragment.kt @@ -5,7 +5,7 @@ import android.view.LayoutInflater import android.view.View import android.view.ViewGroup import androidx.fragment.app.Fragment -import org.sopt.dosopttemplate.data.DummyFriendsData +import org.sopt.dosopttemplate.data.DummyFriendData import org.sopt.dosopttemplate.databinding.FragmentHomeBinding import org.sopt.dosopttemplate.presentation.adapter.FriendsSealedAdapter @@ -35,7 +35,7 @@ class HomeFragment : Fragment() { val friendsSealedAdapter = FriendsSealedAdapter(requireContext()) binding.rvFriends.adapter = friendsSealedAdapter - friendsSealedAdapter.setFriendsData(ArrayList(DummyFriendsData.dummyFriendList)) + friendsSealedAdapter.setFriendsData(ArrayList(DummyFriendData.dummyFriendList)) } override fun onDestroyView() { From 8036cbb229bf9584a45658f0cf5c03b2f2e9b076 Mon Sep 17 00:00:00 2001 From: kangyuri1114 Date: Wed, 25 Oct 2023 03:11:19 +0900 Subject: [PATCH 7/8] =?UTF-8?q?[FIX/#8]=20NPE=20=EB=B0=9C=EC=83=9D=20?= =?UTF-8?q?=ED=9B=84=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../org/sopt/dosopttemplate/presentation/BnvActivity.kt | 6 +++--- .../org/sopt/dosopttemplate/presentation/MypageFragment.kt | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/app/src/main/java/org/sopt/dosopttemplate/presentation/BnvActivity.kt b/app/src/main/java/org/sopt/dosopttemplate/presentation/BnvActivity.kt index 252461d..83eeaf7 100644 --- a/app/src/main/java/org/sopt/dosopttemplate/presentation/BnvActivity.kt +++ b/app/src/main/java/org/sopt/dosopttemplate/presentation/BnvActivity.kt @@ -39,9 +39,9 @@ class BnvActivity : AppCompatActivity() { } R.id.menu_mypage -> { - val getId = intent.getStringExtra("ID")!! - val getNickname = intent.getStringExtra("Nickname")!! - val getAge = intent.getStringExtra("Age")!! + val getId = intent.getStringExtra("ID") + val getNickname = intent.getStringExtra("Nickname") + val getAge = intent.getStringExtra("Age") // 자동 로그인이 아닌 경우 프래그먼트로 유저 정보 전달 val fragment = MypageFragment.newInstance(getId, getNickname, getAge) diff --git a/app/src/main/java/org/sopt/dosopttemplate/presentation/MypageFragment.kt b/app/src/main/java/org/sopt/dosopttemplate/presentation/MypageFragment.kt index c80bdbc..1645c99 100644 --- a/app/src/main/java/org/sopt/dosopttemplate/presentation/MypageFragment.kt +++ b/app/src/main/java/org/sopt/dosopttemplate/presentation/MypageFragment.kt @@ -13,7 +13,7 @@ import org.sopt.dosopttemplate.presentation.auth.LoginActivity class MypageFragment : Fragment() { companion object { - fun newInstance(userId: String, userNickname: String, userAge: String): MypageFragment { + fun newInstance(userId: String?, userNickname: String?, userAge: String?): MypageFragment { val fragment = MypageFragment() val args = Bundle() args.putString("userId", userId) From 39ac9a6127747aeb5eee6b42976a0993b851be99 Mon Sep 17 00:00:00 2001 From: kangyuri1114 Date: Wed, 25 Oct 2023 03:22:22 +0900 Subject: [PATCH 8/8] =?UTF-8?q?[UI/#8]=20BNV=20selector=20=ED=99=9C?= =?UTF-8?q?=EC=9A=A9=ED=95=B4=20=ED=84=B0=EC=B9=98=EB=90=98=EC=97=88?= =?UTF-8?q?=EC=9D=84=EB=95=8C,=20=EC=95=84=EB=8B=90=EB=95=8C=20=EC=83=89?= =?UTF-8?q?=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/src/main/res/color/bnv_selector.xml | 12 ++++++++++++ app/src/main/res/layout/activity_bnv.xml | 6 ++++-- app/src/main/res/values/colors.xml | 2 ++ 3 files changed, 18 insertions(+), 2 deletions(-) create mode 100644 app/src/main/res/color/bnv_selector.xml diff --git a/app/src/main/res/color/bnv_selector.xml b/app/src/main/res/color/bnv_selector.xml new file mode 100644 index 0000000..35263f9 --- /dev/null +++ b/app/src/main/res/color/bnv_selector.xml @@ -0,0 +1,12 @@ + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/activity_bnv.xml b/app/src/main/res/layout/activity_bnv.xml index bca247b..8d54453 100644 --- a/app/src/main/res/layout/activity_bnv.xml +++ b/app/src/main/res/layout/activity_bnv.xml @@ -10,16 +10,18 @@ android:id="@+id/fcv_home" android:layout_width="0dp" android:layout_height="0dp" + android:layout_marginBottom="15dp" app:layout_constraintBottom_toTopOf="@+id/bnv_home" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" - app:layout_constraintTop_toTopOf="parent" - android:layout_marginBottom="15dp"/> + app:layout_constraintTop_toTopOf="parent" /> #808080 #ff3300 #D9D9D9 + #4D377B + #D1C4E9 \ No newline at end of file