From 22c2ac9edeb14572352094cbd5036b26246a3675 Mon Sep 17 00:00:00 2001 From: hansh0101 Date: Wed, 22 Jun 2022 09:24:23 +0900 Subject: [PATCH 1/6] =?UTF-8?q?[feature]=20#306=20-=20=EB=AF=B8=EC=82=AC?= =?UTF-8?q?=EC=9A=A9=20log=20=EC=A0=9C=EA=B1=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/co/kr/bemyplan/ui/main/scrap/ScrapFragment.kt | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/app/src/main/java/co/kr/bemyplan/ui/main/scrap/ScrapFragment.kt b/app/src/main/java/co/kr/bemyplan/ui/main/scrap/ScrapFragment.kt index b44621fc..7d6802c5 100644 --- a/app/src/main/java/co/kr/bemyplan/ui/main/scrap/ScrapFragment.kt +++ b/app/src/main/java/co/kr/bemyplan/ui/main/scrap/ScrapFragment.kt @@ -1,7 +1,6 @@ package co.kr.bemyplan.ui.main.scrap import android.os.Bundle -import android.util.Log import android.view.LayoutInflater import android.view.View import android.view.ViewGroup @@ -25,7 +24,7 @@ class ScrapFragment : Fragment() { override fun onCreateView( inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle? - ): View? { + ): View { _binding = DataBindingUtil.inflate(inflater, R.layout.fragment_scrap, container, false) return binding.root } @@ -43,7 +42,6 @@ class ScrapFragment : Fragment() { private fun initFragmentContainerView() { viewModel.getScrapList(sortViewModel.sort.value.toString()) viewModel.scrapList.observe(viewLifecycleOwner) { - Log.d("mlog: ScrapFragment.initFragmentContainerView", "execute") when (it.size) { 0 -> { val transaction = childFragmentManager.beginTransaction() From 20835d939bb0ec67e9046ce521743eb6116bb338 Mon Sep 17 00:00:00 2001 From: hansh0101 Date: Wed, 22 Jun 2022 09:25:36 +0900 Subject: [PATCH 2/6] =?UTF-8?q?[feature]=20#306=20-=20RecyclerView=20?= =?UTF-8?q?=EC=B5=9C=ED=95=98=EB=8B=A8=20=EB=8F=84=EB=8B=AC=20=EC=A1=B0?= =?UTF-8?q?=EA=B1=B4=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/src/main/java/co/kr/bemyplan/ui/list/ListActivity.kt | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/co/kr/bemyplan/ui/list/ListActivity.kt b/app/src/main/java/co/kr/bemyplan/ui/list/ListActivity.kt index 705082ab..87f718cd 100644 --- a/app/src/main/java/co/kr/bemyplan/ui/list/ListActivity.kt +++ b/app/src/main/java/co/kr/bemyplan/ui/list/ListActivity.kt @@ -120,9 +120,10 @@ class ListActivity : AppCompatActivity() { rvLinearContent.addOnScrollListener(object : RecyclerView.OnScrollListener() { override fun onScrolled(recyclerView: RecyclerView, dx: Int, dy: Int) { super.onScrolled(recyclerView, dx, dy) - if(dy > 0) { + if (dy > 0) { if (!rvLinearContent.canScrollVertically(1) && - (recyclerView.layoutManager as LinearLayoutManager).findLastVisibleItemPosition() == listAdapter.itemCount - 1) { + (recyclerView.layoutManager as LinearLayoutManager).findLastVisibleItemPosition() == listAdapter.itemCount - 1 + ) { when (from) { "new" -> { viewModel.fetchMoreLatestList() From 251b648e730762284fbe75b3f8802414fa167787 Mon Sep 17 00:00:00 2001 From: hansh0101 Date: Wed, 22 Jun 2022 09:29:22 +0900 Subject: [PATCH 3/6] =?UTF-8?q?[feature]=20#306=20-=20=EB=B9=84=EB=A1=9C?= =?UTF-8?q?=EA=B7=B8=EC=9D=B8=20=EC=8B=9C=20=EB=A1=9C=EA=B7=B8=EC=9D=B8=20?= =?UTF-8?q?=EC=9C=A0=EB=8F=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../co/kr/bemyplan/ui/list/ListActivity.kt | 34 +++++++++++++++---- 1 file changed, 27 insertions(+), 7 deletions(-) diff --git a/app/src/main/java/co/kr/bemyplan/ui/list/ListActivity.kt b/app/src/main/java/co/kr/bemyplan/ui/list/ListActivity.kt index 87f718cd..e37d649b 100644 --- a/app/src/main/java/co/kr/bemyplan/ui/list/ListActivity.kt +++ b/app/src/main/java/co/kr/bemyplan/ui/list/ListActivity.kt @@ -11,13 +11,16 @@ import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.RecyclerView import co.kr.bemyplan.R import co.kr.bemyplan.data.firebase.FirebaseAnalyticsProvider +import co.kr.bemyplan.data.local.BeMyPlanDataStore import co.kr.bemyplan.databinding.ActivityListBinding import co.kr.bemyplan.ui.list.adapter.ListAdapter import co.kr.bemyplan.ui.list.viewmodel.ListViewModel +import co.kr.bemyplan.ui.login.LoginActivity import co.kr.bemyplan.ui.purchase.after.AfterPurchaseActivity import co.kr.bemyplan.ui.purchase.before.PurchaseActivity import co.kr.bemyplan.ui.sort.SortFragment import co.kr.bemyplan.ui.sort.viewmodel.SortViewModel +import co.kr.bemyplan.util.CustomDialog import dagger.hilt.android.AndroidEntryPoint import timber.log.Timber import javax.inject.Inject @@ -44,6 +47,9 @@ class ListActivity : AppCompatActivity() { } } + @Inject + lateinit var beMyPlanDataStore: BeMyPlanDataStore + @Inject lateinit var firebaseAnalyticsProvider: FirebaseAnalyticsProvider @@ -103,13 +109,27 @@ class ListActivity : AppCompatActivity() { private fun initRecyclerView() { listAdapter = ListAdapter({ - viewModel.checkPurchased(it.planId) - observeDataForStartActivity( - it.planId, - it.user.nickname, - it.user.userId, - it.thumbnailUrl - ) + if(beMyPlanDataStore.userId != 0) { + viewModel.checkPurchased(it.planId) + observeDataForStartActivity( + it.planId, + it.user.nickname, + it.user.userId, + it.thumbnailUrl + ) + } else { + val dialog = CustomDialog(this, "", "") + dialog.setOnClickedListener(object: CustomDialog.ButtonClickListener { + override fun onClicked(num: Int) { + if(num == 1) { + val intent = Intent(this@ListActivity, LoginActivity::class.java) + startActivity(intent) + finishAffinity() + } + } + }) + dialog.showLoginDialog() + } }, { planId, scrapStatus -> when (scrapStatus) { true -> viewModel.deleteScrap(planId) From af1eba67f42f54e8fd9ad4a7e3d5b6355522ac2d Mon Sep 17 00:00:00 2001 From: hansh0101 Date: Wed, 22 Jun 2022 09:29:46 +0900 Subject: [PATCH 4/6] =?UTF-8?q?[feature]=20#306=20-=20=EB=B9=84=EB=A1=9C?= =?UTF-8?q?=EA=B7=B8=EC=9D=B8=20=EC=8B=9C=20=EB=A1=9C=EA=B7=B8=EC=9D=B8=20?= =?UTF-8?q?=EC=9C=A0=EB=8F=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../kr/bemyplan/ui/main/home/HomeFragment.kt | 61 ++++++++++++------- 1 file changed, 40 insertions(+), 21 deletions(-) diff --git a/app/src/main/java/co/kr/bemyplan/ui/main/home/HomeFragment.kt b/app/src/main/java/co/kr/bemyplan/ui/main/home/HomeFragment.kt index 688cf24b..97394628 100644 --- a/app/src/main/java/co/kr/bemyplan/ui/main/home/HomeFragment.kt +++ b/app/src/main/java/co/kr/bemyplan/ui/main/home/HomeFragment.kt @@ -10,6 +10,7 @@ import androidx.fragment.app.viewModels import androidx.recyclerview.widget.RecyclerView import androidx.viewpager2.widget.CompositePageTransformer import co.kr.bemyplan.data.firebase.FirebaseAnalyticsProvider +import co.kr.bemyplan.data.local.BeMyPlanDataStore import co.kr.bemyplan.databinding.FragmentHomeBinding import co.kr.bemyplan.ui.list.ListActivity import co.kr.bemyplan.ui.purchase.after.AfterPurchaseActivity @@ -27,6 +28,9 @@ class HomeFragment : Fragment() { private val binding get() = _binding ?: error("Binding이 초기화 되지 않았습니다.") private val homeViewModel: HomeViewModel by viewModels() + @Inject + lateinit var beMyPlanDataStore: BeMyPlanDataStore + @Inject lateinit var firebaseAnalyticsProvider: FirebaseAnalyticsProvider @@ -82,39 +86,54 @@ class HomeFragment : Fragment() { private fun initAdapterNew() { recentAdapter = HomeAdapter { - homeViewModel.checkPurchased(it.planId) - observeDataForStartActivity( - it.planId, - it.user.nickname, - it.user.userId, - it.thumbnailUrl - ) + if (beMyPlanDataStore.userId != 0) { + homeViewModel.checkPurchased(it.planId) + observeDataForStartActivity( + it.planId, + it.user.nickname, + it.user.userId, + it.thumbnailUrl + ) + } else { + val intent = Intent(requireContext(), PurchaseActivity::class.java) + startActivity(intent) + } } binding.rvRecent.adapter = recentAdapter } private fun initAdapterSuggest() { editorAdapter = HomeAdapter { - homeViewModel.checkPurchased(it.planId) - observeDataForStartActivity( - it.planId, - it.user.nickname, - it.user.userId, - it.thumbnailUrl - ) + if (beMyPlanDataStore.userId != 0) { + homeViewModel.checkPurchased(it.planId) + observeDataForStartActivity( + it.planId, + it.user.nickname, + it.user.userId, + it.thumbnailUrl + ) + } else { + val intent = Intent(requireContext(), PurchaseActivity::class.java) + startActivity(intent) + } } binding.rvEditorSuggest.adapter = editorAdapter } private fun initAdapterPopular() { homeViewPagerAdapter = HomeViewPagerAdapter { - homeViewModel.checkPurchased(it.planId) - observeDataForStartActivity( - it.planId, - it.user.nickname, - it.user.userId, - it.thumbnailUrl - ) + if (beMyPlanDataStore.userId != 0) { + homeViewModel.checkPurchased(it.planId) + observeDataForStartActivity( + it.planId, + it.user.nickname, + it.user.userId, + it.thumbnailUrl + ) + } else { + val intent = Intent(requireContext(), PurchaseActivity::class.java) + startActivity(intent) + } } with(binding.vpPopular) { From 165879bd860b495caa55870a3aa2179014e65881 Mon Sep 17 00:00:00 2001 From: hansh0101 Date: Wed, 22 Jun 2022 09:30:25 +0900 Subject: [PATCH 5/6] =?UTF-8?q?[feature]=20#306=20-=20=EB=A1=9C=EA=B7=B8?= =?UTF-8?q?=EC=9D=B8=20=EC=9C=A0=EB=8F=84=20Dialog=20=EA=B5=AC=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/co/kr/bemyplan/util/CustomDialog.kt | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/co/kr/bemyplan/util/CustomDialog.kt b/app/src/main/java/co/kr/bemyplan/util/CustomDialog.kt index c003303a..5cbd2f6c 100644 --- a/app/src/main/java/co/kr/bemyplan/util/CustomDialog.kt +++ b/app/src/main/java/co/kr/bemyplan/util/CustomDialog.kt @@ -7,7 +7,7 @@ import android.widget.TextView import androidx.annotation.LayoutRes import co.kr.bemyplan.R -class CustomDialog(context: Context, val title: String, val content: String) { +class CustomDialog(val context: Context, val title: String, val content: String) { private val dialog = Dialog(context) private lateinit var onClickedListener: ButtonClickListener @@ -76,4 +76,19 @@ class CustomDialog(context: Context, val title: String, val content: String) { dialog.dismiss() } } + + fun showLoginDialog() { + dialog.setContentView(R.layout.dialog_yes_no) + dialog.findViewById(R.id.tv_content).text = "로그인이 필요한 서비스입니다.\n로그인 하시겠습니까?" + dialog.window?.setLayout( + WindowManager.LayoutParams.MATCH_PARENT, + WindowManager.LayoutParams.WRAP_CONTENT + ) + dialog.window?.setBackgroundDrawableResource(R.drawable.inset_horizontal_24) + dialog.show() + dialog.findViewById(R.id.tv_yes).setOnClickListener { + onClickedListener.onClicked(1) + dialog.dismiss() + } + } } \ No newline at end of file From 88ee76975cd7de3c752641aeda28d53350e72270 Mon Sep 17 00:00:00 2001 From: hansh0101 Date: Wed, 22 Jun 2022 09:30:39 +0900 Subject: [PATCH 6/6] =?UTF-8?q?[feature]=20#306=20-=20=EB=B9=84=EB=A1=9C?= =?UTF-8?q?=EA=B7=B8=EC=9D=B8=20=EC=8B=9C=20=EB=A1=9C=EA=B7=B8=EC=9D=B8=20?= =?UTF-8?q?=EC=9C=A0=EB=8F=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../purchase/before/BeforeChargingFragment.kt | 40 +++++++++++++++++-- 1 file changed, 36 insertions(+), 4 deletions(-) diff --git a/app/src/main/java/co/kr/bemyplan/ui/purchase/before/BeforeChargingFragment.kt b/app/src/main/java/co/kr/bemyplan/ui/purchase/before/BeforeChargingFragment.kt index 2ac0ea04..a2b48f94 100644 --- a/app/src/main/java/co/kr/bemyplan/ui/purchase/before/BeforeChargingFragment.kt +++ b/app/src/main/java/co/kr/bemyplan/ui/purchase/before/BeforeChargingFragment.kt @@ -16,11 +16,14 @@ import androidx.fragment.app.add import androidx.fragment.app.commit import co.kr.bemyplan.R import co.kr.bemyplan.data.firebase.FirebaseAnalyticsProvider +import co.kr.bemyplan.data.local.BeMyPlanDataStore import co.kr.bemyplan.databinding.FragmentBeforeChargingBinding import co.kr.bemyplan.ui.list.ListActivity +import co.kr.bemyplan.ui.login.LoginActivity import co.kr.bemyplan.ui.purchase.after.AfterPurchaseActivity import co.kr.bemyplan.ui.purchase.before.adapter.ContentAdapter import co.kr.bemyplan.ui.purchase.before.viewmodel.BeforeChargingViewModel +import co.kr.bemyplan.util.CustomDialog import dagger.hilt.android.AndroidEntryPoint import javax.inject.Inject @@ -31,6 +34,9 @@ class BeforeChargingFragment : Fragment() { private val viewModel by activityViewModels() private lateinit var contentAdapter: ContentAdapter + @Inject + lateinit var beMyPlanDataStore: BeMyPlanDataStore + @Inject lateinit var firebaseAnalyticsProvider: FirebaseAnalyticsProvider @@ -184,16 +190,42 @@ class BeforeChargingFragment : Fragment() { private fun clickPurchase() { binding.layoutPurchase.setOnClickListener { - parentFragmentManager.commit { - add(R.id.fragment_container_charging) - addToBackStack(null) + if(beMyPlanDataStore.userId != 0) { + parentFragmentManager.commit { + add(R.id.fragment_container_charging) + addToBackStack(null) + } + } else { + val dialog = CustomDialog(requireContext(), "", "") + dialog.setOnClickedListener(object: CustomDialog.ButtonClickListener { + override fun onClicked(num: Int) { + if(num == 1) { + val intent = Intent(requireContext(), LoginActivity::class.java) + startActivity(intent) + requireActivity().finishAffinity() + } + } + }) } } } private fun clickScrap() { binding.layoutScrap.setOnClickListener { - viewModel.scrap() + if(beMyPlanDataStore.userId != 0) { + viewModel.scrap() + } else { + val dialog = CustomDialog(requireContext(), "", "") + dialog.setOnClickedListener(object: CustomDialog.ButtonClickListener { + override fun onClicked(num: Int) { + if(num == 1) { + val intent = Intent(requireContext(), LoginActivity::class.java) + startActivity(intent) + requireActivity().finishAffinity() + } + } + }) + } } } } \ No newline at end of file